diff --git a/pub/src/curve.cpp b/pub/src/curve.cpp index 17606f170315163193d82bd43d9c0bddddec79d8..8a5f3b89471cea58ac91a7aa81a93feaf9154af7 100644 --- a/pub/src/curve.cpp +++ b/pub/src/curve.cpp @@ -1082,17 +1082,13 @@ void NCurveFile::IntegralProperty() if ( nz>=2 && (j+1)<fin->nJ() && fin->VC(j+1)->z[nz-2]!=fin->VC(j)->z[nz-2] ) { - cout << "DEB j="<<j<<", S: "<<S->z[0]<<"\n"; fout->V.push_back(S); newoutspec = true; } } if (savable) { fout->V.push_back(S); - cout << "DEB ultimo, S: "<<S->z[0]<<"\n"; NOlm::OloAdd( fout ); - for (uint j=0; j<fout->nJ(); j++) - cout << "DEB post j="<<j<<", Sz="<<fout->VS(j)->z[0]<<"\n"; } } fiter.reset(); diff --git a/pub/src/manip.cpp b/pub/src/manip.cpp index f0dc2f6ae85ac984d932d85b81aa9d3424b232f5..95053350f3dcd2dcb988c9547e330db0e6b11828 100644 --- a/pub/src/manip.cpp +++ b/pub/src/manip.cpp @@ -1017,8 +1017,6 @@ void NManip::FilMerge( const string& opts ) if (fin->ZCo[i] != fout->ZCo[i]) throw "different z"+strg(i)+" coordinate"; } - if ( add_zk ) - fout->ZCo.push_back( CCoord("number-of-input-file", "") ); // check RPar, and prepare move to z if they differ: fiter.reset(); @@ -1035,15 +1033,17 @@ void NManip::FilMerge( const string& opts ) if (fin->RPar[i].val != RPar[i].val ) RParDiff[i] = true; } + vector<CCoord>::iterator zinsert = fout->ZCo.begin(); for ( uint i=0; i<nR; ++i ) { if( RParDiff[i] ) - fout->ZCo.push_back( RPar[i].Co ); + fout->ZCo.insert( zinsert++, RPar[i].Co ); else fout->RPar.push_back( RPar[i] ); } - if ( !add_zk && !fout->ZCo.size() ) { - // fallback because there must be at least one z coordinate - fout->ZCo.push_back( CCoord("number-of-input-file", "") ); + if ( add_zk || !fout->ZCo.size() ) { + // there must be at least one z coordinate + fout->ZCo.insert( fout->ZCo.begin(), + CCoord("number-of-input-file", "") ); add_zk = true; } @@ -1097,11 +1097,12 @@ void NManip::FilMerge( const string& opts ) while ( (fin = fiter()) ) { for ( uint j=0; j<fin->nJ(); j++ ) { PZentry eout( fin->new_zentry(j) ); - if ( add_zk ) - eout->z.push_back( fiter.iteration() ); + vector<double>::iterator zinsert=eout->z.begin(); for ( uint i=0; i<nR; ++i ) if( RParDiff[i] ) - eout->z.push_back( fin->RPar[i].val ); + eout->z.insert( zinsert++, fin->RPar[i].val ); + if ( add_zk ) + eout->z.insert( eout->z.begin(), fiter.iteration() ); fout->V.push_back( eout ); } }