Memosa-FVM  0.2
CRMatrix.h File Reference
#include "Matrix.h"
#include "CRConnectivity.h"
#include "Array.h"
#include "StorageSite.h"
#include "LinearSystemMerger.h"
#include "SpikeStorage.h"
#include "SpikeMatrix.h"
#include <set>
#include "Vector.h"
#include "DiagonalTensor.h"
Include dependency graph for CRMatrix.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  CRMatrix< T_Diag, T_OffDiag, X >
 
class  CRMatrix< T_Diag, T_OffDiag, X >::PairWiseAssembler
 
struct  MatrixTraitHelper< T >
 
struct  MatrixTraitHelper< Vector< T, N > >
 

Functions

template<class X >
DiagToOffDiag (const X &x)
 
template<class T_Diag , class T_OffDiag >
void setFlatCoeffs (Array< double > &flatCoeffs, const CRConnectivity &flatConnectivity, const Array< T_Diag > &diag, const Array< T_OffDiag > &offDiag, const CRConnectivity &connectivity)
 
void setFlatCoeffs (Array< double > &flatCoeffs, const CRConnectivity &flatConnectivity, Array< double > &diag, Array< double > &offDiag, const CRConnectivity &connectivity)
 

Function Documentation

template<class X >
X DiagToOffDiag ( const X &  x)
template<class T_Diag , class T_OffDiag >
void setFlatCoeffs ( Array< double > &  flatCoeffs,
const CRConnectivity flatConnectivity,
const Array< T_Diag > &  diag,
const Array< T_OffDiag > &  offDiag,
const CRConnectivity connectivity 
)

Definition at line 37 of file CRMatrix.h.

Referenced by CRMatrix< T_Diag, T_OffDiag, X >::setFlatMatrix().

42 {
43  throw CException("not implemented");
44 }
void setFlatCoeffs ( Array< double > &  flatCoeffs,
const CRConnectivity flatConnectivity,
Array< double > &  diag,
Array< double > &  offDiag,
const CRConnectivity connectivity 
)

Definition at line 47 of file CRMatrix.h.

References CRConnectivity::getCoeffPosition(), CRConnectivity::getCol(), CRConnectivity::getRow(), and CRConnectivity::getRowDim().

52 {
53  const Array<int>& myRow = connectivity.getRow();
54  const Array<int>& myCol = connectivity.getCol();
55  const int rowDim = connectivity.getRowDim();
56 
57  for(int i=0; i<rowDim; i++)
58  {
59  const int fp = flatConnectivity.getCoeffPosition(i,i);
60  flatCoeffs[fp] = diag[i];
61 
62  for(int jp=myRow[i]; jp<myRow[i+1]; jp++)
63  {
64  const int j = myCol[jp];
65 
66  // the flat matrix uses compressed col format so swap i,j
67  const int fp = flatConnectivity.getCoeffPosition(j,i);
68  flatCoeffs[fp] = offDiag[jp];
69  }
70  }
71 }
const Array< int > & getCol() const
const Array< int > & getRow() const
int getCoeffPosition(const int i, const int j) const
int getRowDim() const