 
 
 __global__
-void compute_lb_from_expr(float_type* lb_array, float_type* inf_coeff, float_type* sup_coeff, const float_type* inf_cst, const float_type* input_inf, const float_type* input_sup, const size_t num_exprs, const size_t expr_size)
+void compute_lb_from_expr(float_type* __restrict__ lb_array, const float_type* __restrict__ inf_coeff, const float_type* __restrict__ sup_coeff, const float_type* __restrict__ inf_cst, const float_type* __restrict__ input_inf, const float_type* __restrict__ input_sup, const size_t num_exprs, const size_t expr_size)
 {
     const size_t n = blockIdx.x;
 



__global__
void uexpr_replace_relu_bounds(float_type* inf_coeff, float_type* sup_coeff, float_type* inf_cst, float_type* sup_cst, float_type* lb_array, float_type* ub_array, const size_t num_out_neurons_last_layer, const size_t num_out_neurons_current_layer)
{
    const size_t n = blockIdx.x;
    const size_t i = blockIdx.y*blockDim.x + threadIdx.x;



__global__
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++)
    {
