NEURON
OcSparseMatrix Class Referencefinal

#include <ocmatrix.h>

Inheritance diagram for OcSparseMatrix:
OcMatrix

Public Member Functions

 OcSparseMatrix (int, int)
 
 ~OcSparseMatrix () override=default
 
double & coeff (int, int) override
 
int nrow () const override
 
int ncol () const override
 
double getval (int, int) const override
 
void ident () override
 
void mulv (Vect *in, Vect *out) const override
 
void solv (Vect *vin, Vect *vout, bool use_lu) override
 
void setrow (int, Vect *in) override
 
void setcol (int, Vect *in) override
 
void setdiag (int, Vect *in) override
 
void setrow (int, double in) override
 
void setcol (int, double in) override
 
void setdiag (int, double in) override
 
std::vector< std::pair< int, int > > nonzeros () const override
 
int sprowlen (int) const override
 
double spgetrowval (int i, int jindx, int *j) const override
 
void zero () override
 
- Public Member Functions inherited from OcMatrix
virtual ~OcMatrix ()=default
 
double * mep (int i, int j)
 
double operator() (int i, int j) const
 
double & operator() (int i, int j)
 
virtual void resize (int, int)
 
OcFullMatrixfull ()
 
void mulv (Vect &in, Vect &out) const
 
virtual void mulm (Matrix *in, Matrix *out) const
 
virtual void muls (double, Matrix *out) const
 
virtual void add (Matrix *, Matrix *out) const
 
virtual void getrow (int, Vect *out) const
 
virtual void getcol (int, Vect *out) const
 
virtual void getdiag (int, Vect *out) const
 
virtual void exp (Matrix *out) const
 
virtual void pow (int, Matrix *out) const
 
virtual void inverse (Matrix *out) const
 
virtual void copy (Matrix *out) const
 
virtual void bcopy (Matrix *mout, int i0, int j0, int n0, int m0, int i1, int j1) const
 
virtual void transpose (Matrix *out)
 
virtual void symmeigen (Matrix *mout, Vect *vout) const
 
virtual void svd1 (Matrix *u, Matrix *v, Vect *d) const
 
virtual double det (int *e) const
 
void unimp () const
 

Private Attributes

Eigen::SparseMatrix< double, Eigen::RowMajor > m_ {}
 
std::unique_ptr< Eigen::SparseLU< decltype(m_)> > lu_ {}
 

Additional Inherited Members

- Public Types inherited from OcMatrix
enum  { MFULL = 1 , MSPARSE , MBAND }
 
- Static Public Member Functions inherited from OcMatrix
static OcMatrixinstance (int nrow, int ncol, int type=MFULL)
 
- Public Attributes inherited from OcMatrix
Objectobj_ {}
 
- Protected Member Functions inherited from OcMatrix
 OcMatrix (int type)
 

Detailed Description

Definition at line 208 of file ocmatrix.h.

Constructor & Destructor Documentation

◆ OcSparseMatrix()

OcSparseMatrix::OcSparseMatrix ( int  nrow,
int  ncol 
)

Definition at line 246 of file ocmatrix.cpp.

◆ ~OcSparseMatrix()

OcSparseMatrix::~OcSparseMatrix ( )
overridedefault

Member Function Documentation

◆ coeff()

double & OcSparseMatrix::coeff ( int  i,
int  j 
)
overridevirtual

Reimplemented from OcMatrix.

Definition at line 250 of file ocmatrix.cpp.

◆ getval()

double OcSparseMatrix::getval ( int  i,
int  j 
) const
overridevirtual

Reimplemented from OcMatrix.

Definition at line 262 of file ocmatrix.cpp.

◆ ident()

void OcSparseMatrix::ident ( )
overridevirtual

Reimplemented from OcMatrix.

Definition at line 332 of file ocmatrix.cpp.

◆ mulv()

void OcSparseMatrix::mulv ( Vect in,
Vect out 
) const
overridevirtual

Reimplemented from OcMatrix.

Definition at line 274 of file ocmatrix.cpp.

◆ ncol()

int OcSparseMatrix::ncol ( ) const
overridevirtual

Reimplemented from OcMatrix.

Definition at line 270 of file ocmatrix.cpp.

◆ nonzeros()

std::vector< std::pair< int, int > > OcSparseMatrix::nonzeros ( ) const
overridevirtual

Reimplemented from OcMatrix.

Definition at line 370 of file ocmatrix.cpp.

◆ nrow()

int OcSparseMatrix::nrow ( ) const
overridevirtual

Reimplemented from OcMatrix.

Definition at line 266 of file ocmatrix.cpp.

◆ setcol() [1/2]

void OcSparseMatrix::setcol ( int  k,
double  in 
)
overridevirtual

Reimplemented from OcMatrix.

Definition at line 325 of file ocmatrix.cpp.

◆ setcol() [2/2]

void OcSparseMatrix::setcol ( int  k,
Vect in 
)
overridevirtual

Reimplemented from OcMatrix.

Definition at line 297 of file ocmatrix.cpp.

◆ setdiag() [1/2]

void OcSparseMatrix::setdiag ( int  k,
double  in 
)
overridevirtual

Reimplemented from OcMatrix.

Definition at line 336 of file ocmatrix.cpp.

◆ setdiag() [2/2]

void OcSparseMatrix::setdiag ( int  k,
Vect in 
)
overridevirtual

Reimplemented from OcMatrix.

Definition at line 304 of file ocmatrix.cpp.

◆ setrow() [1/2]

void OcSparseMatrix::setrow ( int  k,
double  in 
)
overridevirtual

Reimplemented from OcMatrix.

Definition at line 318 of file ocmatrix.cpp.

◆ setrow() [2/2]

void OcSparseMatrix::setrow ( int  k,
Vect in 
)
overridevirtual

Reimplemented from OcMatrix.

Definition at line 290 of file ocmatrix.cpp.

◆ solv()

void OcSparseMatrix::solv ( Vect vin,
Vect vout,
bool  use_lu 
)
overridevirtual

Reimplemented from OcMatrix.

Definition at line 280 of file ocmatrix.cpp.

◆ spgetrowval()

double OcSparseMatrix::spgetrowval ( int  i,
int  jindx,
int *  j 
) const
overridevirtual

Reimplemented from OcMatrix.

Definition at line 358 of file ocmatrix.cpp.

◆ sprowlen()

int OcSparseMatrix::sprowlen ( int  i) const
overridevirtual

Reimplemented from OcMatrix.

Definition at line 350 of file ocmatrix.cpp.

◆ zero()

void OcSparseMatrix::zero ( )
overridevirtual

Reimplemented from OcMatrix.

Definition at line 254 of file ocmatrix.cpp.

Member Data Documentation

◆ lu_

std::unique_ptr<Eigen::SparseLU<decltype(m_)> > OcSparseMatrix::lu_ {}
private

Definition at line 237 of file ocmatrix.h.

◆ m_

Eigen::SparseMatrix<double, Eigen::RowMajor> OcSparseMatrix::m_ {}
private

Definition at line 236 of file ocmatrix.h.


The documentation for this class was generated from the following files: