00001
00003 class dgbmatrix
00004 {
00005 private:
00007 long M;
00008 long N;
00009 long KL;
00010 long KU;
00011 double* Array;
00012 double** Darray;
00013
00014 public:
00016 long const& m;
00017 long const& n;
00018 long const& kl;
00019 long const& ku;
00020 double* const& array;
00021 double** const& darray;
00022
00024 inline dgbmatrix();
00025 inline dgbmatrix(const dgbmatrix&);
00026 inline dgbmatrix(const _dgbmatrix&);
00027 inline dgbmatrix(const long&, const long&, const long&, const long&);
00028 inline dgbmatrix(const char *);
00029 inline ~dgbmatrix();
00030
00032 inline operator _zgbmatrix();
00033
00035 inline double& operator()(const long&, const long&);
00036 inline double operator()(const long&, const long&) const;
00037 inline void set(const long&, const long&, const double&) const;
00038 inline friend std::ostream& operator<<(std::ostream&, const dgbmatrix&);
00039 inline void write(const char *) const;
00040 inline void read(const char *);
00041
00043 inline void clear();
00044 inline void zero();
00045 inline void identity();
00046 inline void chsign();
00047 inline void copy(const dgbmatrix&);
00048 inline void shallow_copy(const _dgbmatrix&);
00049 inline void resize(const long&, const long&, const long&, const long&);
00050 inline friend void swap(dgbmatrix&, dgbmatrix&);
00051 inline friend _dgbmatrix _(dgbmatrix&);
00052
00054 inline friend _dgbmatrix t(const dgbmatrix&);
00055 inline friend _dgematrix i(const dgbmatrix&);
00056
00058 inline long dgbsv(dgematrix&);
00059 inline long dgbsv(dcovector&);
00060
00062 inline friend const dgbmatrix& operator+(const dgbmatrix&);
00063 inline friend _dgbmatrix operator-(const dgbmatrix&);
00064
00066 inline dgbmatrix& operator=(const dgbmatrix&);
00067 inline dgbmatrix& operator+=(const dgbmatrix&);
00068 inline dgbmatrix& operator-=(const dgbmatrix&);
00069 inline dgbmatrix& operator*=(const dgbmatrix&);
00071 inline dgbmatrix& operator=(const _dgbmatrix&);
00072 inline dgbmatrix& operator+=(const _dgbmatrix&);
00073 inline dgbmatrix& operator-=(const _dgbmatrix&);
00074 inline dgbmatrix& operator*=(const _dgbmatrix&);
00075
00077 inline dgbmatrix& operator*=(const double&);
00078 inline dgbmatrix& operator/=(const double&);
00079
00081 inline friend _dgbmatrix operator+(const dgbmatrix&, const dgbmatrix&);
00082 inline friend _dgbmatrix operator+(const dgbmatrix&, const _dgbmatrix&);
00083 inline friend _dgbmatrix operator+(const _dgbmatrix&, const dgbmatrix&);
00084
00085 inline friend _dgematrix operator+(const dgbmatrix&, const dgematrix&);
00086 inline friend _dgematrix operator+(const dgbmatrix&, const _dgematrix&);
00087 inline friend _dgematrix operator+(const dgematrix&, const dgbmatrix&);
00088 inline friend _dgematrix operator+(const _dgematrix&, const dgbmatrix&);
00089
00090 inline friend _dgematrix operator+(const dgbmatrix&, const dsymatrix&);
00091 inline friend _dgematrix operator+(const dgbmatrix&, const _dsymatrix&);
00092 inline friend _dgematrix operator+(const dsymatrix&, const dgbmatrix&);
00093 inline friend _dgematrix operator+(const _dsymatrix&, const dgbmatrix&);
00094
00095 inline friend _dgematrix operator+(const dgbmatrix&, const dssmatrix&);
00096 inline friend _dgematrix operator+(const dgbmatrix&, const _dssmatrix&);
00097 inline friend _dgematrix operator+(const dssmatrix&, const dgbmatrix&);
00098 inline friend _dgematrix operator+(const _dssmatrix&, const dgbmatrix&);
00099
00101 inline friend _dgbmatrix operator-(const dgbmatrix&, const dgbmatrix&);
00102 inline friend _dgbmatrix operator-(const dgbmatrix&, const _dgbmatrix&);
00103 inline friend _dgbmatrix operator-(const _dgbmatrix&, const dgbmatrix&);
00104
00105 inline friend _dgematrix operator-(const dgbmatrix&, const dgematrix&);
00106 inline friend _dgematrix operator-(const dgbmatrix&, const _dgematrix&);
00107 inline friend _dgematrix operator-(const dgematrix&, const dgbmatrix&);
00108 inline friend _dgematrix operator-(const _dgematrix&, const dgbmatrix&);
00109
00110 inline friend _dgematrix operator-(const dgbmatrix&, const dsymatrix&);
00111 inline friend _dgematrix operator-(const dgbmatrix&, const _dsymatrix&);
00112 inline friend _dgematrix operator-(const dsymatrix&, const dgbmatrix&);
00113 inline friend _dgematrix operator-(const _dsymatrix&, const dgbmatrix&);
00114
00115 inline friend _dgematrix operator-(const dgbmatrix&, const dssmatrix&);
00116 inline friend _dgematrix operator-(const dgbmatrix&, const _dssmatrix&);
00117 inline friend _dgematrix operator-(const dssmatrix&, const dgbmatrix&);
00118 inline friend _dgematrix operator-(const _dssmatrix&, const dgbmatrix&);
00119
00121 inline friend _dgbmatrix operator*(const dgbmatrix&, const dgbmatrix&);
00122 inline friend _dgbmatrix operator*(const dgbmatrix&, const _dgbmatrix&);
00123 inline friend _dgbmatrix operator*(const _dgbmatrix&, const dgbmatrix&);
00124
00125 inline friend _dgematrix operator*(const dgbmatrix&, const dgematrix&);
00126 inline friend _dgematrix operator*(const dgbmatrix&, const _dgematrix&);
00127 inline friend _dgematrix operator*(const dgematrix&, const dgbmatrix&);
00128 inline friend _dgematrix operator*(const _dgematrix&, const dgbmatrix&);
00129
00130 inline friend _dgematrix operator*(const dgbmatrix&, const dsymatrix&);
00131 inline friend _dgematrix operator*(const dgbmatrix&, const _dsymatrix&);
00132 inline friend _dgematrix operator*(const dsymatrix&, const dgbmatrix&);
00133 inline friend _dgematrix operator*(const _dsymatrix&, const dgbmatrix&);
00134
00135 inline friend _dgematrix operator*(const dgbmatrix&, const dssmatrix&);
00136 inline friend _dgematrix operator*(const dgbmatrix&, const _dssmatrix&);
00137 inline friend _dgematrix operator*(const dssmatrix&, const dgbmatrix&);
00138 inline friend _dgematrix operator*(const _dssmatrix&, const dgbmatrix&);
00139
00140 inline friend _dcovector operator*(const dgbmatrix&, const dcovector&);
00141 inline friend _dcovector operator*(const dgbmatrix&, const _dcovector&);
00142
00143 inline friend _drovector operator*(const drovector&, const dgbmatrix&);
00144 inline friend _drovector operator*(const _drovector&, const dgbmatrix&);
00145
00146 inline friend _dgbmatrix operator*(const dgbmatrix&, const double&);
00147 inline friend _dgbmatrix operator*(const double&, const dgbmatrix&);
00148
00150 inline friend _dgbmatrix operator/(const dgbmatrix&, const double&);
00151
00153 friend class dgematrix;
00154 friend class _dgematrix;
00155 friend class _dgbmatrix;
00156 friend class dsymatrix;
00157 friend class _dsymatrix;
00158 friend class dssmatrix;
00159 friend class _dssmatrix;
00160 friend class dcovector;
00161 friend class _dcovector;
00162 friend class drovector;
00163 friend class _drovector;
00164 };