Details

Time bar (total: 19.1s)

analyze2.8s (14.8%)

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)

sample5.2s (27.3%)

Symmetry

(sort lambda1 lambda2)

(sort phi1 phi2)

Results
1.6s6244×body128valid
1.3s784×body1024valid
631.0ms491×body1024invalid
538.0ms2449×body128invalid
459.0ms769×body512valid
303.0ms398×body512invalid
225.0ms451×body256valid
77.0ms191×body256invalid
15.0msbody2048valid
Compiler

Compiled 113 to 65 computations (42.5% saved)

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

prune5.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
3.3b
Counts
3 → 2
Alt Table
StatusErrorProgram
3.3b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))
34.3b
(*.f64 R (sqrt.f64 (+.f64 (*.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2)))))
Compiler

Compiled 169 to 97 computations (42.6% 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.1b
(*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))
3.2b
(cos.f64 (/.f64 (+.f64 phi1 phi2) 2))

series1.4s (7.2%)

Counts
4 → 180
Calls

4 calls:

862.0ms
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))
486.0ms
(hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))
23.0ms
(*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))
4.0ms
(cos.f64 (/.f64 (+.f64 phi1 phi2) 2))

rewrite70.0ms (0.4%)

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 → 77
Calls

4 calls:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01569
133169
2424769
3510269

simplify405.0ms (2.1%)

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
257 → 273
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0219644761
1503544761

prune1.2s (6.5%)

Pruning

14 alts after pruning (14 fresh and 0 done)

PrunedKeptTotal
New25914273
Fresh101
Picked101
Done000
Total26114275
Error
3.2b
Counts
275 → 14
Alt Table
StatusErrorProgram
4.4b
(*.f64 R (pow.f64 (cbrt.f64 (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2))) 3))
3.5b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (pow.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 3)) (-.f64 phi1 phi2)))
23.2b
(expm1.f64 (log1p.f64 (*.f64 R (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2)))))
37.3b
(*.f64 R (hypot.f64 (/.f64 (*.f64 (-.f64 (pow.f64 lambda1 3) (pow.f64 lambda2 3)) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (fma.f64 lambda1 lambda1 (*.f64 lambda2 (+.f64 lambda1 lambda2)))) (-.f64 phi1 phi2)))
14.0b
(*.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)))
4.4b
(pow.f64 (cbrt.f64 (*.f64 R (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2)))) 3)
7.0b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (*.f64 1/2 phi2))) (-.f64 phi1 phi2)))
52.3b
(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)
8.2b
(*.f64 R (expm1.f64 (log1p.f64 (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2)))))
3.6b
(*.f64 R (pow.f64 (sqrt.f64 (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2))) 2))
3.3b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (exp.f64 (log1p.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) 1)) (-.f64 phi1 phi2)))
43.8b
(*.f64 R (sqrt.f64 (-.f64 (fma.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (*.f64 lambda2 lambda2) (+.f64 (*.f64 phi1 phi1) (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (*.f64 lambda1 lambda1)))) (*.f64 2 (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (*.f64 lambda2 lambda1))))))
27.9b
(-.f64 (*.f64 R phi2) (*.f64 phi1 R))
29.7b
(pow.f64 (sqrt.f64 (*.f64 R (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2)))) 2)
Compiler

Compiled 59908 to 41160 computations (31.3% saved)

