\left(earth_radius_km \cdot earth_radius_km + \left(earth_radius_km + satellite_height_km\right) \cdot \left(earth_radius_km + satellite_height_km\right)\right) - \left(2 \cdot earth_radius_km\right) \cdot \left(earth_radius_km + satellite_height_km\right)
\left(earth_radius_km \cdot earth_radius_km + \left(earth_radius_km + satellite_height_km\right) \cdot \left(earth_radius_km + satellite_height_km\right)\right) - \left(2 \cdot earth_radius_km\right) \cdot \left(earth_radius_km + satellite_height_km\right)
double code(double earth_radius_km, double satellite_height_km) {
return ((double) (((double) (((double) (earth_radius_km * earth_radius_km)) + ((double) (((double) (earth_radius_km + satellite_height_km)) * ((double) (earth_radius_km + satellite_height_km)))))) - ((double) (((double) (2.0 * earth_radius_km)) * ((double) (earth_radius_km + satellite_height_km))))));
}
double code(double earth_radius_km, double satellite_height_km) {
return ((double) (((double) (((double) (earth_radius_km * earth_radius_km)) + ((double) (((double) (earth_radius_km + satellite_height_km)) * ((double) (earth_radius_km + satellite_height_km)))))) - ((double) (((double) (2.0 * earth_radius_km)) * ((double) (earth_radius_km + satellite_height_km))))));
}



Bits error versus earth_radius_km



Bits error versus satellite_height_km
Results
Initial program 25.8
Final simplification25.8
herbie shell --seed 2020153
(FPCore (earth_radius_km satellite_height_km)
:name "(- (+ (* earth_radius_km earth_radius_km) (* (+ earth_radius_km satellite_height_km) (+ earth_radius_km satellite_height_km))) (* (* 2 earth_radius_km) (+ earth_radius_km satellite_height_km)))"
:precision binary64
(- (+ (* earth_radius_km earth_radius_km) (* (+ earth_radius_km satellite_height_km) (+ earth_radius_km satellite_height_km))) (* (* 2.0 earth_radius_km) (+ earth_radius_km satellite_height_km))))