20 constexpr double kInvSqrt2Pi = 0.3989422804014327;
21 return kInvSqrt2Pi * std::exp(-0.5 * z * z);
25inline double StandardNormalCdf(
double z) {
return 0.5 * (1.0 + std::erf(z / std::sqrt(2.0))); }
41 throw std::invalid_argument(
"ExpectedImprovement: variance must be non-negative");
43 double sigma = std::sqrt(variance);
47 double z = (mean - best_value - xi) / sigma;
60 throw std::invalid_argument(
"ProbabilityOfImprovement: variance must be non-negative");
62 double sigma = std::sqrt(variance);
64 return (mean > best_value + xi) ? 1.0 : 0.0;
66 double z = (mean - best_value - xi) / sigma;
78 throw std::invalid_argument(
"UpperConfidenceBound: variance must be non-negative");
80 return mean + kappa * std::sqrt(variance);
Definition acquisition_functions.hpp:16
double StandardNormalCdf(double z)
Standard normal CDF, Phi(z) = 0.5 * (1 + erf(z / sqrt(2))).
Definition acquisition_functions.hpp:25
double StandardNormalPdf(double z)
Standard normal PDF, phi(z) = (1/sqrt(2*pi)) * exp(-z^2/2).
Definition acquisition_functions.hpp:19
@ ProbabilityOfImprovement