comparison liboctave/dDiagMatrix.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
296 info = -1; 296 info = -1;
297 return *this; 297 return *this;
298 } 298 }
299 else 299 else
300 retval.elem (i, i) = 1.0 / elem (i, i); 300 retval.elem (i, i) = 1.0 / elem (i, i);
301 }
302
303 return retval;
304 }
305
306 DiagMatrix
307 DiagMatrix::pseudo_inverse (void) const
308 {
309 octave_idx_type r = rows ();
310 octave_idx_type c = cols ();
311 octave_idx_type len = length ();
312
313 DiagMatrix retval (c, r);
314
315 for (octave_idx_type i = 0; i < len; i++)
316 {
317 if (elem (i, i) != 0.0)
318 retval.elem (i, i) = 1.0 / elem (i, i);
319 else
320 retval.elem (i, i) = 0.0;
301 } 321 }
302 322
303 return retval; 323 return retval;
304 } 324 }
305 325