lsst.gauss2d.fit
g199a45376c+7362695278
Toggle main menu visibility
Loading...
Searching...
No Matches
math.h
1
#ifndef LSST_GAUSS2D_FIT_MATH_H
2
#define LSST_GAUSS2D_FIT_MATH_H
3
4
#include <cmath>
5
6
namespace
lsst::gauss2d::fit {
7
8
const
double
LOG_1 = log(1);
9
const
double
SQRT_2_PI = sqrt(2. * M_PI);
10
const
double
LOG_1_M_LOG_SQRT_2_PI = LOG_1 - log(SQRT_2_PI);
11
12
template
<
typename
T>
13
T logit(T p) {
14
return
log(p / (1 + p));
15
}
16
17
template
<
typename
T>
18
double
logpdf_norm(T residual, T sigma) {
19
return
LOG_1_M_LOG_SQRT_2_PI - log(sigma) - residual * residual / 2;
20
}
21
22
template
<
template
<
typename
...>
class
Container,
class
Value>
23
Value sum_iter(
const
Container<Value>& container) {
24
Value sum = 0;
25
for
(
const
auto
& value : container) sum += value;
26
return
sum;
27
}
28
29
}
// namespace lsst::gauss2d::fit
30
31
#endif
// LSST_GAUSS2D_FIT_MATH_H
include
lsst
gauss2d
fit
math.h
Generated by
1.17.0