CPPLapack
 All Classes Files Functions Variables Friends Pages
Public Member Functions | Public Attributes | Friends | List of all members
dcovector Class Reference

Real Double-precision Column Vector Class. More...

#include <dcovector.hpp>

Public Member Functions

 dcovector ()
 
 dcovector (const dcovector &)
 
 dcovector (const _dcovector &)
 
 dcovector (const CPPL_INT &, const CPPL_INT=0)
 
 dcovector (const char *)
 
 ~dcovector ()
 
_zcovector to_zcovector () const
 
double & operator() (const CPPL_INT &)
 
double operator() (const CPPL_INT &) const
 
dcovectorset (const CPPL_INT &, const double &)
 
void write (const char *) const
 
void read (const char *)
 
void clear ()
 
dcovectorzero ()
 
void chsign ()
 
void copy (const dcovector &)
 
void shallow_copy (const _dcovector &)
 
void alias (const dcovector &)
 
void unalias ()
 
dcovectorresize (const CPPL_INT &, const CPPL_INT=0)
 
void stretch (const CPPL_INT &)
 
dcovectoroperator= (const dcovector &)
 
dcovectoroperator= (const _dcovector &)
 
dcovectoroperator+= (const dcovector &)
 
dcovectoroperator+= (const _dcovector &)
 
dcovectoroperator-= (const dcovector &)
 
dcovectoroperator-= (const _dcovector &)
 
dcovectoroperator*= (const double &)
 
dcovectoroperator/= (const double &)
 

Public Attributes

CPPL_INT l
 vector size More...
 
CPPL_INT cap
 vector capacity More...
 
double * array
 1D array to store vector data More...
 

Friends

std::ostream & operator<< (std::ostream &, const dcovector &)
 
_drovector t (const dcovector &)
 
double nrm2 (const dcovector &)
 
CPPL_INT idamax (const dcovector &)
 
double damax (const dcovector &)
 
void swap (dcovector &, dcovector &)
 
_dcovector _ (dcovector &)
 
const dcovectoroperator+ (const dcovector &)
 
_dcovector operator- (const dcovector &)
 
_dcovector operator+ (const dcovector &, const dcovector &)
 
_dcovector operator+ (const dcovector &, const _dcovector &)
 
_dcovector operator- (const dcovector &, const dcovector &)
 
_dcovector operator- (const dcovector &, const _dcovector &)
 
_dgematrix operator* (const dcovector &, const drovector &)
 
_dgematrix operator* (const dcovector &, const _drovector &)
 
_dcovector operator* (const dcovector &, const double &)
 
_dcovector operator/ (const dcovector &, const double &)
 
double operator% (const dcovector &, const dcovector &)
 
double operator% (const dcovector &, const _dcovector &)
 
_dcovector operator* (const double &, const dcovector &)
 
_dcovector hadamard (const dcovector &, const dcovector &)
 

Detailed Description

Real Double-precision Column Vector Class.

Definition at line 3 of file dcovector.hpp.

Constructor & Destructor Documentation

dcovector::dcovector ( )
inline

dcovector constructor

Definition at line 3 of file dcovector-constructor.hpp.

References array, cap, and l.

4 {CPPL_VERBOSE_REPORT;
5  //////// initialize ////////
6  l =0;
7  cap =0;
8  array =NULL;
9 }
CPPL_INT l
vector size
Definition: dcovector.hpp:9
double * array
1D array to store vector data
Definition: dcovector.hpp:11
CPPL_INT cap
vector capacity
Definition: dcovector.hpp:10
dcovector::dcovector ( const dcovector vec)
inline

dcovector copy constructor

Definition at line 13 of file dcovector-constructor.hpp.

References array, cap, and l.

14 {CPPL_VERBOSE_REPORT;
15  //////// initialize ////////
16  l =vec.l;
17  cap =vec.cap;
18  array =new double[cap];
19 
20  //////// copy ////////
21  CPPL_INT inc =1;
22  dcopy_(&l, vec.array, &inc, array, &inc);
23 }
CPPL_INT l
vector size
Definition: dcovector.hpp:9
double * array
1D array to store vector data
Definition: dcovector.hpp:11
CPPL_INT cap
vector capacity
Definition: dcovector.hpp:10
dcovector::dcovector ( const _dcovector vec)
inline

dcovector constructor to cast _dcovector

Definition at line 27 of file dcovector-constructor.hpp.

References array, _dcovector::array, cap, _dcovector::cap, _dcovector::l, l, and _dcovector::nullify().

