CPPLapack
 All Classes Files Functions Variables Friends
_dsymatrix.hpp
Go to the documentation of this file.
00001 //=============================================================================
00002 //! (DO NOT USE) Smart-temporary Real Double-precision Symmetric Matrix Class
00003 class _dsymatrix
00004 {
00005 public:
00006   ///////////////////////////////////////////////
00007   /////////////////// objects ///////////////////
00008   ///////////////////////////////////////////////
00009   mutable long const& m; //!< matrix row size
00010   mutable long n; //!< matrix column size
00011   mutable double* array; //!< 1D array to store matrix data
00012   mutable double** darray; //!< array of pointers of column head addresses
00013   
00014   ///////////////////////////////////////////////
00015   ///////////////// constructors ////////////////
00016   ///////////////////////////////////////////////
00017   inline _dsymatrix();
00018   inline _dsymatrix(const _dsymatrix&);
00019   inline ~_dsymatrix(); //destructor
00020   
00021   ///////////////////////////////////////////////
00022   ////////////////// functions //////////////////
00023   ///////////////////////////////////////////////
00024   //////// cast ////////
00025   inline _zhematrix to_zhematrix() const;
00026   inline _dgematrix to_dgematrix() const;
00027   inline _dssmatrix to_dssmatrix(const double=DBL_MIN) const;
00028   
00029   //////// io ////////
00030   inline double& operator()(const long&, const long&) const;
00031   inline friend std::ostream& operator<<(std::ostream&, const dsymatrix&);
00032   inline void write(const char*) const;
00033   
00034   //////// misc ////////
00035   inline void nullify() const;
00036   inline void destroy() const;
00037   inline void complete() const;
00038   
00039   //////// calc ////////
00040   inline friend _dsymatrix t(const _dsymatrix&);
00041   inline friend _dsymatrix i(const _dsymatrix&);
00042   inline friend void idamax(long&, long&, const _dsymatrix&);
00043   inline friend double damax(const _dsymatrix&);
00044   
00045   ///////////////////////////////////////////////
00046   ///////////// numerical operators /////////////
00047   ///////////////////////////////////////////////
00048   //////// unary ////////
00049   inline friend const _dsymatrix& operator+(const _dsymatrix&);
00050   inline friend _dsymatrix operator-(const _dsymatrix&);
00051   
00052   //////// + ////////
00053   inline friend _dgematrix operator+(const _dsymatrix&, const  dgematrix&);
00054   inline friend _dgematrix operator+(const _dsymatrix&, const _dgematrix&);
00055   inline friend _dsymatrix operator+(const _dsymatrix&, const  dsymatrix&);
00056   inline friend _dsymatrix operator+(const _dsymatrix&, const _dsymatrix&);
00057   inline friend _dgematrix operator+(const _dsymatrix&, const  dgbmatrix&);
00058   inline friend _dgematrix operator+(const _dsymatrix&, const _dgbmatrix&);
00059   inline friend _dgematrix operator+(const _dsymatrix&, const  dgsmatrix&);
00060   inline friend _dgematrix operator+(const _dsymatrix&, const _dgsmatrix&);
00061   inline friend _dsymatrix operator+(const _dsymatrix&, const  dssmatrix&);
00062   inline friend _dsymatrix operator+(const _dsymatrix&, const _dssmatrix&);
00063   
00064   //////// - ////////
00065   inline friend _dgematrix operator-(const _dsymatrix&, const  dgematrix&);  
00066   inline friend _dgematrix operator-(const _dsymatrix&, const _dgematrix&);
00067   inline friend _dsymatrix operator-(const _dsymatrix&, const  dsymatrix&);
00068   inline friend _dsymatrix operator-(const _dsymatrix&, const _dsymatrix&);
00069   inline friend _dgematrix operator-(const _dsymatrix&, const  dgbmatrix&);  
00070   inline friend _dgematrix operator-(const _dsymatrix&, const _dgbmatrix&);
00071   inline friend _dgematrix operator-(const _dsymatrix&, const  dgsmatrix&);
00072   inline friend _dgematrix operator-(const _dsymatrix&, const _dgsmatrix&);
00073   inline friend _dsymatrix operator-(const _dsymatrix&, const  dssmatrix&);
00074   inline friend _dsymatrix operator-(const _dsymatrix&, const _dssmatrix&);
00075   
00076   //////// * ////////
00077   inline friend _dcovector operator*(const _dsymatrix&, const  dcovector&);
00078   inline friend _dcovector operator*(const _dsymatrix&, const _dcovector&);
00079   inline friend _dgematrix operator*(const _dsymatrix&, const  dgematrix&);
00080   inline friend _dgematrix operator*(const _dsymatrix&, const _dgematrix&);
00081   inline friend _dgematrix operator*(const _dsymatrix&, const  dsymatrix&);
00082   inline friend _dgematrix operator*(const _dsymatrix&, const _dsymatrix&);
00083   inline friend _dgematrix operator*(const _dsymatrix&, const  dgbmatrix&);
00084   inline friend _dgematrix operator*(const _dsymatrix&, const _dgbmatrix&);
00085   inline friend _dgematrix operator*(const _dsymatrix&, const  dgsmatrix&);
00086   inline friend _dgematrix operator*(const _dsymatrix&, const _dgsmatrix&);
00087   inline friend _dgematrix operator*(const _dsymatrix&, const  dssmatrix&);
00088   inline friend _dgematrix operator*(const _dsymatrix&, const _dssmatrix&);
00089   inline friend _dsymatrix operator*(const _dsymatrix&, const     double&);
00090   
00091   //////// / ////////
00092   inline friend _dsymatrix operator/(const _dsymatrix&, const     double&);
00093   
00094   //////// double ////////
00095   inline friend _dsymatrix operator*(const     double&, const _dsymatrix&);
00096 };
 All Classes Files Functions Variables Friends