localize15.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(exp.f64 (log1p.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))
0.3b
(log1p.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))
0.5b
(-.f64 (exp.f64 (log1p.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) 1)
3.2b
(cos.f64 (/.f64 (+.f64 phi1 phi2) 2))

series1.1s (6%)

Counts
3 → 72
Calls

3 calls:

383.0ms
(-.f64 (exp.f64 (log1p.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) 1)
382.0ms
(exp.f64 (log1p.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))
379.0ms
(log1p.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))

rewrite112.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
706×prod-diff_binary64
471×fma-udef_binary64
283×fma-def_binary64
231×fma-neg_binary64
184×log1p-udef_binary64
Counts
3 → 98
Calls

3 calls:

110.0ms
(exp.f64 (log1p.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))
110.0ms
(log1p.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))
110.0ms
(-.f64 (exp.f64 (log1p.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) 1)
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01133
121832
2259332
3469932
4472732
5493532

simplify53.0ms (0.3%)

Algorithm
egg-herbie
Rules
936×times-frac_binary64
660×associate-/l*_binary64
404×fma-def_binary64
348×cancel-sign-sub-inv_binary64
134×associate-/r/_binary64
Counts
170 → 150
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01201633
13941613
214301478
352311478

prune339.0ms (1.8%)

Pruning

17 alts after pruning (17 fresh and 0 done)

PrunedKeptTotal
New1766182
Fresh21113
Picked101
Done000
Total17917196
Error
3.1b
Counts
196 → 17
Alt Table
StatusErrorProgram
27.6b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (fma.f64 (cos.f64 (exp.f64 (log1p.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (cos.f64 1) (*.f64 (sin.f64 (exp.f64 (log1p.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (sin.f64 1)))) (-.f64 phi1 phi2)))
3.6b
(*.f64 R (pow.f64 (sqrt.f64 (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2))) 2))
4.2b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (fma.f64 (cbrt.f64 (+.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) 1)) (pow.f64 (cbrt.f64 (+.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) 1)) 2) -1)) (-.f64 phi1 phi2)))
4.4b
(*.f64 R (pow.f64 (cbrt.f64 (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2))) 3))
3.5b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (pow.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 3)) (-.f64 phi1 phi2)))
23.2b
(expm1.f64 (log1p.f64 (*.f64 R (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2)))))
37.3b
(*.f64 R (hypot.f64 (/.f64 (*.f64 (-.f64 (pow.f64 lambda1 3) (pow.f64 lambda2 3)) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (fma.f64 lambda1 lambda1 (*.f64 lambda2 (+.f64 lambda1 lambda2)))) (-.f64 phi1 phi2)))
4.0b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (exp.f64 (pow.f64 (cbrt.f64 (log1p.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) 3)) 1)) (-.f64 phi1 phi2)))
29.7b
(pow.f64 (sqrt.f64 (*.f64 R (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2)))) 2)
8.2b
(*.f64 R (expm1.f64 (log1p.f64 (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2)))))
7.0b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (exp.f64 (+.f64 (fma.f64 (*.f64 (tan.f64 (/.f64 (*.f64 1/2 phi2) 2)) phi1) -1/2 (log1p.f64 (cos.f64 (*.f64 1/2 phi2)))) (*.f64 (*.f64 (/.f64 (*.f64 phi1 phi1) (+.f64 (cos.f64 (*.f64 1/2 phi2)) 1)) (+.f64 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 phi2)) 2) (+.f64 (cos.f64 (*.f64 1/2 phi2)) 1)) (cos.f64 (*.f64 1/2 phi2)))) -1/8))) 1)) (-.f64 phi1 phi2)))
43.8b
(*.f64 R (sqrt.f64 (-.f64 (fma.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (*.f64 lambda2 lambda2) (+.f64 (*.f64 phi1 phi1) (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (*.f64 lambda1 lambda1)))) (*.f64 2 (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (*.f64 lambda2 lambda1))))))
7.1b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (exp.f64 (log1p.f64 (cos.f64 (*.f64 1/2 phi2)))) 1)) (-.f64 phi1 phi2)))
27.9b
(-.f64 (*.f64 R phi2) (*.f64 phi1 R))
3.5b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (fma.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (pow.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 2) 1) 1)) (-.f64 phi1 phi2)))
4.4b
(pow.f64 (cbrt.f64 (*.f64 R (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2)))) 3)
52.3b
(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 6596 to 4181 computations (36.6% saved)

localize13.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

series737.0ms (3.9%)

Counts
3 → 96
Calls

3 calls:

366.0ms
(pow.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 3)
349.0ms
(cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))
22.0ms
(*.f64 (-.f64 lambda1 lambda2) (pow.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 3))

rewrite63.0ms (0.3%)

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 → 67
Calls

3 calls:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01435
129235
2357735
3525735

simplify83.0ms (0.4%)

Algorithm
egg-herbie
Rules
777×cancel-sign-sub-inv_binary64
601×fma-neg_binary64
301×neg-sub0_binary64
300×neg-mul-1_binary64
260×distribute-rgt-neg-in_binary64
Counts
163 → 123
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01912252
16232236
222332094
342992088
449942088

prune277.0ms (1.5%)

