[Thplot-cvs] CVS: thplot/src/Data csvData.h,1.2,1.3 csvData.cpp,1.2,1.3
Status: Pre-Alpha
Brought to you by:
apeden
From: Tony P. <ap...@us...> - 2002-07-07 15:54:55
|
Update of /cvsroot/thplot/thplot/src/Data In directory usw-pr-cvs1:/tmp/cvs-serv32621 Modified Files: csvData.h csvData.cpp Log Message: Changed data structure from vector of vectors to vector of arrays for speed. The resulting improvement wasn't much. Index: csvData.h =================================================================== RCS file: /cvsroot/thplot/thplot/src/Data/csvData.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** csvData.h 4 Jul 2002 23:42:36 -0000 1.2 --- csvData.h 7 Jul 2002 15:54:52 -0000 1.3 *************** *** 49,53 **** int getNumPoints(int pidx) {if (NumData.size() > 0) return(NumData.size()); else return(0);} int getNumPoints(string name) { return NumData.size(); } ! int getNumParameters(void) {return(NumData[0].size());} double getStartTime(void) {if (NumData.size() >= 2) return(NumData[0][0]); else return(0);} double getEndTime(void) {if (NumData.size() >= 2) return(NumData[NumData.size()-1][0]); else return(0);} --- 49,53 ---- int getNumPoints(int pidx) {if (NumData.size() > 0) return(NumData.size()); else return(0);} int getNumPoints(string name) { return NumData.size(); } ! int getNumParameters(void) {return(names.size());} double getStartTime(void) {if (NumData.size() >= 2) return(NumData[0][0]); else return(0);} double getEndTime(void) {if (NumData.size() >= 2) return(NumData[NumData.size()-1][0]); else return(0);} *************** *** 66,77 **** std::vector<string> names; string data_str; ! typedef std::vector <double> Row; ! typedef std::vector <Row> DataType; DataType NumData; string buff_str; ifstream f; ! Row Max; ! Row Min; int StartIdx, EndIdx; --- 66,76 ---- std::vector<string> names; string data_str; ! typedef std::vector <double*> DataType; DataType NumData; string buff_str; ifstream f; ! std::vector<double> Max; ! std::vector<double> Min; int StartIdx, EndIdx; Index: csvData.cpp =================================================================== RCS file: /cvsroot/thplot/thplot/src/Data/csvData.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** csvData.cpp 4 Jul 2002 23:42:36 -0000 1.2 --- csvData.cpp 7 Jul 2002 15:54:52 -0000 1.3 *************** *** 81,84 **** --- 81,85 ---- int row=0, column=0; + int Ncolumns = names.size(); while (1) { *************** *** 86,90 **** getline(f, data_str); if(f.eof()) break; ! NumData.push_back(*(new Row())); end = 0; while (1) { --- 87,91 ---- getline(f, data_str); if(f.eof()) break; ! NumData.push_back(new double[Ncolumns]); end = 0; while (1) { *************** *** 97,115 **** end = data_str.size(); var = data_str.substr(start, end-start); ! NumData[row].push_back(atof(var.c_str())); ! //cout << row << ", " << column << endl; column++; break; } else { var = data_str.substr(start, end-start); ! NumData[row].push_back(atof(var.c_str())); ! //cout << row << ", " << column << endl; column++; end++; } ! if (column == count || column > 30000 ) break; } row++; - //if (row > 5 ) break; } --- 98,117 ---- end = data_str.size(); var = data_str.substr(start, end-start); ! if(!var.empty()) { ! NumData[row][column]=atof( var.c_str() ); ! } ! //cout << row << ", " << column << "::" << var << "::" << endl; column++; break; } else { var = data_str.substr(start, end-start); ! NumData[row][column]=atof( var.c_str() ); ! //cout << row << ", " << column << "::" << var << "::" << endl; column++; end++; } ! if (column == Ncolumns || column > 30000 ) break; } row++; } |