Main Page | Class List | File List | Class Members | File Members | Related Pages

_dgematrix.hpp

Go to the documentation of this file.
00001 //=============================================================================
00002 //! Smart-Temporary double-precision general matrix class (DO NOT USE)
00003 class _dgematrix
00004 {
00005 public:
00006   //// objects ////
00007   mutable long M; //!< global matrix row size
00008   mutable long N; //!< global matrix column size
00009   mutable long Ml; //!< local matrix row size
00010   mutable long Nl; //!< local matrix column size
00011   mutable long Desc[9]; //!< matrix description
00012   mutable double* Array; //!< 1D array to store matrix data
00013   
00014   //// constructor ////
00015   inline _dgematrix();
00016   inline _dgematrix(const _dgematrix&);
00017   inline _dgematrix(const dgematrix&);
00018   //inline dgematrix(const dgbmatrix&);
00019   //inline dgematrix(const _dgbmatrix&);
00020   inline _dgematrix(const long&, const long&);
00021   inline ~_dgematrix(); //destructor
00022   
00023   //// io ////
00024   inline CPPSL_double operator()(const long&, const long&) const;
00025   inline friend std::ostream& operator<<(std::ostream&, const dgematrix&);
00026   
00027   //// misc ////
00028   inline void destroy() const;
00029   inline void absorb(dgematrix&) const;
00030   inline void zero() const;
00031   inline void identity() const;
00032   
00033   //// calc ////
00034   inline friend _dgematrix t(const _dgematrix&);
00035   //inline friend _dgematrix i(dgematrix);
00036   //inline friend void idamax(long&, long&, const dgematrix&);
00037   //inline friend double damax(const dgematrix&);
00038 
00039   //// unary ////
00040   inline friend const _dgematrix& operator+(const _dgematrix&);
00041   inline friend _dgematrix operator-(const _dgematrix&);
00042   
00043   //// + ////
00044   inline friend _dgematrix operator+(const  dgematrix&, const  dgematrix&);
00045   inline friend _dgematrix operator+(const  dgematrix&, const _dgematrix&);
00046   inline friend _dgematrix operator+(const _dgematrix&, const  dgematrix&);
00047   inline friend _dgematrix operator+(const _dgematrix&, const _dgematrix&);
00048   
00049   //inline friend _dgematrix operator+(const  dgematrix&, const  dgbmatrix&);
00050   //inline friend _dgematrix operator+(const  dgematrix&, const _dgbmatrix&);
00051   //inline friend _dgematrix operator+(const _dgematrix&, const  dgbmatrix&);
00052   //inline friend _dgematrix operator+(const _dgematrix&, const _dgbmatrix&);
00053   
00054   //inline friend _dgematrix operator+(const  dgbmatrix&, const  dgematrix&);
00055   //inline friend _dgematrix operator+(const  dgbmatrix&, const _dgematrix&);
00056   //inline friend _dgematrix operator+(const _dgbmatrix&, const  dgematrix&);
00057   //inline friend _dgematrix operator+(const _dgbmatrix&, const _dgematrix&);
00058   
00059   //// - ////
00060   inline friend _dgematrix operator-(const  dgematrix&);
00061   
00062   inline friend _dgematrix operator-(const  dgematrix&, const  dgematrix&);
00063   inline friend _dgematrix operator-(const  dgematrix&, const _dgematrix&);
00064   inline friend _dgematrix operator-(const _dgematrix&, const  dgematrix&);
00065   inline friend _dgematrix operator-(const _dgematrix&, const _dgematrix&);
00066   
00067   //inline friend _dgematrix operator-(const  dgematrix&, const  dgbmatrix&);
00068   //inline friend _dgematrix operator-(const  dgematrix&, const _dgbmatrix&);
00069   //inline friend _dgematrix operator-(const _dgematrix&, const  dgbmatrix&);  
00070   //inline friend _dgematrix operator-(const _dgematrix&, const _dgbmatrix&);
00071   
00072   //inline friend _dgematrix operator-(const  dgbmatrix&, const  dgematrix&);
00073   //inline friend _dgematrix operator-(const  dgbmatrix&, const _dgematrix&);
00074   //inline friend _dgematrix operator-(const _dgbmatrix&, const  dgematrix&);
00075   //inline friend _dgematrix operator-(const _dgbmatrix&, const _dgematrix&);
00076   
00077   //// * ////
00078   inline friend _dgematrix operator*(const  dgematrix&, const  dgematrix&);
00079   inline friend _dgematrix operator*(const  dgematrix&, const _dgematrix&);
00080   inline friend _dgematrix operator*(const _dgematrix&, const  dgematrix&);
00081   inline friend _dgematrix operator*(const _dgematrix&, const _dgematrix&);
00082   
00083   //inline friend _dgematrix operator*(const  dgematrix&, const  dgbmatrix&);
00084   //inline friend _dgematrix operator*(const  dgematrix&, const _dgbmatrix&);
00085   //inline friend _dgematrix operator*(const _dgematrix&, const  dgbmatrix&);
00086   //inline friend _dgematrix operator*(const _dgematrix&, const _dgbmatrix&);
00087   
00088   inline friend _dgematrix operator*(const  dgematrix&, const     double&);
00089   inline friend _dgematrix operator*(const _dgematrix&, const     double&);
00090   inline friend _dgematrix operator*(const     double&, const _dgematrix&);
00091   inline friend _dgematrix operator*(const     double&, const  dgematrix&);
00092   
00093   //inline friend _dgematrix operator*(const  dgbmatrix&, const  dgematrix&);
00094   //inline friend _dgematrix operator*(const  dgbmatrix&, const _dgematrix&);
00095   //inline friend _dgematrix operator*(const _dgbmatrix&, const  dgematrix&);
00096   //inline friend _dgematrix operator*(const _dgbmatrix&, const _dgematrix&);
00097   
00098   inline friend _dgematrix operator*(const  dcovector&, const  drovector&);
00099   inline friend _dgematrix operator*(const  dcovector&, const _drovector&);
00100   inline friend _dgematrix operator*(const _dcovector&, const  drovector&);
00101   inline friend _dgematrix operator*(const _dcovector&, const _drovector&);
00102   
00103   inline friend _drovector operator*(const  drovector&, const _dgematrix&);
00104   inline friend _drovector operator*(const _drovector&, const _dgematrix&);
00105   inline friend _dcovector operator*(const _dgematrix&, const  dcovector&);
00106   inline friend _dcovector operator*(const _dgematrix&, const _dcovector&);
00107   
00108   //// / ////
00109   inline friend _dgematrix operator/(const  dgematrix&, const     double&);
00110   inline friend _dgematrix operator/(const _dgematrix&, const     double&);
00111 
00112   //// friend classes ////
00113   friend class  dgematrix;
00114   //friend class  dgbmatrix;
00115   //friend class _dgbmatrix;
00116   friend class  dcovector;
00117   friend class _dcovector;
00118   friend class  drovector;
00119   friend class _drovector;
00120 };

Generated on Sat Jan 31 19:25:43 2004 for CPPScaLapack by doxygen 1.3.5