Details

Time bar (total: 19.7s)

analyze3.9s (19.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)

sample142.0ms (0.7%)

Algorithm
intervals
Results
28.0ms187×body128valid
19.0ms24×body1024invalid
15.0ms37×body512valid
15.0ms21×body1024valid
10.0ms71×body128invalid
9.0ms17×body512invalid
3.0ms11×body256valid
3.0ms10×body256invalid
Compiler

Compiled 80 to 48 computations (40% saved)

simplify120.0ms (0.6%)

Algorithm
egg-herbie
Rules
1409×unsub-neg_binary64
864×distribute-neg-out_binary64
607×neg-sub0_binary64
531×neg-mul-1_binary64
472×distribute-neg-in_binary64
Counts
1 → 0
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01849
13349
27649
320449
456849
5142349
6346449
7353449
8395149
9409449
10414949
11418449
12496049

prune2.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done000
Total011
Error
39.6b
Counts
1 → 1
Alt Table
StatusErrorProgram
39.6b
(*.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 74 to 42 computations (43.2% saved)

localize24.0ms (0.1%)

Local error

Found 4 expressions with local error:

0.2b
(*.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))
3.2b
(cos.f64 (/.f64 (+.f64 phi1 phi2) 2))
3.2b
(cos.f64 (/.f64 (+.f64 phi1 phi2) 2))
36.1b
(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))))

rewrite332.0ms (1.7%)

Algorithm
rewrite-expression-head
Error
39.6b
Rules
142×associate-*l/_binary64
102×flip--_binary64
102×flip3--_binary64
68×frac-times_binary64
66×sqrt-div_binary64
Counts
4 → 135
Calls

4 calls:

42.0ms
(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))))
10.0ms
(*.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))
3.0ms
(cos.f64 (/.f64 (+.f64 phi1 phi2) 2))
3.0ms
(cos.f64 (/.f64 (+.f64 phi1 phi2) 2))
Compiler

Compiled 8749 to 2698 computations (69.2% saved)

series550.0ms (2.8%)

Error
3.3b
Counts
4 → 75
Calls

4 calls:

342.0ms
(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))))
98.0ms
(*.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))
14.0ms
(cos.f64 (/.f64 (+.f64 phi1 phi2) 2))
14.0ms
(cos.f64 (/.f64 (+.f64 phi1 phi2) 2))
Compiler

Compiled 11824 to 8300 computations (29.8% saved)

simplify212.0ms (1.1%)

Algorithm
egg-herbie
Rules
671×distribute-rgt-in_binary64
662×distribute-lft-in_binary64
269×*-commutative_binary64
186×associate-*r*_binary64
137×+-commutative_binary64
Counts
210 → 194
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
069414574
1182813988
2562813988

prune138.0ms (0.7%)

Pruning

9 alts after pruning (9 fresh and 0 done)

