Average Error: 37.0 → 32.8
Time: 3.0m
Precision: 64
Internal Precision: 128
\[R \cdot \sqrt{\left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) \cdot \left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) + \left(\phi_1 - \phi_2\right) \cdot \left(\phi_1 - \phi_2\right)}\]
\[\begin{array}{l} \mathbf{if}\;\lambda_1 \le -5.482662450084458 \cdot 10^{+170}:\\ \;\;\;\;R \cdot \left(\cos \left(\left(\phi_1 + \phi_2\right) \cdot \frac{1}{2}\right) \cdot {\left(\frac{-1}{\lambda_1}\right)}^{-1}\right)\\ \mathbf{elif}\;\lambda_1 \le 6.568166348650765 \cdot 10^{+176}:\\ \;\;\;\;R \cdot \sqrt{\left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) \cdot \left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) + \left(\phi_1 - \phi_2\right) \cdot \left(\phi_1 - \phi_2\right)}\\ \mathbf{elif}\;\lambda_1 \le 8.265501549054422 \cdot 10^{+264}:\\ \;\;\;\;R \cdot \left(\cos \left(\left(\phi_1 + \phi_2\right) \cdot \frac{1}{2}\right) \cdot \lambda_1\right)\\ \mathbf{else}:\\ \;\;\;\;R \cdot \left(\cos \left(\left(\phi_1 + \phi_2\right) \cdot \frac{1}{2}\right) \cdot {\left(\frac{-1}{\lambda_1}\right)}^{-1}\right)\\ \end{array}\]

Error

