File indexing completed on 2026-06-02 08:48:23
0001
0002
0003
0004
0005
0006
0007
0008 #ifndef MATRIXCOMPLEXD_H_
0009 #define MATRIXCOMPLEXD_H_
0010
0011 #include <complex>
0012 #include <vector>
0013
0014 namespace NumA {
0015
0016
0017
0018
0019
0020
0021
0022
0023 class MatrixComplexD {
0024
0025 public:
0026
0027
0028
0029
0030 MatrixComplexD();
0031
0032
0033
0034
0035
0036
0037
0038 MatrixComplexD(const unsigned int n, const unsigned int m);
0039
0040
0041
0042
0043
0044 MatrixComplexD(const MatrixComplexD& v);
0045
0046
0047
0048
0049 virtual ~MatrixComplexD();
0050
0051
0052
0053
0054 enum Dim {
0055 X = 1,
0056 Y = 2
0057 };
0058
0059
0060
0061
0062
0063 MatrixComplexD Conjunct() const;
0064
0065
0066
0067
0068
0069
0070 MatrixComplexD Mult(const MatrixComplexD& v) const;
0071
0072
0073
0074
0075 void Clear();
0076
0077
0078
0079
0080 void MakeUnit();
0081
0082
0083
0084
0085 void operator=(const MatrixComplexD& rhs);
0086
0087
0088
0089
0090 MatrixComplexD operator+(const MatrixComplexD& rhs);
0091
0092
0093
0094
0095 MatrixComplexD operator-(const MatrixComplexD& rhs);
0096
0097
0098
0099
0100 MatrixComplexD operator*(const double& rhs);
0101
0102
0103
0104
0105 friend MatrixComplexD operator*(const double& lhs, MatrixComplexD& rhs);
0106
0107
0108
0109
0110 MatrixComplexD operator*(const std::complex<double>& rhs);
0111
0112
0113
0114
0115 friend MatrixComplexD operator*(const std::complex<double>& lhs,
0116 MatrixComplexD& rhs);
0117
0118
0119
0120
0121
0122 unsigned int GetNElements(const Dim v) const;
0123
0124
0125
0126
0127
0128
0129
0130 void SetElement(const unsigned int i, const unsigned int j,
0131 const std::complex<double> value);
0132
0133
0134
0135
0136
0137
0138 std::complex<double> GetElement(const unsigned int i,
0139 const unsigned int j) const;
0140
0141 private:
0142
0143
0144
0145
0146
0147 void CompareNElements(const MatrixComplexD& v) const;
0148
0149
0150
0151
0152 unsigned int m_n;
0153
0154
0155
0156
0157 unsigned int m_m;
0158
0159
0160
0161
0162 std::vector<std::vector<std::complex<double> > > m_elements;
0163 };
0164
0165 }
0166
0167 #endif