#include <CompatInversionReport.h>
QGpCompatibility::CompatInversionReport::CompatInversionReport | ( | bool | isWrite, |
QString | reportFile, | ||
QString | naInFile = QString::null , |
||
int | nModels = 0 |
||
) |
References _blockEll, _blockGoal, _blockOmegas, _blockParam, _currentDispersion, _currentEllipticity, _currentID, _currentIndex, _currentModel, _currentNAModel, _fileName, _headerBlocksCount, _maxDispOmegaCount, _maxEllOmegaCount, _n, _nd, _offsetTable, _paramAddresses, _ptrStart, _s, _trueN, _valid, _version, countModels(), CURRENT_VERSION, currentEllipticity(), FILE_TAG, Information, isRightFormat(), loadParamAddresses(), MAX_HEADER_BLOCKS_COUNT, MSG_ID, setNFromNaIn(), startReadingBlock(), TAG_LENGTH, TRACE, and writeHeader().
{ TRACE; // in case of I/O error these members should be correctly initialized _maxDispOmegaCount=0; _maxEllOmegaCount=0; _headerBlocksCount=4; _paramAddresses=0; _currentModel=0; _currentNAModel=0; _currentDispersion=0; _currentEllipticity=0; _ptrStart=0; _offsetTable=0; _trueN=0; QDir d; _fileName=d.absoluteFilePath(reportFile); QFile *f=new QFile(reportFile); if(isWrite) { if(!f->open(QIODevice::ReadWrite | QIODevice::Truncate)) { Message::critical(MSG_ID,"Inversion report", QString("file not found %1, or error writing to file"). arg(reportFile),Message::cancel()); _valid=false; return; } _s.setDevice(f); _nd=0; _currentID=0; _version=CURRENT_VERSION ; _blockParam=1; _blockOmegas=2; _blockGoal=3; _blockEll=4; // Add one more model in case of ellipticity if(!naInFile.isNull()) setNFromNaIn(naInFile); else _n=MAX_HEADER_BLOCKS_COUNT; _n+=nModels; if(_n<=0) { printf("No max number of models specified, setting it by default to 1000\n"); _n=1000; } _offsetTable=new qint64 [_n]; writeHeader(); _currentIndex=-1; } else { if(!f->open(QIODevice::ReadWrite)) { Message::critical(MSG_ID,"Inversion report", QString("file not found %1, or error writing to file"). arg(reportFile),Message::cancel()); _valid=false; return; } _s.setDevice(f); if(!isRightFormat()) { Message::critical(MSG_ID,"Inversion report", QString("Bad file tag for %1, should be %2"). arg(reportFile).arg(FILE_TAG),Message::cancel()); _valid=false; return; } _s.device()->seek(TAG_LENGTH); _s >> _n; _offsetTable=new qint64 [_n]; _trueN=countModels()+_headerBlocksCount; // Read the version, if block does not exist, it is version 0 if(startReadingBlock(0,Information)) { _s >> _version; if(_version>CURRENT_VERSION) { Message::critical(MSG_ID,"Inversion report", QString("Bad file version (current=%1): %2, %3"). arg(CURRENT_VERSION).arg(reportFile).arg(_version),Message::cancel()); _valid=false; return; } _blockParam=1; _blockOmegas=2; _blockGoal=3; _blockEll=4; } else { _version=0; _blockParam=0; _blockOmegas=1; _blockGoal=2; _blockEll=3; } if(!loadParamAddresses()) { _valid=false; return; } if(currentEllipticity()!=0) _headerBlocksCount++; _currentIndex=-1; } _valid=true; }
References _currentDispersion, _currentEllipticity, _currentModel, _currentNAModel, _offsetTable, _paramAddresses, _s, and TRACE.
{ TRACE; delete _s.device(); delete [] _paramAddresses; delete _currentModel; delete [] _currentNAModel; delete _currentDispersion; delete _currentEllipticity; delete [] _offsetTable; }
References _blockOmegas, _s, QGpCompatibility::CompatMultiModalData::dataToReport(), DispersionGoal, endWritingBlock(), Omegas, QGpCompatibility::CompatMultiModalCurves::rayleighModesCount(), startReadingBlock(), startWritingBlock(), and TRACE.
{ TRACE; // tests if omegas are entered if(!startReadingBlock(_blockOmegas,Omegas)) { printf("You must call addOmegas before calling addDispersionGoal\n"); return; } startWritingBlock(DispersionGoal); if(rms) { _s << rms->rayleighModesCount(); rms->dataToReport(_s); } endWritingBlock(); }
References _blockOmegas, _headerBlocksCount, _s, QGpCompatibility::CompatMultiModalData::dataToReport(), EllipticityGoal, endWritingBlock(), QGpCompatibility::CompatEllipticityData::f0ToReport(), Omegas, startReadingBlock(), startWritingBlock(), and TRACE.
{ TRACE; // tests if omegas are entered if(!startReadingBlock(_blockOmegas,Omegas)) { printf("You must call addOmegas before calling addDispersionGoal\n"); return; } startWritingBlock(EllipticityGoal); if(ell) { ell->dataToReport(_s); ell->f0ToReport(_s); _headerBlocksCount++; } endWritingBlock(); }
void QGpCompatibility::CompatInversionReport::addModel | ( | const Seismic1DModel * | model, |
float * | naModel, | ||
const CompatDispersion * | disp, | ||
double | cost, | ||
int | modelID = -1 |
||
) |
References _currentID, _s, endWritingBlock(), ModelDispersion, QGpCompatibility::CompatMultiModalCurves::refinesCount(), QGpCompatibility::CompatMultiModalCurves::refinesToReport(), setMaxOmegasCount(), startWritingBlock(), QGpCoreWave::Seismic1DModel::toStream(), TRACE, QGpCompatibility::CompatMultiModalCurves::valuesToReport(), and writeNAModel().
{ TRACE; // Write new model at the end of file if(startWritingBlock(ModelDispersion)) { if(modelID<0) { _s << _currentID; _currentID++; } else { if(modelID>=_currentID) _currentID=modelID+1; _s << modelID; } model->toStream(_s); _s << cost; writeNAModel(naModel); disp->valuesToReport(_s); disp->refinesToReport(_s); } else printf("Maximum number of models is reached, model not added\n"); endWritingBlock(); setMaxOmegasCount(disp->refinesCount(),0); }
void QGpCompatibility::CompatInversionReport::addModel | ( | const Seismic1DModel * | model, |
float * | naModel, | ||
const CompatDispersion * | disp, | ||
const CompatEllipticity * | ell, | ||
double | cost, | ||
int | modelID = -1 |
||
) |
References _currentID, _s, endWritingBlock(), ModelDispersion, QGpCompatibility::CompatMultiModalCurves::refinesCount(), QGpCompatibility::CompatMultiModalCurves::refinesToReport(), setMaxOmegasCount(), startWritingBlock(), QGpCoreWave::Seismic1DModel::toStream(), TRACE, QGpCompatibility::CompatMultiModalCurves::valuesToReport(), and writeNAModel().
{ TRACE; // Write new model at the end of file if(startWritingBlock(ModelDispersion)) { if(modelID<0) { _s << _currentID; _currentID++; } else { if(modelID>=_currentID) _currentID=modelID+1; _s << modelID; } model->toStream(_s); _s << cost; writeNAModel(naModel); disp->valuesToReport(_s); disp->refinesToReport(_s); ell->valuesToReport(_s); ell->refinesToReport(_s); } else printf("Maximum number of models is reached, model not added\n"); endWritingBlock(); setMaxOmegasCount(disp->refinesCount(),ell->refinesCount()); }
References _nd, _s, endWritingBlock(), Omegas, QGpCompatibility::CompatMultiModalFrequency::omegaToReport(), startWritingBlock(), and TRACE.
{ TRACE; // tests if parameters are entered (at least one) ASSERT(_nd); startWritingBlock(Omegas); omegas->omegaToReport(_s); endWritingBlock(); }
void QGpCompatibility::CompatInversionReport::addParameter | ( | paramID | which, |
int | layer | ||
) |
References _blockParam, _nd, _s, endWritingBlock(), startWritingBlock(), and TRACE.
{ TRACE; // Description of parameters: // - number of parameters (=nd) (initialized to 0 by writeHeader()) // for each parameter: // - (0=H, 1=Vs, 2=Vp, 3=Rho) [enum paramID] // - layer number // (Must be set in file "init_param.cpp") _nd++; if(startWritingBlock(_blockParam,Parameters)) { // update nd _s << _nd; // move to correct parameter _s.device()->seek((_nd-1)*2*sizeof(int)+_s.device()->pos()); // add informations on this parameter _s << which; _s << layer; } else printf("Error in writing the list of parameters to the inversion report\n"); endWritingBlock(); }
const char* QGpCompatibility::CompatInversionReport::className | ( | ) | [inline] |
{return "CompatInversionReport";}
References _headerBlocksCount, _n, _offsetTable, _s, _trueN, TAG_LENGTH, and TRACE.
Referenced by CompatInversionReport(), and main().
{ TRACE; if(_trueN<_n) { ASSERT (_offsetTable); int tmp; qint64 * it=_offsetTable+_trueN; _s.device()->seek(TAG_LENGTH+sizeof(int)*(_trueN+1)); for(int i=_trueN;i<_n;i++,it++) { _s >> tmp; *it=tmp; if(!*it) { _trueN=i; return _trueN-_headerBlocksCount; } } _trueN=_n; } return _trueN-_headerBlocksCount; }
double QGpCompatibility::CompatInversionReport::currentCost | ( | ) | [inline] |
Referenced by main().
{return _currentCost;}
References _currentDispersion, initCurrentDispersion(), and TRACE.
Referenced by DinverDCCore::DCReportBlock::writeNaViewer().
{ TRACE; if(!_currentDispersion) initCurrentDispersion(); return (CompatDispersion *)_currentDispersion; }
References _currentDispersion, _currentEllipticity, initCurrentDispersion(), and TRACE.
Referenced by CompatInversionReport(), and EllipticityPeakTargetWidget::loadReport().
{ TRACE; if(!_currentDispersion) initCurrentDispersion(); return _currentEllipticity; }
int QGpCompatibility::CompatInversionReport::currentID | ( | ) | [inline] |
{return _currentID;}
int QGpCompatibility::CompatInversionReport::currentLoadingIndex | ( | ) | [inline] |
{return _currentIndex;}
References _currentModel, loadModel(), and TRACE.
Referenced by DinverDCCore::DCReportBlock::writeNaViewer().
{ TRACE; if(!_currentModel) loadModel(0); return _currentModel; }
References _currentNAModel, loadModel(), and TRACE.
Referenced by outputModel().
{ TRACE; if(!_currentNAModel) loadModel(0); return _currentNAModel; }
int QGpCompatibility::CompatInversionReport::dimension | ( | ) | [inline] |
Referenced by outputModel().
{return _nd;}
References _n, _offsetTable, _ptrStart, _s, _trueN, flush(), TAG_LENGTH, and TRACE.
Referenced by QGpCompatibility::CompatAutocorrReport::addAutocorrGoal(), addDispersionGoal(), addEllipticityGoal(), QGpCompatibility::CompatAutocorrReport::addModel(), addModel(), addOmegas(), addParameter(), QGpCompatibility::CompatRefraReport::addRefraGoal(), QGpCompatibility::CompatAutocorrReport::modifyAutocorrGoal(), modifyDispersionGoal(), modifyEllipticityGoal(), QGpCompatibility::CompatRefraReport::modifyRefraGoal(), setCostValue(), setMaxOmegasCount(), and writeHeader().
{ TRACE; // effectively writes the block to disk (we are sure that the block is really // written on the disk before the pointer in the table. static_cast<QFile *>(_s.device())->flush(); if(_ptrStart>0) { _s.device()->seek((_trueN+1)*sizeof(int)+TAG_LENGTH); _s << (qint32)_ptrStart; _offsetTable[_trueN]=_ptrStart; _trueN++; } else if(_ptrStart<0) { // Tests if size of block has changed, if it is the last block ok, else error int index=-_ptrStart-1; if(index!=_n-1) { qint32 tmp; qint64 ptrEnd; qint64 lastPtr=_s.device()->pos(); _s.device()->seek(TAG_LENGTH+sizeof(int)*(index+2)); _s >> tmp; ptrEnd=tmp; if(ptrEnd && ptrEnd<lastPtr) printf("You write over existing data, the file may be corrupted\n"); } } else { printf("startWritingBlock did not execute correctly, you should call it before endWritingBlock\n"); } _ptrStart=0; }
References _flushed, _s, and TRACE.
Referenced by endWritingBlock(), and writeHeader().
References _headerBlocksCount, _s, _trueN, ModelDispersion, startReadingBlock(), and TRACE.
{ TRACE; int minCostIndex=-1, i=0, modelID, n; double cost,minCost=1e99; while(i+_headerBlocksCount<_trueN) { if(!startReadingBlock(i+_headerBlocksCount,ModelDispersion)) break; _s >> modelID; // Skip the layered model _s >> n; _s.device()->seek((4*n-1)*sizeof(double)+_s.device()->pos()); _s >> cost; if(cost<minCost) { minCost=cost; minCostIndex=i; } i++; } return minCostIndex; }
QVector< Point > * QGpCompatibility::CompatInversionReport::getBestFits | ( | QVector< Point > & | curve, |
int & | startIndex, | ||
double & | minCostValue, | ||
int & | generatedModels | ||
) |
References _currentCost, _currentID, _headerBlocksCount, _s, _trueN, ModelDispersion, and startReadingBlock().
{ int minCostIndex=-1; int interCount=2000; while(startIndex+_headerBlocksCount<_trueN) { if(!startReadingBlock(startIndex+_headerBlocksCount,ModelDispersion)) break; _s >> _currentID; int n; // Skip the layered model _s >> n; _s.device()->seek((4*n-1)*sizeof(double)+_s.device()->pos()); _s >> _currentCost; if(_currentCost<minCostValue) { if(curve.count()<2000) { minCostValue=_currentCost; if(_currentID==-1) minCostIndex=startIndex; else minCostIndex=_currentID; curve.push_back(Point(minCostIndex,minCostValue,0)); } else { if(interCount>0) interCount--; else { minCostValue=_currentCost; if(_currentID==-1) minCostIndex=startIndex; else minCostIndex=_currentID; curve.push_back(Point(minCostIndex,minCostValue,0)); interCount=2000; } } } startIndex++; } // Check again last record (needed if no more blocks were added since last call) startReadingBlock(startIndex+_headerBlocksCount-1,ModelDispersion); _s >> _currentID; generatedModels=_currentID; return &curve; }
int QGpCompatibility::CompatInversionReport::getID | ( | ) | [inline] |
{return _currentID;}
void QGpCompatibility::CompatInversionReport::getNAParam | ( | int & | itmax, |
int & | nsi, | ||
int & | ns, | ||
int & | nr | ||
) |
References _fileName, and TRACE.
{ TRACE; QFileInfo fi(_fileName); QDir d(fi.absolutePath()); d.cd(QString("wd_%1").arg(fi.baseName())); if(d.exists("na.in")) { // Read na.in to get the total number of models that will be generated FILE * f; f=fopen(d.absoluteFilePath("na.in").toAscii().data(),"r"); if(f) { int buflen=256; char * buf=new char [buflen]; File::readLine(buf, buflen, f); // comment line File::readLine(buf, buflen, f); // comment line File::readLine(buf, buflen, f); // comment line File::readLine(buf, buflen, f); // Perform NA or MC ? File::readLine(buf, buflen, f); // maximum number of iterations sscanf(buf,"%i", &itmax); File::readLine(buf, buflen, f); // sample size for initial population sscanf(buf,"%i", &nsi); File::readLine(buf, buflen, f); // sample size for remaining populations sscanf(buf,"%i", &ns); File::readLine(buf, buflen, f); // number of cell to resample sscanf(buf,"%i", &nr); fclose(f); delete [] buf; } } }
paramID QGpCompatibility::CompatInversionReport::getParamType | ( | int | paramIndex | ) | [inline] |
{return _paramAddresses[paramIndex].which;}
double QGpCompatibility::CompatInversionReport::getParamValue | ( | int | paramIndex | ) |
References _currentModel, _currentNAModel, _nd, _paramAddresses, Depth, QGpCoreWave::Seismic1DModel::depth(), ExpGrad, QGpCoreWave::Seismic1DModel::expGrad(), QGpCoreWave::Seismic1DModel::h(), H, QGpCompatibility::CompatInversionReport::paramAddress::layer, QGpCoreWave::Seismic1DModel::layerCount(), ModeStdDev, NAParam, QGpCoreWave::Seismic1DModel::rho(), Rho, QGpCoreWave::Seismic1DModel::slowP(), QGpCoreWave::Seismic1DModel::slowS(), TRACE, Vp, Vs, and QGpCompatibility::CompatInversionReport::paramAddress::which.
{ TRACE; paramAddress& a=_paramAddresses[paramIndex]; if(a.which<NAParam && a.layer>=_currentModel->layerCount()) { a.layer=_currentModel->layerCount()-1; printf("Layer number for parameter greater than layer number in model\n"); } else if(a.which>=NAParam && a.layer>=_nd) { a.layer=_nd-1; printf("Number for parameter greater than dimension number in model\n"); } switch (a.which) { case H: return _currentModel->h(a.layer); case Vs: return 1.0/_currentModel->slowS(a.layer); case Vp: return 1.0/_currentModel->slowP(a.layer); case Rho: return _currentModel->rho(a.layer); case Depth: return _currentModel->depth(a.layer); case ExpGrad: return _currentModel->expGrad(a.layer); case ModeStdDev: return _currentModel->slowS(a.layer); case NAParam: return _currentNAModel[a.layer]; } return 0; }
bool QGpCompatibility::CompatInversionReport::initCurrentDispersion | ( | ) | [protected, virtual] |
Reimplemented in QGpCompatibility::CompatRefraReport.
References _blockEll, _blockOmegas, _currentDispersion, _s, _trueN, _version, EllipticityGoal, initCurrentEllipticity(), QGpCompatibility::CompatMultiModalFrequency::modesCount(), MSG_ID, Omegas, QGpCompatibility::CompatMultiModalCurves::reportToOmega(), QGpCompatibility::CompatMultiModalCurves::setRayleighModesCount(), startReadingBlock(), and TRACE.
Referenced by currentDispersion(), currentEllipticity(), QGpCompatibility::CompatAutocorrReport::loadAutocorr(), QGpCompatibility::CompatAutocorrReport::loadAutocorrOnly(), loadDispersion(), loadDispersionGoal(), modesCount(), and omegasCount().
{ TRACE; ASSERT(!_currentDispersion); _currentDispersion=(CompatMultiModalCurves *) new CompatDispersion(); if(startReadingBlock(_blockOmegas,Omegas)) _currentDispersion->reportToOmega(_s); else { Message::critical(MSG_ID,"Inversion report", "Bad block: Omegas at index 1",Message::cancel()); return false; } if(_trueN>_blockEll && startReadingBlock(_blockEll,EllipticityGoal)) if(!initCurrentEllipticity()) return false; if(_version<2) _currentDispersion->setRayleighModesCount(_currentDispersion->modesCount()); return true; }
bool QGpCompatibility::CompatInversionReport::initCurrentEllipticity | ( | ) | [protected] |
References _blockOmegas, _currentEllipticity, _s, MSG_ID, Omegas, QGpCompatibility::CompatMultiModalCurves::reportToOmega(), startReadingBlock(), and TRACE.
Referenced by QGpCompatibility::CompatRefraReport::initCurrentDispersion(), and initCurrentDispersion().
{ TRACE; ASSERT(!_currentEllipticity); _currentEllipticity=new CompatEllipticity(); if(startReadingBlock(_blockOmegas,Omegas)) { _currentEllipticity->reportToOmega(_s); return true; } else { Message::critical(MSG_ID,"Inversion report", "Bad block: omegas at index 1",Message::cancel()); return false; } }
bool QGpCompatibility::CompatInversionReport::initCurrentModel | ( | ) | [protected] |
References _currentModel, _headerBlocksCount, _s, ModelDispersion, MSG_ID, startReadingBlock(), and TRACE.
Referenced by QGpCompatibility::CompatRefraReport::initCurrentTiltModel(), QGpCompatibility::CompatAutocorrReport::loadAutocorr(), QGpCompatibility::CompatAutocorrReport::loadAutocorrOnly(), loadCostValue(), loadDispersion(), loadModel(), and loadNextModel().
{ TRACE; // Get number of layers per model // Get Ptr to the first model if(startReadingBlock(_headerBlocksCount,ModelDispersion)) { int nLayers; _s >> nLayers; // ID unused here _s >> nLayers; _currentModel=new Seismic1DModel(nLayers); return true; } else { Message::critical(MSG_ID,"Inversion report", "Bad block for first ModelDispersion",Message::cancel()); return false; } }
bool QGpCompatibility::CompatInversionReport::isA | ( | const char * | className | ) | [virtual] |
Reimplemented in QGpCompatibility::CompatRefraReport, and QGpCompatibility::CompatAutocorrReport.
References TRACE.
bool QGpCompatibility::CompatInversionReport::isReady | ( | QString | reportFile | ) | [static] |
References FILE_TAG, MAX_HEADER_BLOCKS_COUNT, ModelDispersion, TAG_LENGTH, and TRACE.
{ TRACE; QFile f(reportFile); if(!f.open(QIODevice::ReadOnly)) return false; QDataStream s(&f); char buf [TAG_LENGTH]; s.readRawData(buf,TAG_LENGTH); if(strcmp(buf,FILE_TAG)) return false; int ptrStart; f.seek(TAG_LENGTH+sizeof(int)*(MAX_HEADER_BLOCKS_COUNT+1)); s >> ptrStart; if(ptrStart) { int blockType=0; f.seek(ptrStart); s >> blockType; return (blockType==ModelDispersion); } else return false; }
bool QGpCompatibility::CompatInversionReport::isRightFormat | ( | QString | reportFile | ) | [static] |
References FILE_TAG, TAG_LENGTH, and TRACE.
{ TRACE; QFile f(reportFile); if(!f.open(QIODevice::ReadOnly)) return false; QDataStream s(&f); char buf [TAG_LENGTH]; s.readRawData(buf,TAG_LENGTH); if(strcmp(buf,FILE_TAG)) return false; return true; }
References _s, FILE_TAG, TAG_LENGTH, and TRACE.
Referenced by CompatInversionReport().
{ TRACE; char buf [TAG_LENGTH]; _s.readRawData(buf,TAG_LENGTH); return !strcmp(buf,FILE_TAG); }
bool QGpCompatibility::CompatInversionReport::isSameGoalDispersion | ( | CompatInversionReport * | otherModels | ) |
References _currentDispersion, QGpCompatibility::CompatMultiModalData::isSameData(), loadDispersionGoal(), QGpCompatibility::CompatMultiModalFrequency::modesCount(), QGpCompatibility::CompatMultiModalFrequency::omegasCount(), and TRACE.
{ TRACE; int nModes=_currentDispersion->modesCount(); int n=_currentDispersion->omegasCount(); if(nModes!=otherModels->_currentDispersion->modesCount() || n!=otherModels->_currentDispersion->omegasCount()) return false; CompatDispersionData * rms1, * rms2; rms1=loadDispersionGoal(); rms2=otherModels->loadDispersionGoal(); return rms1->isSameData(rms2); }
bool QGpCompatibility::CompatInversionReport::isSameOmegas | ( | const CompatInversionReport * | otherModels | ) | const [inline] |
References _currentDispersion, QGpCompatibility::CompatMultiModalFrequency::isSameOmegas(), and TRACE.
{ TRACE; return _currentDispersion->isSameOmegas(otherModels->_currentDispersion); }
bool QGpCompatibility::CompatInversionReport::isSameParameter | ( | const CompatInversionReport * | otherModels | ) | const |
References _nd, _paramAddresses, QGpCompatibility::CompatInversionReport::paramAddress::layer, TRACE, and QGpCompatibility::CompatInversionReport::paramAddress::which.
{ TRACE; if(_nd!=otherModels->_nd) return false; for(int i=0;i<_nd;i++) { paramAddress& a=_paramAddresses[i]; paramAddress& b=otherModels->_paramAddresses[i]; if(a.which!=b.which || a.layer!=b.layer) return false; } return true; }
bool QGpCompatibility::CompatInversionReport::isValid | ( | ) | [inline] |
double QGpCompatibility::CompatInversionReport::loadCostValue | ( | int | modelIndex | ) |
References _currentCost, _currentID, _currentModel, _headerBlocksCount, _s, initCurrentModel(), ModelDispersion, startReadingBlock(), and TRACE.
{ TRACE; if(!_currentModel && !initCurrentModel()) return 0; if(startReadingBlock(modelIndex+_headerBlocksCount,ModelDispersion)) { _s >> _currentID; int n; // Skip the layered model _s >> n; _s.device()->seek((4*n-1)*sizeof(double)+_s.device()->pos()); _s >> _currentCost; } else _currentCost=-1; return _currentCost; }
bool QGpCompatibility::CompatInversionReport::loadDispersion | ( | int | modelIndex | ) |
References _currentCost, _currentDispersion, _currentEllipticity, _currentID, _currentModel, _currentNAModel, _headerBlocksCount, _nd, _s, _version, QGpCoreWave::Seismic1DModel::fromStream(), initCurrentDispersion(), initCurrentModel(), ModelDispersion, QGpCompatibility::CompatMultiModalCurves::reportToRefines(), QGpCompatibility::CompatMultiModalCurves::reportToValues(), startReadingBlock(), and TRACE.
Referenced by main(), and statDispersion().
{ TRACE; if(!_currentModel && !initCurrentModel()) return false; if(!_currentNAModel) _currentNAModel=new float [_nd]; if(!_currentDispersion) initCurrentDispersion(); if(startReadingBlock(modelIndex+_headerBlocksCount,ModelDispersion)) { _s >> _currentID; _currentModel->fromStream(_s); _s >> _currentCost; if(_version>=4) _s.readRawData((char *)_currentNAModel,_nd*sizeof(float)); _currentDispersion->reportToValues(_s); if(_version>=1) _currentDispersion->reportToRefines(_s); if(_currentEllipticity) { _currentEllipticity->reportToValues(_s); if(_version>=1) _currentEllipticity->reportToRefines(_s); } } else _currentCost=-1; return true; }
bool QGpCompatibility::CompatInversionReport::loadDispersion | ( | CompatDispersion * | disp, |
CompatEllipticity * | ell, | ||
int | modelIndex | ||
) |
References _blockOmegas, _currentCost, _currentDispersion, _currentEllipticity, _currentID, _currentModel, _currentNAModel, _headerBlocksCount, _nd, _s, _version, QGpCoreWave::Seismic1DModel::fromStream(), initCurrentDispersion(), initCurrentModel(), ModelDispersion, Omegas, QGpCompatibility::CompatMultiModalCurves::reportToOmega(), QGpCompatibility::CompatMultiModalCurves::reportToRefines(), QGpCompatibility::CompatMultiModalCurves::reportToValues(), startReadingBlock(), and TRACE.
{ TRACE; if(!_currentModel && !initCurrentModel()) return true; if(!_currentNAModel) _currentNAModel=new float [_nd]; if(!_currentDispersion) initCurrentDispersion(); if(startReadingBlock(_blockOmegas,Omegas)) { disp->reportToOmega(_s); if(ell) { startReadingBlock(_blockOmegas,Omegas); ell->reportToOmega(_s); } if(startReadingBlock(modelIndex+_headerBlocksCount,ModelDispersion)) { _s >> _currentID; _currentModel->fromStream(_s); _s >> _currentCost; if(_version>=4) _s.readRawData((char *)_currentNAModel,_nd*sizeof(float)); disp->reportToValues(_s); if(_version>=1) disp->reportToRefines(_s); if(_currentEllipticity && ell) { ell->reportToValues(_s); if(_version>=1) ell->reportToRefines(_s); } } else _currentCost=-1; } else _currentCost=-1; return false; }
References _blockGoal, _currentDispersion, _s, _version, QGpCompatibility::CompatDispersionData::convertStddev(), DispersionGoal, initCurrentDispersion(), QGpCompatibility::CompatMultiModalData::reportToData(), QGpCompatibility::CompatMultiModalData::reportToDataWeight(), QGpCompatibility::CompatMultiModalCurves::setRayleighModesCount(), startReadingBlock(), and TRACE.
Referenced by isSameGoalDispersion().
{ TRACE; if(!_currentDispersion) initCurrentDispersion(); CompatDispersionData * rms=new CompatDispersionData(_currentDispersion); if(startReadingBlock(_blockGoal,DispersionGoal)) { if(_version>=2) { uint rayleighModesCount; _s >> rayleighModesCount; rms->setRayleighModesCount(rayleighModesCount); _currentDispersion->setRayleighModesCount(rayleighModesCount); } rms->reportToData(_s); rms->reportToDataWeight(_s,_version>=3); } else printf("unable to read block DispersionGoal in current file\n"); if(_version==0) rms->convertStddev(); return rms; }
References _blockEll, _currentEllipticity, _s, _version, EllipticityGoal, QGpCompatibility::CompatMultiModalData::reportToData(), QGpCompatibility::CompatMultiModalData::reportToDataWeight(), QGpCompatibility::CompatEllipticityData::reportToF0(), startReadingBlock(), and TRACE.
Referenced by EllipticityPeakTargetWidget::loadReport().
{ TRACE; if(!_currentEllipticity) return 0; CompatEllipticityData * ell=new CompatEllipticityData(_currentEllipticity); if(startReadingBlock(_blockEll,EllipticityGoal)) { ell->reportToData(_s); ell->reportToDataWeight(_s,_version>=3); if(_version>=5) ell->reportToF0(_s); } else printf("unable to read block EllipticityGoal in current file\n"); return ell; }
bool QGpCompatibility::CompatInversionReport::loadModel | ( | int | modelIndex = -1 | ) |
References _currentCost, _currentID, _currentModel, _currentNAModel, _headerBlocksCount, _nd, _s, _version, QGpCoreWave::Seismic1DModel::fromStream(), initCurrentModel(), ModelDispersion, startReadingBlock(), and TRACE.
Referenced by currentModel(), currentNAModel(), and main().
{ TRACE; if(!_currentModel && !initCurrentModel()) return false; if(!_currentNAModel) _currentNAModel=new float [_nd]; if(startReadingBlock(modelIndex+_headerBlocksCount,ModelDispersion)) { _s >> _currentID; _currentModel->fromStream(_s); _s >> _currentCost; if(_version>=4) _s.readRawData((char *)_currentNAModel,_nd*sizeof(float)); } else _currentCost=-1; return true; }
void QGpCompatibility::CompatInversionReport::loadNAModel | ( | int | modelIndex = -1 | ) |
References _currentCost, _currentID, _currentIndex, _currentModel, _currentNAModel, _headerBlocksCount, _nd, _s, _version, QGpCoreWave::Seismic1DModel::fromStream(), initCurrentModel(), ModelDispersion, startReadingBlock(), and TRACE.
{ TRACE; if(!_currentModel && !initCurrentModel()) return false; if(!_currentNAModel) _currentNAModel=new float [_nd]; if(startReadingBlock(_currentIndex+1+_headerBlocksCount,ModelDispersion)) { _s >> _currentID; _currentModel->fromStream(_s); _s >> _currentCost; if(_version>=4) _s.readRawData((char *)_currentNAModel,_nd*sizeof(float)); _currentIndex++; } else _currentCost=-1; return true; }
bool QGpCompatibility::CompatInversionReport::loadParamAddresses | ( | ) | [protected] |
References _blockParam, _nd, _paramAddresses, _s, QGpCompatibility::CompatInversionReport::paramAddress::layer, MSG_ID, startReadingBlock(), TRACE, and QGpCompatibility::CompatInversionReport::paramAddress::which.
Referenced by CompatInversionReport().
{ TRACE; if(startReadingBlock(_blockParam,Parameters)) { _s >> _nd; _paramAddresses=new paramAddress [_nd]; for(int i=0;i<_nd;i++) { paramAddress& a=_paramAddresses[i]; int tmp; _s >> tmp; a.which=(paramID)tmp; _s >> a.layer; } return true; } else { Message::critical(MSG_ID,"Inversion report", "Bad block: Parameters at index 0",Message::cancel()); return false; } }
void QGpCompatibility::CompatInversionReport::maxOmegasCount | ( | int & | dispCount, |
int & | ellCount | ||
) |
References _maxDispOmegaCount, _maxEllOmegaCount, _s, _version, Information, omegasCount(), startReadingBlock(), and TRACE.
{ TRACE; dispCount=omegasCount(); ellCount=dispCount; if(_version>=1) { if(startReadingBlock(0,Information)) { _s.device()->seek(_s.device()->pos()+sizeof(int)); _s >> _maxDispOmegaCount; _s >> _maxEllOmegaCount; dispCount+=_maxDispOmegaCount; ellCount+=_maxEllOmegaCount; } else fprintf(stderr," ### ERROR ### : cannot read information block"); } }
int QGpCompatibility::CompatInversionReport::modesCount | ( | ) | [inline] |
References _currentDispersion, initCurrentDispersion(), QGpCompatibility::CompatMultiModalFrequency::modesCount(), and TRACE.
{ TRACE; if(!_currentDispersion) initCurrentDispersion(); return _currentDispersion->modesCount(); }
References _blockGoal, _s, QGpCompatibility::CompatMultiModalData::dataToReport(), DispersionGoal, endWritingBlock(), QGpCompatibility::CompatMultiModalCurves::rayleighModesCount(), startWritingBlock(), and TRACE.
{ TRACE; startWritingBlock(_blockGoal,DispersionGoal); if(rms) { _s << rms->rayleighModesCount(); rms->dataToReport(_s); } endWritingBlock(); }
References _blockEll, _s, QGpCompatibility::CompatMultiModalData::dataToReport(), EllipticityGoal, endWritingBlock(), QGpCompatibility::CompatEllipticityData::f0ToReport(), startWritingBlock(), and TRACE.
{ TRACE; startWritingBlock(_blockEll,EllipticityGoal); if(ell) { ell->dataToReport(_s); ell->f0ToReport(_s); } endWritingBlock(); }
int QGpCompatibility::CompatInversionReport::omegasCount | ( | ) | [inline] |
References _currentDispersion, initCurrentDispersion(), QGpCompatibility::CompatMultiModalFrequency::omegasCount(), and TRACE.
Referenced by maxOmegasCount().
{ TRACE; if(!_currentDispersion) initCurrentDispersion(); return _currentDispersion->omegasCount(); }
QString QGpCompatibility::CompatInversionReport::parameterName | ( | int | paramIndex | ) |
References _paramAddresses, Depth, ExpGrad, H, QGpCompatibility::CompatInversionReport::paramAddress::layer, ModeStdDev, NAParam, Rho, str, TRACE, Vp, Vs, and QGpCompatibility::CompatInversionReport::paramAddress::which.
{ TRACE; paramAddress& a=_paramAddresses[paramIndex]; QString str; switch (a.which) { case H: str="H%1"; break; case Vs: str="Vs%1"; break; case Vp: str="Vp%1"; break; case Rho: str="Rho%1"; break; case Depth: str="Depth%1"; break; case ExpGrad: str="Power law exp %1"; break; case ModeStdDev: str="Std dev %1"; break; case NAParam: str="NA %1"; break; } return str.arg(a.layer); }
References _blockGoal, _ptrStart, _s, TAG_LENGTH, and Unknown.
Referenced by QGpCompatibility::CompatReportFactory::open().
void QGpCompatibility::CompatInversionReport::setCostValue | ( | int | imodel, |
double | costValue | ||
) |
References _currentID, _headerBlocksCount, _s, endWritingBlock(), ModelDispersion, startWritingBlock(), and TRACE.
{ TRACE; if(startWritingBlock(imodel+_headerBlocksCount,ModelDispersion)) { _s >> _currentID; int n; // Skip the layered model _s >> n; _s.device()->seek((4*n-1)*sizeof(double)+_s.device()->pos()); _s << costValue; } else fprintf(stderr,"Bad model index, when rewriting a block\n"); endWritingBlock(); }
void QGpCompatibility::CompatInversionReport::setFlushed | ( | bool | s | ) | [inline] |
{_flushed=s;}
void QGpCompatibility::CompatInversionReport::setMaxOmegasCount | ( | int | dispCount, |
int | ellCount | ||
) | [protected] |
References _maxDispOmegaCount, _maxEllOmegaCount, _s, endWritingBlock(), Information, startWritingBlock(), and TRACE.
Referenced by QGpCompatibility::CompatAutocorrReport::addModel(), and addModel().
{ TRACE; if(dispCount>_maxDispOmegaCount) { _maxDispOmegaCount=dispCount; if(ellCount>_maxEllOmegaCount) { _maxEllOmegaCount=ellCount; startWritingBlock(0,Information); _s.device()->seek(_s.device()->pos()+sizeof(int)); _s << _maxDispOmegaCount; _s << _maxEllOmegaCount; endWritingBlock(); } else { startWritingBlock(0,Information); _s.device()->seek(_s.device()->pos()+sizeof(int)); _s << _maxDispOmegaCount; endWritingBlock(); } } else { if(ellCount>_maxEllOmegaCount) { _maxEllOmegaCount=ellCount; startWritingBlock(0,Information); _s.device()->seek(_s.device()->pos()+sizeof(int)*2); _s << _maxEllOmegaCount; endWritingBlock(); } } }
void QGpCompatibility::CompatInversionReport::setNFromNaIn | ( | QString | naInfile | ) |
References _n, MAX_HEADER_BLOCKS_COUNT, and TRACE.
Referenced by CompatInversionReport().
{ TRACE; // Read na.in to get the total number of models that will be generated FILE * f; f=fopen(naInfile.toAscii().data(),"r"); int itmax=10,nsamplei=10,nsample=10; if(f) { int buflen=256; char * buf=new char [buflen]; File::readLine(buf, buflen, f); // comment line File::readLine(buf, buflen, f); // comment line File::readLine(buf, buflen, f); // comment line File::readLine(buf, buflen, f); // Perform NA or MC ? File::readLine(buf, buflen, f); // maximum number of iterations sscanf(buf,"%i", &itmax); File::readLine(buf, buflen, f); // sample size for initial population sscanf(buf,"%i", &nsamplei); File::readLine(buf, buflen, f); // sample size for remaining populations sscanf(buf,"%i", &nsample); fclose(f); delete [] buf; } // Calculate the number of models // Add one more model in case of ellipticity _n=nsamplei+itmax*nsample+MAX_HEADER_BLOCKS_COUNT; }
bool QGpCompatibility::CompatInversionReport::startReadingBlock | ( | int | index, |
BlockType | wantedType | ||
) | [inline] |
References _offsetTable, _s, _trueN, and TRACE.
Referenced by QGpCompatibility::CompatAutocorrReport::addAutocorrGoal(), addDispersionGoal(), addEllipticityGoal(), QGpCompatibility::CompatRefraReport::addRefraGoal(), CompatInversionReport(), getBestFit(), getBestFits(), QGpCompatibility::CompatAutocorrReport::initCurrentAutocorr(), QGpCompatibility::CompatRefraReport::initCurrentDispersion(), initCurrentDispersion(), initCurrentEllipticity(), initCurrentModel(), QGpCompatibility::CompatAutocorrReport::loadAutocorr(), QGpCompatibility::CompatAutocorrReport::loadAutocorrGoal(), QGpCompatibility::CompatAutocorrReport::loadAutocorrOnly(), loadCostValue(), loadDispersion(), loadDispersionGoal(), loadEllipticityGoal(), loadModel(), loadNextModel(), loadParamAddresses(), QGpCompatibility::CompatRefraReport::loadRefra(), QGpCompatibility::CompatRefraReport::loadRefraGoal(), and maxOmegasCount().
bool QGpCompatibility::CompatInversionReport::startWritingBlock | ( | int | index, |
BlockType | wantedType | ||
) |
References _ptrStart, _s, TAG_LENGTH, and TRACE.
Referenced by QGpCompatibility::CompatAutocorrReport::addAutocorrGoal(), addDispersionGoal(), addEllipticityGoal(), QGpCompatibility::CompatAutocorrReport::addModel(), addModel(), addOmegas(), addParameter(), QGpCompatibility::CompatRefraReport::addRefraGoal(), QGpCompatibility::CompatAutocorrReport::modifyAutocorrGoal(), modifyDispersionGoal(), modifyEllipticityGoal(), QGpCompatibility::CompatRefraReport::modifyRefraGoal(), setCostValue(), setMaxOmegasCount(), and writeHeader().
{ TRACE; if(_ptrStart) { printf("You must call endWritingBlock before calling startWritingBlock\n"); return false; } _s.device()->seek(TAG_LENGTH+sizeof(int)*(index+1)); qint32 tmp; _s >> tmp; _ptrStart=tmp; if(_ptrStart) { int blockType; _s.device()->seek(_ptrStart); _s >> blockType; _ptrStart=-index-1; #ifdef Q_WS_WIN // Under Windows it seems that there some difference between read and write // pointers, the next line update the write pointer _s.device()->seek(_s.device()->pos()); #endif return (blockType==wantedType); } return false; }
void QGpCompatibility::CompatInversionReport::statDispersion | ( | int | ipoint, |
int | imode, | ||
int | start_model, | ||
int | end_model, | ||
double & | mean, | ||
double & | stddev | ||
) |
References _currentDispersion, loadDispersion(), QGpCoreTools::sqrt(), TRACE, and QGpCompatibility::CompatMultiModalCurves::value().
{ TRACE; mean=0; stddev=0; for(int i=start_model;i<=end_model;i++) { loadDispersion(i); double xi=1/_currentDispersion->value(ipoint,imode); mean+=xi; stddev+=xi*xi; } int count=end_model-start_model+1; mean/=(double)count; stddev=sqrt((stddev/(double)count)-mean*mean); }
References _n, _s, _version, endWritingBlock(), FILE_TAG, flush(), Information, startWritingBlock(), TAG_LENGTH, and TRACE.
Referenced by CompatInversionReport().
{ TRACE; // Reset file ptr to the beginning of file _s.device()->seek(0); // Write tag (TAG_LENGTH-1 bytes) _s.writeRawData(FILE_TAG,TAG_LENGTH); // max number of binary blocks (1 for parameters+ // 1 for omegas+ // 1 for goal dispersion+ // n models) // may be less if process stopped _s << _n; // initialize table to null int a=0; for(int i=0;i<_n;i++) _s << a; static_cast<QFile *>(_s.device())->flush(); // initialize information block (any information can be added, changing the version) startWritingBlock(Information); _s << (int) _version; // Version _s << (int) 0; // space for the max number of omegas in all dispersion blocks _s << (int) 0; // space for the max number of omegas in all ellipticities blocks endWritingBlock(); // initialize parameter table with nd (parameters count) to null startWritingBlock(Parameters); _s << a; endWritingBlock(); }
void QGpCompatibility::CompatInversionReport::writeNAModel | ( | float * | naModel | ) | [inline, protected] |
qint64 QGpCompatibility::CompatInversionReport::_blockEll [protected] |
qint64 QGpCompatibility::CompatInversionReport::_blockGoal [protected] |
Referenced by CompatInversionReport(), QGpCompatibility::CompatAutocorrReport::initCurrentAutocorr(), QGpCompatibility::CompatAutocorrReport::loadAutocorr(), QGpCompatibility::CompatAutocorrReport::loadAutocorrGoal(), loadDispersionGoal(), QGpCompatibility::CompatRefraReport::loadRefraGoal(), QGpCompatibility::CompatAutocorrReport::modifyAutocorrGoal(), modifyDispersionGoal(), QGpCompatibility::CompatRefraReport::modifyRefraGoal(), and reportType().
qint64 QGpCompatibility::CompatInversionReport::_blockOmegas [protected] |
Referenced by QGpCompatibility::CompatAutocorrReport::addAutocorrGoal(), addDispersionGoal(), addEllipticityGoal(), QGpCompatibility::CompatRefraReport::addRefraGoal(), CompatInversionReport(), QGpCompatibility::CompatAutocorrReport::initCurrentAutocorr(), QGpCompatibility::CompatRefraReport::initCurrentDispersion(), initCurrentDispersion(), initCurrentEllipticity(), QGpCompatibility::CompatAutocorrReport::loadAutocorr(), loadDispersion(), and QGpCompatibility::CompatRefraReport::loadRefra().
qint64 QGpCompatibility::CompatInversionReport::_blockParam [protected] |
Referenced by addParameter(), CompatInversionReport(), and loadParamAddresses().
double QGpCompatibility::CompatInversionReport::_currentCost [protected] |
Referenced by CompatInversionReport(), QGpCompatibility::CompatRefraReport::CompatRefraReport(), currentDispersion(), currentEllipticity(), QGpCompatibility::CompatRefraReport::currentHodoChrone(), QGpCompatibility::CompatRefraReport::initCurrentDispersion(), initCurrentDispersion(), isSameGoalDispersion(), isSameOmegas(), QGpCompatibility::CompatAutocorrReport::loadAutocorr(), QGpCompatibility::CompatAutocorrReport::loadAutocorrOnly(), loadDispersion(), loadDispersionGoal(), QGpCompatibility::CompatRefraReport::loadRefra(), QGpCompatibility::CompatRefraReport::loadRefraGoal(), modesCount(), omegasCount(), statDispersion(), and ~CompatInversionReport().
int QGpCompatibility::CompatInversionReport::_currentID [protected] |
Referenced by QGpCompatibility::CompatAutocorrReport::addModel(), addModel(), CompatInversionReport(), getBestFits(), QGpCompatibility::CompatAutocorrReport::loadAutocorr(), loadCostValue(), loadDispersion(), loadModel(), loadNextModel(), QGpCompatibility::CompatRefraReport::loadRefra(), and setCostValue().
int QGpCompatibility::CompatInversionReport::_currentIndex [protected] |
Referenced by CompatInversionReport(), and loadNextModel().
Referenced by CompatInversionReport(), currentModel(), getParamValue(), initCurrentModel(), QGpCompatibility::CompatRefraReport::initCurrentTiltModel(), QGpCompatibility::CompatAutocorrReport::loadAutocorr(), QGpCompatibility::CompatAutocorrReport::loadAutocorrOnly(), loadCostValue(), loadDispersion(), loadModel(), loadNextModel(), QGpCompatibility::CompatRefraReport::loadRefra(), and ~CompatInversionReport().
float* QGpCompatibility::CompatInversionReport::_currentNAModel [protected] |
Referenced by CompatInversionReport(), currentNAModel(), getParamValue(), QGpCompatibility::CompatAutocorrReport::loadAutocorr(), QGpCompatibility::CompatAutocorrReport::loadAutocorrOnly(), loadDispersion(), loadModel(), loadNextModel(), QGpCompatibility::CompatRefraReport::loadRefra(), and ~CompatInversionReport().
QString QGpCompatibility::CompatInversionReport::_fileName [protected] |
Referenced by CompatInversionReport(), getNAParam(), reportFileName(), and reportName().
bool QGpCompatibility::CompatInversionReport::_flushed [protected] |
Referenced by flush().
int QGpCompatibility::CompatInversionReport::_headerBlocksCount [protected] |
Referenced by addEllipticityGoal(), CompatInversionReport(), countModels(), getBestFit(), getBestFits(), initCurrentModel(), QGpCompatibility::CompatAutocorrReport::loadAutocorr(), QGpCompatibility::CompatAutocorrReport::loadAutocorrOnly(), loadCostValue(), loadDispersion(), loadModel(), loadNextModel(), QGpCompatibility::CompatRefraReport::loadRefra(), and setCostValue().
int QGpCompatibility::CompatInversionReport::_maxDispOmegaCount [protected] |
Referenced by CompatInversionReport(), maxOmegasCount(), and setMaxOmegasCount().
int QGpCompatibility::CompatInversionReport::_maxEllOmegaCount [protected] |
Referenced by CompatInversionReport(), maxOmegasCount(), and setMaxOmegasCount().
int QGpCompatibility::CompatInversionReport::_n [protected] |
Referenced by CompatInversionReport(), countModels(), endWritingBlock(), setNFromNaIn(), startWritingBlock(), and writeHeader().
int QGpCompatibility::CompatInversionReport::_nd [protected] |
Referenced by addOmegas(), addParameter(), CompatInversionReport(), getParamValue(), isSameParameter(), QGpCompatibility::CompatAutocorrReport::loadAutocorr(), QGpCompatibility::CompatAutocorrReport::loadAutocorrOnly(), loadDispersion(), loadModel(), loadNextModel(), loadParamAddresses(), QGpCompatibility::CompatRefraReport::loadRefra(), and writeNAModel().
qint64* QGpCompatibility::CompatInversionReport::_offsetTable [protected] |
Referenced by CompatInversionReport(), countModels(), endWritingBlock(), startReadingBlock(), and ~CompatInversionReport().
Referenced by CompatInversionReport(), getParamValue(), isSameParameter(), loadParamAddresses(), parameterName(), and ~CompatInversionReport().
qint64 QGpCompatibility::CompatInversionReport::_ptrStart [protected] |
Referenced by CompatInversionReport(), endWritingBlock(), reportType(), and startWritingBlock().
QDataStream QGpCompatibility::CompatInversionReport::_s [protected] |
Referenced by QGpCompatibility::CompatAutocorrReport::addAutocorrGoal(), addDispersionGoal(), addEllipticityGoal(), QGpCompatibility::CompatAutocorrReport::addModel(), addModel(), addOmegas(), addParameter(), QGpCompatibility::CompatRefraReport::addRefraGoal(), CompatInversionReport(), countModels(), endWritingBlock(), flush(), getBestFit(), getBestFits(), QGpCompatibility::CompatAutocorrReport::initCurrentAutocorr(), QGpCompatibility::CompatRefraReport::initCurrentDispersion(), initCurrentDispersion(), initCurrentEllipticity(), initCurrentModel(), isRightFormat(), QGpCompatibility::CompatAutocorrReport::loadAutocorr(), QGpCompatibility::CompatAutocorrReport::loadAutocorrGoal(), QGpCompatibility::CompatAutocorrReport::loadAutocorrOnly(), loadCostValue(), loadDispersion(), loadDispersionGoal(), loadEllipticityGoal(), loadModel(), loadNextModel(), loadParamAddresses(), QGpCompatibility::CompatRefraReport::loadRefra(), QGpCompatibility::CompatRefraReport::loadRefraGoal(), maxOmegasCount(), QGpCompatibility::CompatAutocorrReport::modifyAutocorrGoal(), modifyDispersionGoal(), modifyEllipticityGoal(), QGpCompatibility::CompatRefraReport::modifyRefraGoal(), reportType(), setCostValue(), setMaxOmegasCount(), startReadingBlock(), startWritingBlock(), writeHeader(), writeNAModel(), and ~CompatInversionReport().
int QGpCompatibility::CompatInversionReport::_trueN [protected] |
bool QGpCompatibility::CompatInversionReport::_valid [protected] |
Referenced by CompatInversionReport().
int QGpCompatibility::CompatInversionReport::_version [protected] |
Referenced by CompatInversionReport(), QGpCompatibility::CompatAutocorrReport::initCurrentAutocorr(), QGpCompatibility::CompatRefraReport::initCurrentDispersion(), initCurrentDispersion(), QGpCompatibility::CompatAutocorrReport::loadAutocorr(), QGpCompatibility::CompatAutocorrReport::loadAutocorrGoal(), QGpCompatibility::CompatAutocorrReport::loadAutocorrOnly(), loadDispersion(), loadDispersionGoal(), loadEllipticityGoal(), loadModel(), loadNextModel(), QGpCompatibility::CompatRefraReport::loadRefra(), QGpCompatibility::CompatRefraReport::loadRefraGoal(), maxOmegasCount(), and writeHeader().