Average Error: 0.5 → 0.5
Time: 6.7s
Precision: binary64
\[\sin^{-1} \left(\sin lat \cdot \cos distance + \left(\cos lat \cdot \sin distance\right) \cdot \cos azimuth\right)\]
\[\sin^{-1} \left(\sin lat \cdot \cos distance + \left(\cos lat \cdot \sin distance\right) \cdot \cos azimuth\right)\]
\sin^{-1} \left(\sin lat \cdot \cos distance + \left(\cos lat \cdot \sin distance\right) \cdot \cos azimuth\right)
\sin^{-1} \left(\sin lat \cdot \cos distance + \left(\cos lat \cdot \sin distance\right) \cdot \cos azimuth\right)
double code(double lat, double distance, double azimuth) {
	return ((double) asin(((double) (((double) (((double) sin(lat)) * ((double) cos(distance)))) + ((double) (((double) (((double) cos(lat)) * ((double) sin(distance)))) * ((double) cos(azimuth))))))));
}
double code(double lat, double distance, double azimuth) {
	return ((double) asin(((double) (((double) (((double) sin(lat)) * ((double) cos(distance)))) + ((double) (((double) (((double) cos(lat)) * ((double) sin(distance)))) * ((double) cos(azimuth))))))));
}

Error

Bits error versus lat

Bits error versus distance

Bits error versus azimuth

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.5

    \[\sin^{-1} \left(\sin lat \cdot \cos distance + \left(\cos lat \cdot \sin distance\right) \cdot \cos azimuth\right)\]
  2. Final simplification0.5

    \[\leadsto \sin^{-1} \left(\sin lat \cdot \cos distance + \left(\cos lat \cdot \sin distance\right) \cdot \cos azimuth\right)\]

Reproduce

herbie shell --seed 2020152 
(FPCore (lat distance azimuth)
  :name "(asin (+ (* (sin lat) (cos distance)) (* (* (cos lat) (sin distance)) (cos azimuth))))"
  :precision binary64
  (asin (+ (* (sin lat) (cos distance)) (* (* (cos lat) (sin distance)) (cos azimuth)))))