Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00011
00012 #include "fvar.hpp"
00013
00014
00015
00016 #ifdef __TURBOC__
00017 #pragma hdrstop
00018 #include <iostream.h>
00019 #include <iomanip.h>
00020 #include <fstream.h>
00021 #define __USE_IOSTREAM__
00022 #endif
00023
00024 #ifdef __ZTC__
00025 #include <iostream.hpp>
00026 #include <iomanip.hpp>
00027 #include <fstream.hpp>
00028 #define __USE_IOSTREAM__
00029 #endif
00030
00031 #include <string.h>
00032
00037 ostream& operator<<(const ostream& _ostr, const lvector& z)
00038 {
00039 ostream & ostr = (ostream&) _ostr;
00040 z.write_on(ostr);
00041 return ostr;
00042 }
00043
00048 void lvector::write_on(const ostream& _s) const
00049 {
00050 ostream& s = (ostream&)_s;
00051 #ifdef __USE_IOSTREAM__
00052 using std::streamsize;
00053 streamsize new_w = s.width();
00054 streamsize new_p = s.precision();
00055 #if !defined(__cplusplus)
00056 long new_form = s.flags();
00057 #else
00058 ios::fmtflags new_form = s.flags();
00059 #endif
00060 char new_fill = s.fill();
00061 #endif
00062 for (int i=indexmin(); i <= indexmax(); i++)
00063 {
00064 #ifdef __USE_IOSTREAM__
00065 s.width(0);
00066 s << " ";
00067 s.width(new_w);
00068 s.precision(new_p);
00069 s.flags(new_form);
00070 s.fill(new_fill);
00071 s << (*this)[i];
00072
00073
00074
00075
00076
00077
00078
00079 #else
00080 s << " " << (*this)[i];
00081
00082
00083
00084
00085
00086
00087
00088 #endif
00089 }
00090 }
00091
00096 istream& operator>>(const istream& _istr, const lvector& _z)
00097 {
00098 ADUNCONST(lvector,z)
00099 istream & istr = (istream&) _istr;
00100 z.read_from(istr);
00101
00102 return istr;
00103 }
00104
00109 void lvector::read_from(const istream& _s)
00110 {
00111 istream& s=(istream&) _s;
00112 int n = indexmax() - indexmin() + 1;
00113 AD_LONG_INT * p = v + indexmin();
00114
00115 for (int i=1; i <= n; i++)
00116 {
00117 s >> *(p++);
00118 }
00119 }
00120