Details

Time bar (total: 30.4s)

analyze6.4s (21.1%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.8%0.2%0
0%99.8%0.2%1
0%99.8%0.2%2
0%99.8%0.2%3
0%99.8%0.2%4
0%99.8%0.2%5
0%99.8%0.2%6
0%99.8%0.2%7
0%99.8%0.2%8
0%99.8%0.2%9
0%99.8%0.2%10
0.8%99%0.2%11
4.7%95.1%0.2%12
5.9%93.2%0.8%13
8.5%90.2%1.3%14
Compiler

Compiled 38 to 22 computations (42.1% saved)

sample237.0ms (0.8%)

Algorithm
intervals
Results
53.0ms33×body1024valid
47.0ms190×body128valid
25.0ms18×body1024invalid
18.0ms77×body128invalid
18.0ms22×body512valid
9.0ms10×body512invalid
6.0ms11×body256valid
2.0msbody256invalid
Compiler

Compiled 80 to 48 computations (40% saved)

simplify129.0ms (0.4%)

Algorithm
egg-herbie
Rules
1413×unsub-neg_binary64
897×distribute-neg-out_binary64
703×fma-def_binary64
583×neg-sub0_binary64
478×sub-neg_binary64
Counts
1 → 2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01824
13524
28324
322424
465824
5203824
6312824
7359324
8439924
9436424
10443024
11446824
12503524

prune8.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New112
Fresh101
Picked000
Done000
Total213
Error
4.3b
Counts
3 → 1
Alt Table
StatusErrorProgram
4.3b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))
Compiler

Compiled 95 to 55 computations (42.1% saved)

localize24.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))
0.1b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))
0.2b
(*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))
3.4b
(cos.f64 (/.f64 (+.f64 phi1 phi2) 2))

series6.0s (19.6%)

Counts
4 → 180
Calls

4 calls:

3.7s
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))
2.2s
(hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))
45.0ms
(*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))
10.0ms
(cos.f64 (/.f64 (+.f64 phi1 phi2) 2))

rewrite31.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
14×add-sqr-sqrt_binary64
10×*-un-lft-identity_binary64
associate-*l*_binary64
add-cube-cbrt_binary64
add-cbrt-cube_binary64
Counts
4 → 63
Calls

4 calls:

12.0ms
(*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))
7.0ms
(cos.f64 (/.f64 (+.f64 phi1 phi2) 2))
5.0ms
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))
1.0ms
(hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))

simplify846.0ms (2.8%)

Algorithm
egg-herbie
Rules
1141×associate-*r*_binary64
462×fma-def_binary64
151×associate-*l*_binary64
88×sub-neg_binary64
65×associate-/l*_binary64
Counts
243 → 263
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0227546358
1516046358

prune2.6s (8.4%)

Pruning

13 alts after pruning (13 fresh and 0 done)

PrunedKeptTotal
New25013263
Fresh000
Picked101
Done000
Total25113264
Error
4.1b
Counts
264 → 13
Alt Table
StatusErrorProgram
4.4b
(*.f64 R (hypot.f64 (*.f64 (*.f64 (-.f64 lambda1 lambda2) (*.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))) (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (-.f64 phi1 phi2)))
7.6b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (*.f64 1/2 phi2))) (-.f64 phi1 phi2)))
9.2b
(*.f64 R (expm1.f64 (log1p.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))))
4.3b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (expm1.f64 (log1p.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))) (-.f64 phi1 phi2)))
18.0b
(*.f64 R (hypot.f64 (neg.f64 (*.f64 lambda2 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))))) (-.f64 phi1 phi2)))
38.1b
(cbrt.f64 (*.f64 (*.f64 (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))) (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))) (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))))
10.3b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (*.f64 1/2 phi1))) (-.f64 phi1 phi2)))
14.1b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (cos.f64 (*.f64 1/2 phi2)) (*.f64 1/2 (*.f64 phi1 (sin.f64 (*.f64 1/2 phi2)))))) (-.f64 phi1 phi2)))
42.7b
(-.f64 (*.f64 lambda2 (*.f64 R (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))))) (*.f64 R (*.f64 lambda1 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))))))
4.3b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (log1p.f64 (expm1.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))) (-.f64 phi1 phi2)))
4.7b
(*.f64 (*.f64 R (sqrt.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))) (sqrt.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))))
5.4b
(*.f64 (*.f64 R (*.f64 (cbrt.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))) (cbrt.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))))) (cbrt.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))))
37.8b
(*.f64 (sqrt.f64 R) (*.f64 (sqrt.f64 R) (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))))
Compiler

