Brief description of class still missing. More...
#include <Histogram2D.h>
Public Member Functions | |
| void | countSamples () |
| Histogram2D (int nx, int ny) | |
| Curve< RealStatisticalPoint > | meanCurve () |
| Curve< RealStatisticalPoint > | medianCurve () |
| Curve< RealStatisticalPoint > | modeCurve () |
| void | setSamples (const QVector< Sample > &s) |
| void | setValid (const Rect &limits, bool v) |
| void | setXSampling (double min, double max, SamplingOptions sampling) |
| void | setYSampling (double min, double max, SamplingOptions sampling) |
| SamplingOptions | xSampling () const |
| SamplingOptions | ySampling () const |
| ~Histogram2D () | |
Brief description of class still missing.
Full description of class still missing
| Histogram2D::Histogram2D | ( | int | nx, |
| int | ny | ||
| ) |
Description of constructor still missing
References QGpCoreTools::LinearScale, and TRACE.
: IrregularGrid2D(nx, ny) { TRACE; _xSampling=LinearScale; _ySampling=LinearScale; }
| void Histogram2D::countSamples | ( | ) |
References QGpCoreTools::IrregularGrid2D::indexOfX(), QGpCoreTools::IrregularGrid2D::indexOfY(), QGpCoreTools::IrregularGrid2D::init(), Sample::isValid(), QGpCoreTools::IrregularGrid2D::nx(), QGpCoreTools::IrregularGrid2D::ny(), TRACE, QGpCoreTools::IrregularGrid2D::valuePointer(), QGpCoreTools::Point2D::x(), and QGpCoreTools::Point2D::y().
Referenced by setSamples().
{
TRACE;
init(0.0); // Reset all hit count to 0
int ix, iy;
QVector<Sample>::iterator it;
if(nx()==1) {
for(it=_samples.begin();it!=_samples.end();++it) {
Sample& s=*it;
if(s.isValid()) {
iy=indexOfY(s.y());
if(iy>-1 && iy<ny()) {
//ASSERT(left(ix)<=s.x() && s.x()<=right(ix));
//ASSERT(bottom(iy)<=s.y() && s.y()<=top(iy));
(*valuePointer(0, iy))++;
}
}
}
} else {
for(it=_samples.begin();it!=_samples.end();++it) {
Sample& s=*it;
if(s.isValid()) {
ix=indexOfX(s.x());
iy=indexOfY(s.y());
if(ix>-1 && ix<nx() && iy>-1 && iy<ny()) {
//ASSERT(left(ix)<=s.x() && s.x()<=right(ix));
//ASSERT(bottom(iy)<=s.y() && s.y()<=top(iy));
(*valuePointer(ix, iy))++;
}
}
}
}
}
References QGpCoreTools::IrregularGrid2D::inverse(), QGpCoreTools::InversedScale, QGpCoreTools::IrregularGrid2D::log10(), QGpCoreTools::LogScale, QGpCoreTools::IrregularGrid2D::mean(), QGpCoreTools::IrregularGrid2D::normalize(), QGpCoreTools::IrregularGrid2D::nx(), QGpCoreTools::StatisticalValue< numberType >::setMean(), QGpCoreTools::StatisticalValue< numberType >::setStddev(), QGpCoreTools::StatisticalValue< numberType >::setWeight(), QGpCoreTools::StatisticalPoint< numberType >::setX(), QGpCoreTools::sqrt(), QGpCoreTools::IrregularGrid2D::sum(), TRACE, QGpCoreTools::IrregularGrid2D::variance(), QGpCoreTools::IrregularGrid2D::x(), and QGpCoreTools::YAxis.
Referenced by main().
{
TRACE;
IrregularGrid2D grid=*this;
if(_ySampling & LogScale) grid.log10(YAxis);
else if(_ySampling & InversedScale) grid.inverse(YAxis);
Curve<RealStatisticalPoint> c(grid.nx());
for(int i=0;i < grid.nx();i++ ) {
RealStatisticalPoint& p=c[i];
p.setX(grid.x(i));
double normFactor=grid.normalize(YAxis, i);
double a=grid.mean(YAxis, i);
if(_ySampling & LogScale) {
p.setMean(pow( 10.0, a) );
p.setStddev(pow( 10.0, sqrt(grid.variance(YAxis, i, a) )) );
} else if(_ySampling & InversedScale) {
p.setMean(1.0/a);
p.setStddev(1.0/sqrt(grid.variance(YAxis, i, a) ));
} else {
p.setMean(a);
p.setStddev(sqrt( grid.variance(YAxis, i, a) ));
}
p.setWeight(grid.sum(YAxis, i)*normFactor);
}
c.setFunction();
return c;
}
References QGpCoreTools::IrregularGrid2D::inverse(), QGpCoreTools::InversedScale, QGpCoreTools::IrregularGrid2D::log10(), QGpCoreTools::LogScale, QGpCoreTools::IrregularGrid2D::median(), QGpCoreTools::IrregularGrid2D::normalize(), QGpCoreTools::IrregularGrid2D::nx(), QGpCoreTools::StatisticalValue< numberType >::setMean(), QGpCoreTools::StatisticalValue< numberType >::setStddev(), QGpCoreTools::StatisticalValue< numberType >::setWeight(), QGpCoreTools::StatisticalPoint< numberType >::setX(), QGpCoreTools::sqrt(), QGpCoreTools::IrregularGrid2D::sum(), TRACE, QGpCoreTools::IrregularGrid2D::variance(), QGpCoreTools::IrregularGrid2D::x(), and QGpCoreTools::YAxis.
Referenced by main().
{
TRACE;
IrregularGrid2D grid=*this;
if(_ySampling & LogScale) grid.log10(YAxis);
else if(_ySampling & InversedScale) grid.inverse(YAxis);
Curve<RealStatisticalPoint> c(grid.nx());
for(int i=0;i < grid.nx();i++ ) {
RealStatisticalPoint& p=c[i];
p.setX(grid.x(i));
double normFactor=grid.normalize(YAxis, i);
double a=grid.median(YAxis, i);
if(_ySampling & LogScale) {
p.setMean(pow( 10.0, a) );
p.setStddev(pow( 10.0, sqrt(grid.variance(YAxis, i, a) )) );
} else if(_ySampling & InversedScale) {
p.setMean(1.0/a);
p.setStddev(1.0/sqrt(grid.variance(YAxis, i, a) ));
} else {
p.setMean(a);
p.setStddev(sqrt( grid.variance(YAxis, i, a) ));
}
p.setWeight(grid.sum(YAxis, i)*normFactor);
}
c.setFunction();
return c;
}
References QGpCoreTools::IrregularGrid2D::inverse(), QGpCoreTools::InversedScale, QGpCoreTools::IrregularGrid2D::log10(), QGpCoreTools::LogScale, QGpCoreTools::IrregularGrid2D::mode(), QGpCoreTools::IrregularGrid2D::normalize(), QGpCoreTools::IrregularGrid2D::nx(), QGpCoreTools::StatisticalValue< numberType >::setMean(), QGpCoreTools::StatisticalValue< numberType >::setStddev(), QGpCoreTools::StatisticalValue< numberType >::setWeight(), QGpCoreTools::StatisticalPoint< numberType >::setX(), QGpCoreTools::sqrt(), QGpCoreTools::IrregularGrid2D::sum(), TRACE, QGpCoreTools::IrregularGrid2D::variance(), QGpCoreTools::IrregularGrid2D::x(), and QGpCoreTools::YAxis.
Referenced by main().
{
TRACE;
IrregularGrid2D grid=*this;
if(_ySampling & LogScale) grid.log10(YAxis);
else if(_ySampling & InversedScale) grid.inverse(YAxis);
Curve<RealStatisticalPoint> c(grid.nx());
for(int i=0;i < grid.nx();i++ ) {
RealStatisticalPoint& p=c[i];
p.setX(grid.x(i));
double normFactor=grid.normalize(YAxis, i);
double a=grid.mode(YAxis, i);
if(_ySampling & LogScale) {
p.setMean(pow( 10.0, a) );
p.setStddev(pow( 10.0, sqrt(grid.variance(YAxis, i, a) )) );
} else if(_ySampling & InversedScale) {
p.setMean(1.0/a);
p.setStddev(1.0/sqrt(grid.variance(YAxis, i, a) ));
} else {
p.setMean(a);
p.setStddev(sqrt( grid.variance(YAxis, i, a) ));
}
p.setWeight(grid.sum(YAxis, i)*normFactor);
}
c.setFunction();
return c;
}
| void Histogram2D::setSamples | ( | const QVector< Sample > & | s | ) |
References countSamples(), and TRACE.
Referenced by HistogramReader::histogram().
{
TRACE;
_samples=s;
countSamples();
}
| void Histogram2D::setValid | ( | const Rect & | limits, |
| bool | v | ||
| ) |
References QGpCoreTools::Rect::includes(), QGpCoreTools::Rect::printDebug(), Sample::setValid(), and TRACE.
{
TRACE;
limits.printDebug();
QVector<Sample>::iterator it;
for(it=_samples.begin();it!=_samples.end();++it) {
Sample& s=*it;
if(limits.includes(s)) {
s.setValid(v);
}
}
}
| void Histogram2D::setXSampling | ( | double | min, |
| double | max, | ||
| SamplingOptions | sampling | ||
| ) |
References QGpCoreTools::Function, QGpCoreTools::Curve< pointType >::line(), QGpCoreTools::IrregularGrid2D::nx(), QGpCoreTools::Curve< pointType >::resample(), QGpCoreTools::IrregularGrid2D::setX(), TRACE, and QGpCoreTools::Curve< pointType >::xVector().
Referenced by HistogramReader::histogram().
{
TRACE;
_xSampling=sampling;
Curve<Point1D> c;
c.line(min, max);
c.resample(nx(), min, max, _xSampling | Function);
QVector<double> values=c.xVector();
for(int i=0; i<nx(); i++ ) setX(i, values[i] );
}
| void Histogram2D::setYSampling | ( | double | min, |
| double | max, | ||
| SamplingOptions | sampling | ||
| ) |
References QGpCoreTools::Function, QGpCoreTools::Curve< pointType >::line(), QGpCoreTools::IrregularGrid2D::ny(), QGpCoreTools::Curve< pointType >::resample(), QGpCoreTools::IrregularGrid2D::setY(), TRACE, and QGpCoreTools::Curve< pointType >::xVector().
Referenced by HistogramReader::histogram().
{
TRACE;
_ySampling=sampling;
Curve<Point1D> c;
c.line(min, max);
c.resample(ny(), min, max, _ySampling | Function);
QVector<double> values=c.xVector();
for(int i=0; i<ny(); i++ ) setY(i, values[i] );
}
| SamplingOptions Histogram2D::xSampling | ( | ) | const [inline] |
{return _xSampling;}
| SamplingOptions Histogram2D::ySampling | ( | ) | const [inline] |
{return _ySampling;}