Pruning

17 alts after pruning (17 fresh and 0 done)

PrunedKeptTotal
New1532155
Fresh11516
Picked101
Done000
Total15517172
Error
3.1b
Counts
172 → 17
Alt Table
StatusErrorProgram
27.6b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (fma.f64 (cos.f64 (exp.f64 (log1p.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (cos.f64 1) (*.f64 (sin.f64 (exp.f64 (log1p.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (sin.f64 1)))) (-.f64 phi1 phi2)))
3.6b
(*.f64 R (pow.f64 (sqrt.f64 (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2))) 2))
7.1b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (exp.f64 (log1p.f64 (cos.f64 (*.f64 1/2 phi2)))) 1)) (-.f64 phi1 phi2)))
3.5b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (pow.f64 (log.f64 (+.f64 1 (expm1.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))))) 3)) (-.f64 phi1 phi2)))
27.9b
(-.f64 (*.f64 R phi2) (*.f64 phi1 R))
3.5b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) 3) 3)) (-.f64 phi1 phi2)))
23.2b
(expm1.f64 (log1p.f64 (*.f64 R (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2)))))
37.3b
(*.f64 R (hypot.f64 (/.f64 (*.f64 (-.f64 (pow.f64 lambda1 3) (pow.f64 lambda2 3)) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (fma.f64 lambda1 lambda1 (*.f64 lambda2 (+.f64 lambda1 lambda2)))) (-.f64 phi1 phi2)))
4.0b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (exp.f64 (pow.f64 (cbrt.f64 (log1p.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) 3)) 1)) (-.f64 phi1 phi2)))
29.7b
(pow.f64 (sqrt.f64 (*.f64 R (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2)))) 2)
8.2b
(*.f64 R (expm1.f64 (log1p.f64 (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2)))))
4.4b
(*.f64 R (pow.f64 (cbrt.f64 (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2))) 3))
7.0b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (exp.f64 (+.f64 (fma.f64 (*.f64 (tan.f64 (/.f64 (*.f64 1/2 phi2) 2)) phi1) -1/2 (log1p.f64 (cos.f64 (*.f64 1/2 phi2)))) (*.f64 (*.f64 (/.f64 (*.f64 phi1 phi1) (+.f64 (cos.f64 (*.f64 1/2 phi2)) 1)) (+.f64 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 phi2)) 2) (+.f64 (cos.f64 (*.f64 1/2 phi2)) 1)) (cos.f64 (*.f64 1/2 phi2)))) -1/8))) 1)) (-.f64 phi1 phi2)))
43.8b
(*.f64 R (sqrt.f64 (-.f64 (fma.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (*.f64 lambda2 lambda2) (+.f64 (*.f64 phi1 phi1) (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (*.f64 lambda1 lambda1)))) (*.f64 2 (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (*.f64 lambda2 lambda1))))))
3.5b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (fma.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (pow.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 2) 1) 1)) (-.f64 phi1 phi2)))
4.4b
(pow.f64 (cbrt.f64 (*.f64 R (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2)))) 3)
52.3b
(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 5731 to 3582 computations (37.5% saved)

localize17.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.5b
(-.f64 (fma.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (pow.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 2) 1) 1)
0.5b
(cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))
0.5b
(fma.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (pow.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 2) 1)
3.2b
(cos.f64 (/.f64 (+.f64 phi1 phi2) 2))

series1.4s (7.5%)

Counts
2 → 48
Calls

2 calls:

714.0ms
(fma.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (pow.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 2) 1)
706.0ms
(-.f64 (fma.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (pow.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 2) 1) 1)

rewrite117.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
643×prod-diff_binary64
444×fma-udef_binary64
339×fma-def_binary64
246×fma-neg_binary64
196×expm1-udef_binary64
Counts
2 → 89
Calls

2 calls:

115.0ms
(-.f64 (fma.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (pow.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 2) 1) 1)
115.0ms
(fma.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (pow.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 2) 1)
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01259
126221
2281021
3476221
4477921
5494321

simplify123.0ms (0.6%)

Algorithm
egg-herbie
Rules
570×cancel-sign-sub-inv_binary64
563×associate-*l*_binary64
449×fma-neg_binary64
440×associate-*r*_binary64
437×distribute-rgt-neg-in_binary64
Counts
137 → 122
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
056812
1161804
2458778
31308736
43458728
54545728
64995728
74999728
84959728