Compiled 60251 to 41216 computations (31.6% saved)

localize29.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(expm1.f64 (log1p.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))
0.2b
(*.f64 (-.f64 lambda1 lambda2) (expm1.f64 (log1p.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))))
0.4b
(log1p.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))
3.4b
(cos.f64 (/.f64 (+.f64 phi1 phi2) 2))

series1.0s (3.4%)

Counts
3 → 96
Calls

3 calls:

969.0ms
(log1p.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))
54.0ms
(*.f64 (-.f64 lambda1 lambda2) (expm1.f64 (log1p.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))))
10.0ms
(expm1.f64 (log1p.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))

rewrite15.0ms (0%)

Algorithm
rewrite-expression-head
Rules
add-sqr-sqrt_binary64
*-un-lft-identity_binary64
associate-*l*_binary64
add-cube-cbrt_binary64
add-cbrt-cube_binary64
Counts
3 → 46
Calls

3 calls:

9.0ms
(*.f64 (-.f64 lambda1 lambda2) (expm1.f64 (log1p.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))))
1.0ms
(log1p.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))
1.0ms
(expm1.f64 (log1p.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))

simplify165.0ms (0.5%)

Algorithm
egg-herbie
Rules
936×times-frac_binary64
625×cancel-sign-sub-inv_binary64
254×fma-neg_binary64
224×sub-neg_binary64
204×associate-*r*_binary64
Counts
142 → 133
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02393127
17073007
225602947
354822947

prune591.0ms (1.9%)

Pruning

14 alts after pruning (14 fresh and 0 done)

PrunedKeptTotal
New1524156
Fresh21012
Picked101
Done000
Total15514169
Error
4.1b
Counts
169 → 14
Alt Table
StatusErrorProgram
38.1b
(cbrt.f64 (*.f64 (*.f64 (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))) (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))) (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))))
7.6b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (expm1.f64 (log1p.f64 (cos.f64 (*.f64 1/2 phi2))))) (-.f64 phi1 phi2)))
4.7b
(*.f64 (*.f64 R (sqrt.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))) (sqrt.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))))
12.4b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (expm1.f64 (-.f64 (log1p.f64 (cos.f64 (*.f64 1/2 phi2))) (fma.f64 1/2 (/.f64 (*.f64 phi1 (sin.f64 (*.f64 1/2 phi2))) (+.f64 1 (cos.f64 (*.f64 1/2 phi2)))) (*.f64 1/8 (+.f64 (/.f64 (*.f64 (*.f64 phi1 phi1) (pow.f64 (sin.f64 (*.f64 1/2 phi2)) 2)) (pow.f64 (+.f64 1 (cos.f64 (*.f64 1/2 phi2))) 2)) (/.f64 (*.f64 (cos.f64 (*.f64 1/2 phi2)) (*.f64 phi1 phi1)) (+.f64 1 (cos.f64 (*.f64 1/2 phi2)))))))))) (-.f64 phi1 phi2)))
37.8b
(*.f64 (sqrt.f64 R) (*.f64 (sqrt.f64 R) (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))))
15.1b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (expm1.f64 (-.f64 (log1p.f64 (cos.f64 (*.f64 1/2 phi2))) (*.f64 1/2 (/.f64 (*.f64 phi1 (sin.f64 (*.f64 1/2 phi2))) (+.f64 1 (cos.f64 (*.f64 1/2 phi2)))))))) (-.f64 phi1 phi2)))
18.0b
(*.f64 R (hypot.f64 (neg.f64 (*.f64 lambda2 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))))) (-.f64 phi1 phi2)))
10.3b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (*.f64 1/2 phi1))) (-.f64 phi1 phi2)))
4.4b
(*.f64 R (hypot.f64 (*.f64 (*.f64 (-.f64 lambda1 lambda2) (*.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))) (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (-.f64 phi1 phi2)))
4.9b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (expm1.f64 (*.f64 (*.f64 (cbrt.f64 (log1p.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (cbrt.f64 (log1p.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))) (cbrt.f64 (log1p.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))))) (-.f64 phi1 phi2)))
42.7b
(-.f64 (*.f64 lambda2 (*.f64 R (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))))) (*.f64 R (*.f64 lambda1 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))))))
4.3b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (log1p.f64 (expm1.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))) (-.f64 phi1 phi2)))
9.2b
(*.f64 R (expm1.f64 (log1p.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))))
5.4b
(*.f64 (*.f64 R (*.f64 (cbrt.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))) (cbrt.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))))) (cbrt.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))))
Compiler