PrunedKeptTotal
New1859194
Fresh000
Picked101
Done000
Total1869195
Error
5.0b
Counts
195 → 9
Alt Table
StatusErrorProgram
41.8b
(*.f64 R (sqrt.f64 (+.f64 (-.f64 (+.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 phi1 1/2)) 2) (+.f64 (*.f64 lambda2 lambda2) (*.f64 lambda1 lambda1))) (*.f64 2 (*.f64 (cos.f64 (*.f64 phi1 1/2)) (*.f64 lambda2 (*.f64 (*.f64 phi2 lambda1) (sin.f64 (*.f64 phi1 1/2))))))) (+.f64 (*.f64 2 (*.f64 (pow.f64 (cos.f64 (*.f64 phi1 1/2)) 2) (*.f64 lambda2 lambda1))) (*.f64 (cos.f64 (*.f64 phi1 1/2)) (*.f64 (*.f64 phi2 (sin.f64 (*.f64 phi1 1/2))) (+.f64 (*.f64 lambda2 lambda2) (*.f64 lambda1 lambda1)))))) (*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2)))))
42.0b
(*.f64 R (+.f64 (-.f64 (+.f64 phi2 (/.f64 (*.f64 lambda2 (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi2 phi1))) 2) lambda1)) phi1)) phi1) (*.f64 -1/2 (+.f64 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi2 phi1))) 2) (*.f64 lambda1 lambda1)) phi1) (/.f64 (*.f64 (*.f64 lambda2 lambda2) (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi2 phi1))) 2)) phi1)))))
54.4b
(*.f64 R (*.f64 (cos.f64 (*.f64 1/2 (+.f64 phi2 phi1))) (-.f64 lambda1 lambda2)))
42.2b
(*.f64 R (-.f64 (+.f64 (*.f64 1/2 (+.f64 (/.f64 (*.f64 (*.f64 lambda2 lambda2) (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi2 phi1))) 2)) phi2) (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi2 phi1))) 2) (*.f64 lambda1 lambda1)) phi2))) phi2) (+.f64 phi1 (/.f64 (*.f64 lambda2 (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi2 phi1))) 2) lambda1)) phi2))))
39.7b
(*.f64 R (*.f64 (sqrt.f64 (sqrt.f64 (+.f64 (*.f64 (pow.f64 (-.f64 lambda1 lambda2) 2) (*.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)) (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)))) (*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2))))) (sqrt.f64 (sqrt.f64 (+.f64 (*.f64 (pow.f64 (-.f64 lambda1 lambda2) 2) (*.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)) (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)))) (*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2)))))))
40.1b
(*.f64 R (*.f64 (*.f64 (cbrt.f64 (sqrt.f64 (+.f64 (*.f64 (pow.f64 (-.f64 lambda1 lambda2) 2) (*.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)) (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)))) (*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2))))) (cbrt.f64 (sqrt.f64 (+.f64 (*.f64 (pow.f64 (-.f64 lambda1 lambda2) 2) (*.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)) (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)))) (*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2)))))) (cbrt.f64 (sqrt.f64 (+.f64 (*.f64 (pow.f64 (-.f64 lambda1 lambda2) 2) (*.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)) (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)))) (*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2)))))))
47.0b
(*.f64 R (neg.f64 phi1))
39.9b
(*.f64 R (*.f64 (cos.f64 (*.f64 1/2 (+.f64 phi2 phi1))) (-.f64 lambda2 lambda1)))
39.6b
(*.f64 R (sqrt.f64 (+.f64 (*.f64 (*.f64 (-.f64 lambda1 lambda2) (cbrt.f64 (pow.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)) 3))) (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2)))))
Compiler

Compiled 7222 to 3240 computations (55.1% saved)

localize23.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

rewrite162.0ms (0.8%)

Algorithm
rewrite-expression-head
Error
5.0b
Rules
128×associate-*l/_binary64
96×flip--_binary64
96×flip3--_binary64
66×sqrt-div_binary64
64×frac-add_binary64
Counts
4 → 116
Calls

4 calls:

17.0ms
(sqrt.f64 (+.f64 (*.f64 (*.f64 (-.f64 lambda1 lambda2) (cbrt.f64 (pow.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)) 3))) (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2))))
3.0ms
(cos.f64 (/.f64 (+.f64 phi2 phi1) 2))
3.0ms
(cos.f64 (/.f64 (+.f64 phi1 phi2) 2))
2.0ms
(pow.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)) 3)
Compiler

Compiled 8400 to 2825 computations (66.4% saved)

series444.0ms (2.3%)

Error
5.0b
Counts
4 → 57
Calls

4 calls:

332.0ms
(sqrt.f64 (+.f64 (*.f64 (*.f64 (-.f64 lambda1 lambda2) (cbrt.f64 (pow.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)) 3))) (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2))))
29.0ms
(pow.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)) 3)
16.0ms
(cos.f64 (/.f64 (+.f64 phi2 phi1) 2))
15.0ms
(cos.f64 (/.f64 (+.f64 phi1 phi2) 2))
Compiler

Compiled 10127 to 7153 computations (29.4% saved)

simplify187.0ms (0.9%)

Algorithm
egg-herbie
Rules
663×distribute-rgt-in_binary64
654×distribute-lft-in_binary64
260×*-commutative_binary64
166×associate-*r*_binary64
127×associate-*l*_binary64
Counts
173 → 148
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
067412979
1171812233
2551012233

prune101.0ms (0.5%)

Pruning

9 alts after pruning (8 fresh and 1 done)

