00001
00003 class zcovector
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 zcovector();
00017 inline zcovector(const zcovector&);
00018 inline zcovector(const _zcovector&);
00019 inline zcovector(const long&);
00020 inline zcovector(const char*);
00021 inline ~zcovector();
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 zcovector&);
00028 inline void write(const char *) const;
00029 inline void read(const char *);
00030
00032 inline friend _zrovector t(const zcovector&);
00033 inline friend _zcovector conj(const zcovector&);
00034 inline friend _zrovector conjt(const zcovector&);
00035 inline friend double nrm2(const zcovector&);
00036 inline friend long idamax(const zcovector&);
00037 inline friend std::complex<double> damax(const zcovector&);
00038
00040 inline void clear();
00041 inline void zero();
00042 inline void chsign();
00043 inline void copy(const zcovector&);
00044 inline void shallow_copy(const _zcovector&);
00045 inline void resize(const long&);
00046 inline friend void swap(zcovector&, zcovector&);
00047 inline friend _zcovector _(zcovector&);
00048
00050 inline friend const zcovector& operator+(const zcovector&);
00051 inline friend _zcovector operator-(const zcovector&);
00052
00054 inline zcovector& operator=(const zcovector&);
00055 inline zcovector& operator+=(const zcovector&);
00056 inline zcovector& operator-=(const zcovector&);
00058 inline zcovector& operator=(const _zcovector&);
00059 inline zcovector& operator+=(const _zcovector&);
00060 inline zcovector& operator-=(const _zcovector&);
00062 inline zcovector& operator*=(const double&);
00063 inline zcovector& operator/=(const double&);
00065 inline zcovector& operator*=(const std::complex<double>&);
00066 inline zcovector& operator/=(const std::complex<double>&);
00067
00069 inline friend _zcovector operator+(const zcovector&, const zcovector&);
00070 inline friend _zcovector operator+(const zcovector&, const _zcovector&);
00071 inline friend _zcovector operator+(const _zcovector&, const zcovector&);
00072
00074 inline friend _zcovector operator-(const zcovector&, const zcovector&);
00075 inline friend _zcovector operator-(const zcovector&, const _zcovector&);
00076 inline friend _zcovector operator-(const _zcovector&, const zcovector&);
00077
00079 inline friend _zcovector operator*(const zgematrix&, const zcovector&);
00080 inline friend _zcovector operator*(const _zgematrix&, const zcovector&);
00081 inline friend _zcovector operator*(const zgbmatrix&, const zcovector&);
00082 inline friend _zcovector operator*(const _zgbmatrix&, const zcovector&);
00083 inline friend _zcovector operator*(const zhematrix&, const zcovector&);
00084 inline friend _zcovector operator*(const _zhematrix&, const zcovector&);
00085 inline friend _zcovector operator*(const zssmatrix&, const zcovector&);
00086 inline friend _zcovector operator*(const _zssmatrix&, const zcovector&);
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 _zcovector operator*(const double&, const zcovector&);
00095 inline friend _zcovector operator*(const zcovector&, const double&);
00096
00097 inline friend _zcovector operator*(const std::complex<double>&, const zcovector&);
00098 inline friend _zcovector operator*(const zcovector&, const std::complex<double>&);
00099
00101 inline friend _zcovector operator/(const zcovector&, const double&);
00102 inline friend _zcovector operator/(const zcovector&, const std::complex<double>&);
00103
00105 inline friend std::complex<double> operator%(const zcovector&, const zcovector&);
00106 inline friend std::complex<double> operator%(const zcovector&, const _zcovector&);
00107 inline friend std::complex<double> operator%(const _zcovector&, const zcovector&);
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 _zcovector;
00117 friend class zrovector;
00118 friend class _zrovector;
00119 };