My Project
_zcovector-calc.hpp
1 //=============================================================================
3 inline _zrovector t(const _zcovector& covec)
4 {
5 #ifdef CPPL_VERBOSE
6  std::cerr << "# [MARK] t(const _zcovector&)"
7  << std::endl;
8 #endif//CPPL_VERBOSE
9 
10  _zrovector rovec;
11  rovec.L =covec.L;
12  delete [] rovec.Array;
13  rovec.Array =covec.Array;
14 
15  return rovec;
16 }
17 
18 //=============================================================================
20 inline _zcovector conj(const _zcovector& vec)
21 {
22 #ifdef CPPL_VERBOSE
23  std::cerr << "# [MARK] conj(const _zcovector&)"
24  << std::endl;
25 #endif//CPPL_VERBOSE
26 
27  for(long i=0; i<vec.L; i++){ vec(i) =std::conj(vec(i)); }
28  return vec;
29 }
30 
31 //=============================================================================
33 inline _zrovector conjt(const _zcovector& covec)
34 {
35 #ifdef CPPL_VERBOSE
36  std::cerr << "# [MARK] conjt(const _zcovector&)"
37  << std::endl;
38 #endif//CPPL_VERBOSE
39 
40  zrovector rovec(covec.L);
41  for(long i=0; i<covec.L; i++){ rovec(i) =std::conj(covec(i)); }
42 
43  covec.destroy();
44  return _(rovec);
45 }
46 
50 
51 //=============================================================================
53 inline double nrm2(const _zcovector& vec)
54 {
55 #ifdef CPPL_VERBOSE
56  std::cerr << "# [MARK] nrm2(const _zcovector&)"
57  << std::endl;
58 #endif//CPPL_VERBOSE
59 
60  double val( dznrm2_(vec.L, vec.Array, 1) );
61  vec.destroy();
62  return val;
63 }
64 
65 //=============================================================================
68 inline long idamax(const _zcovector& vec)
69 {
70 #ifdef CPPL_VERBOSE
71  std::cerr << "# [MARK] idamax(const _zcovector&)"
72  << std::endl;
73 #endif//CPPL_VERBOSE
74 
75  long i( izamax_(vec.L, vec.Array, 1) -1 );
76  vec.destroy();
77  return i;
78 }
79 
80 //=============================================================================
82 inline std::complex<double> damax(const _zcovector& vec)
83 {
84 #ifdef CPPL_VERBOSE
85  std::cerr << "# [MARK] damax(const _zcovector&)"
86  << std::endl;
87 #endif//CPPL_VERBOSE
88 
89  std::complex<double> val( vec.Array[izamax_(vec.L, vec.Array, 1)-1] );
90  vec.destroy();
91  return val;
92 }
friend double damax(const drovector &)
Definition: drovector-calc.hpp:43
friend double nrm2(const drovector &)
Definition: drovector-calc.hpp:18
long L
vector size
Definition: _zrovector.hpp:7
void destroy() const
Definition: _zcovector-misc.hpp:3
Complex Double-precision Row Vector Class.
Definition: zrovector.hpp:3
(DO NOT USE) Smart-temporary Complex Double-precision Row Vector Class
Definition: _zrovector.hpp:3
friend _dcovector t(const drovector &)
Definition: drovector-calc.hpp:3
std::complex< double > * Array
1D Array to store vector data
Definition: _zcovector.hpp:8
(DO NOT USE) Smart-temporary Complex Double-precision Column Vector Class
Definition: _zcovector.hpp:3
friend long idamax(const drovector &)
Definition: drovector-calc.hpp:31
std::complex< double > * Array
1D Array to store vector data
Definition: _zrovector.hpp:8
long L
vector size
Definition: _zcovector.hpp:7