12 #define STATS(value) ( (value<254) ? stats_t<float>(value) : saturated ) 14 const unsigned N=
q.size();
16 Q[0] = Q[N+1] = suppressed;
19 Q[1] =
STATS(
q[0])/(1-2*x);
24 Q[1] = ( A*q0 -x*
q1 ) / (A*A-x*x);
25 Q[2] = ( A*q1 -x*q0 ) / (A*A-x*x);
29 for(
unsigned i=0;
i<(N+1)/2;
i++) {
30 for(
unsigned j=
i; j<N-
i; j++) {
31 const float Cij = inverse(i+1,j+1);
32 Q[i+1] += Cij *
STATS(
q[ j ]) ;
34 Q[j+1] += Cij *
STATS(
q[ i ]) ;
36 Q[N-
i] += Cij *
STATS(
q[N-j-1]) ;
38 Q[N-j] += Cij *
STATS(
q[N-i-1]) ;
62 element(
const unsigned i,
const unsigned j)
const
constexpr bool isNotFinite(T x)
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
const std::vector< uint8_t > & amplitudes() const
Power< A, B >::type pow(const A &a, const B &b)