28 {CPPL_VERBOSE_REPORT;
29  //////// initialize ////////
30  l =vec.l;
31  cap =vec.cap;
32  array =vec.array;
33 
34  vec.nullify();
35 }
CPPL_INT l
vector size
Definition: _dcovector.hpp:9
CPPL_INT l
vector size
Definition: dcovector.hpp:9
CPPL_INT cap
vector capacity
Definition: _dcovector.hpp:10
double * array
1D array to store vector data
Definition: dcovector.hpp:11
double * array
1D array to store vector data
Definition: _dcovector.hpp:11
void nullify() const
CPPL_INT cap
vector capacity
Definition: dcovector.hpp:10
dcovector::dcovector ( const CPPL_INT &  _l,
const CPPL_INT  margin = 0 
)
inline

dcovector constructor with size specification

Definition at line 39 of file dcovector-constructor.hpp.

References array, cap, and l.

40 {CPPL_VERBOSE_REPORT;
41 #ifdef CPPL_DEBUG
42  if( _l<0 ){
43  ERROR_REPORT;
44  std::cerr << "Vector size must be positive integers. " << std::endl
45  << "Your input was (" << _l << ")." << std::endl;
46  exit(1);
47  }
48  if( margin<0 ){
49  ERROR_REPORT;
50  std::cerr << "Vector margin must be zero or above. " << std::endl
51  << "Your input was (" << _l << ", " << margin << ")." << std::endl;
52  exit(1);
53  }
54 #endif//CPPL_DEBUG
55 
56  //////// initialize ////////
57  l =_l;
58  cap =l+margin;
59  array =new double[cap];
60 }
CPPL_INT l
vector size
Definition: dcovector.hpp:9
double * array
1D array to store vector data
Definition: dcovector.hpp:11
CPPL_INT cap
vector capacity
Definition: dcovector.hpp:10
dcovector::dcovector ( const char *  filename)
inline

dcovector constructor with filename

Definition at line 64 of file dcovector-constructor.hpp.

References array, and read().

65 {CPPL_VERBOSE_REPORT;
66  array =NULL;
67  read(filename);
68 }
double * array
1D array to store vector data
Definition: dcovector.hpp:11
void read(const char *)
dcovector::~dcovector ( )
inline

dcovector destructor

Definition at line 76 of file dcovector-constructor.hpp.

References array.

77 {CPPL_VERBOSE_REPORT;
78  //////// delete array ////////
79  delete [] array;
80 }
double * array
1D array to store vector data
Definition: dcovector.hpp:11

Member Function Documentation

_zcovector dcovector::to_zcovector ( ) const
inline

cast to _zcovector

Definition at line 3 of file dcovector-cast.hpp.

References _, zcovector::array, array, i(), and l.

4 {CPPL_VERBOSE_REPORT;
5  zcovector newvec(l);
6 
7  for(CPPL_INT i=0; i<l; i++){
8  newvec.array[i] =comple(array[i], 0.);
9  }
10 
11  return _(newvec);
12 }
friend _dcovector _(dcovector &)
CPPL_INT l
vector size
Definition: dcovector.hpp:9
_dgematrix i(const _dgbmatrix &mat)
double * array
1D array to store vector data
Definition: dcovector.hpp:11
Complex Double-precision Column Vector Class.
Definition: zcovector.hpp:3
double & dcovector::operator() ( const CPPL_INT &  i)
inline

operator() for non-const object

Definition at line 3 of file dcovector-io.hpp.

References array, i(), and l.

Referenced by read(), and write().

4 {CPPL_VERBOSE_REPORT;
5 #ifdef CPPL_DEBUG
6  if( i<0 || l<=i ){
7  ERROR_REPORT;
8  std::cerr << "The required component is out of the vector size." << std::endl
9  << "Your input is (" << i << "), whereas the vector size is " << l << "." << std::endl;
10  exit(1);
11  }
12 #endif//CPPL_DEBUG
13 
14  return array[i];
15 }
CPPL_INT l
vector size
Definition: dcovector.hpp:9
_dgematrix i(const _dgbmatrix &mat)
double * array
1D array to store vector data
Definition: dcovector.hpp:11
double dcovector::operator() ( const CPPL_INT &  i) const
inline

operator() for const object

Definition at line 19 of file dcovector-io.hpp.

References array, i(), and l.

20 {CPPL_VERBOSE_REPORT;
21 #ifdef CPPL_DEBUG
22  if( i<0 || l<=i ){
23  ERROR_REPORT;
24  std::cerr << "The required component is out of the vector size." << std::endl
25  << "Your input is (" << i << "), whereas the vector size is " << l << "." << std::endl;
26  exit(1);
27  }
28 #endif//CPPL_DEBUG
29 
30  return array[i];
31 }
CPPL_INT l
vector size
Definition: dcovector.hpp:9
_dgematrix i(const _dgbmatrix &mat)
double * array
1D array to store vector data
Definition: dcovector.hpp:11
dcovector & dcovector::set ( const CPPL_INT &  i,
const double &  v 
)
inline

set value for const object

Definition at line 39 of file dcovector-io.hpp.

References array, i(), and l.

