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 #ifndef OPT_LIB
00033 #include <cassert>
00034 #endif
00035
00036
00037
00038 #ifdef __USE_IOSTREAM__
00039
00044 uistream& operator>>(const uistream& _istr, const lvector& _z)
00045 {
00046 ADUNCONST(lvector,z)
00047 uistream & istr = (uistream&) _istr;
00048 z.read_from(istr);
00049
00050 return istr;
00051 }
00052
00057 void lvector::read_from(const uistream& _s)
00058 {
00059 ADUNCONST(uistream,s)
00060 char* p = (char*)(v + indexmin());
00061 #ifndef OPT_LIB
00062 assert(indexmax() >= indexmin());
00063 #endif
00064 int n = indexmax() - indexmin() + 1;
00065 n *= (int)sizeof(int);
00066 s.read(p, n);
00067 }
00068
00073 uostream& operator<<(const uostream& _ostr, const lvector& z)
00074 {
00075 uostream & ostr = (uostream&) _ostr;
00076 z.write_on(ostr);
00077
00078 return ostr;
00079 }
00080
00085 void lvector::write_on(const uostream& _s) const
00086 {
00087 ADUNCONST (uostream,s)
00088 char* p = (char*)(v + indexmin());
00089 #ifndef OPT_LIB
00090 assert(indexmax() >= indexmin());
00091 #endif
00092 int n = indexmax() - indexmin() + 1;
00093 n *= (int)sizeof(int);
00094 s.write(p, n);
00095 }
00096 #endif
00097