NEURON
matrixmap.h
Go to the documentation of this file.
1 #ifndef matrixmap_h
2 #define matrixmap_h
3 
4 // this defines things needed by ocmatrix
5 #include <OS/list.h>
6 
7 #include "ocmatrix.h"
8 #include "nrnoc2iv.h"
9 
10 class MatrixMap {
11 public:
12  MatrixMap(Matrix*);
13  MatrixMap(Matrix&);
14  ~MatrixMap();
15 
16  void alloc(int, int, Node**, int*);
17  void mmfree();
18  void add(double fac);
19 
20  // passthroughs for accessing m_
21  inline void mulv(Vect& in, Vect& out) {m_.mulv(in, out);};
22  inline void mulv(Vect* in, Vect* out) {m_.mulv(in, out);};
23  inline void mulm(Matrix* in, Matrix* out) {m_.mulm(in, out);};
24  inline void muls(double a, Matrix* out) {m_.muls(a, out);};
25  inline void add(Matrix* a, Matrix* out) {m_.add(a, out);};
26  inline void getrow(int r, Vect* out) {m_.getrow(r, out);};
27  inline void getcol(int c, Vect* out) {m_.getcol(c, out);};
28  inline double& operator() (int i, int j) {return m_(i, j);};
29  inline int nrow() {return m_.nrow();};
30  inline int ncol() {return m_.ncol();};
31  inline double* mep(int i, int j) {return m_.mep(i, j);};
32  inline void getdiag(int d, Vect* out) {m_.getdiag(d, out);}
33  inline void setrow(int r, Vect* in){m_.setrow(r, in);}
34  inline void setcol(int c, Vect* in){m_.setcol(c, in);}
35  inline void setdiag(int d, Vect* in){m_.setdiag(d, in);}
36  inline void setrow(int r, double in){m_.setrow(r, in);}
37  inline void setcol(int c, double in){m_.setcol(c, in);}
38  inline void setdiag(int d, double in){m_.setdiag(d, in);}
39  inline void zero(){m_.zero();}
40  inline void ident(){m_.ident();}
41  inline void exp(Matrix* out){m_.exp(out);}
42  inline void pow(int p, Matrix* out){m_.pow(p, out);}
43  inline void inverse(Matrix* out){m_.inverse(out);}
44  inline void solv(Vect* vin, Vect* vout, bool use_lu) {m_.solv(vin, vout, use_lu);}
45  inline void copy(Matrix* out){m_.copy(out);}
46  inline void bcopy(Matrix* mout, int i0, int j0, int n0, int m0, int i1, int j1) {
47  m_.bcopy(mout, i0, j0, n0, m0, i1, j1);
48  }
49  inline void transpose(Matrix* out){m_.transpose(out);}
50  inline void symmeigen(Matrix* mout, Vect* vout){m_.symmeigen(mout, vout);}
51  inline void svd1(Matrix* u, Matrix* v, Vect* d){m_.svd1(u, v, d);}
52  inline double det(int* e){return m_.det(e);}
53  inline int sprowlen(int a){return m_.sprowlen(a);}
54  inline double spgetrowval(int i, int jindx, int* j){return m_.spgetrowval(i, jindx, j);}
55 
56 
57 private:
59 
60  // the map
61  int plen_;
62  double** pm_;
63  double** ptree_;
64 };
65 
66 #endif
void setrow(int r, double in)
Definition: matrixmap.h:36
#define Vect
Definition: ivocvect.h:14
void muls(double a, Matrix *out)
Definition: matrixmap.h:24
void setdiag(int d, Vect *in)
Definition: matrixmap.h:35
void svd1(Matrix *u, Matrix *v, Vect *d)
Definition: matrixmap.h:51
void symmeigen(Matrix *mout, Vect *vout)
Definition: matrixmap.h:50
size_t p
void ident()
Definition: matrixmap.h:40
double ** pm_
Definition: matrixmap.h:62
void add(double fac)
Definition: matrixmap.cpp:29
#define v
Definition: md1redef.h:4
double ** ptree_
Definition: matrixmap.h:63
void mulm(Matrix *in, Matrix *out)
Definition: matrixmap.h:23
MatrixMap(Matrix *)
Definition: matrixmap.cpp:13
#define e
Definition: passive0.cpp:24
void getrow(int r, Vect *out)
Definition: matrixmap.h:26
int sprowlen(int a)
Definition: matrixmap.h:53
void alloc(int, int, Node **, int *)
Definition: matrixmap.cpp:36
void mulv(Vect *in, Vect *out)
Definition: matrixmap.h:22
void setdiag(int d, double in)
Definition: matrixmap.h:38
void inverse(Matrix *out)
Definition: matrixmap.h:43
void solv(Vect *vin, Vect *vout, bool use_lu)
Definition: matrixmap.h:44
void add(Matrix *a, Matrix *out)
Definition: matrixmap.h:25
void setcol(int c, double in)
Definition: matrixmap.h:37
void getdiag(int d, Vect *out)
Definition: matrixmap.h:32
size_t j
void setcol(int c, Vect *in)
Definition: matrixmap.h:34
void exp(Matrix *out)
Definition: matrixmap.h:41
void bcopy(Matrix *mout, int i0, int j0, int n0, int m0, int i1, int j1)
Definition: matrixmap.h:46
void zero()
Definition: matrixmap.h:39
void pow(int p, Matrix *out)
Definition: matrixmap.h:42
int ncol()
Definition: matrixmap.h:30
void copy(Matrix *out)
Definition: matrixmap.h:45
double spgetrowval(int i, int jindx, int *j)
Definition: matrixmap.h:54
int nrow()
Definition: matrixmap.h:29
void setrow(int r, Vect *in)
Definition: matrixmap.h:33
void transpose(Matrix *out)
Definition: matrixmap.h:49
#define i
Definition: md1redef.h:12
#define c
void mmfree()
Definition: matrixmap.cpp:21
double * mep(int i, int j)
Definition: matrixmap.h:31
Definition: section.h:132
int plen_
Definition: matrixmap.h:61
void mulv(Vect &in, Vect &out)
Definition: matrixmap.h:21
double det(int *e)
Definition: matrixmap.h:52
void getcol(int c, Vect *out)
Definition: matrixmap.h:27
MatrixPtr Matrix
Definition: sputils.c:601
Matrix & m_
Definition: matrixmap.h:58
double & operator()(int i, int j)
Definition: matrixmap.h:28