I want to implement a RELU approximation function using a vector with data within the range [-6.33978, 3.21301]

My function is

```
Ctext relu(const Ctext vec, double scale, int vectorSize) {
double lowerBound = -1;
double upperBound = 1;
uint32_t polyDegree = 60;
auto masked_scale = generate_scale_mask(10, vectorSize); // function generates a mask of 0.1 of size vectorSize
auto mask_data = context->MakeCKKSPackedPlaintext(masked_scale, 1, 1);
auto innVec = context->EvalMult(vec, mask_data);
Ctext relu_result = context->EvalChebyshevFunction(
[](double x) -> double { if (x < 0.0) return 0.0; else return x; },
innVec,
lowerBound,
upperBound,
polyDegree);
return relu_result;
```

}

When I run this function, returned cipher does not follow the rule I have set in **double { if (x < 0.0) return 0.0; else return x; }** as values less than 0 are still returned in my **relu_result**. Some of them ar**e turned to positive**, some remain **negative** **values** while a few actually **approximate to 0.**

I am not sure whether I understand how **EvalChebyshevFunction** works in OpenFHE. I will be glad if I can get any help in debugging this function and what I am doing wrong in my implementation.