Compiled 5997 to 3583 computations (40.3% saved)

localize28.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(log1p.f64 (expm1.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))
0.2b
(*.f64 (-.f64 lambda1 lambda2) (log1p.f64 (expm1.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))))
0.4b
(expm1.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))
3.4b
(cos.f64 (/.f64 (+.f64 phi1 phi2) 2))

series83.0ms (0.3%)

Counts
3 → 96
Calls

3 calls:

45.0ms
(*.f64 (-.f64 lambda1 lambda2) (log1p.f64 (expm1.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))))
29.0ms
(expm1.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))
9.0ms
(log1p.f64 (expm1.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))

rewrite16.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
add-sqr-sqrt_binary64
*-un-lft-identity_binary64
associate-*l*_binary64
add-cube-cbrt_binary64
add-cbrt-cube_binary64
Counts
3 → 46
Calls

3 calls:

10.0ms
(*.f64 (-.f64 lambda1 lambda2) (log1p.f64 (expm1.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))))
1.0ms
(expm1.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))
1.0ms
(log1p.f64 (expm1.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))

simplify185.0ms (0.6%)

Algorithm
egg-herbie
Rules
891×cancel-sign-sub-inv_binary64
691×fma-neg_binary64
330×sub-neg_binary64
306×associate-*r*_binary64
253×neg-sub0_binary64
Counts
142 → 133
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02463092
17082973
225432812
341502798
450302798

prune594.0ms (2%)

Pruning

14 alts after pruning (13 fresh and 1 done)

