00001
00003 class _zgematrix
00004 {
00005 public:
00007 mutable long M;
00008 mutable long N;
00009 mutable std::complex<double>* Array;
00010 mutable std::complex<double>** Darray;
00011
00013 inline _zgematrix();
00014 inline _zgematrix(const _zgematrix&);
00015 inline ~_zgematrix();
00016
00018 inline std::complex<double>& operator()(const long&, const long&) const;
00019 inline friend std::ostream& operator<<(std::ostream&, const zgematrix&);
00020 inline void write(const char *) const;
00021
00023 inline void destroy() const;
00024
00026 inline friend _zgematrix t(const _zgematrix&);
00027 inline friend _zgematrix i(const _zgematrix&);
00028 inline friend _zgematrix conj(const _zgematrix&);
00029 inline friend _zgematrix conjt(const _zgematrix&);
00030 inline friend void idamax(long&, long&, const _zgematrix&);
00031 inline friend std::complex<double> damax(const _zgematrix&);
00032
00034 inline friend const _zgematrix& operator+(const _zgematrix&);
00035 inline friend _zgematrix operator-(const _zgematrix&);
00036
00038 inline friend _zgematrix operator+(const zgematrix&, const zgematrix&);
00039 inline friend _zgematrix operator+(const zgematrix&, const _zgematrix&);
00040 inline friend _zgematrix operator+(const _zgematrix&, const zgematrix&);
00041 inline friend _zgematrix operator+(const _zgematrix&, const _zgematrix&);
00042
00043 inline friend _zgematrix operator+(const zgematrix&, const zgbmatrix&);
00044 inline friend _zgematrix operator+(const zgematrix&, const _zgbmatrix&);
00045 inline friend _zgematrix operator+(const _zgematrix&, const zgbmatrix&);
00046 inline friend _zgematrix operator+(const _zgematrix&, const _zgbmatrix&);
00047
00048 inline friend _zgematrix operator+(const zgbmatrix&, const zgematrix&);
00049 inline friend _zgematrix operator+(const zgbmatrix&, const _zgematrix&);
00050 inline friend _zgematrix operator+(const _zgbmatrix&, const zgematrix&);
00051 inline friend _zgematrix operator+(const _zgbmatrix&, const _zgematrix&);
00052
00054 inline friend _zgematrix operator-(const zgematrix&);
00055
00056 inline friend _zgematrix operator-(const zgematrix&, const zgematrix&);
00057 inline friend _zgematrix operator-(const zgematrix&, const _zgematrix&);
00058 inline friend _zgematrix operator-(const _zgematrix&, const zgematrix&);
00059 inline friend _zgematrix operator-(const _zgematrix&, const _zgematrix&);
00060
00061 inline friend _zgematrix operator-(const zgematrix&, const zgbmatrix&);
00062 inline friend _zgematrix operator-(const zgematrix&, const _zgbmatrix&);
00063 inline friend _zgematrix operator-(const _zgematrix&, const zgbmatrix&);
00064 inline friend _zgematrix operator-(const _zgematrix&, const _zgbmatrix&);
00065
00066 inline friend _zgematrix operator-(const zgbmatrix&, const zgematrix&);
00067 inline friend _zgematrix operator-(const zgbmatrix&, const _zgematrix&);
00068 inline friend _zgematrix operator-(const _zgbmatrix&, const zgematrix&);
00069 inline friend _zgematrix operator-(const _zgbmatrix&, const _zgematrix&);
00070
00072 inline friend _zgematrix operator*(const zgematrix&, const zgematrix&);
00073 inline friend _zgematrix operator*(const zgematrix&, const _zgematrix&);
00074 inline friend _zgematrix operator*(const _zgematrix&, const zgematrix&);
00075 inline friend _zgematrix operator*(const _zgematrix&, const _zgematrix&);
00076
00077 inline friend _zgematrix operator*(const zgematrix&, const zgbmatrix&);
00078 inline friend _zgematrix operator*(const zgematrix&, const _zgbmatrix&);
00079 inline friend _zgematrix operator*(const _zgematrix&, const zgbmatrix&);
00080 inline friend _zgematrix operator*(const _zgematrix&, const _zgbmatrix&);
00081
00082 inline friend _zgematrix operator*(const zgbmatrix&, const zgematrix&);
00083 inline friend _zgematrix operator*(const zgbmatrix&, const _zgematrix&);
00084 inline friend _zgematrix operator*(const _zgbmatrix&, const zgematrix&);
00085 inline friend _zgematrix operator*(const _zgbmatrix&, const _zgematrix&);
00086
00087 inline friend _zgematrix operator*(const zcovector&, const zrovector&);
00088 inline friend _zgematrix operator*(const zcovector&, const _zrovector&);
00089 inline friend _zgematrix operator*(const _zcovector&, const zrovector&);
00090 inline friend _zgematrix operator*(const _zcovector&, const _zrovector&);
00091
00092 inline friend _zrovector operator*(const zrovector&, const _zgematrix&);
00093 inline friend _zrovector operator*(const _zrovector&, const _zgematrix&);
00094 inline friend _zcovector operator*(const _zgematrix&, const zcovector&);
00095 inline friend _zcovector operator*(const _zgematrix&, const _zcovector&);
00096
00097 inline friend _zgematrix operator*(const zgematrix&, const double&);
00098 inline friend _zgematrix operator*(const _zgematrix&, const double&);
00099 inline friend _zgematrix operator*(const double&, const zgematrix&);
00100 inline friend _zgematrix operator*(const double&, const _zgematrix&);
00101
00102 inline friend _zgematrix operator*(const zgematrix&, const std::complex<double>&);
00103 inline friend _zgematrix operator*(const _zgematrix&, const std::complex<double>&);
00104 inline friend _zgematrix operator*(const std::complex<double>&, const zgematrix&);
00105 inline friend _zgematrix operator*(const std::complex<double>&, const _zgematrix&);
00106
00107 inline friend _zgematrix operator*(const zhematrix&, const std::complex<double>&);
00108 inline friend _zgematrix operator*(const std::complex<double>&, const zhematrix&);
00109
00111 inline friend _zgematrix operator/(const zgematrix&, const double&);
00112 inline friend _zgematrix operator/(const _zgematrix&, const double&);
00113 inline friend _zgematrix operator/(const zgematrix&, const std::complex<double>&);
00114 inline friend _zgematrix operator/(const _zgematrix&, const std::complex<double>&);
00115 inline friend _zgematrix operator/(const zhematrix&, const std::complex<double>&);
00116
00118 friend class zgematrix;
00119 friend class zgbmatrix;
00120 friend class _zgbmatrix;
00121 friend class zhematrix;
00122 friend class _zhematrix;
00123 friend class zssmatrix;
00124 friend class _zssmatrix;
00125 friend class zcovector;
00126 friend class _zcovector;
00127 friend class zrovector;
00128 friend class _zrovector;
00129 };