Details

Time bar (total: 22.2s)

analyze2.7s (12.3%)

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.2s (18.7%)

Symmetry

(sort lambda1 lambda2)

(sort phi1 phi2)

Results
1.4s6204×body128valid
746.0ms815×body1024valid
582.0ms2491×body128invalid
450.0ms753×body512valid
412.0ms463×body1024invalid
217.0ms370×body512invalid
193.0ms481×body256valid
61.0ms159×body256invalid
5.0msbody2048valid
Compiler

Compiled 113 to 65 computations (42.5% saved)

simplify131.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.0b
Counts
3 → 2
Alt Table
StatusErrorProgram
3.0b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))
38.2b
(*.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.2b
(*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))
2.9b
(cos.f64 (/.f64 (+.f64 phi1 phi2) 2))

series4.1s (18.4%)

Counts
4 → 180
Calls

4 calls:

3.1s
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))
1.0s
(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)))
6.0ms
(cos.f64 (/.f64 (+.f64 phi1 phi2) 2))

rewrite295.0ms (1.3%)

Algorithm
egg-rewrite
Rules
35×egg
29×egg
19×egg
18×egg
Counts
4 → 101
Calls

4 calls:

86.0ms
(*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))
77.0ms
(cos.f64 (/.f64 (+.f64 phi1 phi2) 2))
68.0ms
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))
63.0ms
(hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
079
11579
219759
357599
01115
124615
2318915
3492915
01524
133124
2424724
3510224
01321
129221
2378821
3520421

simplify645.0ms (2.9%)

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
281 → 297
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0219644761
1503544761

prune1.7s (7.4%)

Pruning

18 alts after pruning (18 fresh and 0 done)

PrunedKeptTotal
New28017297
Fresh011
Picked101
Done000
Total28118299
Error
2.7b
Counts
299 → 18
Alt Table
StatusErrorProgram
25.3b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (cos.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)))
28.9b
(-.f64 (*.f64 R phi2) (*.f64 phi1 R))
33.6b
(pow.f64 (sqrt.f64 (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))) 2)
3.5b
(*.f64 R (hypot.f64 (*.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (pow.f64 (cbrt.f64 (-.f64 lambda1 lambda2)) 2)) (cbrt.f64 (-.f64 lambda1 lambda2))) (-.f64 phi1 phi2)))
3.1b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (log.f64 (+.f64 1 (expm1.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))))) (-.f64 phi1 phi2)))
57.8b
(-.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))))))
50.1b
(pow.f64 (pow.f64 (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))) 3) 1/3)
3.2b
(*.f64 R (hypot.f64 (*.f64 (pow.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 2) (*.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 lambda1 lambda2))) (-.f64 phi1 phi2)))
38.2b
(*.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)))))
3.4b
(*.f64 (sqrt.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))) (*.f64 (sqrt.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))) R))
8.0b
(*.f64 R (expm1.f64 (log1p.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (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 phi1))) (-.f64 phi1 phi2)))
3.1b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cbrt.f64 (pow.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) 3))) (-.f64 phi1 phi2)))
7.3b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (*.f64 1/2 phi2))) (-.f64 phi1 phi2)))
44.2b
(-.f64 (fma.f64 1/2 (/.f64 (*.f64 (*.f64 phi1 phi1) R) (*.f64 lambda2 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))))) (fma.f64 1/2 (/.f64 (*.f64 R (*.f64 phi2 phi2)) (*.f64 lambda2 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))))) (*.f64 lambda2 (*.f64 R (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))))))) (fma.f64 R (*.f64 lambda1 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2)))) (/.f64 (*.f64 phi1 (*.f64 R phi2)) (*.f64 lambda2 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2)))))))
17.9b
(*.f64 R (hypot.f64 (-.f64 (fma.f64 1/2 (*.f64 lambda2 (*.f64 (sin.f64 (*.f64 1/2 phi1)) phi2)) (*.f64 (cos.f64 (*.f64 1/2 phi1)) lambda1)) (fma.f64 1/2 (*.f64 (sin.f64 (*.f64 1/2 phi1)) (*.f64 phi2 lambda1)) (*.f64 (cos.f64 (*.f64 1/2 phi1)) lambda2))) (-.f64 phi1 phi2)))
4.3b
(*.f64 (*.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)) (pow.f64 (cbrt.f64 R) 2)) (cbrt.f64 R))
4.2b
(*.f64 (*.f64 R (pow.f64 (cbrt.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))) 2)) (cbrt.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))))
Compiler

