00001
00002
00003 class zgematrix
00004 {
00005 public:
00006
00007
00008
00009 long m;
00010 long n;
00011 comple* array;
00012 comple** darray;
00013
00014
00015
00016
00017 inline zgematrix();
00018 inline zgematrix(const zgematrix&);
00019 inline zgematrix(const _zgematrix&);
00020 inline zgematrix(const long&, const long&);
00021 inline zgematrix(const char*);
00022 inline ~zgematrix();
00023
00024
00025
00026
00027
00028
00029
00030 inline comple& operator()(const long&, const long&);
00031 inline comple operator()(const long&, const long&) const;
00032 inline zgematrix& set(const long&, const long&, const comple&);
00033 inline friend std::ostream& operator<<(std::ostream&, const zgematrix&);
00034 inline void write(const char*) const;
00035 inline void read(const char*);
00036
00037
00038 inline void clear();
00039 inline zgematrix& zero();
00040 inline zgematrix& identity();
00041 inline void chsign();
00042 inline void copy(const zgematrix&);
00043 inline void shallow_copy(const _zgematrix&);
00044 inline void resize(const long&, const long&);
00045 inline _zrovector row(const long&) const;
00046 inline _zcovector col(const long&) const;
00047 inline friend void swap(zgematrix&, zgematrix&);
00048 inline friend _zgematrix _(zgematrix&);
00049
00050
00051 inline friend _zgematrix t(const zgematrix&);
00052 inline friend _zgematrix i(const zgematrix&);
00053 inline friend _zgematrix conj(const zgematrix&);
00054 inline friend _zgematrix conjt(const zgematrix&);
00055 inline friend void idamax(long&, long&, const zgematrix&);
00056 inline friend comple damax(const zgematrix&);
00057
00058
00059 inline long zgesv(zgematrix&);
00060 inline long zgesv(zcovector&);
00061 inline long zgels(zgematrix&);
00062 inline long zgels(zcovector&);
00063 inline long zgels(zgematrix&, drovector&);
00064 inline long zgels(zcovector&, double&);
00065 inline long zgelss(zcovector&, dcovector&, long&, const double);
00066 inline long zgelss(zgematrix&, dcovector&, long&, const double);
00067 inline long zgeev(std::vector< comple >&);
00068 inline long zgeev(std::vector< comple >&, std::vector<zcovector>&);
00069 inline long zgeev(std::vector< comple >&, std::vector<zrovector>&);
00070
00071 inline long zgesvd(dcovector&, zgematrix&, zgematrix&);
00072
00073
00074
00075
00076
00077 inline zgematrix& operator=(const zgematrix&);
00078 inline zgematrix& operator=(const _zgematrix&);
00079
00080
00081 inline zgematrix& operator+=(const zgematrix&);
00082 inline zgematrix& operator+=(const _zgematrix&);
00083 inline zgematrix& operator+=(const zhematrix&);
00084 inline zgematrix& operator+=(const _zhematrix&);
00085 inline zgematrix& operator+=(const zgbmatrix&);
00086 inline zgematrix& operator+=(const _zgbmatrix&);
00087 inline zgematrix& operator+=(const zgsmatrix&);
00088 inline zgematrix& operator+=(const _zgsmatrix&);
00089 inline zgematrix& operator+=(const zhsmatrix&);
00090 inline zgematrix& operator+=(const _zhsmatrix&);
00091
00092
00093 inline zgematrix& operator-=(const zgematrix&);
00094 inline zgematrix& operator-=(const _zgematrix&);
00095 inline zgematrix& operator-=(const zhematrix&);
00096 inline zgematrix& operator-=(const _zhematrix&);
00097 inline zgematrix& operator-=(const zgbmatrix&);
00098 inline zgematrix& operator-=(const _zgbmatrix&);
00099 inline zgematrix& operator-=(const zgsmatrix&);
00100 inline zgematrix& operator-=(const _zgsmatrix&);
00101 inline zgematrix& operator-=(const zhsmatrix&);
00102 inline zgematrix& operator-=(const _zhsmatrix&);
00103
00104
00105 inline zgematrix& operator*=(const zgematrix&);
00106 inline zgematrix& operator*=(const _zgematrix&);
00107 inline zgematrix& operator*=(const zhematrix&);
00108 inline zgematrix& operator*=(const _zhematrix&);
00109 inline zgematrix& operator*=(const zgbmatrix&);
00110 inline zgematrix& operator*=(const _zgbmatrix&);
00111 inline zgematrix& operator*=(const zgsmatrix&);
00112 inline zgematrix& operator*=(const _zgsmatrix&);
00113 inline zgematrix& operator*=(const zhsmatrix&);
00114 inline zgematrix& operator*=(const _zhsmatrix&);
00115 inline zgematrix& operator*=(const double&);
00116 inline zgematrix& operator*=(const comple&);
00117
00118
00119 inline zgematrix& operator/=(const double&);
00120 inline zgematrix& operator/=(const comple&);
00121
00122
00123 inline friend const zgematrix& operator+(const zgematrix&);
00124 inline friend _zgematrix operator-(const zgematrix&);
00125
00126
00127 inline friend _zgematrix operator+(const zgematrix&, const zgematrix&);
00128 inline friend _zgematrix operator+(const zgematrix&, const _zgematrix&);
00129 inline friend _zgematrix operator+(const zgematrix&, const zhematrix&);
00130 inline friend _zgematrix operator+(const zgematrix&, const _zhematrix&);
00131 inline friend _zgematrix operator+(const zgematrix&, const zgbmatrix&);
00132 inline friend _zgematrix operator+(const zgematrix&, const _zgbmatrix&);
00133 inline friend _zgematrix operator+(const zgematrix&, const zgsmatrix&);
00134 inline friend _zgematrix operator+(const zgematrix&, const _zgsmatrix&);
00135 inline friend _zgematrix operator+(const zgematrix&, const zhsmatrix&);
00136 inline friend _zgematrix operator+(const zgematrix&, const _zhsmatrix&);
00137
00138
00139 inline friend _zgematrix operator-(const zgematrix&, const zgematrix&);
00140 inline friend _zgematrix operator-(const zgematrix&, const _zgematrix&);
00141 inline friend _zgematrix operator-(const zgematrix&, const zhematrix&);
00142 inline friend _zgematrix operator-(const zgematrix&, const _zhematrix&);
00143 inline friend _zgematrix operator-(const zgematrix&, const zgbmatrix&);
00144 inline friend _zgematrix operator-(const zgematrix&, const _zgbmatrix&);
00145 inline friend _zgematrix operator-(const zgematrix&, const zgsmatrix&);
00146 inline friend _zgematrix operator-(const zgematrix&, const _zgsmatrix&);
00147 inline friend _zgematrix operator-(const zgematrix&, const zhsmatrix&);
00148 inline friend _zgematrix operator-(const zgematrix&, const _zhsmatrix&);
00149
00150
00151 inline friend _zcovector operator*(const zgematrix&, const zcovector&);
00152 inline friend _zcovector operator*(const zgematrix&, const _zcovector&);
00153 inline friend _zgematrix operator*(const zgematrix&, const zgematrix&);
00154 inline friend _zgematrix operator*(const zgematrix&, const _zgematrix&);
00155 inline friend _zgematrix operator*(const zgematrix&, const zhematrix&);
00156 inline friend _zgematrix operator*(const zgematrix&, const _zhematrix&);
00157 inline friend _zgematrix operator*(const zgematrix&, const zgbmatrix&);
00158 inline friend _zgematrix operator*(const zgematrix&, const _zgbmatrix&);
00159 inline friend _zgematrix operator*(const zgematrix&, const zgsmatrix&);
00160 inline friend _zgematrix operator*(const zgematrix&, const _zgsmatrix&);
00161 inline friend _zgematrix operator*(const zgematrix&, const zhsmatrix&);
00162 inline friend _zgematrix operator*(const zgematrix&, const _zhsmatrix&);
00163 inline friend _zgematrix operator*(const zgematrix&, const double&);
00164 inline friend _zgematrix operator*(const zgematrix&, const comple&);
00165
00166
00167 inline friend _zgematrix operator/(const zgematrix&, const double&);
00168 inline friend _zgematrix operator/(const zgematrix&, const comple&);
00169
00170
00171 inline friend _zgematrix operator*(const double&, const zgematrix&);
00172 inline friend _zgematrix operator*(const comple&, const zgematrix&);
00173 };