CPPLapack
 All Classes Files Functions Variables Friends Pages
dcovector_small.hpp
Go to the documentation of this file.
1 //=============================================================================
2 //! Samll Real Double-precision Column Vector Class
3 template<CPPL_INT l> class dcovector_small
4 {
5 public:
6  ///////////////////////////////////////////////
7  /////////////////// objects ///////////////////
8  ///////////////////////////////////////////////
9  double array[l];
10 
11  ///////////////////////////////////////////////
12  ///////////////// constructors ////////////////
13  ///////////////////////////////////////////////
14  inline dcovector_small();
15  inline explicit dcovector_small(const dcovector&);
16  inline dcovector_small(const double&, const double&);
17  inline dcovector_small(const double&, const double&, const double&);
18  inline dcovector_small(const double&, const double&, const double&, const double&);
19  inline ~dcovector_small();
20 
21  ///////////////////////////////////////////////
22  ////////////////// functions //////////////////
23  ///////////////////////////////////////////////
24  //////// cast ////////
25  inline _dcovector to_dcovector() const;
26 
27  //////// io ////////
28  inline double& operator()(const CPPL_INT&);
29  inline double operator()(const CPPL_INT&) const;
30  inline dcovector_small<l>& set(const CPPL_INT&, const double&);
31  template<CPPL_INT _l> inline friend std::ostream& operator<<(std::ostream&, const dcovector_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 drovector_small<_l> t(const dcovector_small<_l>&);
38  template<CPPL_INT _l> inline friend double nrm2(const dcovector_small<_l>&);
39  template<CPPL_INT _l> inline friend CPPL_INT idamax(const dcovector_small<_l>&);
40  template<CPPL_INT _l> inline friend double damax(const dcovector_small<_l>&);
41 #endif//_MSC_VER
42 
43  //////// misc ////////
44  inline dcovector_small<l>& zero();
45 
46  ///////////////////////////////////////////////
47  ///////////// numerical operators /////////////
48  ///////////////////////////////////////////////
49 #ifndef _MSC_VER
50  //////// = ////////
51  template<CPPL_INT L> inline dcovector_small<L>& operator= (const dcovector_small<L>&);
52  //////// += ////////
53  template<CPPL_INT L> inline friend dcovector_small<L>& operator+=(dcovector_small<L>&, const dcovector_small<L>&);
54  //////// -= ////////
55  template<CPPL_INT L> inline friend dcovector_small<L>& operator-=(dcovector_small<L>&, const dcovector_small<L>&);
56  //////// *= ////////
57  template<CPPL_INT L> inline friend dcovector_small<L>& operator*=(dcovector_small<L>&, const double&);
58  //////// /= ////////
59  template<CPPL_INT L> inline friend dcovector_small<L>& operator/=(dcovector_small<L>&, const double&);
60  //////// unary ////////
61  template<CPPL_INT L> inline friend const dcovector_small<L>& operator+(const dcovector_small<L>&);
62  template<CPPL_INT L> inline friend dcovector_small<L> operator-(const dcovector_small<L>&);
63  //////// + ////////
64  template<CPPL_INT L> inline friend dcovector_small<L> operator+(const dcovector_small<L>&, const dcovector_small<L>&);
65  //////// - ////////
66  template<CPPL_INT L> inline friend dcovector_small<L> operator-(const dcovector_small<L>&, const dcovector_small<L>&);
67  //////// * ////////
68  template<CPPL_INT M, CPPL_INT N> inline friend dgematrix_small<M,N> operator*(const dcovector_small<M>&, const drovector_small<N>&);
69  template<CPPL_INT L> inline friend dcovector_small<L> operator*(const dcovector_small<L>&, const double&);
70  //////// / ////////
71  template<CPPL_INT L> inline friend dcovector_small<L> operator/(const dcovector_small<L>&, const double&);
72  //////// double ////////
73  template<CPPL_INT L> inline friend dcovector_small<L> operator*(const double&, const dcovector_small<L>&);
74  //////// hadamerd ////////
75  template<CPPL_INT L> inline friend dcovector_small<L> hadamerd(const dcovector_small<L>&, const dcovector_small<L>&);
76 #endif//_MSC_VER
77 };
78 
79 ///////////////////////////////////////////////////////////////////////////////
80 ///////////////////////////////////////////////////////////////////////////////
81 ///////////////////////////////////////////////////////////////////////////////
82 
83 //=============================================================================
84 //////// dcovec2 ////////
85 inline double operator/(const dcovec2&, const dcovec2&);
86 //inline dquater vr2q(const dcovec2&, const double&);
87 //inline dquater vt2q(const dcovec2&, const double&);
88 inline dcovec2 rotate(const dcovec2&, const double&);
89 
90 //////// dcovec3 ////////
91 inline dcovec3 operator/(const dcovec3&, const dcovec3&);
92 inline dcovec3 operator/=(dcovec3&, const dcovec3&);
93 inline dquater vr2q(const dcovec3&, const double&);
94 inline dquater vt2q(const dcovec3&, const double&);
95 inline dcovec3 rotate(const dcovec3&, const dquater&);
96 
97 //////// dquater ////////
98 inline dquater conj(const dquater&);
99 inline dcovec3 imag(const dquater&);
100 inline dquater inv(const dquater&);
101 inline dquater operator*(const dquater&, const dquater&);
102 inline dquater operator/(const dquater&, const dquater&);
103 inline dquater operator*=(dquater&, const dquater&);
104 inline dquater operator/=(dquater&, const dquater&);
105 inline dcovec3 q2vt(const dquater&);
106 inline dgemat3 q2m(const dquater&);
dcovec3 q2vt(const dquater &)
dquater conj(const dquater &)
dgemat3 q2m(const dquater &)
dcovector_small< l > & zero()
dcovec3 operator/=(dcovec3 &, const dcovec3 &)
void write(const char *filename) const
double & operator()(const CPPL_INT &)
friend double nrm2(const dcovector_small< _l > &)
dcovector_small< L > & operator=(const dcovector_small< L > &)
Samll Real Double-precision General Dence Matrix Class.
dcovector_small< l > & set(const CPPL_INT &, const double &)
dquater vr2q(const dcovec3 &, const double &)
dquater operator*(const dquater &, const dquater &)
friend dcovector_small< L > hadamerd(const dcovector_small< L > &, const dcovector_small< L > &)
friend dcovector_small< L > & operator/=(dcovector_small< L > &, const double &)
Samll Real Double-precision Row Vector Class.
dquater operator*=(dquater &, const dquater &)
friend double damax(const dcovector_small< _l > &)
friend dcovector_small< L > operator/(const dcovector_small< L > &, const double &)
friend drovector_small< _l > t(const dcovector_small< _l > &)
friend dcovector_small< L > & operator*=(dcovector_small< L > &, const double &)
friend dgematrix_small< M, N > operator*(const dcovector_small< M > &, const drovector_small< N > &)
friend dcovector_small< L > operator-(const dcovector_small< L > &)
friend const dcovector_small< L > & operator+(const dcovector_small< L > &)
friend dcovector_small< L > & operator-=(dcovector_small< L > &, const dcovector_small< L > &)
double operator/(const dcovec2 &, const dcovec2 &)
void read(const char *filename)
Samll Real Double-precision Column Vector Class.
friend CPPL_INT idamax(const dcovector_small< _l > &)
Real Double-precision Column Vector Class.
Definition: dcovector.hpp:3
dquater vt2q(const dcovec3 &, const double &)
dquater inv(const dquater &)
friend dcovector_small< L > & operator+=(dcovector_small< L > &, const dcovector_small< L > &)
dcovec3 imag(const dquater &)
_dcovector to_dcovector() const
(DO NOT USE) Smart-temporary Real Double-precision Column Vector Class
Definition: _dcovector.hpp:3
dcovec2 rotate(const dcovec2 &, const double &)