Compiled 60964 to 41678 computations (31.6% saved)

localize25.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(+.f64 1 (expm1.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))
0.5b
(expm1.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))
0.5b
(log.f64 (+.f64 1 (expm1.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))))
2.9b
(cos.f64 (/.f64 (+.f64 phi1 phi2) 2))

series692.0ms (3.1%)

Counts
3 → 72
Calls

3 calls:

662.0ms
(log.f64 (+.f64 1 (expm1.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))))
16.0ms
(+.f64 1 (expm1.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))
14.0ms
(expm1.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))

rewrite288.0ms (1.3%)

Algorithm
egg-rewrite
Rules
48×egg
26×egg
20×egg
Counts
3 → 94
Calls

3 calls:

117.0ms
(log.f64 (+.f64 1 (expm1.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))))
115.0ms
(+.f64 1 (expm1.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))
54.0ms
(expm1.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0119
12149
226219
346999
447569
550049
0811
117411
2215611
3617911
01014
121611
2261211
3470511
4476711
5496111

simplify122.0ms (0.5%)

Algorithm
egg-herbie
Rules
771×cancel-sign-sub-inv_binary64
384×associate--l+_binary64
381×associate--r+_binary64
336×distribute-rgt-neg-in_binary64
325×distribute-lft-neg-in_binary64
Counts
166 → 141
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01231930
14011911
214871701
342171701
449021701
549821701

prune400.0ms (1.8%)

Pruning

19 alts after pruning (18 fresh and 1 done)

PrunedKeptTotal
New1684172
Fresh31417
Picked011
Done000
Total17119190
Error
2.7b
Counts
190 → 19
Alt Table
StatusErrorProgram
25.3b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (cos.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)))
28.9b
(-.f64 (*.f64 R phi2) (*.f64 phi1 R))
33.6b
(pow.f64 (sqrt.f64 (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))) 2)
3.5b
(*.f64 R (hypot.f64 (*.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (pow.f64 (cbrt.f64 (-.f64 lambda1 lambda2)) 2)) (cbrt.f64 (-.f64 lambda1 lambda2))) (-.f64 phi1 phi2)))
3.1b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (log.f64 (+.f64 1 (expm1.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))))) (-.f64 phi1 phi2)))
57.8b
(-.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))))))
4.0b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (log.f64 (*.f64 (cbrt.f64 (exp.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (pow.f64 (cbrt.f64 (exp.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) 2)))) (-.f64 phi1 phi2)))
7.3b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (*.f64 1/2 phi2))) (-.f64 phi1 phi2)))
7.7b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (log.f64 (exp.f64 (cos.f64 (*.f64 1/2 phi1))))) (-.f64 phi1 phi2)))
3.2b
(*.f64 R (hypot.f64 (*.f64 (pow.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 2) (*.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 lambda1 lambda2))) (-.f64 phi1 phi2)))
3.1b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (log.f64 (pow.f64 (E.f64) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))) (-.f64 phi1 phi2)))
38.2b
(*.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)))))
3.4b
(*.f64 (sqrt.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))) (*.f64 (sqrt.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))) R))
8.0b
(*.f64 R (expm1.f64 (log1p.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))))
44.2b
(-.f64 (fma.f64 1/2 (/.f64 (*.f64 (*.f64 phi1 phi1) R) (*.f64 lambda2 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))))) (fma.f64 1/2 (/.f64 (*.f64 R (*.f64 phi2 phi2)) (*.f64 lambda2 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))))) (*.f64 lambda2 (*.f64 R (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))))))) (fma.f64 R (*.f64 lambda1 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2)))) (/.f64 (*.f64 phi1 (*.f64 R phi2)) (*.f64 lambda2 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2)))))))
17.9b
(*.f64 R (hypot.f64 (-.f64 (fma.f64 1/2 (*.f64 lambda2 (*.f64 (sin.f64 (*.f64 1/2 phi1)) phi2)) (*.f64 (cos.f64 (*.f64 1/2 phi1)) lambda1)) (fma.f64 1/2 (*.f64 (sin.f64 (*.f64 1/2 phi1)) (*.f64 phi2 lambda1)) (*.f64 (cos.f64 (*.f64 1/2 phi1)) lambda2))) (-.f64 phi1 phi2)))
4.3b
(*.f64 (*.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)) (pow.f64 (cbrt.f64 R) 2)) (cbrt.f64 R))
4.2b
(*.f64 (*.f64 R (pow.f64 (cbrt.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))) 2)) (cbrt.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))))
6.6b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (log.f64 (+.f64 1 (sqrt.f64 (pow.f64 (expm1.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 2))))) (-.f64 phi1 phi2)))
Compiler

