CPPLapack
 All Classes Files Functions Variables Friends Pages
drovector_small.hpp
Go to the documentation of this file.
1 //=============================================================================
2 //! Samll Real Double-precision Row Vector Class
3 template<CPPL_INT l> class drovector_small
4 {
5 public:
6  ///////////////////////////////////////////////
7  /////////////////// objects ///////////////////
8  ///////////////////////////////////////////////
9  double array[l]; //!< 1D array to store vector data
10 
11  ///////////////////////////////////////////////
12  ///////////////// constructors ////////////////
13  ///////////////////////////////////////////////
14  inline drovector_small();
15  inline explicit drovector_small(const drovector&);
16  inline drovector_small(const double&, const double&);
17  inline drovector_small(const double&, const double&, const double&);
18  inline drovector_small(const double&, const double&, const double&, const double&);
19  inline ~drovector_small();
20 
21  ///////////////////////////////////////////////
22  ////////////////// functions //////////////////
23  ///////////////////////////////////////////////
24  //////// cast ////////
25  inline _drovector to_drovector() const;
26 
27  //////// io ////////
28  inline double& operator()(const CPPL_INT&);
29  inline double operator()(const CPPL_INT&) const;
30  inline drovector_small<l>& set(const CPPL_INT&, const double&);
31  template<CPPL_INT _l> inline friend std::ostream& operator<<(std::ostream&, const drovector_small<_l>&);
32  inline void read(const char* filename);
33  inline void write(const char* filename) const;
34 
35  //////// calc ////////
36 #ifndef _MSC_VER
37  template<CPPL_INT _l> inline friend dcovector_small<_l> t(const drovector_small<_l>&);
38  template<CPPL_INT _l> inline friend double nrm2(const drovector_small<_l>&);
39  template<CPPL_INT _l> inline friend CPPL_INT idamax(const drovector_small<_l>&);
40  template<CPPL_INT _l> inline friend double damax(const drovector_small<_l>&);
41 #endif//_MSC_VER
42 
43  //////// misc ////////
44  inline drovector_small<l>& zero();
45 
46  ///////////////////////////////////////////////
47  ///////////// numerical operators /////////////
48  ///////////////////////////////////////////////
49 #ifndef _MSC_VER
50  //////// = ////////
51  template<CPPL_INT L> inline drovector_small<L>& operator= (const drovector_small<L>&);
52  //////// += ////////
53  template<CPPL_INT L> inline friend drovector_small<L>& operator+=(drovector_small<L>&, const drovector_small<L>&);
54  //////// -= ////////
55  template<CPPL_INT L> inline friend drovector_small<L>& operator-=(drovector_small<L>&, const drovector_small<L>&);
56  //////// *= ////////
57  template<CPPL_INT L> inline friend drovector_small<L>& operator*=(drovector_small<L>&, const double&);
58  //////// /= ////////
59  template<CPPL_INT L> inline friend drovector_small<L>& operator/=(drovector_small<L>&, const double&);
60  //////// unary ////////
61  template<CPPL_INT L> inline friend const drovector_small<L>& operator+(const drovector_small<L>&);
62  template<CPPL_INT L> inline friend drovector_small<L> operator-(const drovector_small<L>&);
63  //////// + ////////
64  template<CPPL_INT L> inline friend drovector_small<L> operator+(const drovector_small<L>&, const drovector_small<L>&);
65  //////// - ////////
66  template<CPPL_INT L> inline friend drovector_small<L> operator-(const drovector_small<L>&, const drovector_small<L>&);
67  //////// * ////////
68  template<CPPL_INT L> inline friend double operator*(const drovector_small<L>&, const dcovector_small<L>&);
69  template<CPPL_INT M, CPPL_INT N> inline friend drovector_small<N> operator*(const drovector_small<M>&, const dgematrix_small<M,N>&);
70  template<CPPL_INT L> inline friend drovector_small<L> operator*(const drovector_small<L>&, const dsymatrix_small<L>&);
71  template<CPPL_INT L> inline friend drovector_small<L> operator*(const drovector_small<L>&, const double&);
72  //////// / ////////
73  template<CPPL_INT L> inline friend drovector_small<L> operator/(const drovector_small<L>&, const double&);
74  //////// double ////////
75  template<CPPL_INT L> inline friend drovector_small<L> operator*(const double&, const drovector_small<L>&);
76  //////// hadamerd ////////
77  template<CPPL_INT L> inline friend drovector_small<L> hadamerd(const drovector_small<L>&, const drovector_small<L>&);
78 #endif//_MSC_VER
79 };
80 
81 ///////////////////////////////////////////////////////////////////////////////
82 ///////////////////////////////////////////////////////////////////////////////
83 ///////////////////////////////////////////////////////////////////////////////
84 
85 inline double operator/(const drovec2&, const drovec2&);
86 inline drovec3 operator/(const drovec3&, const drovec3&);
friend drovector_small< L > & operator/=(drovector_small< L > &, const double &)
drovector_small< l > & zero()
double & operator()(const CPPL_INT &)
friend drovector_small< L > & operator+=(drovector_small< L > &, const drovector_small< L > &)
Samll Real Double-precision Symmetric Matrix Class.
friend double operator*(const drovector_small< L > &, const dcovector_small< L > &)
drovector_small< L > & operator=(const drovector_small< L > &)
Samll Real Double-precision General Dence Matrix Class.
friend dcovector_small< _l > t(const drovector_small< _l > &)
drovector_small< l > & set(const CPPL_INT &, const double &)
friend drovector_small< L > hadamerd(const drovector_small< L > &, const drovector_small< L > &)
Samll Real Double-precision Row Vector Class.
Real Double-precision Row Vector Class.
Definition: drovector.hpp:3
_drovector to_drovector() const
friend drovector_small< L > operator/(const drovector_small< L > &, const double &)
double array[l]
1D array to store vector data
friend double damax(const drovector_small< _l > &)
void read(const char *filename)
double operator/(const drovec2 &, const drovec2 &)
friend drovector_small< L > & operator*=(drovector_small< L > &, const double &)
(DO NOT USE) Smart-temporary Real Double-precision Row Vector Class
Definition: _drovector.hpp:3
friend const drovector_small< L > & operator+(const drovector_small< L > &)
friend drovector_small< L > operator-(const drovector_small< L > &)
void write(const char *filename) const
friend double nrm2(const drovector_small< _l > &)
Samll Real Double-precision Column Vector Class.
friend CPPL_INT idamax(const drovector_small< _l > &)
friend drovector_small< L > & operator-=(drovector_small< L > &, const drovector_small< L > &)