40 {CPPL_VERBOSE_REPORT;
41 #ifdef CPPL_DEBUG
42  if( i<0 || l<=i ){
43  ERROR_REPORT;
44  std::cerr << "The required component is out of the vector size." << std::endl
45  << "Your input is (" << i << "), whereas the vector size is " << l << "." << std::endl;
46  exit(1);
47  }
48 #endif//CPPL_DEBUG
49 
50  array[i] =v;
51  return *this;
52 }
CPPL_INT l
vector size
Definition: dcovector.hpp:9
_dgematrix i(const _dgbmatrix &mat)
double * array
1D array to store vector data
Definition: dcovector.hpp:11
void dcovector::write ( const char *  filename) const
inline

Definition at line 73 of file dcovector-io.hpp.

References i(), l, and operator()().

74 {CPPL_VERBOSE_REPORT;
75  std::ofstream ofs(filename, std::ios::trunc);
76  ofs.setf(std::cout.flags());
77  ofs.precision(std::cout.precision());
78  ofs.width(std::cout.width());
79  ofs.fill(std::cout.fill());
80 
81  ofs << "#dcovector" << " " << l << std::endl;
82  for(CPPL_INT i=0; i<l; i++){
83  ofs << operator()(i) << std::endl;
84  }
85 
86  ofs.close();
87 }
CPPL_INT l
vector size
Definition: dcovector.hpp:9
_dgematrix i(const _dgbmatrix &mat)
double & operator()(const CPPL_INT &)
Definition: dcovector-io.hpp:3
void dcovector::read ( const char *  filename)
inline

Definition at line 90 of file dcovector-io.hpp.

References i(), l, operator()(), and resize().

Referenced by dcovector().

91 {CPPL_VERBOSE_REPORT;
92  std::ifstream s(filename);
93  if(!s){
94  ERROR_REPORT;
95  std::cerr << "The file \"" << filename << "\" can not be opened." << std::endl;
96  exit(1);
97  }
98 
99  std::string id;
100  s >> id;
101  if( id != "dcovector" && id != "#dcovector" ){
102  ERROR_REPORT;
103  std::cerr << "The type name of the file \"" << filename << "\" is not dcovector." << std::endl
104  << "Its type name was " << id << " ." << std::endl;
105  exit(1);
106  }
107 
108  s >> l;
109  resize(l);
110  for(CPPL_INT i=0; i<l; i++) { s >> operator()(i); }
111  if(s.eof()){
112  ERROR_REPORT;
113  std::cerr << "There is something is wrong with the file \"" << filename << "\"." << std::endl
114  << "Most likely, there is a lack of data components, or a linefeed code or space code is missing at the end of the last line." << std::endl;
115  exit(1);
116  }
117 
118  s >> id;
119  if(!s.eof()){
120  ERROR_REPORT;
121  std::cerr << "There is something is wrong with the file \"" << filename << "\"." << std::endl
122  << "Most likely, there are extra data components." << std::endl;
123  exit(1);
124  }
125 
126 
127  s.close();
128 }
CPPL_INT l
vector size
Definition: dcovector.hpp:9
_dgematrix i(const _dgbmatrix &mat)
dcovector & resize(const CPPL_INT &, const CPPL_INT=0)
double & operator()(const CPPL_INT &)
Definition: dcovector-io.hpp:3
void dcovector::clear ( )
inline

clear vector

Definition at line 3 of file dcovector-misc.hpp.

References array, cap, and l.

Referenced by dgematrix::dgels(), dgematrix::dgelsd(), dgematrix::dgelss(), and dgematrix::dgglse().

4 {CPPL_VERBOSE_REPORT;
5  l =0;
6  cap =0;
7  delete [] array;
8  array =NULL;
9 }
CPPL_INT l
vector size
Definition: dcovector.hpp:9
double * array
1D array to store vector data
Definition: dcovector.hpp:11
CPPL_INT cap
vector capacity
Definition: dcovector.hpp:10
dcovector & dcovector::zero ( )
inline

make vector into zero vector

Definition at line 13 of file dcovector-misc.hpp.

References array, i(), and l.

Referenced by dssmatrix::col(), dgsmatrix::col(), dgrmatrix::dfgmres(), dgrmatrix::ilut_dfgmres(), and operator*().

14 {CPPL_VERBOSE_REPORT;
15  for(CPPL_INT i=0; i<l; i++){ array[i] =0.0; }
16  return *this;
17 }
CPPL_INT l
vector size
Definition: dcovector.hpp:9
_dgematrix i(const _dgbmatrix &mat)
double * array
1D array to store vector data
Definition: dcovector.hpp:11
void dcovector::chsign ( )
inline

change sign(+/-) of the vector

Definition at line 21 of file dcovector-misc.hpp.

References array, i(), and l.