Compiled 6721 to 4224 computations (37.2% saved)

localize17.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(pow.f64 (E.f64) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))
0.2b
(*.f64 (-.f64 lambda1 lambda2) (log.f64 (pow.f64 (E.f64) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))))
0.5b
(log.f64 (pow.f64 (E.f64) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))
2.9b
(cos.f64 (/.f64 (+.f64 phi1 phi2) 2))

series2.1s (9.3%)

Counts
3 → 96
Calls

3 calls:

1.0s
(*.f64 (-.f64 lambda1 lambda2) (log.f64 (pow.f64 (E.f64) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))))
755.0ms
(log.f64 (pow.f64 (E.f64) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))
278.0ms
(pow.f64 (E.f64) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))

rewrite175.0ms (0.8%)

Algorithm
egg-rewrite
Rules
40×egg
37×egg
29×egg
Counts
3 → 106
Calls

3 calls:

67.0ms
(*.f64 (-.f64 lambda1 lambda2) (log.f64 (pow.f64 (E.f64) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))))
54.0ms
(log.f64 (pow.f64 (E.f64) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))
52.0ms
(pow.f64 (E.f64) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0109
12189
223849
350399
01421
130715
2360015
3532115
0913
120111
2237311
3503211

simplify146.0ms (0.7%)

Algorithm
egg-herbie
Rules
450×associate--l+_binary64
422×associate--r+_binary64
342×fma-neg_binary64
273×associate-*r*_binary64
229×distribute-rgt-neg-in_binary64
Counts
202 → 157
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01792272
15752242
221092049
348842049
449862049
549852049

prune350.0ms (1.6%)

Pruning

19 alts after pruning (17 fresh and 2 done)

PrunedKeptTotal
New1862188
Fresh21517
Picked011
Done011
Total18819207
Error
2.7b
Counts
207 → 19
Alt Table
StatusErrorProgram
33.6b
(pow.f64 (sqrt.f64 (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))) 2)
3.5b
(*.f64 R (hypot.f64 (*.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (pow.f64 (cbrt.f64 (-.f64 lambda1 lambda2)) 2)) (cbrt.f64 (-.f64 lambda1 lambda2))) (-.f64 phi1 phi2)))
3.1b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (log.f64 (+.f64 1 (expm1.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))))) (-.f64 phi1 phi2)))
57.8b
(-.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))))))
4.0b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (log.f64 (*.f64 (cbrt.f64 (exp.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (pow.f64 (cbrt.f64 (exp.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) 2)))) (-.f64 phi1 phi2)))
7.3b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (*.f64 1/2 phi2))) (-.f64 phi1 phi2)))
7.7b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (log.f64 (exp.f64 (cos.f64 (*.f64 1/2 phi1))))) (-.f64 phi1 phi2)))
3.2b
(*.f64 R (hypot.f64 (*.f64 (pow.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 2) (*.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 lambda1 lambda2))) (-.f64 phi1 phi2)))
3.1b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (log.f64 (pow.f64 (E.f64) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))) (-.f64 phi1 phi2)))
4.3b
(*.f64 (*.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)) (pow.f64 (cbrt.f64 R) 2)) (cbrt.f64 R))
17.3b
(*.f64 R (hypot.f64 (+.f64 (*.f64 (cos.f64 (*.f64 1/2 phi1)) lambda1) (-.f64 (*.f64 (*.f64 1/2 (*.f64 phi2 (sin.f64 (*.f64 1/2 phi1)))) (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 (*.f64 1/2 phi1)) lambda2))) (-.f64 phi1 phi2)))
38.2b
(*.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)))))
3.4b
(*.f64 (sqrt.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))) (*.f64 (sqrt.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))) R))
8.0b
(*.f64 R (expm1.f64 (log1p.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))))
25.3b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (cos.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)))
44.2b
(-.f64 (fma.f64 1/2 (/.f64 (*.f64 (*.f64 phi1 phi1) R) (*.f64 lambda2 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))))) (fma.f64 1/2 (/.f64 (*.f64 R (*.f64 phi2 phi2)) (*.f64 lambda2 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))))) (*.f64 lambda2 (*.f64 R (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))))))) (fma.f64 R (*.f64 lambda1 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2)))) (/.f64 (*.f64 phi1 (*.f64 R phi2)) (*.f64 lambda2 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2)))))))
4.2b
(*.f64 (*.f64 R (pow.f64 (cbrt.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))) 2)) (cbrt.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))))
6.6b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (log.f64 (+.f64 1 (sqrt.f64 (pow.f64 (expm1.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 2))))) (-.f64 phi1 phi2)))
16.5b
(*.f64 R (hypot.f64 (neg.f64 (*.f64 (cos.f64 (*.f64 1/2 (+.f64 phi2 phi1))) lambda2)) (-.f64 phi1 phi2)))
Compiler

