1#ifndef LSST_GAUSS2D_FIT_MATH_H
2#define LSST_GAUSS2D_FIT_MATH_H
6namespace lsst::gauss2d::fit {
8const double LOG_1 = log(1);
9const double SQRT_2_PI = sqrt(2. * M_PI);
10const double LOG_1_M_LOG_SQRT_2_PI = LOG_1 - log(SQRT_2_PI);
14 return log(p / (1 + p));
18double logpdf_norm(T residual, T sigma) {
19 return LOG_1_M_LOG_SQRT_2_PI - log(sigma) - residual * residual / 2;
22template <
template <
typename...>
class Container,
class Value>
23Value sum_iter(
const Container<Value>& container) {
25 for (
const auto& value : container) sum += value;