34 m_pixel_sampling(pixel_sampling), m_components(components), m_group_degrees(group_degrees), m_coefficients(coefficients)
39 [](
const Component& c) { return c.name; });
43 m_pixel_sampling(pixel_sampling), m_coefficients{constant}
78 for (
auto j = 0u; j < scaled_props.size(); ++j) {
84 result->at(
x,
y) += acc * coef->at(
x,
y);
104 ++n_component_per_group[component.group_id];
108 unsigned int n_coefficients = 1;
109 for (
unsigned int g = 0;
g < n_component_per_group.
size(); ++
g) {
111 int n = n_component_per_group[
g];
112 int d = std::min<int>(dmax, n);
115 for (num = 1, den = 1; d > 0; num *= (n+dmax--), den*= d--);
117 n_coefficients *= num / den;
122 <<
" expected " << n_coefficients;
130 if (coeff->getWidth() != psf_width || coeff->getHeight() != psf_height) {
131 throw Elements::Exception() <<
"Malformed variable PSF, coefficient matrices do not have the same dimensions";
143 for (
auto i = 0u; i < values.
size(); ++i) {
169 if (group_exponents[component.group_id] > 0) {
170 --group_exponents[component.group_id];
175 group_exponents[component.group_id] =
exp[ei];