Bits error versus R

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. Split input into 3 regimes
  2. if lambda1 < -5.482662450084458e+170 or 8.265501549054422e+264 < lambda1

    1. Initial program 60.8

      \[R \cdot \sqrt{\left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) \cdot \left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) + \left(\phi_1 - \phi_2\right) \cdot \left(\phi_1 - \phi_2\right)}\]
    2. Using strategy rm
    3. Applied add-exp-log60.8

      \[\leadsto R \cdot \color{blue}{e^{\log \left(\sqrt{\left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) \cdot \left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) + \left(\phi_1 - \phi_2\right) \cdot \left(\phi_1 - \phi_2\right)}\right)}}\]
    4. Using strategy rm
    5. Applied pow1/260.8

      \[\leadsto R \cdot e^{\log \color{blue}{\left({\left(\left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) \cdot \left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) + \left(\phi_1 - \phi_2\right) \cdot \left(\phi_1 - \phi_2\right)\right)}^{\frac{1}{2}}\right)}}\]
    6. Applied log-pow60.8

      \[\leadsto R \cdot e^{\color{blue}{\frac{1}{2} \cdot \log \left(\left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) \cdot \left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) + \left(\phi_1 - \phi_2\right) \cdot \left(\phi_1 - \phi_2\right)\right)}}\]
    7. Applied exp-prod60.8

      \[\leadsto R \cdot \color{blue}{{\left(e^{\frac{1}{2}}\right)}^{\left(\log \left(\left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) \cdot \left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) + \left(\phi_1 - \phi_2\right) \cdot \left(\phi_1 - \phi_2\right)\right)\right)}}\]
    8. Taylor expanded around -inf 34.3

      \[\leadsto R \cdot \color{blue}{e^{\frac{1}{2} \cdot \left(\log \left({\left(\cos \left(\frac{1}{2} \cdot \left(\phi_1 + \phi_2\right)\right)\right)}^{2}\right) - 2 \cdot \log \left(\frac{-1}{\lambda_1}\right)\right)}}\]
    9. Simplified38.3

      \[\leadsto R \cdot \color{blue}{\left({\left(\frac{-1}{\lambda_1}\right)}^{-1} \cdot \cos \left(\left(\phi_1 + \phi_2\right) \cdot \frac{1}{2}\right)\right)}\]

    if -5.482662450084458e+170 < lambda1 < 6.568166348650765e+176

    1. Initial program 31.6

      \[R \cdot \sqrt{\left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) \cdot \left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) + \left(\phi_1 - \phi_2\right) \cdot \left(\phi_1 - \phi_2\right)}\]

    if 6.568166348650765e+176 < lambda1 < 8.265501549054422e+264

    1. Initial program 61.1

      \[R \cdot \sqrt{\left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) \cdot \left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) + \left(\phi_1 - \phi_2\right) \cdot \left(\phi_1 - \phi_2\right)}\]
    2. Using strategy rm
    3. Applied add-exp-log61.1

      \[\leadsto R \cdot \color{blue}{e^{\log \left(\sqrt{\left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) \cdot \left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) + \left(\phi_1 - \phi_2\right) \cdot \left(\phi_1 - \phi_2\right)}\right)}}\]
    4. Using strategy rm
    5. Applied pow1/261.1

      \[\leadsto R \cdot e^{\log \color{blue}{\left({\left(\left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) \cdot \left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) + \left(\phi_1 - \phi_2\right) \cdot \left(\phi_1 - \phi_2\right)\right)}^{\frac{1}{2}}\right)}}\]
    6. Applied log-pow61.1

      \[\leadsto R \cdot e^{\color{blue}{\frac{1}{2} \cdot \log \left(\left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) \cdot \left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) + \left(\phi_1 - \phi_2\right) \cdot \left(\phi_1 - \phi_2\right)\right)}}\]
    7. Applied exp-prod61.1

      \[\leadsto R \cdot \color{blue}{{\left(e^{\frac{1}{2}}\right)}^{\left(\log \left(\left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) \cdot \left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) + \left(\phi_1 - \phi_2\right) \cdot \left(\phi_1 - \phi_2\right)\right)\right)}}\]
    8. Taylor expanded around inf 30.4

      \[\leadsto R \cdot \color{blue}{e^{\frac{1}{2} \cdot \left(\log \left({\left(\cos \left(\frac{1}{2} \cdot \left(\phi_1 + \phi_2\right)\right)\right)}^{2}\right) - 2 \cdot \log \left(\frac{1}{\lambda_1}\right)\right)}}\]
    9. Simplified37.7

      \[\leadsto R \cdot \color{blue}{\left(\cos \left(\left(\phi_1 + \phi_2\right) \cdot \frac{1}{2}\right) \cdot \lambda_1\right)}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification32.8

    \[\leadsto \begin{array}{l} \mathbf{if}\;\lambda_1 \le -5.482662450084458 \cdot 10^{+170}:\\ \;\;\;\;R \cdot \left(\cos \left(\left(\phi_1 + \phi_2\right) \cdot \frac{1}{2}\right) \cdot {\left(\frac{-1}{\lambda_1}\right)}^{-1}\right)\\ \mathbf{elif}\;\lambda_1 \le 6.568166348650765 \cdot 10^{+176}:\\ \;\;\;\;R \cdot \sqrt{\left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) \cdot \left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) + \left(\phi_1 - \phi_2\right) \cdot \left(\phi_1 - \phi_2\right)}\\ \mathbf{elif}\;\lambda_1 \le 8.265501549054422 \cdot 10^{+264}:\\ \;\;\;\;R \cdot \left(\cos \left(\left(\phi_1 + \phi_2\right) \cdot \frac{1}{2}\right) \cdot \lambda_1\right)\\ \mathbf{else}:\\ \;\;\;\;R \cdot \left(\cos \left(\left(\phi_1 + \phi_2\right) \cdot \frac{1}{2}\right) \cdot {\left(\frac{-1}{\lambda_1}\right)}^{-1}\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019010 
(FPCore (R lambda1 lambda2 phi1 phi2)
  :name "Equirectangular approximation to distance on a great circle"
  (* R (sqrt (+ (* (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2))) (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2)))) (* (- phi1 phi2) (- phi1 phi2))))))

Details

Time bar (total: 3.0m)Debug log

sample266.0ms

Algorithm
intervals

simplify107.0ms

Counts
1 → 1
Calls
1 calls:
Slowest
107.0ms
(* R (sqrt (+ (* (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2))) (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2)))) (* (- phi1 phi2) (- phi1 phi2)))))

prune9.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 36.4b

localize37.0ms

Local error

Found 4 expressions with local error:

35.0b
(sqrt (+ (* (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2))) (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2)))) (* (- phi1 phi2) (- phi1 phi2))))
2.6b
(cos (/ (+ phi1 phi2) 2))
2.6b
(cos (/ (+ phi1 phi2) 2))
0.2b
(* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2)))

