Details

Time bar (total: 19.4s)

analyze2.8s (14.6%)

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)

sample4.8s (24.9%)

Symmetry

(sort lambda1 lambda2)

(sort phi1 phi2)

Results
1.5s6299×body128valid
862.0ms797×body1024valid
628.0ms2516×body128invalid
515.0ms376×body512invalid
458.0ms492×body1024invalid
449.0ms729×body512valid
209.0ms425×body256valid
74.0ms191×body256invalid
10.0msbody2048valid
Compiler

Compiled 113 to 65 computations (42.5% saved)

simplify113.0ms (0.6%)

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

prune4.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New112
Fresh101
Picked000
Done000
Total213
Error
2.1b
Counts
3 → 1
Alt Table
StatusErrorProgram
2.1b
(*.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)

localize12.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)))
1.7b
(cos.f64 (/.f64 (+.f64 phi1 phi2) 2))

series2.9s (15%)

Counts
4 → 180
Calls

4 calls:

1.9s
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))
971.0ms
(hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))
22.0ms
(*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))
5.0ms
(cos.f64 (/.f64 (+.f64 phi1 phi2) 2))

rewrite15.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:

5.0ms
(*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))
4.0ms
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))
3.0ms
(cos.f64 (/.f64 (+.f64 phi1 phi2) 2))
0.0ms
(hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))

simplify405.0ms (2.1%)

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

prune1.2s (6.1%)

Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New25112263
Fresh000
Picked101
Done000
Total25212264
Error
1.8b
Counts
264 → 12
Alt Table
StatusErrorProgram
7.5b
(*.f64 R (expm1.f64 (log1p.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))))
16.5b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (cos.f64 (*.f64 1/2 phi1)) (*.f64 1/2 (*.f64 (sin.f64 (*.f64 1/2 phi1)) phi2)))) (-.f64 phi1 phi2)))
2.5b
(*.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))))
6.2b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (*.f64 1/2 phi1))) (-.f64 phi1 phi2)))
36.3b
(*.f64 (sqrt.f64 R) (*.f64 (sqrt.f64 R) (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))))
46.8b
(*.f64 (sqrt.f64 (-.f64 (+.f64 (*.f64 phi2 phi2) (fma.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2) (*.f64 lambda1 lambda1) (*.f64 (*.f64 lambda2 lambda2) (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2)))) (*.f64 2 (*.f64 lambda2 (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2) lambda1))))) R)
26.2b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (+.f64 (cos.f64 (*.f64 1/2 phi2)) (*.f64 1/48 (*.f64 (pow.f64 phi1 3) (sin.f64 (*.f64 1/2 phi2))))) (fma.f64 1/2 (*.f64 phi1 (sin.f64 (*.f64 1/2 phi2))) (*.f64 1/8 (*.f64 (*.f64 phi1 phi1) (cos.f64 (*.f64 1/2 phi2))))))) (-.f64 phi1 phi2)))
24.1b
(*.f64 R (hypot.f64 (*.f64 (*.f64 (-.f64 lambda1 lambda2) (sqrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (sqrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (-.f64 phi1 phi2)))
7.7b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (*.f64 1/2 phi2))) (-.f64 phi1 phi2)))
3.2b
(*.f64 R (*.f64 (*.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)))))
3.3b
(*.f64 (*.f64 (cbrt.f64 (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))) (cbrt.f64 (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))))) (cbrt.f64 (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))))
2.3b
(*.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)))
Compiler

Compiled 60319 to 41272 computations (31.6% saved)

localize17.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.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))))
0.4b
(*.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))
0.4b
(cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))
1.7b
(cos.f64 (/.f64 (+.f64 phi1 phi2) 2))

series1.1s (5.8%)

Counts
3 → 96
Calls

3 calls:

610.0ms
(*.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))
483.0ms
(cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))
24.0ms
(*.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))))

