                                 const size_t filter_index = out_z*filter_size_x*filter_size_y*input_size_z + x_shift*filter_size_y*input_size_z + y_shift*input_size_z + inp_z;
 
                                 const float_type aux_coeff = aux_coeffs[filter_index];
-                                elina_double_interval_mul_expr_coeff(&tmp1, &tmp2, prev_inf_coeff, prev_sup_coeff, aux_coeff, aux_coeff);
-
-                                maxRes = max(fabs(inf_coeff), fabs(sup_coeff));
-                                maxMul = max(fabs(tmp1), fabs(tmp2));
+                                elina_double_interval_mul_expr_coeff_const_expr(&tmp1, &tmp2, prev_inf_coeff, prev_sup_coeff, aux_coeff);
+
+                                maxRes = max(abs(inf_coeff), abs(sup_coeff));
+                                maxMul = max(abs(tmp1), abs(tmp2));
 
                                 inf_coeff = inf_coeff + tmp1 - (maxRes + maxMul)*ulp;
                                 sup_coeff = sup_coeff + tmp2 + (maxRes + maxMul)*ulp;

                {
                    float_type aux_cst = aux_csts[out_z];

                    elina_double_interval_mul_cst_coeff(&tmp1, &tmp2, prev_inf_coeff, prev_sup_coeff, aux_cst, aux_cst);

                    maxRes = max(fabs(inf_cst), fabs(sup_cst));
                    maxMul = max(fabs(tmp1), fabs(tmp2));

                    inf_cst += tmp1 - (maxRes + maxMul)*ulp - min_denormal;
                    sup_cst += tmp2 + (maxRes + maxMul)*ulp + min_denormal;

}


__device__
void elina_double_interval_mul_const_c(float_type* const a_inf, float_type* const a_sup, const float_type b_inf, const float_type b_sup, const float_type c)
{
    if(c >= 0)
    {
        *a_inf = b_inf*c;
        *a_sup = b_sup*c;
    }
    else
    {
        *a_inf = b_sup*c;
        *a_sup = b_inf*c;
    }
}


fppoly_t* fppoly_of_abstract0(elina_abstract0_t* a)
{
    return (fppoly_t*) a->value;
