00001
00003 class dsymatrix
00004 {
00005 private:
00007 long N;
00008 double* Array;
00009 double** Darray;
00010
00011 public:
00013 long const& n;
00014 double* const& array;
00015 double** const& darray;
00016
00018 inline dsymatrix();
00019 inline dsymatrix(const dsymatrix&);
00020 inline dsymatrix(const _dsymatrix&);
00021 inline dsymatrix(const dgbmatrix&);
00022 inline dsymatrix(const _dgbmatrix&);
00023 inline dsymatrix(const long&);
00024 inline dsymatrix(const char*);
00025 inline ~dsymatrix();
00026
00028 inline operator _zhematrix();
00029
00031 inline double& operator()(const long&, const long&);
00032 inline double operator()(const long&, const long&) const;
00033 inline void set(const long&, const long&, const double&) const;
00034 inline friend std::ostream& operator<<(std::ostream&, const dsymatrix&);
00035 inline void write(const char*) const;
00036 inline void read(const char*);
00037
00039 inline void complete() const;
00040 inline void clear();
00041 inline void zero();
00042 inline void identity();
00043 inline void chsign();
00044 inline void copy(const dsymatrix&);
00045 inline void shallow_copy(const _dsymatrix&);
00046 inline void resize(const long&);
00047 inline friend void swap(dsymatrix&, dsymatrix&);
00048 inline friend _dsymatrix _(dsymatrix&);
00049
00051 inline friend _dsymatrix t(const dsymatrix&);
00052 inline friend _dgematrix i(const dsymatrix&);
00053
00055 inline long dsysv(dgematrix&);
00056 inline long dsysv(dcovector&);
00057 inline long dsyev(std::vector<double>&, const bool&);
00058 inline long dsyev(std::vector<double>&, std::vector<dcovector>&);
00059 inline long dsyev(std::vector<double>&, std::vector<drovector>&);
00060 inline long dsygv(dsymatrix&, std::vector<double>&);
00061 inline long dsygv(dsymatrix&, std::vector<double>&, std::vector<dcovector>&);
00062
00064 inline friend const dsymatrix& operator+(const dsymatrix&);
00065 inline friend _dsymatrix operator-(const dsymatrix&);
00066
00068 inline dsymatrix& operator=(const dsymatrix&);
00069 inline dsymatrix& operator+=(const dsymatrix&);
00070 inline dsymatrix& operator-=(const dsymatrix&);
00071 inline dsymatrix& operator*=(const dsymatrix&);
00073 inline dsymatrix& operator=(const _dsymatrix&);
00074 inline dsymatrix& operator+=(const _dsymatrix&);
00075 inline dsymatrix& operator-=(const _dsymatrix&);
00076 inline dsymatrix& operator*=(const _dsymatrix&);
00077
00079 inline dsymatrix& operator*=(const double&);
00080 inline dsymatrix& operator/=(const double&);
00081
00083 inline friend _dsymatrix operator+(const dsymatrix&, const dsymatrix&);
00084 inline friend _dsymatrix operator+(const dsymatrix&, const _dsymatrix&);
00085 inline friend _dsymatrix operator+(const _dsymatrix&, const dsymatrix&);
00086
00087 inline friend _dgematrix operator+(const dsymatrix&, const dgematrix&);
00088 inline friend _dgematrix operator+(const dsymatrix&, const _dgematrix&);
00089 inline friend _dgematrix operator+(const dgematrix&, const dsymatrix&);
00090 inline friend _dgematrix operator+(const _dgematrix&, const dsymatrix&);
00091
00092 inline friend _dgematrix operator+(const dsymatrix&, const dgbmatrix&);
00093 inline friend _dgematrix operator+(const dsymatrix&, const _dgbmatrix&);
00094 inline friend _dgematrix operator+(const dgbmatrix&, const dsymatrix&);
00095 inline friend _dgematrix operator+(const _dgbmatrix&, const dsymatrix&);
00096
00097 inline friend _dgematrix operator+(const dsymatrix&, const dssmatrix&);
00098 inline friend _dgematrix operator+(const dsymatrix&, const _dssmatrix&);
00099 inline friend _dgematrix operator+(const dssmatrix&, const dsymatrix&);
00100 inline friend _dgematrix operator+(const _dssmatrix&, const dsymatrix&);
00101
00103 inline friend _dsymatrix operator-(const dsymatrix&, const dsymatrix&);
00104 inline friend _dsymatrix operator-(const dsymatrix&, const _dsymatrix&);
00105 inline friend _dsymatrix operator-(const _dsymatrix&, const dsymatrix&);
00106
00107 inline friend _dgematrix operator-(const dsymatrix&, const dgematrix&);
00108 inline friend _dgematrix operator-(const dsymatrix&, const _dgematrix&);
00109 inline friend _dgematrix operator-(const dgematrix&, const dsymatrix&);
00110 inline friend _dgematrix operator-(const _dgematrix&, const dsymatrix&);
00111
00112 inline friend _dgematrix operator-(const dsymatrix&, const dgbmatrix&);
00113 inline friend _dgematrix operator-(const dsymatrix&, const _dgbmatrix&);
00114 inline friend _dgematrix operator-(const dgbmatrix&, const dsymatrix&);
00115 inline friend _dgematrix operator-(const _dgbmatrix&, const dsymatrix&);
00116
00117 inline friend _dgematrix operator-(const dsymatrix&, const dssmatrix&);
00118 inline friend _dgematrix operator-(const dsymatrix&, const _dssmatrix&);
00119 inline friend _dgematrix operator-(const dssmatrix&, const dsymatrix&);
00120 inline friend _dgematrix operator-(const _dssmatrix&, const dsymatrix&);
00121
00123 inline friend _dgematrix operator*(const _dsymatrix&, const dsymatrix&);
00124 inline friend _dgematrix operator*(const dsymatrix&, const _dsymatrix&);
00125 inline friend _dgematrix operator*(const dsymatrix&, const dsymatrix&);
00126
00127 inline friend _dgematrix operator*(const dsymatrix&, const dgematrix&);
00128 inline friend _dgematrix operator*(const dsymatrix&, const _dgematrix&);
00129 inline friend _dgematrix operator*(const dgematrix&, const dsymatrix&);
00130 inline friend _dgematrix operator*(const _dgematrix&, const dsymatrix&);
00131
00132 inline friend _dgematrix operator*(const dsymatrix&, const dgbmatrix&);
00133 inline friend _dgematrix operator*(const dsymatrix&, const _dgbmatrix&);
00134 inline friend _dgematrix operator*(const dgbmatrix&, const dsymatrix&);
00135 inline friend _dgematrix operator*(const _dgbmatrix&, const dsymatrix&);
00136
00137 inline friend _dgematrix operator*(const dsymatrix&, const dssmatrix&);
00138 inline friend _dgematrix operator*(const dsymatrix&, const _dssmatrix&);
00139 inline friend _dgematrix operator*(const dssmatrix&, const dsymatrix&);
00140 inline friend _dgematrix operator*(const _dssmatrix&, const dsymatrix&);
00141
00142 inline friend _dcovector operator*(const dsymatrix&, const dcovector&);
00143 inline friend _dcovector operator*(const dsymatrix&, const _dcovector&);
00144
00145 inline friend _drovector operator*(const drovector&, const dsymatrix&);
00146 inline friend _drovector operator*(const _drovector&, const dsymatrix&);
00147
00148 inline friend _dsymatrix operator*(const dsymatrix&, const double&);
00149 inline friend _dsymatrix operator*(const double&, const dsymatrix&);
00150
00152 inline friend _dsymatrix operator/(const dsymatrix&, const double&);
00153
00155 friend class dgematrix;
00156 friend class _dgematrix;
00157 friend class dgbmatrix;
00158 friend class _dgbmatrix;
00159 friend class _dsymatrix;
00160 friend class dssmatrix;
00161 friend class _dssmatrix;
00162 friend class dcovector;
00163 friend class _dcovector;
00164 friend class drovector;
00165 friend class _drovector;
00166 };