6 if(matA.
n!=matB.
n || matA.
m!=matB.
m){
8 std::cerr <<
"These two matrises can not make a summation." << std::endl
9 <<
"Your input was (" << matA.
m <<
"x" << matA.
n <<
") + (" << matB.
m <<
"x" << matB.
n <<
")." << std::endl;
16 const std::vector<dcomponent>::const_iterator matB_data_end =matB.
data.end();
17 for(std::vector<dcomponent>::const_iterator it=matB.
data.begin(); it!=matB_data_end; it++){
18 newmat(it->i,it->j) += it->v;
29 if(matA.
n!=matB.
n || matA.
m!=matB.
m){
31 std::cerr <<
"These two matrises can not make a subtraction." << std::endl
32 <<
"Your input was (" << matA.
m <<
"x" << matA.
n <<
") - (" << matB.
m <<
"x" << matB.
n <<
")." << std::endl;
39 const std::vector<dcomponent>::const_iterator matB_data_end =matB.
data.end();
40 for(std::vector<dcomponent>::const_iterator it=matB.
data.begin(); it!=matB_data_end; it++){
41 newmat(it->i,it->j) -= it->v;
54 std::cerr <<
"These two matrises can not make a product." << std::endl
55 <<
"Your input was (" << matA.
m <<
"x" << matA.
n <<
") * (" << matB.
m <<
"x" << matB.
n <<
")." << std::endl;
62 const std::vector<dcomponent>::const_iterator matA_data_end =matA.
data.end();
63 for(std::vector<dcomponent>::const_iterator it=matA.
data.begin(); it!=matA_data_end; it++){
65 const std::vector<CPPL_INT>::const_iterator matB_rows_k_end =matB.
rows[k].end();
66 for(std::vector<CPPL_INT>::const_iterator p=matB.
rows[k].begin(); p!=matB_rows_k_end; p++){
67 newmat(it->i,matB.
data[*p].j) += it->v*matB.
data[*p].v;
Real Double-precision General Sparse Matrix Class.
std::vector< dcomponent > data
matrix data
CPPL_INT n
matrix column size
CPPL_INT n
matrix column size
_dgsmatrix operator-(const _dgsmatrix &matA, const dgsmatrix &matB)
(DO NOT USE) Smart-temporary Real Double-precision General Sparse Matrix Class
CPPL_INT m
matrix row size
_dgsmatrix operator*(const _dgsmatrix &matA, const dgsmatrix &matB)
std::vector< dcomponent > data
matrix data
_dcovector _(dcovector &vec)
std::vector< std::vector< CPPL_INT > > rows
array of vector to store the entry information of component for each row
_dgsmatrix operator+(const _dgsmatrix &matA, const dgsmatrix &matB)
CPPL_INT m
matrix row size