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