rewrite21.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
22×add-sqr-sqrt_binary64
22×cbrt-prod_binary64
19×pow1_binary64
14×*-un-lft-identity_binary64
14×add-cube-cbrt_binary64
Counts
3 → 83
Calls

3 calls:

9.0ms
(*.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))))
5.0ms
(*.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))
1.0ms
(cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))

simplify108.0ms (0.6%)

Algorithm
egg-herbie
Rules
890×cancel-sign-sub-inv_binary64
483×associate-*r*_binary64
405×associate-*l*_binary64
306×unswap-sqr_binary64
235×*-commutative_binary64
Counts
179 → 185
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03154768
19274506
234144252
358044252

prune742.0ms (3.8%)

Pruning

14 alts after pruning (14 fresh and 0 done)

PrunedKeptTotal
New3324336
Fresh11011
Picked101
Done000
Total33414348
Error
1.8b
Counts
348 → 14
Alt Table
StatusErrorProgram
7.5b
(*.f64 R (expm1.f64 (log1p.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))))
16.5b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (cos.f64 (*.f64 1/2 phi1)) (*.f64 1/2 (*.f64 (sin.f64 (*.f64 1/2 phi1)) phi2)))) (-.f64 phi1 phi2)))
2.5b
(*.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))))
6.2b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (*.f64 1/2 phi1))) (-.f64 phi1 phi2)))
36.3b
(*.f64 (sqrt.f64 R) (*.f64 (sqrt.f64 R) (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))))
46.8b
(*.f64 (sqrt.f64 (-.f64 (+.f64 (*.f64 phi2 phi2) (fma.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2) (*.f64 lambda1 lambda1) (*.f64 (*.f64 lambda2 lambda2) (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2)))) (*.f64 2 (*.f64 lambda2 (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2) lambda1))))) R)
26.2b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (+.f64 (cos.f64 (*.f64 1/2 phi2)) (*.f64 1/48 (*.f64 (pow.f64 phi1 3) (sin.f64 (*.f64 1/2 phi2))))) (fma.f64 1/2 (*.f64 phi1 (sin.f64 (*.f64 1/2 phi2))) (*.f64 1/8 (*.f64 (*.f64 phi1 phi1) (cos.f64 (*.f64 1/2 phi2))))))) (-.f64 phi1 phi2)))
24.1b
(*.f64 R (hypot.f64 (*.f64 (*.f64 (-.f64 lambda1 lambda2) (sqrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (sqrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (-.f64 phi1 phi2)))
7.7b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (*.f64 1/2 phi2))) (-.f64 phi1 phi2)))
3.2b
(*.f64 R (*.f64 (*.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)))))
2.3b
(*.f64 R (hypot.f64 (*.f64 (*.f64 (-.f64 lambda1 lambda2) (exp.f64 (log.f64 (*.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 (-.f64 lambda1 lambda2) (pow.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2) 1/3)) (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (-.f64 phi1 phi2)))
20.2b
(*.f64 R (hypot.f64 (*.f64 (*.f64 (-.f64 lambda1 lambda2) (*.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 1/3))) (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (-.f64 phi1 phi2)))
2.4b
(*.f64 R (hypot.f64 (*.f64 (*.f64 (-.f64 lambda1 lambda2) (expm1.f64 (log1p.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)))) 6)))) (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (-.f64 phi1 phi2)))
Compiler

Compiled 16666 to 10254 computations (38.5% saved)

localize19.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(*.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))
0.4b
(cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))
1.7b
(cos.f64 (/.f64 (+.f64 phi1 phi2) 2))
3.8b
(log.f64 (*.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))))

series1.3s (6.8%)

Counts
1 → 24
Calls

1 calls:

1.3s
(log.f64 (*.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))))

rewrite4.0ms (0%)

Algorithm
rewrite-expression-head
Rules
pow1_binary64
log-pow_binary64
pow1/3_binary64
add-exp-log_binary64
rem-log-exp_binary64
Counts
1 → 21
Calls

1 calls:

3.0ms
(log.f64 (*.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))))