rewrite61.0ms

Algorithm
rewrite-expression-head
Rules
130×associate-*l/
97×flip--
97×flip3--
66×sqrt-div
64×frac-add
64×frac-times
32×associate-*r/
add-sqr-sqrt
add-cube-cbrt
*-un-lft-identity
add-exp-log
add-cbrt-cube
pow1
add-log-exp
sqrt-prod
associate-*l*
associate-*r*
flip-+
cbrt-unprod
*-commutative
prod-exp
pow-prod-down
pow1/2
flip3-+
rem-sqrt-square
Counts
4 → 111
Calls
4 calls:
Slowest
37.0ms
(sqrt (+ (* (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2))) (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2)))) (* (- phi1 phi2) (- phi1 phi2))))
10.0ms
(* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2)))
4.0ms
(cos (/ (+ phi1 phi2) 2))
4.0ms
(cos (/ (+ phi1 phi2) 2))

series638.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
479.0ms
(sqrt (+ (* (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2))) (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2)))) (* (- phi1 phi2) (- phi1 phi2))))
109.0ms
(* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2)))
25.0ms
(cos (/ (+ phi1 phi2) 2))
24.0ms
(cos (/ (+ phi1 phi2) 2))

simplify22.1s

Counts
92 → 123
Calls
92 calls:
Slowest
893.0ms
(sqrt (+ (* (* (* (- (pow lambda1 3) (pow lambda2 3)) (cos (/ (+ phi1 phi2) 2))) (* (- (* lambda1 lambda1) (* lambda2 lambda2)) (cos (/ (+ phi1 phi2) 2)))) (* (+ (* phi1 phi1) (+ (* phi2 phi2) (* phi1 phi2))) (+ phi1 phi2))) (* (* (+ (* lambda1 lambda1) (+ (* lambda2 lambda2) (* lambda1 lambda2))) (+ lambda1 lambda2)) (* (- (pow phi1 3) (pow phi2 3)) (- (* phi1 phi1) (* phi2 phi2))))))
596.0ms
(sqrt (+ (* (* (* (- (pow lambda1 3) (pow lambda2 3)) (cos (/ (+ phi1 phi2) 2))) (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2)))) (+ phi1 phi2)) (* (+ (* lambda1 lambda1) (+ (* lambda2 lambda2) (* lambda1 lambda2))) (* (- (* phi1 phi1) (* phi2 phi2)) (- phi1 phi2)))))
572.0ms
(sqrt (+ (* (* (* (- (pow lambda1 3) (pow lambda2 3)) (cos (/ (+ phi1 phi2) 2))) (* (- (* lambda1 lambda1) (* lambda2 lambda2)) (cos (/ (+ phi1 phi2) 2)))) (* (+ phi1 phi2) (+ (* phi1 phi1) (+ (* phi2 phi2) (* phi1 phi2))))) (* (* (+ (* lambda1 lambda1) (+ (* lambda2 lambda2) (* lambda1 lambda2))) (+ lambda1 lambda2)) (* (- (* phi1 phi1) (* phi2 phi2)) (- (pow phi1 3) (pow phi2 3))))))
550.0ms
(sqrt (+ (* (* (* (- (pow lambda1 3) (pow lambda2 3)) (cos (/ (+ phi1 phi2) 2))) (* (- (* lambda1 lambda1) (* lambda2 lambda2)) (cos (/ (+ phi1 phi2) 2)))) (* (+ (* phi1 phi1) (+ (* phi2 phi2) (* phi1 phi2))) (+ (* phi1 phi1) (+ (* phi2 phi2) (* phi1 phi2))))) (* (* (+ (* lambda1 lambda1) (+ (* lambda2 lambda2) (* lambda1 lambda2))) (+ lambda1 lambda2)) (* (- (pow phi1 3) (pow phi2 3)) (- (pow phi1 3) (pow phi2 3))))))
497.0ms
(sqrt (+ (* (* (* (- (* lambda1 lambda1) (* lambda2 lambda2)) (cos (/ (+ phi1 phi2) 2))) (* (- (pow lambda1 3) (pow lambda2 3)) (cos (/ (+ phi1 phi2) 2)))) (* (+ (* phi1 phi1) (+ (* phi2 phi2) (* phi1 phi2))) (+ (* phi1 phi1) (+ (* phi2 phi2) (* phi1 phi2))))) (* (* (+ lambda1 lambda2) (+ (* lambda1 lambda1) (+ (* lambda2 lambda2) (* lambda1 lambda2)))) (* (- (pow phi1 3) (pow phi2 3)) (- (pow phi1 3) (pow phi2 3))))))

