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
  *