Mercurial > hg > octave-lyh
comparison liboctave/CSparse.h @ 10312:cbc402e64d83
untabify liboctave header files
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Thu, 11 Feb 2010 12:14:48 -0500 |
parents | 4c0cdbe0acca |
children | 99e9bae2d81e |
comparison
equal
deleted
inserted
replaced
10311:a217e1d74353 | 10312:cbc402e64d83 |
---|---|
77 | 77 |
78 explicit SparseComplexMatrix (const ComplexNDArray& a) | 78 explicit SparseComplexMatrix (const ComplexNDArray& a) |
79 : MSparse<Complex> (a) { } | 79 : MSparse<Complex> (a) { } |
80 | 80 |
81 explicit SparseComplexMatrix (const Array<Complex> a, const Array<octave_idx_type>& r, | 81 explicit SparseComplexMatrix (const Array<Complex> a, const Array<octave_idx_type>& r, |
82 const Array<octave_idx_type>& c, octave_idx_type nr = -1, | 82 const Array<octave_idx_type>& c, octave_idx_type nr = -1, |
83 octave_idx_type nc = -1, bool sum_terms = true) | 83 octave_idx_type nc = -1, bool sum_terms = true) |
84 : MSparse<Complex> (a, r, c, nr, nc, sum_terms) { } | 84 : MSparse<Complex> (a, r, c, nr, nc, sum_terms) { } |
85 | 85 |
86 explicit SparseComplexMatrix (const Array<Complex> a, | 86 explicit SparseComplexMatrix (const Array<Complex> a, |
87 const Array<double>& r, | 87 const Array<double>& r, |
88 const Array<double>& c, octave_idx_type nr = -1, | 88 const Array<double>& c, octave_idx_type nr = -1, |
89 octave_idx_type nc = -1, bool sum_terms = true) | 89 octave_idx_type nc = -1, bool sum_terms = true) |
90 : MSparse<Complex> (a, r, c, nr, nc, sum_terms) { } | 90 : MSparse<Complex> (a, r, c, nr, nc, sum_terms) { } |
91 | 91 |
92 explicit SparseComplexMatrix (const SparseMatrix& a); | 92 explicit SparseComplexMatrix (const SparseMatrix& a); |
93 | 93 |
94 explicit SparseComplexMatrix (const SparseBoolMatrix& a); | 94 explicit SparseComplexMatrix (const SparseBoolMatrix& a); |
118 SparseComplexMatrix& insert (const SparseMatrix& a, octave_idx_type r, octave_idx_type c); | 118 SparseComplexMatrix& insert (const SparseMatrix& a, octave_idx_type r, octave_idx_type c); |
119 SparseComplexMatrix& insert (const SparseComplexMatrix& a, const Array<octave_idx_type>& indx); | 119 SparseComplexMatrix& insert (const SparseComplexMatrix& a, const Array<octave_idx_type>& indx); |
120 SparseComplexMatrix& insert (const SparseMatrix& a, const Array<octave_idx_type>& indx); | 120 SparseComplexMatrix& insert (const SparseMatrix& a, const Array<octave_idx_type>& indx); |
121 | 121 |
122 SparseComplexMatrix concat (const SparseComplexMatrix& rb, | 122 SparseComplexMatrix concat (const SparseComplexMatrix& rb, |
123 const Array<octave_idx_type>& ra_idx); | 123 const Array<octave_idx_type>& ra_idx); |
124 SparseComplexMatrix concat (const SparseMatrix& rb, | 124 SparseComplexMatrix concat (const SparseMatrix& rb, |
125 const Array<octave_idx_type>& ra_idx); | 125 const Array<octave_idx_type>& ra_idx); |
126 | 126 |
127 ComplexMatrix matrix_value (void) const; | 127 ComplexMatrix matrix_value (void) const; |
128 | 128 |
129 SparseComplexMatrix hermitian (void) const; // complex conjugate transpose | 129 SparseComplexMatrix hermitian (void) const; // complex conjugate transpose |
130 SparseComplexMatrix transpose (void) const | 130 SparseComplexMatrix transpose (void) const |
138 | 138 |
139 ComplexColumnVector column (octave_idx_type i) const; | 139 ComplexColumnVector column (octave_idx_type i) const; |
140 | 140 |
141 private: | 141 private: |
142 SparseComplexMatrix dinverse (MatrixType &mattyp, octave_idx_type& info, | 142 SparseComplexMatrix dinverse (MatrixType &mattyp, octave_idx_type& info, |
143 double& rcond, const bool force = false, | 143 double& rcond, const bool force = false, |
144 const bool calccond = true) const; | 144 const bool calccond = true) const; |
145 | 145 |
146 SparseComplexMatrix tinverse (MatrixType &mattyp, octave_idx_type& info, | 146 SparseComplexMatrix tinverse (MatrixType &mattyp, octave_idx_type& info, |
147 double& rcond, const bool force = false, | 147 double& rcond, const bool force = false, |
148 const bool calccond = true) const; | 148 const bool calccond = true) const; |
149 | 149 |
150 public: | 150 public: |
151 SparseComplexMatrix inverse (void) const; | 151 SparseComplexMatrix inverse (void) const; |
152 SparseComplexMatrix inverse (MatrixType& mattype) const; | 152 SparseComplexMatrix inverse (MatrixType& mattype) const; |
153 SparseComplexMatrix inverse (MatrixType& mattype, | 153 SparseComplexMatrix inverse (MatrixType& mattype, |
154 octave_idx_type& info) const; | 154 octave_idx_type& info) const; |
155 SparseComplexMatrix inverse (MatrixType& mattype, octave_idx_type& info, | 155 SparseComplexMatrix inverse (MatrixType& mattype, octave_idx_type& info, |
156 double& rcond, int force = 0, | 156 double& rcond, int force = 0, |
157 int calc_cond = 1) const; | 157 int calc_cond = 1) const; |
158 | 158 |
159 ComplexDET determinant (void) const; | 159 ComplexDET determinant (void) const; |
160 ComplexDET determinant (octave_idx_type& info) const; | 160 ComplexDET determinant (octave_idx_type& info) const; |
161 ComplexDET determinant (octave_idx_type& info, double& rcond, | 161 ComplexDET determinant (octave_idx_type& info, double& rcond, |
162 int calc_cond = 1) const; | 162 int calc_cond = 1) const; |
163 | 163 |
164 private: | 164 private: |
165 // Diagonal matrix solvers | 165 // Diagonal matrix solvers |
166 ComplexMatrix dsolve (MatrixType &typ, const Matrix& b, octave_idx_type& info, | 166 ComplexMatrix dsolve (MatrixType &typ, const Matrix& b, octave_idx_type& info, |
167 double& rcond, solve_singularity_handler sing_handler, | 167 double& rcond, solve_singularity_handler sing_handler, |
168 bool calc_cond = false) const; | 168 bool calc_cond = false) const; |
169 | 169 |
170 ComplexMatrix dsolve (MatrixType &typ, const ComplexMatrix& b, | 170 ComplexMatrix dsolve (MatrixType &typ, const ComplexMatrix& b, |
171 octave_idx_type& info, double& rcond, | 171 octave_idx_type& info, double& rcond, |
172 solve_singularity_handler sing_handler, | 172 solve_singularity_handler sing_handler, |
173 bool calc_cond = false) const; | 173 bool calc_cond = false) const; |
174 | 174 |
175 SparseComplexMatrix dsolve (MatrixType &typ, const SparseMatrix& b, | 175 SparseComplexMatrix dsolve (MatrixType &typ, const SparseMatrix& b, |
176 octave_idx_type& info, double& rcond, | 176 octave_idx_type& info, double& rcond, |
177 solve_singularity_handler sing_handler, | 177 solve_singularity_handler sing_handler, |
178 bool calc_cond = false) const; | 178 bool calc_cond = false) const; |
179 | 179 |
180 SparseComplexMatrix dsolve (MatrixType &typ, const SparseComplexMatrix& b, | 180 SparseComplexMatrix dsolve (MatrixType &typ, const SparseComplexMatrix& b, |
181 octave_idx_type& info, double& rcond, | 181 octave_idx_type& info, double& rcond, |
182 solve_singularity_handler sing_handler, | 182 solve_singularity_handler sing_handler, |
183 bool calc_cond = false) const; | 183 bool calc_cond = false) const; |
184 | 184 |
185 // Upper triangular matrix solvers | 185 // Upper triangular matrix solvers |
186 ComplexMatrix utsolve (MatrixType &typ, const Matrix& b, octave_idx_type& info, | 186 ComplexMatrix utsolve (MatrixType &typ, const Matrix& b, octave_idx_type& info, |
187 double& rcond, solve_singularity_handler sing_handler, | 187 double& rcond, solve_singularity_handler sing_handler, |
188 bool calc_cond = false) const; | 188 bool calc_cond = false) const; |
189 | 189 |
190 ComplexMatrix utsolve (MatrixType &typ, const ComplexMatrix& b, | 190 ComplexMatrix utsolve (MatrixType &typ, const ComplexMatrix& b, |
191 octave_idx_type& info, double& rcond, | 191 octave_idx_type& info, double& rcond, |
192 solve_singularity_handler sing_handler, | 192 solve_singularity_handler sing_handler, |
193 bool calc_cond = false) const; | 193 bool calc_cond = false) const; |
194 | 194 |
195 SparseComplexMatrix utsolve (MatrixType &typ, const SparseMatrix& b, | 195 SparseComplexMatrix utsolve (MatrixType &typ, const SparseMatrix& b, |
196 octave_idx_type& info, double& rcond, | 196 octave_idx_type& info, double& rcond, |
197 solve_singularity_handler sing_handler, | 197 solve_singularity_handler sing_handler, |
198 bool calc_cond = false) const; | 198 bool calc_cond = false) const; |
199 | 199 |
200 SparseComplexMatrix utsolve (MatrixType &typ, const SparseComplexMatrix& b, | 200 SparseComplexMatrix utsolve (MatrixType &typ, const SparseComplexMatrix& b, |
201 octave_idx_type& info, double& rcond, | 201 octave_idx_type& info, double& rcond, |
202 solve_singularity_handler sing_handler, | 202 solve_singularity_handler sing_handler, |
203 bool calc_cond = false) const; | 203 bool calc_cond = false) const; |
204 | 204 |
205 // Lower triangular matrix solvers | 205 // Lower triangular matrix solvers |
206 ComplexMatrix ltsolve (MatrixType &typ, const Matrix& b, | 206 ComplexMatrix ltsolve (MatrixType &typ, const Matrix& b, |
207 octave_idx_type& info, double& rcond, | 207 octave_idx_type& info, double& rcond, |
208 solve_singularity_handler sing_handler, | 208 solve_singularity_handler sing_handler, |
209 bool calc_cond = false) const; | 209 bool calc_cond = false) const; |
210 | 210 |
211 ComplexMatrix ltsolve (MatrixType &typ, const ComplexMatrix& b, | 211 ComplexMatrix ltsolve (MatrixType &typ, const ComplexMatrix& b, |
212 octave_idx_type& info, double& rcond, | 212 octave_idx_type& info, double& rcond, |
213 solve_singularity_handler sing_handler, | 213 solve_singularity_handler sing_handler, |
214 bool calc_cond = false) const; | 214 bool calc_cond = false) const; |
215 | 215 |
216 SparseComplexMatrix ltsolve (MatrixType &typ, const SparseMatrix& b, | 216 SparseComplexMatrix ltsolve (MatrixType &typ, const SparseMatrix& b, |
217 octave_idx_type& info, double& rcond, | 217 octave_idx_type& info, double& rcond, |
218 solve_singularity_handler sing_handler, | 218 solve_singularity_handler sing_handler, |
219 bool calc_cond = false) const; | 219 bool calc_cond = false) const; |
220 | 220 |
221 SparseComplexMatrix ltsolve (MatrixType &typ, const SparseComplexMatrix& b, | 221 SparseComplexMatrix ltsolve (MatrixType &typ, const SparseComplexMatrix& b, |
222 octave_idx_type& info, double& rcond, | 222 octave_idx_type& info, double& rcond, |
223 solve_singularity_handler sing_handler, | 223 solve_singularity_handler sing_handler, |
224 bool calc_cond = false) const; | 224 bool calc_cond = false) const; |
225 | 225 |
226 // Tridiagonal matrix solvers | 226 // Tridiagonal matrix solvers |
227 ComplexMatrix trisolve (MatrixType &typ, const Matrix& b, | 227 ComplexMatrix trisolve (MatrixType &typ, const Matrix& b, |
228 octave_idx_type& info, double& rcond, | 228 octave_idx_type& info, double& rcond, |
229 solve_singularity_handler sing_handler, | 229 solve_singularity_handler sing_handler, |
230 bool calc_cond = false) const; | 230 bool calc_cond = false) const; |
231 | 231 |
232 ComplexMatrix trisolve (MatrixType &typ, const ComplexMatrix& b, | 232 ComplexMatrix trisolve (MatrixType &typ, const ComplexMatrix& b, |
233 octave_idx_type& info, double& rcond, | 233 octave_idx_type& info, double& rcond, |
234 solve_singularity_handler sing_handler, | 234 solve_singularity_handler sing_handler, |
235 bool calc_cond = false) const; | 235 bool calc_cond = false) const; |
236 | 236 |
237 SparseComplexMatrix trisolve (MatrixType &typ, const SparseMatrix& b, | 237 SparseComplexMatrix trisolve (MatrixType &typ, const SparseMatrix& b, |
238 octave_idx_type& info, double& rcond, | 238 octave_idx_type& info, double& rcond, |
239 solve_singularity_handler sing_handler, | 239 solve_singularity_handler sing_handler, |
240 bool calc_cond = false) const; | 240 bool calc_cond = false) const; |
241 | 241 |
242 SparseComplexMatrix trisolve (MatrixType &typ, const SparseComplexMatrix& b, | 242 SparseComplexMatrix trisolve (MatrixType &typ, const SparseComplexMatrix& b, |
243 octave_idx_type& info, double& rcond, | 243 octave_idx_type& info, double& rcond, |
244 solve_singularity_handler sing_handler, | 244 solve_singularity_handler sing_handler, |
245 bool calc_cond = false) const; | 245 bool calc_cond = false) const; |
246 | 246 |
247 // Banded matrix solvers (umfpack/cholesky) | 247 // Banded matrix solvers (umfpack/cholesky) |
248 ComplexMatrix bsolve (MatrixType &typ, const Matrix& b, octave_idx_type& info, | 248 ComplexMatrix bsolve (MatrixType &typ, const Matrix& b, octave_idx_type& info, |
249 double& rcond, solve_singularity_handler sing_handler, | 249 double& rcond, solve_singularity_handler sing_handler, |
250 bool calc_cond = false) const; | 250 bool calc_cond = false) const; |
251 | 251 |
252 ComplexMatrix bsolve (MatrixType &typ, const ComplexMatrix& b, | 252 ComplexMatrix bsolve (MatrixType &typ, const ComplexMatrix& b, |
253 octave_idx_type& info, double& rcond, | 253 octave_idx_type& info, double& rcond, |
254 solve_singularity_handler sing_handler, | 254 solve_singularity_handler sing_handler, |
255 bool calc_cond = false) const; | 255 bool calc_cond = false) const; |
256 | 256 |
257 SparseComplexMatrix bsolve (MatrixType &typ, const SparseMatrix& b, | 257 SparseComplexMatrix bsolve (MatrixType &typ, const SparseMatrix& b, |
258 octave_idx_type& info, double& rcond, | 258 octave_idx_type& info, double& rcond, |
259 solve_singularity_handler sing_handler, | 259 solve_singularity_handler sing_handler, |
260 bool calc_cond = false) const; | 260 bool calc_cond = false) const; |
261 | 261 |
262 SparseComplexMatrix bsolve (MatrixType &typ, const SparseComplexMatrix& b, | 262 SparseComplexMatrix bsolve (MatrixType &typ, const SparseComplexMatrix& b, |
263 octave_idx_type& info, double& rcond, | 263 octave_idx_type& info, double& rcond, |
264 solve_singularity_handler sing_handler, | 264 solve_singularity_handler sing_handler, |
265 bool calc_cond = false) const; | 265 bool calc_cond = false) const; |
266 | 266 |
267 // Full matrix solvers (umfpack/cholesky) | 267 // Full matrix solvers (umfpack/cholesky) |
268 void * factorize (octave_idx_type& err, double &rcond, Matrix &Control, | 268 void * factorize (octave_idx_type& err, double &rcond, Matrix &Control, |
269 Matrix &Info, solve_singularity_handler sing_handler, | 269 Matrix &Info, solve_singularity_handler sing_handler, |
270 bool calc_cond) const; | 270 bool calc_cond) const; |
271 | 271 |
272 ComplexMatrix fsolve (MatrixType &typ, const Matrix& b, octave_idx_type& info, | 272 ComplexMatrix fsolve (MatrixType &typ, const Matrix& b, octave_idx_type& info, |
273 double& rcond, solve_singularity_handler sing_handler, | 273 double& rcond, solve_singularity_handler sing_handler, |
274 bool calc_cond = false) const; | 274 bool calc_cond = false) const; |
275 | 275 |
276 ComplexMatrix fsolve (MatrixType &typ, const ComplexMatrix& b, | 276 ComplexMatrix fsolve (MatrixType &typ, const ComplexMatrix& b, |
277 octave_idx_type& info, double& rcond, | 277 octave_idx_type& info, double& rcond, |
278 solve_singularity_handler sing_handler, | 278 solve_singularity_handler sing_handler, |
279 bool calc_cond = false) const; | 279 bool calc_cond = false) const; |
280 | 280 |
281 SparseComplexMatrix fsolve (MatrixType &typ, const SparseMatrix& b, | 281 SparseComplexMatrix fsolve (MatrixType &typ, const SparseMatrix& b, |
282 octave_idx_type& info, double& rcond, | 282 octave_idx_type& info, double& rcond, |
283 solve_singularity_handler sing_handler, | 283 solve_singularity_handler sing_handler, |
284 bool calc_cond = false) const; | 284 bool calc_cond = false) const; |
285 | 285 |
286 SparseComplexMatrix fsolve (MatrixType &typ, const SparseComplexMatrix& b, | 286 SparseComplexMatrix fsolve (MatrixType &typ, const SparseComplexMatrix& b, |
287 octave_idx_type& info, double& rcond, | 287 octave_idx_type& info, double& rcond, |
288 solve_singularity_handler sing_handler, | 288 solve_singularity_handler sing_handler, |
289 bool calc_cond = false) const; | 289 bool calc_cond = false) const; |
290 | 290 |
291 public: | 291 public: |
292 // Generic interface to solver with no probing of type | 292 // Generic interface to solver with no probing of type |
293 ComplexMatrix solve (MatrixType &typ, const Matrix& b) const; | 293 ComplexMatrix solve (MatrixType &typ, const Matrix& b) const; |
294 ComplexMatrix solve (MatrixType &typ, const Matrix& b, | 294 ComplexMatrix solve (MatrixType &typ, const Matrix& b, |
295 octave_idx_type& info) const; | 295 octave_idx_type& info) const; |
296 ComplexMatrix solve (MatrixType &typ, const Matrix& b, octave_idx_type& info, | 296 ComplexMatrix solve (MatrixType &typ, const Matrix& b, octave_idx_type& info, |
297 double& rcond) const; | 297 double& rcond) const; |
298 ComplexMatrix solve (MatrixType &typ, const Matrix& b, octave_idx_type& info, | 298 ComplexMatrix solve (MatrixType &typ, const Matrix& b, octave_idx_type& info, |
299 double& rcond, solve_singularity_handler sing_handler, | 299 double& rcond, solve_singularity_handler sing_handler, |
300 bool singular_fallback = true) const; | 300 bool singular_fallback = true) const; |
301 | 301 |
302 ComplexMatrix solve (MatrixType &typ, const ComplexMatrix& b) const; | 302 ComplexMatrix solve (MatrixType &typ, const ComplexMatrix& b) const; |
303 ComplexMatrix solve (MatrixType &typ, const ComplexMatrix& b, | 303 ComplexMatrix solve (MatrixType &typ, const ComplexMatrix& b, |
304 octave_idx_type& info) const; | 304 octave_idx_type& info) const; |
305 ComplexMatrix solve (MatrixType &typ, const ComplexMatrix& b, | 305 ComplexMatrix solve (MatrixType &typ, const ComplexMatrix& b, |
306 octave_idx_type& info, double& rcond) const; | 306 octave_idx_type& info, double& rcond) const; |
307 ComplexMatrix solve (MatrixType &typ, const ComplexMatrix& b, | 307 ComplexMatrix solve (MatrixType &typ, const ComplexMatrix& b, |
308 octave_idx_type& info, double& rcond, | 308 octave_idx_type& info, double& rcond, |
309 solve_singularity_handler sing_handler, | 309 solve_singularity_handler sing_handler, |
310 bool singular_fallback = true) const; | 310 bool singular_fallback = true) const; |
311 | 311 |
312 SparseComplexMatrix solve (MatrixType &typ, const SparseMatrix& b) const; | 312 SparseComplexMatrix solve (MatrixType &typ, const SparseMatrix& b) const; |
313 SparseComplexMatrix solve (MatrixType &typ, const SparseMatrix& b, | 313 SparseComplexMatrix solve (MatrixType &typ, const SparseMatrix& b, |
314 octave_idx_type& info) const; | 314 octave_idx_type& info) const; |
315 SparseComplexMatrix solve (MatrixType &typ, const SparseMatrix& b, | 315 SparseComplexMatrix solve (MatrixType &typ, const SparseMatrix& b, |
316 octave_idx_type& info, double& rcond) const; | 316 octave_idx_type& info, double& rcond) const; |
317 SparseComplexMatrix solve (MatrixType &typ, const SparseMatrix& b, | 317 SparseComplexMatrix solve (MatrixType &typ, const SparseMatrix& b, |
318 octave_idx_type& info, double& rcond, | 318 octave_idx_type& info, double& rcond, |
319 solve_singularity_handler sing_handler, | 319 solve_singularity_handler sing_handler, |
320 bool singular_fallback = true) const; | 320 bool singular_fallback = true) const; |
321 | 321 |
322 SparseComplexMatrix solve (MatrixType &typ, | 322 SparseComplexMatrix solve (MatrixType &typ, |
323 const SparseComplexMatrix& b) const; | 323 const SparseComplexMatrix& b) const; |
324 SparseComplexMatrix solve (MatrixType &typ, const SparseComplexMatrix& b, | 324 SparseComplexMatrix solve (MatrixType &typ, const SparseComplexMatrix& b, |
325 octave_idx_type& info) const; | 325 octave_idx_type& info) const; |
326 SparseComplexMatrix solve (MatrixType &typ, const SparseComplexMatrix& b, | 326 SparseComplexMatrix solve (MatrixType &typ, const SparseComplexMatrix& b, |
327 octave_idx_type& info, double& rcond) const; | 327 octave_idx_type& info, double& rcond) const; |
328 SparseComplexMatrix solve (MatrixType &typ, const SparseComplexMatrix& b, | 328 SparseComplexMatrix solve (MatrixType &typ, const SparseComplexMatrix& b, |
329 octave_idx_type& info, double& rcond, | 329 octave_idx_type& info, double& rcond, |
330 solve_singularity_handler sing_handler, | 330 solve_singularity_handler sing_handler, |
331 bool singular_fallback = true) const; | 331 bool singular_fallback = true) const; |
332 | 332 |
333 ComplexColumnVector solve (MatrixType &typ, const ColumnVector& b) const; | 333 ComplexColumnVector solve (MatrixType &typ, const ColumnVector& b) const; |
334 ComplexColumnVector solve (MatrixType &typ, const ColumnVector& b, | 334 ComplexColumnVector solve (MatrixType &typ, const ColumnVector& b, |
335 octave_idx_type& info) const; | 335 octave_idx_type& info) const; |
336 ComplexColumnVector solve (MatrixType &typ, const ColumnVector& b, | 336 ComplexColumnVector solve (MatrixType &typ, const ColumnVector& b, |
337 octave_idx_type& info, double& rcond) const; | 337 octave_idx_type& info, double& rcond) const; |
338 ComplexColumnVector solve (MatrixType &typ, const ColumnVector& b, | 338 ComplexColumnVector solve (MatrixType &typ, const ColumnVector& b, |
339 octave_idx_type& info, double& rcond, | 339 octave_idx_type& info, double& rcond, |
340 solve_singularity_handler sing_handler) const; | 340 solve_singularity_handler sing_handler) const; |
341 | 341 |
342 ComplexColumnVector solve (MatrixType &typ, | 342 ComplexColumnVector solve (MatrixType &typ, |
343 const ComplexColumnVector& b) const; | 343 const ComplexColumnVector& b) const; |
344 ComplexColumnVector solve (MatrixType &typ, const ComplexColumnVector& b, | 344 ComplexColumnVector solve (MatrixType &typ, const ComplexColumnVector& b, |
345 octave_idx_type& info) const; | 345 octave_idx_type& info) const; |
346 ComplexColumnVector solve (MatrixType &typ, const ComplexColumnVector& b, | 346 ComplexColumnVector solve (MatrixType &typ, const ComplexColumnVector& b, |
347 octave_idx_type& info, double& rcond) const; | 347 octave_idx_type& info, double& rcond) const; |
348 ComplexColumnVector solve (MatrixType &typ, const ComplexColumnVector& b, | 348 ComplexColumnVector solve (MatrixType &typ, const ComplexColumnVector& b, |
349 octave_idx_type& info, double& rcond, | 349 octave_idx_type& info, double& rcond, |
350 solve_singularity_handler sing_handler) const; | 350 solve_singularity_handler sing_handler) const; |
351 | 351 |
352 // Generic interface to solver with probing of type | 352 // Generic interface to solver with probing of type |
353 ComplexMatrix solve (const Matrix& b) const; | 353 ComplexMatrix solve (const Matrix& b) const; |
354 ComplexMatrix solve (const Matrix& b, octave_idx_type& info) const; | 354 ComplexMatrix solve (const Matrix& b, octave_idx_type& info) const; |
355 ComplexMatrix solve (const Matrix& b, octave_idx_type& info, | 355 ComplexMatrix solve (const Matrix& b, octave_idx_type& info, |
356 double& rcond) const; | 356 double& rcond) const; |
357 ComplexMatrix solve (const Matrix& b, octave_idx_type& info, double& rcond, | 357 ComplexMatrix solve (const Matrix& b, octave_idx_type& info, double& rcond, |
358 solve_singularity_handler sing_handler) const; | 358 solve_singularity_handler sing_handler) const; |
359 | 359 |
360 ComplexMatrix solve (const ComplexMatrix& b) const; | 360 ComplexMatrix solve (const ComplexMatrix& b) const; |
361 ComplexMatrix solve (const ComplexMatrix& b, octave_idx_type& info) const; | 361 ComplexMatrix solve (const ComplexMatrix& b, octave_idx_type& info) const; |
362 ComplexMatrix solve (const ComplexMatrix& b, octave_idx_type& info, | 362 ComplexMatrix solve (const ComplexMatrix& b, octave_idx_type& info, |
363 double& rcond) const; | 363 double& rcond) const; |
364 ComplexMatrix solve (const ComplexMatrix& b, octave_idx_type& info, | 364 ComplexMatrix solve (const ComplexMatrix& b, octave_idx_type& info, |
365 double& rcond, solve_singularity_handler sing_handler) const; | 365 double& rcond, solve_singularity_handler sing_handler) const; |
366 | 366 |
367 SparseComplexMatrix solve (const SparseMatrix& b) const; | 367 SparseComplexMatrix solve (const SparseMatrix& b) const; |
368 SparseComplexMatrix solve (const SparseMatrix& b, octave_idx_type& info) const; | 368 SparseComplexMatrix solve (const SparseMatrix& b, octave_idx_type& info) const; |
369 SparseComplexMatrix solve (const SparseMatrix& b, octave_idx_type& info, | 369 SparseComplexMatrix solve (const SparseMatrix& b, octave_idx_type& info, |
370 double& rcond) const; | 370 double& rcond) const; |
371 SparseComplexMatrix solve (const SparseMatrix& b, octave_idx_type& info, | 371 SparseComplexMatrix solve (const SparseMatrix& b, octave_idx_type& info, |
372 double& rcond, | 372 double& rcond, |
373 solve_singularity_handler sing_handler) const; | 373 solve_singularity_handler sing_handler) const; |
374 | 374 |
375 SparseComplexMatrix solve (const SparseComplexMatrix& b) const; | 375 SparseComplexMatrix solve (const SparseComplexMatrix& b) const; |
376 SparseComplexMatrix solve (const SparseComplexMatrix& b, | 376 SparseComplexMatrix solve (const SparseComplexMatrix& b, |
377 octave_idx_type& info) const; | 377 octave_idx_type& info) const; |
378 SparseComplexMatrix solve (const SparseComplexMatrix& b, | 378 SparseComplexMatrix solve (const SparseComplexMatrix& b, |
379 octave_idx_type& info, double& rcond) const; | 379 octave_idx_type& info, double& rcond) const; |
380 SparseComplexMatrix solve (const SparseComplexMatrix& b, | 380 SparseComplexMatrix solve (const SparseComplexMatrix& b, |
381 octave_idx_type& info, double& rcond, | 381 octave_idx_type& info, double& rcond, |
382 solve_singularity_handler sing_handler) const; | 382 solve_singularity_handler sing_handler) const; |
383 | 383 |
384 ComplexColumnVector solve (const ColumnVector& b) const; | 384 ComplexColumnVector solve (const ColumnVector& b) const; |
385 ComplexColumnVector solve (const ColumnVector& b, octave_idx_type& info) const; | 385 ComplexColumnVector solve (const ColumnVector& b, octave_idx_type& info) const; |
386 ComplexColumnVector solve (const ColumnVector& b, octave_idx_type& info, | 386 ComplexColumnVector solve (const ColumnVector& b, octave_idx_type& info, |
387 double& rcond) const; | 387 double& rcond) const; |
388 ComplexColumnVector solve (const ColumnVector& b, octave_idx_type& info, | 388 ComplexColumnVector solve (const ColumnVector& b, octave_idx_type& info, |
389 double& rcond, | 389 double& rcond, |
390 solve_singularity_handler sing_handler) const; | 390 solve_singularity_handler sing_handler) const; |
391 | 391 |
392 ComplexColumnVector solve (const ComplexColumnVector& b) const; | 392 ComplexColumnVector solve (const ComplexColumnVector& b) const; |
393 ComplexColumnVector solve (const ComplexColumnVector& b, | 393 ComplexColumnVector solve (const ComplexColumnVector& b, |
394 octave_idx_type& info) const; | 394 octave_idx_type& info) const; |
395 ComplexColumnVector solve (const ComplexColumnVector& b, octave_idx_type& info, | 395 ComplexColumnVector solve (const ComplexColumnVector& b, octave_idx_type& info, |
396 double& rcond) const; | 396 double& rcond) const; |
397 ComplexColumnVector solve (const ComplexColumnVector& b, octave_idx_type& info, | 397 ComplexColumnVector solve (const ComplexColumnVector& b, octave_idx_type& info, |
398 double& rcond, | 398 double& rcond, |
399 solve_singularity_handler sing_handler) const; | 399 solve_singularity_handler sing_handler) const; |
400 | 400 |
401 SparseComplexMatrix squeeze (void) const; | 401 SparseComplexMatrix squeeze (void) const; |
402 | 402 |
403 SparseComplexMatrix index (idx_vector& i, int resize_ok) const; | 403 SparseComplexMatrix index (idx_vector& i, int resize_ok) const; |
404 | 404 |
407 SparseComplexMatrix index (Array<idx_vector>& ra_idx, int resize_ok) const; | 407 SparseComplexMatrix index (Array<idx_vector>& ra_idx, int resize_ok) const; |
408 | 408 |
409 SparseComplexMatrix reshape (const dim_vector& new_dims) const; | 409 SparseComplexMatrix reshape (const dim_vector& new_dims) const; |
410 | 410 |
411 SparseComplexMatrix permute (const Array<octave_idx_type>& vec, | 411 SparseComplexMatrix permute (const Array<octave_idx_type>& vec, |
412 bool inv = false) const; | 412 bool inv = false) const; |
413 | 413 |
414 SparseComplexMatrix ipermute (const Array<octave_idx_type>& vec) const; | 414 SparseComplexMatrix ipermute (const Array<octave_idx_type>& vec) const; |
415 | 415 |
416 bool any_element_is_nan (void) const; | 416 bool any_element_is_nan (void) const; |
417 bool any_element_is_inf_or_nan (void) const; | 417 bool any_element_is_inf_or_nan (void) const; |
433 | 433 |
434 SparseComplexMatrix diag (octave_idx_type k = 0) const; | 434 SparseComplexMatrix diag (octave_idx_type k = 0) const; |
435 | 435 |
436 // i/o | 436 // i/o |
437 friend OCTAVE_API std::ostream& operator << (std::ostream& os, | 437 friend OCTAVE_API std::ostream& operator << (std::ostream& os, |
438 const SparseComplexMatrix& a); | 438 const SparseComplexMatrix& a); |
439 friend OCTAVE_API std::istream& operator >> (std::istream& is, | 439 friend OCTAVE_API std::istream& operator >> (std::istream& is, |
440 SparseComplexMatrix& a); | 440 SparseComplexMatrix& a); |
441 }; | 441 }; |
442 | 442 |
443 extern OCTAVE_API SparseComplexMatrix operator * (const SparseMatrix&, | 443 extern OCTAVE_API SparseComplexMatrix operator * (const SparseMatrix&, |
444 const SparseComplexMatrix&); | 444 const SparseComplexMatrix&); |
445 extern OCTAVE_API SparseComplexMatrix operator * (const SparseComplexMatrix&, | 445 extern OCTAVE_API SparseComplexMatrix operator * (const SparseComplexMatrix&, |
446 const SparseMatrix&); | 446 const SparseMatrix&); |
447 extern OCTAVE_API SparseComplexMatrix operator * (const SparseComplexMatrix&, | 447 extern OCTAVE_API SparseComplexMatrix operator * (const SparseComplexMatrix&, |
448 const SparseComplexMatrix&); | 448 const SparseComplexMatrix&); |
449 | 449 |
450 extern OCTAVE_API ComplexMatrix operator * (const Matrix&, | 450 extern OCTAVE_API ComplexMatrix operator * (const Matrix&, |
451 const SparseComplexMatrix&); | 451 const SparseComplexMatrix&); |
452 extern OCTAVE_API ComplexMatrix operator * (const ComplexMatrix&, | 452 extern OCTAVE_API ComplexMatrix operator * (const ComplexMatrix&, |
453 const SparseMatrix&); | 453 const SparseMatrix&); |
454 extern OCTAVE_API ComplexMatrix operator * (const ComplexMatrix&, | 454 extern OCTAVE_API ComplexMatrix operator * (const ComplexMatrix&, |
455 const SparseComplexMatrix&); | 455 const SparseComplexMatrix&); |
456 extern OCTAVE_API ComplexMatrix mul_trans (const ComplexMatrix&, | 456 extern OCTAVE_API ComplexMatrix mul_trans (const ComplexMatrix&, |
457 const SparseComplexMatrix&); | 457 const SparseComplexMatrix&); |
458 extern OCTAVE_API ComplexMatrix mul_herm (const ComplexMatrix&, | 458 extern OCTAVE_API ComplexMatrix mul_herm (const ComplexMatrix&, |
459 const SparseComplexMatrix&); | 459 const SparseComplexMatrix&); |
460 | 460 |
461 extern OCTAVE_API ComplexMatrix operator * (const SparseMatrix&, | 461 extern OCTAVE_API ComplexMatrix operator * (const SparseMatrix&, |
462 const ComplexMatrix&); | 462 const ComplexMatrix&); |
463 extern OCTAVE_API ComplexMatrix operator * (const SparseComplexMatrix&, | 463 extern OCTAVE_API ComplexMatrix operator * (const SparseComplexMatrix&, |
464 const Matrix&); | 464 const Matrix&); |
465 extern OCTAVE_API ComplexMatrix operator * (const SparseComplexMatrix&, | 465 extern OCTAVE_API ComplexMatrix operator * (const SparseComplexMatrix&, |
466 const ComplexMatrix&); | 466 const ComplexMatrix&); |
467 extern OCTAVE_API ComplexMatrix trans_mul (const SparseComplexMatrix&, | 467 extern OCTAVE_API ComplexMatrix trans_mul (const SparseComplexMatrix&, |
468 const ComplexMatrix&); | 468 const ComplexMatrix&); |
469 extern OCTAVE_API ComplexMatrix herm_mul (const SparseComplexMatrix&, | 469 extern OCTAVE_API ComplexMatrix herm_mul (const SparseComplexMatrix&, |
470 const ComplexMatrix&); | 470 const ComplexMatrix&); |
471 | 471 |
472 extern OCTAVE_API SparseComplexMatrix operator * (const DiagMatrix&, const SparseComplexMatrix&); | 472 extern OCTAVE_API SparseComplexMatrix operator * (const DiagMatrix&, const SparseComplexMatrix&); |
473 extern OCTAVE_API SparseComplexMatrix operator * (const SparseComplexMatrix&, const DiagMatrix&); | 473 extern OCTAVE_API SparseComplexMatrix operator * (const SparseComplexMatrix&, const DiagMatrix&); |
474 | 474 |
475 extern OCTAVE_API SparseComplexMatrix operator * (const ComplexDiagMatrix&, const SparseMatrix&); | 475 extern OCTAVE_API SparseComplexMatrix operator * (const ComplexDiagMatrix&, const SparseMatrix&); |
491 extern OCTAVE_API SparseComplexMatrix operator - (const SparseMatrix&, const ComplexDiagMatrix&); | 491 extern OCTAVE_API SparseComplexMatrix operator - (const SparseMatrix&, const ComplexDiagMatrix&); |
492 extern OCTAVE_API SparseComplexMatrix operator - (const SparseComplexMatrix&, const DiagMatrix&); | 492 extern OCTAVE_API SparseComplexMatrix operator - (const SparseComplexMatrix&, const DiagMatrix&); |
493 extern OCTAVE_API SparseComplexMatrix operator - (const SparseComplexMatrix&, const ComplexDiagMatrix&); | 493 extern OCTAVE_API SparseComplexMatrix operator - (const SparseComplexMatrix&, const ComplexDiagMatrix&); |
494 | 494 |
495 extern OCTAVE_API SparseComplexMatrix operator * (const PermMatrix&, | 495 extern OCTAVE_API SparseComplexMatrix operator * (const PermMatrix&, |
496 const SparseComplexMatrix&); | 496 const SparseComplexMatrix&); |
497 extern OCTAVE_API SparseComplexMatrix operator * (const SparseComplexMatrix&, | 497 extern OCTAVE_API SparseComplexMatrix operator * (const SparseComplexMatrix&, |
498 const PermMatrix&); | 498 const PermMatrix&); |
499 | 499 |
500 extern OCTAVE_API SparseComplexMatrix min (const Complex& c, | 500 extern OCTAVE_API SparseComplexMatrix min (const Complex& c, |
501 const SparseComplexMatrix& m); | 501 const SparseComplexMatrix& m); |
502 extern OCTAVE_API SparseComplexMatrix min (const SparseComplexMatrix& m, | 502 extern OCTAVE_API SparseComplexMatrix min (const SparseComplexMatrix& m, |
503 const Complex& c); | 503 const Complex& c); |
504 extern OCTAVE_API SparseComplexMatrix min (const SparseComplexMatrix& a, | 504 extern OCTAVE_API SparseComplexMatrix min (const SparseComplexMatrix& a, |
505 const SparseComplexMatrix& b); | 505 const SparseComplexMatrix& b); |
506 | 506 |
507 extern OCTAVE_API SparseComplexMatrix max (const Complex& c, | 507 extern OCTAVE_API SparseComplexMatrix max (const Complex& c, |
508 const SparseComplexMatrix& m); | 508 const SparseComplexMatrix& m); |
509 extern OCTAVE_API SparseComplexMatrix max (const SparseComplexMatrix& m, | 509 extern OCTAVE_API SparseComplexMatrix max (const SparseComplexMatrix& m, |
510 const Complex& c); | 510 const Complex& c); |
511 extern OCTAVE_API SparseComplexMatrix max (const SparseComplexMatrix& a, | 511 extern OCTAVE_API SparseComplexMatrix max (const SparseComplexMatrix& a, |
512 const SparseComplexMatrix& b); | 512 const SparseComplexMatrix& b); |
513 | 513 |
514 SPARSE_SMS_CMP_OP_DECLS (SparseComplexMatrix, Complex, OCTAVE_API) | 514 SPARSE_SMS_CMP_OP_DECLS (SparseComplexMatrix, Complex, OCTAVE_API) |
515 SPARSE_SMS_BOOL_OP_DECLS (SparseComplexMatrix, Complex, OCTAVE_API) | 515 SPARSE_SMS_BOOL_OP_DECLS (SparseComplexMatrix, Complex, OCTAVE_API) |
516 | 516 |
517 SPARSE_SSM_CMP_OP_DECLS (Complex, SparseComplexMatrix, OCTAVE_API) | 517 SPARSE_SSM_CMP_OP_DECLS (Complex, SparseComplexMatrix, OCTAVE_API) |