prune2.8s

Pruning

7 alts after pruning (6 fresh and 1 done)

Merged error: 26.0b

localize21.0ms

Local error

Found 4 expressions with local error:

35.0b
(sqrt (+ (* (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2))) (* (- lambda1 lambda2) (cbrt (* (* (cos (/ (+ phi1 phi2) 2)) (cos (/ (+ phi1 phi2) 2))) (cos (/ (+ phi1 phi2) 2)))))) (* (- phi1 phi2) (- phi1 phi2))))
2.6b
(cos (/ (+ phi1 phi2) 2))
2.6b
(cos (/ (+ phi1 phi2) 2))
2.6b
(cos (/ (+ phi1 phi2) 2))

rewrite107.0ms

Algorithm
rewrite-expression-head
Rules
266×associate-*l/
198×flip--
198×flip3--
196×frac-times
138×sqrt-div
136×frac-add
98×associate-*r/
72×cos-mult
72×cbrt-div
add-sqr-sqrt
add-cube-cbrt
*-un-lft-identity
add-log-exp
add-exp-log
add-cbrt-cube
pow1
sqrt-prod
flip-+
pow1/2
flip3-+
rem-sqrt-square
Counts
4 → 171
Calls
4 calls:
Slowest
81.0ms
(sqrt (+ (* (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2))) (* (- lambda1 lambda2) (cbrt (* (* (cos (/ (+ phi1 phi2) 2)) (cos (/ (+ phi1 phi2) 2))) (cos (/ (+ phi1 phi2) 2)))))) (* (- phi1 phi2) (- phi1 phi2))))
4.0ms
(cos (/ (+ phi1 phi2) 2))
3.0ms
(cos (/ (+ phi1 phi2) 2))
3.0ms
(cos (/ (+ phi1 phi2) 2))

series478.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
433.0ms
(sqrt (+ (* (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2))) (* (- lambda1 lambda2) (cbrt (* (* (cos (/ (+ phi1 phi2) 2)) (cos (/ (+ phi1 phi2) 2))) (cos (/ (+ phi1 phi2) 2)))))) (* (- phi1 phi2) (- phi1 phi2))))
15.0ms
(cos (/ (+ phi1 phi2) 2))
15.0ms
(cos (/ (+ phi1 phi2) 2))
15.0ms
(cos (/ (+ phi1 phi2) 2))

simplify46.4s

