Average Error: 25.8 → 25.8
Time: 1.8s
Precision: binary64
\[\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)\]
\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))))));
}

Error

Bits error versus earth_radius_km

Bits error versus satellite_height_km

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 25.8

    \[\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)\]
  2. Final simplification25.8

    \[\leadsto \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)\]

Reproduce

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))))