\left(\pi + radius \cdot \left(cosP \cdot N + sinP \cdot B\right)\right) + \left(sinT \cdot maxRadius\right) \cdot T
\left(\pi + radius \cdot \left(cosP \cdot N + sinP \cdot B\right)\right) + \left(sinT \cdot maxRadius\right) \cdot T
double code(double radius, double cosP, double N, double sinP, double B, double sinT, double maxRadius, double T) {
return ((double) (((double) (((double) M_PI) + ((double) (radius * ((double) (((double) (cosP * N)) + ((double) (sinP * B)))))))) + ((double) (((double) (sinT * maxRadius)) * T))));
}
double code(double radius, double cosP, double N, double sinP, double B, double sinT, double maxRadius, double T) {
return ((double) (((double) (((double) M_PI) + ((double) (radius * ((double) (((double) (cosP * N)) + ((double) (sinP * B)))))))) + ((double) (((double) (sinT * maxRadius)) * T))));
}



Bits error versus radius



Bits error versus cosP



Bits error versus N



Bits error versus sinP



Bits error versus B



Bits error versus sinT



Bits error versus maxRadius



Bits error versus T
Results
Initial program 10.6
Final simplification10.6
herbie shell --seed 2020153
(FPCore (radius cosP N sinP B sinT maxRadius T)
:name "(+ (+ PI (* radius (+ (* cosP N) (* sinP B)))) (* (* sinT maxRadius) T))"
:precision binary64
(+ (+ PI (* radius (+ (* cosP N) (* sinP B)))) (* (* sinT maxRadius) T)))