comparison liboctave/array/CMatrix.cc @ 19425:385499581a5e

allow disabling of permutation and diagonal matrices * ov.cc (Vdisable_diagonal_matrix, Vdisable_permutation_matrix): New static variables. Use them in octave_value constructors to determine whether to create diagonal and permutation matrices. (Fdisable_diagonal_matrix, Fdisable_permutation_matrix): New functions. * octave.cc (maximum_braindamage): Disable permutation and diagonal matrices for --traditional option. * CMatrix.cc, CMatrix.h, dMatrix.cc, dMatrix.h, fCMatrix.cc, fCMatrix.h, fMatrix.cc, fMatrix.h: New conversion constructors. * basics.txi, diagperm.txi: Update docs for change.
author John W. Eaton <jwe@octave.org>
date Mon, 08 Dec 2014 10:14:00 -0500
parents fcd9e1198847
children a0c7001cf1a8
comparison
equal deleted inserted replaced
19424:68116bea38ba 19425:385499581a5e
287 { 287 {
288 for (octave_idx_type i = 0; i < a.length (); i++) 288 for (octave_idx_type i = 0; i < a.length (); i++)
289 elem (i, i) = a.elem (i, i); 289 elem (i, i) = a.elem (i, i);
290 } 290 }
291 291
292 ComplexMatrix::ComplexMatrix (const MDiagArray2<double>& a)
293 : ComplexNDArray (a.dims (), 0.0)
294 {
295 for (octave_idx_type i = 0; i < a.length (); i++)
296 elem (i, i) = a.elem (i, i);
297 }
298
299 ComplexMatrix::ComplexMatrix (const DiagArray2<double>& a)
300 : ComplexNDArray (a.dims (), 0.0)
301 {
302 for (octave_idx_type i = 0; i < a.length (); i++)
303 elem (i, i) = a.elem (i, i);
304 }
305
292 ComplexMatrix::ComplexMatrix (const ComplexRowVector& rv) 306 ComplexMatrix::ComplexMatrix (const ComplexRowVector& rv)
293 : ComplexNDArray (rv) 307 : ComplexNDArray (rv)
294 { 308 {
295 } 309 }
296 310
298 : ComplexNDArray (cv) 312 : ComplexNDArray (cv)
299 { 313 {
300 } 314 }
301 315
302 ComplexMatrix::ComplexMatrix (const ComplexDiagMatrix& a) 316 ComplexMatrix::ComplexMatrix (const ComplexDiagMatrix& a)
317 : ComplexNDArray (a.dims (), 0.0)
318 {
319 for (octave_idx_type i = 0; i < a.length (); i++)
320 elem (i, i) = a.elem (i, i);
321 }
322
323 ComplexMatrix::ComplexMatrix (const MDiagArray2<Complex>& a)
324 : ComplexNDArray (a.dims (), 0.0)
325 {
326 for (octave_idx_type i = 0; i < a.length (); i++)
327 elem (i, i) = a.elem (i, i);
328 }
329
330 ComplexMatrix::ComplexMatrix (const DiagArray2<Complex>& a)
303 : ComplexNDArray (a.dims (), 0.0) 331 : ComplexNDArray (a.dims (), 0.0)
304 { 332 {
305 for (octave_idx_type i = 0; i < a.length (); i++) 333 for (octave_idx_type i = 0; i < a.length (); i++)
306 elem (i, i) = a.elem (i, i); 334 elem (i, i) = a.elem (i, i);
307 } 335 }