PrunedKeptTotal
New1551156
Fresh11213
Picked011
Done000
Total15614170
Error
4.1b
Counts
170 → 14
Alt Table
StatusErrorProgram
38.1b
(cbrt.f64 (*.f64 (*.f64 (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))) (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))) (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))))
7.6b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (expm1.f64 (log1p.f64 (cos.f64 (*.f64 1/2 phi2))))) (-.f64 phi1 phi2)))
4.4b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (log1p.f64 (cbrt.f64 (pow.f64 (expm1.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2))) 3)))) (-.f64 phi1 phi2)))
4.7b
(*.f64 (*.f64 R (sqrt.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))) (sqrt.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))))
12.4b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (expm1.f64 (-.f64 (log1p.f64 (cos.f64 (*.f64 1/2 phi2))) (fma.f64 1/2 (/.f64 (*.f64 phi1 (sin.f64 (*.f64 1/2 phi2))) (+.f64 1 (cos.f64 (*.f64 1/2 phi2)))) (*.f64 1/8 (+.f64 (/.f64 (*.f64 (*.f64 phi1 phi1) (pow.f64 (sin.f64 (*.f64 1/2 phi2)) 2)) (pow.f64 (+.f64 1 (cos.f64 (*.f64 1/2 phi2))) 2)) (/.f64 (*.f64 (cos.f64 (*.f64 1/2 phi2)) (*.f64 phi1 phi1)) (+.f64 1 (cos.f64 (*.f64 1/2 phi2)))))))))) (-.f64 phi1 phi2)))
37.8b
(*.f64 (sqrt.f64 R) (*.f64 (sqrt.f64 R) (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))))
15.1b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (expm1.f64 (-.f64 (log1p.f64 (cos.f64 (*.f64 1/2 phi2))) (*.f64 1/2 (/.f64 (*.f64 phi1 (sin.f64 (*.f64 1/2 phi2))) (+.f64 1 (cos.f64 (*.f64 1/2 phi2)))))))) (-.f64 phi1 phi2)))
18.0b
(*.f64 R (hypot.f64 (neg.f64 (*.f64 lambda2 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))))) (-.f64 phi1 phi2)))
10.3b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (*.f64 1/2 phi1))) (-.f64 phi1 phi2)))
4.4b
(*.f64 R (hypot.f64 (*.f64 (*.f64 (-.f64 lambda1 lambda2) (*.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))) (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (-.f64 phi1 phi2)))
4.9b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (expm1.f64 (*.f64 (*.f64 (cbrt.f64 (log1p.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (cbrt.f64 (log1p.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))) (cbrt.f64 (log1p.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))))) (-.f64 phi1 phi2)))
4.3b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (log1p.f64 (expm1.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))) (-.f64 phi1 phi2)))
9.2b
(*.f64 R (expm1.f64 (log1p.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))))
5.4b
(*.f64 (*.f64 R (*.f64 (cbrt.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))) (cbrt.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))))) (cbrt.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))))
Compiler

Compiled 5834 to 3459 computations (40.7% saved)

localize33.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(expm1.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)))
0.5b
(cbrt.f64 (pow.f64 (expm1.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2))) 3))
0.8b
(pow.f64 (expm1.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2))) 3)
3.4b
(cos.f64 (/.f64 (+.f64 phi2 phi1) 2))

series269.0ms (0.9%)

Counts
4 → 96
Calls

4 calls:

200.0ms
(pow.f64 (expm1.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2))) 3)
28.0ms
(cbrt.f64 (pow.f64 (expm1.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2))) 3))
27.0ms
(expm1.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)))
9.0ms
(cos.f64 (/.f64 (+.f64 phi2 phi1) 2))

rewrite18.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
12×cbrt-prod_binary64
10×*-un-lft-identity_binary64
10×add-sqr-sqrt_binary64
10×add-cube-cbrt_binary64
cube-prod_binary64
Counts
4 → 68
Calls

4 calls:

6.0ms
(cos.f64 (/.f64 (+.f64 phi2 phi1) 2))
3.0ms
(cbrt.f64 (pow.f64 (expm1.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2))) 3))
3.0ms
(pow.f64 (expm1.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2))) 3)
1.0ms
(expm1.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)))

simplify197.0ms (0.6%)

Algorithm
egg-herbie
Rules
721×associate-*r*_binary64
586×fma-def_binary64
478×associate-*l*_binary64
443×associate-+r+_binary64
272×associate-+l+_binary64
Counts
164 → 143
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
03985875
112605547
254145547

prune725.0ms (2.4%)

Pruning

15 alts after pruning (14 fresh and 1 done)

