00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #if !defined (octave_CSparse_h)
00025 #define octave_CSparse_h 1
00026
00027 #include "dMatrix.h"
00028 #include "dNDArray.h"
00029 #include "CNDArray.h"
00030 #include "dColVector.h"
00031 #include "CColVector.h"
00032 #include "oct-cmplx.h"
00033
00034 #include "DET.h"
00035 #include "MSparse.h"
00036 #include "MSparse-defs.h"
00037 #include "Sparse-op-defs.h"
00038 #include "MatrixType.h"
00039
00040 class PermMatrix;
00041 class DiagMatrix;
00042 class ComplexDiagMatrix;
00043 class SparseMatrix;
00044 class SparseBoolMatrix;
00045
00046 class
00047 OCTAVE_API
00048 SparseComplexMatrix : public MSparse<Complex>
00049 {
00050 public:
00051
00052 typedef void (*solve_singularity_handler) (double rcond);
00053
00054 SparseComplexMatrix (void) : MSparse<Complex> () { }
00055
00056 SparseComplexMatrix (octave_idx_type r, octave_idx_type c) : MSparse<Complex> (r, c) { }
00057
00058 SparseComplexMatrix (const dim_vector& dv, octave_idx_type nz = 0) :
00059 MSparse<Complex> (dv, nz) { }
00060
00061 explicit SparseComplexMatrix (octave_idx_type r, octave_idx_type c, Complex val)
00062 : MSparse<Complex> (r, c, val) { }
00063
00064 SparseComplexMatrix (octave_idx_type r, octave_idx_type c, double val)
00065 : MSparse<Complex> (r, c, Complex (val)) { }
00066
00067 SparseComplexMatrix (const SparseComplexMatrix& a)
00068 : MSparse<Complex> (a) { }
00069
00070 SparseComplexMatrix (const SparseComplexMatrix& a, const dim_vector& dv)
00071 : MSparse<Complex> (a, dv) { }
00072
00073 SparseComplexMatrix (const MSparse<Complex>& a) : MSparse<Complex> (a) { }
00074
00075 explicit SparseComplexMatrix (const ComplexMatrix& a)
00076 : MSparse<Complex> (a) { }
00077
00078 explicit SparseComplexMatrix (const ComplexNDArray& a)
00079 : MSparse<Complex> (a) { }
00080
00081 explicit SparseComplexMatrix (const Array<Complex> a, const Array<octave_idx_type>& r,
00082 const Array<octave_idx_type>& c, octave_idx_type nr = -1,
00083 octave_idx_type nc = -1, bool sum_terms = true)
00084 : MSparse<Complex> (a, r, c, nr, nc, sum_terms) { }
00085
00086 explicit SparseComplexMatrix (const Array<Complex> a,
00087 const Array<double>& r,
00088 const Array<double>& c, octave_idx_type nr = -1,
00089 octave_idx_type nc = -1, bool sum_terms = true)
00090 : MSparse<Complex> (a, r, c, nr, nc, sum_terms) { }
00091
00092 explicit SparseComplexMatrix (const SparseMatrix& a);
00093
00094 explicit SparseComplexMatrix (const SparseBoolMatrix& a);
00095
00096 explicit SparseComplexMatrix (const ComplexDiagMatrix& a);
00097
00098 SparseComplexMatrix (octave_idx_type r, octave_idx_type c, octave_idx_type num_nz)
00099 : MSparse<Complex> (r, c, num_nz) { }
00100
00101 SparseComplexMatrix& operator = (const SparseComplexMatrix& a)
00102 {
00103 MSparse<Complex>::operator = (a);
00104 return *this;
00105 }
00106
00107 bool operator == (const SparseComplexMatrix& a) const;
00108 bool operator != (const SparseComplexMatrix& a) const;
00109
00110 bool is_hermitian (void) const;
00111
00112 SparseComplexMatrix max (int dim = 0) const;
00113 SparseComplexMatrix max (Array2<octave_idx_type>& index, int dim = 0) const;
00114 SparseComplexMatrix min (int dim = 0) const;
00115 SparseComplexMatrix min (Array2<octave_idx_type>& index, int dim = 0) const;
00116
00117 SparseComplexMatrix& insert (const SparseComplexMatrix& a, octave_idx_type r, octave_idx_type c);
00118 SparseComplexMatrix& insert (const SparseMatrix& a, octave_idx_type r, octave_idx_type c);
00119 SparseComplexMatrix& insert (const SparseComplexMatrix& a, const Array<octave_idx_type>& indx);
00120 SparseComplexMatrix& insert (const SparseMatrix& a, const Array<octave_idx_type>& indx);
00121
00122 SparseComplexMatrix concat (const SparseComplexMatrix& rb,
00123 const Array<octave_idx_type>& ra_idx);
00124 SparseComplexMatrix concat (const SparseMatrix& rb,
00125 const Array<octave_idx_type>& ra_idx);
00126
00127 ComplexMatrix matrix_value (void) const;
00128
00129 SparseComplexMatrix hermitian (void) const;
00130 SparseComplexMatrix transpose (void) const
00131 { return MSparse<Complex>::transpose (); }
00132
00133 friend SparseComplexMatrix conj (const SparseComplexMatrix& a);
00134
00135
00136
00137 ComplexRowVector row (octave_idx_type i) const;
00138
00139 ComplexColumnVector column (octave_idx_type i) const;
00140
00141 private:
00142 SparseComplexMatrix dinverse (MatrixType &mattyp, octave_idx_type& info,
00143 double& rcond, const bool force = false,
00144 const bool calccond = true) const;
00145
00146 SparseComplexMatrix tinverse (MatrixType &mattyp, octave_idx_type& info,
00147 double& rcond, const bool force = false,
00148 const bool calccond = true) const;
00149
00150 public:
00151 SparseComplexMatrix inverse (void) const;
00152 SparseComplexMatrix inverse (MatrixType& mattype) const;
00153 SparseComplexMatrix inverse (MatrixType& mattype,
00154 octave_idx_type& info) const;
00155 SparseComplexMatrix inverse (MatrixType& mattype, octave_idx_type& info,
00156 double& rcond, int force = 0,
00157 int calc_cond = 1) const;
00158
00159 ComplexDET determinant (void) const;
00160 ComplexDET determinant (octave_idx_type& info) const;
00161 ComplexDET determinant (octave_idx_type& info, double& rcond,
00162 int calc_cond = 1) const;
00163
00164 private:
00165
00166 ComplexMatrix dsolve (MatrixType &typ, const Matrix& b, octave_idx_type& info,
00167 double& rcond, solve_singularity_handler sing_handler,
00168 bool calc_cond = false) const;
00169
00170 ComplexMatrix dsolve (MatrixType &typ, const ComplexMatrix& b,
00171 octave_idx_type& info, double& rcond,
00172 solve_singularity_handler sing_handler,
00173 bool calc_cond = false) const;
00174
00175 SparseComplexMatrix dsolve (MatrixType &typ, const SparseMatrix& b,
00176 octave_idx_type& info, double& rcond,
00177 solve_singularity_handler sing_handler,
00178 bool calc_cond = false) const;
00179
00180 SparseComplexMatrix dsolve (MatrixType &typ, const SparseComplexMatrix& b,
00181 octave_idx_type& info, double& rcond,
00182 solve_singularity_handler sing_handler,
00183 bool calc_cond = false) const;
00184
00185
00186 ComplexMatrix utsolve (MatrixType &typ, const Matrix& b, octave_idx_type& info,
00187 double& rcond, solve_singularity_handler sing_handler,
00188 bool calc_cond = false) const;
00189
00190 ComplexMatrix utsolve (MatrixType &typ, const ComplexMatrix& b,
00191 octave_idx_type& info, double& rcond,
00192 solve_singularity_handler sing_handler,
00193 bool calc_cond = false) const;
00194
00195 SparseComplexMatrix utsolve (MatrixType &typ, const SparseMatrix& b,
00196 octave_idx_type& info, double& rcond,
00197 solve_singularity_handler sing_handler,
00198 bool calc_cond = false) const;
00199
00200 SparseComplexMatrix utsolve (MatrixType &typ, const SparseComplexMatrix& b,
00201 octave_idx_type& info, double& rcond,
00202 solve_singularity_handler sing_handler,
00203 bool calc_cond = false) const;
00204
00205
00206 ComplexMatrix ltsolve (MatrixType &typ, const Matrix& b,
00207 octave_idx_type& info, double& rcond,
00208 solve_singularity_handler sing_handler,
00209 bool calc_cond = false) const;
00210
00211 ComplexMatrix ltsolve (MatrixType &typ, const ComplexMatrix& b,
00212 octave_idx_type& info, double& rcond,
00213 solve_singularity_handler sing_handler,
00214 bool calc_cond = false) const;
00215
00216 SparseComplexMatrix ltsolve (MatrixType &typ, const SparseMatrix& b,
00217 octave_idx_type& info, double& rcond,
00218 solve_singularity_handler sing_handler,
00219 bool calc_cond = false) const;
00220
00221 SparseComplexMatrix ltsolve (MatrixType &typ, const SparseComplexMatrix& b,
00222 octave_idx_type& info, double& rcond,
00223 solve_singularity_handler sing_handler,
00224 bool calc_cond = false) const;
00225
00226
00227 ComplexMatrix trisolve (MatrixType &typ, const Matrix& b,
00228 octave_idx_type& info, double& rcond,
00229 solve_singularity_handler sing_handler,
00230 bool calc_cond = false) const;
00231
00232 ComplexMatrix trisolve (MatrixType &typ, const ComplexMatrix& b,
00233 octave_idx_type& info, double& rcond,
00234 solve_singularity_handler sing_handler,
00235 bool calc_cond = false) const;
00236
00237 SparseComplexMatrix trisolve (MatrixType &typ, const SparseMatrix& b,
00238 octave_idx_type& info, double& rcond,
00239 solve_singularity_handler sing_handler,
00240 bool calc_cond = false) const;
00241
00242 SparseComplexMatrix trisolve (MatrixType &typ, const SparseComplexMatrix& b,
00243 octave_idx_type& info, double& rcond,
00244 solve_singularity_handler sing_handler,
00245 bool calc_cond = false) const;
00246
00247
00248 ComplexMatrix bsolve (MatrixType &typ, const Matrix& b, octave_idx_type& info,
00249 double& rcond, solve_singularity_handler sing_handler,
00250 bool calc_cond = false) const;
00251
00252 ComplexMatrix bsolve (MatrixType &typ, const ComplexMatrix& b,
00253 octave_idx_type& info, double& rcond,
00254 solve_singularity_handler sing_handler,
00255 bool calc_cond = false) const;
00256
00257 SparseComplexMatrix bsolve (MatrixType &typ, const SparseMatrix& b,
00258 octave_idx_type& info, double& rcond,
00259 solve_singularity_handler sing_handler,
00260 bool calc_cond = false) const;
00261
00262 SparseComplexMatrix bsolve (MatrixType &typ, const SparseComplexMatrix& b,
00263 octave_idx_type& info, double& rcond,
00264 solve_singularity_handler sing_handler,
00265 bool calc_cond = false) const;
00266
00267
00268 void * factorize (octave_idx_type& err, double &rcond, Matrix &Control,
00269 Matrix &Info, solve_singularity_handler sing_handler,
00270 bool calc_cond) const;
00271
00272 ComplexMatrix fsolve (MatrixType &typ, const Matrix& b, octave_idx_type& info,
00273 double& rcond, solve_singularity_handler sing_handler,
00274 bool calc_cond = false) const;
00275
00276 ComplexMatrix fsolve (MatrixType &typ, const ComplexMatrix& b,
00277 octave_idx_type& info, double& rcond,
00278 solve_singularity_handler sing_handler,
00279 bool calc_cond = false) const;
00280
00281 SparseComplexMatrix fsolve (MatrixType &typ, const SparseMatrix& b,
00282 octave_idx_type& info, double& rcond,
00283 solve_singularity_handler sing_handler,
00284 bool calc_cond = false) const;
00285
00286 SparseComplexMatrix fsolve (MatrixType &typ, const SparseComplexMatrix& b,
00287 octave_idx_type& info, double& rcond,
00288 solve_singularity_handler sing_handler,
00289 bool calc_cond = false) const;
00290
00291 public:
00292
00293 ComplexMatrix solve (MatrixType &typ, const Matrix& b) const;
00294 ComplexMatrix solve (MatrixType &typ, const Matrix& b,
00295 octave_idx_type& info) const;
00296 ComplexMatrix solve (MatrixType &typ, const Matrix& b, octave_idx_type& info,
00297 double& rcond) const;
00298 ComplexMatrix solve (MatrixType &typ, const Matrix& b, octave_idx_type& info,
00299 double& rcond, solve_singularity_handler sing_handler,
00300 bool singular_fallback = true) const;
00301
00302 ComplexMatrix solve (MatrixType &typ, const ComplexMatrix& b) const;
00303 ComplexMatrix solve (MatrixType &typ, const ComplexMatrix& b,
00304 octave_idx_type& info) const;
00305 ComplexMatrix solve (MatrixType &typ, const ComplexMatrix& b,
00306 octave_idx_type& info, double& rcond) const;
00307 ComplexMatrix solve (MatrixType &typ, const ComplexMatrix& b,
00308 octave_idx_type& info, double& rcond,
00309 solve_singularity_handler sing_handler,
00310 bool singular_fallback = true) const;
00311
00312 SparseComplexMatrix solve (MatrixType &typ, const SparseMatrix& b) const;
00313 SparseComplexMatrix solve (MatrixType &typ, const SparseMatrix& b,
00314 octave_idx_type& info) const;
00315 SparseComplexMatrix solve (MatrixType &typ, const SparseMatrix& b,
00316 octave_idx_type& info, double& rcond) const;
00317 SparseComplexMatrix solve (MatrixType &typ, const SparseMatrix& b,
00318 octave_idx_type& info, double& rcond,
00319 solve_singularity_handler sing_handler,
00320 bool singular_fallback = true) const;
00321
00322 SparseComplexMatrix solve (MatrixType &typ,
00323 const SparseComplexMatrix& b) const;
00324 SparseComplexMatrix solve (MatrixType &typ, const SparseComplexMatrix& b,
00325 octave_idx_type& info) const;
00326 SparseComplexMatrix solve (MatrixType &typ, const SparseComplexMatrix& b,
00327 octave_idx_type& info, double& rcond) const;
00328 SparseComplexMatrix solve (MatrixType &typ, const SparseComplexMatrix& b,
00329 octave_idx_type& info, double& rcond,
00330 solve_singularity_handler sing_handler,
00331 bool singular_fallback = true) const;
00332
00333 ComplexColumnVector solve (MatrixType &typ, const ColumnVector& b) const;
00334 ComplexColumnVector solve (MatrixType &typ, const ColumnVector& b,
00335 octave_idx_type& info) const;
00336 ComplexColumnVector solve (MatrixType &typ, const ColumnVector& b,
00337 octave_idx_type& info, double& rcond) const;
00338 ComplexColumnVector solve (MatrixType &typ, const ColumnVector& b,
00339 octave_idx_type& info, double& rcond,
00340 solve_singularity_handler sing_handler) const;
00341
00342 ComplexColumnVector solve (MatrixType &typ,
00343 const ComplexColumnVector& b) const;
00344 ComplexColumnVector solve (MatrixType &typ, const ComplexColumnVector& b,
00345 octave_idx_type& info) const;
00346 ComplexColumnVector solve (MatrixType &typ, const ComplexColumnVector& b,
00347 octave_idx_type& info, double& rcond) const;
00348 ComplexColumnVector solve (MatrixType &typ, const ComplexColumnVector& b,
00349 octave_idx_type& info, double& rcond,
00350 solve_singularity_handler sing_handler) const;
00351
00352
00353 ComplexMatrix solve (const Matrix& b) const;
00354 ComplexMatrix solve (const Matrix& b, octave_idx_type& info) const;
00355 ComplexMatrix solve (const Matrix& b, octave_idx_type& info,
00356 double& rcond) const;
00357 ComplexMatrix solve (const Matrix& b, octave_idx_type& info, double& rcond,
00358 solve_singularity_handler sing_handler) const;
00359
00360 ComplexMatrix solve (const ComplexMatrix& b) const;
00361 ComplexMatrix solve (const ComplexMatrix& b, octave_idx_type& info) const;
00362 ComplexMatrix solve (const ComplexMatrix& b, octave_idx_type& info,
00363 double& rcond) const;
00364 ComplexMatrix solve (const ComplexMatrix& b, octave_idx_type& info,
00365 double& rcond, solve_singularity_handler sing_handler) const;
00366
00367 SparseComplexMatrix solve (const SparseMatrix& b) const;
00368 SparseComplexMatrix solve (const SparseMatrix& b, octave_idx_type& info) const;
00369 SparseComplexMatrix solve (const SparseMatrix& b, octave_idx_type& info,
00370 double& rcond) const;
00371 SparseComplexMatrix solve (const SparseMatrix& b, octave_idx_type& info,
00372 double& rcond,
00373 solve_singularity_handler sing_handler) const;
00374
00375 SparseComplexMatrix solve (const SparseComplexMatrix& b) const;
00376 SparseComplexMatrix solve (const SparseComplexMatrix& b,
00377 octave_idx_type& info) const;
00378 SparseComplexMatrix solve (const SparseComplexMatrix& b,
00379 octave_idx_type& info, double& rcond) const;
00380 SparseComplexMatrix solve (const SparseComplexMatrix& b,
00381 octave_idx_type& info, double& rcond,
00382 solve_singularity_handler sing_handler) const;
00383
00384 ComplexColumnVector solve (const ColumnVector& b) const;
00385 ComplexColumnVector solve (const ColumnVector& b, octave_idx_type& info) const;
00386 ComplexColumnVector solve (const ColumnVector& b, octave_idx_type& info,
00387 double& rcond) const;
00388 ComplexColumnVector solve (const ColumnVector& b, octave_idx_type& info,
00389 double& rcond,
00390 solve_singularity_handler sing_handler) const;
00391
00392 ComplexColumnVector solve (const ComplexColumnVector& b) const;
00393 ComplexColumnVector solve (const ComplexColumnVector& b,
00394 octave_idx_type& info) const;
00395 ComplexColumnVector solve (const ComplexColumnVector& b, octave_idx_type& info,
00396 double& rcond) const;
00397 ComplexColumnVector solve (const ComplexColumnVector& b, octave_idx_type& info,
00398 double& rcond,
00399 solve_singularity_handler sing_handler) const;
00400
00401 SparseComplexMatrix squeeze (void) const;
00402
00403 SparseComplexMatrix index (idx_vector& i, int resize_ok) const;
00404
00405 SparseComplexMatrix index (idx_vector& i, idx_vector& j, int resize_ok) const;
00406
00407 SparseComplexMatrix index (Array<idx_vector>& ra_idx, int resize_ok) const;
00408
00409 SparseComplexMatrix reshape (const dim_vector& new_dims) const;
00410
00411 SparseComplexMatrix permute (const Array<octave_idx_type>& vec,
00412 bool inv = false) const;
00413
00414 SparseComplexMatrix ipermute (const Array<octave_idx_type>& vec) const;
00415
00416 bool any_element_is_nan (void) const;
00417 bool any_element_is_inf_or_nan (void) const;
00418 bool all_elements_are_real (void) const;
00419 bool all_integers (double& max_val, double& min_val) const;
00420 bool too_large_for_float (void) const;
00421
00422 SparseBoolMatrix operator ! (void) const;
00423
00424 SparseBoolMatrix all (int dim = -1) const;
00425 SparseBoolMatrix any (int dim = -1) const;
00426
00427 SparseComplexMatrix cumprod (int dim = -1) const;
00428 SparseComplexMatrix cumsum (int dim = -1) const;
00429 SparseComplexMatrix prod (int dim = -1) const;
00430 SparseComplexMatrix sum (int dim = -1) const;
00431 SparseComplexMatrix sumsq (int dim = -1) const;
00432 SparseMatrix abs (void) const;
00433
00434 SparseComplexMatrix diag (octave_idx_type k = 0) const;
00435
00436
00437 friend OCTAVE_API std::ostream& operator << (std::ostream& os,
00438 const SparseComplexMatrix& a);
00439 friend OCTAVE_API std::istream& operator >> (std::istream& is,
00440 SparseComplexMatrix& a);
00441
00442 typedef double (*dmapper) (const Complex&);
00443 typedef Complex (*cmapper) (const Complex&);
00444 typedef bool (*bmapper) (const Complex&);
00445 SparseMatrix map (dmapper fcn) const;
00446 SparseComplexMatrix map (cmapper fcn) const;
00447 SparseBoolMatrix map (bmapper fcn) const;
00448 };
00449
00450 extern OCTAVE_API SparseComplexMatrix operator * (const SparseMatrix&,
00451 const SparseComplexMatrix&);
00452 extern OCTAVE_API SparseComplexMatrix operator * (const SparseComplexMatrix&,
00453 const SparseMatrix&);
00454 extern OCTAVE_API SparseComplexMatrix operator * (const SparseComplexMatrix&,
00455 const SparseComplexMatrix&);
00456
00457 extern OCTAVE_API ComplexMatrix operator * (const Matrix&,
00458 const SparseComplexMatrix&);
00459 extern OCTAVE_API ComplexMatrix operator * (const ComplexMatrix&,
00460 const SparseMatrix&);
00461 extern OCTAVE_API ComplexMatrix operator * (const ComplexMatrix&,
00462 const SparseComplexMatrix&);
00463 extern OCTAVE_API ComplexMatrix mul_trans (const ComplexMatrix&,
00464 const SparseComplexMatrix&);
00465 extern OCTAVE_API ComplexMatrix mul_herm (const ComplexMatrix&,
00466 const SparseComplexMatrix&);
00467
00468 extern OCTAVE_API ComplexMatrix operator * (const SparseMatrix&,
00469 const ComplexMatrix&);
00470 extern OCTAVE_API ComplexMatrix operator * (const SparseComplexMatrix&,
00471 const Matrix&);
00472 extern OCTAVE_API ComplexMatrix operator * (const SparseComplexMatrix&,
00473 const ComplexMatrix&);
00474 extern OCTAVE_API ComplexMatrix trans_mul (const SparseComplexMatrix&,
00475 const ComplexMatrix&);
00476 extern OCTAVE_API ComplexMatrix herm_mul (const SparseComplexMatrix&,
00477 const ComplexMatrix&);
00478
00479 extern OCTAVE_API SparseComplexMatrix operator * (const DiagMatrix&, const SparseComplexMatrix&);
00480 extern OCTAVE_API SparseComplexMatrix operator * (const SparseComplexMatrix&, const DiagMatrix&);
00481
00482 extern OCTAVE_API SparseComplexMatrix operator * (const ComplexDiagMatrix&, const SparseMatrix&);
00483 extern OCTAVE_API SparseComplexMatrix operator * (const SparseMatrix&, const ComplexDiagMatrix&);
00484
00485 extern OCTAVE_API SparseComplexMatrix operator * (const ComplexDiagMatrix&, const SparseComplexMatrix&);
00486 extern OCTAVE_API SparseComplexMatrix operator * (const SparseComplexMatrix&, const ComplexDiagMatrix&);
00487
00488 extern OCTAVE_API SparseComplexMatrix operator + (const ComplexDiagMatrix&, const SparseMatrix&);
00489 extern OCTAVE_API SparseComplexMatrix operator + (const DiagMatrix&, const SparseComplexMatrix&);
00490 extern OCTAVE_API SparseComplexMatrix operator + (const ComplexDiagMatrix&, const SparseComplexMatrix&);
00491 extern OCTAVE_API SparseComplexMatrix operator + (const SparseMatrix&, const ComplexDiagMatrix&);
00492 extern OCTAVE_API SparseComplexMatrix operator + (const SparseComplexMatrix&, const DiagMatrix&);
00493 extern OCTAVE_API SparseComplexMatrix operator + (const SparseComplexMatrix&, const ComplexDiagMatrix&);
00494
00495 extern OCTAVE_API SparseComplexMatrix operator - (const ComplexDiagMatrix&, const SparseMatrix&);
00496 extern OCTAVE_API SparseComplexMatrix operator - (const DiagMatrix&, const SparseComplexMatrix&);
00497 extern OCTAVE_API SparseComplexMatrix operator - (const ComplexDiagMatrix&, const SparseComplexMatrix&);
00498 extern OCTAVE_API SparseComplexMatrix operator - (const SparseMatrix&, const ComplexDiagMatrix&);
00499 extern OCTAVE_API SparseComplexMatrix operator - (const SparseComplexMatrix&, const DiagMatrix&);
00500 extern OCTAVE_API SparseComplexMatrix operator - (const SparseComplexMatrix&, const ComplexDiagMatrix&);
00501
00502 extern OCTAVE_API SparseComplexMatrix operator * (const PermMatrix&,
00503 const SparseComplexMatrix&);
00504 extern OCTAVE_API SparseComplexMatrix operator * (const SparseComplexMatrix&,
00505 const PermMatrix&);
00506
00507 extern OCTAVE_API SparseComplexMatrix min (const Complex& c,
00508 const SparseComplexMatrix& m);
00509 extern OCTAVE_API SparseComplexMatrix min (const SparseComplexMatrix& m,
00510 const Complex& c);
00511 extern OCTAVE_API SparseComplexMatrix min (const SparseComplexMatrix& a,
00512 const SparseComplexMatrix& b);
00513
00514 extern OCTAVE_API SparseComplexMatrix max (const Complex& c,
00515 const SparseComplexMatrix& m);
00516 extern OCTAVE_API SparseComplexMatrix max (const SparseComplexMatrix& m,
00517 const Complex& c);
00518 extern OCTAVE_API SparseComplexMatrix max (const SparseComplexMatrix& a,
00519 const SparseComplexMatrix& b);
00520
00521 SPARSE_SMS_CMP_OP_DECLS (SparseComplexMatrix, Complex, OCTAVE_API)
00522 SPARSE_SMS_BOOL_OP_DECLS (SparseComplexMatrix, Complex, OCTAVE_API)
00523
00524 SPARSE_SSM_CMP_OP_DECLS (Complex, SparseComplexMatrix, OCTAVE_API)
00525 SPARSE_SSM_BOOL_OP_DECLS (Complex, SparseComplexMatrix, OCTAVE_API)
00526
00527 SPARSE_SMSM_CMP_OP_DECLS (SparseComplexMatrix, SparseComplexMatrix, OCTAVE_API)
00528 SPARSE_SMSM_BOOL_OP_DECLS (SparseComplexMatrix, SparseComplexMatrix, OCTAVE_API)
00529
00530 SPARSE_FORWARD_DEFS (MSparse, SparseComplexMatrix, ComplexMatrix, Complex)
00531
00532 #ifdef IDX_TYPE_LONG
00533 #define UMFPACK_ZNAME(name) umfpack_zl_ ## name
00534 #else
00535 #define UMFPACK_ZNAME(name) umfpack_zi_ ## name
00536 #endif
00537
00538 #endif
00539
00540
00541
00542
00543
00544