From 392b0ecc18a8c9cea098cf08eb1d6bb85db5c91d Mon Sep 17 00:00:00 2001
From: Mark Woolrich <woolrich@fmrib.ox.ac.uk>
Date: Sun, 4 Feb 2001 17:42:09 +0000
Subject: [PATCH] Initial revision

---
 ols.h | 103 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 103 insertions(+)
 create mode 100644 ols.h

diff --git a/ols.h b/ols.h
new file mode 100644
index 0000000..922a804
--- /dev/null
+++ b/ols.h
@@ -0,0 +1,103 @@
+/*  ols.h
+
+    Mark Woolrich, FMRIB Image Analysis Group
+
+    Copyright (C) 1999-2000 University of Oxford  */
+
+/*  CCOPYRIGHT  */
+
+#include <iostream>
+#include <fstream>
+#define WANT_STREAM
+#define WANT_MATH
+
+#include "newmatap.h"
+#include "newmatio.h"
+
+#if !defined(__ols_h)
+#define __ols_h
+
+#ifndef NO_NAMESPACE
+using namespace NEWMAT;
+namespace SIGPROC{
+#endif
+ 
+#define FALSE 0
+#define TRUE 1
+
+#define BATCHSIZE 50
+
+  class Ols
+    {
+    public:
+     
+      Ols(const Matrix& p_y, const Matrix& p_x, const Matrix& p_contrasts); 
+
+      const Matrix& ComputeResids();
+      const ColumnVector& ComputeVar();
+      const ColumnVector& Computecb();
+      const float ComputeVar(const int ind);
+      const float Computecb(const int ind);
+      const ColumnVector& Computeb(const int ind);
+
+      float SetupWithV(const ColumnVector& p_vrow, bool p_justvarone = FALSE);
+      float SetupWithV(const ColumnVector& p_vrow, const ColumnVector& p_krowspec, ColumnVector& p_res, bool p_justvarone = FALSE, const int zeropad = 512);
+
+      const Matrix& Getr() const {return r;}
+     
+      const ColumnVector& Getvar() const {return var;}
+      const ColumnVector& Getcb() const {return cb;}
+      float Getdof() const {return dof;}
+      float Getvarone() const {return var_on_e;}
+
+      void SetContrast(const int p_num) {c = contrasts.Row(p_num).t();}
+      void Setvarone(const float p_varone) {var_on_e = p_varone;}
+      
+    private:
+      Ols();
+      Ols(const Ols&);
+      Ols& operator=(const Ols& p_ols);
+       
+      void ConstructV(const ColumnVector& p_vrow);
+
+      // y = bx + r
+      const Matrix& y;
+      const Matrix& x;
+   
+      // Contrast
+      const Matrix& contrasts;
+      ColumnVector c;
+
+      int numTS;
+      int sizeTS;
+
+      Matrix r;
+
+      Matrix pinv_x;
+      float var_on_e;
+
+      ColumnVector cb;
+      
+      ColumnVector b;
+
+      ColumnVector var;
+      float dof;
+
+      // Covariance matrix is sigma^2*V:
+      Matrix V;
+      Matrix RV;
+
+      Matrix RMat;
+      
+      // batch stuff
+      int batch_size;
+    };
+
+#endif
+
+#ifndef NO_NAMESPACE
+       }
+#endif
+
+
+
-- 
GitLab