Compiled 6605 to 3866 computations (41.5% saved)

localize17.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

series1.0s (4.5%)

Counts
3 → 96
Calls

3 calls:

497.0ms
(pow.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 2)
485.0ms
(cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))
25.0ms
(*.f64 (pow.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 2) (*.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 lambda1 lambda2)))

rewrite177.0ms (0.8%)

Algorithm
egg-rewrite
Rules
43×egg
23×egg
21×egg
Counts
3 → 87
Calls

3 calls:

68.0ms
(*.f64 (pow.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 2) (*.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 lambda1 lambda2)))
58.0ms
(cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))
50.0ms
(pow.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 2)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0811
117411
2215911
3616011
0914
119612
2230112
3486912
01415
130615
2379915
3551315

simplify81.0ms (0.4%)

Algorithm
egg-herbie
Rules
885×cancel-sign-sub-inv_binary64
320×associate-*r*_binary64
273×unswap-sqr_binary64
230×associate-*l*_binary64
228×sub-neg_binary64
Counts
183 → 144
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02282640
17402628
227192612
351402612

prune633.0ms (2.8%)

Pruning

22 alts after pruning (20 fresh and 2 done)

PrunedKeptTotal
New2405245
Fresh11516
Picked101
Done022
Total24222264
Error
2.7b
Counts
264 → 22
Alt Table
StatusErrorProgram
33.6b
(pow.f64 (sqrt.f64 (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))) 2)
3.5b
(*.f64 R (hypot.f64 (*.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (pow.f64 (cbrt.f64 (-.f64 lambda1 lambda2)) 2)) (cbrt.f64 (-.f64 lambda1 lambda2))) (-.f64 phi1 phi2)))
3.1b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (log.f64 (+.f64 1 (expm1.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))))) (-.f64 phi1 phi2)))
57.8b
(-.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))))))
4.0b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (log.f64 (*.f64 (cbrt.f64 (exp.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (pow.f64 (cbrt.f64 (exp.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) 2)))) (-.f64 phi1 phi2)))
7.3b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (*.f64 1/2 phi2))) (-.f64 phi1 phi2)))
7.7b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (log.f64 (exp.f64 (cos.f64 (*.f64 1/2 phi1))))) (-.f64 phi1 phi2)))
4.3b
(*.f64 (*.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)) (pow.f64 (cbrt.f64 R) 2)) (cbrt.f64 R))
17.3b
(*.f64 R (hypot.f64 (+.f64 (*.f64 (cos.f64 (*.f64 1/2 phi1)) lambda1) (-.f64 (*.f64 (*.f64 1/2 (*.f64 phi2 (sin.f64 (*.f64 1/2 phi1)))) (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 (*.f64 1/2 phi1)) lambda2))) (-.f64 phi1 phi2)))
3.3b
(*.f64 R (hypot.f64 (*.f64 (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) 3) 2) (*.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 lambda1 lambda2))) (-.f64 phi1 phi2)))
38.2b
(*.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)))))
3.4b
(*.f64 (sqrt.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))) (*.f64 (sqrt.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))) R))
7.6b
(*.f64 R (hypot.f64 (*.f64 (cbrt.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2)) (*.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 lambda1 lambda2))) (-.f64 phi1 phi2)))
16.5b
(*.f64 R (hypot.f64 (neg.f64 (*.f64 (cos.f64 (*.f64 1/2 (+.f64 phi2 phi1))) lambda2)) (-.f64 phi1 phi2)))
7.6b
(*.f64 R (hypot.f64 (*.f64 (pow.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 2) (*.f64 (cbrt.f64 (cos.f64 (*.f64 1/2 phi1))) (-.f64 lambda1 lambda2))) (-.f64 phi1 phi2)))
7.7b
(*.f64 R (hypot.f64 (*.f64 (pow.f64 (cbrt.f64 (cos.f64 (*.f64 1/2 phi1))) 2) (*.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 lambda1 lambda2))) (-.f64 phi1 phi2)))
8.0b
(*.f64 R (expm1.f64 (log1p.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))))
25.3b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (cos.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)))
3.1b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (log.f64 (pow.f64 (E.f64) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))) (-.f64 phi1 phi2)))
44.2b
(-.f64 (fma.f64 1/2 (/.f64 (*.f64 (*.f64 phi1 phi1) R) (*.f64 lambda2 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))))) (fma.f64 1/2 (/.f64 (*.f64 R (*.f64 phi2 phi2)) (*.f64 lambda2 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))))) (*.f64 lambda2 (*.f64 R (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))))))) (fma.f64 R (*.f64 lambda1 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2)))) (/.f64 (*.f64 phi1 (*.f64 R phi2)) (*.f64 lambda2 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2)))))))
7.2b
(*.f64 R (hypot.f64 (*.f64 (pow.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 2) (*.f64 (cbrt.f64 (cos.f64 (*.f64 1/2 phi2))) (-.f64 lambda1 lambda2))) (-.f64 phi1 phi2)))
6.6b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (log.f64 (+.f64 1 (sqrt.f64 (pow.f64 (expm1.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 2))))) (-.f64 phi1 phi2)))
Compiler

Compiled 10284 to 6457 computations (37.2% saved)

regimes1.9s (8.4%)

Accuracy

Total 0.3b remaining (8.9%)

Threshold costs 0.3b (8.9%)

Counts
158 → 1
Compiler

Compiled 49461 to 34325 computations (30.6% 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
01635
12835
24135
34935
45435
55535
65535

end433.0ms (1.9%)

Remove

(sort phi1 phi2)

(sort lambda1 lambda2)

Compiler

Compiled 846 to 568 computations (32.9% saved)

Profiling

Loading profile data...