00001 #include <fstream>
00002 #include <algorithm>
00003 #include <CFatalException.h>
00004 #include "CLevmarConf.h"
00005 using namespace std;
00006 void CLevmarConf::GetData(string filename)
00007 {
00008 ifstream infile;
00009 infile.open(filename.c_str());
00010 infile.peek();
00011 if (!infile)
00012 throw CFatalException("No Configurationfile found !");
00013 GetData(infile);infile.close();
00014 }
00015
00016 void CLevmarConf::GetData(std::ifstream &instream)
00017 {
00018 CLevmarConfLexer lexer(instream);
00019 CLevmarConfParser parser(lexer);
00020 parser.configfile();
00021 maxiter= parser.maxiter;
00022 mode= parser.mode;
00023 mtfit= parser.mtfit;
00024 mtinputdata= parser.mtinputdata;
00025 recinputdata= parser.recinputdata;
00026 recmethod= parser.recmethod;
00027 rfabsveldata= parser.rfabsveldata;
00028 slowness= parser.slowness;
00029 omega= parser.omega;
00030 sigma= parser.sigma;
00031 shift= parser.shift;
00032 wlevel= parser.wlevel;
00033 poisson= parser.poisson;
00034 starttime= parser.starttime;
00035 endtime= parser.endtime;
00036 tensorerror= parser.tensorerror;
00037 phaseerror= parser.phaseerror;
00038 reserror= parser.reserror;
00039 recerror= parser.recerror;
00040 minres.assign(parser.minres.size(),0);
00041 copy(parser.minres.begin(),parser.minres.end(),minres.begin());
00042 maxres.assign(parser.maxres.size(),0);
00043 copy(parser.maxres.begin(),parser.maxres.end(),maxres.begin());
00044 startres.assign(parser.startres.size(),0);
00045 copy(parser.startres.begin(),parser.startres.end(),startres.begin());
00046 minthick.assign(parser.minthick.size(),0);
00047 copy(parser.minthick.begin(),parser.minthick.end(),minthick.begin());
00048 maxthick.assign(parser.maxthick.size(),0);
00049 copy(parser.maxthick.begin(),parser.maxthick.end(),maxthick.begin());
00050 startthick.assign(parser.startthick.size(),0);
00051 copy(parser.startthick.begin(),parser.startthick.end(),startthick.begin());
00052 minsvel.assign(parser.minsvel.size(),0);
00053 copy(parser.minsvel.begin(),parser.minsvel.end(),minsvel.begin());
00054 maxsvel.assign(parser.maxsvel.size(),0);
00055 copy(parser.maxsvel.begin(),parser.maxsvel.end(),maxsvel.begin());
00056 startsvel.assign(parser.startsvel.size(),0);
00057 copy(parser.startsvel.begin(),parser.startsvel.end(),startsvel.begin());
00058 weights.assign(parser.weights.size(),0);
00059 copy(parser.weights.begin(),parser.weights.end(),weights.begin());
00060 recweight= parser.recweight;
00061 absvelweight= parser.absvelweight;
00062 }
00063
00064 void CLevmarConf::WriteData(string filename)
00065 {
00066 ofstream confout(filename.c_str());
00067 WriteData(confout);}
00068
00069 void CLevmarConf::WriteData(std::ofstream &outstream)
00070 {
00071 outstream << "maxiter" << "=" ;
00072 outstream << maxiter << endl;
00073 outstream << "mode" << "=" ;
00074 outstream << mode << endl;
00075 outstream << "mtfit" << "=" ;
00076 outstream << mtfit << endl;
00077 outstream << "mtinputdata" << "=" ;
00078 outstream << mtinputdata << endl;
00079 outstream << "recinputdata" << "=" ;
00080 outstream << recinputdata << endl;
00081 outstream << "recmethod" << "=" ;
00082 outstream << recmethod << endl;
00083 outstream << "rfabsveldata" << "=" ;
00084 outstream << rfabsveldata << endl;
00085 outstream << "slowness" << "=" ;
00086 outstream << slowness << endl;
00087 outstream << "omega" << "=" ;
00088 outstream << omega << endl;
00089 outstream << "sigma" << "=" ;
00090 outstream << sigma << endl;
00091 outstream << "shift" << "=" ;
00092 outstream << shift << endl;
00093 outstream << "wlevel" << "=" ;
00094 outstream << wlevel << endl;
00095 outstream << "poisson" << "=" ;
00096 outstream << poisson << endl;
00097 outstream << "starttime" << "=" ;
00098 outstream << starttime << endl;
00099 outstream << "endtime" << "=" ;
00100 outstream << endtime << endl;
00101 outstream << "tensorerror" << "=" ;
00102 outstream << tensorerror << endl;
00103 outstream << "phaseerror" << "=" ;
00104 outstream << phaseerror << endl;
00105 outstream << "reserror" << "=" ;
00106 outstream << reserror << endl;
00107 outstream << "recerror" << "=" ;
00108 outstream << recerror << endl;
00109 outstream << "minres" << "=" ;
00110 for (size_t i = 0; i < minres.size(); ++i)
00111 outstream << minres.at(i) << " ";
00112 outstream << endl;
00113
00114 outstream << "maxres" << "=" ;
00115 for (size_t i = 0; i < maxres.size(); ++i)
00116 outstream << maxres.at(i) << " ";
00117 outstream << endl;
00118
00119 outstream << "startres" << "=" ;
00120 for (size_t i = 0; i < startres.size(); ++i)
00121 outstream << startres.at(i) << " ";
00122 outstream << endl;
00123
00124 outstream << "minthick" << "=" ;
00125 for (size_t i = 0; i < minthick.size(); ++i)
00126 outstream << minthick.at(i) << " ";
00127 outstream << endl;
00128
00129 outstream << "maxthick" << "=" ;
00130 for (size_t i = 0; i < maxthick.size(); ++i)
00131 outstream << maxthick.at(i) << " ";
00132 outstream << endl;
00133
00134 outstream << "startthick" << "=" ;
00135 for (size_t i = 0; i < startthick.size(); ++i)
00136 outstream << startthick.at(i) << " ";
00137 outstream << endl;
00138
00139 outstream << "minsvel" << "=" ;
00140 for (size_t i = 0; i < minsvel.size(); ++i)
00141 outstream << minsvel.at(i) << " ";
00142 outstream << endl;
00143
00144 outstream << "maxsvel" << "=" ;
00145 for (size_t i = 0; i < maxsvel.size(); ++i)
00146 outstream << maxsvel.at(i) << " ";
00147 outstream << endl;
00148
00149 outstream << "startsvel" << "=" ;
00150 for (size_t i = 0; i < startsvel.size(); ++i)
00151 outstream << startsvel.at(i) << " ";
00152 outstream << endl;
00153
00154 outstream << "weights" << "=" ;
00155 for (size_t i = 0; i < weights.size(); ++i)
00156 outstream << weights.at(i) << " ";
00157 outstream << endl;
00158
00159 outstream << "recweight" << "=" ;
00160 outstream << recweight << endl;
00161 outstream << "absvelweight" << "=" ;
00162 outstream << absvelweight << endl;
00163 }
00164