22 {CPPL_VERBOSE_REPORT;
23  for(CPPL_INT i=0; i<l; i++){ array[i] =-array[i]; }
24 }
CPPL_INT l
vector size
Definition: dcovector.hpp:9
_dgematrix i(const _dgbmatrix &mat)
double * array
1D array to store vector data
Definition: dcovector.hpp:11
void dcovector::copy ( const dcovector vec)
inline

make a deep copy of the dcovector

Definition at line 28 of file dcovector-misc.hpp.

References array, cap, and l.

Referenced by operator=().

29 {CPPL_VERBOSE_REPORT;
30  l =vec.l;
31  cap =vec.cap;
32  delete [] array;
33  array =new double[cap];
34  CPPL_INT inc =1;
35  dcopy_(&vec.l, vec.array, &inc, array, &inc);
36 }
CPPL_INT l
vector size
Definition: dcovector.hpp:9
double * array
1D array to store vector data
Definition: dcovector.hpp:11
CPPL_INT cap
vector capacity
Definition: dcovector.hpp:10
void dcovector::shallow_copy ( const _dcovector vec)
inline

make a shallow copy of the vector
This function is not desinged to be used in project codes.

Definition at line 41 of file dcovector-misc.hpp.

References array, _dcovector::array, cap, _dcovector::cap, _dcovector::l, l, and _dcovector::nullify().

Referenced by operator=().

42 {CPPL_VERBOSE_REPORT;
43  l =vec.l;
44  cap =vec.cap;
45  delete [] array;
46  array =vec.array;
47 
48  vec.nullify();
49 }
CPPL_INT l
vector size
Definition: _dcovector.hpp:9
CPPL_INT l
vector size
Definition: dcovector.hpp:9
CPPL_INT cap
vector capacity
Definition: _dcovector.hpp:10
double * array
1D array to store vector data
Definition: dcovector.hpp:11
double * array
1D array to store vector data
Definition: _dcovector.hpp:11
void nullify() const
CPPL_INT cap
vector capacity
Definition: dcovector.hpp:10
void dcovector::alias ( const dcovector vec)
inline

make an alias of the vector
Be carefull to use this function not to cause double free.

Definition at line 54 of file dcovector-misc.hpp.

References array, cap, and l.

55 {CPPL_VERBOSE_REPORT;
56  l =vec.l;
57  cap =vec.cap;
58  delete [] array;
59  array =vec.array;
60 }
CPPL_INT l
vector size
Definition: dcovector.hpp:9
double * array
1D array to store vector data
Definition: dcovector.hpp:11
CPPL_INT cap
vector capacity
Definition: dcovector.hpp:10
void dcovector::unalias ( )
inline

unalias the vector

Definition at line 64 of file dcovector-misc.hpp.

References array, cap, and l.

65 {CPPL_VERBOSE_REPORT;
66  l =0;
67  cap =0;
68  array =NULL;
69 }
CPPL_INT l
vector size
Definition: dcovector.hpp:9
double * array
1D array to store vector data
Definition: dcovector.hpp:11
CPPL_INT cap
vector capacity
Definition: dcovector.hpp:10
dcovector & dcovector::resize ( const CPPL_INT &  _l,
const CPPL_INT  margin = 0 
)
inline

resize vector

Definition at line 73 of file dcovector-misc.hpp.

References array, cap, and l.

Referenced by dgematrix::dgelsd(), dgematrix::dgelss(), dgematrix::dgesvd(), dgematrix::dgglse(), read(), zgematrix::zgelss(), and zgematrix::zgesvd().

74 {CPPL_VERBOSE_REPORT;
75 #ifdef CPPL_DEBUG
76  if( _l<0 ){
77  ERROR_REPORT;
78  std::cerr << "Vector size must be positive integers." << std::endl
79  << "Your input was (" << _l << ", " << margin << ")." << std::endl;
80  exit(1);
81  }
82 #endif//CPPL_DEBUG
83 
84  l =_l;
85  cap =l+margin;
86  delete [] array;
87  array =new double[cap];
88 
89  return *this;
90 }
CPPL_INT l
vector size
Definition: dcovector.hpp:9
double * array
1D array to store vector data
Definition: dcovector.hpp:11
CPPL_INT cap
vector capacity
Definition: dcovector.hpp:10
void dcovector::stretch ( const CPPL_INT &  dl)
inline

stretch or shrink vector

Definition at line 94 of file dcovector-misc.hpp.

References array, cap, and l.