PrunedKeptTotal
New1462148
Fresh268
Picked011
Done000
Total1489157
Error
5.0b
Counts
157 → 9
Alt Table
StatusErrorProgram
41.8b
(*.f64 R (sqrt.f64 (+.f64 (-.f64 (+.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 phi1 1/2)) 2) (+.f64 (*.f64 lambda2 lambda2) (*.f64 lambda1 lambda1))) (*.f64 2 (*.f64 (cos.f64 (*.f64 phi1 1/2)) (*.f64 lambda2 (*.f64 (*.f64 phi2 lambda1) (sin.f64 (*.f64 phi1 1/2))))))) (+.f64 (*.f64 2 (*.f64 (pow.f64 (cos.f64 (*.f64 phi1 1/2)) 2) (*.f64 lambda2 lambda1))) (*.f64 (cos.f64 (*.f64 phi1 1/2)) (*.f64 (*.f64 phi2 (sin.f64 (*.f64 phi1 1/2))) (+.f64 (*.f64 lambda2 lambda2) (*.f64 lambda1 lambda1)))))) (*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2)))))
42.0b
(*.f64 R (+.f64 (-.f64 (+.f64 phi2 (/.f64 (*.f64 lambda2 (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi2 phi1))) 2) lambda1)) phi1)) phi1) (*.f64 -1/2 (+.f64 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi2 phi1))) 2) (*.f64 lambda1 lambda1)) phi1) (/.f64 (*.f64 (*.f64 lambda2 lambda2) (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi2 phi1))) 2)) phi1)))))
39.9b
(*.f64 R (*.f64 (cos.f64 (*.f64 1/2 (+.f64 phi2 phi1))) (-.f64 lambda2 lambda1)))
40.1b
(*.f64 R (*.f64 (*.f64 (cbrt.f64 (sqrt.f64 (+.f64 (*.f64 (pow.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)) 2) (*.f64 (-.f64 lambda1 lambda2) (-.f64 lambda1 lambda2))) (*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2))))) (cbrt.f64 (sqrt.f64 (+.f64 (*.f64 (pow.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)) 2) (*.f64 (-.f64 lambda1 lambda2) (-.f64 lambda1 lambda2))) (*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2)))))) (cbrt.f64 (sqrt.f64 (+.f64 (*.f64 (pow.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)) 2) (*.f64 (-.f64 lambda1 lambda2) (-.f64 lambda1 lambda2))) (*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2)))))))
54.4b
(*.f64 R (*.f64 (cos.f64 (*.f64 1/2 (+.f64 phi2 phi1))) (-.f64 lambda1 lambda2)))
42.2b
(*.f64 R (-.f64 (+.f64 (*.f64 1/2 (+.f64 (/.f64 (*.f64 (*.f64 lambda2 lambda2) (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi2 phi1))) 2)) phi2) (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi2 phi1))) 2) (*.f64 lambda1 lambda1)) phi2))) phi2) (+.f64 phi1 (/.f64 (*.f64 lambda2 (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi2 phi1))) 2) lambda1)) phi2))))
47.0b
(*.f64 R (neg.f64 phi1))
39.7b
(*.f64 R (*.f64 (sqrt.f64 (sqrt.f64 (+.f64 (*.f64 (pow.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)) 2) (*.f64 (-.f64 lambda1 lambda2) (-.f64 lambda1 lambda2))) (*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2))))) (sqrt.f64 (sqrt.f64 (+.f64 (*.f64 (pow.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)) 2) (*.f64 (-.f64 lambda1 lambda2) (-.f64 lambda1 lambda2))) (*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2)))))))
39.6b
(*.f64 R (sqrt.f64 (+.f64 (*.f64 (*.f64 (-.f64 lambda1 lambda2) (cbrt.f64 (pow.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)) 3))) (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2)))))
Compiler

Compiled 6277 to 2776 computations (55.8% saved)

localize23.0ms (0.1%)

Local error

Found 4 expressions with local error:

