CPPLapack
 All Classes Files Functions Variables Friends Pages
_zhsmatrix-calc.hpp
Go to the documentation of this file.
1 //=============================================================================
2 /*! return its transposed matrix */
3 inline _zhsmatrix t(const _zhsmatrix& mat)
4 {CPPL_VERBOSE_REPORT;
5  const std::vector<zcomponent>::iterator mat_data_end =mat.data.end();
6  for(std::vector<zcomponent>::iterator it=mat.data.begin(); it!=mat_data_end; it++){
7  it->v =std::conj(it->v);
8  }
9 
10  return mat;
11 }
12 
13 //=============================================================================
14 /*! return its conjugate matrix */
15 inline _zhsmatrix conj(const _zhsmatrix& mat)
16 {CPPL_VERBOSE_REPORT;
17  const std::vector<zcomponent>::iterator mat_data_end =mat.data.end();
18  for(std::vector<zcomponent>::iterator it=mat.data.begin(); it!=mat_data_end; it++){
19  it->v =std::conj(it->v);
20  }
21 
22  return mat;
23 }
24 
25 //=============================================================================
26 /*! return its conjugate transposed matrix */
27 inline _zhsmatrix conjt(const _zhsmatrix& mat)
28 {CPPL_VERBOSE_REPORT;
29  return mat;
30 }
31 
32 ///////////////////////////////////////////////////////////////////////////////
33 ///////////////////////////////////////////////////////////////////////////////
34 ///////////////////////////////////////////////////////////////////////////////
35 
36 //=============================================================================
37 /*! search the index of element having the largest absolute value
38  in 0-based numbering system */
39 inline void idamax(CPPL_INT& i, CPPL_INT& j, const _zhsmatrix& mat)
40 {CPPL_VERBOSE_REPORT;
41  std::vector<zcomponent>::const_iterator itx(mat.data.begin());
42  double vmax =0.;
43 
44  const std::vector<zcomponent>::const_iterator mat_data_end =mat.data.end();
45  for(std::vector<zcomponent>::const_iterator it=mat.data.begin(); it!=mat_data_end; it++){
46  if( vmax < norm(it->v) ){
47  vmax =norm(it->v);
48  itx =it;
49  }
50  }
51 
52  i=itx->i;
53  j=itx->j;
54 
55  mat.destroy();
56 }
57 
58 //=============================================================================
59 /*! return its largest absolute value */
60 inline comple damax(const _zhsmatrix& mat)
61 {CPPL_VERBOSE_REPORT;
62  std::vector<zcomponent>::const_iterator itx(mat.data.begin());
63  double vmax =0.;
64 
65  const std::vector<zcomponent>::const_iterator mat_data_end =mat.data.end();
66  for(std::vector<zcomponent>::const_iterator it=mat.data.begin(); it!=mat_data_end; it++){
67  if( vmax < norm(it->v) ){
68  vmax =norm(it->v);
69  itx =it;
70  }
71  }
72 
73  mat.destroy();
74  return itx->v;
75 }
std::vector< zcomponent > data
matrix data
Definition: _zhsmatrix.hpp:12
void destroy() const
_dgematrix i(const _dgbmatrix &mat)
_zhsmatrix conj(const _zhsmatrix &mat)
void idamax(CPPL_INT &i, CPPL_INT &j, const _zhsmatrix &mat)
_zhsmatrix conjt(const _zhsmatrix &mat)
_zhsmatrix t(const _zhsmatrix &mat)
(DO NOT USE) Smart-temporary Complex Double-precision Hermitian Sparse Matrix Class ...
Definition: _zhsmatrix.hpp:3
comple damax(const _zhsmatrix &mat)