Counts
154 → 183
Calls
154 calls:
Slowest
710.0ms
(sqrt (+ (* (* (* (- (* lambda1 lambda1) (* lambda2 lambda2)) (cos (/ (+ phi1 phi2) 2))) (* (- lambda1 lambda2) (cbrt (* (+ (cos (+ (/ (+ phi1 phi2) 2) (/ (+ phi1 phi2) 2))) (cos (- (/ (+ phi1 phi2) 2) (/ (+ phi1 phi2) 2)))) (cos (/ (+ phi1 phi2) 2)))))) (* (+ (* phi1 phi1) (+ (* phi2 phi2) (* phi1 phi2))) (+ phi1 phi2))) (* (* (+ lambda1 lambda2) (cbrt 2)) (* (- (pow phi1 3) (pow phi2 3)) (- (* phi1 phi1) (* phi2 phi2))))))
675.0ms
(sqrt (+ (* (* (* (- (pow lambda1 3) (pow lambda2 3)) (cos (/ (+ phi1 phi2) 2))) (* (- lambda1 lambda2) (cbrt (* (+ (cos (+ (/ (+ phi1 phi2) 2) (/ (+ phi1 phi2) 2))) (cos (- (/ (+ phi1 phi2) 2) (/ (+ phi1 phi2) 2)))) (cos (/ (+ phi1 phi2) 2)))))) (+ (* phi1 phi1) (+ (* phi2 phi2) (* phi1 phi2)))) (* (* (+ (* lambda1 lambda1) (+ (* lambda2 lambda2) (* lambda1 lambda2))) (cbrt 2)) (* (- phi1 phi2) (- (pow phi1 3) (pow phi2 3))))))
615.0ms
(sqrt (+ (* (* (* (- (* lambda1 lambda1) (* lambda2 lambda2)) (cos (/ (+ phi1 phi2) 2))) (* (- (pow lambda1 3) (pow lambda2 3)) (cbrt (* (* (cos (/ (+ phi1 phi2) 2)) (cos (/ (+ phi1 phi2) 2))) (cos (/ (+ phi1 phi2) 2)))))) (* (+ (* phi1 phi1) (+ (* phi2 phi2) (* phi1 phi2))) (+ phi1 phi2))) (* (* (+ lambda1 lambda2) (+ (* lambda1 lambda1) (+ (* lambda2 lambda2) (* lambda1 lambda2)))) (* (- (pow phi1 3) (pow phi2 3)) (- (* phi1 phi1) (* phi2 phi2))))))
599.0ms
(sqrt (+ (* (* (* (- (* lambda1 lambda1) (* lambda2 lambda2)) (cos (/ (+ phi1 phi2) 2))) (* (- (* lambda1 lambda1) (* lambda2 lambda2)) (cbrt (* (+ (cos (+ (/ (+ phi1 phi2) 2) (/ (+ phi1 phi2) 2))) (cos (- (/ (+ phi1 phi2) 2) (/ (+ phi1 phi2) 2)))) (cos (/ (+ phi1 phi2) 2)))))) (* (+ (* phi1 phi1) (+ (* phi2 phi2) (* phi1 phi2))) (+ phi1 phi2))) (* (* (+ lambda1 lambda2) (* (+ lambda1 lambda2) (cbrt 2))) (* (- (pow phi1 3) (pow phi2 3)) (- (* phi1 phi1) (* phi2 phi2))))))
551.0ms
(sqrt (+ (* (* (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2))) (* (- lambda1 lambda2) (cbrt (* (+ (cos (+ (/ (+ phi1 phi2) 2) (/ (+ phi1 phi2) 2))) (cos (- (/ (+ phi1 phi2) 2) (/ (+ phi1 phi2) 2)))) (cos (/ (+ phi1 phi2) 2)))))) (+ (* phi1 phi1) (+ (* phi2 phi2) (* phi1 phi2)))) (* (cbrt 2) (* (- (pow phi1 3) (pow phi2 3)) (- phi1 phi2)))))

prune5.7s

Pruning

7 alts after pruning (5 fresh and 2 done)

Merged error: 25.5b

localize11.0ms

Local error

Found 4 expressions with local error:

35.0b
(sqrt (+ (* (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2))) (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2)))) (* (- phi1 phi2) (- phi1 phi2))))
5.9b
(exp (log (sqrt (+ (* (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2))) (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2)))) (* (- phi1 phi2) (- phi1 phi2))))))
2.6b
(cos (/ (+ phi1 phi2) 2))
2.6b
(cos (/ (+ phi1 phi2) 2))

rewrite86.0ms

Algorithm
rewrite-expression-head
Rules
256×associate-*l/
192×flip--
192×flip3--
132×sqrt-div
128×frac-add
128×frac-times
66×exp-diff
66×log-div
64×associate-*r/
add-sqr-sqrt
add-cube-cbrt
*-un-lft-identity
sqrt-prod
exp-sum
log-prod
exp-prod
pow1
add-log-exp
add-exp-log
add-cbrt-cube
flip-+
log-pow
pow1/2
flip3-+
rem-exp-log
rem-sqrt-square
Counts
4 → 177
Calls
4 calls:
Slowest
37.0ms
(exp (log (sqrt (+ (* (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2))) (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2)))) (* (- phi1 phi2) (- phi1 phi2))))))
28.0ms
(sqrt (+ (* (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2))) (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2)))) (* (- phi1 phi2) (- phi1 phi2))))
4.0ms
(cos (/ (+ phi1 phi2) 2))
3.0ms
(cos (/ (+ phi1 phi2) 2))

