00001
00003 class zrovector
00004 {
00005 private:
00007 long L;
00008 std::complex<double>* Array;
00009
00010 public:
00012 long const& l;
00013 std::complex<double>* const &array;
00014
00016 inline zrovector();
00017 inline zrovector(const zrovector&);
00018 inline zrovector(const _zrovector&);
00019 inline zrovector(const long&);
00020 inline zrovector(const char*);
00021 inline ~zrovector();
00022
00024 inline std::complex<double>& operator()(const long&);
00025 inline std::complex<double> operator()(const long&) const;
00026 inline void set(const long&, const std::complex<double>&) const;
00027 inline friend std::ostream& operator<<(std::ostream&, const zrovector&);
00028 inline void write(const char *) const;
00029 inline void read(const char *);
00030
00032 inline friend _zcovector t(const zrovector&);
00033 inline friend _zrovector conj(const zrovector&);
00034 inline friend _zcovector conjt(const zrovector&);
00035 inline friend double nrm2(const zrovector&);
00036 inline friend long idamax(const zrovector&);
00037 inline friend std::complex<double> damax(const zrovector&);
00038
00040 inline void clear();
00041 inline void zero();
00042 inline void chsign();
00043 inline void copy(const zrovector&);
00044 inline void shallow_copy(const _zrovector&);
00045 inline void resize(const long&);
00046 inline friend void swap(zrovector&, zrovector&);
00047 inline friend _zrovector _(zrovector&);
00048
00050 inline friend const zrovector& operator+(const zrovector&);
00051 inline friend _zrovector operator-(const zrovector&);
00052
00054 inline zrovector& operator=(const zrovector&);
00055 inline zrovector& operator+=(const zrovector&);
00056 inline zrovector& operator-=(const zrovector&);
00058 inline zrovector& operator=(const _zrovector&);
00059 inline zrovector& operator+=(const _zrovector&);
00060 inline zrovector& operator-=(const _zrovector&);
00062 inline zrovector& operator*=(const double&);
00063 inline zrovector& operator/=(const double&);
00065 inline zrovector& operator*=(const std::complex<double>&);
00066 inline zrovector& operator/=(const std::complex<double>&);
00067
00069 inline friend _zrovector operator+(const zrovector&, const zrovector&);
00070 inline friend _zrovector operator+(const zrovector&, const _zrovector&);
00071 inline friend _zrovector operator+(const _zrovector&, const zrovector&);
00072
00074 inline friend _zrovector operator-(const zrovector&, const zrovector&);
00075 inline friend _zrovector operator-(const zrovector&, const _zrovector&);
00076 inline friend _zrovector operator-(const _zrovector&, const zrovector&);
00077
00079 inline friend _zrovector operator*(const zrovector&, const zgematrix&);
00080 inline friend _zrovector operator*(const zrovector&, const _zgematrix&);
00081 inline friend _zrovector operator*(const zrovector&, const _zgbmatrix&);
00082 inline friend _zrovector operator*(const zrovector&, const zgbmatrix&);
00083 inline friend _zrovector operator*(const zrovector&, const zhematrix&);
00084 inline friend _zrovector operator*(const zrovector&, const _zhematrix&);
00085 inline friend _zrovector operator*(const zrovector&, const zssmatrix&);
00086 inline friend _zrovector operator*(const zrovector&, const _zssmatrix&);
00087
00088 inline friend _zgematrix operator*(const zcovector&, const zrovector&);
00089 inline friend _zgematrix operator*(const _zcovector&, const zrovector&);
00090
00091 inline friend std::complex<double> operator*(const zrovector&, const zcovector&);
00092 inline friend std::complex<double> operator*(const zrovector&, const _zcovector&);
00093
00094 inline friend _zrovector operator*(const zrovector&, const double&);
00095 inline friend _zrovector operator*(const double&, const zrovector&);
00096
00097 inline friend _zrovector operator*(const zrovector&, const std::complex<double>&);
00098 inline friend _zrovector operator*(const std::complex<double>&, const zrovector&);
00099
00101 inline friend _zrovector operator/(const zrovector&, const double&);
00102 inline friend _zrovector operator/(const zrovector&, const std::complex<double>&);
00103
00105 inline friend std::complex<double> operator%(const zrovector&, const zrovector&);
00106 inline friend std::complex<double> operator%(const zrovector&, const _zrovector&);
00107 inline friend std::complex<double> operator%(const _zrovector&, const zrovector&);
00108
00110 friend class zgematrix;
00111 friend class _zgematrix;
00112 friend class zgbmatrix;
00113 friend class _zgbmatrix;
00114 friend class zhematrix;
00115 friend class _zhematrix;
00116 friend class zssmatrix;
00117 friend class _zssmatrix;
00118 friend class zcovector;
00119 friend class _zcovector;
00120 friend class _zrovector;
00121 };