     {
         a++;
 
-        if((expr_inf_coeff[a] != 0) || (expr_sup_coeff[a] != 0))
-        {
-            elina_double_interval_mul_cst_coeff(&tmp1, &tmp2, expr_inf_coeff[a], expr_sup_coeff[a], aux_inf_cst[i], aux_sup_cst[i]);
+        const float_type prev_inf_coeff = expr_inf_coeff[a];
+        const float_type prev_sup_coeff = expr_sup_coeff[a];
+
+        if((prev_inf_coeff != 0) || (prev_sup_coeff != 0))
+        {
+            elina_double_interval_mul_cst_coeff(&tmp1, &tmp2, prev_inf_coeff, prev_sup_coeff, aux_inf_cst[i], aux_sup_cst[i]);
 
             maxRes = fmax(fabs(inf_cst), fabs(sup_cst));
             maxMul = fmax(fabs(tmp1), fabs(tmp2));

            a++;
            c += num_in_neurons_current_layer;

            if((expr_inf_coeff[a] != 0) || (expr_sup_coeff[a] != 0))
            {
                elina_double_interval_mul_expr_coeff(&tmp1, &tmp2, expr_inf_coeff[a], expr_sup_coeff[a], aux_inf_coeff[c], aux_sup_coeff[c]);

                maxRes = fmax(fabs(inf_coeff), fabs(sup_coeff));
                maxMul = fmax(fabs(tmp1), fabs(tmp2));

}


// TODO: Try to load values from aux-array only once and use them multiple times!
__global__
void coeffs_from_previous_layer(const float_type* __restrict__ expr_inf_coeff, const float_type* __restrict__ expr_sup_coeff, float_type* __restrict__ res_inf_coeff, float_type* __restrict__ res_sup_coeff, const float_type* __restrict__ aux_inf_coeff, const float_type* __restrict__ aux_sup_coeff, const size_t num_out_neurons_last_layer, const size_t num_out_neurons_current_layer, const size_t num_in_neurons_current_layer)
{
