/** * @file LHCumulativeGauss.h * @author Erik Rodner * @date 02/17/2010 */ #ifndef _NICE_OBJREC_LHCUMULATIVEGAUSSINCLUDE #define _NICE_OBJREC_LHCUMULATIVEGAUSSINCLUDE #include "LikelihoodFunction.h" namespace OBJREC { /** @class LHCumulativeGauss * cumulative gauss function * * @author Erik Rodner */ class LHCumulativeGauss : public LikelihoodFunction { protected: double lengthScale; double bias; public: /** a length scale of the likelihood function correspondes * to a an inverse scaling of the gp prior, thus you * could optimize this parameter by optimizing a hyperparameter * of the kernel function */ LHCumulativeGauss ( double lengthScale = 1.0, double bias = 0.0 ); /** needed for hyperparameter estimation */ double thirdgrad ( double y, double f ) const; double hessian ( double y, double f ) const; double gradient ( double y, double f ) const; double logLike ( double y, double f ) const; double likelihood ( double y, double f ) const; double predictAnalytically ( double fmean, double fvariance ) const; static double stdNormPDF ( double x ); }; } #endif