 
 
 __global__
-void print_bounds(float_type* bounds_array, const size_t num_out_neurons)
+void print_bounds(const float_type* __restrict__ bounds_array, const size_t num_out_neurons)
 {
     for(size_t i = 0; i < num_out_neurons; i++)
     {



__global__
void create_sub_expr(float_type* inf_coeff, float_type* sup_coeff, float_type* inf_cst, float_type* sup_cst, const size_t index, const elina_dim_t y, const elina_dim_t x)
{
    inf_cst[index] = 0;
    sup_cst[index] = 0;



__global__
void copy_expr_array(float_type* __restrict__ target_inf_coeff, float_type* __restrict__ target_sup_coeff, float_type* __restrict__ target_inf_cst, float_type* __restrict__ target_sup_cst, const float_type* __restrict__ source_inf_coeff, const float_type* __restrict__ source_sup_coeff, const float_type* __restrict__ source_inf_cst, const float_type* __restrict__ source_sup_cst, const size_t num_exprs, const size_t expr_size)
{
    const size_t i = blockIdx.x;

