00001
00003 class dssmatrix
00004 {
00005 private:
00007 long M;
00008 long N;
00009 long CAP;
00010 long VOL;
00011 double* Array;
00012 long* Indx;
00013 long* Jndx;
00014
00015 public:
00017 long const& m;
00018 long const& n;
00019 long const& cap;
00020 long const& vol;
00021 double* const& array;
00022 long* const& indx;
00023 long* const& jndx;
00024
00026 inline dssmatrix();
00027 inline dssmatrix(const dssmatrix&);
00028 inline dssmatrix(const _dssmatrix&);
00029 inline dssmatrix(const long&, const long&, const long&);
00030 inline dssmatrix(const char*);
00031 inline ~dssmatrix();
00032
00034 inline operator _zssmatrix();
00035
00037 inline double operator()(const long&, const long&) const;
00038 inline void put(const long&, const long&, const double&);
00039 inline void fput(const long&, const long&, const double&);
00040 inline void add(const long&, const long&, const double&);
00041 inline void sub(const long&, const long&, const double&);
00042 inline void mult(const long&, const long&, const double&);
00043 inline void div(const long&, const long&, const double&);
00044 inline void del(const long&, const long&);
00045 inline void fdel(const long&);
00046 inline friend std::ostream& operator<<(std::ostream&, const dssmatrix&);
00047 inline void write(const char *) const;
00048 inline void read(const char *);
00049
00051 inline void clear();
00052 inline void zero();
00053 inline void chsign();
00054 inline void copy(const dssmatrix&);
00055 inline void shallow_copy(const _dssmatrix&);
00056 inline void resize(const long&, const long&, const long&);
00057 inline void expand(const long&);
00058 inline bool isListed(const long&, const long&);
00059 inline long number(const long&, const long&);
00060 inline void checkup();
00061 inline friend void swap(dssmatrix&, dssmatrix&);
00062 inline friend _dssmatrix _(dssmatrix&);
00063
00065 inline friend _dssmatrix t(const dssmatrix&);
00066 inline friend void idamax(long&, long&, const dssmatrix&);
00067 inline friend double damax(const dssmatrix&);
00068
00070 inline friend const dssmatrix& operator+(const dssmatrix&);
00071 inline friend _dssmatrix operator-(const dssmatrix&);
00072
00074 inline dssmatrix& operator=(const dssmatrix&);
00075 inline dssmatrix& operator+=(const dssmatrix&);
00076 inline dssmatrix& operator-=(const dssmatrix&);
00077 inline dssmatrix& operator*=(const dssmatrix&);
00078
00080 inline dssmatrix& operator=(const _dssmatrix&);
00081 inline dssmatrix& operator+=(const _dssmatrix&);
00082 inline dssmatrix& operator-=(const _dssmatrix&);
00083 inline dssmatrix& operator*=(const _dssmatrix&);
00084
00086 inline dssmatrix& operator*=(const double&);
00087 inline dssmatrix& operator/=(const double&);
00088
00090 inline friend _dgematrix operator+(const dssmatrix&, const dgematrix&);
00091 inline friend _dgematrix operator+(const dssmatrix&, const _dgematrix&);
00092 inline friend _dgematrix operator+(const dgematrix&, const dssmatrix&);
00093 inline friend _dgematrix operator+(const _dgematrix&, const dssmatrix&);
00094
00095 inline friend _dgematrix operator+(const dssmatrix&, const dgbmatrix&);
00096 inline friend _dgematrix operator+(const dssmatrix&, const _dgbmatrix&);
00097 inline friend _dgematrix operator+(const dgbmatrix&, const dssmatrix&);
00098 inline friend _dgematrix operator+(const _dgbmatrix&, const dssmatrix&);
00099
00100 inline friend _dgematrix operator+(const dssmatrix&, const dsymatrix&);
00101 inline friend _dgematrix operator+(const dssmatrix&, const _dsymatrix&);
00102 inline friend _dgematrix operator+(const dsymatrix&, const dssmatrix&);
00103 inline friend _dgematrix operator+(const _dsymatrix&, const dssmatrix&);
00104
00105 inline friend _dssmatrix operator+(const dssmatrix&, const dssmatrix&);
00106 inline friend _dssmatrix operator+(const dssmatrix&, const _dssmatrix&);
00107 inline friend _dssmatrix operator+(const _dssmatrix&, const dssmatrix&);
00108
00110 inline friend _dgematrix operator-(const dssmatrix&, const dgematrix&);
00111 inline friend _dgematrix operator-(const dssmatrix&, const _dgematrix&);
00112 inline friend _dgematrix operator-(const dgematrix&, const dssmatrix&);
00113 inline friend _dgematrix operator-(const _dgematrix&, const dssmatrix&);
00114
00115 inline friend _dgematrix operator-(const dssmatrix&, const dgbmatrix&);
00116 inline friend _dgematrix operator-(const dssmatrix&, const _dgbmatrix&);
00117 inline friend _dgematrix operator-(const dgbmatrix&, const dssmatrix&);
00118 inline friend _dgematrix operator-(const _dgbmatrix&, const dssmatrix&);
00119
00120 inline friend _dgematrix operator-(const dssmatrix&, const dsymatrix&);
00121 inline friend _dgematrix operator-(const dssmatrix&, const _dsymatrix&);
00122 inline friend _dgematrix operator-(const dsymatrix&, const dssmatrix&);
00123 inline friend _dgematrix operator-(const _dsymatrix&, const dssmatrix&);
00124
00125 inline friend _dssmatrix operator-(const dssmatrix&, const dssmatrix&);
00126 inline friend _dssmatrix operator-(const dssmatrix&, const _dssmatrix&);
00127 inline friend _dssmatrix operator-(const _dssmatrix&, const dssmatrix&);
00128
00130 inline friend _dgematrix operator*(const dssmatrix&, const dgematrix&);
00131 inline friend _dgematrix operator*(const dssmatrix&, const _dgematrix&);
00132 inline friend _dgematrix operator*(const dgematrix&, const dssmatrix&);
00133 inline friend _dgematrix operator*(const _dgematrix&, const dssmatrix&);
00134
00135 inline friend _dgematrix operator*(const dssmatrix&, const dgbmatrix&);
00136 inline friend _dgematrix operator*(const dssmatrix&, const _dgbmatrix&);
00137 inline friend _dgematrix operator*(const dgbmatrix&, const dssmatrix&);
00138 inline friend _dgematrix operator*(const _dgbmatrix&, const dssmatrix&);
00139
00140 inline friend _dgematrix operator*(const dsymatrix&, const dssmatrix&);
00141 inline friend _dgematrix operator*(const _dsymatrix&, const dssmatrix&);
00142 inline friend _dgematrix operator*(const dssmatrix&, const dsymatrix&);
00143 inline friend _dgematrix operator*(const dssmatrix&, const _dsymatrix&);
00144
00145 inline friend _dssmatrix operator*(const dssmatrix&, const dssmatrix&);
00146 inline friend _dssmatrix operator*(const dssmatrix&, const _dssmatrix&);
00147 inline friend _dssmatrix operator*(const _dssmatrix&, const dssmatrix&);
00148
00149 inline friend _dcovector operator*(const dssmatrix&, const dcovector&);
00150 inline friend _dcovector operator*(const dssmatrix&, const _dcovector&);
00151
00152 inline friend _drovector operator*(const drovector&, const dssmatrix&);
00153 inline friend _drovector operator*(const _drovector&, const dssmatrix&);
00154
00155 inline friend _dssmatrix operator*(const dssmatrix&, const double&);
00156 inline friend _dssmatrix operator*(const double&, const dssmatrix&);
00157
00159 inline friend _dssmatrix operator/(const dssmatrix&, const double&);
00160
00162 friend class dgematrix;
00163 friend class _dgematrix;
00164 friend class dgbmatrix;
00165 friend class _dgbmatrix;
00166 friend class dsymatrix;
00167 friend class _dsymatrix;
00168 friend class _dssmatrix;
00169 friend class dcovector;
00170 friend class _dcovector;
00171 friend class drovector;
00172 friend class _drovector;
00173 };