Average Error: 37.0 → 29.0
Time: 4.6m
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}\;\left(\phi_1 - \phi_2\right) \cdot \left(\phi_1 - \phi_2\right) + \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) \le 2.4575758982815614 \cdot 10^{+303}:\\ \;\;\;\;\sqrt{\left(\lambda_1 \cdot \lambda_1 + \lambda_2 \cdot \left(\lambda_2 - \lambda_1 \cdot 2\right)\right) \cdot \left(\cos \left(\left(\phi_1 + \phi_2\right) \cdot \frac{1}{2}\right) \cdot \cos \left(\left(\phi_1 + \phi_2\right) \cdot \frac{1}{2}\right)\right) + \left(\phi_1 - \phi_2\right) \cdot \left(\phi_1 - \phi_2\right)} \cdot R\\ \mathbf{else}:\\ \;\;\;\;R \cdot \left(\phi_2 - \phi_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 2 regimes
  2. if (+ (* (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2))) (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2)))) (* (- phi1 phi2) (- phi1 phi2))) < 2.4575758982815614e+303

    1. Initial program 2.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. Taylor expanded around inf 2.2

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

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

    if 2.4575758982815614e+303 < (+ (* (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2))) (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2)))) (* (- phi1 phi2) (- phi1 phi2)))

    1. Initial program 60.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. Taylor expanded around 0 46.8

      \[\leadsto R \cdot \color{blue}{\left(\phi_2 - \phi_1\right)}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification29.0

    \[\leadsto \begin{array}{l} \mathbf{if}\;\left(\phi_1 - \phi_2\right) \cdot \left(\phi_1 - \phi_2\right) + \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) \le 2.4575758982815614 \cdot 10^{+303}:\\ \;\;\;\;\sqrt{\left(\lambda_1 \cdot \lambda_1 + \lambda_2 \cdot \left(\lambda_2 - \lambda_1 \cdot 2\right)\right) \cdot \left(\cos \left(\left(\phi_1 + \phi_2\right) \cdot \frac{1}{2}\right) \cdot \cos \left(\left(\phi_1 + \phi_2\right) \cdot \frac{1}{2}\right)\right) + \left(\phi_1 - \phi_2\right) \cdot \left(\phi_1 - \phi_2\right)} \cdot R\\ \mathbf{else}:\\ \;\;\;\;R \cdot \left(\phi_2 - \phi_1\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019016 
(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: 4.5m)Debug log

sample297.0ms

Algorithm
intervals
Results
373×(pre true 80)
265×(body real 80)
40×(body real 640)
30×(body real 1280)
22×(body real 320)
16×(body real 160)

simplify116.0ms

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

prune16.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 37.8b

localize70.0ms

Local error

Found 4 expressions with local error:

36.0b
(sqrt (+ (* (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2))) (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2)))) (* (- phi1 phi2) (- phi1 phi2))))
2.9b
(cos (/ (+ phi1 phi2) 2))
2.9b
(cos (/ (+ phi1 phi2) 2))
0.2b
(* (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2))) (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2))))

rewrite99.0ms

Algorithm
rewrite-expression-head
Rules
142×associate-*l/
102×flip--
102×flip3--
68×frac-times
66×sqrt-div
64×frac-add
34×associate-*r/
31×pow1
16×add-exp-log
16×add-cbrt-cube
13×pow-prod-down
cbrt-unprod
prod-exp
add-sqr-sqrt
add-cube-cbrt
*-un-lft-identity
add-log-exp
pow-prod-up
sqrt-prod
pow-plus
flip-+
*-commutative
associate-*l*
associate-*r*
pow1/2
flip3-+
rem-sqrt-square
pow2
Counts
4 → 129
Calls
4 calls:
Slowest
41.0ms
(* (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2))) (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2))))
39.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))

series1.0s

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

simplify27.5s

Counts
118 → 141
Calls
118 calls:
Slowest
1.0s
(* (* (* (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2))) (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2)))) (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2)))) (* (* (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2))) (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2)))) (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2)))))
632.0ms
(sqrt (+ (* (* (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2))) (* (- (* lambda1 lambda1) (* lambda2 lambda2)) (cos (/ (+ phi1 phi2) 2)))) (* (+ (* phi1 phi1) (+ (* phi2 phi2) (* phi1 phi2))) (+ phi1 phi2))) (* (+ lambda1 lambda2) (* (- (pow phi1 3) (pow phi2 3)) (- (* phi1 phi1) (* phi2 phi2))))))
570.0ms
(* (* (- (* lambda1 lambda1) (* lambda2 lambda2)) (cos (/ (+ phi1 phi2) 2))) (* (- (pow lambda1 3) (pow lambda2 3)) (cos (/ (+ phi1 phi2) 2))))
528.0ms
(* (* (- (* lambda1 lambda1) (* lambda2 lambda2)) (cos (/ (+ phi1 phi2) 2))) (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2))))
516.0ms
(* (+ (* lambda1 lambda1) (+ (* lambda2 lambda2) (* lambda1 lambda2))) (+ (* lambda1 lambda1) (+ (* lambda2 lambda2) (* lambda1 lambda2))))