prune548.0ms (2.9%)

Pruning

19 alts after pruning (19 fresh and 0 done)

PrunedKeptTotal
New2644268
Fresh11516
Picked101
Done000
Total26619285
Error
3.1b
Counts
285 → 19
Alt Table
StatusErrorProgram
27.6b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (fma.f64 (cos.f64 (exp.f64 (log1p.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (cos.f64 1) (*.f64 (sin.f64 (exp.f64 (log1p.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (sin.f64 1)))) (-.f64 phi1 phi2)))
3.6b
(*.f64 R (pow.f64 (sqrt.f64 (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2))) 2))
7.5b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (fma.f64 (cbrt.f64 (cos.f64 (*.f64 1/2 phi1))) (pow.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 2) 1) 1)) (-.f64 phi1 phi2)))
7.1b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (exp.f64 (log1p.f64 (cos.f64 (*.f64 1/2 phi2)))) 1)) (-.f64 phi1 phi2)))
3.5b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (pow.f64 (log.f64 (+.f64 1 (expm1.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))))) 3)) (-.f64 phi1 phi2)))
18.8b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (fma.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 1/3) (pow.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 2) 1) 1)) (-.f64 phi1 phi2)))
37.3b
(*.f64 R (hypot.f64 (/.f64 (*.f64 (-.f64 (pow.f64 lambda1 3) (pow.f64 lambda2 3)) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (fma.f64 lambda1 lambda1 (*.f64 lambda2 (+.f64 lambda1 lambda2)))) (-.f64 phi1 phi2)))
23.2b
(expm1.f64 (log1p.f64 (*.f64 R (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2)))))
4.0b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (exp.f64 (pow.f64 (cbrt.f64 (log1p.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) 3)) 1)) (-.f64 phi1 phi2)))
29.7b
(pow.f64 (sqrt.f64 (*.f64 R (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2)))) 2)
8.2b
(*.f64 R (expm1.f64 (log1p.f64 (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2)))))
4.4b
(*.f64 R (pow.f64 (cbrt.f64 (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2))) 3))
7.0b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (exp.f64 (+.f64 (fma.f64 (*.f64 (tan.f64 (/.f64 (*.f64 1/2 phi2) 2)) phi1) -1/2 (log1p.f64 (cos.f64 (*.f64 1/2 phi2)))) (*.f64 (*.f64 (/.f64 (*.f64 phi1 phi1) (+.f64 (cos.f64 (*.f64 1/2 phi2)) 1)) (+.f64 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 phi2)) 2) (+.f64 (cos.f64 (*.f64 1/2 phi2)) 1)) (cos.f64 (*.f64 1/2 phi2)))) -1/8))) 1)) (-.f64 phi1 phi2)))
43.8b
(*.f64 R (sqrt.f64 (-.f64 (fma.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (*.f64 lambda2 lambda2) (+.f64 (*.f64 phi1 phi1) (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (*.f64 lambda1 lambda1)))) (*.f64 2 (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (*.f64 lambda2 lambda1))))))
27.9b
(-.f64 (*.f64 R phi2) (*.f64 phi1 R))
7.0b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (fma.f64 (cbrt.f64 (cos.f64 (*.f64 1/2 phi2))) (pow.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 2) 1) 1)) (-.f64 phi1 phi2)))
7.1b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (fma.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (pow.f64 (cbrt.f64 (cos.f64 (*.f64 1/2 phi2))) 2) 1) 1)) (-.f64 phi1 phi2)))
4.4b
(pow.f64 (cbrt.f64 (*.f64 R (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2)))) 3)
52.3b
(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 10450 to 6688 computations (36% saved)

regimes2.4s (12.5%)

Accuracy

Total 0.3b remaining (7.6%)

Threshold costs 0.3b (7.6%)

Counts
189 → 1
Compiler

Compiled 71640 to 50384 computations (29.7% 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
01828
12628
23328
33728
43928
53828

end367.0ms (1.9%)

Remove

(sort phi1 phi2)

(sort lambda1 lambda2)

Compiler

Compiled 716 to 521 computations (27.2% saved)

Profiling

Loading profile data...