Mercurial > forge
changeset 1616:6465a2698450 octave-forge
complex save and load ascii
author | aadler |
---|---|
date | Mon, 02 Aug 2004 14:47:52 +0000 |
parents | 36b099028f44 |
children | 77896fc07ebf |
files | main/sparse/complex_sparse_ops.cc |
diffstat | 1 files changed, 21 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/main/sparse/complex_sparse_ops.cc Mon Aug 02 06:23:04 2004 +0000 +++ b/main/sparse/complex_sparse_ops.cc Mon Aug 02 14:47:52 2004 +0000 @@ -532,15 +532,13 @@ os << "# rows: " << Xnr << "\n"; os << "# columns: " << Xnc << "\n"; - os << "\n# sparse: vert-idx, horz-idx, value\n"; // add one to the printed indices to go from // zero-based to one-based arrays for (int j=0; j< Xnc; j++) { OCTAVE_QUIT; for (int i= cidxX[j]; i< cidxX[j+1]; i++) { - doublecomplex * dc= (doublecomplex *) &coefX[i]; - os << ridxX[i]+1 << " " << j+1 << " " - << dc->r << " " << dc->i << "\n"; + os << ridxX[i]+1 << " " << j+1 << " " + << coefX[i] << "\n"; } } @@ -550,8 +548,23 @@ bool octave_complex_sparse::load_ascii (std::istream& is) { - int mord, prim, mdims; bool success = true; + int nnz, cols, rows; + if ( extract_keyword (is, "nnz", nnz) && + extract_keyword (is, "rows", rows) && + extract_keyword (is, "columns", cols) ) { + ComplexMatrix tmp( nnz, 3); + is >> tmp; + ColumnVector ridxA= real( tmp.column(0) ); + ColumnVector cidxA= real( tmp.column(1) ); + ComplexColumnVector coefA= tmp.column(2); + X= assemble_sparse( cols, rows, coefA, ridxA, cidxA, 0); + } + else { + error("load: failed to load sparse value"); + success= false; + } + return success; } #endif @@ -1651,6 +1664,9 @@ /* * $Log$ + * Revision 1.27 2004/08/02 14:47:52 aadler + * complex save and load ascii + * * Revision 1.26 2004/07/27 20:56:44 aadler * first steps to concatenation working *