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)