#include <CompatMultiModalFrequency.h>
Public Member Functions | |
CompatMultiModalFrequency () | |
Default constructor. | |
CompatMultiModalFrequency (int modesCount, int omegasCount) | |
Constructor. | |
CompatMultiModalFrequency (const CompatMultiModalFrequency *o) | |
Copy constructor. | |
CompatMultiModalFrequency (const CompatMultiModalFrequency *o, int modesCount) | |
Copy constructor changing the number of modes. | |
QVector< double > * | frequencies () |
Returns the frequencies. | |
bool | isSameOmegas (const CompatMultiModalFrequency *o) const |
Copmpares two objects. | |
int | modesCount () const |
Returns the omega count. | |
double | omega (int i) const |
Returns the ith omega. | |
int | omegasCount () const |
Returns the omega count. | |
void | omegaToReport (QDataStream &s) const |
Prints the _omegas to the binary stream (usually the inversion_report) | |
QVector< double > * | periods () |
Returns the periods. | |
void | reportToOmega (QDataStream &s) |
Loads the _omega from the binary stream (usually the inversion_report) | |
void | setFrequencies (QVector< double > *values) |
void | setFrequency (int i, double f) |
void | setPeriods (QVector< double > *values) |
virtual | ~CompatMultiModalFrequency () |
Destructor: get rid of all unused memory. | |
Protected Attributes | |
double | _freq2omega |
int | _modesCount |
Number of modes. | |
double * | _omegas |
Storage for omegas where to calculate the dispersion. | |
int | _omegasCount |
Number of omegas where to calculate the dispersion. | |
Friends | |
class | CompatMultiModalData |
Default constructor.
References _freq2omega, _modesCount, _omegas, _omegasCount, and TRACE.
{ TRACE; _omegas=0; _omegasCount=0; _modesCount=0; _freq2omega=2*M_PI; }
QGpCompatibility::CompatMultiModalFrequency::CompatMultiModalFrequency | ( | int | modesCount, |
int | omegasCount | ||
) |
Constructor.
References _freq2omega, _modesCount, _omegas, _omegasCount, modesCount(), omegasCount(), and TRACE.
{ TRACE; _modesCount=modesCount; _omegasCount=omegasCount; // Allocates memory for omegas _omegas=new double[_omegasCount]; _freq2omega=2*M_PI; }
QGpCompatibility::CompatMultiModalFrequency::CompatMultiModalFrequency | ( | const CompatMultiModalFrequency * | o | ) |
Copy constructor.
References _freq2omega, _modesCount, _omegas, _omegasCount, modesCount(), omega(), omegasCount(), and TRACE.
{ TRACE; _modesCount=o->modesCount(); _omegasCount=o->omegasCount(); // Allocates memory for omegas _omegas=new double[_omegasCount]; // Copy omegas for(int i=0;i<_omegasCount;i++) _omegas[i]=o->omega(i); _freq2omega=2*M_PI; }
QGpCompatibility::CompatMultiModalFrequency::CompatMultiModalFrequency | ( | const CompatMultiModalFrequency * | o, |
int | modesCount | ||
) |
Copy constructor changing the number of modes.
References _freq2omega, _modesCount, _omegas, _omegasCount, modesCount(), omega(), and TRACE.
{ TRACE; _modesCount=modesCount; _omegasCount=o->_omegasCount; // Allocates memory for omegas _omegas=new double[_omegasCount]; // Copy omegas for(int i=0;i<_omegasCount;i++) _omegas[i]=o->omega(i); _freq2omega=2*M_PI; }
QVector< double > * QGpCompatibility::CompatMultiModalFrequency::frequencies | ( | ) |
Returns the frequencies.
References _freq2omega, _omegas, and _omegasCount.
{ QVector<double> * list=new QVector<double>; list->reserve(_omegasCount); for(int i=0;i<_omegasCount;i++) list->push_back(_omegas[i]/_freq2omega); return list; }
bool QGpCompatibility::CompatMultiModalFrequency::isSameOmegas | ( | const CompatMultiModalFrequency * | o | ) | const |
Copmpares two objects.
References _omegas, _omegasCount, and TRACE.
Referenced by QGpCompatibility::CompatInversionReport::isSameOmegas().
{ TRACE; if(_omegasCount!=o->_omegasCount) return false; for(int i=0;i<_omegasCount;i++) { if(_omegas[i]!=o->_omegas[i]) return false; } return true; }
int QGpCompatibility::CompatMultiModalFrequency::modesCount | ( | ) | const [inline] |
Returns the omega count.
Referenced by QGpCompatibility::CompatAutocorrCurves::calculate(), QGpCompatibility::CompatAutocorrCurves::CompatAutocorrCurves(), QGpCompatibility::CompatAutocorrData::CompatAutocorrData(), QGpCompatibility::CompatMultiModalCurves::CompatMultiModalCurves(), QGpCompatibility::CompatMultiModalData::CompatMultiModalData(), CompatMultiModalFrequency(), QGpCompatibility::CompatAutocorrReport::initCurrentAutocorr(), QGpCompatibility::CompatRefraReport::initCurrentDispersion(), QGpCompatibility::CompatInversionReport::initCurrentDispersion(), QGpCompatibility::CompatInversionReport::isSameGoalDispersion(), QGpCompatibility::CompatAutocorrReport::loadAutocorrOnly(), and QGpCompatibility::CompatInversionReport::modesCount().
{return _modesCount;}
double QGpCompatibility::CompatMultiModalFrequency::omega | ( | int | i | ) | const [inline] |
int QGpCompatibility::CompatMultiModalFrequency::omegasCount | ( | ) | const [inline] |
Returns the omega count.
Reimplemented in QGpCompatibility::CompatAutocorrCurves, and QGpCompatibility::CompatDispersion.
Referenced by QGpCompatibility::CompatMultiModalData::CompatMultiModalData(), CompatMultiModalFrequency(), QGpCompatibility::CompatInversionReport::isSameGoalDispersion(), QGpCompatibility::CompatAutocorrReport::loadAutocorrOnly(), and QGpCompatibility::CompatInversionReport::omegasCount().
{return _omegasCount;}
void QGpCompatibility::CompatMultiModalFrequency::omegaToReport | ( | QDataStream & | s | ) | const |
Prints the _omegas to the binary stream (usually the inversion_report)
References _modesCount, _omegas, _omegasCount, and TRACE.
Referenced by QGpCompatibility::CompatInversionReport::addOmegas().
{ TRACE; s << _modesCount; s << _omegasCount; for(int i=0;i<_omegasCount;i++) s << _omegas[i]; }
QVector< double > * QGpCompatibility::CompatMultiModalFrequency::periods | ( | ) |
Returns the periods.
References _freq2omega, _omegas, and _omegasCount.
{ QVector<double> * list=new QVector<double>; list->reserve(_omegasCount); for(int i=0;i<_omegasCount;i++) list->push_back(_freq2omega/_omegas[i] ); return list; }
void QGpCompatibility::CompatMultiModalFrequency::reportToOmega | ( | QDataStream & | s | ) |
Loads the _omega from the binary stream (usually the inversion_report)
Reimplemented in QGpCompatibility::CompatAutocorrCurves, and QGpCompatibility::CompatMultiModalCurves.
References _modesCount, _omegas, _omegasCount, and TRACE.
{ TRACE; s >> _modesCount; s >> _omegasCount; delete [] _omegas; _omegas=new double[_omegasCount]; for(int i=0;i<_omegasCount;i++) s >> _omegas[i]; }
void QGpCompatibility::CompatMultiModalFrequency::setFrequencies | ( | QVector< double > * | values | ) |
The list of omegas is generated from a QVector filled in by frequencies The easiest way is to create a CompatFunction and call this function passing a pointer to x() as parameter. Don't forget to use inverse() if necessary, make sure you pass a frequency vector as argument to this function. the number of values must be equal to _omegasCount
References _freq2omega, _omegas, _omegasCount, and TRACE.
{ TRACE; ASSERT (_omegasCount==(int)values->size()); for(int i=0;i<_omegasCount;i++) _omegas[i]=_freq2omega*(*values)[i]; ASSERT (_omegas[0]<_omegas[_omegasCount-1]); }
void QGpCompatibility::CompatMultiModalFrequency::setFrequency | ( | int | i, |
double | f | ||
) | [inline] |
Referenced by QGpCompatibility::CompatModalEllipticity::oldStyle(), and QGpCompatibility::CompatModalDispersion::oldStyle().
{_omegas[i]=_freq2omega*f;}
void QGpCompatibility::CompatMultiModalFrequency::setPeriods | ( | QVector< double > * | values | ) |
The list of omegas is generated from a QVector filled in by periods The easiest way is to create a CompatFunction and call this function passing a pointer to x() as parameter. Don't forget to use inverse() if necessary, make sure you pass a period vector as argument to this function. the number of values must be equal to _omegasCount
References _freq2omega, _omegas, _omegasCount, and TRACE.
{ TRACE; ASSERT (_omegasCount==(int)values->size()); for(int i=0;i<_omegasCount;i++) _omegas[_omegasCount-i-1]=_freq2omega/(*values)[i]; ASSERT (_omegas[0]<_omegas[_omegasCount-1]); }
friend class CompatMultiModalData [friend] |
Reimplemented in QGpCompatibility::CompatMultiModalCurves.
double QGpCompatibility::CompatMultiModalFrequency::_freq2omega [protected] |
Conversion factor from frequency to omega, this structure has been original developped for storing frequency dependent modal curves, currently extended to any collection of curves with common sample set
Referenced by QGpCompatibility::CompatHodoChrone::CompatHodoChrone(), CompatMultiModalFrequency(), frequencies(), periods(), setFrequencies(), setPeriods(), QGpCompatibility::CompatMultiModalCurves::toPointVector(), and QGpCompatibility::CompatMultiModalCurves::toStream().
int QGpCompatibility::CompatMultiModalFrequency::_modesCount [protected] |
Number of modes.
Referenced by QGpCompatibility::CompatAutocorrData::allocatesData(), QGpCompatibility::CompatMultiModalCurves::allocatesValues(), QGpCompatibility::CompatAutocorrCurves::allocatesValues(), QGpCompatibility::CompatAutocorrCurves::calculate(), QGpCompatibility::CompatDispersion::checkSlopes(), QGpCompatibility::CompatMultiModalCurves::clear(), QGpCompatibility::CompatDispersionData::closestModeMisfit(), QGpCompatibility::CompatAutocorrCurves::CompatAutocorrCurves(), QGpCompatibility::CompatAutocorrData::CompatAutocorrData(), QGpCompatibility::CompatMultiModalCurves::CompatMultiModalCurves(), CompatMultiModalFrequency(), QGpCompatibility::CompatAutocorrData::dataToReport(), QGpCompatibility::CompatAutocorrData::deleteData(), QGpCompatibility::CompatMultiModalCurves::deleteValues(), QGpCompatibility::CompatAutocorrCurves::deleteValues(), QGpCompatibility::CompatAutocorrData::distanceMeasurements(), QGpCompatibility::CompatAutocorrData::distanceStddev(), QGpCompatibility::CompatAutocorrData::isSameData(), QGpCompatibility::CompatAutocorrData::measurements(), QGpCompatibility::CompatDispersionData::misfit(), omegaToReport(), QGpCompatibility::CompatAutocorrData::reportToData(), QGpCompatibility::CompatAutocorrData::reportToDataWeight(), reportToOmega(), QGpCompatibility::CompatMultiModalCurves::reportToValues(), QGpCompatibility::CompatAutocorrCurves::reportToValues(), QGpCompatibility::CompatAutocorrCurves::resetAutocorr(), QGpCompatibility::CompatEllipticity::resetValues(), QGpCompatibility::CompatDispersion::resetValues(), QGpCompatibility::CompatAutocorrCurves::resetValues(), QGpCompatibility::CompatMultiModalCurves::setValues(), QGpCompatibility::CompatAutocorrData::stddev(), QGpCompatibility::CompatAutocorrCurves::toDistancePointVector(), QGpCompatibility::CompatMultiModalCurves::toPointVector(), QGpCompatibility::CompatAutocorrCurves::toPointVector(), QGpCompatibility::CompatAutocorrCurves::toStream(), QGpCompatibility::CompatMultiModalCurves::toStream(), QGpCompatibility::CompatAutocorrData::valuesToData(), QGpCompatibility::CompatMultiModalCurves::valuesToReport(), QGpCompatibility::CompatAutocorrCurves::valuesToReport(), and QGpCompatibility::CompatAutocorrData::weight().
double* QGpCompatibility::CompatMultiModalFrequency::_omegas [protected] |
Storage for omegas where to calculate the dispersion.
Referenced by QGpCompatibility::CompatAutocorrCurves::calculate(), QGpCompatibility::CompatHodoChroneData::calculate(), QGpCompatibility::CompatDispersion::checkSlopes(), CompatMultiModalFrequency(), QGpCompatibility::CompatDispersionData::curve(), QGpCompatibility::CompatEllipticityData::curve(), frequencies(), QGpCompatibility::CompatDispersionData::groupSlowness(), isSameOmegas(), QGpCompatibility::CompatDispersionData::maxDataFrequency(), QGpCompatibility::CompatDispersionData::minDataFrequency(), omegaToReport(), periods(), reportToOmega(), setFrequencies(), setPeriods(), QGpCompatibility::CompatMultiModalCurves::toPointVector(), QGpCompatibility::CompatAutocorrCurves::toPointVector(), QGpCompatibility::CompatMultiModalCurves::toStream(), QGpCompatibility::CompatAutocorrCurves::toStream(), and ~CompatMultiModalFrequency().
int QGpCompatibility::CompatMultiModalFrequency::_omegasCount [protected] |
Number of omegas where to calculate the dispersion.
Referenced by QGpCompatibility::CompatAutocorrData::allocatesData(), QGpCompatibility::CompatMultiModalCurves::allocatesValues(), QGpCompatibility::CompatAutocorrCurves::allocatesValues(), QGpCompatibility::CompatAutocorrCurves::calculate(), QGpCompatibility::CompatHodoChroneData::calculate(), QGpCompatibility::CompatDispersion::checkSlopes(), QGpCompatibility::CompatMultiModalCurves::clear(), QGpCompatibility::CompatDispersionData::closestModeMisfit(), QGpCompatibility::CompatAutocorrData::CompatAutocorrData(), QGpCompatibility::CompatMultiModalCurves::CompatMultiModalCurves(), CompatMultiModalFrequency(), QGpCompatibility::CompatAutocorrData::dataToReport(), QGpCompatibility::CompatAutocorrData::distanceMeasurements(), QGpCompatibility::CompatAutocorrData::distanceStddev(), frequencies(), QGpCompatibility::CompatAutocorrData::isSameData(), isSameOmegas(), QGpCompatibility::CompatAutocorrData::measurements(), QGpCompatibility::CompatDispersionData::misfit(), QGpCompatibility::CompatDispersion::omegasCount(), QGpCompatibility::CompatAutocorrCurves::omegasCount(), omegaToReport(), periods(), QGpCompatibility::CompatAutocorrData::reportToData(), QGpCompatibility::CompatAutocorrData::reportToDataWeight(), reportToOmega(), QGpCompatibility::CompatMultiModalCurves::reportToValues(), QGpCompatibility::CompatAutocorrCurves::resetAutocorr(), QGpCompatibility::CompatEllipticity::resetValues(), QGpCompatibility::CompatDispersion::resetValues(), QGpCompatibility::CompatAutocorrCurves::resetValues(), setFrequencies(), setPeriods(), QGpCompatibility::CompatHodoChroneData::setSource(), QGpCompatibility::CompatMultiModalCurves::setValues(), QGpCompatibility::CompatAutocorrData::stddev(), QGpCompatibility::CompatAutocorrCurves::toDistancePointVector(), QGpCompatibility::CompatMultiModalCurves::toPointVector(), QGpCompatibility::CompatAutocorrCurves::toPointVector(), QGpCompatibility::CompatMultiModalCurves::toStream(), QGpCompatibility::CompatAutocorrCurves::toStream(), QGpCompatibility::CompatAutocorrData::valuesToData(), QGpCompatibility::CompatMultiModalCurves::valuesToReport(), QGpCompatibility::CompatAutocorrCurves::valuesToReport(), and QGpCompatibility::CompatAutocorrData::weight().