95 {CPPL_VERBOSE_REPORT;
96 #ifdef CPPL_DEBUG
97  if( l+dl<0 ){
98  ERROR_REPORT;
99  std::cerr << "Vector size must be positive integers." << std::endl
100  << "Your input was (" << dl << ")." << std::endl;
101  exit(1);
102  }
103 #endif//CPPL_DEBUG
104 
105  //////// zero ////////
106  if(dl==0){ return; }
107 
108  //////// non-zero ////////
109  l +=dl;
110  if(l>cap){
111  while(l>cap){
112  cap++;
113  cap*=2;
114  }
115  CPPL_INT newl =l-dl;
116  CPPL_INT inc =1;
117  double* newArray(new double[cap]);
118  dcopy_(&newl, array, &inc, newArray, &inc);
119  delete [] array;
120  array =newArray;
121  }
122 }
CPPL_INT l
vector size
Definition: dcovector.hpp:9
double * array
1D array to store vector data
Definition: dcovector.hpp:11
CPPL_INT cap
vector capacity
Definition: dcovector.hpp:10
dcovector & dcovector::operator= ( const dcovector vec)
inline

dcovector=dcovector operator

Definition at line 3 of file dcovector-dcovector.hpp.

References array, and copy().

4 {CPPL_VERBOSE_REPORT;
5  if(array!=vec.array){ // if it is NOT self substitution
6  copy(vec);
7  }
8  return *this;
9 }
double * array
1D array to store vector data
Definition: dcovector.hpp:11
void copy(const dcovector &)
dcovector & dcovector::operator= ( const _dcovector vec)
inline

dcovector=_dcovector operator

Definition at line 3 of file dcovector-_dcovector.hpp.

References shallow_copy().

4 {CPPL_VERBOSE_REPORT;
5  shallow_copy(vec);
6  return *this;
7 }
void shallow_copy(const _dcovector &)
dcovector & dcovector::operator+= ( const dcovector vec)
inline

dcovector+=dcovector operator

Definition at line 17 of file dcovector-dcovector.hpp.

References array, i(), and l.

18 {CPPL_VERBOSE_REPORT;
19 #ifdef CPPL_DEBUG
20  if( l!=vec.l ){
21  ERROR_REPORT;
22  std::cerr << "These two vectors can not make a sumation." << std::endl
23  << "Your input was (" << l << ") += (" << vec.l << ")." << std::endl;
24  exit(1);
25  }
26 #endif//CPPL_DEBUG
27 
28  for(CPPL_INT i=0; i<l; i++){ array[i]+=vec.array[i]; }
29 
30  return *this;
31 }
CPPL_INT l
vector size
Definition: dcovector.hpp:9
_dgematrix i(const _dgbmatrix &mat)
double * array
1D array to store vector data
Definition: dcovector.hpp:11
dcovector & dcovector::operator+= ( const _dcovector vec)
inline

dcovector+=_dcovector operator

Definition at line 15 of file dcovector-_dcovector.hpp.

References array, _dcovector::array, _dcovector::destroy(), i(), l, and _dcovector::l.

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 }
CPPL_INT l
vector size
Definition: _dcovector.hpp:9
CPPL_INT l
vector size
Definition: dcovector.hpp:9
_dgematrix i(const _dgbmatrix &mat)
double * array
1D array to store vector data
Definition: dcovector.hpp:11
void destroy() const
double * array
1D array to store vector data
Definition: _dcovector.hpp:11
dcovector & dcovector::operator-= ( const dcovector vec)
inline

dcovector operator-=

Definition at line 35 of file dcovector-dcovector.hpp.

References array, i(), and l.

36 {CPPL_VERBOSE_REPORT;
37 #ifdef CPPL_DEBUG
38  if( l!=vec.l ){
39  ERROR_REPORT;
40  std::cerr << "These two vectors can not make a subtraction." << std::endl
41  << "Your input was (" << l << ") -= (" << vec.l << ")." << std::endl;
42  exit(1);
43  }
44 #endif//CPPL_DEBUG
45 
46  for(CPPL_INT i=0; i<l; i++){ array[i]-=vec.array[i]; }
47 
48  return *this;
49 }
CPPL_INT l
vector size
Definition: dcovector.hpp:9
_dgematrix i(const _dgbmatrix &mat)
double * array
1D array to store vector data
Definition: dcovector.hpp:11
dcovector & dcovector::operator-= ( const _dcovector vec)
inline

dcovector operator-=

Definition at line 34 of file dcovector-_dcovector.hpp.

References array, _dcovector::array, _dcovector::destroy(), i(), l, and _dcovector::l.

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 }
CPPL_INT l
vector size
Definition: _dcovector.hpp:9
CPPL_INT l
vector size
Definition: dcovector.hpp:9
_dgematrix i(const _dgbmatrix &mat)
double * array
1D array to store vector data
Definition: dcovector.hpp:11
void destroy() const
double * array
1D array to store vector data
Definition: _dcovector.hpp:11
dcovector & dcovector::operator*= ( const double &  d)
inline

dcovector*=double operator

Definition at line 3 of file dcovector-double.hpp.

References array, and l.

4 {CPPL_VERBOSE_REPORT;
5  CPPL_INT inc =1;
6  dscal_(&l, &d, array, &inc);
7  return *this;
8 }
CPPL_INT l
vector size
Definition: dcovector.hpp:9
double * array
1D array to store vector data
Definition: dcovector.hpp:11
dcovector & dcovector::operator/= ( const double &  d)
inline

