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