00001
00003 class dgematrix
00004 {
00005 private:
00007 long M;
00008 long N;
00009 double* Array;
00010 double** Darray;
00011
00012 public:
00014 long const& m;
00015 long const& n;
00016 double* const& array;
00017 double** const& darray;
00018
00020 inline dgematrix();
00021 inline dgematrix(const dgematrix&);
00022 inline dgematrix(const _dgematrix&);
00023 inline dgematrix(const dgbmatrix&);
00024 inline dgematrix(const _dgbmatrix&);
00025 inline dgematrix(const dsymatrix&);
00026 inline dgematrix(const _dsymatrix&);
00027 inline dgematrix(const dssmatrix&);
00028 inline dgematrix(const _dssmatrix&);
00029 inline dgematrix(const long&, const long&);
00030 inline dgematrix(const char*);
00031 inline ~dgematrix();
00032
00034 inline operator _zgematrix();
00035
00037 inline double& operator()(const long&, const long&);
00038 inline double operator()(const long&, const long&) const;
00039 inline void set(const long&, const long&, const double&) const;
00040 inline friend std::ostream& operator<<(std::ostream&, const dgematrix&);
00041 inline void write(const char *) const;
00042 inline void read(const char *);
00043
00045 inline void clear();
00046 inline void zero();
00047 inline void identity();
00048 inline void chsign();
00049 inline void copy(const dgematrix&);
00050 inline void shallow_copy(const _dgematrix&);
00051 inline void resize(const long&, const long&);
00052 inline friend void swap(dgematrix&, dgematrix&);
00053 inline friend _dgematrix _(dgematrix&);
00054
00056 inline friend _dgematrix t(const dgematrix&);
00057 inline friend _dgematrix i(const dgematrix&);
00058 inline friend void idamax(long&, long&, const dgematrix&);
00059 inline friend double damax(const dgematrix&);
00060
00062 inline long dgesv(dgematrix&);
00063 inline long dgesv(dcovector&);
00064 inline long dgels(dgematrix&);
00065 inline long dgels(dcovector&);
00066 inline long dgels(dgematrix&, drovector&);
00067 inline long dgels(dcovector&, double&);
00068 inline long dgelss(dcovector&, dcovector&, long&, const double);
00069 inline long dgelss(dgematrix&, dcovector&, long&, const double);
00070 inline long dgeev(std::vector<double>&, std::vector<double>&);
00071 inline long dgeev(std::vector<double>&, std::vector<double>&,
00072 std::vector<dcovector>&, std::vector<dcovector>&);
00073 inline long dgeev(std::vector<double>&, std::vector<double>&,
00074 std::vector<drovector>&, std::vector<drovector>&);
00075 inline long dggev(dgematrix&, std::vector<double>&, std::vector<double>&);
00076 inline long dggev(dgematrix&, std::vector<double>&, std::vector<double>&,
00077 std::vector<dcovector>&, std::vector<dcovector>&);
00078 inline long dggev(dgematrix&, std::vector<double>&, std::vector<double>&,
00079 std::vector<drovector>&, std::vector<drovector>&);
00080 inline long dgesvd(dcovector&, dgematrix&, dgematrix&);
00081
00083 inline friend const dgematrix& operator+(const dgematrix&);
00084 inline friend _dgematrix operator-(const dgematrix&);
00085
00087 inline dgematrix& operator=(const dgematrix&);
00088 inline dgematrix& operator+=(const dgematrix&);
00089 inline dgematrix& operator-=(const dgematrix&);
00090 inline dgematrix& operator*=(const dgematrix&);
00092 inline dgematrix& operator=(const _dgematrix&);
00093 inline dgematrix& operator+=(const _dgematrix&);
00094 inline dgematrix& operator-=(const _dgematrix&);
00095 inline dgematrix& operator*=(const _dgematrix&);
00097 inline dgematrix& operator=(const dgbmatrix&);
00098 inline dgematrix& operator+=(const dgbmatrix&);
00099 inline dgematrix& operator-=(const dgbmatrix&);
00100 inline dgematrix& operator*=(const dgbmatrix&);
00102 inline dgematrix& operator=(const _dgbmatrix&);
00103 inline dgematrix& operator+=(const _dgbmatrix&);
00104 inline dgematrix& operator-=(const _dgbmatrix&);
00105 inline dgematrix& operator*=(const _dgbmatrix&);
00107 inline dgematrix& operator=(const dsymatrix& mat);
00108 inline dgematrix& operator+=(const dsymatrix& mat);
00109 inline dgematrix& operator-=(const dsymatrix& mat);
00110 inline dgematrix& operator*=(const dsymatrix& mat);
00112 inline dgematrix& operator=(const _dsymatrix& mat);
00113 inline dgematrix& operator+=(const _dsymatrix& mat);
00114 inline dgematrix& operator-=(const _dsymatrix& mat);
00115 inline dgematrix& operator*=(const _dsymatrix& mat);
00116
00118 inline dgematrix& operator*=(const double&);
00119 inline dgematrix& operator/=(const double&);
00120
00122 inline friend _dgematrix operator+(const dgematrix&, const dgematrix&);
00123 inline friend _dgematrix operator+(const dgematrix&, const _dgematrix&);
00124 inline friend _dgematrix operator+(const _dgematrix&, const dgematrix&);
00125
00126 inline friend _dgematrix operator+(const dgematrix&, const dgbmatrix&);
00127 inline friend _dgematrix operator+(const dgematrix&, const _dgbmatrix&);
00128 inline friend _dgematrix operator+(const dgbmatrix&, const dgematrix&);
00129 inline friend _dgematrix operator+(const _dgbmatrix&, const dgematrix&);
00130
00131 inline friend _dgematrix operator+(const dgematrix&, const dsymatrix&);
00132 inline friend _dgematrix operator+(const dgematrix&, const _dsymatrix&);
00133 inline friend _dgematrix operator+(const dsymatrix&, const dgematrix&);
00134 inline friend _dgematrix operator+(const _dsymatrix&, const dgematrix&);
00135
00136 inline friend _dgematrix operator+(const dgematrix&, const dssmatrix&);
00137 inline friend _dgematrix operator+(const dgematrix&, const _dssmatrix&);
00138 inline friend _dgematrix operator+(const dssmatrix&, const dgematrix&);
00139 inline friend _dgematrix operator+(const _dssmatrix&, const dgematrix&);
00140
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 dgematrix&);
00145
00146 inline friend _dgematrix operator-(const dgematrix&, const dgbmatrix&);
00147 inline friend _dgematrix operator-(const dgematrix&, const _dgbmatrix&);
00148 inline friend _dgematrix operator-(const dgbmatrix&, const dgematrix&);
00149 inline friend _dgematrix operator-(const _dgbmatrix&, const dgematrix&);
00150
00151 inline friend _dgematrix operator-(const dgematrix&, const dsymatrix&);
00152 inline friend _dgematrix operator-(const dgematrix&, const _dsymatrix&);
00153 inline friend _dgematrix operator-(const dsymatrix&, const dgematrix&);
00154 inline friend _dgematrix operator-(const _dsymatrix&, const dgematrix&);
00155
00156 inline friend _dgematrix operator-(const dgematrix&, const dssmatrix&);
00157 inline friend _dgematrix operator-(const dgematrix&, const _dssmatrix&);
00158 inline friend _dgematrix operator-(const dssmatrix&, const dgematrix&);
00159 inline friend _dgematrix operator-(const _dssmatrix&, const dgematrix&);
00160
00162 inline friend _dgematrix operator*(const dgematrix&, const dgematrix&);
00163 inline friend _dgematrix operator*(const dgematrix&, const _dgematrix&);
00164 inline friend _dgematrix operator*(const _dgematrix&, const dgematrix&);
00165
00166 inline friend _dgematrix operator*(const dgematrix&, const dgbmatrix&);
00167 inline friend _dgematrix operator*(const dgematrix&, const _dgbmatrix&);
00168 inline friend _dgematrix operator*(const dgbmatrix&, const dgematrix&);
00169 inline friend _dgematrix operator*(const _dgbmatrix&, const dgematrix&);
00170
00171 inline friend _dgematrix operator*(const dsymatrix&, const dgematrix&);
00172 inline friend _dgematrix operator*(const _dsymatrix&, const dgematrix&);
00173 inline friend _dgematrix operator*(const dgematrix&, const dsymatrix&);
00174 inline friend _dgematrix operator*(const dgematrix&, const _dsymatrix&);
00175
00176 inline friend _dgematrix operator*(const dssmatrix&, const dgematrix&);
00177 inline friend _dgematrix operator*(const _dssmatrix&, const dgematrix&);
00178 inline friend _dgematrix operator*(const dgematrix&, const dssmatrix&);
00179 inline friend _dgematrix operator*(const dgematrix&, const _dssmatrix&);
00180
00181 inline friend _dcovector operator*(const dgematrix&, const dcovector&);
00182 inline friend _dcovector operator*(const dgematrix&, const _dcovector&);
00183
00184 inline friend _drovector operator*(const drovector&, const dgematrix&);
00185 inline friend _drovector operator*(const _drovector&, const dgematrix&);
00186
00187 inline friend _dgematrix operator*(const dgematrix&, const double&);
00188 inline friend _dgematrix operator*(const double&, const dgematrix&);
00189
00191 inline friend _dgematrix operator/(const dgematrix&, const double&);
00192
00194 friend class _dgematrix;
00195 friend class dgbmatrix;
00196 friend class _dgbmatrix;
00197 friend class dsymatrix;
00198 friend class _dsymatrix;
00199 friend class dssmatrix;
00200 friend class _dssmatrix;
00201 friend class dcovector;
00202 friend class _dcovector;
00203 friend class drovector;
00204 friend class _drovector;
00205 };