Details

Time bar (total: 27.9s)

analyze5.8s (20.9%)

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)

sample6.5s (23.4%)

Symmetry

(sort lambda1 lambda2)

(sort phi1 phi2)

Results
2.1s6225×body128valid
1.4s814×body1024valid
800.0ms2507×body128invalid
760.0ms519×body1024invalid
695.0ms773×body512valid
332.0ms372×body512invalid
270.0ms439×body256valid
103.0ms166×body256invalid
15.0msbody2048valid
Compiler

Compiled 113 to 65 computations (42.5% saved)

simplify114.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

prune4.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

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

localize11.0ms (0%)

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

series3.0s (10.8%)

Counts
4 → 180
Calls

4 calls:

1.8s
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))
1.2s
(hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))
21.0ms
(*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))
5.0ms
(cos.f64 (/.f64 (+.f64 phi1 phi2) 2))

rewrite76.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
307×expm1-udef_binary64
307×log1p-udef_binary64
170×add-sqr-sqrt_binary64
162×log1p-expm1-u_binary64
162×expm1-log1p-u_binary64
Counts
4 → 73
Calls

4 calls:

74.0ms
(hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))
74.0ms
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))
74.0ms
(*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))
74.0ms
(cos.f64 (/.f64 (+.f64 phi1 phi2) 2))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01569
133169
2424769
3510269
000
100

simplify459.0ms (1.6%)

Algorithm
egg-herbie
Rules
1133×associate-*r*_binary64
461×fma-def_binary64
141×associate-*l*_binary64
85×sub-neg_binary64
65×associate-/l*_binary64
Counts
253 → 269
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0219644761
1503544761

prune1.2s (4.3%)

Pruning

14 alts after pruning (14 fresh and 0 done)

PrunedKeptTotal
New25514269
Fresh000
Picked101
Done000
Total25614270
Error
2.3b
Counts
270 → 14
Alt Table
StatusErrorProgram
2.9b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (*.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (pow.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 2))) (-.f64 phi1 phi2)))
3.2b
(*.f64 R (hypot.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2))) 3) (-.f64 phi1 phi2)))
26.8b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (+.f64 (cos.f64 (*.f64 1/2 phi1)) (*.f64 1/48 (*.f64 (sin.f64 (*.f64 1/2 phi1)) (pow.f64 phi2 3)))) (fma.f64 1/2 (*.f64 (sin.f64 (*.f64 1/2 phi1)) phi2) (*.f64 1/8 (*.f64 (cos.f64 (*.f64 1/2 phi1)) (*.f64 phi2 phi2)))))) (-.f64 phi1 phi2)))
57.6b
(-.f64 (*.f64 R (*.f64 lambda1 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))))) (*.f64 lambda2 (*.f64 R (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))))))
8.1b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (*.f64 1/2 phi1))) (-.f64 phi1 phi2)))
39.2b
(-.f64 (fma.f64 R phi2 (/.f64 (*.f64 lambda2 (*.f64 R (*.f64 lambda1 (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))) 2)))) phi1)) (fma.f64 1/2 (/.f64 (*.f64 R (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))) 2) (*.f64 lambda1 lambda1))) phi1) (fma.f64 phi1 R (*.f64 1/2 (/.f64 (*.f64 (*.f64 lambda2 lambda2) (*.f64 R (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))) 2))) phi1)))))
3.2b
(*.f64 R (pow.f64 (sqrt.f64 (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2))) 2))
23.7b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (pow.f64 (sqrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 2)) (-.f64 phi1 phi2)))
22.5b
(*.f64 R (hypot.f64 (-.f64 (fma.f64 1/2 (*.f64 lambda2 (*.f64 phi1 (sin.f64 (*.f64 1/2 phi2)))) (fma.f64 1/8 (*.f64 lambda2 (*.f64 (*.f64 phi1 phi1) (cos.f64 (*.f64 1/2 phi2)))) (*.f64 (cos.f64 (*.f64 1/2 phi2)) lambda1))) (fma.f64 1/2 (*.f64 phi1 (*.f64 (sin.f64 (*.f64 1/2 phi2)) lambda1)) (fma.f64 1/8 (*.f64 (*.f64 phi1 phi1) (*.f64 (cos.f64 (*.f64 1/2 phi2)) lambda1)) (*.f64 lambda2 (cos.f64 (*.f64 1/2 phi2)))))) (-.f64 phi1 phi2)))
7.9b
(*.f64 R (expm1.f64 (log1p.f64 (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2)))))
29.6b
(expm1.f64 (log1p.f64 (*.f64 R (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2)))))
6.3b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (*.f64 1/2 phi2))) (-.f64 phi1 phi2)))
2.8b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cbrt.f64 (pow.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) 3))) (-.f64 phi1 phi2)))
51.0b
(pow.f64 (pow.f64 (*.f64 R (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2))) 3) 1/3)
Compiler

