Menu

[r131]: / trunk / include / zhsmatrix- / zhsmatrix.hpp  Maximize  Restore  History

Download this file

140 lines (123 with data), 6.5 kB

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
//=============================================================================
//! Complex Double-precision Hermitian Sparse Matrix Class
class zhsmatrix
{
public:
///////////////////////////////////////////////
/////////////////// objects ///////////////////
///////////////////////////////////////////////
long const& m; //!< matrix row size
long n; //!< matrix column size
std::vector<zcomponent> data; //!< matrix data
std::vector< std::vector<uint32_t> > line; //!< vector of vector to store the entry information of component for each row and column
///////////////////////////////////////////////
///////////////// constructors ////////////////
///////////////////////////////////////////////
inline zhsmatrix();
inline zhsmatrix(const zhsmatrix&);
inline zhsmatrix(const _zhsmatrix&);
inline zhsmatrix(const long&, const long=0);
inline zhsmatrix(const char*);
inline zhsmatrix(const zgematrix&);
inline ~zhsmatrix(); //destructor
///////////////////////////////////////////////
////////////////// functions //////////////////
///////////////////////////////////////////////
//////// cast ////////
inline _zgematrix to_zgematrix() const;
inline _zhematrix to_zhematrix() const;
inline _zgsmatrix to_zgsmatrix() const;
//////// io ////////
inline comple operator()(const long&, const long&) const;
inline zhecomplex operator()(const long&, const long&);
inline zhsmatrix& put(const long&, const long&, const comple&);
inline zhsmatrix& del(const long, const long); //<-- NOT (const long&)
inline zhsmatrix& del(const long); //<-- NOT (const long&)
inline friend std::ostream& operator<<(std::ostream&, const zhsmatrix&);
inline void write(const char*) const;
inline void read(const char*);
//////// misc ////////
inline void clear();
inline zhsmatrix& zero();
inline void chsign();
inline void copy(const zhsmatrix&);
inline void shallow_copy(const _zhsmatrix&);
inline zhsmatrix& resize(const long&, const long=0, const long=0);
inline void stretch(const long&);
inline void expand(const long&);
inline bool isListed(const long&, const long&) const;
inline long number(const long&, const long&) const;
//inline void unique();
inline void checkup();
inline _zrovector row(const long&) const;
inline _zcovector col(const long&) const;
inline void diet(const double=DBL_MIN);
inline friend void swap(zhsmatrix&, zhsmatrix&);
inline friend _zhsmatrix _(zhsmatrix&);
//////// calc ////////
inline friend _zhsmatrix t(const zhsmatrix&);
inline friend void idamax(long&, long&, const zhsmatrix&);
inline friend comple damax(const zhsmatrix&);
///////////////////////////////////////////////
///////////// numerical operators /////////////
///////////////////////////////////////////////
//////// = ////////
inline zhsmatrix& operator=(const zhsmatrix&);
inline zhsmatrix& operator=(const _zhsmatrix&);
//////// += ////////
inline zhsmatrix& operator+=(const zhsmatrix&);
inline zhsmatrix& operator+=(const _zhsmatrix&);
//////// -= ////////
inline zhsmatrix& operator-=(const zhsmatrix&);
inline zhsmatrix& operator-=(const _zhsmatrix&);
//////// *= ////////
inline zhsmatrix& operator*=(const double&);
//////// /= ////////
inline zhsmatrix& operator/=(const double&);
//////// unary ////////
inline friend const zhsmatrix& operator+(const zhsmatrix&);
inline friend _zhsmatrix operator-(const zhsmatrix&);
//////// + ////////
inline friend _zgematrix operator+(const zhsmatrix&, const zgematrix&);
inline friend _zgematrix operator+(const zhsmatrix&, const _zgematrix&);
inline friend _zgematrix operator+(const zhsmatrix&, const zhematrix&);
inline friend _zgematrix operator+(const zhsmatrix&, const _zhematrix&);
inline friend _zgematrix operator+(const zhsmatrix&, const zgbmatrix&);
inline friend _zgematrix operator+(const zhsmatrix&, const _zgbmatrix&);
inline friend _zgsmatrix operator+(const zhsmatrix&, const zgsmatrix&);
inline friend _zgsmatrix operator+(const zhsmatrix&, const _zgsmatrix&);
inline friend _zhsmatrix operator+(const zhsmatrix&, const zhsmatrix&);
inline friend _zhsmatrix operator+(const zhsmatrix&, const _zhsmatrix&);
//////// - ////////
inline friend _zgematrix operator-(const zhsmatrix&, const zgematrix&);
inline friend _zgematrix operator-(const zhsmatrix&, const _zgematrix&);
inline friend _zgematrix operator-(const zhsmatrix&, const zhematrix&);
inline friend _zgematrix operator-(const zhsmatrix&, const _zhematrix&);
inline friend _zgematrix operator-(const zhsmatrix&, const zgbmatrix&);
inline friend _zgematrix operator-(const zhsmatrix&, const _zgbmatrix&);
inline friend _zgsmatrix operator-(const zhsmatrix&, const zgsmatrix&);
inline friend _zgsmatrix operator-(const zhsmatrix&, const _zgsmatrix&);
inline friend _zhsmatrix operator-(const zhsmatrix&, const zhsmatrix&);
inline friend _zhsmatrix operator-(const zhsmatrix&, const _zhsmatrix&);
//////// * ////////
inline friend _zcovector operator*(const zhsmatrix&, const zcovector&);
inline friend _zcovector operator*(const zhsmatrix&, const _zcovector&);
inline friend _zgematrix operator*(const zhsmatrix&, const zgematrix&);
inline friend _zgematrix operator*(const zhsmatrix&, const _zgematrix&);
inline friend _zgematrix operator*(const zhsmatrix&, const zhematrix&);
inline friend _zgematrix operator*(const zhsmatrix&, const _zhematrix&);
inline friend _zgematrix operator*(const zhsmatrix&, const zgbmatrix&);
inline friend _zgematrix operator*(const zhsmatrix&, const _zgbmatrix&);
inline friend _zgsmatrix operator*(const zhsmatrix&, const zgsmatrix&);
inline friend _zgsmatrix operator*(const zhsmatrix&, const _zgsmatrix&);
inline friend _zgsmatrix operator*(const zhsmatrix&, const zhsmatrix&);
inline friend _zgsmatrix operator*(const zhsmatrix&, const _zhsmatrix&);
inline friend _zhsmatrix operator*(const zhsmatrix&, const double&);
inline friend _zgsmatrix operator*(const zhsmatrix&, const comple&);
//////// / ////////
inline friend _zhsmatrix operator/(const zhsmatrix&, const double&);
inline friend _zgsmatrix operator/(const zhsmatrix&, const comple&);
//////// double, comple ////////
inline friend _zhsmatrix operator*(const double&, const zhsmatrix&);
inline friend _zgsmatrix operator*(const comple&, const zhsmatrix&);
};
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.