1.5.0
CCC
 
MatrixSparse.cpp File Reference
#include "Matrix/MatrixSparse.hpp"
#include "Basic/AStringable.hpp"
#include "Matrix/MatrixFactory.hpp"
#include "Matrix/LinkMatrixSparse.hpp"
#include "Matrix/NF_Triplet.hpp"
#include "Basic/VectorHelper.hpp"
#include "Basic/AException.hpp"
#include "Basic/Utilities.hpp"
#include "Basic/Law.hpp"
#include "Basic/WarningMacro.hpp"
#include <Eigen/src/Core/Map.h>
#include <Eigen/src/Core/Matrix.h>
#include <iostream>
#include <Eigen/SparseCholesky>
#include <omp.h>
#include <csparse_f.h>

Functions

MatrixSparseprodNormMatMat (const MatrixSparse *a, const MatrixSparse *m, bool transpose)
 
MatrixSparseprodNormMat (const MatrixSparse *a, const VectorDouble &vec, bool transpose)
 
MatrixSparseprodNormDiagVec (const MatrixSparse *a, const VectorDouble &vec, int oper_choice)
 
MatrixSparsecreateFromAnyMatrix (const AMatrix *matin, int opt_eigen)
 
void setUpdateNonZeroValue (int status)
 
int getUpdateNonZeroValue ()
 
void setGlobalFlagEigen (bool flagEigen)
 Manage global flag for EIGEN. More...
 
bool isGlobalFlagEigen ()
 
Eigen::SparseMatrix< double > AtMA (const Eigen::SparseMatrix< double > &A, const Eigen::SparseMatrix< double > &M)
 

Variables

DISABLE_WARNING_PUSH DISABLE_WARNING_COND_EXPR_CONSTANT DISABLE_WARNING_UNUSED_BUT_SET_VARIABLE static DISABLE_WARNING_POP bool globalFlagEigen = true
 

Function Documentation

◆ AtMA()

Eigen::SparseMatrix<double> AtMA ( const Eigen::SparseMatrix< double > &  A,
const Eigen::SparseMatrix< double > &  M 
)

◆ createFromAnyMatrix()

MatrixSparse* createFromAnyMatrix ( const AMatrix mat,
int  opt_eigen = -1 
)

Transform any matrix into a Sparse format

◆ getUpdateNonZeroValue()

int getUpdateNonZeroValue ( )

◆ isGlobalFlagEigen()

bool isGlobalFlagEigen ( )

◆ prodNormDiagVec()

MatrixSparse* prodNormDiagVec ( const MatrixSparse a,
const VectorDouble vec,
int  oper_choice = 1 
)

Product 'Diag(vec)' %*% 'A' %*% 'Diag(vec)'

◆ prodNormMat()

MatrixSparse* prodNormMat ( const MatrixSparse a,
const VectorDouble vec = VectorDouble(),
bool  transpose = false 
)

Product 't(A)' %*% ['vec'] %*% 'A' or 'A' %*% ['vec'] %*% 't(A)' stored in 'this'

◆ prodNormMatMat()

MatrixSparse* prodNormMatMat ( const MatrixSparse a,
const MatrixSparse m,
bool  transpose = false 
)

Product 't(A)' %*% 'M' %*% 'A' or 'A' %*% 'M' %*% 't(A)'

◆ setGlobalFlagEigen()

void setGlobalFlagEigen ( bool  flagEigen)

Manage global flag for EIGEN.

Modify the parameter for using EIGEN library or not. Warning: this must be performed very early in the script in order to forbid mixing two different styles.

Parameters
flagEigenTrue if EIGEN library must be used; False otherwise (cs is used)

◆ setUpdateNonZeroValue()

void setUpdateNonZeroValue ( int  status)

Variable Documentation

◆ globalFlagEigen

This variable switches ON/OFF the ability to use Eigen library for Algebra