Mercurial > octave-nkf
diff src/ov-cx-diag.cc @ 8834:8dd69187c4a2
specialize sqrt for diagonal matrices
author | Jaroslav Hajek <highegg@gmail.com> |
---|---|
date | Fri, 20 Feb 2009 21:49:26 +0100 |
parents | d95282fa0579 |
children | eb63fbe60fab |
line wrap: on
line diff
--- a/src/ov-cx-diag.cc Fri Feb 20 15:23:47 2009 -0500 +++ b/src/ov-cx-diag.cc Fri Feb 20 21:49:26 2009 +0100 @@ -159,6 +159,21 @@ return ::imag (matrix); } +octave_value +octave_complex_diag_matrix::sqrt (void) const +{ + octave_value retval; + + static ComplexNDArray::cmapper csqrt = std::sqrt; + + ComplexColumnVector dvec = matrix.diag (); + retval = ComplexDiagMatrix (dvec.map (csqrt)); + + retval.resize (dims ()); + + return retval; +} + bool octave_complex_diag_matrix::save_binary (std::ostream& os, bool& save_as_floats) {