


Bits error versus R



Bits error versus lambda1



Bits error versus lambda2



Bits error versus phi1



Bits error versus phi2
Results
Initial program 16.8
rmApplied cos-diff3.8
Applied distribute-lft-in3.8
rmApplied associate-*l*3.8
rmApplied add-log-exp3.8
rmApplied add-cbrt-cube3.8
Applied add-cbrt-cube3.9
Applied cbrt-unprod3.8
Simplified3.8
Final simplification3.8
herbie shell --seed 2019010
(FPCore (R lambda1 lambda2 phi1 phi2)
:name "Spherical law of cosines"
(* (acos (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))))) R))
Time bar (total: 44.9s)Debug log
| 47.0ms | (* (acos (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))))) R) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 15.0b
Found 4 expressions with local error:
| 2.5b | (cos (- lambda1 lambda2)) |
| 0.3b | (acos (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))))) |
| 0.3b | (* (acos (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))))) R) |
| 0.2b | (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))) |
| 9× | add-exp-log |
| 9× | add-cbrt-cube |
| 9× | pow1 |
| 6× | add-cube-cbrt |
| 6× | *-un-lft-identity |
| 6× | add-sqr-sqrt |
| 4× | add-log-exp |
| 4× | associate-*l* |
| 3× | cbrt-unprod |
| 3× | prod-exp |
| 3× | pow-prod-down |
| 3× | associate-*r* |
| 3× | cos-diff |
| 2× | *-commutative |
| 2× | cos-sum |
| 1× | cos-mult |
| 1× | associate-*l/ |
| 1× | distribute-lft-in |
| 1× | sub-neg |
| 1× | acos-asin |
| 1× | distribute-rgt-in |
| 14.0ms | (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))) |
| 6.0ms | (cos (- lambda1 lambda2)) |
| 5.0ms | (* (acos (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))))) R) |
| 2.0ms | (acos (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))))) |
| 115.0ms | (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))) |
| 79.0ms | (* (acos (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))))) R) |
| 22.0ms | (cos (- lambda1 lambda2)) |
| 20.0ms | (acos (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))))) |
| 252.0ms | (* (* (* (* (cos phi1) (cos phi1)) (cos phi1)) (* (* (cos phi2) (cos phi2)) (cos phi2))) (* (* (cos (- lambda1 lambda2)) (cos (- lambda1 lambda2))) (cos (- lambda1 lambda2)))) |
| 196.0ms | (* (* (* (* (cos phi1) (cos phi2)) (* (cos phi1) (cos phi2))) (* (cos phi1) (cos phi2))) (* (* (cos (- lambda1 lambda2)) (cos (- lambda1 lambda2))) (cos (- lambda1 lambda2)))) |
| 92.0ms | (- 1 (+ (* 1/2 (pow phi2 2)) (* 1/2 (pow phi1 2)))) |
| 53.0ms | (- (+ 1 (* lambda2 lambda1)) (* 1/2 (pow lambda1 2))) |
| 32.0ms | (* (* (cos phi1) (cos phi2)) (* (sin lambda1) (sin lambda2))) |
14 alts after pruning (14 fresh and 0 done)
Merged error: 2.7b
Found 4 expressions with local error:
| 0.4b | (acos (+ (* (sin phi1) (sin phi2)) (+ (* (* (cos phi1) (cos phi2)) (* (cos lambda1) (cos lambda2))) (* (* (cos phi1) (cos phi2)) (* (sin lambda1) (sin lambda2)))))) |
| 0.3b | (* (acos (+ (* (sin phi1) (sin phi2)) (+ (* (* (cos phi1) (cos phi2)) (* (cos lambda1) (cos lambda2))) (* (* (cos phi1) (cos phi2)) (* (sin lambda1) (sin lambda2)))))) R) |
| 0.3b | (* (sin lambda1) (sin lambda2)) |
| 0.2b | (* (* (cos phi1) (cos phi2)) (* (cos lambda1) (cos lambda2))) |
| 18× | add-exp-log |
| 18× | add-cbrt-cube |
| 18× | pow1 |
| 9× | cbrt-unprod |
| 9× | prod-exp |
| 9× | pow-prod-down |
| 7× | add-cube-cbrt |
| 7× | associate-*l* |
| 7× | *-un-lft-identity |
| 7× | add-sqr-sqrt |
| 4× | add-log-exp |
| 4× | cos-mult |
| 4× | associate-*r* |
| 3× | *-commutative |
| 1× | sin-mult |
| 1× | associate-*r/ |
| 1× | associate-*l/ |
| 1× | frac-times |
| 1× | acos-asin |
| 18.0ms | (* (* (cos phi1) (cos phi2)) (* (cos lambda1) (cos lambda2))) |
| 3.0ms | (* (sin lambda1) (sin lambda2)) |
| 2.0ms | (* (acos (+ (* (sin phi1) (sin phi2)) (+ (* (* (cos phi1) (cos phi2)) (* (cos lambda1) (cos lambda2))) (* (* (cos phi1) (cos phi2)) (* (sin lambda1) (sin lambda2)))))) R) |
| 1.0ms | (acos (+ (* (sin phi1) (sin phi2)) (+ (* (* (cos phi1) (cos phi2)) (* (cos lambda1) (cos lambda2))) (* (* (cos phi1) (cos phi2)) (* (sin lambda1) (sin lambda2)))))) |
| 151.0ms | (* (* (cos phi1) (cos phi2)) (* (cos lambda1) (cos lambda2))) |
| 76.0ms | (* (sin lambda1) (sin lambda2)) |
| 62.0ms | (* (acos (+ (* (sin phi1) (sin phi2)) (+ (* (* (cos phi1) (cos phi2)) (* (cos lambda1) (cos lambda2))) (* (* (cos phi1) (cos phi2)) (* (sin lambda1) (sin lambda2)))))) R) |
| 26.0ms | (acos (+ (* (sin phi1) (sin phi2)) (+ (* (* (cos phi1) (cos phi2)) (* (cos lambda1) (cos lambda2))) (* (* (cos phi1) (cos phi2)) (* (sin lambda1) (sin lambda2)))))) |
| 694.0ms | (* (* (* (* (cos phi1) (cos phi2)) (* (cos phi1) (cos phi2))) (* (cos phi1) (cos phi2))) (* (* (* (cos lambda1) (cos lambda2)) (* (cos lambda1) (cos lambda2))) (* (cos lambda1) (cos lambda2)))) |
| 155.0ms | (sqrt (acos (+ (* (sin phi1) (sin phi2)) (+ (* (* (cos phi1) (cos phi2)) (* (cos lambda1) (cos lambda2))) (* (* (cos phi1) (cos phi2)) (* (sin lambda1) (sin lambda2))))))) |
| 135.0ms | (* (acos (+ (* (cos phi1) (* (cos phi2) (* (cos lambda1) (cos lambda2)))) (+ (* (cos phi1) (* (cos phi2) (* (sin lambda2) (sin lambda1)))) (* (sin phi1) (sin phi2))))) R) |
| 128.0ms | (acos (+ (* (cos phi1) (* (cos phi2) (* (cos lambda1) (cos lambda2)))) (+ (* (cos phi1) (* (cos phi2) (* (sin lambda2) (sin lambda1)))) (* (sin phi1) (sin phi2))))) |
| 128.0ms | (- 1 (+ (* 1/2 (pow phi2 2)) (* 1/2 (pow phi1 2)))) |
15 alts after pruning (15 fresh and 0 done)
Merged error: 2.6b
Found 4 expressions with local error:
| 0.4b | (acos (+ (* (sin phi1) (sin phi2)) (+ (* (cos phi1) (* (cos phi2) (* (cos lambda1) (cos lambda2)))) (* (* (cos phi1) (cos phi2)) (* (sin lambda1) (sin lambda2)))))) |
| 0.3b | (* (acos (+ (* (sin phi1) (sin phi2)) (+ (* (cos phi1) (* (cos phi2) (* (cos lambda1) (cos lambda2)))) (* (* (cos phi1) (cos phi2)) (* (sin lambda1) (sin lambda2)))))) R) |
| 0.3b | (* (sin lambda1) (sin lambda2)) |
| 0.2b | (* (* (cos phi1) (cos phi2)) (* (sin lambda1) (sin lambda2))) |
| 18× | add-exp-log |
| 18× | add-cbrt-cube |
| 18× | pow1 |
| 9× | cbrt-unprod |
| 9× | prod-exp |
| 9× | pow-prod-down |
| 7× | add-cube-cbrt |
| 7× | associate-*l* |
| 7× | *-un-lft-identity |
| 7× | add-sqr-sqrt |
| 4× | add-log-exp |
| 4× | associate-*r* |
| 3× | sin-mult |
| 3× | *-commutative |
| 2× | cos-mult |
| 1× | associate-*r/ |
| 1× | associate-*l/ |
| 1× | frac-times |
| 1× | acos-asin |
| 19.0ms | (* (* (cos phi1) (cos phi2)) (* (sin lambda1) (sin lambda2))) |
| 3.0ms | (* (sin lambda1) (sin lambda2)) |
| 2.0ms | (* (acos (+ (* (sin phi1) (sin phi2)) (+ (* (cos phi1) (* (cos phi2) (* (cos lambda1) (cos lambda2)))) (* (* (cos phi1) (cos phi2)) (* (sin lambda1) (sin lambda2)))))) R) |
| 1.0ms | (acos (+ (* (sin phi1) (sin phi2)) (+ (* (cos phi1) (* (cos phi2) (* (cos lambda1) (cos lambda2)))) (* (* (cos phi1) (cos phi2)) (* (sin lambda1) (sin lambda2)))))) |
| 162.0ms | (* (* (cos phi1) (cos phi2)) (* (sin lambda1) (sin lambda2))) |
| 86.0ms | (* (acos (+ (* (sin phi1) (sin phi2)) (+ (* (cos phi1) (* (cos phi2) (* (cos lambda1) (cos lambda2)))) (* (* (cos phi1) (cos phi2)) (* (sin lambda1) (sin lambda2)))))) R) |
| 76.0ms | (* (sin lambda1) (sin lambda2)) |
| 17.0ms | (acos (+ (* (sin phi1) (sin phi2)) (+ (* (cos phi1) (* (cos phi2) (* (cos lambda1) (cos lambda2)))) (* (* (cos phi1) (cos phi2)) (* (sin lambda1) (sin lambda2)))))) |
| 715.0ms | (* (* (* (* (cos phi1) (cos phi2)) (* (cos phi1) (cos phi2))) (* (cos phi1) (cos phi2))) (* (* (* (sin lambda1) (sin lambda2)) (* (sin lambda1) (sin lambda2))) (* (sin lambda1) (sin lambda2)))) |
| 184.0ms | (* (+ (cos (+ phi1 phi2)) (cos (- phi1 phi2))) (- (cos (- lambda1 lambda2)) (cos (+ lambda1 lambda2)))) |
| 159.0ms | (acos (+ (* (cos phi1) (* (cos phi2) (* (cos lambda1) (cos lambda2)))) (+ (* (cos phi1) (* (cos phi2) (* (sin lambda1) (sin lambda2)))) (* (sin phi1) (sin phi2))))) |
| 150.0ms | (* (cbrt (acos (+ (* (sin phi1) (sin phi2)) (+ (* (cos phi1) (* (cos phi2) (* (cos lambda1) (cos lambda2)))) (* (* (cos phi1) (cos phi2)) (* (sin lambda1) (sin lambda2))))))) (cbrt (acos (+ (* (sin phi1) (sin phi2)) (+ (* (cos phi1) (* (cos phi2) (* (cos lambda1) (cos lambda2)))) (* (* (cos phi1) (cos phi2)) (* (sin lambda1) (sin lambda2)))))))) |
| 130.0ms | (acos (+ (* (cos phi1) (* (cos phi2) (* (cos lambda1) (cos lambda2)))) (+ (* (cos phi1) (* (cos phi2) (* (sin lambda2) (sin lambda1)))) (* (sin phi1) (sin phi2))))) |
14 alts after pruning (14 fresh and 0 done)
Merged error: 2.6b
Found 4 expressions with local error:
| 0.4b | (acos (+ (* (sin phi1) (sin phi2)) (+ (* (cos phi1) (* (cos phi2) (* (cos lambda1) (cos lambda2)))) (* (* (cos phi1) (cos phi2)) (* (sin lambda1) (sin lambda2)))))) |
| 0.4b | (exp (acos (+ (* (sin phi1) (sin phi2)) (+ (* (cos phi1) (* (cos phi2) (* (cos lambda1) (cos lambda2)))) (* (* (cos phi1) (cos phi2)) (* (sin lambda1) (sin lambda2))))))) |
| 0.3b | (* (log (exp (acos (+ (* (sin phi1) (sin phi2)) (+ (* (cos phi1) (* (cos phi2) (* (cos lambda1) (cos lambda2)))) (* (* (cos phi1) (cos phi2)) (* (sin lambda1) (sin lambda2)))))))) R) |
| 0.3b | (* (sin lambda1) (sin lambda2)) |
| 10× | associate-*l* |
| 9× | add-cube-cbrt |
| 9× | *-un-lft-identity |
| 9× | add-sqr-sqrt |
| 7× | pow1 |
| 6× | add-exp-log |
| 6× | add-cbrt-cube |
| 6× | exp-prod |
| 5× | add-log-exp |
| 4× | log-pow |
| 3× | associate-*r* |
| 2× | *-commutative |
| 2× | acos-asin |
| 1× | rem-exp-log |
| 1× | sin-mult |
| 1× | cbrt-unprod |
| 1× | prod-exp |
| 1× | pow-prod-down |
| 1× | exp-diff |
| 10.0ms | (* (log (exp (acos (+ (* (sin phi1) (sin phi2)) (+ (* (cos phi1) (* (cos phi2) (* (cos lambda1) (cos lambda2)))) (* (* (cos phi1) (cos phi2)) (* (sin lambda1) (sin lambda2)))))))) R) |
| 6.0ms | (* (sin lambda1) (sin lambda2)) |
| 4.0ms | (exp (acos (+ (* (sin phi1) (sin phi2)) (+ (* (cos phi1) (* (cos phi2) (* (cos lambda1) (cos lambda2)))) (* (* (cos phi1) (cos phi2)) (* (sin lambda1) (sin lambda2))))))) |
| 2.0ms | (acos (+ (* (sin phi1) (sin phi2)) (+ (* (cos phi1) (* (cos phi2) (* (cos lambda1) (cos lambda2)))) (* (* (cos phi1) (cos phi2)) (* (sin lambda1) (sin lambda2)))))) |
| 106.0ms | (* (log (exp (acos (+ (* (sin phi1) (sin phi2)) (+ (* (cos phi1) (* (cos phi2) (* (cos lambda1) (cos lambda2)))) (* (* (cos phi1) (cos phi2)) (* (sin lambda1) (sin lambda2)))))))) R) |
| 82.0ms | (exp (acos (+ (* (sin phi1) (sin phi2)) (+ (* (cos phi1) (* (cos phi2) (* (cos lambda1) (cos lambda2)))) (* (* (cos phi1) (cos phi2)) (* (sin lambda1) (sin lambda2))))))) |
| 59.0ms | (* (sin lambda1) (sin lambda2)) |
| 17.0ms | (acos (+ (* (sin phi1) (sin phi2)) (+ (* (cos phi1) (* (cos phi2) (* (cos lambda1) (cos lambda2)))) (* (* (cos phi1) (cos phi2)) (* (sin lambda1) (sin lambda2)))))) |
| 193.0ms | (* (cbrt (log (exp (acos (+ (* (sin phi1) (sin phi2)) (+ (* (cos phi1) (* (cos phi2) (* (cos lambda1) (cos lambda2)))) (* (* (cos phi1) (cos phi2)) (* (sin lambda1) (sin lambda2))))))))) (cbrt (log (exp (acos (+ (* (sin phi1) (sin phi2)) (+ (* (cos phi1) (* (cos phi2) (* (cos lambda1) (cos lambda2)))) (* (* (cos phi1) (cos phi2)) (* (sin lambda1) (sin lambda2)))))))))) |
| 191.0ms | (exp (* (cbrt (acos (+ (* (sin phi1) (sin phi2)) (+ (* (cos phi1) (* (cos phi2) (* (cos lambda1) (cos lambda2)))) (* (* (cos phi1) (cos phi2)) (* (sin lambda1) (sin lambda2))))))) (cbrt (acos (+ (* (sin phi1) (sin phi2)) (+ (* (cos phi1) (* (cos phi2) (* (cos lambda1) (cos lambda2)))) (* (* (cos phi1) (cos phi2)) (* (sin lambda1) (sin lambda2))))))))) |
| 169.0ms | (cbrt (acos (+ (* (sin phi1) (sin phi2)) (+ (* (cos phi1) (* (cos phi2) (* (cos lambda1) (cos lambda2)))) (* (* (cos phi1) (cos phi2)) (* (sin lambda1) (sin lambda2))))))) |
| 150.0ms | (acos (+ (* (sin phi1) (sin phi2)) (+ (* (cos phi1) (* (cos phi2) (* (cos lambda1) (cos lambda2)))) (* (* (cos phi1) (cos phi2)) (* (sin lambda1) (sin lambda2)))))) |
| 149.0ms | (acos (+ (* (sin phi1) (sin phi2)) (+ (* (cos phi1) (* (cos phi2) (* (cos lambda1) (cos lambda2)))) (* (* (cos phi1) (cos phi2)) (* (sin lambda1) (sin lambda2)))))) |
16 alts after pruning (16 fresh and 0 done)
Merged error: 2.6b
0% (0.4b remaining)
Error of 3.8b against oracle of 3.5b and baseline of 3.8b