 
 void update_state_using_predecessor_layer_sparse(fppoly_internal_t* pr, fppoly_t* fp, float_type** linf_coeff, float_type** lsup_coeff, float_type** linf_cst, float_type** lsup_cst, float_type** uinf_coeff, float_type** usup_coeff, float_type** uinf_cst, float_type** usup_cst, float_type** linf_coeff_tmp, float_type** lsup_coeff_tmp, float_type** linf_cst_tmp, float_type** lsup_cst_tmp, float_type** uinf_coeff_tmp, float_type** usup_coeff_tmp, float_type** uinf_cst_tmp, float_type** usup_cst_tmp, const size_t layerno, const size_t k, const bool use_area_heuristic, const size_t x_y_size_last_layer, const size_t num_filters_last_layer, const size_t num_chunks, long int& offset_x, long int& offset_y, long int& length_x, long int& length_y, long int& shift_x, long int& shift_y)
 {
-    const size_t num_out_neurons_current_layer = fp->layers[k]->num_out_neurons;
-    const size_t num_in_neurons_current_layer  = fp->layers[k]->num_in_neurons;
-    std::cout << "num_out_neurons_current " << num_out_neurons_current_layer << " num_in_neurons_current " << num_in_neurons_current_layer << std::endl;
+    //const size_t num_out_neurons_current_layer = fp->layers[k]->num_out_neurons;
+    //const size_t num_in_neurons_current_layer  = fp->layers[k]->num_in_neurons;
+    //std::cout << "num_out_neurons_current " << num_out_neurons_current_layer << " num_in_neurons_current " << num_in_neurons_current_layer << std::endl;
 
     float_type* aux_coeffs;
     float_type* aux_csts;


    const size_t num_in_neurons_0_layer = fp->layers[0]->num_in_neurons;

    std::cout << "num_out_neurons_last " << num_out_neurons_last_layer << std::endl;

    float_type* coeffs = fp->layers[layerno]->coeffs;
    float_type* csts = fp->layers[layerno]->csts;

            iter = fp->layers[iter]->predecessors[0] - 1;
        }

        //std::cout << "offset_x " << offset_x << " offset_y " << offset_y << std::endl;
        //std::cout << "length_x " << length_x << " length_y " << length_y << std::endl;
        //std::cout << "shift_x " << shift_x << " shift_y " << shift_y << std::endl;
        //std::cout << "copy_offset_x " << copy_offset_x << " copy_offset_y " << copy_offset_y << std::endl;
        //std::cout << "copy_length_x " << copy_length_x << " copy_length_y " << copy_length_y << std::endl;
        //std::cout << "copy_shift_x " << copy_shift_x << " copy_shift_y " << copy_shift_y << std::endl;

        if(copy_length_x > length_x)
        {
