GNU Octave  4.2.1
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
CMatrix.h
Go to the documentation of this file.
1 /*
2 
3 Copyright (C) 1994-2017 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 the
9 Free Software Foundation; either version 3 of the License, or (at your
10 option) any later version.
11 
12 Octave is distributed in the hope that it will be useful, but WITHOUT
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15 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 <http://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 "MArray.h"
29 #include "MDiagArray2.h"
30 #include "MatrixType.h"
31 #include "CNDArray.h"
32 
33 #include "mx-defs.h"
34 #include "mx-op-decl.h"
35 #include "oct-cmplx.h"
36 #include "DET.h"
37 
38 class
39 OCTAVE_API
41 {
42 public:
43 
46 
49 
52 
55 
56  typedef double real_elt_type;
58 
59  typedef void (*solve_singularity_handler) (double rcon);
60 
61  ComplexMatrix (void) : ComplexNDArray () { }
62 
64  : ComplexNDArray (dim_vector (r, c)) { }
65 
67  : ComplexNDArray (dim_vector (r, c), val) { }
68 
69  ComplexMatrix (const dim_vector& dv) : ComplexNDArray (dv.redim (2)) { }
70 
72  : ComplexNDArray (dv.redim (2), val) { }
73 
75 
76  template <typename U>
78 
79  template <typename U>
81 
82  ComplexMatrix (const Matrix& re, const Matrix& im);
83 
84  explicit ComplexMatrix (const Matrix& a);
85 
86  explicit ComplexMatrix (const RowVector& rv);
87 
88  explicit ComplexMatrix (const ColumnVector& cv);
89 
90  explicit ComplexMatrix (const DiagMatrix& a);
91 
92  explicit ComplexMatrix (const MDiagArray2<double>& a);
93 
94  explicit ComplexMatrix (const DiagArray2<double>& a);
95 
96  explicit ComplexMatrix (const ComplexRowVector& rv);
97 
98  explicit ComplexMatrix (const ComplexColumnVector& cv);
99 
100  explicit ComplexMatrix (const ComplexDiagMatrix& a);
101 
102  explicit ComplexMatrix (const MDiagArray2<Complex>& a);
103 
104  explicit ComplexMatrix (const DiagArray2<Complex>& a);
105 
106  explicit ComplexMatrix (const boolMatrix& a);
107 
108  explicit ComplexMatrix (const charMatrix& a);
109 
110  bool operator == (const ComplexMatrix& a) const;
111  bool operator != (const ComplexMatrix& a) const;
112 
113  bool is_hermitian (void) const;
114 
115  // destructive insert/delete/reorder operations
116 
118  ComplexMatrix& insert (const RowVector& a,
122  ComplexMatrix& insert (const DiagMatrix& a,
124 
133 
134  ComplexMatrix& fill (double val);
135  ComplexMatrix& fill (const Complex& val);
136  ComplexMatrix& fill (double val,
139  ComplexMatrix& fill (const Complex& val,
142 
143  ComplexMatrix append (const Matrix& a) const;
144  ComplexMatrix append (const RowVector& a) const;
145  ComplexMatrix append (const ColumnVector& a) const;
146  ComplexMatrix append (const DiagMatrix& a) const;
147 
148  ComplexMatrix append (const ComplexMatrix& a) const;
149  ComplexMatrix append (const ComplexRowVector& a) const;
150  ComplexMatrix append (const ComplexColumnVector& a) const;
151  ComplexMatrix append (const ComplexDiagMatrix& a) const;
152 
153  ComplexMatrix stack (const Matrix& a) const;
154  ComplexMatrix stack (const RowVector& a) const;
155  ComplexMatrix stack (const ColumnVector& a) const;
156  ComplexMatrix stack (const DiagMatrix& a) const;
157 
158  ComplexMatrix stack (const ComplexMatrix& a) const;
159  ComplexMatrix stack (const ComplexRowVector& a) const;
160  ComplexMatrix stack (const ComplexColumnVector& a) const;
161  ComplexMatrix stack (const ComplexDiagMatrix& a) const;
162 
166  { return MArray<Complex>::transpose (); }
167 
168  friend OCTAVE_API ComplexMatrix conj (const ComplexMatrix& a);
169 
170  // resize is the destructive equivalent for this one
171 
173  octave_idx_type r2, octave_idx_type c2) const;
174 
176  octave_idx_type nr, octave_idx_type nc) const;
177 
178  // extract row or column i.
179 
181 
183 
185  const Complex& rfv = Complex (0))
186  {
187  MArray<Complex>::resize (dim_vector (nr, nc), rfv);
188  }
189 
190 private:
192  double& rcon, bool force, bool calc_cond) const;
193 
195  double& rcon, bool force, bool calc_cond) const;
196 
197 public:
198  ComplexMatrix inverse (void) const;
199  ComplexMatrix inverse (octave_idx_type& info) const;
200  ComplexMatrix inverse (octave_idx_type& info, double& rcon,
201  bool force = false, bool calc_cond = true) const;
202 
203  ComplexMatrix inverse (MatrixType &mattype) const;
204  ComplexMatrix inverse (MatrixType &mattype, octave_idx_type& info) const;
206  double& rcon, bool force = false,
207  bool calc_cond = true) const;
208 
209  ComplexMatrix pseudo_inverse (double tol = 0.0) const;
210 
211  ComplexMatrix fourier (void) const;
212  ComplexMatrix ifourier (void) const;
213 
214  ComplexMatrix fourier2d (void) const;
215  ComplexMatrix ifourier2d (void) const;
216 
217  ComplexDET determinant (void) const;
218  ComplexDET determinant (octave_idx_type& info) const;
219  ComplexDET determinant (octave_idx_type& info, double& rcon,
220  bool calc_cond = true) const;
222  double& rcon, bool calc_cond = true) const;
223 
224  double rcond (void) const;
225  double rcond (MatrixType &mattype) const;
226 
227 private:
228  // Upper triangular matrix solvers
230  octave_idx_type& info, double& rcon,
231  solve_singularity_handler sing_handler,
232  bool calc_cond = false,
233  blas_trans_type transt = blas_no_trans) const;
234 
235  // Lower triangular matrix solvers
237  octave_idx_type& info, double& rcon,
238  solve_singularity_handler sing_handler,
239  bool calc_cond = false,
240  blas_trans_type transt = blas_no_trans) const;
241 
242  // Full matrix solvers (umfpack/cholesky)
244  octave_idx_type& info, double& rcon,
245  solve_singularity_handler sing_handler,
246  bool calc_cond = false) const;
247 
248 public:
249  // Generic interface to solver with no probing of type
250  ComplexMatrix solve (MatrixType &typ, const Matrix& b) const;
251  ComplexMatrix solve (MatrixType &typ, const Matrix& b,
252  octave_idx_type& info) const;
253  ComplexMatrix solve (MatrixType &typ, const Matrix& b,
254  octave_idx_type& info, double& rcon) const;
255  ComplexMatrix solve (MatrixType &typ, const Matrix& b, octave_idx_type& info,
256  double& rcon, solve_singularity_handler sing_handler,
257  bool singular_fallback = true,
258  blas_trans_type transt = blas_no_trans) const;
259 
260  ComplexMatrix solve (MatrixType &typ, const ComplexMatrix& b) const;
262  octave_idx_type& info) const;
264  octave_idx_type& info, double& rcon) const;
266  octave_idx_type& info, double& rcon,
267  solve_singularity_handler sing_handler,
268  bool singular_fallback = true,
269  blas_trans_type transt = blas_no_trans) const;
270 
271  ComplexColumnVector solve (MatrixType &typ, const ColumnVector& b) const;
273  octave_idx_type& info) const;
275  octave_idx_type& info, double& rcon) const;
277  octave_idx_type& info, double& rcon,
278  solve_singularity_handler sing_handler,
279  blas_trans_type transt = blas_no_trans) const;
280 
282  const ComplexColumnVector& b) const;
284  octave_idx_type& info) const;
286  octave_idx_type& info, double& rcon) const;
288  octave_idx_type& info, double& rcon,
289  solve_singularity_handler sing_handler,
290  blas_trans_type transt = blas_no_trans) const;
291 
292  // Generic interface to solver with probing of type
293  ComplexMatrix solve (const Matrix& b) const;
294  ComplexMatrix solve (const Matrix& b, octave_idx_type& info) const;
295  ComplexMatrix solve (const Matrix& b, octave_idx_type& info,
296  double& rcon) const;
297  ComplexMatrix solve (const Matrix& b, octave_idx_type& info, double& rcon,
298  solve_singularity_handler sing_handler,
299  blas_trans_type transt = blas_no_trans) const;
300 
301  ComplexMatrix solve (const ComplexMatrix& b) const;
302  ComplexMatrix solve (const ComplexMatrix& b, octave_idx_type& info) const;
304  double& rcon) const;
306  double& rcon,
307  solve_singularity_handler sing_handler,
308  blas_trans_type transt = blas_no_trans) const;
309 
310  ComplexColumnVector solve (const ColumnVector& b) const;
313  double& rcon) const;
315  double& rcon,
316  solve_singularity_handler sing_handler,
317  blas_trans_type transt = blas_no_trans) const;
318 
321  octave_idx_type& info) const;
323  octave_idx_type& info,
324  double& rcon) const;
326  octave_idx_type& info,
327  double& rcon,
328  solve_singularity_handler sing_handler,
329  blas_trans_type transt = blas_no_trans) const;
330 
331  ComplexMatrix lssolve (const Matrix& b) const;
332  ComplexMatrix lssolve (const Matrix& b, octave_idx_type& info) const;
334  octave_idx_type& rank) const;
336  octave_idx_type& rank, double& rcon) const;
337 
338  ComplexMatrix lssolve (const ComplexMatrix& b) const;
339  ComplexMatrix lssolve (const ComplexMatrix& b, octave_idx_type& info) const;
341  octave_idx_type& rank) const;
343  octave_idx_type& rank, double& rcon) const;
344 
345  ComplexColumnVector lssolve (const ColumnVector& b) const;
347  octave_idx_type& info) const;
349  octave_idx_type& rank) const;
351  octave_idx_type& rank, double& rcon) const;
352 
355  octave_idx_type& info) const;
357  octave_idx_type& info,
358  octave_idx_type& rank) const;
360  octave_idx_type& info,
361  octave_idx_type& rank, double& rcon) const;
362 
363  // matrix by diagonal matrix -> matrix operations
364 
367 
370 
371  // matrix by matrix -> matrix operations
372 
375 
376  // other operations
377 
378  boolMatrix all (int dim = -1) const;
379  boolMatrix any (int dim = -1) const;
380 
381  ComplexMatrix cumprod (int dim = -1) const;
382  ComplexMatrix cumsum (int dim = -1) const;
383  ComplexMatrix prod (int dim = -1) const;
384  ComplexMatrix sum (int dim = -1) const;
385  ComplexMatrix sumsq (int dim = -1) const;
386  Matrix abs (void) const;
387 
388  ComplexMatrix diag (octave_idx_type k = 0) const;
389 
391 
392  bool row_is_real_only (octave_idx_type) const;
394 
395  ComplexColumnVector row_min (void) const;
396  ComplexColumnVector row_max (void) const;
397 
400 
401  ComplexRowVector column_min (void) const;
402  ComplexRowVector column_max (void) const;
403 
406 
407  // i/o
408 
409  friend OCTAVE_API std::ostream& operator << (std::ostream& os,
410  const ComplexMatrix& a);
411  friend OCTAVE_API std::istream& operator >> (std::istream& is,
412  ComplexMatrix& a);
413 };
414 
415 extern OCTAVE_API ComplexMatrix conj (const ComplexMatrix& a);
416 
417 // column vector by row vector -> matrix operations
418 
419 extern OCTAVE_API ComplexMatrix
421 
422 extern OCTAVE_API ComplexMatrix
424 
425 extern OCTAVE_API ComplexMatrix
427 
428 extern OCTAVE_API ComplexMatrix
429 Givens (const Complex&, const Complex&);
430 
431 extern OCTAVE_API ComplexMatrix
432 Sylvester (const ComplexMatrix&, const ComplexMatrix&, const ComplexMatrix&);
433 
434 extern OCTAVE_API ComplexMatrix
435 xgemm (const ComplexMatrix& a, const ComplexMatrix& b,
437  blas_trans_type transb = blas_no_trans);
438 
439 extern OCTAVE_API ComplexMatrix operator * (const Matrix&,
440  const ComplexMatrix&);
441 extern OCTAVE_API ComplexMatrix operator * (const ComplexMatrix&,
442  const Matrix&);
443 extern OCTAVE_API ComplexMatrix operator * (const ComplexMatrix&,
444  const ComplexMatrix&);
445 
446 extern OCTAVE_API ComplexMatrix min (const Complex& c, const ComplexMatrix& m);
447 extern OCTAVE_API ComplexMatrix min (const ComplexMatrix& m, const Complex& c);
448 extern OCTAVE_API ComplexMatrix min (const ComplexMatrix& a,
449  const ComplexMatrix& b);
450 
451 extern OCTAVE_API ComplexMatrix max (const Complex& c, const ComplexMatrix& m);
452 extern OCTAVE_API ComplexMatrix max (const ComplexMatrix& m, const Complex& c);
453 extern OCTAVE_API ComplexMatrix max (const ComplexMatrix& a,
454  const ComplexMatrix& b);
455 
456 extern OCTAVE_API ComplexMatrix linspace (const ComplexColumnVector& x1,
457  const ComplexColumnVector& x2,
458  octave_idx_type n);
459 
462 
463 SM_CMP_OP_DECLS (Complex, ComplexMatrix, OCTAVE_API)
464 SM_BOOL_OP_DECLS (Complex, ComplexMatrix, OCTAVE_API)
465 
466 MM_CMP_OP_DECLS (ComplexMatrix, ComplexMatrix, OCTAVE_API)
467 MM_BOOL_OP_DECLS (ComplexMatrix, ComplexMatrix, OCTAVE_API)
468 
469 MARRAY_FORWARD_DEFS (MArray, ComplexMatrix, Complex)
470 
471 #endif
Array< Complex > as_matrix(void) const
Return the array as a matrix.
Definition: Array.h:387
ComplexMatrix complex_matrix_type
Definition: CMatrix.h:51
ComplexMatrix stack(const Matrix &a) const
Definition: CMatrix.cc:558
Complex complex_elt_type
Definition: CMatrix.h:57
ComplexMatrix ifourier(void) const
Definition: CMatrix.cc:1009
ComplexRowVector row_vector_type
Definition: CMatrix.h:45
ComplexDiagMatrix complex_diag_matrix_type
Definition: CMatrix.h:54
OCTAVE_EXPORT octave_value_list column
Definition: sparse.cc:123
ComplexDET determinant(void) const
Definition: CMatrix.cc:1298
ColumnVector real_column_vector_type
Definition: CMatrix.h:47
bool operator!=(const dim_vector &a, const dim_vector &b)
Definition: dim-vector.h:567
std::istream & operator>>(std::istream &is, SparseBoolMatrix &a)
Definition: boolSparse.cc:279
ComplexMatrix inverse(void) const
Definition: CMatrix.cc:717
identity matrix If supplied two scalar respectively For allows like xample val
Definition: data.cc:5068
OCTAVE_API ComplexMatrix linspace(const ComplexColumnVector &x1, const ComplexColumnVector &x2, octave_idx_type n)
Definition: CMatrix.cc:3678
ComplexMatrix finverse(MatrixType &mattype, octave_idx_type &info, double &rcon, bool force, bool calc_cond) const
Definition: CMatrix.cc:812
ComplexMatrix(const dim_vector &dv, const Complex &val)
Definition: CMatrix.h:71
for large enough k
Definition: lu.cc:606
ComplexMatrix(octave_idx_type r, octave_idx_type c)
Definition: CMatrix.h:63
MArray< T > transpose(void) const
Definition: MArray.h:103
DiagMatrix real_diag_matrix_type
Definition: CMatrix.h:53
bool column_is_real_only(octave_idx_type) const
Definition: CMatrix.cc:2917
void(* solve_singularity_handler)(double rcon)
Definition: CMatrix.h:59
Template for N-dimensional array classes with like-type math operators.
Definition: MArray.h:32
#define SM_CMP_OP_DECLS(S, M, API)
Definition: mx-op-decl.h:114
ComplexMatrix tinverse(MatrixType &mattype, octave_idx_type &info, double &rcon, bool force, bool calc_cond) const
Definition: CMatrix.cc:757
OCTAVE_API ComplexMatrix Sylvester(const ComplexMatrix &, const ComplexMatrix &, const ComplexMatrix &)
Definition: CMatrix.cc:3298
ComplexMatrix operator-=(ComplexMatrix &x, const Complex &y)
Definition: CMatrix.h:469
#define MARRAY_FORWARD_DEFS(B, R, T)
Definition: MArray.h:126
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:3396
ComplexMatrix prod(int dim=-1) const
Definition: CMatrix.cc:2856
ComplexRowVector column_min(void) const
Definition: CMatrix.cc:3086
ComplexMatrix fsolve(MatrixType &typ, const ComplexMatrix &b, octave_idx_type &info, double &rcon, solve_singularity_handler sing_handler, bool calc_cond=false) const
Definition: CMatrix.cc:1816
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:398
double rcond(void) const
Definition: CMatrix.cc:1459
ComplexMatrix cumprod(int dim=-1) const
Definition: CMatrix.cc:2844
ComplexMatrix hermitian(void) const
Definition: CMatrix.h:163
double real_elt_type
Definition: CMatrix.h:56
ComplexMatrix cumsum(int dim=-1) const
Definition: CMatrix.cc:2850
bool is_hermitian(void) const
Definition: CMatrix.cc:177
ComplexMatrix(const dim_vector &dv)
Definition: CMatrix.h:69
#define SM_BOOL_OP_DECLS(S, M, API)
Definition: mx-op-decl.h:122
nd deftypefn *octave_map m
Definition: ov-struct.cc:2058
boolMatrix all(int dim=-1) const
Definition: CMatrix.cc:2832
Definition: DET.h:33
ComplexMatrix(const MArray< U > &a)
Definition: CMatrix.h:77
#define MM_CMP_OP_DECLS(M1, M2, API)
Definition: mx-op-decl.h:139
bool row_is_real_only(octave_idx_type) const
Definition: CMatrix.cc:2898
#define MM_BOOL_OP_DECLS(M1, M2, API)
Definition: mx-op-decl.h:147
void resize(const dim_vector &dv, const T &rfv)
Definition: Array.cc:1028
ComplexColumnVector row_min(void) const
Definition: CMatrix.cc:2936
bool append
Definition: load-save.cc:1582
ComplexMatrix solve(MatrixType &typ, const Matrix &b) const
Definition: CMatrix.cc:2010
static M ltsolve(const SM &L, const ColumnVector &Q, const M &m)
Definition: eigs-base.cc:79
ComplexMatrix fourier(void) const
Definition: CMatrix.cc:980
ComplexMatrix sumsq(int dim=-1) const
Definition: CMatrix.cc:2868
ComplexColumnVector row_max(void) const
Definition: CMatrix.cc:3011
Definition: dMatrix.h:37
ComplexMatrix transpose(void) const
Definition: CMatrix.h:165
OCTAVE_API ComplexMatrix Givens(const Complex &, const Complex &)
Definition: CMatrix.cc:3276
the sparsity preserving column transformation such that that defines the pivoting threshold can be given in which case it defines the c
Definition: lu.cc:138
OCTAVE_API ComplexMatrix min(const Complex &c, const ComplexMatrix &m)
Definition: CMatrix.cc:3531
ComplexMatrix & insert(const Matrix &a, octave_idx_type r, octave_idx_type c)
Definition: CMatrix.cc:198
MArray< T > hermitian(T(*fcn)(const T &)=0) const
Definition: MArray.h:106
bool operator==(const dim_vector &a, const dim_vector &b)
Definition: dim-vector.h:538
#define MS_CMP_OP_DECLS(M, S, API)
Definition: mx-op-decl.h:89
ComplexMatrix(const ComplexMatrix &a)
Definition: CMatrix.h:74
ComplexMatrix pseudo_inverse(double tol=0.0) const
Definition: CMatrix.cc:936
N Dimensional Array with copy-on-write semantics.
Definition: Array.h:126
ComplexRowVector column_max(void) const
Definition: CMatrix.cc:3161
void resize(octave_idx_type nr, octave_idx_type nc, const Complex &rfv=Complex(0))
Definition: CMatrix.h:184
=val(i)}if ode{val(i)}occurs in table i
Definition: lookup.cc:239
OCTAVE_EXPORT octave_value_list return the value of the option it must match the dimension of the state and the relative tolerance must also be a vector of the same length tem it must match the dimension of the state and the absolute tolerance must also be a vector of the same length The local error test applied at each integration step is xample roup abs(local error in x(i))<
OCTAVE_API ComplexMatrix operator*(const ColumnVector &a, const ComplexRowVector &b)
Definition: CMatrix.cc:2673
template OCTAVE_API std::ostream & operator<<(std::ostream &, const Array< bool > &)
ComplexColumnVector column_vector_type
Definition: CMatrix.h:44
RowVector real_row_vector_type
Definition: CMatrix.h:48
OCTAVE_API ComplexMatrix conj(const ComplexMatrix &a)
Definition: CMatrix.cc:678
ComplexMatrix(octave_idx_type r, octave_idx_type c, const Complex &val)
Definition: CMatrix.h:66
#define MS_BOOL_OP_DECLS(M, S, API)
Definition: mx-op-decl.h:97
b
Definition: cellfun.cc:398
ComplexMatrix sum(int dim=-1) const
Definition: CMatrix.cc:2862
static M utsolve(const SM &U, const ColumnVector &Q, const M &m)
Definition: eigs-base.cc:106
ComplexMatrix(void)
Definition: CMatrix.h:61
ComplexMatrix & fill(double val)
Definition: CMatrix.cc:350
ComplexMatrix ifourier2d(void) const
Definition: CMatrix.cc:1052
OCTAVE_API ComplexMatrix max(const Complex &c, const ComplexMatrix &m)
Definition: CMatrix.cc:3603
blas_trans_type
Definition: mx-defs.h:103
ComplexMatrix diag(octave_idx_type k=0) const
Definition: CMatrix.cc:2880
ComplexMatrix(const Array< U > &a)
Definition: CMatrix.h:80
std::complex< double > Complex
Definition: oct-cmplx.h:31
write the output to stdout if nargout is
Definition: load-save.cc:1576
Vector representing the dimensions (size) of an Array.
Definition: dim-vector.h:87
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:1491
ComplexMatrix lssolve(const Matrix &b) const
Definition: CMatrix.cc:2296
ComplexMatrix extract_n(octave_idx_type r1, octave_idx_type c1, octave_idx_type nr, octave_idx_type nc) const
Definition: CMatrix.cc:696
dim_vector dv
Definition: sub2ind.cc:263
ComplexMatrix extract(octave_idx_type r1, octave_idx_type c1, octave_idx_type r2, octave_idx_type c2) const
Definition: CMatrix.cc:686
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
Array< Complex > index(const idx_vector &i) const
Indexing without resizing.
ComplexMatrix fourier2d(void) const
Definition: CMatrix.cc:1038
Matrix real_matrix_type
Definition: CMatrix.h:50
ComplexMatrix operator+=(ComplexMatrix &x, const Complex &y)
Definition: CMatrix.h:469