Mercurial > octave-nkf
comparison liboctave/CDiagMatrix.cc @ 8840:c690e3772583
support diagonal matrices in pinv
author | Jaroslav Hajek <highegg@gmail.com> |
---|---|
date | Mon, 23 Feb 2009 14:54:56 +0100 |
parents | 20dfb885f877 |
children | eb63fbe60fab |
comparison
equal
deleted
inserted
replaced
8839:fcba62cc4549 | 8840:c690e3772583 |
---|---|
380 info = -1; | 380 info = -1; |
381 return *this; | 381 return *this; |
382 } | 382 } |
383 else | 383 else |
384 retval.elem (i, i) = 1.0 / elem (i, i); | 384 retval.elem (i, i) = 1.0 / elem (i, i); |
385 } | |
386 | |
387 return retval; | |
388 } | |
389 | |
390 ComplexDiagMatrix | |
391 ComplexDiagMatrix::pseudo_inverse (void) const | |
392 { | |
393 octave_idx_type r = rows (); | |
394 octave_idx_type c = cols (); | |
395 octave_idx_type len = length (); | |
396 | |
397 ComplexDiagMatrix retval (c, r); | |
398 | |
399 for (octave_idx_type i = 0; i < len; i++) | |
400 { | |
401 if (elem (i, i) != 0.0) | |
402 retval.elem (i, i) = 1.0 / elem (i, i); | |
403 else | |
404 retval.elem (i, i) = 0.0; | |
385 } | 405 } |
386 | 406 |
387 return retval; | 407 return retval; |
388 } | 408 } |
389 | 409 |