Mercurial > octave
diff src/ov-cx-sparse.cc @ 5903:11bb9bf343a0
[project @ 2006-07-26 03:36:33 by jwe]
author | jwe |
---|---|
date | Wed, 26 Jul 2006 03:36:33 +0000 |
parents | c20eb7330d13 |
children | c68896f193e3 |
line wrap: on
line diff
--- a/src/ov-cx-sparse.cc Tue Jul 25 19:56:00 2006 +0000 +++ b/src/ov-cx-sparse.cc Wed Jul 26 03:36:33 2006 +0000 @@ -762,8 +762,26 @@ mxArray * octave_sparse_complex_matrix::as_mxArray (void) const { - // FIXME - return 0; + int nz = nzmax (); + mxArray *retval = new mxArray (mxDOUBLE_CLASS, rows (), columns (), + nz, mxCOMPLEX); + double *pr = static_cast<double *> (retval->get_data ()); + double *pi = static_cast<double *> (retval->get_imag_data ()); + int *ir = retval->get_ir (); + int *jc = retval->get_jc (); + + for (int i = 0; i < nz; i++) + { + Complex val = matrix.data(i); + pr[i] = real (val); + pi[i] = imag (val); + ir[i] = matrix.ridx(i); + } + + for (int i = 0; i < columns() + 1; i++) + jc[i] = matrix.cidx(i); + + return retval; } /*