CPPLapack
 All Classes Files Functions Variables Friends
dgbmatrix.hpp
Go to the documentation of this file.
00001 //=============================================================================
00002 //! Real Double-precision General Band Matrix Class
00003 class dgbmatrix
00004 {
00005 public:
00006   ///////////////////////////////////////////////
00007   /////////////////// objects ///////////////////
00008   ///////////////////////////////////////////////
00009   long m; //!< matrix row size
00010   long n; //!< matrix column size
00011   long kl; //!< lower band width
00012   long ku; //!< upper band width
00013   double* array; //!< 1D array to store matrix data
00014   double** darray; //!< array of pointers of column head addresses
00015   
00016   ///////////////////////////////////////////////
00017   ///////////////// constructors ////////////////
00018   ///////////////////////////////////////////////
00019   inline dgbmatrix();
00020   inline dgbmatrix(const dgbmatrix&);
00021   inline dgbmatrix(const _dgbmatrix&);
00022   inline dgbmatrix(const long&, const long&, const long&, const long&);
00023   inline dgbmatrix(const char *);
00024   inline ~dgbmatrix(); //destructor
00025   
00026   ///////////////////////////////////////////////
00027   ////////////////// functions //////////////////
00028   ///////////////////////////////////////////////
00029   //////// cast ////////
00030   inline _zgbmatrix to_zgbmatrix() const;
00031   inline _dgematrix to_dgematrix() const;
00032   
00033   //////// io ////////
00034   inline double& operator()(const long&, const long&);
00035   inline double operator()(const long&, const long&) const;
00036   inline dgbmatrix& set(const long&, const long&, const double&); //const;
00037   inline friend std::ostream& operator<<(std::ostream&, const dgbmatrix&);
00038   inline void write(const char*) const;
00039   inline void read(const char*);
00040   
00041   //////// misc ////////
00042   inline void clear();
00043   inline dgbmatrix& zero();
00044   inline dgbmatrix& identity();
00045   inline void chsign();
00046   inline void copy(const dgbmatrix&);
00047   inline void shallow_copy(const _dgbmatrix&);
00048   inline dgbmatrix& resize(const long&, const long&, const long&, const long&);
00049   inline _drovector row(const long&) const;
00050   inline _dcovector col(const long&) const;
00051   inline friend void swap(dgbmatrix&, dgbmatrix&);
00052   inline friend _dgbmatrix _(dgbmatrix&);
00053   
00054   //////// calc ////////
00055   inline friend _dgbmatrix t(const dgbmatrix&);
00056   inline friend _dgematrix i(const dgbmatrix&);
00057   
00058   //////// lapack ////////
00059   inline long dgbsv(dgematrix&);
00060   inline long dgbsv(dcovector&);
00061   
00062   ///////////////////////////////////////////////
00063   ///////////// numerical operators /////////////
00064   ///////////////////////////////////////////////
00065   //////// = ////////
00066   inline dgbmatrix& operator=(const  dgbmatrix&);
00067   inline dgbmatrix& operator=(const _dgbmatrix&);
00068   
00069   //////// += ////////
00070   inline dgbmatrix& operator+=(const  dgbmatrix&);
00071   inline dgbmatrix& operator+=(const _dgbmatrix&);
00072   
00073   //////// -= ////////
00074   inline dgbmatrix& operator-=(const  dgbmatrix&);
00075   inline dgbmatrix& operator-=(const _dgbmatrix&);
00076   
00077   //////// *= ////////
00078   inline dgbmatrix& operator*=(const  dgbmatrix&);
00079   inline dgbmatrix& operator*=(const _dgbmatrix&);
00080   inline dgbmatrix& operator*=(const     double&);
00081   
00082   //////// /= ////////
00083   inline dgbmatrix& operator/=(const     double&);
00084   
00085   //////// unary ////////
00086   inline friend const dgbmatrix& operator+(const dgbmatrix&);
00087   inline friend _dgbmatrix operator-(const dgbmatrix&);
00088   
00089   //////// + ////////
00090   inline friend _dgematrix operator+(const  dgbmatrix&, const  dgematrix&);
00091   inline friend _dgematrix operator+(const  dgbmatrix&, const _dgematrix&);
00092   inline friend _dgematrix operator+(const  dgbmatrix&, const  dsymatrix&);
00093   inline friend _dgematrix operator+(const  dgbmatrix&, const _dsymatrix&);
00094   inline friend _dgbmatrix operator+(const  dgbmatrix&, const  dgbmatrix&);
00095   inline friend _dgbmatrix operator+(const  dgbmatrix&, const _dgbmatrix&);
00096   inline friend _dgematrix operator+(const  dgbmatrix&, const  dgsmatrix&);
00097   inline friend _dgematrix operator+(const  dgbmatrix&, const _dgsmatrix&);
00098   inline friend _dgematrix operator+(const  dgbmatrix&, const  dssmatrix&);
00099   inline friend _dgematrix operator+(const  dgbmatrix&, const _dssmatrix&);
00100   
00101   //////// - ////////
00102   inline friend _dgematrix operator-(const  dgbmatrix&, const  dgematrix&);
00103   inline friend _dgematrix operator-(const  dgbmatrix&, const _dgematrix&);
00104   inline friend _dgematrix operator-(const  dgbmatrix&, const  dsymatrix&);
00105   inline friend _dgematrix operator-(const  dgbmatrix&, const _dsymatrix&);
00106   inline friend _dgbmatrix operator-(const  dgbmatrix&, const  dgbmatrix&);
00107   inline friend _dgbmatrix operator-(const  dgbmatrix&, const _dgbmatrix&);
00108   inline friend _dgematrix operator-(const  dgbmatrix&, const  dgsmatrix&);
00109   inline friend _dgematrix operator-(const  dgbmatrix&, const _dgsmatrix&);
00110   inline friend _dgematrix operator-(const  dgbmatrix&, const  dssmatrix&);
00111   inline friend _dgematrix operator-(const  dgbmatrix&, const _dssmatrix&);
00112   
00113   //////// * ////////
00114   inline friend _dcovector operator*(const  dgbmatrix&, const  dcovector&);
00115   inline friend _dcovector operator*(const  dgbmatrix&, const _dcovector&);
00116   inline friend _dgematrix operator*(const  dgbmatrix&, const  dgematrix&);
00117   inline friend _dgematrix operator*(const  dgbmatrix&, const _dgematrix&);
00118   inline friend _dgematrix operator*(const  dgbmatrix&, const  dsymatrix&);
00119   inline friend _dgematrix operator*(const  dgbmatrix&, const _dsymatrix&);
00120   inline friend _dgbmatrix operator*(const  dgbmatrix&, const  dgbmatrix&);
00121   inline friend _dgbmatrix operator*(const  dgbmatrix&, const _dgbmatrix&);
00122   inline friend _dgematrix operator*(const  dgbmatrix&, const  dgsmatrix&);
00123   inline friend _dgematrix operator*(const  dgbmatrix&, const _dgsmatrix&);
00124   inline friend _dgematrix operator*(const  dgbmatrix&, const  dssmatrix&);
00125   inline friend _dgematrix operator*(const  dgbmatrix&, const _dssmatrix&);
00126   inline friend _dgbmatrix operator*(const  dgbmatrix&, const     double&);
00127   
00128   //////// / ////////
00129   inline friend _dgbmatrix operator/(const  dgbmatrix&, const     double&);
00130   
00131   //////// double ////////
00132   inline friend _dgbmatrix operator*(const     double&, const  dgbmatrix&);
00133 };
 All Classes Files Functions Variables Friends