Compiled 60024 to 41248 computations (31.3% saved)

localize13.0ms (0%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (-.f64 lambda1 lambda2) (cbrt.f64 (pow.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) 3)))
0.5b
(cbrt.f64 (pow.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) 3))
0.6b
(pow.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) 3)
3.2b
(cos.f64 (/.f64 (+.f64 phi1 phi2) 2))

series55.0ms (0.2%)

Counts
3 → 96
Calls

3 calls:

27.0ms
(pow.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) 3)
23.0ms
(*.f64 (-.f64 lambda1 lambda2) (cbrt.f64 (pow.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) 3)))
5.0ms
(cbrt.f64 (pow.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) 3))

rewrite64.0ms (0.2%)

Algorithm
batch-egg-rewrite
Rules
923×prod-diff_binary64
143×add-sqr-sqrt_binary64
141×log1p-expm1-u_binary64
141×expm1-log1p-u_binary64
135×add-log-exp_binary64
Counts
3 → 65
Calls

3 calls:

63.0ms
(*.f64 (-.f64 lambda1 lambda2) (cbrt.f64 (pow.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) 3)))
63.0ms
(cbrt.f64 (pow.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) 3))
63.0ms
(pow.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) 3)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01436
129136
2357336
3525336
000
100

simplify102.0ms (0.4%)

Algorithm
egg-herbie
Rules
907×cancel-sign-sub-inv_binary64
476×sub-neg_binary64
377×associate--l+_binary64
354×fma-neg_binary64
249×associate-*r*_binary64
Counts
161 → 119
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01672176
15622172
220802049
343912049
450002049
549872049

prune273.0ms (1%)

Pruning

14 alts after pruning (14 fresh and 0 done)

PrunedKeptTotal
New1455150
Fresh4913
Picked101
Done000
Total15014164
Error
2.3b
Counts
164 → 14
Alt Table
StatusErrorProgram
2.7b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (*.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (pow.f64 (pow.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) 2) 1/3))) (-.f64 phi1 phi2)))
3.2b
(*.f64 R (pow.f64 (sqrt.f64 (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2))) 2))
2.9b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (*.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (pow.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 2))) (-.f64 phi1 phi2)))
3.2b
(*.f64 R (hypot.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2))) 3) (-.f64 phi1 phi2)))
22.5b
(*.f64 R (hypot.f64 (+.f64 (*.f64 (cos.f64 (*.f64 1/2 phi2)) (+.f64 lambda1 (*.f64 1/8 (*.f64 (*.f64 phi1 phi1) lambda2)))) (-.f64 (*.f64 (*.f64 1/2 (*.f64 phi1 (sin.f64 (*.f64 1/2 phi2)))) (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 (*.f64 1/2 phi2)) (+.f64 lambda2 (*.f64 (*.f64 (*.f64 phi1 phi1) 1/8) lambda1))))) (-.f64 phi1 phi2)))
51.0b
(pow.f64 (pow.f64 (*.f64 R (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2))) 3) 1/3)
39.2b
(-.f64 (fma.f64 R phi2 (/.f64 (*.f64 lambda2 (*.f64 R (*.f64 lambda1 (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))) 2)))) phi1)) (fma.f64 1/2 (/.f64 (*.f64 R (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))) 2) (*.f64 lambda1 lambda1))) phi1) (fma.f64 phi1 R (*.f64 1/2 (/.f64 (*.f64 (*.f64 lambda2 lambda2) (*.f64 R (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))) 2))) phi1)))))
23.7b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (pow.f64 (sqrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 2)) (-.f64 phi1 phi2)))
7.9b
(*.f64 R (expm1.f64 (log1p.f64 (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2)))))
29.6b
(expm1.f64 (log1p.f64 (*.f64 R (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2)))))
8.2b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cbrt.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 3))) (-.f64 phi1 phi2)))
57.6b
(-.f64 (*.f64 R (*.f64 lambda1 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))))) (*.f64 lambda2 (*.f64 R (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))))))
6.4b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cbrt.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 3))) (-.f64 phi1 phi2)))
26.8b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (+.f64 (cos.f64 (*.f64 1/2 phi1)) (+.f64 (*.f64 (sin.f64 (*.f64 1/2 phi1)) (-.f64 (*.f64 1/48 (pow.f64 phi2 3)) (*.f64 1/2 phi2))) (*.f64 (*.f64 phi2 phi2) (*.f64 (cos.f64 (*.f64 1/2 phi1)) -1/8))))) (-.f64 phi1 phi2)))
Compiler

Compiled 5355 to 3253 computations (39.3% saved)

