annotate liboctave/CSparse.h @ 8968:91d53dc37f79

Add perm * sparse, perm \ sparse, sparse * perm, and sparse / perm operations. Nothing terribly fancy in any of this. There probably is some mechanism for using the permutation vectors and some assign or index method in the sparse classes, but I've never understood all the intricacies. I'm opting for a simple implementation at the cost of possibly duplicating some functionality.
author Jason Riedy <jason@acm.org>
date Tue, 10 Mar 2009 21:54:44 -0400
parents 1bba53c0a38d
children a5035bc7fbfb
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
1 /*
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
2
8920
eb63fbe60fab update copyright notices
John W. Eaton <jwe@octave.org>
parents: 8366
diff changeset
3 Copyright (C) 2004, 2005, 2006, 2007, 2008 David Bateman
7016
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6823
diff changeset
4 Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Andy Adler
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6823
diff changeset
5
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6823
diff changeset
6 This file is part of Octave.
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
7
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
8 Octave is free software; you can redistribute it and/or modify it
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
9 under the terms of the GNU General Public License as published by the
7016
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6823
diff changeset
10 Free Software Foundation; either version 3 of the License, or (at your
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6823
diff changeset
11 option) any later version.
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
12
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
13 Octave is distributed in the hope that it will be useful, but WITHOUT
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
15 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
16 for more details.
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
17
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
18 You should have received a copy of the GNU General Public License
7016
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6823
diff changeset
19 along with Octave; see the file COPYING. If not, see
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6823
diff changeset
20 <http://www.gnu.org/licenses/>.
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
21
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
22 */
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
23
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
24 #if !defined (octave_CSparse_h)
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
25 #define octave_CSparse_h 1
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
26
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
27 #include "dMatrix.h"
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
28 #include "dNDArray.h"
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
29 #include "CNDArray.h"
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
30 #include "dColVector.h"
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
31 #include "CColVector.h"
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
32 #include "oct-cmplx.h"
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
33
8335
64cf956a109c templatize & fix DET
Jaroslav Hajek <highegg@gmail.com>
parents: 8303
diff changeset
34 #include "DET.h"
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
35 #include "MSparse.h"
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
36 #include "MSparse-defs.h"
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
37 #include "Sparse-op-defs.h"
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
38 #include "MatrixType.h"
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
39
8968
91d53dc37f79 Add perm * sparse, perm \ sparse, sparse * perm, and sparse / perm operations.
Jason Riedy <jason@acm.org>
parents: 8966
diff changeset
40 class PermMatrix;
8964
f4f4d65faaa0 Implement sparse * diagonal and diagonal * sparse operations, double-prec only.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
41 class DiagMatrix;
f4f4d65faaa0 Implement sparse * diagonal and diagonal * sparse operations, double-prec only.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
42 class ComplexDiagMatrix;
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
43 class SparseMatrix;
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
44 class SparseBoolMatrix;
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
45
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
46 class
6108
143b556ce725 [project @ 2006-10-27 01:45:54 by jwe]
jwe
parents: 5785
diff changeset
47 OCTAVE_API
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
48 SparseComplexMatrix : public MSparse<Complex>
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
49 {
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
50 public:
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
51
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
52 typedef void (*solve_singularity_handler) (double rcond);
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
53
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
54 SparseComplexMatrix (void) : MSparse<Complex> () { }
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
55
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5164
diff changeset
56 SparseComplexMatrix (octave_idx_type r, octave_idx_type c) : MSparse<Complex> (r, c) { }
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
57
6823
9fddcc586065 [project @ 2007-08-24 08:27:27 by dbateman]
dbateman
parents: 6708
diff changeset
58 SparseComplexMatrix (const dim_vector& dv, octave_idx_type nz = 0) :
9fddcc586065 [project @ 2007-08-24 08:27:27 by dbateman]
dbateman
parents: 6708
diff changeset
59 MSparse<Complex> (dv, nz) { }
9fddcc586065 [project @ 2007-08-24 08:27:27 by dbateman]
dbateman
parents: 6708
diff changeset
60
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5164
diff changeset
61 explicit SparseComplexMatrix (octave_idx_type r, octave_idx_type c, Complex val)
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
62 : MSparse<Complex> (r, c, val) { }
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
63
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5164
diff changeset
64 SparseComplexMatrix (octave_idx_type r, octave_idx_type c, double val)
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
65 : MSparse<Complex> (r, c, Complex (val)) { }
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
66
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
67 SparseComplexMatrix (const SparseComplexMatrix& a)
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
68 : MSparse<Complex> (a) { }
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
69
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
70 SparseComplexMatrix (const SparseComplexMatrix& a, const dim_vector& dv)
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
71 : MSparse<Complex> (a, dv) { }
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
72
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
73 SparseComplexMatrix (const MSparse<Complex>& a) : MSparse<Complex> (a) { }
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
74
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
75 explicit SparseComplexMatrix (const ComplexMatrix& a)
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
76 : MSparse<Complex> (a) { }
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
77
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
78 explicit SparseComplexMatrix (const ComplexNDArray& a)
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
79 : MSparse<Complex> (a) { }
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
80
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5164
diff changeset
81 explicit SparseComplexMatrix (const Array<Complex> a, const Array<octave_idx_type>& r,
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5164
diff changeset
82 const Array<octave_idx_type>& c, octave_idx_type nr = -1,
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5164
diff changeset
83 octave_idx_type nc = -1, bool sum_terms = true)
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
84 : MSparse<Complex> (a, r, c, nr, nc, sum_terms) { }
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
85
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
86 explicit SparseComplexMatrix (const Array<Complex> a,
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
87 const Array<double>& r,
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5164
diff changeset
88 const Array<double>& c, octave_idx_type nr = -1,
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5164
diff changeset
89 octave_idx_type nc = -1, bool sum_terms = true)
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
90 : MSparse<Complex> (a, r, c, nr, nc, sum_terms) { }
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
91
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
92 explicit SparseComplexMatrix (const SparseMatrix& a);
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
93
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
94 explicit SparseComplexMatrix (const SparseBoolMatrix& a);
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
95
8366
8b1a2555c4e2 implement diagonal matrix objects
Jaroslav Hajek <highegg@gmail.com>
parents: 8335
diff changeset
96 explicit SparseComplexMatrix (const ComplexDiagMatrix& a);
8b1a2555c4e2 implement diagonal matrix objects
Jaroslav Hajek <highegg@gmail.com>
parents: 8335
diff changeset
97
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5164
diff changeset
98 SparseComplexMatrix (octave_idx_type r, octave_idx_type c, octave_idx_type num_nz)
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
99 : MSparse<Complex> (r, c, num_nz) { }
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
100
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
101 SparseComplexMatrix& operator = (const SparseComplexMatrix& a)
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
102 {
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
103 MSparse<Complex>::operator = (a);
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
104 return *this;
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
105 }
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
106
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
107 bool operator == (const SparseComplexMatrix& a) const;
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
108 bool operator != (const SparseComplexMatrix& a) const;
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
109
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
110 bool is_hermitian (void) const;
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
111
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
112 SparseComplexMatrix max (int dim = 0) const;
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5164
diff changeset
113 SparseComplexMatrix max (Array2<octave_idx_type>& index, int dim = 0) const;
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
114 SparseComplexMatrix min (int dim = 0) const;
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5164
diff changeset
115 SparseComplexMatrix min (Array2<octave_idx_type>& index, int dim = 0) const;
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
116
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5164
diff changeset
117 SparseComplexMatrix& insert (const SparseComplexMatrix& a, octave_idx_type r, octave_idx_type c);
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5164
diff changeset
118 SparseComplexMatrix& insert (const SparseMatrix& a, octave_idx_type r, octave_idx_type c);
6823
9fddcc586065 [project @ 2007-08-24 08:27:27 by dbateman]
dbateman
parents: 6708
diff changeset
119 SparseComplexMatrix& insert (const SparseComplexMatrix& a, const Array<octave_idx_type>& indx);
9fddcc586065 [project @ 2007-08-24 08:27:27 by dbateman]
dbateman
parents: 6708
diff changeset
120 SparseComplexMatrix& insert (const SparseMatrix& a, const Array<octave_idx_type>& indx);
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
121
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
122 SparseComplexMatrix concat (const SparseComplexMatrix& rb,
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5164
diff changeset
123 const Array<octave_idx_type>& ra_idx);
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
124 SparseComplexMatrix concat (const SparseMatrix& rb,
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5164
diff changeset
125 const Array<octave_idx_type>& ra_idx);
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
126
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
127 ComplexMatrix matrix_value (void) const;
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
128
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
129 SparseComplexMatrix hermitian (void) const; // complex conjugate transpose
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
130 SparseComplexMatrix transpose (void) const
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
131 { return MSparse<Complex>::transpose (); }
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
132
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
133 friend SparseComplexMatrix conj (const SparseComplexMatrix& a);
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
134
8303
b11c31849b44 improve norm computation capabilities
Jaroslav Hajek <highegg@gmail.com>
parents: 7922
diff changeset
135 // extract row or column i.
b11c31849b44 improve norm computation capabilities
Jaroslav Hajek <highegg@gmail.com>
parents: 7922
diff changeset
136
b11c31849b44 improve norm computation capabilities
Jaroslav Hajek <highegg@gmail.com>
parents: 7922
diff changeset
137 ComplexRowVector row (octave_idx_type i) const;
b11c31849b44 improve norm computation capabilities
Jaroslav Hajek <highegg@gmail.com>
parents: 7922
diff changeset
138
b11c31849b44 improve norm computation capabilities
Jaroslav Hajek <highegg@gmail.com>
parents: 7922
diff changeset
139 ComplexColumnVector column (octave_idx_type i) const;
b11c31849b44 improve norm computation capabilities
Jaroslav Hajek <highegg@gmail.com>
parents: 7922
diff changeset
140
5506
b4cfbb0ec8c4 [project @ 2005-10-23 19:09:32 by dbateman]
dbateman
parents: 5429
diff changeset
141 private:
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
142 SparseComplexMatrix dinverse (MatrixType &mattyp, octave_idx_type& info,
5506
b4cfbb0ec8c4 [project @ 2005-10-23 19:09:32 by dbateman]
dbateman
parents: 5429
diff changeset
143 double& rcond, const bool force = false,
b4cfbb0ec8c4 [project @ 2005-10-23 19:09:32 by dbateman]
dbateman
parents: 5429
diff changeset
144 const bool calccond = true) const;
b4cfbb0ec8c4 [project @ 2005-10-23 19:09:32 by dbateman]
dbateman
parents: 5429
diff changeset
145
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
146 SparseComplexMatrix tinverse (MatrixType &mattyp, octave_idx_type& info,
5506
b4cfbb0ec8c4 [project @ 2005-10-23 19:09:32 by dbateman]
dbateman
parents: 5429
diff changeset
147 double& rcond, const bool force = false,
b4cfbb0ec8c4 [project @ 2005-10-23 19:09:32 by dbateman]
dbateman
parents: 5429
diff changeset
148 const bool calccond = true) const;
b4cfbb0ec8c4 [project @ 2005-10-23 19:09:32 by dbateman]
dbateman
parents: 5429
diff changeset
149
b4cfbb0ec8c4 [project @ 2005-10-23 19:09:32 by dbateman]
dbateman
parents: 5429
diff changeset
150 public:
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
151 SparseComplexMatrix inverse (void) const;
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
152 SparseComplexMatrix inverse (MatrixType& mattype) const;
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
153 SparseComplexMatrix inverse (MatrixType& mattype,
5506
b4cfbb0ec8c4 [project @ 2005-10-23 19:09:32 by dbateman]
dbateman
parents: 5429
diff changeset
154 octave_idx_type& info) const;
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
155 SparseComplexMatrix inverse (MatrixType& mattype, octave_idx_type& info,
5506
b4cfbb0ec8c4 [project @ 2005-10-23 19:09:32 by dbateman]
dbateman
parents: 5429
diff changeset
156 double& rcond, int force = 0,
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
157 int calc_cond = 1) const;
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
158
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
159 ComplexDET determinant (void) const;
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5164
diff changeset
160 ComplexDET determinant (octave_idx_type& info) const;
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5164
diff changeset
161 ComplexDET determinant (octave_idx_type& info, double& rcond,
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
162 int calc_cond = 1) const;
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
163
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
164 private:
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
165 // Diagonal matrix solvers
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
166 ComplexMatrix dsolve (MatrixType &typ, const Matrix& b, octave_idx_type& info,
5681
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
167 double& rcond, solve_singularity_handler sing_handler,
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
168 bool calc_cond = false) const;
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
169
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
170 ComplexMatrix dsolve (MatrixType &typ, const ComplexMatrix& b,
5681
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
171 octave_idx_type& info, double& rcond,
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
172 solve_singularity_handler sing_handler,
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
173 bool calc_cond = false) const;
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
174
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
175 SparseComplexMatrix dsolve (MatrixType &typ, const SparseMatrix& b,
5681
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
176 octave_idx_type& info, double& rcond,
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
177 solve_singularity_handler sing_handler,
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
178 bool calc_cond = false) const;
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
179
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
180 SparseComplexMatrix dsolve (MatrixType &typ, const SparseComplexMatrix& b,
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5164
diff changeset
181 octave_idx_type& info, double& rcond,
5681
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
182 solve_singularity_handler sing_handler,
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
183 bool calc_cond = false) const;
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
184
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
185 // Upper triangular matrix solvers
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
186 ComplexMatrix utsolve (MatrixType &typ, const Matrix& b, octave_idx_type& info,
5681
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
187 double& rcond, solve_singularity_handler sing_handler,
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
188 bool calc_cond = false) const;
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
189
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
190 ComplexMatrix utsolve (MatrixType &typ, const ComplexMatrix& b,
5681
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
191 octave_idx_type& info, double& rcond,
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
192 solve_singularity_handler sing_handler,
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
193 bool calc_cond = false) const;
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
194
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
195 SparseComplexMatrix utsolve (MatrixType &typ, const SparseMatrix& b,
5681
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
196 octave_idx_type& info, double& rcond,
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
197 solve_singularity_handler sing_handler,
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
198 bool calc_cond = false) const;
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
199
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
200 SparseComplexMatrix utsolve (MatrixType &typ, const SparseComplexMatrix& b,
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5164
diff changeset
201 octave_idx_type& info, double& rcond,
5681
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
202 solve_singularity_handler sing_handler,
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
203 bool calc_cond = false) const;
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
204
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
205 // Lower triangular matrix solvers
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
206 ComplexMatrix ltsolve (MatrixType &typ, const Matrix& b,
5681
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
207 octave_idx_type& info, double& rcond,
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
208 solve_singularity_handler sing_handler,
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
209 bool calc_cond = false) const;
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
210
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
211 ComplexMatrix ltsolve (MatrixType &typ, const ComplexMatrix& b,
5681
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
212 octave_idx_type& info, double& rcond,
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
213 solve_singularity_handler sing_handler,
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
214 bool calc_cond = false) const;
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
215
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
216 SparseComplexMatrix ltsolve (MatrixType &typ, const SparseMatrix& b,
5681
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
217 octave_idx_type& info, double& rcond,
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
218 solve_singularity_handler sing_handler,
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
219 bool calc_cond = false) const;
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
220
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
221 SparseComplexMatrix ltsolve (MatrixType &typ, const SparseComplexMatrix& b,
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5164
diff changeset
222 octave_idx_type& info, double& rcond,
5681
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
223 solve_singularity_handler sing_handler,
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
224 bool calc_cond = false) const;
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
225
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
226 // Tridiagonal matrix solvers
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
227 ComplexMatrix trisolve (MatrixType &typ, const Matrix& b,
5681
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
228 octave_idx_type& info, double& rcond,
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
229 solve_singularity_handler sing_handler,
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
230 bool calc_cond = false) const;
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
231
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
232 ComplexMatrix trisolve (MatrixType &typ, const ComplexMatrix& b,
5681
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
233 octave_idx_type& info, double& rcond,
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
234 solve_singularity_handler sing_handler,
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
235 bool calc_cond = false) const;
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
236
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
237 SparseComplexMatrix trisolve (MatrixType &typ, const SparseMatrix& b,
5681
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
238 octave_idx_type& info, double& rcond,
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
239 solve_singularity_handler sing_handler,
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
240 bool calc_cond = false) const;
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
241
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
242 SparseComplexMatrix trisolve (MatrixType &typ, const SparseComplexMatrix& b,
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5164
diff changeset
243 octave_idx_type& info, double& rcond,
5681
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
244 solve_singularity_handler sing_handler,
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
245 bool calc_cond = false) const;
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
246
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
247 // Banded matrix solvers (umfpack/cholesky)
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
248 ComplexMatrix bsolve (MatrixType &typ, const Matrix& b, octave_idx_type& info,
5681
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
249 double& rcond, solve_singularity_handler sing_handler,
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
250 bool calc_cond = false) const;
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
251
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
252 ComplexMatrix bsolve (MatrixType &typ, const ComplexMatrix& b,
5681
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
253 octave_idx_type& info, double& rcond,
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
254 solve_singularity_handler sing_handler,
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
255 bool calc_cond = false) const;
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
256
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
257 SparseComplexMatrix bsolve (MatrixType &typ, const SparseMatrix& b,
5681
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
258 octave_idx_type& info, double& rcond,
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
259 solve_singularity_handler sing_handler,
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
260 bool calc_cond = false) const;
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
261
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
262 SparseComplexMatrix bsolve (MatrixType &typ, const SparseComplexMatrix& b,
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5164
diff changeset
263 octave_idx_type& info, double& rcond,
5681
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
264 solve_singularity_handler sing_handler,
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
265 bool calc_cond = false) const;
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
266
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
267 // Full matrix solvers (umfpack/cholesky)
5681
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
268 void * factorize (octave_idx_type& err, double &rcond, Matrix &Control,
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
269 Matrix &Info, solve_singularity_handler sing_handler,
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
270 bool calc_cond) const;
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
271
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
272 ComplexMatrix fsolve (MatrixType &typ, const Matrix& b, octave_idx_type& info,
5681
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
273 double& rcond, solve_singularity_handler sing_handler,
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
274 bool calc_cond = false) const;
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
275
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
276 ComplexMatrix fsolve (MatrixType &typ, const ComplexMatrix& b,
5681
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
277 octave_idx_type& info, double& rcond,
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
278 solve_singularity_handler sing_handler,
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
279 bool calc_cond = false) const;
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
280
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
281 SparseComplexMatrix fsolve (MatrixType &typ, const SparseMatrix& b,
5681
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
282 octave_idx_type& info, double& rcond,
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
283 solve_singularity_handler sing_handler,
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
284 bool calc_cond = false) const;
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
285
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
286 SparseComplexMatrix fsolve (MatrixType &typ, const SparseComplexMatrix& b,
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5164
diff changeset
287 octave_idx_type& info, double& rcond,
5681
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
288 solve_singularity_handler sing_handler,
233d98d95659 [project @ 2006-03-16 17:48:55 by dbateman]
dbateman
parents: 5506
diff changeset
289 bool calc_cond = false) const;
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
290
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
291 public:
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
292 // Generic interface to solver with no probing of type
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
293 ComplexMatrix solve (MatrixType &typ, const Matrix& b) const;
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
294 ComplexMatrix solve (MatrixType &typ, const Matrix& b,
5697
2fe20065a545 [project @ 2006-03-21 16:01:46 by dbateman]
dbateman
parents: 5681
diff changeset
295 octave_idx_type& info) const;
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
296 ComplexMatrix solve (MatrixType &typ, const Matrix& b, octave_idx_type& info,
5697
2fe20065a545 [project @ 2006-03-21 16:01:46 by dbateman]
dbateman
parents: 5681
diff changeset
297 double& rcond) const;
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
298 ComplexMatrix solve (MatrixType &typ, const Matrix& b, octave_idx_type& info,
5697
2fe20065a545 [project @ 2006-03-21 16:01:46 by dbateman]
dbateman
parents: 5681
diff changeset
299 double& rcond, solve_singularity_handler sing_handler,
2fe20065a545 [project @ 2006-03-21 16:01:46 by dbateman]
dbateman
parents: 5681
diff changeset
300 bool singular_fallback = true) const;
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
301
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
302 ComplexMatrix solve (MatrixType &typ, const ComplexMatrix& b) const;
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
303 ComplexMatrix solve (MatrixType &typ, const ComplexMatrix& b,
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5164
diff changeset
304 octave_idx_type& info) const;
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
305 ComplexMatrix solve (MatrixType &typ, const ComplexMatrix& b,
5697
2fe20065a545 [project @ 2006-03-21 16:01:46 by dbateman]
dbateman
parents: 5681
diff changeset
306 octave_idx_type& info, double& rcond) const;
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
307 ComplexMatrix solve (MatrixType &typ, const ComplexMatrix& b,
5697
2fe20065a545 [project @ 2006-03-21 16:01:46 by dbateman]
dbateman
parents: 5681
diff changeset
308 octave_idx_type& info, double& rcond,
2fe20065a545 [project @ 2006-03-21 16:01:46 by dbateman]
dbateman
parents: 5681
diff changeset
309 solve_singularity_handler sing_handler,
2fe20065a545 [project @ 2006-03-21 16:01:46 by dbateman]
dbateman
parents: 5681
diff changeset
310 bool singular_fallback = true) const;
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
311
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
312 SparseComplexMatrix solve (MatrixType &typ, const SparseMatrix& b) const;
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
313 SparseComplexMatrix solve (MatrixType &typ, const SparseMatrix& b,
5697
2fe20065a545 [project @ 2006-03-21 16:01:46 by dbateman]
dbateman
parents: 5681
diff changeset
314 octave_idx_type& info) const;
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
315 SparseComplexMatrix solve (MatrixType &typ, const SparseMatrix& b,
5697
2fe20065a545 [project @ 2006-03-21 16:01:46 by dbateman]
dbateman
parents: 5681
diff changeset
316 octave_idx_type& info, double& rcond) const;
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
317 SparseComplexMatrix solve (MatrixType &typ, const SparseMatrix& b,
5697
2fe20065a545 [project @ 2006-03-21 16:01:46 by dbateman]
dbateman
parents: 5681
diff changeset
318 octave_idx_type& info, double& rcond,
2fe20065a545 [project @ 2006-03-21 16:01:46 by dbateman]
dbateman
parents: 5681
diff changeset
319 solve_singularity_handler sing_handler,
2fe20065a545 [project @ 2006-03-21 16:01:46 by dbateman]
dbateman
parents: 5681
diff changeset
320 bool singular_fallback = true) const;
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
321
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
322 SparseComplexMatrix solve (MatrixType &typ,
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
323 const SparseComplexMatrix& b) const;
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
324 SparseComplexMatrix solve (MatrixType &typ, const SparseComplexMatrix& b,
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5164
diff changeset
325 octave_idx_type& info) const;
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
326 SparseComplexMatrix solve (MatrixType &typ, const SparseComplexMatrix& b,
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5164
diff changeset
327 octave_idx_type& info, double& rcond) const;
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
328 SparseComplexMatrix solve (MatrixType &typ, const SparseComplexMatrix& b,
5697
2fe20065a545 [project @ 2006-03-21 16:01:46 by dbateman]
dbateman
parents: 5681
diff changeset
329 octave_idx_type& info, double& rcond,
2fe20065a545 [project @ 2006-03-21 16:01:46 by dbateman]
dbateman
parents: 5681
diff changeset
330 solve_singularity_handler sing_handler,
2fe20065a545 [project @ 2006-03-21 16:01:46 by dbateman]
dbateman
parents: 5681
diff changeset
331 bool singular_fallback = true) const;
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
332
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
333 ComplexColumnVector solve (MatrixType &typ, const ColumnVector& b) const;
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
334 ComplexColumnVector solve (MatrixType &typ, const ColumnVector& b,
5697
2fe20065a545 [project @ 2006-03-21 16:01:46 by dbateman]
dbateman
parents: 5681
diff changeset
335 octave_idx_type& info) const;
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
336 ComplexColumnVector solve (MatrixType &typ, const ColumnVector& b,
5697
2fe20065a545 [project @ 2006-03-21 16:01:46 by dbateman]
dbateman
parents: 5681
diff changeset
337 octave_idx_type& info, double& rcond) const;
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
338 ComplexColumnVector solve (MatrixType &typ, const ColumnVector& b,
5697
2fe20065a545 [project @ 2006-03-21 16:01:46 by dbateman]
dbateman
parents: 5681
diff changeset
339 octave_idx_type& info, double& rcond,
2fe20065a545 [project @ 2006-03-21 16:01:46 by dbateman]
dbateman
parents: 5681
diff changeset
340 solve_singularity_handler sing_handler) const;
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
341
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
342 ComplexColumnVector solve (MatrixType &typ,
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
343 const ComplexColumnVector& b) const;
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
344 ComplexColumnVector solve (MatrixType &typ, const ComplexColumnVector& b,
5697
2fe20065a545 [project @ 2006-03-21 16:01:46 by dbateman]
dbateman
parents: 5681
diff changeset
345 octave_idx_type& info) const;
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
346 ComplexColumnVector solve (MatrixType &typ, const ComplexColumnVector& b,
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5164
diff changeset
347 octave_idx_type& info, double& rcond) const;
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5697
diff changeset
348 ComplexColumnVector solve (MatrixType &typ, const ComplexColumnVector& b,
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5164
diff changeset
349 octave_idx_type& info, double& rcond,
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
350 solve_singularity_handler sing_handler) const;
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
351
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
352 // Generic interface to solver with probing of type
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
353 ComplexMatrix solve (const Matrix& b) const;
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5164
diff changeset
354 ComplexMatrix solve (const Matrix& b, octave_idx_type& info) const;
5697
2fe20065a545 [project @ 2006-03-21 16:01:46 by dbateman]
dbateman
parents: 5681
diff changeset
355 ComplexMatrix solve (const Matrix& b, octave_idx_type& info,
2fe20065a545 [project @ 2006-03-21 16:01:46 by dbateman]
dbateman
parents: 5681
diff changeset
356 double& rcond) const;
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5164
diff changeset
357 ComplexMatrix solve (const Matrix& b, octave_idx_type& info, double& rcond,
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
358 solve_singularity_handler sing_handler) const;
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
359
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
360 ComplexMatrix solve (const ComplexMatrix& b) const;
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5164
diff changeset
361 ComplexMatrix solve (const ComplexMatrix& b, octave_idx_type& info) const;
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5164
diff changeset
362 ComplexMatrix solve (const ComplexMatrix& b, octave_idx_type& info,
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
363 double& rcond) const;
5697
2fe20065a545 [project @ 2006-03-21 16:01:46 by dbateman]
dbateman
parents: 5681
diff changeset
364 ComplexMatrix solve (const ComplexMatrix& b, octave_idx_type& info,
2fe20065a545 [project @ 2006-03-21 16:01:46 by dbateman]
dbateman
parents: 5681
diff changeset
365 double& rcond, solve_singularity_handler sing_handler) const;
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
366
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
367 SparseComplexMatrix solve (const SparseMatrix& b) const;
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5164
diff changeset
368 SparseComplexMatrix solve (const SparseMatrix& b, octave_idx_type& info) const;
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5164
diff changeset
369 SparseComplexMatrix solve (const SparseMatrix& b, octave_idx_type& info,
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
370 double& rcond) const;
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5164
diff changeset
371 SparseComplexMatrix solve (const SparseMatrix& b, octave_idx_type& info,
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
372 double& rcond,
5697
2fe20065a545 [project @ 2006-03-21 16:01:46 by dbateman]
dbateman
parents: 5681
diff changeset
373 solve_singularity_handler sing_handler) const;
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
374
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
375 SparseComplexMatrix solve (const SparseComplexMatrix& b) const;
5697
2fe20065a545 [project @ 2006-03-21 16:01:46 by dbateman]
dbateman
parents: 5681
diff changeset
376 SparseComplexMatrix solve (const SparseComplexMatrix& b,
2fe20065a545 [project @ 2006-03-21 16:01:46 by dbateman]
dbateman
parents: 5681
diff changeset
377 octave_idx_type& info) const;
2fe20065a545 [project @ 2006-03-21 16:01:46 by dbateman]
dbateman
parents: 5681
diff changeset
378 SparseComplexMatrix solve (const SparseComplexMatrix& b,
2fe20065a545 [project @ 2006-03-21 16:01:46 by dbateman]
dbateman
parents: 5681
diff changeset
379 octave_idx_type& info, double& rcond) const;
2fe20065a545 [project @ 2006-03-21 16:01:46 by dbateman]
dbateman
parents: 5681
diff changeset
380 SparseComplexMatrix solve (const SparseComplexMatrix& b,
2fe20065a545 [project @ 2006-03-21 16:01:46 by dbateman]
dbateman
parents: 5681
diff changeset
381 octave_idx_type& info, double& rcond,
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
382 solve_singularity_handler sing_handler) const;
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
383
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
384 ComplexColumnVector solve (const ColumnVector& b) const;
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5164
diff changeset
385 ComplexColumnVector solve (const ColumnVector& b, octave_idx_type& info) const;
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5164
diff changeset
386 ComplexColumnVector solve (const ColumnVector& b, octave_idx_type& info,
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
387 double& rcond) const;
5697
2fe20065a545 [project @ 2006-03-21 16:01:46 by dbateman]
dbateman
parents: 5681
diff changeset
388 ComplexColumnVector solve (const ColumnVector& b, octave_idx_type& info,
2fe20065a545 [project @ 2006-03-21 16:01:46 by dbateman]
dbateman
parents: 5681
diff changeset
389 double& rcond,
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
390 solve_singularity_handler sing_handler) const;
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
391
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
392 ComplexColumnVector solve (const ComplexColumnVector& b) const;
5697
2fe20065a545 [project @ 2006-03-21 16:01:46 by dbateman]
dbateman
parents: 5681
diff changeset
393 ComplexColumnVector solve (const ComplexColumnVector& b,
2fe20065a545 [project @ 2006-03-21 16:01:46 by dbateman]
dbateman
parents: 5681
diff changeset
394 octave_idx_type& info) const;
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5164
diff changeset
395 ComplexColumnVector solve (const ComplexColumnVector& b, octave_idx_type& info,
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
396 double& rcond) const;
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5164
diff changeset
397 ComplexColumnVector solve (const ComplexColumnVector& b, octave_idx_type& info,
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
398 double& rcond,
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
399 solve_singularity_handler sing_handler) const;
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
400
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
401 SparseComplexMatrix squeeze (void) const;
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
402
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
403 SparseComplexMatrix index (idx_vector& i, int resize_ok) const;
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
404
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
405 SparseComplexMatrix index (idx_vector& i, idx_vector& j, int resize_ok) const;
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
406
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
407 SparseComplexMatrix index (Array<idx_vector>& ra_idx, int resize_ok) const;
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
408
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
409 SparseComplexMatrix reshape (const dim_vector& new_dims) const;
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
410
5697
2fe20065a545 [project @ 2006-03-21 16:01:46 by dbateman]
dbateman
parents: 5681
diff changeset
411 SparseComplexMatrix permute (const Array<octave_idx_type>& vec,
2fe20065a545 [project @ 2006-03-21 16:01:46 by dbateman]
dbateman
parents: 5681
diff changeset
412 bool inv = false) const;
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
413
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5164
diff changeset
414 SparseComplexMatrix ipermute (const Array<octave_idx_type>& vec) const;
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
415
7922
935be827eaf8 error for NaN values in & and | expressions
John W. Eaton <jwe@octave.org>
parents: 7802
diff changeset
416 bool any_element_is_nan (void) const;
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
417 bool any_element_is_inf_or_nan (void) const;
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
418 bool all_elements_are_real (void) const;
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
419 bool all_integers (double& max_val, double& min_val) const;
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
420 bool too_large_for_float (void) const;
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
421
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
422 SparseBoolMatrix operator ! (void) const;
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
423
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
424 SparseBoolMatrix all (int dim = -1) const;
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
425 SparseBoolMatrix any (int dim = -1) const;
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
426
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
427 SparseComplexMatrix cumprod (int dim = -1) const;
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
428 SparseComplexMatrix cumsum (int dim = -1) const;
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
429 SparseComplexMatrix prod (int dim = -1) const;
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
430 SparseComplexMatrix sum (int dim = -1) const;
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
431 SparseComplexMatrix sumsq (int dim = -1) const;
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
432 SparseMatrix abs (void) const;
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
433
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5164
diff changeset
434 SparseComplexMatrix diag (octave_idx_type k = 0) const;
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
435
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
436 // i/o
6108
143b556ce725 [project @ 2006-10-27 01:45:54 by jwe]
jwe
parents: 5785
diff changeset
437 friend OCTAVE_API std::ostream& operator << (std::ostream& os,
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
438 const SparseComplexMatrix& a);
6108
143b556ce725 [project @ 2006-10-27 01:45:54 by jwe]
jwe
parents: 5785
diff changeset
439 friend OCTAVE_API std::istream& operator >> (std::istream& is,
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
440 SparseComplexMatrix& a);
7503
8c32f95c2639 convert mapper functions to new format
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
441
8c32f95c2639 convert mapper functions to new format
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
442 typedef double (*dmapper) (const Complex&);
8c32f95c2639 convert mapper functions to new format
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
443 typedef Complex (*cmapper) (const Complex&);
8c32f95c2639 convert mapper functions to new format
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
444 typedef bool (*bmapper) (const Complex&);
8c32f95c2639 convert mapper functions to new format
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
445 SparseMatrix map (dmapper fcn) const;
8c32f95c2639 convert mapper functions to new format
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
446 SparseComplexMatrix map (cmapper fcn) const;
8c32f95c2639 convert mapper functions to new format
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
447 SparseBoolMatrix map (bmapper fcn) const;
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
448 };
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
449
6108
143b556ce725 [project @ 2006-10-27 01:45:54 by jwe]
jwe
parents: 5785
diff changeset
450 extern OCTAVE_API SparseComplexMatrix operator * (const SparseMatrix&,
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
451 const SparseComplexMatrix&);
6108
143b556ce725 [project @ 2006-10-27 01:45:54 by jwe]
jwe
parents: 5785
diff changeset
452 extern OCTAVE_API SparseComplexMatrix operator * (const SparseComplexMatrix&,
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
453 const SparseMatrix&);
6108
143b556ce725 [project @ 2006-10-27 01:45:54 by jwe]
jwe
parents: 5785
diff changeset
454 extern OCTAVE_API SparseComplexMatrix operator * (const SparseComplexMatrix&,
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
455 const SparseComplexMatrix&);
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
456
6108
143b556ce725 [project @ 2006-10-27 01:45:54 by jwe]
jwe
parents: 5785
diff changeset
457 extern OCTAVE_API ComplexMatrix operator * (const Matrix&,
5429
2042301733ce [project @ 2005-08-25 12:21:24 by dbateman]
dbateman
parents: 5351
diff changeset
458 const SparseComplexMatrix&);
6108
143b556ce725 [project @ 2006-10-27 01:45:54 by jwe]
jwe
parents: 5785
diff changeset
459 extern OCTAVE_API ComplexMatrix operator * (const ComplexMatrix&,
5429
2042301733ce [project @ 2005-08-25 12:21:24 by dbateman]
dbateman
parents: 5351
diff changeset
460 const SparseMatrix&);
6108
143b556ce725 [project @ 2006-10-27 01:45:54 by jwe]
jwe
parents: 5785
diff changeset
461 extern OCTAVE_API ComplexMatrix operator * (const ComplexMatrix&,
5429
2042301733ce [project @ 2005-08-25 12:21:24 by dbateman]
dbateman
parents: 5351
diff changeset
462 const SparseComplexMatrix&);
7802
1a446f28ce68 implement optimized sparse-dense transposed multiplication
Jaroslav Hajek <highegg@gmail.com>
parents: 7503
diff changeset
463 extern OCTAVE_API ComplexMatrix mul_trans (const ComplexMatrix&,
1a446f28ce68 implement optimized sparse-dense transposed multiplication
Jaroslav Hajek <highegg@gmail.com>
parents: 7503
diff changeset
464 const SparseComplexMatrix&);
1a446f28ce68 implement optimized sparse-dense transposed multiplication
Jaroslav Hajek <highegg@gmail.com>
parents: 7503
diff changeset
465 extern OCTAVE_API ComplexMatrix mul_herm (const ComplexMatrix&,
1a446f28ce68 implement optimized sparse-dense transposed multiplication
Jaroslav Hajek <highegg@gmail.com>
parents: 7503
diff changeset
466 const SparseComplexMatrix&);
5429
2042301733ce [project @ 2005-08-25 12:21:24 by dbateman]
dbateman
parents: 5351
diff changeset
467
6108
143b556ce725 [project @ 2006-10-27 01:45:54 by jwe]
jwe
parents: 5785
diff changeset
468 extern OCTAVE_API ComplexMatrix operator * (const SparseMatrix&,
5429
2042301733ce [project @ 2005-08-25 12:21:24 by dbateman]
dbateman
parents: 5351
diff changeset
469 const ComplexMatrix&);
6108
143b556ce725 [project @ 2006-10-27 01:45:54 by jwe]
jwe
parents: 5785
diff changeset
470 extern OCTAVE_API ComplexMatrix operator * (const SparseComplexMatrix&,
5429
2042301733ce [project @ 2005-08-25 12:21:24 by dbateman]
dbateman
parents: 5351
diff changeset
471 const Matrix&);
6108
143b556ce725 [project @ 2006-10-27 01:45:54 by jwe]
jwe
parents: 5785
diff changeset
472 extern OCTAVE_API ComplexMatrix operator * (const SparseComplexMatrix&,
5429
2042301733ce [project @ 2005-08-25 12:21:24 by dbateman]
dbateman
parents: 5351
diff changeset
473 const ComplexMatrix&);
7802
1a446f28ce68 implement optimized sparse-dense transposed multiplication
Jaroslav Hajek <highegg@gmail.com>
parents: 7503
diff changeset
474 extern OCTAVE_API ComplexMatrix trans_mul (const SparseComplexMatrix&,
1a446f28ce68 implement optimized sparse-dense transposed multiplication
Jaroslav Hajek <highegg@gmail.com>
parents: 7503
diff changeset
475 const ComplexMatrix&);
1a446f28ce68 implement optimized sparse-dense transposed multiplication
Jaroslav Hajek <highegg@gmail.com>
parents: 7503
diff changeset
476 extern OCTAVE_API ComplexMatrix herm_mul (const SparseComplexMatrix&,
1a446f28ce68 implement optimized sparse-dense transposed multiplication
Jaroslav Hajek <highegg@gmail.com>
parents: 7503
diff changeset
477 const ComplexMatrix&);
5429
2042301733ce [project @ 2005-08-25 12:21:24 by dbateman]
dbateman
parents: 5351
diff changeset
478
8964
f4f4d65faaa0 Implement sparse * diagonal and diagonal * sparse operations, double-prec only.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
479 extern OCTAVE_API SparseComplexMatrix operator * (const DiagMatrix&, const SparseComplexMatrix&);
f4f4d65faaa0 Implement sparse * diagonal and diagonal * sparse operations, double-prec only.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
480 extern OCTAVE_API SparseComplexMatrix operator * (const SparseComplexMatrix&, const DiagMatrix&);
f4f4d65faaa0 Implement sparse * diagonal and diagonal * sparse operations, double-prec only.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
481
f4f4d65faaa0 Implement sparse * diagonal and diagonal * sparse operations, double-prec only.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
482 extern OCTAVE_API SparseComplexMatrix operator * (const ComplexDiagMatrix&, const SparseMatrix&);
f4f4d65faaa0 Implement sparse * diagonal and diagonal * sparse operations, double-prec only.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
483 extern OCTAVE_API SparseComplexMatrix operator * (const SparseMatrix&, const ComplexDiagMatrix&);
f4f4d65faaa0 Implement sparse * diagonal and diagonal * sparse operations, double-prec only.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
484
f4f4d65faaa0 Implement sparse * diagonal and diagonal * sparse operations, double-prec only.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
485 extern OCTAVE_API SparseComplexMatrix operator * (const ComplexDiagMatrix&, const SparseComplexMatrix&);
f4f4d65faaa0 Implement sparse * diagonal and diagonal * sparse operations, double-prec only.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
486 extern OCTAVE_API SparseComplexMatrix operator * (const SparseComplexMatrix&, const ComplexDiagMatrix&);
f4f4d65faaa0 Implement sparse * diagonal and diagonal * sparse operations, double-prec only.
Jason Riedy <jason@acm.org>
parents: 8920
diff changeset
487
8966
1bba53c0a38d Implement diag + sparse, diag - sparse, sparse + diag, sparse - diag.
Jason Riedy <jason@acm.org>
parents: 8964
diff changeset
488 extern OCTAVE_API SparseComplexMatrix operator + (const ComplexDiagMatrix&, const SparseMatrix&);
1bba53c0a38d Implement diag + sparse, diag - sparse, sparse + diag, sparse - diag.
Jason Riedy <jason@acm.org>
parents: 8964
diff changeset
489 extern OCTAVE_API SparseComplexMatrix operator + (const DiagMatrix&, const SparseComplexMatrix&);
1bba53c0a38d Implement diag + sparse, diag - sparse, sparse + diag, sparse - diag.
Jason Riedy <jason@acm.org>
parents: 8964
diff changeset
490 extern OCTAVE_API SparseComplexMatrix operator + (const ComplexDiagMatrix&, const SparseComplexMatrix&);
1bba53c0a38d Implement diag + sparse, diag - sparse, sparse + diag, sparse - diag.
Jason Riedy <jason@acm.org>
parents: 8964
diff changeset
491 extern OCTAVE_API SparseComplexMatrix operator + (const SparseMatrix&, const ComplexDiagMatrix&);
1bba53c0a38d Implement diag + sparse, diag - sparse, sparse + diag, sparse - diag.
Jason Riedy <jason@acm.org>
parents: 8964
diff changeset
492 extern OCTAVE_API SparseComplexMatrix operator + (const SparseComplexMatrix&, const DiagMatrix&);
1bba53c0a38d Implement diag + sparse, diag - sparse, sparse + diag, sparse - diag.
Jason Riedy <jason@acm.org>
parents: 8964
diff changeset
493 extern OCTAVE_API SparseComplexMatrix operator + (const SparseComplexMatrix&, const ComplexDiagMatrix&);
1bba53c0a38d Implement diag + sparse, diag - sparse, sparse + diag, sparse - diag.
Jason Riedy <jason@acm.org>
parents: 8964
diff changeset
494
1bba53c0a38d Implement diag + sparse, diag - sparse, sparse + diag, sparse - diag.
Jason Riedy <jason@acm.org>
parents: 8964
diff changeset
495 extern OCTAVE_API SparseComplexMatrix operator - (const ComplexDiagMatrix&, const SparseMatrix&);
1bba53c0a38d Implement diag + sparse, diag - sparse, sparse + diag, sparse - diag.
Jason Riedy <jason@acm.org>
parents: 8964
diff changeset
496 extern OCTAVE_API SparseComplexMatrix operator - (const DiagMatrix&, const SparseComplexMatrix&);
1bba53c0a38d Implement diag + sparse, diag - sparse, sparse + diag, sparse - diag.
Jason Riedy <jason@acm.org>
parents: 8964
diff changeset
497 extern OCTAVE_API SparseComplexMatrix operator - (const ComplexDiagMatrix&, const SparseComplexMatrix&);
1bba53c0a38d Implement diag + sparse, diag - sparse, sparse + diag, sparse - diag.
Jason Riedy <jason@acm.org>
parents: 8964
diff changeset
498 extern OCTAVE_API SparseComplexMatrix operator - (const SparseMatrix&, const ComplexDiagMatrix&);
1bba53c0a38d Implement diag + sparse, diag - sparse, sparse + diag, sparse - diag.
Jason Riedy <jason@acm.org>
parents: 8964
diff changeset
499 extern OCTAVE_API SparseComplexMatrix operator - (const SparseComplexMatrix&, const DiagMatrix&);
1bba53c0a38d Implement diag + sparse, diag - sparse, sparse + diag, sparse - diag.
Jason Riedy <jason@acm.org>
parents: 8964
diff changeset
500 extern OCTAVE_API SparseComplexMatrix operator - (const SparseComplexMatrix&, const ComplexDiagMatrix&);
1bba53c0a38d Implement diag + sparse, diag - sparse, sparse + diag, sparse - diag.
Jason Riedy <jason@acm.org>
parents: 8964
diff changeset
501
8968
91d53dc37f79 Add perm * sparse, perm \ sparse, sparse * perm, and sparse / perm operations.
Jason Riedy <jason@acm.org>
parents: 8966
diff changeset
502 extern OCTAVE_API SparseComplexMatrix operator * (const PermMatrix&,
91d53dc37f79 Add perm * sparse, perm \ sparse, sparse * perm, and sparse / perm operations.
Jason Riedy <jason@acm.org>
parents: 8966
diff changeset
503 const SparseComplexMatrix&);
91d53dc37f79 Add perm * sparse, perm \ sparse, sparse * perm, and sparse / perm operations.
Jason Riedy <jason@acm.org>
parents: 8966
diff changeset
504 extern OCTAVE_API SparseComplexMatrix operator * (const SparseComplexMatrix&,
91d53dc37f79 Add perm * sparse, perm \ sparse, sparse * perm, and sparse / perm operations.
Jason Riedy <jason@acm.org>
parents: 8966
diff changeset
505 const PermMatrix&);
91d53dc37f79 Add perm * sparse, perm \ sparse, sparse * perm, and sparse / perm operations.
Jason Riedy <jason@acm.org>
parents: 8966
diff changeset
506
6108
143b556ce725 [project @ 2006-10-27 01:45:54 by jwe]
jwe
parents: 5785
diff changeset
507 extern OCTAVE_API SparseComplexMatrix min (const Complex& c,
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
508 const SparseComplexMatrix& m);
6108
143b556ce725 [project @ 2006-10-27 01:45:54 by jwe]
jwe
parents: 5785
diff changeset
509 extern OCTAVE_API SparseComplexMatrix min (const SparseComplexMatrix& m,
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
510 const Complex& c);
6108
143b556ce725 [project @ 2006-10-27 01:45:54 by jwe]
jwe
parents: 5785
diff changeset
511 extern OCTAVE_API SparseComplexMatrix min (const SparseComplexMatrix& a,
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
512 const SparseComplexMatrix& b);
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
513
6108
143b556ce725 [project @ 2006-10-27 01:45:54 by jwe]
jwe
parents: 5785
diff changeset
514 extern OCTAVE_API SparseComplexMatrix max (const Complex& c,
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
515 const SparseComplexMatrix& m);
6108
143b556ce725 [project @ 2006-10-27 01:45:54 by jwe]
jwe
parents: 5785
diff changeset
516 extern OCTAVE_API SparseComplexMatrix max (const SparseComplexMatrix& m,
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
517 const Complex& c);
6108
143b556ce725 [project @ 2006-10-27 01:45:54 by jwe]
jwe
parents: 5785
diff changeset
518 extern OCTAVE_API SparseComplexMatrix max (const SparseComplexMatrix& a,
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
519 const SparseComplexMatrix& b);
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
520
6708
0ce71beb1cf3 [project @ 2007-06-13 06:40:48 by jwe]
jwe
parents: 6108
diff changeset
521 SPARSE_SMS_CMP_OP_DECLS (SparseComplexMatrix, Complex, OCTAVE_API)
0ce71beb1cf3 [project @ 2007-06-13 06:40:48 by jwe]
jwe
parents: 6108
diff changeset
522 SPARSE_SMS_BOOL_OP_DECLS (SparseComplexMatrix, Complex, OCTAVE_API)
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
523
6708
0ce71beb1cf3 [project @ 2007-06-13 06:40:48 by jwe]
jwe
parents: 6108
diff changeset
524 SPARSE_SSM_CMP_OP_DECLS (Complex, SparseComplexMatrix, OCTAVE_API)
0ce71beb1cf3 [project @ 2007-06-13 06:40:48 by jwe]
jwe
parents: 6108
diff changeset
525 SPARSE_SSM_BOOL_OP_DECLS (Complex, SparseComplexMatrix, OCTAVE_API)
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
526
6708
0ce71beb1cf3 [project @ 2007-06-13 06:40:48 by jwe]
jwe
parents: 6108
diff changeset
527 SPARSE_SMSM_CMP_OP_DECLS (SparseComplexMatrix, SparseComplexMatrix, OCTAVE_API)
0ce71beb1cf3 [project @ 2007-06-13 06:40:48 by jwe]
jwe
parents: 6108
diff changeset
528 SPARSE_SMSM_BOOL_OP_DECLS (SparseComplexMatrix, SparseComplexMatrix, OCTAVE_API)
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
529
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
530 SPARSE_FORWARD_DEFS (MSparse, SparseComplexMatrix, ComplexMatrix, Complex)
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
531
5351
05adf9de7657 [project @ 2005-05-16 20:07:36 by dbateman]
dbateman
parents: 5322
diff changeset
532 #ifdef IDX_TYPE_LONG
5322
22994a5730f9 [project @ 2005-04-29 13:04:24 by dbateman]
dbateman
parents: 5307
diff changeset
533 #define UMFPACK_ZNAME(name) umfpack_zl_ ## name
22994a5730f9 [project @ 2005-04-29 13:04:24 by dbateman]
dbateman
parents: 5307
diff changeset
534 #else
22994a5730f9 [project @ 2005-04-29 13:04:24 by dbateman]
dbateman
parents: 5307
diff changeset
535 #define UMFPACK_ZNAME(name) umfpack_zi_ ## name
22994a5730f9 [project @ 2005-04-29 13:04:24 by dbateman]
dbateman
parents: 5307
diff changeset
536 #endif
22994a5730f9 [project @ 2005-04-29 13:04:24 by dbateman]
dbateman
parents: 5307
diff changeset
537
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
538 #endif
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
539
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
540 /*
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
541 ;;; Local Variables: ***
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
542 ;;; mode: C++ ***
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
543 ;;; End: ***
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents:
diff changeset
544 */