CPPLapack
 All Classes Files Functions Variables Friends
drovector_small.hpp
Go to the documentation of this file.
00001 //=============================================================================
00002 //! Samll Real Double-precision Row Vector Class
00003 template<long l> class drovector_small
00004 {
00005 public:
00006   ///////////////////////////////////////////////
00007   /////////////////// objects ///////////////////
00008   ///////////////////////////////////////////////
00009   double array[l];
00010   
00011   ///////////////////////////////////////////////
00012   ///////////////// constructors ////////////////
00013   ///////////////////////////////////////////////
00014   inline drovector_small();
00015   inline explicit drovector_small(const drovector&);
00016   inline drovector_small(const double&);
00017   inline drovector_small(const double&, const double&);
00018   inline drovector_small(const double&, const double&, const double&);
00019   inline ~drovector_small();
00020   
00021   ///////////////////////////////////////////////
00022   ////////////////// functions //////////////////
00023   ///////////////////////////////////////////////
00024   //////// cast ////////
00025   inline _drovector to_drovector() const;
00026   
00027   //////// io ////////
00028   inline double& operator()(const long&);
00029   inline double  operator()(const long&) const;
00030   inline drovector_small<l>& set(const long&, const double&);
00031   template<long _l> inline friend std::ostream& operator<<(std::ostream&, const drovector_small<_l>&);
00032   inline void read(const char* filename);
00033   inline void write(const char* filename) const;
00034   
00035   //////// calc ////////
00036   template<long _l> inline friend dcovector_small<_l> t(const drovector_small<_l>&);
00037   template<long _l> inline friend double nrm2(const drovector_small<_l>&);
00038   template<long _l> inline friend long idamax(const drovector_small<_l>&);
00039   template<long _l> inline friend double damax(const drovector_small<_l>&);
00040   
00041   //////// misc ////////
00042   inline drovector_small<l>& zero();
00043   
00044   ///////////////////////////////////////////////
00045   ///////////// numerical operators /////////////
00046   ///////////////////////////////////////////////
00047   //////// = ////////
00048   template<long L> inline drovector_small<L>& operator= (const  drovector_small<L>&);
00049   //////// += ////////
00050   template<long L> inline friend drovector_small<L>& operator+=(drovector_small<L>&, const drovector_small<L>&);
00051   //////// -= ////////
00052   template<long L> inline friend drovector_small<L>& operator-=(drovector_small<L>&, const drovector_small<L>&);
00053   //////// *= ////////
00054   template<long L> inline friend drovector_small<L>& operator*=(drovector_small<L>&, const             double&);
00055   //////// /= ////////
00056   template<long L> inline friend drovector_small<L>& operator/=(drovector_small<L>&, const             double&);
00057   //////// unary ////////
00058   template<long L> inline friend const drovector_small<L>& operator+(const drovector_small<L>&);
00059   template<long L> inline friend drovector_small<L> operator-(const drovector_small<L>&);
00060   //////// + ////////
00061   template<long L> inline friend drovector_small<L> operator+(const drovector_small<L>&, const drovector_small<L>&);
00062   //////// - ////////
00063   template<long L> inline friend drovector_small<L> operator-(const drovector_small<L>&, const drovector_small<L>&);
00064   //////// * ////////
00065   template<long L> inline friend             double operator*(const drovector_small<L>&, const dcovector_small<L>&);
00066   template<long M, long N> inline friend drovector_small<N> operator*(const drovector_small<M>&, const dgematrix_small<M,N>&);
00067   template<long L> inline friend drovector_small<L> operator*(const drovector_small<L>&, const dsymatrix_small<L>&);
00068   template<long L> inline friend drovector_small<L> operator*(const drovector_small<L>&, const             double&);
00069   //////// / ////////
00070   template<long L> inline friend drovector_small<L> operator/(const drovector_small<L>&, const             double&);
00071   //////// double ////////
00072   template<long L> inline friend drovector_small<L> operator*(const             double&, const drovector_small<L>&);
00073 };
00074 
00075 ///////////////////////////////////////////////////////////////////////////////
00076 ///////////////////////////////////////////////////////////////////////////////
00077 ///////////////////////////////////////////////////////////////////////////////
00078 
00079 inline double  operator/(const drovec2&, const drovec2&);
00080 inline drovec3 operator/(const drovec3&, const drovec3&);
 All Classes Files Functions Variables Friends