prune3.1s

Pruning

8 alts after pruning (8 fresh and 0 done)

Merged error: 24.6b

localize31.0ms

Local error

Found 4 expressions with local error:

36.0b
(sqrt (+ (* (* (- lambda1 lambda2) (* (* (cbrt (cos (/ (+ phi1 phi2) 2))) (cbrt (cos (/ (+ phi1 phi2) 2)))) (cbrt (cos (/ (+ phi1 phi2) 2))))) (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2)))) (* (- phi1 phi2) (- phi1 phi2))))
2.9b
(cos (/ (+ phi1 phi2) 2))
2.9b
(cos (/ (+ phi1 phi2) 2))
2.9b
(cos (/ (+ phi1 phi2) 2))

rewrite206.0ms

Algorithm
rewrite-expression-head
Rules
128×associate-*l/
96×flip--
96×flip3--
66×sqrt-div
64×frac-add
64×frac-times
32×associate-*r/
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 → 99
Calls
4 calls:
Slowest
190.0ms
(sqrt (+ (* (* (- lambda1 lambda2) (* (* (cbrt (cos (/ (+ phi1 phi2) 2))) (cbrt (cos (/ (+ phi1 phi2) 2)))) (cbrt (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))
3.0ms
(cos (/ (+ phi1 phi2) 2))

series761.0ms

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

simplify23.3s

Counts
82 → 111
Calls
82 calls:
Slowest
654.0ms
(sqrt (+ (* (* (* (- lambda1 lambda2) (* (* (cbrt (cos (/ (+ phi1 phi2) 2))) (cbrt (cos (/ (+ phi1 phi2) 2)))) (cbrt (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 lambda1) (+ (* lambda2 lambda2) (* lambda1 lambda2))) (* (- (pow phi1 3) (pow phi2 3)) (- (pow phi1 3) (pow phi2 3))))))
523.0ms
(sqrt (+ (* (* (* (- (* lambda1 lambda1) (* lambda2 lambda2)) (* (* (cbrt (cos (/ (+ phi1 phi2) 2))) (cbrt (cos (/ (+ phi1 phi2) 2)))) (cbrt (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))))))
511.0ms
(sqrt (+ (* (* (* (- (pow lambda1 3) (pow lambda2 3)) (* (* (cbrt (cos (/ (+ phi1 phi2) 2))) (cbrt (cos (/ (+ phi1 phi2) 2)))) (cbrt (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))))))
506.0ms
(sqrt (+ (* (* (* (- (pow lambda1 3) (pow lambda2 3)) (* (* (cbrt (cos (/ (+ phi1 phi2) 2))) (cbrt (cos (/ (+ phi1 phi2) 2)))) (cbrt (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))))))
497.0ms
(sqrt (+ (* (* (* (- (* lambda1 lambda1) (* lambda2 lambda2)) (* (* (cbrt (cos (/ (+ phi1 phi2) 2))) (cbrt (cos (/ (+ phi1 phi2) 2)))) (cbrt (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))))))

prune2.8s

Pruning

8 alts after pruning (8 fresh and 0 done)

Merged error: 24.6b

localize65.0ms

Local error

Found 4 expressions with local error:

36.0b
(sqrt (+ (* (* (cos (* (+ phi1 phi2) 1/2)) (cos (* (+ phi1 phi2) 1/2))) (+ (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda1 lambda1))) (* (- phi1 phi2) (- phi1 phi2))))
2.9b
(cos (* (+ phi1 phi2) 1/2))
2.9b
(cos (* (+ phi1 phi2) 1/2))
1.8b
(+ (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda1 lambda1))

rewrite85.0ms

Algorithm
rewrite-expression-head
Rules
42×sqrt-div
40×frac-add
36×frac-times
30×flip--
30×flip3--
26×associate-*r/
24×cos-mult
18×flip-+
18×associate-*l/
18×flip3-+
add-log-exp
add-sqr-sqrt
add-cube-cbrt
*-un-lft-identity
add-exp-log
add-cbrt-cube
associate-+l+
pow1
sqrt-prod
distribute-lft-in
sub-neg
distribute-rgt-in
pow1/2
sum-log
rem-sqrt-square
+-commutative
Counts
4 → 83
Calls
4 calls:
Slowest
58.0ms
(sqrt (+ (* (* (cos (* (+ phi1 phi2) 1/2)) (cos (* (+ phi1 phi2) 1/2))) (+ (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda1 lambda1))) (* (- phi1 phi2) (- phi1 phi2))))
8.0ms
(cos (* (+ phi1 phi2) 1/2))
8.0ms
(cos (* (+ phi1 phi2) 1/2))
6.0ms
(+ (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda1 lambda1))

series671.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
596.0ms
(sqrt (+ (* (* (cos (* (+ phi1 phi2) 1/2)) (cos (* (+ phi1 phi2) 1/2))) (+ (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda1 lambda1))) (* (- phi1 phi2) (- phi1 phi2))))
26.0ms
(+ (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda1 lambda1))
25.0ms
(cos (* (+ phi1 phi2) 1/2))
25.0ms
(cos (* (+ phi1 phi2) 1/2))

simplify15.1s

Counts
63 → 95
Calls
63 calls:
Slowest
874.0ms
(sqrt (+ (* (* (+ (cos (+ (* (+ phi1 phi2) 1/2) (* (+ phi1 phi2) 1/2))) (cos (- (* (+ phi1 phi2) 1/2) (* (+ phi1 phi2) 1/2)))) (+ (pow (* lambda2 (- lambda2 (* 2 lambda1))) 3) (pow (* lambda1 lambda1) 3))) (+ (* phi1 phi1) (+ (* phi2 phi2) (* phi1 phi2)))) (* (* 2 (+ (* (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda2 (- lambda2 (* 2 lambda1)))) (- (* (* lambda1 lambda1) (* lambda1 lambda1)) (* (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda1 lambda1))))) (* (- (pow phi1 3) (pow phi2 3)) (- phi1 phi2)))))
538.0ms
(sqrt (+ (* (* (+ (cos (+ (* (+ phi1 phi2) 1/2) (* (+ phi1 phi2) 1/2))) (cos (- (* (+ phi1 phi2) 1/2) (* (+ phi1 phi2) 1/2)))) (+ (pow (* lambda2 (- lambda2 (* 2 lambda1))) 3) (pow (* lambda1 lambda1) 3))) (* (+ (* phi1 phi1) (+ (* phi2 phi2) (* phi1 phi2))) (+ (* phi1 phi1) (+ (* phi2 phi2) (* phi1 phi2))))) (* (* 2 (+ (* (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda2 (- lambda2 (* 2 lambda1)))) (- (* (* lambda1 lambda1) (* lambda1 lambda1)) (* (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda1 lambda1))))) (* (- (pow phi1 3) (pow phi2 3)) (- (pow phi1 3) (pow phi2 3))))))
531.0ms
(sqrt (+ (* (* (+ (cos (+ (* (+ phi1 phi2) 1/2) (* (+ phi1 phi2) 1/2))) (cos (- (* (+ phi1 phi2) 1/2) (* (+ phi1 phi2) 1/2)))) (+ (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda1 lambda1))) (* (+ phi1 phi2) (+ (* phi1 phi1) (+ (* phi2 phi2) (* phi1 phi2))))) (* 2 (* (- (* phi1 phi1) (* phi2 phi2)) (- (pow phi1 3) (pow phi2 3))))))
508.0ms
(sqrt (+ (* (* (* (cos (* (+ phi1 phi2) 1/2)) (cos (* (+ phi1 phi2) 1/2))) (+ (pow (* lambda2 (- lambda2 (* 2 lambda1))) 3) (pow (* lambda1 lambda1) 3))) (* (+ (* phi1 phi1) (+ (* phi2 phi2) (* phi1 phi2))) (+ phi1 phi2))) (* (+ (* (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda2 (- lambda2 (* 2 lambda1)))) (- (* (* lambda1 lambda1) (* lambda1 lambda1)) (* (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda1 lambda1)))) (* (- (pow phi1 3) (pow phi2 3)) (- (* phi1 phi1) (* phi2 phi2))))))
474.0ms
(sqrt (+ (* (* (+ (cos (+ (* (+ phi1 phi2) 1/2) (* (+ phi1 phi2) 1/2))) (cos (- (* (+ phi1 phi2) 1/2) (* (+ phi1 phi2) 1/2)))) (- (* (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda2 (- lambda2 (* 2 lambda1)))) (* (* lambda1 lambda1) (* lambda1 lambda1)))) (* (+ phi1 phi2) (+ (* phi1 phi1) (+ (* phi2 phi2) (* phi1 phi2))))) (* (* 2 (- (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda1 lambda1))) (* (- (* phi1 phi1) (* phi2 phi2)) (- (pow phi1 3) (pow phi2 3))))))

prune2.3s

Pruning

11 alts after pruning (10 fresh and 1 done)

Merged error: 21.1b

localize23.0ms

Local error

Found 4 expressions with local error:

36.0b
(sqrt (+ (* (* (cos (* (+ phi1 phi2) 1/2)) (cos (* (+ phi1 phi2) 1/2))) (* (* (cbrt (+ (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda1 lambda1))) (cbrt (+ (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda1 lambda1)))) (cbrt (+ (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda1 lambda1))))) (* (- phi1 phi2) (- phi1 phi2))))
26.6b
(cbrt (+ (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda1 lambda1)))
26.6b
(cbrt (+ (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda1 lambda1)))
26.6b
(cbrt (+ (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda1 lambda1)))

rewrite151.0ms

Algorithm
rewrite-expression-head
Rules
870×cbrt-div
868×frac-times
442×associate-*r/
436×flip-+
436×flip3-+
426×sqrt-div
424×frac-add
338×associate-*l/
318×flip--
318×flip3--
216×cos-mult
add-sqr-sqrt
cbrt-prod
add-cube-cbrt
*-un-lft-identity
add-log-exp
add-exp-log
add-cbrt-cube
pow1
sqrt-prod
pow1/3
pow1/2
rem-sqrt-square
Counts
4 → 477
Calls
4 calls:
Slowest
119.0ms
(sqrt (+ (* (* (cos (* (+ phi1 phi2) 1/2)) (cos (* (+ phi1 phi2) 1/2))) (* (* (cbrt (+ (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda1 lambda1))) (cbrt (+ (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda1 lambda1)))) (cbrt (+ (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda1 lambda1))))) (* (- phi1 phi2) (- phi1 phi2))))
2.0ms
(cbrt (+ (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda1 lambda1)))
2.0ms
(cbrt (+ (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda1 lambda1)))
2.0ms
(cbrt (+ (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda1 lambda1)))

series965.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
597.0ms
(sqrt (+ (* (* (cos (* (+ phi1 phi2) 1/2)) (cos (* (+ phi1 phi2) 1/2))) (* (* (cbrt (+ (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda1 lambda1))) (cbrt (+ (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda1 lambda1)))) (cbrt (+ (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda1 lambda1))))) (* (- phi1 phi2) (- phi1 phi2))))
152.0ms
(cbrt (+ (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda1 lambda1)))
120.0ms
(cbrt (+ (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda1 lambda1)))
97.0ms
(cbrt (+ (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda1 lambda1)))

simplify2.6m

Counts
457 → 489
Calls
457 calls:
Slowest
879.0ms
(sqrt (+ (* (* (* (cos (* (+ phi1 phi2) 1/2)) (cos (* (+ phi1 phi2) 1/2))) (* (* (cbrt (- (* (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda2 (- lambda2 (* 2 lambda1)))) (* (* lambda1 lambda1) (* lambda1 lambda1)))) (cbrt (+ (pow (* lambda2 (- lambda2 (* 2 lambda1))) 3) (pow (* lambda1 lambda1) 3)))) (cbrt (+ (pow (* lambda2 (- lambda2 (* 2 lambda1))) 3) (pow (* lambda1 lambda1) 3))))) (* (+ phi1 phi2) (+ (* phi1 phi1) (+ (* phi2 phi2) (* phi1 phi2))))) (* (* (* (cbrt (- (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda1 lambda1))) (cbrt (+ (* (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda2 (- lambda2 (* 2 lambda1)))) (- (* (* lambda1 lambda1) (* lambda1 lambda1)) (* (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda1 lambda1)))))) (cbrt (+ (* (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda2 (- lambda2 (* 2 lambda1)))) (- (* (* lambda1 lambda1) (* lambda1 lambda1)) (* (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda1 lambda1)))))) (* (- (* phi1 phi1) (* phi2 phi2)) (- (pow phi1 3) (pow phi2 3))))))
762.0ms
(sqrt (+ (* (* (+ (cos (+ (* (+ phi1 phi2) 1/2) (* (+ phi1 phi2) 1/2))) (cos (- (* (+ phi1 phi2) 1/2) (* (+ phi1 phi2) 1/2)))) (* (* (cbrt (+ (pow (* lambda2 (- lambda2 (* 2 lambda1))) 3) (pow (* lambda1 lambda1) 3))) (cbrt (- (* (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda2 (- lambda2 (* 2 lambda1)))) (* (* lambda1 lambda1) (* lambda1 lambda1))))) (cbrt (+ (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda1 lambda1))))) (+ (* phi1 phi1) (+ (* phi2 phi2) (* phi1 phi2)))) (* (* 2 (* (cbrt (+ (* (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda2 (- lambda2 (* 2 lambda1)))) (- (* (* lambda1 lambda1) (* lambda1 lambda1)) (* (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda1 lambda1))))) (cbrt (- (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda1 lambda1))))) (* (- (pow phi1 3) (pow phi2 3)) (- phi1 phi2)))))
741.0ms
(sqrt (+ (* (* (+ (cos (+ (* (+ phi1 phi2) 1/2) (* (+ phi1 phi2) 1/2))) (cos (- (* (+ phi1 phi2) 1/2) (* (+ phi1 phi2) 1/2)))) (* (* (cbrt (- (* (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda2 (- lambda2 (* 2 lambda1)))) (* (* lambda1 lambda1) (* lambda1 lambda1)))) (cbrt (+ (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda1 lambda1)))) (cbrt (+ (pow (* lambda2 (- lambda2 (* 2 lambda1))) 3) (pow (* lambda1 lambda1) 3))))) (+ (* phi1 phi1) (+ (* phi2 phi2) (* phi1 phi2)))) (* (* 2 (* (cbrt (- (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda1 lambda1))) (cbrt (+ (* (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda2 (- lambda2 (* 2 lambda1)))) (- (* (* lambda1 lambda1) (* lambda1 lambda1)) (* (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda1 lambda1))))))) (* (- (pow phi1 3) (pow phi2 3)) (- phi1 phi2)))))
740.0ms
(sqrt (+ (* (* (+ (cos (+ (* (+ phi1 phi2) 1/2) (* (+ phi1 phi2) 1/2))) (cos (- (* (+ phi1 phi2) 1/2) (* (+ phi1 phi2) 1/2)))) (* (* (cbrt (- (* (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda2 (- lambda2 (* 2 lambda1)))) (* (* lambda1 lambda1) (* lambda1 lambda1)))) (cbrt (+ (pow (* lambda2 (- lambda2 (* 2 lambda1))) 3) (pow (* lambda1 lambda1) 3)))) (cbrt (+ (pow (* lambda2 (- lambda2 (* 2 lambda1))) 3) (pow (* lambda1 lambda1) 3))))) (+ (* phi1 phi1) (+ (* phi2 phi2) (* phi1 phi2)))) (* (* 2 (* (* (cbrt (- (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda1 lambda1))) (cbrt (+ (* (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda2 (- lambda2 (* 2 lambda1)))) (- (* (* lambda1 lambda1) (* lambda1 lambda1)) (* (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda1 lambda1)))))) (cbrt (+ (* (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda2 (- lambda2 (* 2 lambda1)))) (- (* (* lambda1 lambda1) (* lambda1 lambda1)) (* (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda1 lambda1))))))) (* (- (pow phi1 3) (pow phi2 3)) (- phi1 phi2)))))
740.0ms
(sqrt (+ (* (* (* (cos (* (+ phi1 phi2) 1/2)) (cos (* (+ phi1 phi2) 1/2))) (* (* (cbrt (+ (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda1 lambda1))) (cbrt (- (* (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda2 (- lambda2 (* 2 lambda1)))) (* (* lambda1 lambda1) (* lambda1 lambda1))))) (cbrt (+ (pow (* lambda2 (- lambda2 (* 2 lambda1))) 3) (pow (* lambda1 lambda1) 3))))) (* (+ (* phi1 phi1) (+ (* phi2 phi2) (* phi1 phi2))) (+ (* phi1 phi1) (+ (* phi2 phi2) (* phi1 phi2))))) (* (* (cbrt (- (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda1 lambda1))) (cbrt (+ (* (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda2 (- lambda2 (* 2 lambda1)))) (- (* (* lambda1 lambda1) (* lambda1 lambda1)) (* (* lambda2 (- lambda2 (* 2 lambda1))) (* lambda1 lambda1)))))) (* (- (pow phi1 3) (pow phi2 3)) (- (pow phi1 3) (pow phi2 3))))))

prune25.8s

Pruning

11 alts after pruning (9 fresh and 2 done)

Merged error: 21.1b

regimes1.4s

Accuracy

46.3% (9.3b remaining)

Error of 29.0b against oracle of 19.6b and baseline of 37.0b

bsearch6.0ms

end0.0ms

sample7.0s

Algorithm
intervals
Results
11412×(pre true 80)
8226×(body real 80)
1287×(body real 640)
825×(body real 1280)
737×(body real 320)
337×(body real 160)