3.2b
(cos.f64 (/.f64 (+.f64 phi2 phi1) 2))
3.2b
(cos.f64 (/.f64 (+.f64 phi2 phi1) 2))
36.1b
(sqrt.f64 (+.f64 (*.f64 (pow.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)) 2) (*.f64 (-.f64 lambda1 lambda2) (-.f64 lambda1 lambda2))) (*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2))))
36.1b
(sqrt.f64 (+.f64 (*.f64 (pow.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)) 2) (*.f64 (-.f64 lambda1 lambda2) (-.f64 lambda1 lambda2))) (*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2))))

rewrite262.0ms (1.3%)

Algorithm
rewrite-expression-head
Error
5.0b
Rules
192×flip--_binary64
192×associate-*r/_binary64
192×flip3--_binary64
132×sqrt-div_binary64
128×frac-add_binary64
Counts
4 → 172
Calls

4 calls:

16.0ms
(sqrt.f64 (+.f64 (*.f64 (pow.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)) 2) (*.f64 (-.f64 lambda1 lambda2) (-.f64 lambda1 lambda2))) (*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2))))
14.0ms
(sqrt.f64 (+.f64 (*.f64 (pow.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)) 2) (*.f64 (-.f64 lambda1 lambda2) (-.f64 lambda1 lambda2))) (*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2))))
3.0ms
(cos.f64 (/.f64 (+.f64 phi2 phi1) 2))
3.0ms
(cos.f64 (/.f64 (+.f64 phi2 phi1) 2))
Compiler

Compiled 17935 to 5315 computations (70.4% saved)

series799.0ms (4.1%)

Error
5.0b
Counts
4 → 76
Calls

4 calls:

336.0ms
(sqrt.f64 (+.f64 (*.f64 (pow.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)) 2) (*.f64 (-.f64 lambda1 lambda2) (-.f64 lambda1 lambda2))) (*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2))))
334.0ms
(sqrt.f64 (+.f64 (*.f64 (pow.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)) 2) (*.f64 (-.f64 lambda1 lambda2) (-.f64 lambda1 lambda2))) (*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2))))
14.0ms
(cos.f64 (/.f64 (+.f64 phi2 phi1) 2))
12.0ms
(cos.f64 (/.f64 (+.f64 phi2 phi1) 2))
Compiler

Compiled 20663 to 13818 computations (33.1% saved)

simplify312.0ms (1.6%)

Algorithm
egg-herbie
Rules
698×distribute-rgt-in_binary64
689×distribute-lft-in_binary64
245×*-commutative_binary64
159×associate-*r*_binary64
119×+-commutative_binary64
Counts
248 → 214
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
062122800
1156122002
2539622002

prune177.0ms (0.9%)

Pruning

9 alts after pruning (7 fresh and 2 done)

