00001
00002
00003 class dgematrix
00004 {
00005 public:
00006
00007
00008
00009 long m;
00010 long n;
00011 double* array;
00012 double** darray;
00013
00014
00015
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();
00023
00024
00025
00026
00027
00028 inline _zgematrix to_zgematrix() const;
00029
00030
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&);
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
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
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
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
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
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
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
00175 inline friend _dgematrix operator*(const double&, const dgematrix&);
00176 };