# HG changeset patch # User jwe # Date 1156223622 0 # Node ID b2167e370f82063710c1f29ad397c454d9860095 # Parent 2b2e5a937c599e74c4a1865740eddb65e9a95957 [project @ 2006-08-22 05:13:42 by jwe] diff -r 2b2e5a937c59 -r b2167e370f82 src/ChangeLog --- a/src/ChangeLog Tue Aug 22 04:42:36 2006 +0000 +++ b/src/ChangeLog Tue Aug 22 05:13:42 2006 +0000 @@ -1,3 +1,9 @@ +2006-08-22 John W. Eaton + + * ls-oct-ascii.cc: Increase default value of save_precision to 16. + + * ls-mat-ascii.cc (save_mat5_ascii_data): Use scientific format. + 2006-08-21 John W. Eaton * ls-mat5.cc (read_mat5_binary_data, read_mat5_integer_data, diff -r 2b2e5a937c59 -r b2167e370f82 src/ls-mat-ascii.cc --- a/src/ls-mat-ascii.cc Tue Aug 22 04:42:36 2006 +0000 +++ b/src/ls-mat-ascii.cc Tue Aug 22 05:13:42 2006 +0000 @@ -334,9 +334,6 @@ { bool success = true; - long old_precision = os.precision (); - os.precision (precision); - if (val.is_complex_type ()) warning ("save: omitting imaginary part for ASCII file"); @@ -349,9 +346,20 @@ error_state = 0; } else - os << m; + { + long old_precision = os.precision (); + + os.precision (precision); - os.precision (old_precision); + std::ios::fmtflags oflags + = os.flags (static_cast (std::ios::scientific)); + + os << m; + + os.flags (oflags); + + os.precision (old_precision); + } return (os && success); } diff -r 2b2e5a937c59 -r b2167e370f82 src/ls-oct-ascii.cc --- a/src/ls-oct-ascii.cc Tue Aug 22 04:42:36 2006 +0000 +++ b/src/ls-oct-ascii.cc Tue Aug 22 05:13:42 2006 +0000 @@ -68,7 +68,7 @@ #include "ls-oct-ascii.h" // The number of decimal digits to use when writing ascii data. -static int Vsave_precision = 15; +static int Vsave_precision = 16; // Functions for reading ascii data. @@ -357,15 +357,9 @@ { bool success = true; - if (! precision) - precision = Vsave_precision; - if (! name.empty ()) os << "# name: " << name << "\n"; - long old_precision = os.precision (); - os.precision (precision); - octave_value val = val_arg; if (mark_as_global) @@ -373,7 +367,13 @@ else os << "# type: " << val.type_name() << "\n"; - success = val . save_ascii(os, infnan_warned, strip_nan_and_inf); + if (! precision) + precision = Vsave_precision; + + long old_precision = os.precision (); + os.precision (precision); + + success = val . save_ascii (os, infnan_warned, strip_nan_and_inf); os.precision (old_precision);