localize19.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (pow.f64 (pow.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) 2) 1/3))
0.4b
(pow.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) 2)
0.5b
(cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))
3.2b
(cos.f64 (/.f64 (+.f64 phi1 phi2) 2))

series492.0ms (1.8%)

Counts
3 → 72
Calls

3 calls:

474.0ms
(cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))
12.0ms
(pow.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) 2)
5.0ms
(*.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (pow.f64 (pow.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) 2) 1/3))

rewrite85.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
628×prod-diff_binary64
202×fma-def_binary64
194×expm1-udef_binary64
194×log1p-udef_binary64
170×log-pow_binary64
Counts
3 → 69
Calls

3 calls:

83.0ms
(*.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (pow.f64 (pow.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) 2) 1/3))
83.0ms
(pow.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) 2)
83.0ms
(cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01248
126132
2267132
3484532
4484532
000
100

simplify79.0ms (0.3%)

Algorithm
egg-herbie
Rules
877×fma-def_binary64
534×cancel-sign-sub-inv_binary64
519×sub-neg_binary64
246×distribute-rgt-neg-in_binary64
243×neg-sub0_binary64
Counts
141 → 119
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01461692
14871671
217221581
345001581
452561581

prune364.0ms (1.3%)

Pruning

14 alts after pruning (14 fresh and 0 done)

PrunedKeptTotal
New1783181
Fresh21113
Picked101
Done000
Total18114195
Error
2.2b
Counts
195 → 14
Alt Table
StatusErrorProgram
23.7b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (pow.f64 (sqrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 2)) (-.f64 phi1 phi2)))
8.1b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (*.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (pow.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) 1/3))) (-.f64 phi1 phi2)))
6.2b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (*.f64 (cbrt.f64 (cos.f64 (*.f64 1/2 phi2))) (pow.f64 (pow.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) 2) 1/3))) (-.f64 phi1 phi2)))
3.2b
(*.f64 R (hypot.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2))) 3) (-.f64 phi1 phi2)))
23.7b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (*.f64 (*.f64 (cbrt.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (cbrt.f64 (pow.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) 2/3))) (pow.f64 (pow.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) 2) 1/3))) (-.f64 phi1 phi2)))
26.8b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (+.f64 (cos.f64 (*.f64 1/2 phi1)) (+.f64 (*.f64 (sin.f64 (*.f64 1/2 phi1)) (-.f64 (*.f64 1/48 (pow.f64 phi2 3)) (*.f64 1/2 phi2))) (*.f64 (*.f64 phi2 phi2) (*.f64 (cos.f64 (*.f64 1/2 phi1)) -1/8))))) (-.f64 phi1 phi2)))
39.2b
(-.f64 (fma.f64 R phi2 (/.f64 (*.f64 lambda2 (*.f64 R (*.f64 lambda1 (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))) 2)))) phi1)) (fma.f64 1/2 (/.f64 (*.f64 R (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))) 2) (*.f64 lambda1 lambda1))) phi1) (fma.f64 phi1 R (*.f64 1/2 (/.f64 (*.f64 (*.f64 lambda2 lambda2) (*.f64 R (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))) 2))) phi1)))))
3.2b
(*.f64 R (pow.f64 (sqrt.f64 (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2))) 2))
7.9b
(*.f64 R (expm1.f64 (log1p.f64 (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2)))))
29.6b
(expm1.f64 (log1p.f64 (*.f64 R (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2)))))
8.2b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cbrt.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 3))) (-.f64 phi1 phi2)))
57.6b
(-.f64 (*.f64 R (*.f64 lambda1 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))))) (*.f64 lambda2 (*.f64 R (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))))))
6.4b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cbrt.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 3))) (-.f64 phi1 phi2)))
22.5b
(*.f64 R (hypot.f64 (+.f64 (*.f64 (cos.f64 (*.f64 1/2 phi2)) (+.f64 lambda1 (*.f64 1/8 (*.f64 (*.f64 phi1 phi1) lambda2)))) (-.f64 (*.f64 (*.f64 1/2 (*.f64 phi1 (sin.f64 (*.f64 1/2 phi2)))) (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 (*.f64 1/2 phi2)) (+.f64 lambda2 (*.f64 (*.f64 (*.f64 phi1 phi1) 1/8) lambda1))))) (-.f64 phi1 phi2)))
Compiler

Compiled 7660 to 4832 computations (36.9% saved)

localize13.0ms (0%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 R (pow.f64 (sqrt.f64 (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2))) 2))
0.2b
(*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2))
0.5b
(pow.f64 (sqrt.f64 (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2))) 2)
3.2b
(cos.f64 (/.f64 (+.f64 phi1 phi2) 2))

series4.8s (17.4%)

Counts
3 → 124
Calls

3 calls:

3.1s
(pow.f64 (sqrt.f64 (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2))) 2)
1.7s
(*.f64 R (pow.f64 (sqrt.f64 (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2))) 2))
22.0ms
(*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2))