PrunedKeptTotal
New2131214
Fresh167
Picked011
Done011
Total2149223
Error
5.0b
Counts
223 → 9
Alt Table
StatusErrorProgram
39.9b
(*.f64 R (*.f64 (cos.f64 (*.f64 1/2 (+.f64 phi2 phi1))) (-.f64 lambda2 lambda1)))
40.1b
(*.f64 R (*.f64 (*.f64 (cbrt.f64 (sqrt.f64 (+.f64 (*.f64 (pow.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)) 2) (*.f64 (-.f64 lambda1 lambda2) (-.f64 lambda1 lambda2))) (*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2))))) (cbrt.f64 (sqrt.f64 (+.f64 (*.f64 (pow.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)) 2) (*.f64 (-.f64 lambda1 lambda2) (-.f64 lambda1 lambda2))) (*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2)))))) (cbrt.f64 (sqrt.f64 (+.f64 (*.f64 (pow.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)) 2) (*.f64 (-.f64 lambda1 lambda2) (-.f64 lambda1 lambda2))) (*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2)))))))
54.4b
(*.f64 R (*.f64 (cos.f64 (*.f64 1/2 (+.f64 phi2 phi1))) (-.f64 lambda1 lambda2)))
42.2b
(*.f64 R (-.f64 (+.f64 (*.f64 1/2 (+.f64 (/.f64 (*.f64 (*.f64 lambda2 lambda2) (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi2 phi1))) 2)) phi2) (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi2 phi1))) 2) (*.f64 lambda1 lambda1)) phi2))) phi2) (+.f64 phi1 (/.f64 (*.f64 lambda2 (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi2 phi1))) 2) lambda1)) phi2))))
55.7b
(*.f64 R (*.f64 (sqrt.f64 (+.f64 (-.f64 (+.f64 phi2 (/.f64 (*.f64 lambda2 (*.f64 lambda1 (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))) 2))) phi1)) phi1) (*.f64 -1/2 (+.f64 (/.f64 (*.f64 (*.f64 lambda1 lambda1) (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))) 2)) phi1) (/.f64 (*.f64 (*.f64 lambda2 lambda2) (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))) 2)) phi1))))) (sqrt.f64 (sqrt.f64 (+.f64 (*.f64 (pow.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)) 2) (*.f64 (-.f64 lambda1 lambda2) (-.f64 lambda1 lambda2))) (*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2)))))))
41.8b
(*.f64 R (sqrt.f64 (+.f64 (-.f64 (+.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 phi1 1/2)) 2) (+.f64 (*.f64 lambda2 lambda2) (*.f64 lambda1 lambda1))) (*.f64 2 (*.f64 (cos.f64 (*.f64 phi1 1/2)) (*.f64 lambda2 (*.f64 (*.f64 phi2 lambda1) (sin.f64 (*.f64 phi1 1/2))))))) (+.f64 (*.f64 2 (*.f64 (pow.f64 (cos.f64 (*.f64 phi1 1/2)) 2) (*.f64 lambda2 lambda1))) (*.f64 (cos.f64 (*.f64 phi1 1/2)) (*.f64 (*.f64 phi2 (sin.f64 (*.f64 phi1 1/2))) (+.f64 (*.f64 lambda2 lambda2) (*.f64 lambda1 lambda1)))))) (*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2)))))
47.0b
(*.f64 R (neg.f64 phi1))
39.7b
(*.f64 R (*.f64 (sqrt.f64 (sqrt.f64 (+.f64 (*.f64 (pow.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)) 2) (*.f64 (-.f64 lambda1 lambda2) (-.f64 lambda1 lambda2))) (*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2))))) (sqrt.f64 (sqrt.f64 (+.f64 (*.f64 (pow.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)) 2) (*.f64 (-.f64 lambda1 lambda2) (-.f64 lambda1 lambda2))) (*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2)))))))
39.6b
(*.f64 R (sqrt.f64 (+.f64 (*.f64 (*.f64 (-.f64 lambda1 lambda2) (cbrt.f64 (pow.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)) 3))) (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2)))))
Compiler

Compiled 13337 to 5344 computations (59.9% saved)

localize9.0ms (0%)

Local error

Found 3 expressions with local error:

0.2b
(*.f64 R (*.f64 (cos.f64 (*.f64 1/2 (+.f64 phi2 phi1))) (-.f64 lambda2 lambda1)))
0.2b
(*.f64 (cos.f64 (*.f64 1/2 (+.f64 phi2 phi1))) (-.f64 lambda2 lambda1))
3.2b
(cos.f64 (*.f64 1/2 (+.f64 phi2 phi1)))

rewrite82.0ms (0.4%)

Algorithm
rewrite-expression-head
Error
3.6b
Rules
21×distribute-lft-in_binary64
21×distribute-rgt-in_binary64
18×cancel-sign-sub-inv_binary64
16×add-sqr-sqrt_binary64
14×*-un-lft-identity_binary64
Counts
3 → 75
Calls

3 calls:

7.0ms
(*.f64 (cos.f64 (*.f64 1/2 (+.f64 phi2 phi1))) (-.f64 lambda2 lambda1))
7.0ms
(*.f64 R (*.f64 (cos.f64 (*.f64 1/2 (+.f64 phi2 phi1))) (-.f64 lambda2 lambda1)))
2.0ms
(cos.f64 (*.f64 1/2 (+.f64 phi2 phi1)))
Compiler

Compiled 1572 to 757 computations (51.8% saved)

series163.0ms (0.8%)

Error
4.8b
Counts
3 → 63
Calls

3 calls:

