11 #define STATS(value) ((value < 254) ? stats_t<float>(value) : saturated)
13 const unsigned N =
q.size();
15 Q[0] = Q[N + 1] = suppressed;
18 Q[1] =
STATS(
q[0]) / (1 - 2 * x);
20 const double A = 1 - 2 * x;
23 Q[1] = (A * q0 - x * q1) / (A * A - x * x);
24 Q[2] = (A * q1 - x * q0) / (A * A - x * x);
27 for (
unsigned i = 0;
i < (N + 1) / 2;
i++) {
28 for (
unsigned j =
i;
j < N -
i;
j++) {
29 const float Cij = inverse(i + 1,
j + 1);
32 Q[j + 1] += Cij *
STATS(
q[i]);
34 Q[N -
i] += Cij *
STATS(
q[N - j - 1]);
36 Q[N -
j] += Cij *
STATS(
q[N - i - 1]);
48 lambdaP(1 + (1 + sq) / (-x * 2)),
49 lambdaM(1 + (1 - sq) / (-x * 2)),
constexpr bool isNotFinite(T x)
SiStripCluster const & amplitudes() const
float operator()(const unsigned i, const unsigned j) const
InverseCrosstalkMatrix(const unsigned N, const float x)
static std::vector< stats_t< float > > unfold(const SiStripCluster &q, const float x)
float element(const unsigned, const unsigned) const
Power< A, B >::type pow(const A &a, const B &b)