10#ifndef FUT_DENSITY_HPP
11#define FUT_DENSITY_HPP
15#include "FgSerial.hpp"
29 void setMean(
double m) {meanP = m;}
30 void setStd(
double m,
double s);
31 double lnDensityRatio(
double)
const;
32 double valToMahal(
double)
const;
33 double mahalToVal(
double)
const;
34 double mean()
const {
return meanP;};
35 double variance()
const {
return (0.5 / inv_2_var);}
36 double std()
const {
return (1.0 / inv_std);}
41 double valToMahal(
double x)
const {
return x;}
42 double mahalToVal(
double x)
const {
return x;}
43 double lnDensityRatio(
double x)
const {
return -0.5 * x*x;}
46inline void FutNormDensityC::setStd(
53 inv_2_var = 1.0 / (2.0 * s * s);
59FutNormDensityC::valToMahal(
double x)
const
61 return ((x - meanP) * inv_std);
66FutNormDensityC::mahalToVal(
double x)
const
68 return (x / inv_std + meanP);
72double FutNormDensityC::lnDensityRatio(
double x)
const
74 return (-sqr(x - meanP) * inv_2_var);