00001
00003 class dcovector
00004 {
00005 private:
00007 long L;
00008 double* Array;
00009
00010 public:
00012 long const& l;
00013 double* const& array;
00014
00016 inline dcovector();
00017 inline dcovector(const dcovector&);
00018 inline dcovector(const _dcovector&);
00019 inline dcovector(const long&);
00020 inline dcovector(const char *);
00021 inline ~dcovector();
00022
00024 inline operator _zcovector();
00025
00027 inline double& operator()(const long&);
00028 inline double operator()(const long&) const;
00029 inline void set(const long&, const double&) const;
00030 inline friend std::ostream& operator<<(std::ostream&, const dcovector&);
00031 inline void write(const char *) const;
00032 inline void read(const char *);
00033
00035 inline friend _drovector t(const dcovector&);
00036 inline friend double nrm2(const dcovector&);
00037 inline friend long idamax(const dcovector&);
00038 inline friend double damax(const dcovector&);
00039
00041 inline void clear();
00042 inline void zero();
00043 inline void chsign();
00044 inline void copy(const dcovector&);
00045 inline void shallow_copy(const _dcovector&);
00046 inline void resize(const long&);
00047 inline friend void swap(dcovector&, dcovector&);
00048 inline friend _dcovector _(dcovector&);
00049
00051 inline friend const dcovector& operator+(const dcovector&);
00052 inline friend _dcovector operator-(const dcovector&);
00053
00055 inline dcovector& operator=(const dcovector&);
00056 inline dcovector& operator+=(const dcovector&);
00057 inline dcovector& operator-=(const dcovector&);
00059 inline dcovector& operator=(const _dcovector&);
00060 inline dcovector& operator+=(const _dcovector&);
00061 inline dcovector& operator-=(const _dcovector&);
00063 inline dcovector& operator*=(const double&);
00064 inline dcovector& operator/=(const double&);
00065
00067 inline friend _dcovector operator+(const dcovector&, const dcovector&);
00068 inline friend _dcovector operator+(const dcovector&, const _dcovector&);
00069 inline friend _dcovector operator+(const _dcovector&, const dcovector&);
00070
00072 inline friend _dcovector operator-(const dcovector&, const dcovector&);
00073 inline friend _dcovector operator-(const dcovector&, const _dcovector&);
00074 inline friend _dcovector operator-(const _dcovector&, const dcovector&);
00075
00077 inline friend _dcovector operator*(const dgematrix&, const dcovector&);
00078 inline friend _dcovector operator*(const _dgematrix&, const dcovector&);
00079 inline friend _dcovector operator*(const dgbmatrix&, const dcovector&);
00080 inline friend _dcovector operator*(const _dgbmatrix&, const dcovector&);
00081 inline friend _dcovector operator*(const dsymatrix&, const dcovector&);
00082 inline friend _dcovector operator*(const _dsymatrix&, const dcovector&);
00083 inline friend _dcovector operator*(const dssmatrix&, const dcovector&);
00084 inline friend _dcovector operator*(const _dssmatrix&, const dcovector&);
00085
00086 inline friend _dgematrix operator*(const dcovector&, const _drovector&);
00087 inline friend _dgematrix operator*(const dcovector&, const drovector&);
00088
00089 inline friend _dcovector operator*(const double&, const dcovector&);
00090 inline friend _dcovector operator*(const dcovector&, const double&);
00091
00092 inline friend double operator*(const _drovector&, const dcovector&);
00093 inline friend double operator*(const drovector&, const dcovector&);
00094
00096 inline friend _dcovector operator/(const dcovector&, const double&);
00097
00099 inline friend double operator%(const dcovector&, const dcovector&);
00100 inline friend double operator%(const dcovector&, const _dcovector&);
00101 inline friend double operator%(const _dcovector&, const dcovector&);
00102
00104 friend class dgematrix;
00105 friend class _dgematrix;
00106 friend class dgbmatrix;
00107 friend class _dgbmatrix;
00108 friend class dsymatrix;
00109 friend class _dsymatrix;
00110 friend class dssmatrix;
00111 friend class _dssmatrix;
00112 friend class _dcovector;
00113 friend class drovector;
00114 friend class _drovector;
00115 };