00001
00003 class zssmatrix
00004 {
00005 private:
00007 long M;
00008 long N;
00009 long CAP;
00010 long VOL;
00011 std::complex<double>* Array;
00012 long* Indx;
00013 long* Jndx;
00014
00015 public:
00017 long const& m;
00018 long const& n;
00019 long const& cap;
00020 long const& vol;
00021 std::complex<double>* const& array;
00022 long* const& indx;
00023 long* const& jndx;
00024
00026 inline zssmatrix();
00027 inline zssmatrix(const zssmatrix&);
00028 inline zssmatrix(const _zssmatrix&);
00029 inline zssmatrix(const long&, const long&, const long&);
00030 inline zssmatrix(const char*);
00031 inline ~zssmatrix();
00032
00034 inline operator _zgematrix();
00035
00037 inline std::complex<double> operator()(const long&, const long&) const;
00038 inline void put(const long&, const long&, const std::complex<double>&);
00039 inline void fput(const long&, const long&, const std::complex<double>&);
00040 inline void add(const long&, const long&, const std::complex<double>&);
00041 inline void sub(const long&, const long&, const std::complex<double>&);
00042 inline void mult(const long&, const long&, const std::complex<double>&);
00043 inline void div(const long&, const long&, const std::complex<double>&);
00044 inline void del(const long&, const long&);
00045 inline void fdel(const long&);
00046 inline friend std::ostream& operator<<(std::ostream&, const zssmatrix&);
00047 inline void write(const char *) const;
00048 inline void read(const char *);
00049
00051 inline void clear();
00052 inline void zero();
00053 inline void chsign();
00054 inline void copy(const zssmatrix&);
00055 inline void shallow_copy(const _zssmatrix&);
00056 inline void resize(const long&, const long&, const long&);
00057 inline void expand(const long&);
00058 inline bool isListed(const long&, const long&);
00059 inline long number(const long&, const long&);
00060 inline void checkup();
00061 inline friend void swap(zssmatrix&, zssmatrix&);
00062 inline friend _zssmatrix _(zssmatrix&);
00063
00065 inline friend _zssmatrix t(const zssmatrix&);
00066 inline friend void idamax(long&, long&, const zssmatrix&);
00067 inline friend std::complex<double> damax(const zssmatrix&);
00068
00070 inline friend const zssmatrix& operator+(const zssmatrix&);
00071 inline friend _zssmatrix operator-(const zssmatrix&);
00072
00074 inline zssmatrix& operator=(const zssmatrix&);
00075 inline zssmatrix& operator+=(const zssmatrix&);
00076 inline zssmatrix& operator-=(const zssmatrix&);
00077 inline zssmatrix& operator*=(const zssmatrix&);
00079 inline zssmatrix& operator=(const _zssmatrix&);
00080 inline zssmatrix& operator+=(const _zssmatrix&);
00081 inline zssmatrix& operator-=(const _zssmatrix&);
00082 inline zssmatrix& operator*=(const _zssmatrix&);
00084 inline zssmatrix& operator*=(const double&);
00085 inline zssmatrix& operator/=(const double&);
00087 inline zssmatrix& operator*=(const std::complex<double>&);
00088 inline zssmatrix& operator/=(const std::complex<double>&);
00089
00091 inline friend _zgematrix operator+(const zssmatrix&, const zgematrix&);
00092 inline friend _zgematrix operator+(const zssmatrix&, const _zgematrix&);
00093 inline friend _zgematrix operator+(const zgematrix&, const zssmatrix&);
00094 inline friend _zgematrix operator+(const _zgematrix&, const zssmatrix&);
00095
00096 inline friend _zgematrix operator+(const zssmatrix&, const zgbmatrix&);
00097 inline friend _zgematrix operator+(const zssmatrix&, const _zgbmatrix&);
00098 inline friend _zgematrix operator+(const zgbmatrix&, const zssmatrix&);
00099 inline friend _zgematrix operator+(const _zgbmatrix&, const zssmatrix&);
00100
00101 inline friend _zgematrix operator+(const zssmatrix&, const zhematrix&);
00102 inline friend _zgematrix operator+(const zssmatrix&, const _zhematrix&);
00103 inline friend _zgematrix operator+(const zhematrix&, const zssmatrix&);
00104 inline friend _zgematrix operator+(const _zhematrix&, const zssmatrix&);
00105
00106 inline friend _zssmatrix operator+(const zssmatrix&, const zssmatrix&);
00107 inline friend _zssmatrix operator+(const zssmatrix&, const _zssmatrix&);
00108 inline friend _zssmatrix operator+(const _zssmatrix&, const zssmatrix&);
00109
00111 inline friend _zgematrix operator-(const zssmatrix&, const zgematrix&);
00112 inline friend _zgematrix operator-(const zssmatrix&, const _zgematrix&);
00113 inline friend _zgematrix operator-(const zgematrix&, const zssmatrix&);
00114 inline friend _zgematrix operator-(const _zgematrix&, const zssmatrix&);
00115
00116 inline friend _zgematrix operator-(const zssmatrix&, const zgbmatrix&);
00117 inline friend _zgematrix operator-(const zssmatrix&, const _zgbmatrix&);
00118 inline friend _zgematrix operator-(const zgbmatrix&, const zssmatrix&);
00119 inline friend _zgematrix operator-(const _zgbmatrix&, const zssmatrix&);
00120
00121 inline friend _zgematrix operator-(const zssmatrix&, const zhematrix&);
00122 inline friend _zgematrix operator-(const zssmatrix&, const _zhematrix&);
00123 inline friend _zgematrix operator-(const zhematrix&, const zssmatrix&);
00124 inline friend _zgematrix operator-(const _zhematrix&, const zssmatrix&);
00125
00126 inline friend _zssmatrix operator-(const zssmatrix&, const zssmatrix&);
00127 inline friend _zssmatrix operator-(const zssmatrix&, const _zssmatrix&);
00128 inline friend _zssmatrix operator-(const _zssmatrix&, const zssmatrix&);
00129
00131 inline friend _zgematrix operator*(const zssmatrix&, const zgematrix&);
00132 inline friend _zgematrix operator*(const zssmatrix&, const _zgematrix&);
00133 inline friend _zgematrix operator*(const zgematrix&, const zssmatrix&);
00134 inline friend _zgematrix operator*(const _zgematrix&, const zssmatrix&);
00135
00136 inline friend _zgematrix operator*(const zssmatrix&, const zgbmatrix&);
00137 inline friend _zgematrix operator*(const zssmatrix&, const _zgbmatrix&);
00138 inline friend _zgematrix operator*(const zgbmatrix&, const zssmatrix&);
00139 inline friend _zgematrix operator*(const _zgbmatrix&, const zssmatrix&);
00140
00141 inline friend _zgematrix operator*(const zhematrix&, const zssmatrix&);
00142 inline friend _zgematrix operator*(const _zhematrix&, const zssmatrix&);
00143 inline friend _zgematrix operator*(const zssmatrix&, const zhematrix&);
00144 inline friend _zgematrix operator*(const zssmatrix&, const _zhematrix&);
00145
00146 inline friend _zssmatrix operator*(const zssmatrix&, const zssmatrix&);
00147 inline friend _zssmatrix operator*(const zssmatrix&, const _zssmatrix&);
00148 inline friend _zssmatrix operator*(const _zssmatrix&, const zssmatrix&);
00149
00150 inline friend _zcovector operator*(const zssmatrix&, const zcovector&);
00151 inline friend _zcovector operator*(const zssmatrix&, const _zcovector&);
00152
00153 inline friend _zrovector operator*(const zrovector&, const zssmatrix&);
00154 inline friend _zrovector operator*(const _zrovector&, const zssmatrix&);
00155
00156 inline friend _zssmatrix operator*(const zssmatrix&, const double&);
00157 inline friend _zssmatrix operator*(const double&, const zssmatrix&);
00158 inline friend _zssmatrix operator*(const zssmatrix&, const std::complex<double>&);
00159 inline friend _zssmatrix operator*(const std::complex<double>&, const zssmatrix&);
00160
00162 inline friend _zssmatrix operator/(const zssmatrix&, const double&);
00163 inline friend _zssmatrix operator/(const zssmatrix&, const std::complex<double>&);
00164
00166 friend class zgematrix;
00167 friend class _zgematrix;
00168 friend class zgbmatrix;
00169 friend class _zgbmatrix;
00170 friend class zhematrix;
00171 friend class _zhematrix;
00172 friend class _zssmatrix;
00173 friend class zcovector;
00174 friend class _zcovector;
00175 friend class zrovector;
00176 friend class _zrovector;
00177 };