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