PrunedKeptTotal
New1394143
Fresh21012
Picked101
Done011
Total14215157
Error
4.1b
Counts
157 → 15
Alt Table
StatusErrorProgram
38.1b
(cbrt.f64 (*.f64 (*.f64 (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))) (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))) (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))))
7.6b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (expm1.f64 (log1p.f64 (cos.f64 (*.f64 1/2 phi2))))) (-.f64 phi1 phi2)))
4.4b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (log1p.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (pow.f64 (expm1.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 3) 3))))) (-.f64 phi1 phi2)))
7.7b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (log1p.f64 (cbrt.f64 (pow.f64 (expm1.f64 (cos.f64 (*.f64 1/2 phi2))) 3)))) (-.f64 phi1 phi2)))
4.7b
(*.f64 (*.f64 R (sqrt.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))) (sqrt.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))))
12.4b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (expm1.f64 (-.f64 (log1p.f64 (cos.f64 (*.f64 1/2 phi2))) (fma.f64 1/2 (/.f64 (*.f64 phi1 (sin.f64 (*.f64 1/2 phi2))) (+.f64 1 (cos.f64 (*.f64 1/2 phi2)))) (*.f64 1/8 (+.f64 (/.f64 (*.f64 (*.f64 phi1 phi1) (pow.f64 (sin.f64 (*.f64 1/2 phi2)) 2)) (pow.f64 (+.f64 1 (cos.f64 (*.f64 1/2 phi2))) 2)) (/.f64 (*.f64 (cos.f64 (*.f64 1/2 phi2)) (*.f64 phi1 phi1)) (+.f64 1 (cos.f64 (*.f64 1/2 phi2)))))))))) (-.f64 phi1 phi2)))
37.8b
(*.f64 (sqrt.f64 R) (*.f64 (sqrt.f64 R) (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))))
15.1b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (expm1.f64 (-.f64 (log1p.f64 (cos.f64 (*.f64 1/2 phi2))) (*.f64 1/2 (/.f64 (*.f64 phi1 (sin.f64 (*.f64 1/2 phi2))) (+.f64 1 (cos.f64 (*.f64 1/2 phi2)))))))) (-.f64 phi1 phi2)))
18.0b
(*.f64 R (hypot.f64 (neg.f64 (*.f64 lambda2 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))))) (-.f64 phi1 phi2)))
4.4b
(*.f64 R (hypot.f64 (*.f64 (*.f64 (-.f64 lambda1 lambda2) (*.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))) (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (-.f64 phi1 phi2)))
4.4b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (log1p.f64 (cbrt.f64 (*.f64 (*.f64 (cbrt.f64 (pow.f64 (expm1.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2))) 3)) (cbrt.f64 (pow.f64 (expm1.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2))) 3))) (cbrt.f64 (pow.f64 (expm1.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2))) 3)))))) (-.f64 phi1 phi2)))
10.3b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (log1p.f64 (cbrt.f64 (pow.f64 (expm1.f64 (cos.f64 (*.f64 1/2 phi1))) 3)))) (-.f64 phi1 phi2)))
4.3b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (log1p.f64 (expm1.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))) (-.f64 phi1 phi2)))
9.2b
(*.f64 R (expm1.f64 (log1p.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))))
5.4b
(*.f64 (*.f64 R (*.f64 (cbrt.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))) (cbrt.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))))) (cbrt.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))))
Compiler

Compiled 8006 to 5579 computations (30.3% saved)

regimes2.7s (8.8%)

Accuracy

Total 0.3b remaining (7.1%)

Threshold costs 0.3b (7.1%)

Counts
137 → 1
Compiler

Compiled 35379 to 25013 computations (29.3% saved)

simplify5.0ms (0%)

Algorithm
egg-herbie
Rules
+-commutative_binary64
*-commutative_binary64
sub-neg_binary64
neg-sub0_binary64
neg-mul-1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01524
12324
23124
33524
43724
53724

end49.0ms (0.2%)

Remove

(sort phi1 phi2)

(sort lambda1 lambda2)

Compiler

Compiled 105 to 70 computations (33.3% saved)

sample7.5s (24.6%)

Algorithm
intervals
Results
1.9s5933×body128valid
1.2s855×body1024valid
776.0ms807×body512valid
667.0ms445×body1024invalid
665.0ms2372×body128invalid
313.0ms372×body512invalid
231.0ms402×body256valid
100.0ms184×body256invalid
8.0msbody2048valid
Compiler

Compiled 599 to 401 computations (33.1% saved)

Profiling

Loading profile data...