00001 /* 00002 * $Id$ 00003 * 00004 * Author: David Fournier 00005 * Copyright (c) 2008-2012 Regents of the University of California 00006 */ 00011 // file: fvara_io.cpp 00012 00013 // i/o operations for class fvar_arry 00014 00015 #include "fvar.hpp" 00016 00017 #ifdef __TURBOC__ 00018 #pragma hdrstop 00019 #include <iostream.h> 00020 #include <iomanip.h> 00021 #include <fstream.h> 00022 #define __USE_IOSTREAM__ 00023 #endif 00024 00025 #ifdef __ZTC__ 00026 #include <iostream.hpp> 00027 #include <iomanip.hpp> 00028 #include <fstream.hpp> 00029 #define __USE_IOSTREAM__ 00030 #endif 00031 00032 00033 #ifdef __USE_IOSTREAM__ 00034 00039 uistream& operator>>(const uistream& istr, const dvar_vector& _z) 00040 { 00041 ADUNCONST(dvar_vector,z) 00042 if (allocated(z)) 00043 z.read_from(istr); 00044 return (uistream&) istr; 00045 } 00046 00051 void dvar_vector::read_from(const uistream& _s) 00052 { 00053 if (allocated(*this)) 00054 { 00055 uistream& s = (uistream&) _s; 00056 int n = indexmax() - indexmin() + 1; 00057 double_and_int * p = va + indexmin(); 00058 00059 for (int i=1; i <= n; i++) 00060 { 00061 s >> (p++)->x; 00062 } 00063 } 00064 } 00065 00070 uostream& operator<<(const uostream& ostr, const dvar_vector& z) 00071 { 00072 if (allocated(z)) 00073 z.write_on(ostr); 00074 return (uostream&) ostr; 00075 } 00076 00081 void dvar_vector::write_on(const uostream& _s) const 00082 { 00083 if (allocated(*this)) 00084 { 00085 uostream& s = (uostream&) _s; 00086 int n = indexmax() - indexmin() + 1; 00087 double_and_int * p = va + indexmin(); 00088 00089 for (int i=1; i <= n; i++) 00090 { 00091 s << (p++)->x; 00092 } 00093 } 00094 } 00095 #endif
Generated on Tue Mar 8 2016 19:51:34 for ADMB Documentation by 1.8.0 |