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