simplify39.0ms (0.2%)

Algorithm
egg-herbie
Rules
748×times-frac_binary64
459×associate-/l*_binary64
322×associate-*r*_binary64
283×associate-/r*_binary64
274×associate-*l*_binary64
Counts
45 → 50
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0991246
12851065
29631009
352101009

prune752.0ms (3.9%)

Pruning

14 alts after pruning (13 fresh and 1 done)

PrunedKeptTotal
New3211322
Fresh11213
Picked011
Done000
Total32214336
Error
1.8b
Counts
336 → 14
Alt Table
StatusErrorProgram
7.6b
(*.f64 R (hypot.f64 (*.f64 (*.f64 (-.f64 lambda1 lambda2) (exp.f64 (log.f64 (pow.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2) 1/3)))) (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (-.f64 phi1 phi2)))
3.2b
(*.f64 R (*.f64 (*.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)))))
7.5b
(*.f64 R (expm1.f64 (log1p.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))))
16.5b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (cos.f64 (*.f64 1/2 phi1)) (*.f64 1/2 (*.f64 (sin.f64 (*.f64 1/2 phi1)) phi2)))) (-.f64 phi1 phi2)))
2.5b
(*.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))))
6.2b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (*.f64 1/2 phi1))) (-.f64 phi1 phi2)))
36.3b
(*.f64 (sqrt.f64 R) (*.f64 (sqrt.f64 R) (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))))
46.8b
(*.f64 (sqrt.f64 (-.f64 (+.f64 (*.f64 phi2 phi2) (fma.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2) (*.f64 lambda1 lambda1) (*.f64 (*.f64 lambda2 lambda2) (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2)))) (*.f64 2 (*.f64 lambda2 (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2) lambda1))))) R)
26.2b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (+.f64 (cos.f64 (*.f64 1/2 phi2)) (*.f64 1/48 (*.f64 (pow.f64 phi1 3) (sin.f64 (*.f64 1/2 phi2))))) (fma.f64 1/2 (*.f64 phi1 (sin.f64 (*.f64 1/2 phi2))) (*.f64 1/8 (*.f64 (*.f64 phi1 phi1) (cos.f64 (*.f64 1/2 phi2))))))) (-.f64 phi1 phi2)))
24.1b
(*.f64 R (hypot.f64 (*.f64 (*.f64 (-.f64 lambda1 lambda2) (sqrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (sqrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (-.f64 phi1 phi2)))
7.7b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (*.f64 1/2 phi2))) (-.f64 phi1 phi2)))
2.3b
(*.f64 R (hypot.f64 (*.f64 (*.f64 (-.f64 lambda1 lambda2) (exp.f64 (log.f64 (*.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)))
20.2b
(*.f64 R (hypot.f64 (*.f64 (*.f64 (-.f64 lambda1 lambda2) (*.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 1/3))) (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (-.f64 phi1 phi2)))
2.4b
(*.f64 R (hypot.f64 (*.f64 (*.f64 (-.f64 lambda1 lambda2) (expm1.f64 (log1p.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)))) 6)))) (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (-.f64 phi1 phi2)))
Compiler

Compiled 16789 to 10706 computations (36.2% saved)

localize25.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))
0.8b
(pow.f64 (cbrt.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)))) 6)
1.7b
(cos.f64 (/.f64 (+.f64 phi1 phi2) 2))
1.7b
(cos.f64 (/.f64 (+.f64 phi2 phi1) 2))

series531.0ms (2.7%)

Counts
2 → 48
Calls

2 calls:

526.0ms
(pow.f64 (cbrt.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)))) 6)
5.0ms
(cos.f64 (/.f64 (+.f64 phi2 phi1) 2))

rewrite7.0ms (0%)

Algorithm
rewrite-expression-head
Rules
cbrt-prod_binary64
unpow-prod-down_binary64
*-un-lft-identity_binary64
add-sqr-sqrt_binary64
add-cube-cbrt_binary64
Counts
2 → 35
Calls