series861.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
425.0ms
(exp (log (sqrt (+ (* (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2))) (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2)))) (* (- phi1 phi2) (- phi1 phi2))))))
401.0ms
(sqrt (+ (* (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2))) (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2)))) (* (- phi1 phi2) (- phi1 phi2))))
20.0ms
(cos (/ (+ phi1 phi2) 2))
15.0ms
(cos (/ (+ phi1 phi2) 2))

simplify43.0s

Counts
160 → 189
Calls
160 calls:
Slowest
763.0ms
(sqrt (+ (* (* (* (- (pow lambda1 3) (pow lambda2 3)) (cos (/ (+ phi1 phi2) 2))) (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2)))) (* (+ (* phi1 phi1) (+ (* phi2 phi2) (* phi1 phi2))) (+ phi1 phi2))) (* (+ (* lambda1 lambda1) (+ (* lambda2 lambda2) (* lambda1 lambda2))) (* (- (pow phi1 3) (pow phi2 3)) (- (* phi1 phi1) (* phi2 phi2))))))
589.0ms
(sqrt (+ (* (* (* (- (pow lambda1 3) (pow lambda2 3)) (cos (/ (+ phi1 phi2) 2))) (* (- (pow lambda1 3) (pow lambda2 3)) (cos (/ (+ phi1 phi2) 2)))) (+ phi1 phi2)) (* (* (+ (* lambda1 lambda1) (+ (* lambda2 lambda2) (* lambda1 lambda2))) (+ (* lambda1 lambda1) (+ (* lambda2 lambda2) (* lambda1 lambda2)))) (* (- phi1 phi2) (- (* phi1 phi1) (* phi2 phi2))))))
576.0ms
(exp (log (sqrt (+ (* (* (* (- (* lambda1 lambda1) (* lambda2 lambda2)) (cos (/ (+ phi1 phi2) 2))) (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2)))) (+ (* phi1 phi1) (+ (* phi2 phi2) (* phi1 phi2)))) (* (+ lambda1 lambda2) (* (- (pow phi1 3) (pow phi2 3)) (- phi1 phi2)))))))
570.0ms
(exp (log (sqrt (+ (* (* (* (- (* lambda1 lambda1) (* lambda2 lambda2)) (cos (/ (+ phi1 phi2) 2))) (* (- (* lambda1 lambda1) (* lambda2 lambda2)) (cos (/ (+ phi1 phi2) 2)))) (* (+ (* phi1 phi1) (+ (* phi2 phi2) (* phi1 phi2))) (+ phi1 phi2))) (* (* (+ lambda1 lambda2) (+ lambda1 lambda2)) (* (- (pow phi1 3) (pow phi2 3)) (- (* phi1 phi1) (* phi2 phi2))))))))
527.0ms
(sqrt (+ (* (* (* (- (pow lambda1 3) (pow lambda2 3)) (cos (/ (+ phi1 phi2) 2))) (* (- (* lambda1 lambda1) (* lambda2 lambda2)) (cos (/ (+ phi1 phi2) 2)))) (* (+ (* phi1 phi1) (+ (* phi2 phi2) (* phi1 phi2))) (+ phi1 phi2))) (* (* (+ (* lambda1 lambda1) (+ (* lambda2 lambda2) (* lambda1 lambda2))) (+ lambda1 lambda2)) (* (- (pow phi1 3) (pow phi2 3)) (- (* phi1 phi1) (* phi2 phi2))))))

prune5.0s

Pruning

13 alts after pruning (11 fresh and 2 done)

Merged error: 25.5b

localize31.0ms

Local error

Found 4 expressions with local error:

36.5b
(log (+ (* (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2))) (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2)))) (* (- phi1 phi2) (- phi1 phi2))))
6.4b
(pow (exp 1/2) (log (+ (* (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2))) (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2)))) (* (- phi1 phi2) (- phi1 phi2)))))
2.6b
(cos (/ (+ phi1 phi2) 2))
2.6b
(cos (/ (+ phi1 phi2) 2))

rewrite83.0ms

