#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().