2 calls:

3.0ms
(cos.f64 (/.f64 (+.f64 phi2 phi1) 2))
2.0ms
(pow.f64 (cbrt.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)))) 6)

simplify91.0ms (0.5%)

Algorithm
egg-herbie
Rules
991×fma-neg_binary64
454×fma-def_binary64
400×*-commutative_binary64
379×cancel-sign-sub-inv_binary64
272×sub-neg_binary64
Counts
83 → 88
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01661837
14301735
213261676
335261670
448581670
550071670

prune361.0ms (1.9%)

Pruning

14 alts after pruning (12 fresh and 2 done)

PrunedKeptTotal
New1511152
Fresh11112
Picked011
Done011
Total15214166
Error
1.8b
Counts
166 → 14
Alt Table
StatusErrorProgram
7.6b
(*.f64 R (hypot.f64 (*.f64 (*.f64 (-.f64 lambda1 lambda2) (exp.f64 (log.f64 (pow.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2) 1/3)))) (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (-.f64 phi1 phi2)))
3.2b
(*.f64 R (*.f64 (*.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)))))
7.5b
(*.f64 R (expm1.f64 (log1p.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))))
16.5b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (cos.f64 (*.f64 1/2 phi1)) (*.f64 1/2 (*.f64 (sin.f64 (*.f64 1/2 phi1)) phi2)))) (-.f64 phi1 phi2)))
20.3b
(*.f64 R (hypot.f64 (*.f64 (*.f64 (-.f64 lambda1 lambda2) (expm1.f64 (log1p.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)))) 6)))) (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 1/3)) (-.f64 phi1 phi2)))
2.5b
(*.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))))
6.2b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (*.f64 1/2 phi1))) (-.f64 phi1 phi2)))
36.3b
(*.f64 (sqrt.f64 R) (*.f64 (sqrt.f64 R) (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))))
46.8b
(*.f64 (sqrt.f64 (-.f64 (+.f64 (*.f64 phi2 phi2) (fma.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2) (*.f64 lambda1 lambda1) (*.f64 (*.f64 lambda2 lambda2) (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2)))) (*.f64 2 (*.f64 lambda2 (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2) lambda1))))) R)
26.2b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (+.f64 (cos.f64 (*.f64 1/2 phi2)) (*.f64 1/48 (*.f64 (pow.f64 phi1 3) (sin.f64 (*.f64 1/2 phi2))))) (fma.f64 1/2 (*.f64 phi1 (sin.f64 (*.f64 1/2 phi2))) (*.f64 1/8 (*.f64 (*.f64 phi1 phi1) (cos.f64 (*.f64 1/2 phi2))))))) (-.f64 phi1 phi2)))
24.1b
(*.f64 R (hypot.f64 (*.f64 (*.f64 (-.f64 lambda1 lambda2) (sqrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (sqrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (-.f64 phi1 phi2)))
7.7b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (*.f64 1/2 phi2))) (-.f64 phi1 phi2)))
2.3b
(*.f64 R (hypot.f64 (*.f64 (*.f64 (-.f64 lambda1 lambda2) (exp.f64 (log.f64 (*.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)))
2.4b
(*.f64 R (hypot.f64 (*.f64 (*.f64 (-.f64 lambda1 lambda2) (expm1.f64 (log1p.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)))) 6)))) (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (-.f64 phi1 phi2)))
Compiler

Compiled 7209 to 4759 computations (34% saved)

regimes1.6s (8.4%)

Accuracy

Total 0.3b remaining (7.2%)

Threshold costs 0.3b (7.2%)

Counts
145 → 1
Compiler

Compiled 44190 to 30926 computations (30% saved)

simplify2.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
12224
23024
33424
43624
53624

end297.0ms (1.5%)

Remove

(sort phi1 phi2)

(sort lambda1 lambda2)

Compiler

Compiled 598 to 406 computations (32.1% saved)

Profiling

Loading profile data...