dcovector/=double operator

Definition at line 12 of file dcovector-double.hpp.

References array, and l.

13 {CPPL_VERBOSE_REPORT;
14  CPPL_INT inc =1;
15  double dinv =1./d;
16  dscal_(&l, &dinv, array, &inc);
17  return *this;
18 }
CPPL_INT l
vector size
Definition: dcovector.hpp:9
double * array
1D array to store vector data
Definition: dcovector.hpp:11

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  s,
const dcovector vec 
)
friend

Definition at line 59 of file dcovector-io.hpp.

60 {CPPL_VERBOSE_REPORT;
61  for(CPPL_INT i=0; i<vec.l; i++){
62  s << " " << vec.array[i] << std::endl;
63  }
64 
65  return s;
66 }
CPPL_INT l
vector size
Definition: dcovector.hpp:9
_dgematrix i(const _dgbmatrix &mat)
double * array
1D array to store vector data
Definition: dcovector.hpp:11
_drovector t ( const dcovector covec)
friend

return a transposed row vector

Definition at line 3 of file dcovector-calc.hpp.

4 {CPPL_VERBOSE_REPORT;
5  drovector rovec(covec.l);
6 
7  CPPL_INT inc =1;
8 
9  dcopy_(&covec.l, covec.array, &inc, rovec.array, &inc);
10 
11  return _(rovec);
12 }
friend _dcovector _(dcovector &)
CPPL_INT l
vector size
Definition: dcovector.hpp:9
double * array
1D array to store vector data
Definition: dcovector.hpp:11
Real Double-precision Row Vector Class.
Definition: drovector.hpp:3
double nrm2 ( const dcovector vec)
friend

return its Euclidean norm

Definition at line 16 of file dcovector-calc.hpp.

17 {CPPL_VERBOSE_REPORT;
18  CPPL_INT inc =1;
19  return dnrm2_(&vec.l, vec.array, &inc);
20 }
CPPL_INT l
vector size
Definition: dcovector.hpp:9
double * array
1D array to store vector data
Definition: dcovector.hpp:11
CPPL_INT idamax ( const dcovector vec)
friend

return the index of element having the largest absolute value in 0-based numbering system

Definition at line 25 of file dcovector-calc.hpp.

26 {CPPL_VERBOSE_REPORT;
27  CPPL_INT inc=1;
28  return idamax_(&vec.l, vec.array, &inc) -1;
29 }
CPPL_INT l
vector size
Definition: dcovector.hpp:9
double * array
1D array to store vector data
Definition: dcovector.hpp:11
double damax ( const dcovector vec)
friend

return its largest absolute value

Definition at line 33 of file dcovector-calc.hpp.

34 {CPPL_VERBOSE_REPORT;
35  CPPL_INT inc =1;
36  return vec.array[idamax_(&vec.l, vec.array, &inc) -1];
37 }
CPPL_INT l
vector size
Definition: dcovector.hpp:9
double * array
1D array to store vector data
Definition: dcovector.hpp:11
void swap ( dcovector u,
dcovector v 
)
friend

swap two vectors

Definition at line 126 of file dcovector-misc.hpp.

127 {CPPL_VERBOSE_REPORT;
128  CPPL_INT u_cap(u.cap), u_l(u.l);
129  double* u_array(u.array);
130  u.l=v.l; u.cap=v.cap; u.array=v.array;
131  v.l=u_l; v.cap=u_cap; v.array=u_array;
132 }
CPPL_INT l
vector size
Definition: dcovector.hpp:9
double * array
1D array to store vector data
Definition: dcovector.hpp:11
CPPL_INT cap
vector capacity
Definition: dcovector.hpp:10
_dcovector _ ( dcovector vec)
friend

convert user object to smart-temporary object

Definition at line 136 of file dcovector-misc.hpp.

Referenced by to_zcovector().

