Mercurial > hg > octave-lyh
comparison liboctave/CColVector.h @ 1205:8302fab9fe24
[project @ 1995-04-04 02:05:01 by jwe]
author | jwe |
---|---|
date | Tue, 04 Apr 1995 02:05:01 +0000 |
parents | 18933dbd5e43 |
children | 0bf4d2b7def4 |
comparison
equal
deleted
inserted
replaced
1204:68d147abe7ca | 1205:8302fab9fe24 |
---|---|
30 | 30 |
31 extern "C++" { | 31 extern "C++" { |
32 | 32 |
33 class ComplexColumnVector : public Array<Complex> | 33 class ComplexColumnVector : public Array<Complex> |
34 { | 34 { |
35 friend class ColumnVector; | 35 friend class ComplexMatrix; |
36 friend class ComplexRowVector; | 36 friend class ComplexRowVector; |
37 friend class ComplexMatrix; | |
38 | 37 |
39 public: | 38 public: |
40 | 39 |
41 ComplexColumnVector (void) : Array<Complex> () { } | 40 ComplexColumnVector (void) : Array<Complex> () { } |
42 ComplexColumnVector (int n) : Array<Complex> (n) { } | 41 ComplexColumnVector (int n) : Array<Complex> (n) { } |
43 ComplexColumnVector (int n, const Complex& val) | 42 ComplexColumnVector (int n, const Complex& val) : Array<Complex> (n, val) { } |
44 : Array<Complex> (n, val) { } | |
45 ComplexColumnVector (const ColumnVector& a); | 43 ComplexColumnVector (const ColumnVector& a); |
46 ComplexColumnVector (const Array<Complex>& a) : Array<Complex> (a) { } | 44 ComplexColumnVector (const Array<Complex>& a) : Array<Complex> (a) { } |
47 ComplexColumnVector (const ComplexColumnVector& a) : Array<Complex> (a) { } | 45 ComplexColumnVector (const ComplexColumnVector& a) : Array<Complex> (a) { } |
48 // ComplexColumnVector (double a) : Array<Complex> (1, a) { } | |
49 // ComplexColumnVector (const Complex& a) : Array<Complex> (1, a) { } | |
50 | 46 |
51 ComplexColumnVector& operator = (const ComplexColumnVector& a) | 47 ComplexColumnVector& operator = (const ComplexColumnVector& a) |
52 { | 48 { |
53 Array<Complex>::operator = (a); | 49 Array<Complex>::operator = (a); |
54 return *this; | 50 return *this; |
73 ComplexColumnVector stack (const ComplexColumnVector& a) const; | 69 ComplexColumnVector stack (const ComplexColumnVector& a) const; |
74 | 70 |
75 ComplexRowVector hermitian (void) const; // complex conjugate transpose. | 71 ComplexRowVector hermitian (void) const; // complex conjugate transpose. |
76 ComplexRowVector transpose (void) const; | 72 ComplexRowVector transpose (void) const; |
77 | 73 |
78 friend ColumnVector real (const ComplexColumnVector& a); | |
79 friend ColumnVector imag (const ComplexColumnVector& a); | |
80 friend ComplexColumnVector conj (const ComplexColumnVector& a); | 74 friend ComplexColumnVector conj (const ComplexColumnVector& a); |
81 | 75 |
82 // resize is the destructive equivalent for this one | 76 // resize is the destructive equivalent for this one |
83 | 77 |
84 ComplexColumnVector extract (int r1, int r2) const; | 78 ComplexColumnVector extract (int r1, int r2) const; |
99 double s); | 93 double s); |
100 friend ComplexColumnVector operator * (const ComplexColumnVector& a, | 94 friend ComplexColumnVector operator * (const ComplexColumnVector& a, |
101 double s); | 95 double s); |
102 friend ComplexColumnVector operator / (const ComplexColumnVector& a, | 96 friend ComplexColumnVector operator / (const ComplexColumnVector& a, |
103 double s); | 97 double s); |
98 | |
99 friend ComplexColumnVector operator + (const ColumnVector& a, | |
100 const Complex& s); | |
101 friend ComplexColumnVector operator - (const ColumnVector& a, | |
102 const Complex& s); | |
103 friend ComplexColumnVector operator * (const ColumnVector& a, | |
104 const Complex& s); | |
105 friend ComplexColumnVector operator / (const ColumnVector& a, | |
106 const Complex& s); | |
104 | 107 |
105 // scalar by column vector -> column vector operations | 108 // scalar by column vector -> column vector operations |
106 | 109 |
107 friend ComplexColumnVector operator + (double s, | 110 friend ComplexColumnVector operator + (double s, |
108 const ComplexColumnVector& a); | 111 const ComplexColumnVector& a); |
111 friend ComplexColumnVector operator * (double s, | 114 friend ComplexColumnVector operator * (double s, |
112 const ComplexColumnVector& a); | 115 const ComplexColumnVector& a); |
113 friend ComplexColumnVector operator / (double s, | 116 friend ComplexColumnVector operator / (double s, |
114 const ComplexColumnVector& a); | 117 const ComplexColumnVector& a); |
115 | 118 |
116 // column vector by row vector -> matrix operations | 119 friend ComplexColumnVector operator + (const Complex& s, |
117 | 120 const ColumnVector& a); |
118 friend ComplexMatrix operator * (const ComplexColumnVector& a, | 121 friend ComplexColumnVector operator - (const Complex& s, |
119 const ComplexRowVector& b); | 122 const ColumnVector& a); |
123 friend ComplexColumnVector operator * (const Complex& s, | |
124 const ColumnVector& a); | |
125 friend ComplexColumnVector operator / (const Complex& s, | |
126 const ColumnVector& a); | |
127 | |
128 // matrix by column vector -> column vector operations | |
129 | |
130 friend ComplexColumnVector operator * (const ComplexMatrix& a, | |
131 const ColumnVector& b); | |
132 | |
133 friend ComplexColumnVector operator * (const ComplexMatrix& a, | |
134 const ComplexColumnVector& b); | |
120 | 135 |
121 // column vector by column vector -> column vector operations | 136 // column vector by column vector -> column vector operations |
122 | 137 |
123 friend ComplexColumnVector operator + (const ComplexColumnVector& a, | 138 friend ComplexColumnVector operator + (const ComplexColumnVector& a, |
124 const ColumnVector& b); | 139 const ColumnVector& b); |
125 friend ComplexColumnVector operator - (const ComplexColumnVector& a, | 140 friend ComplexColumnVector operator - (const ComplexColumnVector& a, |
126 const ColumnVector& b); | 141 const ColumnVector& b); |
142 | |
143 friend ComplexColumnVector operator + (const ColumnVector& a, | |
144 const ComplexColumnVector& b); | |
145 friend ComplexColumnVector operator - (const ColumnVector& a, | |
146 const ComplexColumnVector& b); | |
127 | 147 |
128 friend ComplexColumnVector product (const ComplexColumnVector& a, | 148 friend ComplexColumnVector product (const ComplexColumnVector& a, |
129 const ColumnVector& b); | 149 const ColumnVector& b); |
130 friend ComplexColumnVector quotient (const ComplexColumnVector& a, | 150 friend ComplexColumnVector quotient (const ComplexColumnVector& a, |
131 const ColumnVector& b); | 151 const ColumnVector& b); |
132 | 152 |
153 friend ComplexColumnVector product (const ColumnVector& a, | |
154 const ComplexColumnVector& b); | |
155 friend ComplexColumnVector quotient (const ColumnVector& a, | |
156 const ComplexColumnVector& b); | |
157 | |
158 // matrix by column vector -> column vector operations | |
159 | |
160 friend ComplexColumnVector operator * (const Matrix& a, | |
161 const ComplexColumnVector& b); | |
162 | |
163 // diagonal matrix by column vector -> column vector operations | |
164 | |
165 friend ComplexColumnVector operator * (const DiagMatrix& a, | |
166 const ComplexColumnVector& b); | |
167 | |
168 friend ComplexColumnVector operator * (const ComplexDiagMatrix& a, | |
169 const ColumnVector& b); | |
170 | |
171 friend ComplexColumnVector operator * (const ComplexDiagMatrix& a, | |
172 const ComplexColumnVector& b); | |
173 | |
133 // other operations | 174 // other operations |
134 | 175 |
135 friend ComplexColumnVector map (c_c_Mapper f, const ComplexColumnVector& a); | 176 friend ComplexColumnVector map (c_c_Mapper f, const ComplexColumnVector& a); |
136 friend ColumnVector map (d_c_Mapper f, const ComplexColumnVector& a); | |
137 void map (c_c_Mapper f); | 177 void map (c_c_Mapper f); |
138 | 178 |
139 Complex min (void) const; | 179 Complex min (void) const; |
140 Complex max (void) const; | 180 Complex max (void) const; |
141 | 181 |
150 #include "mx-kludge.h" | 190 #include "mx-kludge.h" |
151 #undef KLUDGE_VECTORS | 191 #undef KLUDGE_VECTORS |
152 #undef TYPE | 192 #undef TYPE |
153 #undef KL_VEC_TYPE | 193 #undef KL_VEC_TYPE |
154 | 194 |
155 // private: | 195 private: |
156 // XXX FIXME XXX -- why does it not work to make this private, with | 196 |
157 // ColumnVector declared as a friend of ComplexColumnVector? It seems | |
158 // to work for the similar case with Matrix/ComplexMatrix. Hmm... | |
159 ComplexColumnVector (Complex *d, int l) : Array<Complex> (d, l) { } | 197 ComplexColumnVector (Complex *d, int l) : Array<Complex> (d, l) { } |
160 }; | 198 }; |
161 | 199 |
162 } // extern "C++" | 200 } // extern "C++" |
163 | 201 |