Algorithm
rewrite-expression-head
Rules
256×associate-*l/
192×flip--
192×flip3--
132×log-div
128×frac-add
128×frac-times
66×pow-sub
64×associate-*r/
add-cube-cbrt
*-un-lft-identity
add-sqr-sqrt
pow1
log-prod
add-exp-log
add-log-exp
add-cbrt-cube
pow-unpow
unpow-prod-down
unpow-prod-up
flip-+
log-pow
flip3-+
pow-exp
rem-log-exp
pow-pow
pow-to-exp
Counts
4 → 178
Calls
4 calls:
Slowest
43.0ms
(pow (exp 1/2) (log (+ (* (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2))) (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2)))) (* (- phi1 phi2) (- phi1 phi2)))))
29.0ms
(log (+ (* (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2))) (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2)))) (* (- phi1 phi2) (- phi1 phi2))))
2.0ms
(cos (/ (+ phi1 phi2) 2))
2.0ms
(cos (/ (+ phi1 phi2) 2))

series885.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
553.0ms
(pow (exp 1/2) (log (+ (* (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2))) (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2)))) (* (- phi1 phi2) (- phi1 phi2)))))
285.0ms
(log (+ (* (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2))) (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2)))) (* (- phi1 phi2) (- phi1 phi2))))
25.0ms
(cos (/ (+ phi1 phi2) 2))
22.0ms
(cos (/ (+ phi1 phi2) 2))

simplify35.8s

Counts
160 → 190
Calls
160 calls:
Slowest
696.0ms
(log (+ (* (* (* (- (pow lambda1 3) (pow lambda2 3)) (cos (/ (+ phi1 phi2) 2))) (* (- (pow lambda1 3) (pow lambda2 3)) (cos (/ (+ phi1 phi2) 2)))) (* (+ (* phi1 phi1) (+ (* phi2 phi2) (* phi1 phi2))) (+ phi1 phi2))) (* (* (+ (* lambda1 lambda1) (+ (* lambda2 lambda2) (* lambda1 lambda2))) (+ (* lambda1 lambda1) (+ (* lambda2 lambda2) (* lambda1 lambda2)))) (* (- (pow phi1 3) (pow phi2 3)) (- (* phi1 phi1) (* phi2 phi2))))))
596.0ms
(log (+ (* (* (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2))) (* (- (* lambda1 lambda1) (* lambda2 lambda2)) (cos (/ (+ phi1 phi2) 2)))) (* (+ phi1 phi2) (+ phi1 phi2))) (* (+ lambda1 lambda2) (* (- (* phi1 phi1) (* phi2 phi2)) (- (* phi1 phi1) (* phi2 phi2))))))
572.0ms
(pow (exp 1/2) (log (* (+ (* lambda1 lambda1) (+ (* lambda2 lambda2) (* lambda1 lambda2))) (* (+ phi1 phi2) (+ phi1 phi2)))))
508.0ms
(log (+ (* (* (* (- (* lambda1 lambda1) (* lambda2 lambda2)) (cos (/ (+ phi1 phi2) 2))) (* (- (pow lambda1 3) (pow lambda2 3)) (cos (/ (+ phi1 phi2) 2)))) (* (+ (* phi1 phi1) (+ (* phi2 phi2) (* phi1 phi2))) (+ phi1 phi2))) (* (* (+ lambda1 lambda2) (+ (* lambda1 lambda1) (+ (* lambda2 lambda2) (* lambda1 lambda2)))) (* (- (pow phi1 3) (pow phi2 3)) (- (* phi1 phi1) (* phi2 phi2))))))
483.0ms
(log (+ (* (* (* (- (pow lambda1 3) (pow lambda2 3)) (cos (/ (+ phi1 phi2) 2))) (* (- (* lambda1 lambda1) (* lambda2 lambda2)) (cos (/ (+ phi1 phi2) 2)))) (* (+ (* phi1 phi1) (+ (* phi2 phi2) (* phi1 phi2))) (+ phi1 phi2))) (* (* (+ (* lambda1 lambda1) (+ (* lambda2 lambda2) (* lambda1 lambda2))) (+ lambda1 lambda2)) (* (- (pow phi1 3) (pow phi2 3)) (- (* phi1 phi1) (* phi2 phi2))))))

prune4.5s

Pruning

16 alts after pruning (14 fresh and 2 done)

Merged error: 15.8b

regimes2.0s

Accuracy

20.8% (16.0b remaining)

Error of 32.8b against oracle of 16.8b and baseline of 37.0b

bsearch648.0ms

end0.0ms

sample7.1s

Algorithm
intervals