CPPLapack
 All Classes Files Functions Variables Friends Pages
dcovector-_dcovector.hpp
Go to the documentation of this file.
1 //=============================================================================
2 /*! dcovector=_dcovector operator */
4 {CPPL_VERBOSE_REPORT;
5  shallow_copy(vec);
6  return *this;
7 }
8 
9 ///////////////////////////////////////////////////////////////////////////////
10 ///////////////////////////////////////////////////////////////////////////////
11 ///////////////////////////////////////////////////////////////////////////////
12 
13 //=============================================================================
14 /*! dcovector+=_dcovector operator */
16 {CPPL_VERBOSE_REPORT;
17 #ifdef CPPL_DEBUG
18  if( l!=vec.l ){
19  ERROR_REPORT;
20  std::cerr << "These two vectors can not make a sumation." << std::endl
21  << "Your input was (" << l << ") += (" << vec.l << ")." << std::endl;
22  exit(1);
23  }
24 #endif//CPPL_DEBUG
25 
26  for(CPPL_INT i=0; i<l; i++){ array[i]+=vec.array[i]; }
27 
28  vec.destroy();
29  return *this;
30 }
31 
32 //=============================================================================
33 /*! dcovector operator-= */
35 {CPPL_VERBOSE_REPORT;
36 #ifdef CPPL_DEBUG
37  if( l!=vec.l ){
38  ERROR_REPORT;
39  std::cerr << "These two vectors can not make a subtraction." << std::endl
40  << "Your input was (" << l << ") -= (" << vec.l << ")." << std::endl;
41  exit(1);
42  }
43 #endif//CPPL_DEBUG
44 
45  for(CPPL_INT i=0; i<l; i++){ array[i]-=vec.array[i]; }
46 
47  vec.destroy();
48  return *this;
49 }
50 
51 ///////////////////////////////////////////////////////////////////////////////
52 ///////////////////////////////////////////////////////////////////////////////
53 ///////////////////////////////////////////////////////////////////////////////
54 
55 //=============================================================================
56 /*! dcovector+dcovector operator */
57 inline _dcovector operator+(const dcovector& vecA, const _dcovector& vecB)
58 {CPPL_VERBOSE_REPORT;
59 #ifdef CPPL_DEBUG
60  if(vecA.l!=vecB.l){
61  ERROR_REPORT;
62  std::cerr << "These two vectors can not make a sumation." << std::endl
63  << "Your input was (" << vecA.l << ") + (" << vecB.l << ")." << std::endl;
64  exit(1);
65  }
66 
67 #endif//CPPL_DEBUG
68 
69  for(CPPL_INT i=0; i<vecA.l; i++){ vecB.array[i]+=vecA.array[i]; }
70 
71  return vecB;
72 }
73 
74 //=============================================================================
75 /*! dcovector-dcovector operator */
76 inline _dcovector operator-(const dcovector& vecA, const _dcovector& vecB)
77 {CPPL_VERBOSE_REPORT;
78 #ifdef CPPL_DEBUG
79  if(vecA.l!=vecB.l){
80  ERROR_REPORT;
81  std::cerr << "These two vectors can not make a subtraction." << std::endl
82  << "Your input was (" << vecA.l << ") - (" << vecB.l << ")." << std::endl;
83  exit(1);
84  }
85 #endif//CPPL_DEBUG
86 
87  for(CPPL_INT i=0; i<vecA.l; i++){
88  vecB.array[i] =vecA.array[i]-vecB.array[i];
89  }
90 
91  return vecB;
92 }
93 
94 //=============================================================================
95 /*! dcovector^T*dcovector operator (inner product) */
96 inline double operator%(const dcovector& vecA, const _dcovector& vecB)
97 {CPPL_VERBOSE_REPORT;
98 #ifdef CPPL_DEBUG
99  if(vecA.l!=vecB.l){
100  ERROR_REPORT;
101  std::cerr << "These two vectors can not make a dot product." << std::endl
102  << "Your input was (" << vecA.l << ") % (" << vecB.l << ")." << std::endl;
103  exit(1);
104  }
105 #endif//CPPL_DEBUG
106 
107  CPPL_INT inc =1;
108 
109  double val =ddot_( &vecA.l, vecA.array, &inc, vecB.array, &inc );
110 
111  vecB.destroy();
112  return val;
113 }
CPPL_INT l
vector size
Definition: _dcovector.hpp:9
_dcovector operator-(const dcovector &vecA, const _dcovector &vecB)
CPPL_INT l
vector size
Definition: dcovector.hpp:9
_dgematrix i(const _dgbmatrix &mat)
dcovector & operator=(const dcovector &)
double * array
1D array to store vector data
Definition: dcovector.hpp:11
_dcovector operator+(const dcovector &vecA, const _dcovector &vecB)
dcovector & operator+=(const dcovector &)
double operator%(const dcovector &vecA, const _dcovector &vecB)
void destroy() const
Real Double-precision Column Vector Class.
Definition: dcovector.hpp:3
(DO NOT USE) Smart-temporary Real Double-precision Column Vector Class
Definition: _dcovector.hpp:3
double * array
1D array to store vector data
Definition: _dcovector.hpp:11
void shallow_copy(const _dcovector &)
dcovector & operator-=(const dcovector &)