137 {CPPL_VERBOSE_REPORT;
138  _dcovector newvec;
139 
140  //////// shallow copy ////////
141  newvec.l =vec.l;
142  newvec.cap =vec.cap;
143  newvec.array =vec.array;
144 
145  //////// nullify ////////
146  vec.l =0;
147  vec.cap =0;
148  vec.array =NULL;
149 
150  return newvec;
151 }
CPPL_INT l
vector size
Definition: _dcovector.hpp:9
CPPL_INT l
vector size
Definition: dcovector.hpp:9
CPPL_INT cap
vector capacity
Definition: _dcovector.hpp:10
double * array
1D array to store vector data
Definition: dcovector.hpp:11
(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
CPPL_INT cap
vector capacity
Definition: dcovector.hpp:10
const dcovector& operator+ ( const dcovector vec)
friend

+dcovector operator

Definition at line 3 of file dcovector-unary.hpp.

4 {CPPL_VERBOSE_REPORT;
5  return vec;
6 }
_dcovector operator- ( const dcovector vec)
friend

-dcovector operator

Definition at line 10 of file dcovector-unary.hpp.

11 {CPPL_VERBOSE_REPORT;
12  dcovector newvec(vec.l);
13  for(CPPL_INT i=0; i<newvec.l; i++){ newvec.array[i]=-vec.array[i]; }
14 
15  return _(newvec);
16 }
friend _dcovector _(dcovector &)
CPPL_INT l
vector size
Definition: dcovector.hpp:9
_dgematrix i(const _dgbmatrix &mat)
double * array
1D array to store vector data
Definition: dcovector.hpp:11
Real Double-precision Column Vector Class.
Definition: dcovector.hpp:3
_dcovector operator+ ( const dcovector vecA,
const dcovector vecB 
)
friend

dcovector+dcovector operator

Definition at line 57 of file dcovector-dcovector.hpp.

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  dcovector newvec(vecA.l);
70  for(CPPL_INT i=0; i<newvec.l; i++){
71  newvec.array[i] =vecA.array[i]+vecB.array[i];
72  }
73 
74  return _(newvec);
75 }
friend _dcovector _(dcovector &)
CPPL_INT l
vector size
Definition: dcovector.hpp:9
_dgematrix i(const _dgbmatrix &mat)
double * array
1D array to store vector data
Definition: dcovector.hpp:11
Real Double-precision Column Vector Class.
Definition: dcovector.hpp:3
_dcovector operator+ ( const dcovector vecA,
const _dcovector vecB 
)
friend

dcovector+dcovector operator

Definition at line 57 of file dcovector-_dcovector.hpp.

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 }
CPPL_INT l
vector size
Definition: _dcovector.hpp:9
CPPL_INT l
vector size
Definition: dcovector.hpp:9
_dgematrix i(const _dgbmatrix &mat)
double * array
1D array to store vector data
Definition: dcovector.hpp:11
double * array
1D array to store vector data
Definition: _dcovector.hpp:11
_dcovector operator- ( const dcovector vecA,
const dcovector vecB 
)
friend

dcovector-dcovector operator

Definition at line 79 of file dcovector-dcovector.hpp.

80 {CPPL_VERBOSE_REPORT;
81 #ifdef CPPL_DEBUG
82  if(vecA.l!=vecB.l){
83  ERROR_REPORT;
84  std::cerr << "These two vectors can not make a subtraction." << std::endl
85  << "Your input was (" << vecA.l << ") - (" << vecB.l << ")." << std::endl;
86  exit(1);
87  }
88 #endif//CPPL_DEBUG
89 
90  dcovector newvec(vecA.l);
91  for(CPPL_INT i=0; i<newvec.l; i++){
92  newvec.array[i] =vecA.array[i]-vecB.array[i];
93  }
94 
95  return _(newvec);
96 }
friend _dcovector _(dcovector &)
CPPL_INT l
vector size
Definition: dcovector.hpp:9
_dgematrix i(const _dgbmatrix &mat)
double * array
1D array to store vector data
Definition: dcovector.hpp:11
Real Double-precision Column Vector Class.
Definition: dcovector.hpp:3
_dcovector operator- ( const dcovector vecA,
const _dcovector vecB 
)
friend

dcovector-dcovector operator

Definition at line 76 of file dcovector-_dcovector.hpp.

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 }
CPPL_INT l
vector size
Definition: _dcovector.hpp:9
CPPL_INT l
vector size
Definition: dcovector.hpp:9
_dgematrix i(const _dgbmatrix &mat)
double * array
1D array to store vector data
Definition: dcovector.hpp:11
double * array
1D array to store vector data
Definition: _dcovector.hpp:11
_dgematrix operator* ( const dcovector covec,
const drovector rovec 
)
friend

dcovector*drovector operator

Definition at line 3 of file dcovector-drovector.hpp.

4 {CPPL_VERBOSE_REPORT;
5  dgematrix newmat(covec.l, rovec.l);
6  for(CPPL_INT i=0; i<newmat.m; i++){ for(CPPL_INT j=0; j<newmat.n; j++){
7  newmat(i,j) =covec(i)*rovec(j);
8  }}
9 
10  return _(newmat);
11 }
friend _dcovector _(dcovector &)
CPPL_INT l
vector size
Definition: dcovector.hpp:9
_dgematrix i(const _dgbmatrix &mat)
CPPL_INT l
vector size
Definition: drovector.hpp:9
Real Double-precision General Dence Matrix Class.
Definition: dgematrix.hpp:3
CPPL_INT m
matrix row size
Definition: _dgematrix.hpp:9
_dgematrix operator* ( const dcovector covec,
const _drovector rovec 
)
friend

dcovector*_drovector operator