rewrite76.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
319×expm1-udef_binary64
319×log1p-udef_binary64
177×add-sqr-sqrt_binary64
171×log1p-expm1-u_binary64
171×expm1-log1p-u_binary64
Counts
3 → 55
Calls

3 calls:

75.0ms
(*.f64 R (pow.f64 (sqrt.f64 (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2))) 2))
75.0ms
(*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2))
75.0ms
(pow.f64 (sqrt.f64 (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2))) 2)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01760
135560
2442560
3530260
000
100

simplify362.0ms (1.3%)

Algorithm
egg-herbie
Rules
1132×associate-*r*_binary64
431×fma-def_binary64
380×associate-+r+_binary64
147×associate-*l*_binary64
60×sub-neg_binary64
Counts
179 → 193
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0206742836
1561542836

prune1.1s (3.9%)

Pruning

15 alts after pruning (15 fresh and 0 done)

PrunedKeptTotal
New2222224
Fresh01313
Picked101
Done000
Total22315238
Error
2.2b
Counts
238 → 15
Alt Table
StatusErrorProgram
23.7b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (pow.f64 (sqrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 2)) (-.f64 phi1 phi2)))
8.1b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (*.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (pow.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) 1/3))) (-.f64 phi1 phi2)))
3.2b
(*.f64 R (pow.f64 (sqrt.f64 (hypot.f64 (*.f64 (log.f64 (exp.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2))) 2))
7.9b
(*.f64 R (expm1.f64 (log1p.f64 (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2)))))
6.2b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (*.f64 (cbrt.f64 (cos.f64 (*.f64 1/2 phi2))) (pow.f64 (pow.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) 2) 1/3))) (-.f64 phi1 phi2)))
3.2b
(*.f64 R (hypot.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2))) 3) (-.f64 phi1 phi2)))
23.7b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (*.f64 (*.f64 (cbrt.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (cbrt.f64 (pow.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) 2/3))) (pow.f64 (pow.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) 2) 1/3))) (-.f64 phi1 phi2)))
26.8b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (+.f64 (cos.f64 (*.f64 1/2 phi1)) (+.f64 (*.f64 (sin.f64 (*.f64 1/2 phi1)) (-.f64 (*.f64 1/48 (pow.f64 phi2 3)) (*.f64 1/2 phi2))) (*.f64 (*.f64 phi2 phi2) (*.f64 (cos.f64 (*.f64 1/2 phi1)) -1/8))))) (-.f64 phi1 phi2)))
3.2b
(*.f64 R (*.f64 (pow.f64 (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2)) 1/4) (*.f64 (pow.f64 (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2)) 1/4) (sqrt.f64 (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2))))))
39.2b
(-.f64 (fma.f64 R phi2 (/.f64 (*.f64 lambda2 (*.f64 R (*.f64 lambda1 (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))) 2)))) phi1)) (fma.f64 1/2 (/.f64 (*.f64 R (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))) 2) (*.f64 lambda1 lambda1))) phi1) (fma.f64 phi1 R (*.f64 1/2 (/.f64 (*.f64 (*.f64 lambda2 lambda2) (*.f64 R (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))) 2))) phi1)))))
29.6b
(expm1.f64 (log1p.f64 (*.f64 R (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2)))))
8.2b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cbrt.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 3))) (-.f64 phi1 phi2)))
57.6b
(-.f64 (*.f64 R (*.f64 lambda1 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))))) (*.f64 lambda2 (*.f64 R (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))))))
6.4b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cbrt.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 3))) (-.f64 phi1 phi2)))
22.5b
(*.f64 R (hypot.f64 (+.f64 (*.f64 (cos.f64 (*.f64 1/2 phi2)) (+.f64 lambda1 (*.f64 1/8 (*.f64 (*.f64 phi1 phi1) lambda2)))) (-.f64 (*.f64 (*.f64 1/2 (*.f64 phi1 (sin.f64 (*.f64 1/2 phi2)))) (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 (*.f64 1/2 phi2)) (+.f64 lambda2 (*.f64 (*.f64 (*.f64 phi1 phi1) 1/8) lambda1))))) (-.f64 phi1 phi2)))
Compiler

Compiled 57916 to 40209 computations (30.6% saved)

regimes2.4s (8.7%)

Accuracy

Total 0.3b remaining (9.4%)

Threshold costs 0.3b (9.4%)

Counts
188 → 1
Compiler

Compiled 59760 to 41888 computations (29.9% saved)

simplify3.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
01729
12429
23229
33629
43829
53829

end316.0ms (1.1%)

Remove

(sort phi1 phi2)

(sort lambda1 lambda2)

Compiler

Compiled 658 to 452 computations (31.3% saved)

Profiling

Loading profile data...