65.0ms
(*.f64 R (*.f64 (cos.f64 (*.f64 1/2 (+.f64 phi2 phi1))) (-.f64 lambda2 lambda1)))
46.0ms
(*.f64 (cos.f64 (*.f64 1/2 (+.f64 phi2 phi1))) (-.f64 lambda2 lambda1))
13.0ms
(cos.f64 (*.f64 1/2 (+.f64 phi2 phi1)))
Compiler

Compiled 3693 to 2581 computations (30.1% saved)

simplify101.0ms (0.5%)

Algorithm
egg-herbie
Rules
474×associate-*r*_binary64
432×distribute-rgt-in_binary64
384×associate-*l*_binary64
276×sub-neg_binary64
263×*-commutative_binary64
Counts
138 → 120
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03223973
18303781
229223506
351453506

prune78.0ms (0.4%)

Pruning

17 alts after pruning (16 fresh and 1 done)

PrunedKeptTotal
New11010120
Fresh066
Picked101
Done112
Total11217129
Error
3.6b
Counts
129 → 17
Alt Table
StatusErrorProgram
54.4b
(*.f64 R (*.f64 (cos.f64 (*.f64 1/2 (+.f64 phi2 phi1))) (-.f64 lambda1 lambda2)))
40.4b
(*.f64 (*.f64 (cbrt.f64 (*.f64 (*.f64 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))) (-.f64 lambda2 lambda1)) R)) (cbrt.f64 (*.f64 (*.f64 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))) (-.f64 lambda2 lambda1)) R))) (cbrt.f64 (*.f64 (*.f64 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))) (-.f64 lambda2 lambda1)) R)))
53.6b
(exp.f64 (log.f64 (*.f64 (*.f64 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))) (-.f64 lambda2 lambda1)) R)))
44.7b
(-.f64 (+.f64 (*.f64 1/2 (*.f64 phi1 (*.f64 (sin.f64 (*.f64 1/2 phi2)) (*.f64 lambda1 R)))) (+.f64 (*.f64 R (*.f64 (cos.f64 (*.f64 1/2 phi2)) (+.f64 lambda2 (*.f64 (*.f64 1/8 (*.f64 phi1 phi1)) lambda1)))) (*.f64 1/48 (*.f64 (pow.f64 phi1 3) (*.f64 (sin.f64 (*.f64 1/2 phi2)) (*.f64 lambda2 R)))))) (+.f64 (+.f64 (*.f64 1/2 (*.f64 lambda2 (*.f64 phi1 (*.f64 (sin.f64 (*.f64 1/2 phi2)) R)))) (*.f64 (*.f64 (cos.f64 (*.f64 1/2 phi2)) R) (+.f64 lambda1 (*.f64 1/8 (*.f64 (*.f64 phi1 phi1) lambda2))))) (*.f64 1/48 (*.f64 (pow.f64 phi1 3) (*.f64 (sin.f64 (*.f64 1/2 phi2)) (*.f64 lambda1 R))))))
40.1b
(*.f64 R (*.f64 (*.f64 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))) (sqrt.f64 (-.f64 lambda2 lambda1))) (sqrt.f64 (-.f64 lambda2 lambda1))))
42.1b
(*.f64 (cos.f64 (*.f64 1/2 phi2)) (*.f64 (-.f64 lambda2 lambda1) R))
55.7b
(*.f64 R (*.f64 (sqrt.f64 (+.f64 (-.f64 (+.f64 phi2 (/.f64 (*.f64 lambda2 (*.f64 lambda1 (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))) 2))) phi1)) phi1) (*.f64 -1/2 (+.f64 (/.f64 (*.f64 (*.f64 lambda1 lambda1) (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))) 2)) phi1) (/.f64 (*.f64 (*.f64 lambda2 lambda2) (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))) 2)) phi1))))) (sqrt.f64 (sqrt.f64 (+.f64 (*.f64 (pow.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)) 2) (*.f64 (-.f64 lambda1 lambda2) (-.f64 lambda1 lambda2))) (*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2)))))))
40.8b
(*.f64 (cos.f64 (*.f64 1/2 phi1)) (*.f64 (-.f64 lambda2 lambda1) R))
40.3b
(*.f64 R (*.f64 (*.f64 (sqrt.f64 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2)))) (sqrt.f64 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))))) (-.f64 lambda2 lambda1)))
40.1b
(*.f64 R (*.f64 (*.f64 (cbrt.f64 (sqrt.f64 (+.f64 (*.f64 (pow.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)) 2) (*.f64 (-.f64 lambda1 lambda2) (-.f64 lambda1 lambda2))) (*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2))))) (cbrt.f64 (sqrt.f64 (+.f64 (*.f64 (pow.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)) 2) (*.f64 (-.f64 lambda1 lambda2) (-.f64 lambda1 lambda2))) (*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2)))))) (cbrt.f64 (sqrt.f64 (+.f64 (*.f64 (pow.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)) 2) (*.f64 (-.f64 lambda1 lambda2) (-.f64 lambda1 lambda2))) (*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2)))))))
38.6b
(*.f64 R (*.f64 (-.f64 (*.f64 (cos.f64 (*.f64 1/2 phi1)) (cos.f64 (*.f64 1/2 phi2))) (*.f64 (sin.f64 (*.f64 1/2 phi1)) (sin.f64 (*.f64 1/2 phi2)))) (-.f64 lambda2 lambda1)))
42.2b
(*.f64 R (-.f64 (+.f64 (*.f64 1/2 (+.f64 (/.f64 (*.f64 (*.f64 lambda2 lambda2) (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi2 phi1))) 2)) phi2) (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi2 phi1))) 2) (*.f64 lambda1 lambda1)) phi2))) phi2) (+.f64 phi1 (/.f64 (*.f64 lambda2 (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi2 phi1))) 2) lambda1)) phi2))))
41.8b
(*.f64 R (sqrt.f64 (+.f64 (-.f64 (+.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 phi1 1/2)) 2) (+.f64 (*.f64 lambda2 lambda2) (*.f64 lambda1 lambda1))) (*.f64 2 (*.f64 (cos.f64 (*.f64 phi1 1/2)) (*.f64 lambda2 (*.f64 (*.f64 phi2 lambda1) (sin.f64 (*.f64 phi1 1/2))))))) (+.f64 (*.f64 2 (*.f64 (pow.f64 (cos.f64 (*.f64 phi1 1/2)) 2) (*.f64 lambda2 lambda1))) (*.f64 (cos.f64 (*.f64 phi1 1/2)) (*.f64 (*.f64 phi2 (sin.f64 (*.f64 phi1 1/2))) (+.f64 (*.f64 lambda2 lambda2) (*.f64 lambda1 lambda1)))))) (*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2)))))
47.0b
(*.f64 R (neg.f64 phi1))
40.3b
(*.f64 R (*.f64 (*.f64 (cbrt.f64 (*.f64 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))) (-.f64 lambda2 lambda1))) (cbrt.f64 (*.f64 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))) (-.f64 lambda2 lambda1)))) (cbrt.f64 (*.f64 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))) (-.f64 lambda2 lambda1)))))
42.2b
(*.f64 R (exp.f64 (log.f64 (*.f64 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))) (-.f64 lambda2 lambda1)))))
39.6b
(*.f64 R (sqrt.f64 (+.f64 (*.f64 (*.f64 (-.f64 lambda1 lambda2) (cbrt.f64 (pow.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)) 3))) (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2)))))
Compiler

Compiled 2292 to 1338 computations (41.6% saved)

regimes7.0s (35.3%)

Accuracy

Total 16.0b remaining (79.7%)

Threshold costs 0b (0%)

Compiler

Compiled 84002 to 54405 computations (35.2% saved)

bsearch292.0ms (1.5%)

Compiler

Compiled 37 to 21 computations (43.2% saved)

simplify7.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
038158
155158
265158
371158
474158
573158

end41.0ms (0.2%)

Remove

(sort lambda1 lambda2)

Compiler

Compiled 756 to 364 computations (51.9% saved)

sample4.0s (20.5%)

Algorithm
intervals
Results
815.0ms6025×body128valid
620.0ms807×body1024valid
358.0ms776×body512valid
346.0ms473×body1024invalid
318.0ms2342×body128invalid
177.0ms406×body512invalid
115.0ms384×body256valid
52.0ms181×body256invalid
11.0msbody2048valid
Compiler

Compiled 856 to 526 computations (38.6% saved)

Profiling

Loading profile data...