Menu

[r193]: / trunk / include / small / dcovector_small.hpp  Maximize  Restore  History

Download this file

107 lines (96 with data), 5.3 kB

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
//=============================================================================
//! Samll Real Double-precision Column Vector Class
template<CPPL_INT l> class dcovector_small
{
public:
///////////////////////////////////////////////
/////////////////// objects ///////////////////
///////////////////////////////////////////////
double array[l];
///////////////////////////////////////////////
///////////////// constructors ////////////////
///////////////////////////////////////////////
inline dcovector_small();
inline explicit dcovector_small(const dcovector&);
inline dcovector_small(const double&, const double&);
inline dcovector_small(const double&, const double&, const double&);
inline dcovector_small(const double&, const double&, const double&, const double&);
inline ~dcovector_small();
///////////////////////////////////////////////
////////////////// functions //////////////////
///////////////////////////////////////////////
//////// cast ////////
inline _dcovector to_dcovector() const;
//////// io ////////
inline double& operator()(const CPPL_INT&);
inline double operator()(const CPPL_INT&) const;
inline dcovector_small<l>& set(const CPPL_INT&, const double&);
template<CPPL_INT _l> inline friend std::ostream& operator<<(std::ostream&, const dcovector_small<_l>&);
inline void read(const char* filename);
inline void write(const char* filename) const;
//////// calc ////////
#ifndef _MSC_VER
template<CPPL_INT _l> inline friend drovector_small<_l> t(const dcovector_small<_l>&);
template<CPPL_INT _l> inline friend double nrm2(const dcovector_small<_l>&);
template<CPPL_INT _l> inline friend CPPL_INT idamax(const dcovector_small<_l>&);
template<CPPL_INT _l> inline friend double damax(const dcovector_small<_l>&);
#endif//_MSC_VER
//////// misc ////////
inline dcovector_small<l>& zero();
///////////////////////////////////////////////
///////////// numerical operators /////////////
///////////////////////////////////////////////
#ifndef _MSC_VER
//////// = ////////
template<CPPL_INT L> inline dcovector_small<L>& operator= (const dcovector_small<L>&);
//////// += ////////
template<CPPL_INT L> inline friend dcovector_small<L>& operator+=(dcovector_small<L>&, const dcovector_small<L>&);
//////// -= ////////
template<CPPL_INT L> inline friend dcovector_small<L>& operator-=(dcovector_small<L>&, const dcovector_small<L>&);
//////// *= ////////
template<CPPL_INT L> inline friend dcovector_small<L>& operator*=(dcovector_small<L>&, const double&);
//////// /= ////////
template<CPPL_INT L> inline friend dcovector_small<L>& operator/=(dcovector_small<L>&, const double&);
//////// unary ////////
template<CPPL_INT L> inline friend const dcovector_small<L>& operator+(const dcovector_small<L>&);
template<CPPL_INT L> inline friend dcovector_small<L> operator-(const dcovector_small<L>&);
//////// + ////////
template<CPPL_INT L> inline friend dcovector_small<L> operator+(const dcovector_small<L>&, const dcovector_small<L>&);
//////// - ////////
template<CPPL_INT L> inline friend dcovector_small<L> operator-(const dcovector_small<L>&, const dcovector_small<L>&);
//////// * ////////
template<CPPL_INT M, CPPL_INT N> inline friend dgematrix_small<M,N> operator*(const dcovector_small<M>&, const drovector_small<N>&);
template<CPPL_INT L> inline friend dcovector_small<L> operator*(const dcovector_small<L>&, const double&);
//////// / ////////
template<CPPL_INT L> inline friend dcovector_small<L> operator/(const dcovector_small<L>&, const double&);
//////// double ////////
template<CPPL_INT L> inline friend dcovector_small<L> operator*(const double&, const dcovector_small<L>&);
//////// hadamerd ////////
template<CPPL_INT L> inline friend dcovector_small<L> hadamerd(const dcovector_small<L>&, const dcovector_small<L>&);
#endif//_MSC_VER
};
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
//=============================================================================
//////// dcovec2 ////////
inline double operator/(const dcovec2&, const dcovec2&);
//inline dquater vr2q(const dcovec2&, const double&);
//inline dquater vt2q(const dcovec2&, const double&);
inline dcovec2 rotate(const dcovec2&, const double&);
//////// dcovec3 ////////
inline dcovec3 operator/(const dcovec3&, const dcovec3&);
inline dcovec3 operator/=(dcovec3&, const dcovec3&);
inline dquater vr2q(const dcovec3&, const double&);
inline dquater vt2q(const dcovec3&, const double&);
inline dcovec3 rotate(const dcovec3&, const dquater&);
//////// dquater ////////
inline dquater conj(const dquater&);
inline dcovec3 imag(const dquater&);
inline dquater inv(const dquater&);
inline dquater operator*(const dquater&, const dquater&);
inline dquater operator/(const dquater&, const dquater&);
inline dquater operator*=(dquater&, const dquater&);
inline dquater operator/=(dquater&, const dquater&);
inline dcovec3 q2vt(const dquater&);
inline dgemat3 q2m(const dquater&);
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.