GNU Octave  4.4.1
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
CMatrix.h
Go to the documentation of this file.
1 /*
2 
3 Copyright (C) 1994-2018 John W. Eaton
4 
5 This file is part of Octave.
6 
7 Octave is free software: you can redistribute it and/or modify it
8 under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
11 
12 Octave is distributed in the hope that it will be useful, but
13 WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16 
17 You should have received a copy of the GNU General Public License
18 along with Octave; see the file COPYING. If not, see
19 <https://www.gnu.org/licenses/>.
20 
21 */
22 
23 #if ! defined (octave_CMatrix_h)
24 #define octave_CMatrix_h 1
25 
26 #include "octave-config.h"
27 
28 #include "CNDArray.h"
29 #include "DET.h"
30 #include "MArray.h"
31 #include "MDiagArray2.h"
32 #include "MatrixType.h"
33 #include "mx-defs.h"
34 #include "mx-op-decl.h"
35 #include "oct-cmplx.h"
36 
37 class
38 OCTAVE_API
40 {
41 public:
42 
45 
48 
51 
54 
55  typedef double real_elt_type;
57 
58  typedef void (*solve_singularity_handler) (double rcon);
59 
60  ComplexMatrix (void) : ComplexNDArray () { }
61 
63  : ComplexNDArray (dim_vector (r, c)) { }
64 
66  : ComplexNDArray (dim_vector (r, c), val) { }
67 
68  ComplexMatrix (const dim_vector& dv) : ComplexNDArray (dv.redim (2)) { }
69 
71  : ComplexNDArray (dv.redim (2), val) { }
72 
74 
75  template <typename U>
77 
78  template <typename U>
80 
81  ComplexMatrix (const Matrix& re, const Matrix& im);
82 
83  explicit ComplexMatrix (const Matrix& a);
84 
85  explicit ComplexMatrix (const RowVector& rv);
86 
87  explicit ComplexMatrix (const ColumnVector& cv);
88 
89  explicit ComplexMatrix (const DiagMatrix& a);
90 
91  explicit ComplexMatrix (const MDiagArray2<double>& a);
92 
93  explicit ComplexMatrix (const DiagArray2<double>& a);
94 
95  explicit ComplexMatrix (const ComplexRowVector& rv);
96 
97  explicit ComplexMatrix (const ComplexColumnVector& cv);
98 
99  explicit ComplexMatrix (const ComplexDiagMatrix& a);
100 
101  explicit ComplexMatrix (const MDiagArray2<Complex>& a);
102 
103  explicit ComplexMatrix (const DiagArray2<Complex>& a);
104 
105  explicit ComplexMatrix (const boolMatrix& a);
106 
107  explicit ComplexMatrix (const charMatrix& a);
108 
109  bool operator == (const ComplexMatrix& a) const;
110  bool operator != (const ComplexMatrix& a) const;
111 
112  bool ishermitian (void) const;
113 
114  OCTAVE_DEPRECATED (4.4, "use 'ishermitian' instead")
115  bool is_hermitian (void) const
116  { return ishermitian (); }
117 
118  // destructive insert/delete/reorder operations
119 
121  ComplexMatrix& insert (const RowVector& a,
125  ComplexMatrix& insert (const DiagMatrix& a,
127 
136 
137  ComplexMatrix& fill (double val);
138  ComplexMatrix& fill (const Complex& val);
139  ComplexMatrix& fill (double val,
142  ComplexMatrix& fill (const Complex& val,
145 
146  ComplexMatrix append (const Matrix& a) const;
147  ComplexMatrix append (const RowVector& a) const;
148  ComplexMatrix append (const ColumnVector& a) const;
149  ComplexMatrix append (const DiagMatrix& a) const;
150 
151  ComplexMatrix append (const ComplexMatrix& a) const;
152  ComplexMatrix append (const ComplexRowVector& a) const;
153  ComplexMatrix append (const ComplexColumnVector& a) const;
154  ComplexMatrix append (const ComplexDiagMatrix& a) const;
155 
156  ComplexMatrix stack (const Matrix& a) const;
157  ComplexMatrix stack (const RowVector& a) const;
158  ComplexMatrix stack (const ColumnVector& a) const;
159  ComplexMatrix stack (const DiagMatrix& a) const;
160 
161  ComplexMatrix stack (const ComplexMatrix& a) const;
162  ComplexMatrix stack (const ComplexRowVector& a) const;
163  ComplexMatrix stack (const ComplexColumnVector& a) const;
164  ComplexMatrix stack (const ComplexDiagMatrix& a) const;
165 
169  { return MArray<Complex>::transpose (); }
170 
171  friend OCTAVE_API ComplexMatrix conj (const ComplexMatrix& a);
172 
173  // resize is the destructive equivalent for this one
174 
176  octave_idx_type r2, octave_idx_type c2) const;
177 
179  octave_idx_type nr, octave_idx_type nc) const;
180 
181  // extract row or column i.
182 
184 
186 
188  const Complex& rfv = Complex (0))
189  {
190  MArray<Complex>::resize (dim_vector (nr, nc), rfv);
191  }
192 
193 private:
195  double& rcon, bool force, bool calc_cond) const;
196 
198  double& rcon, bool force, bool calc_cond) const;
199 
200 public:
201  ComplexMatrix inverse (void) const;
202  ComplexMatrix inverse (octave_idx_type& info) const;
203  ComplexMatrix inverse (octave_idx_type& info, double& rcon,
204  bool force = false, bool calc_cond = true) const;
205 
206  ComplexMatrix inverse (MatrixType& mattype) const;
207  ComplexMatrix inverse (MatrixType& mattype, octave_idx_type& info) const;
209  double& rcon, bool force = false,
210  bool calc_cond = true) const;
211 
212  ComplexMatrix pseudo_inverse (double tol = 0.0) const;
213 
214  ComplexMatrix fourier (void) const;
215  ComplexMatrix ifourier (void) const;
216 
217  ComplexMatrix fourier2d (void) const;
218  ComplexMatrix ifourier2d (void) const;
219 
220  ComplexDET determinant (void) const;
221  ComplexDET determinant (octave_idx_type& info) const;
222  ComplexDET determinant (octave_idx_type& info, double& rcon,
223  bool calc_cond = true) const;
225  double& rcon, bool calc_cond = true) const;
226 
227  double rcond (void) const;
228  double rcond (MatrixType& mattype) const;
229 
230 private:
231  // Upper triangular matrix solvers
232  ComplexMatrix utsolve (MatrixType& mattype, const ComplexMatrix& b,
233  octave_idx_type& info, double& rcon,
234  solve_singularity_handler sing_handler,
235  bool calc_cond = false,
236  blas_trans_type transt = blas_no_trans) const;
237 
238  // Lower triangular matrix solvers
239  ComplexMatrix ltsolve (MatrixType& mattype, const ComplexMatrix& b,
240  octave_idx_type& info, double& rcon,
241  solve_singularity_handler sing_handler,
242  bool calc_cond = false,
243  blas_trans_type transt = blas_no_trans) const;
244 
245  // Full matrix solvers (umfpack/cholesky)
246  ComplexMatrix fsolve (MatrixType& mattype, const ComplexMatrix& b,
247  octave_idx_type& info, double& rcon,
248  solve_singularity_handler sing_handler,
249  bool calc_cond = false) const;
250 
251 public:
252  // Generic interface to solver with no probing of type
253  ComplexMatrix solve (MatrixType& mattype, const Matrix& b) const;
254  ComplexMatrix solve (MatrixType& mattype, const Matrix& b,
255  octave_idx_type& info) const;
256  ComplexMatrix solve (MatrixType& mattype, const Matrix& b,
257  octave_idx_type& info, double& rcon) const;
258  ComplexMatrix solve (MatrixType& mattype, const Matrix& b,
259  octave_idx_type& info, double& rcon,
260  solve_singularity_handler sing_handler,
261  bool singular_fallback = true,
262  blas_trans_type transt = blas_no_trans) const;
263 
264  ComplexMatrix solve (MatrixType& mattype, const ComplexMatrix& b) const;
265  ComplexMatrix solve (MatrixType& mattype, const ComplexMatrix& b,
266  octave_idx_type& info) const;
267  ComplexMatrix solve (MatrixType& mattype, const ComplexMatrix& b,
268  octave_idx_type& info, double& rcon) const;
269  ComplexMatrix solve (MatrixType& mattype, const ComplexMatrix& b,
270  octave_idx_type& info, double& rcon,
271  solve_singularity_handler sing_handler,
272  bool singular_fallback = true,
273  blas_trans_type transt = blas_no_trans) const;
274 
275  ComplexColumnVector solve (MatrixType& mattype, const ColumnVector& b) const;
277  octave_idx_type& info) const;
279  octave_idx_type& info, double& rcon) const;
281  octave_idx_type& info, double& rcon,
282  solve_singularity_handler sing_handler,
283  blas_trans_type transt = blas_no_trans) const;
284 
286  const ComplexColumnVector& b) const;
288  octave_idx_type& info) const;
290  octave_idx_type& info, double& rcon) const;
292  octave_idx_type& info, double& rcon,
293  solve_singularity_handler sing_handler,
294  blas_trans_type transt = blas_no_trans) const;
295 
296  // Generic interface to solver with probing of type
297  ComplexMatrix solve (const Matrix& b) const;
298  ComplexMatrix solve (const Matrix& b, octave_idx_type& info) const;
299  ComplexMatrix solve (const Matrix& b, octave_idx_type& info,
300  double& rcon) const;
301  ComplexMatrix solve (const Matrix& b, octave_idx_type& info, double& rcon,
302  solve_singularity_handler sing_handler,
303  blas_trans_type transt = blas_no_trans) const;
304 
305  ComplexMatrix solve (const ComplexMatrix& b) const;
306  ComplexMatrix solve (const ComplexMatrix& b, octave_idx_type& info) const;
308  double& rcon) const;
310  double& rcon,
311  solve_singularity_handler sing_handler,
312  blas_trans_type transt = blas_no_trans) const;
313 
314  ComplexColumnVector solve (const ColumnVector& b) const;
317  double& rcon) const;
319  double& rcon,
320  solve_singularity_handler sing_handler,
321  blas_trans_type transt = blas_no_trans) const;
322 
325  octave_idx_type& info) const;
327  octave_idx_type& info,
328  double& rcon) const;
330  octave_idx_type& info,
331  double& rcon,
332  solve_singularity_handler sing_handler,
333  blas_trans_type transt = blas_no_trans) const;
334 
335  ComplexMatrix lssolve (const Matrix& b) const;
336  ComplexMatrix lssolve (const Matrix& b, octave_idx_type& info) const;
338  octave_idx_type& rank) const;
340  octave_idx_type& rank, double& rcon) const;
341 
342  ComplexMatrix lssolve (const ComplexMatrix& b) const;
343  ComplexMatrix lssolve (const ComplexMatrix& b, octave_idx_type& info) const;
345  octave_idx_type& rank) const;
347  octave_idx_type& rank, double& rcon) const;
348 
349  ComplexColumnVector lssolve (const ColumnVector& b) const;
351  octave_idx_type& info) const;
353  octave_idx_type& rank) const;
355  octave_idx_type& rank, double& rcon) const;
356 
359  octave_idx_type& info) const;
361  octave_idx_type& info,
362  octave_idx_type& rank) const;
364  octave_idx_type& info,
365  octave_idx_type& rank, double& rcon) const;
366 
367  // matrix by diagonal matrix -> matrix operations
368 
371 
374 
375  // matrix by matrix -> matrix operations
376 
379 
380  // other operations
381 
382  boolMatrix all (int dim = -1) const;
383  boolMatrix any (int dim = -1) const;
384 
385  ComplexMatrix cumprod (int dim = -1) const;
386  ComplexMatrix cumsum (int dim = -1) const;
387  ComplexMatrix prod (int dim = -1) const;
388  ComplexMatrix sum (int dim = -1) const;
389  ComplexMatrix sumsq (int dim = -1) const;
390  Matrix abs (void) const;
391 
392  ComplexMatrix diag (octave_idx_type k = 0) const;
393 
395 
396  bool row_is_real_only (octave_idx_type) const;
398 
399  ComplexColumnVector row_min (void) const;
400  ComplexColumnVector row_max (void) const;
401 
404 
405  ComplexRowVector column_min (void) const;
406  ComplexRowVector column_max (void) const;
407 
410 
411  // i/o
412 
413  friend OCTAVE_API std::ostream& operator << (std::ostream& os,
414  const ComplexMatrix& a);
415  friend OCTAVE_API std::istream& operator >> (std::istream& is,
416  ComplexMatrix& a);
417 };
418 
419 extern OCTAVE_API ComplexMatrix conj (const ComplexMatrix& a);
420 
421 // column vector by row vector -> matrix operations
422 
423 extern OCTAVE_API ComplexMatrix
425 
426 extern OCTAVE_API ComplexMatrix
428 
429 extern OCTAVE_API ComplexMatrix
431 
432 extern OCTAVE_API ComplexMatrix
433 Givens (const Complex&, const Complex&);
434 
435 extern OCTAVE_API ComplexMatrix
436 Sylvester (const ComplexMatrix&, const ComplexMatrix&, const ComplexMatrix&);
437 
438 extern OCTAVE_API ComplexMatrix
439 xgemm (const ComplexMatrix& a, const ComplexMatrix& b,
441  blas_trans_type transb = blas_no_trans);
442 
443 extern OCTAVE_API ComplexMatrix operator * (const Matrix&,
444  const ComplexMatrix&);
445 extern OCTAVE_API ComplexMatrix operator * (const ComplexMatrix&,
446  const Matrix&);
447 extern OCTAVE_API ComplexMatrix operator * (const ComplexMatrix&,
448  const ComplexMatrix&);
449 
450 extern OCTAVE_API ComplexMatrix min (const Complex& c, const ComplexMatrix& m);
451 extern OCTAVE_API ComplexMatrix min (const ComplexMatrix& m, const Complex& c);
452 extern OCTAVE_API ComplexMatrix min (const ComplexMatrix& a,
453  const ComplexMatrix& b);
454 
455 extern OCTAVE_API ComplexMatrix max (const Complex& c, const ComplexMatrix& m);
456 extern OCTAVE_API ComplexMatrix max (const ComplexMatrix& m, const Complex& c);
457 extern OCTAVE_API ComplexMatrix max (const ComplexMatrix& a,
458  const ComplexMatrix& b);
459 
460 extern OCTAVE_API ComplexMatrix linspace (const ComplexColumnVector& x1,
461  const ComplexColumnVector& x2,
462  octave_idx_type n);
463 
466 
469 
472 
474 
475 #endif
ComplexMatrix complex_matrix_type
Definition: CMatrix.h:50
ComplexMatrix extract_n(octave_idx_type r1, octave_idx_type c1, octave_idx_type nr, octave_idx_type nc) const
Definition: CMatrix.cc:692
ComplexMatrix lssolve(const Matrix &b) const
Definition: CMatrix.cc:2386
Complex complex_elt_type
Definition: CMatrix.h:56
ComplexRowVector row_vector_type
Definition: CMatrix.h:44
ComplexDiagMatrix complex_diag_matrix_type
Definition: CMatrix.h:53
ComplexMatrix sumsq(int dim=-1) const
Definition: CMatrix.cc:2987
OCTAVE_EXPORT octave_value_list column
Definition: sparse.cc:123
Template for N-dimensional array classes with like-type math operators.
Definition: MArray.h:32
ComplexRowVector column_min(void) const
Definition: CMatrix.cc:3205
ColumnVector real_column_vector_type
Definition: CMatrix.h:46
bool operator!=(const dim_vector &a, const dim_vector &b)
Definition: dim-vector.h:566
bool column_is_real_only(octave_idx_type) const
Definition: CMatrix.cc:3036
ComplexDET determinant(void) const
Definition: CMatrix.cc:1340
std::istream & operator>>(std::istream &is, SparseBoolMatrix &a)
Definition: boolSparse.cc:279
void(* solve_singularity_handler)(double rcon)
Definition: CMatrix.h:58
MArray< T > hermitian(T(*fcn)(const T &)=nullptr) const
Definition: MArray.h:106
ComplexMatrix fourier(void) const
Definition: CMatrix.cc:1020
identity matrix If supplied two scalar respectively For allows like xample val
Definition: data.cc:4986
OCTAVE_API ComplexMatrix linspace(const ComplexColumnVector &x1, const ComplexColumnVector &x2, octave_idx_type n)
Definition: CMatrix.cc:3797
bool ishermitian(void) const
Definition: CMatrix.cc:173
bool row_is_real_only(octave_idx_type) const
Definition: CMatrix.cc:3017
ComplexMatrix(const dim_vector &dv, const Complex &val)
Definition: CMatrix.h:70
for large enough k
Definition: lu.cc:617
ComplexMatrix(octave_idx_type r, octave_idx_type c)
Definition: CMatrix.h:62
ComplexMatrix cumsum(int dim=-1) const
Definition: CMatrix.cc:2969
ComplexMatrix stack(const Matrix &a) const
Definition: CMatrix.cc:554
DiagMatrix real_diag_matrix_type
Definition: CMatrix.h:52
static T abs(T x)
Definition: pr-output.cc:1696
ComplexMatrix fourier2d(void) const
Definition: CMatrix.cc:1078
the second is matched to the second specifier and placed in the second column and so forth If there are more words than specifiers then the process is repeated until all words have been processed or the limit imposed by any(non-whitespace) text in the format that is not one of these specifiers is considered a literal. If there is a literal between two format specifiers then that same literal must appear in the input stream between the matching words. The following specifiers are valid
Definition: file-io.cc:1499
#define SM_CMP_OP_DECLS(S, M, API)
Definition: mx-op-decl.h:114
nd example oindent opens the file binary numeric values will be read assuming they are stored in IEEE format with the least significant bit and then converted to the native representation Opening a file that is already open simply opens it again and returns a separate file id It is not an error to open a file several though writing to the same file through several different file ids may produce unexpected results The possible values of text mode reading and writing automatically converts linefeeds to the appropriate line end character for the you may append a you must also open the file in binary mode The parameter conversions are currently only supported for and permissions will be set to and then everything is written in a single operation This is very efficient and improves performance c
Definition: file-io.cc:587
MArray< T > transpose(void) const
Definition: MArray.h:103
Array< Complex > as_matrix(void) const
Return the array as a matrix.
Definition: Array.h:390
ComplexMatrix transpose(void) const
Definition: CMatrix.h:168
OCTAVE_API ComplexMatrix Sylvester(const ComplexMatrix &, const ComplexMatrix &, const ComplexMatrix &)
Definition: CMatrix.cc:3417
ComplexMatrix operator-=(ComplexMatrix &x, const Complex &y)
Definition: CMatrix.h:473
#define MARRAY_FORWARD_DEFS(B, R, T)
Definition: MArray.h:126
ComplexMatrix cumprod(int dim=-1) const
Definition: CMatrix.cc:2963
OCTAVE_API ComplexMatrix xgemm(const ComplexMatrix &a, const ComplexMatrix &b, blas_trans_type transa=blas_no_trans, blas_trans_type transb=blas_no_trans)
Definition: CMatrix.cc:3515
ComplexMatrix inverse(void) const
Definition: CMatrix.cc:736
ComplexMatrix fsolve(MatrixType &mattype, const ComplexMatrix &b, octave_idx_type &info, double &rcon, solve_singularity_handler sing_handler, bool calc_cond=false) const
Definition: CMatrix.cc:1887
bool is_hermitian(void) const
Definition: CMatrix.h:115
ComplexMatrix ifourier2d(void) const
Definition: CMatrix.cc:1092
calling an anonymous function involves an overhead quite comparable to the overhead of an m file function Passing a handle to a built in function is because the interpreter is not involved in the internal loop For a
Definition: cellfun.cc:400
boolMatrix all(int dim=-1) const
Definition: CMatrix.cc:2951
ComplexColumnVector row_min(void) const
Definition: CMatrix.cc:3055
ComplexMatrix tinverse(MatrixType &mattype, octave_idx_type &info, double &rcon, bool force, bool calc_cond) const
Definition: CMatrix.cc:776
Array< Complex > index(const idx_vector &i) const
Indexing without resizing.
Definition: Array.cc:697
double real_elt_type
Definition: CMatrix.h:55
ComplexMatrix diag(octave_idx_type k=0) const
Definition: CMatrix.cc:2999
ComplexMatrix(const dim_vector &dv)
Definition: CMatrix.h:68
#define SM_BOOL_OP_DECLS(S, M, API)
Definition: mx-op-decl.h:122
Definition: DET.h:34
ComplexMatrix(const MArray< U > &a)
Definition: CMatrix.h:76
#define MM_CMP_OP_DECLS(M1, M2, API)
Definition: mx-op-decl.h:139
#define MM_BOOL_OP_DECLS(M1, M2, API)
Definition: mx-op-decl.h:147
void resize(const dim_vector &dv, const T &rfv)
Resizing (with fill).
Definition: Array.cc:1010
bool append
Definition: load-save.cc:1618
double rcond(void) const
Definition: CMatrix.cc:1516
static M ltsolve(const SM &L, const ColumnVector &Q, const M &m)
Definition: eigs-base.cc:80
ComplexMatrix solve(MatrixType &mattype, const Matrix &b) const
Definition: CMatrix.cc:2097
ComplexMatrix finverse(MatrixType &mattype, octave_idx_type &info, double &rcon, bool force, bool calc_cond) const
Definition: CMatrix.cc:835
Definition: dMatrix.h:36
OCTAVE_API ComplexMatrix Givens(const Complex &, const Complex &)
Definition: CMatrix.cc:3395
OCTAVE_API ComplexMatrix min(const Complex &c, const ComplexMatrix &m)
Definition: CMatrix.cc:3650
ComplexMatrix & insert(const Matrix &a, octave_idx_type r, octave_idx_type c)
Definition: CMatrix.cc:194
bool operator==(const dim_vector &a, const dim_vector &b)
Definition: dim-vector.h:550
ComplexColumnVector row_max(void) const
Definition: CMatrix.cc:3130
#define MS_CMP_OP_DECLS(M, S, API)
Definition: mx-op-decl.h:89
ComplexMatrix(const ComplexMatrix &a)
Definition: CMatrix.h:73
N Dimensional Array with copy-on-write semantics.
Definition: Array.h:125
ComplexMatrix extract(octave_idx_type r1, octave_idx_type c1, octave_idx_type r2, octave_idx_type c2) const
Definition: CMatrix.cc:682
void resize(octave_idx_type nr, octave_idx_type nc, const Complex &rfv=Complex(0))
Definition: CMatrix.h:187
OCTAVE_API ComplexMatrix operator*(const ColumnVector &a, const ComplexRowVector &b)
Definition: CMatrix.cc:2792
ComplexMatrix ifourier(void) const
Definition: CMatrix.cc:1049
template OCTAVE_API std::ostream & operator<<(std::ostream &, const Array< bool > &)
ComplexColumnVector column_vector_type
Definition: CMatrix.h:43
ComplexMatrix pseudo_inverse(double tol=0.0) const
Definition: CMatrix.cc:975
RowVector real_row_vector_type
Definition: CMatrix.h:47
OCTAVE_API ComplexMatrix conj(const ComplexMatrix &a)
Definition: CMatrix.cc:674
ComplexMatrix(octave_idx_type r, octave_idx_type c, const Complex &val)
Definition: CMatrix.h:65
#define MS_BOOL_OP_DECLS(M, S, API)
Definition: mx-op-decl.h:97
b
Definition: cellfun.cc:400
static M utsolve(const SM &U, const ColumnVector &Q, const M &m)
Definition: eigs-base.cc:100
ComplexMatrix(void)
Definition: CMatrix.h:60
ComplexMatrix & fill(double val)
Definition: CMatrix.cc:346
OCTAVE_API ComplexMatrix max(const Complex &c, const ComplexMatrix &m)
Definition: CMatrix.cc:3722
for i
Definition: data.cc:5264
blas_trans_type
Definition: mx-defs.h:105
ComplexMatrix(const Array< U > &a)
Definition: CMatrix.h:79
ComplexMatrix prod(int dim=-1) const
Definition: CMatrix.cc:2975
std::complex< double > Complex
Definition: oct-cmplx.h:31
ComplexMatrix sum(int dim=-1) const
Definition: CMatrix.cc:2981
write the output to stdout if nargout is
Definition: load-save.cc:1612
Vector representing the dimensions (size) of an Array.
Definition: dim-vector.h:87
ComplexRowVector column_max(void) const
Definition: CMatrix.cc:3280
dim_vector dv
Definition: sub2ind.cc:263
octave::stream os
Definition: file-io.cc:627
where the brackets indicate optional arguments and and character or cell array For character arrays the conversion is repeated for every row
Definition: str2double.cc:342
Matrix real_matrix_type
Definition: CMatrix.h:49
ComplexMatrix hermitian(void) const
Definition: CMatrix.h:166
ComplexMatrix operator+=(ComplexMatrix &x, const Complex &y)
Definition: CMatrix.h:473