CPPLapack
 All Classes Files Functions Variables Friends
dgematrix.hpp
Go to the documentation of this file.
00001 //=============================================================================
00002 //! Real Double-precision General Dence Matrix Class
00003 class dgematrix
00004 {
00005 public:
00006   ///////////////////////////////////////////////
00007   /////////////////// objects ///////////////////
00008   ///////////////////////////////////////////////
00009   long m; //!< matrix row size
00010   long n; //!< matrix column size
00011   double* array; //!< 1D array to store matrix data
00012   double** darray; //!< array of pointers of column head addresses
00013   
00014   ///////////////////////////////////////////////
00015   ///////////////// constructors ////////////////
00016   ///////////////////////////////////////////////
00017   inline dgematrix();
00018   inline dgematrix(const dgematrix&);
00019   inline dgematrix(const _dgematrix&);
00020   inline dgematrix(const long&, const long&);
00021   inline dgematrix(const char*);
00022   inline ~dgematrix(); //destructor
00023   
00024   ///////////////////////////////////////////////
00025   ////////////////// functions //////////////////
00026   ///////////////////////////////////////////////
00027   //////// cast ////////
00028   inline _zgematrix to_zgematrix() const;
00029   
00030   //////// io ////////
00031   inline double& operator()(const long&, const long&);
00032   inline double operator()(const long&, const long&) const;
00033   inline dgematrix& set(const long&, const long&, const double&); //const;
00034   inline friend std::ostream& operator<<(std::ostream&, const dgematrix&);
00035   inline void write(const char*) const;
00036   inline void read(const char*);
00037   
00038   //////// misc ////////
00039   inline void clear();
00040   inline dgematrix& zero();
00041   inline dgematrix& identity();
00042   inline void chsign();
00043   inline void copy(const dgematrix&);
00044   inline void shallow_copy(const _dgematrix&);
00045   inline dgematrix& resize(const long&, const long&);
00046   inline _drovector row(const long&) const;
00047   inline _dcovector col(const long&) const;
00048   inline friend void swap(dgematrix&, dgematrix&);
00049   inline friend _dgematrix _(dgematrix&);
00050   
00051   //////// calc ////////
00052   inline friend _dgematrix t(const dgematrix&);
00053   inline friend _dgematrix i(const dgematrix&);
00054   inline friend void idamax(long&, long&, const dgematrix&);
00055   inline friend double damax(const dgematrix&);
00056   
00057   //////// lapack ////////
00058   inline long dgesv(dgematrix&);
00059   inline long dgesv(dcovector&);
00060   inline long dgels(dgematrix&);
00061   inline long dgels(dcovector&);
00062   inline long dgels(dgematrix&, drovector&);
00063   inline long dgels(dcovector&, double&);
00064   //inline long dgelss(dcovector&);
00065   inline long dgelss(dcovector&, dcovector&, long&, const double);
00066   inline long dgelss(dgematrix&, dcovector&, long&, const double);
00067   inline long dgeev(std::vector<double>&, std::vector<double>&);
00068   inline long dgeev(zcovector&);
00069   inline long dgeev(std::vector<double>&, std::vector<double>&, std::vector<dcovector>&, std::vector<dcovector>&);
00070   inline long dgeev(std::vector<double>&, std::vector<double>&, std::vector<drovector>&, std::vector<drovector>&);
00071   inline long dggev(dgematrix&, std::vector<double>&, std::vector<double>&);
00072   inline long dggev(dgematrix&, std::vector<double>&, std::vector<double>&, std::vector<dcovector>&, std::vector<dcovector>&);
00073   inline long dggev(dgematrix&, std::vector<double>&, std::vector<double>&, std::vector<drovector>&, std::vector<drovector>&);
00074   inline long dgesvd(dgbmatrix&);
00075   inline long dgesvd(dcovector&, dgematrix&, dgematrix&);
00076   inline long dgglse(dgematrix&, dcovector&, dcovector&, dcovector&);
00077   
00078   ///////////////////////////////////////////////
00079   ///////////// numerical operators /////////////
00080   ///////////////////////////////////////////////
00081   //////// = ////////
00082   inline dgematrix& operator=(const  dgematrix&);
00083   inline dgematrix& operator=(const _dgematrix&);
00084   
00085   //////// += ////////
00086   inline dgematrix& operator+=(const  dgematrix&);
00087   inline dgematrix& operator+=(const _dgematrix&);
00088   inline dgematrix& operator+=(const  dsymatrix&);
00089   inline dgematrix& operator+=(const _dsymatrix&);
00090   inline dgematrix& operator+=(const  dgbmatrix&);
00091   inline dgematrix& operator+=(const _dgbmatrix&);
00092   inline dgematrix& operator+=(const  dgsmatrix&);
00093   inline dgematrix& operator+=(const _dgsmatrix&);
00094   inline dgematrix& operator+=(const  dssmatrix&);
00095   inline dgematrix& operator+=(const _dssmatrix&);
00096   
00097   //////// -= ////////
00098   inline dgematrix& operator-=(const  dgematrix&);
00099   inline dgematrix& operator-=(const _dgematrix&);
00100   inline dgematrix& operator-=(const  dsymatrix&);
00101   inline dgematrix& operator-=(const _dsymatrix&);
00102   inline dgematrix& operator-=(const  dgbmatrix&);
00103   inline dgematrix& operator-=(const _dgbmatrix&);
00104   inline dgematrix& operator-=(const  dgsmatrix&);
00105   inline dgematrix& operator-=(const _dgsmatrix&);
00106   inline dgematrix& operator-=(const  dssmatrix&);
00107   inline dgematrix& operator-=(const _dssmatrix&);
00108   
00109   //////// *= ////////
00110   inline dgematrix& operator*=(const  dgematrix&);
00111   inline dgematrix& operator*=(const _dgematrix&);
00112   inline dgematrix& operator*=(const  dsymatrix&);
00113   inline dgematrix& operator*=(const _dsymatrix&);
00114   inline dgematrix& operator*=(const  dgbmatrix&);
00115   inline dgematrix& operator*=(const _dgbmatrix&);
00116   inline dgematrix& operator*=(const  dgsmatrix&);
00117   inline dgematrix& operator*=(const _dgsmatrix&);
00118   inline dgematrix& operator*=(const  dssmatrix&);
00119   inline dgematrix& operator*=(const _dssmatrix&);
00120   inline dgematrix& operator*=(const     double&);
00121   
00122   //////// /= ////////
00123   inline dgematrix& operator/=(const     double&);
00124 
00125   //////// unary ////////
00126   inline friend const dgematrix& operator+(const dgematrix&);
00127   inline friend _dgematrix operator-(const  dgematrix&);
00128   
00129   //////// + ////////
00130   inline friend _dgematrix operator+(const  dgematrix&, const  dgematrix&);
00131   inline friend _dgematrix operator+(const  dgematrix&, const _dgematrix&);
00132   inline friend _dgematrix operator+(const  dgematrix&, const  dsymatrix&);
00133   inline friend _dgematrix operator+(const  dgematrix&, const _dsymatrix&);
00134   inline friend _dgematrix operator+(const  dgematrix&, const  dgbmatrix&);
00135   inline friend _dgematrix operator+(const  dgematrix&, const _dgbmatrix&);
00136   inline friend _dgematrix operator+(const  dgematrix&, const  dgsmatrix&);
00137   inline friend _dgematrix operator+(const  dgematrix&, const _dgsmatrix&);
00138   inline friend _dgematrix operator+(const  dgematrix&, const  dssmatrix&);
00139   inline friend _dgematrix operator+(const  dgematrix&, const _dssmatrix&);
00140   
00141   //////// - ////////
00142   inline friend _dgematrix operator-(const  dgematrix&, const  dgematrix&);
00143   inline friend _dgematrix operator-(const  dgematrix&, const _dgematrix&);
00144   inline friend _dgematrix operator-(const  dgematrix&, const  dsymatrix&);
00145   inline friend _dgematrix operator-(const  dgematrix&, const _dsymatrix&);
00146   inline friend _dgematrix operator-(const  dgematrix&, const  dgbmatrix&);
00147   inline friend _dgematrix operator-(const  dgematrix&, const _dgbmatrix&);
00148   inline friend _dgematrix operator-(const  dgematrix&, const  dgsmatrix&);
00149   inline friend _dgematrix operator-(const  dgematrix&, const _dgsmatrix&);
00150   inline friend _dgematrix operator-(const  dgematrix&, const  dssmatrix&);
00151   inline friend _dgematrix operator-(const  dgematrix&, const _dssmatrix&);
00152   
00153   //////// * ////////
00154   inline friend _dcovector operator*(const  dgematrix&, const  dcovector&);
00155   inline friend _dcovector operator*(const  dgematrix&, const _dcovector&);
00156   inline friend _dgematrix operator*(const  dgematrix&, const  dgematrix&);
00157   inline friend _dgematrix operator*(const  dgematrix&, const _dgematrix&);
00158   inline friend _dgematrix operator*(const  dgematrix&, const  dsymatrix&);
00159   inline friend _dgematrix operator*(const  dgematrix&, const _dsymatrix&);
00160   inline friend _dgematrix operator*(const  dgematrix&, const  dgbmatrix&);
00161   inline friend _dgematrix operator*(const  dgematrix&, const _dgbmatrix&);  
00162   inline friend _dgematrix operator*(const  dgematrix&, const  dgsmatrix&);
00163   inline friend _dgematrix operator*(const  dgematrix&, const _dgsmatrix&);
00164   inline friend _dgematrix operator*(const  dgematrix&, const  dssmatrix&);
00165   inline friend _dgematrix operator*(const  dgematrix&, const _dssmatrix&);
00166   inline friend _dgematrix operator*(const  dgematrix&, const     double&);
00167   
00168   //////// / ////////
00169   inline friend _dgematrix operator/(const  dgematrix&, const     double&);
00170   
00171   //////// % ////////
00172   inline friend _drovector operator%(const  dgematrix&, const  dgematrix&);
00173   
00174   //////// double ////////
00175   inline friend _dgematrix operator*(const     double&, const  dgematrix&);
00176 };
 All Classes Files Functions Variables Friends