Definition at line 3 of file dcovector-_drovector.hpp.

4 {CPPL_VERBOSE_REPORT;
5  dgematrix newmat(covec.l, rovec.l);
6  for(CPPL_INT i=0; i<newmat.m; i++){
7  for(CPPL_INT j=0; j<newmat.n; j++){
8  newmat(i,j) =covec(i)*rovec(j);
9  }
10  }
11 
12  rovec.destroy();
13  return _(newmat);
14 }
friend _dcovector _(dcovector &)
CPPL_INT l
vector size
Definition: _drovector.hpp:9
CPPL_INT l
vector size
Definition: dcovector.hpp:9
_dgematrix i(const _dgbmatrix &mat)
void destroy() const
Real Double-precision General Dence Matrix Class.
Definition: dgematrix.hpp:3
CPPL_INT m
matrix row size
Definition: _dgematrix.hpp:9
_dcovector operator* ( const dcovector vec,
const double &  d 
)
friend

dcovector*double operator

Definition at line 26 of file dcovector-double.hpp.

27 {CPPL_VERBOSE_REPORT;
28  dcovector newvec(vec.l);
29  for(CPPL_INT i=0; i<vec.l; i++){ newvec.array[i] =vec.array[i]*d; }
30 
31  return _(newvec);
32 }
friend _dcovector _(dcovector &)
CPPL_INT l
vector size
Definition: dcovector.hpp:9
_dgematrix i(const _dgbmatrix &mat)
double * array
1D array to store vector data
Definition: dcovector.hpp:11
Real Double-precision Column Vector Class.
Definition: dcovector.hpp:3
_dcovector operator/ ( const dcovector vec,
const double &  d 
)
friend

dcovector/double operator

Definition at line 36 of file dcovector-double.hpp.

37 {CPPL_VERBOSE_REPORT;
38  dcovector newvec(vec.l);
39  for(CPPL_INT i=0; i<vec.l; i++){ newvec.array[i] =vec.array[i]/d; }
40 
41  return _(newvec);
42 }
friend _dcovector _(dcovector &)
CPPL_INT l
vector size
Definition: dcovector.hpp:9
_dgematrix i(const _dgbmatrix &mat)
double * array
1D array to store vector data
Definition: dcovector.hpp:11
Real Double-precision Column Vector Class.
Definition: dcovector.hpp:3
double operator% ( const dcovector vecA,
const dcovector vecB 
)
friend

dcovector^T*dcovector operator (inner product)

Definition at line 100 of file dcovector-dcovector.hpp.

101 {CPPL_VERBOSE_REPORT;
102 #ifdef CPPL_DEBUG
103  if(vecA.l!=vecB.l){
104  ERROR_REPORT;
105  std::cerr << "These two vectors can not make a dot product." << std::endl
106  << "Your input was (" << vecA.l << ") % (" << vecB.l << ")." << std::endl;
107  exit(1);
108  }
109 #endif//CPPL_DEBUG
110 
111  CPPL_INT inc =1;
112 
113  double val( ddot_( &vecA.l, vecA.array, &inc, vecB.array, &inc ) );
114 
115  return val;
116 }
CPPL_INT l
vector size
Definition: dcovector.hpp:9
double * array
1D array to store vector data
Definition: dcovector.hpp:11
double operator% ( const dcovector vecA,
const _dcovector vecB 
)
friend

dcovector^T*dcovector operator (inner product)

Definition at line 96 of file dcovector-_dcovector.hpp.

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
CPPL_INT l
vector size
Definition: dcovector.hpp:9
double * array
1D array to store vector data
Definition: dcovector.hpp:11
void destroy() const
double * array
1D array to store vector data
Definition: _dcovector.hpp:11
_dcovector operator* ( const double &  d,
const dcovector vec 
)
friend

double*dcovector operator

Definition at line 3 of file double-dcovector.hpp.

4 {CPPL_VERBOSE_REPORT;
5  dcovector newvec(vec.l);
6 
7  for(CPPL_INT i=0; i<vec.l; i++){
8  newvec.array[i] =d*vec.array[i];
9  }
10 
11  return _(newvec);
12 }
friend _dcovector _(dcovector &)
CPPL_INT l
vector size
Definition: dcovector.hpp:9
_dgematrix i(const _dgbmatrix &mat)
double * array
1D array to store vector data
Definition: dcovector.hpp:11
Real Double-precision Column Vector Class.
Definition: dcovector.hpp:3
_dcovector hadamard ( const dcovector ,
const dcovector  
)
friend

Member Data Documentation

CPPL_INT dcovector::l
CPPL_INT dcovector::cap

vector capacity

Definition at line 10 of file dcovector.hpp.

Referenced by _(), alias(), clear(), copy(), dcovector(), resize(), shallow_copy(), stretch(), swap(), and unalias().

double* dcovector::array

The documentation for this class was generated from the following files: