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;}