Average Error: 0.0 → 0.0
Time: 6.5m
Precision: 64
Internal Precision: 128
\[\lambda_1 + \tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\cos \phi_1 + \cos \phi_2 \cdot \cos \left(\lambda_1 - \lambda_2\right)}\]
\[\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\cos \phi_2 \cdot \cos \left(\lambda_1 - \lambda_2\right) + \cos \phi_1} + \lambda_1\]

Error

Bits error versus lambda1

Bits error versus lambda2

Bits error versus phi1

Bits error versus phi2

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.0

    \[\lambda_1 + \tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\cos \phi_1 + \cos \phi_2 \cdot \cos \left(\lambda_1 - \lambda_2\right)}\]
  2. Final simplification0.0

    \[\leadsto \tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\cos \phi_2 \cdot \cos \left(\lambda_1 - \lambda_2\right) + \cos \phi_1} + \lambda_1\]

Reproduce

herbie shell --seed 2019022 
(FPCore (lambda1 lambda2 phi1 phi2)
  :name "Midpoint on a great circle"
  (+ lambda1 (atan2 (* (cos phi2) (sin (- lambda1 lambda2))) (+ (cos phi1) (* (cos phi2) (cos (- lambda1 lambda2)))))))

Details

Time bar (total: 6.5m)Debug log

sample13.0s

Algorithm
intervals
Results
12.5s1653×body10240exit
358.0ms172×body1280valid
82.0ms61×body640valid
18.0ms19×body320valid
3.0msbody160valid

simplify16.0ms

Counts
1 → 1
Calls
1 calls:
Slowest
15.0ms
(+ lambda1 (atan2 (* (cos phi2) (sin (- lambda1 lambda2))) (+ (cos phi1) (* (cos phi2) (cos (- lambda1 lambda2))))))

prune18.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 0b

localize107.0ms

Local error

Found 4 expressions with local error:

7.0b
(sin (- lambda1 lambda2))
6.9b
(cos (- lambda1 lambda2))
0.6b
(+ (cos phi1) (* (cos phi2) (cos (- lambda1 lambda2))))
0.2b
(* (cos phi2) (cos (- lambda1 lambda2)))

rewrite28.0ms

Algorithm
rewrite-expression-head
Rules
add-log-exp
add-cube-cbrt
add-exp-log
add-cbrt-cube
*-un-lft-identity
pow1
add-sqr-sqrt
cos-diff
associate-*l*
associate-*r*
sin-sum
distribute-lft-in
sub-neg
associate-+r+
cos-sum
distribute-rgt-in
flip-+
cbrt-unprod
*-commutative
sin-diff
cos-mult
prod-exp
pow-prod-down
flip3-+
sum-log
+-commutative
Counts
4 → 53
Calls
4 calls:
Slowest
10.0ms
(* (cos phi2) (cos (- lambda1 lambda2)))
8.0ms
(+ (cos phi1) (* (cos phi2) (cos (- lambda1 lambda2))))
4.0ms
(sin (- lambda1 lambda2))
3.0ms
(cos (- lambda1 lambda2))

series223.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
106.0ms
(+ (cos phi1) (* (cos phi2) (cos (- lambda1 lambda2))))
64.0ms
(* (cos phi2) (cos (- lambda1 lambda2)))
32.0ms
(sin (- lambda1 lambda2))
21.0ms
(cos (- lambda1 lambda2))

simplify674.0ms

Counts
32 → 65
Calls
32 calls:
Slowest
129.0ms
(- 1 (+ (* 1/2 (pow lambda1 2)) (* 1/2 (pow phi2 2))))
118.0ms
(- 2 (+ (* 1/2 (pow phi2 2)) (* 1/2 (pow phi1 2))))
100.0ms
(* (* (* (cos phi2) (cos phi2)) (cos phi2)) (* (* (cos (- lambda1 lambda2)) (cos (- lambda1 lambda2))) (cos (- lambda1 lambda2))))
62.0ms
(- lambda1 (+ lambda2 (* 1/6 (pow lambda1 3))))
44.0ms
(+ (cos (+ phi2 (- lambda1 lambda2))) (cos (- phi2 (- lambda1 lambda2))))

prune1.1s

Pruning

1 alts after pruning (0 fresh and 1 done)

Merged error: 0b

end0.0ms

sample6.3m

Algorithm
intervals
Results
6.0m58971×body10240exit
12.7s5439×body1280valid
2.7s2017×body640valid
371.0ms435×body320valid
48.0ms89×body160valid
6.0ms20×body80valid