CPPLapack
 All Classes Files Functions Variables Friends Pages
zgsmatrix-calc.hpp
Go to the documentation of this file.
1 //=============================================================================
2 /*! return transposed zgsmatrix */
3 inline _zgsmatrix t(const zgsmatrix& mat)
4 {CPPL_VERBOSE_REPORT;
5  zgsmatrix newmat =mat;
6 
7  std::swap(newmat.m,newmat.n);
8  std::swap(newmat.rows,newmat.cols);
9  const std::vector<zcomponent>::iterator newmat_data_end =newmat.data.end();
10  for(std::vector<zcomponent>::iterator it=newmat.data.begin(); it!=newmat_data_end; it++){
11  std::swap(it->i,it->j);
12  }
13 
14  return _(newmat);
15 }
16 
17 ///////////////////////////////////////////////////////////////////////////////
18 ///////////////////////////////////////////////////////////////////////////////
19 ///////////////////////////////////////////////////////////////////////////////
20 
21 //=============================================================================
22 /*! return its conjugate matrix */
23 inline _zgsmatrix conj(const zgsmatrix& mat)
24 {CPPL_VERBOSE_REPORT;
25  zgsmatrix newmat(mat);
26 
27  const std::vector<zcomponent>::iterator newmat_data_end =newmat.data.end();
28  for(std::vector<zcomponent>::iterator it=newmat.data.begin(); it!=newmat_data_end; it++){
29  it->v =std::conj(it->v);
30  }
31 
32  return _(newmat);
33 }
34 
35 //=============================================================================
36 /*! return its conjugate transposed matrix */
37 inline _zgsmatrix conjt(const zgsmatrix& mat)
38 {CPPL_VERBOSE_REPORT;
39  zgsmatrix newmat(mat);
40  std::swap(newmat.rows,newmat.cols);
41 
42  const std::vector<zcomponent>::iterator newmat_data_end =newmat.data.end();
43  for(std::vector<zcomponent>::iterator it=newmat.data.begin(); it!=newmat_data_end; it++){
44  std::swap(it->i,it->j);
45  it->v =std::conj(it->v);
46  }
47 
48  return _(newmat);
49 }
50 
51 ///////////////////////////////////////////////////////////////////////////////
52 ///////////////////////////////////////////////////////////////////////////////
53 ///////////////////////////////////////////////////////////////////////////////
54 
55 //=============================================================================
56 /*! search the index of element having the largest absolute value in 0-based numbering system */
57 inline void idamax(CPPL_INT& i, CPPL_INT& j, const zgsmatrix& mat)
58 {CPPL_VERBOSE_REPORT;
59  std::vector<zcomponent>::const_iterator itx(mat.data.begin());
60  double vmax =0.;
61 
62  const std::vector<zcomponent>::const_iterator mat_data_end =mat.data.end();
63  for(std::vector<zcomponent>::const_iterator it=mat.data.begin(); it!=mat_data_end; it++){
64  if( vmax < norm(it->v) ){
65  vmax =norm(it->v);
66  itx =it;
67  }
68  }
69 
70  i=itx->i;
71  j=itx->j;
72 }
73 
74 //=============================================================================
75 /*! return its largest absolute value */
76 inline comple damax(const zgsmatrix& mat)
77 {CPPL_VERBOSE_REPORT;
78  std::vector<zcomponent>::const_iterator itx(mat.data.begin());
79  double vmax =0.;
80 
81  const std::vector<zcomponent>::const_iterator mat_data_end =mat.data.end();
82  for(std::vector<zcomponent>::const_iterator it=mat.data.begin(); it!=mat_data_end; it++){
83  if( vmax < norm(it->v) ){
84  vmax =norm(it->v);
85  itx =it;
86  }
87  }
88 
89  return itx->v;
90 }
Complex Double-precision General Sparse Matrix Class.
Definition: zgsmatrix.hpp:3
comple damax(const zgsmatrix &mat)
_dgematrix i(const _dgbmatrix &mat)
(DO NOT USE) Smart-temporary Real Double-precision General Sparse Matrix Class
Definition: _zgsmatrix.hpp:3
std::vector< std::vector< CPPL_INT > > rows
array of vector to store the entry information of component for each row
Definition: zgsmatrix.hpp:12
std::vector< zcomponent > data
matrix data
Definition: zgsmatrix.hpp:11
void swap(dcovector &u, dcovector &v)
void idamax(CPPL_INT &i, CPPL_INT &j, const zgsmatrix &mat)
_zgsmatrix conjt(const zgsmatrix &mat)
_zgsmatrix t(const zgsmatrix &mat)
std::vector< std::vector< CPPL_INT > > cols
array of vector to store the entry information of component for each column
Definition: zgsmatrix.hpp:13
CPPL_INT m
matrix row size
Definition: zgsmatrix.hpp:9
_zgsmatrix conj(const zgsmatrix &mat)
CPPL_INT n
matrix column size
Definition: zgsmatrix.hpp:10
_dcovector _(dcovector &vec)