Details

Time bar (total: 11.8s)

analyze2.1s (18%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%99.9%0.1%2
0%99.9%0.1%3
0%99.9%0.1%4
0%99.9%0.1%5
0%99.9%0.1%6
0%99.9%0.1%7
0%93.6%6.4%8
9.4%84.3%6.4%9
14.8%75.7%9.5%10
16%71.4%12.6%11
20.9%65.7%13.4%12
24.2%60.5%15.3%13
24.8%58.6%16.6%14
Compiler

Compiled 31 to 24 computations (22.6% saved)

sample5.1s (43.3%)

Results
2.7s2322×body1024valid
1.0s4165×body128valid
789.0ms1152×body512valid
318.0ms614×body256valid
222.0ms787×body128invalid
6.0msbody2048valid
1.0msbody1024invalid
Compiler

Compiled 92 to 71 computations (22.8% saved)

simplify54.0ms (0.5%)

Algorithm
egg-herbie
Rules
640×distribute-rgt-neg-in_binary64
474×fma-neg_binary64
418×distribute-lft-neg-in_binary64
379×div-sub_binary64
378×fma-def_binary64
Counts
1 → 2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02335
14928
210028
319528
439128
5107528
6254328
7420028
8495528

prune5.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
12.1b
Counts
3 → 2
Alt Table
StatusErrorProgram
12.2b
(-.f64 (*.f64 (/.f64 F (sin.f64 B)) (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2)) (/.f64 x (tan.f64 B)))
12.2b
(+.f64 (neg.f64 (*.f64 x (/.f64 1 (tan.f64 B)))) (*.f64 (/.f64 F (sin.f64 B)) (pow.f64 (+.f64 (+.f64 (*.f64 F F) 2) (*.f64 2 x)) (neg.f64 (/.f64 1 2)))))
Compiler

Compiled 153 to 108 computations (29.4% saved)

localize16.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(/.f64 x (tan.f64 B))
0.1b
(/.f64 F (sin.f64 B))
5.4b
(*.f64 (/.f64 F (sin.f64 B)) (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2))
19.6b
(pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2)

series186.0ms (1.6%)

Counts
4 → 80
Calls

4 calls:

101.0ms
(*.f64 (/.f64 F (sin.f64 B)) (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2))
40.0ms
(/.f64 x (tan.f64 B))
29.0ms
(pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2)
15.0ms
(/.f64 F (sin.f64 B))

rewrite99.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
270×expm1-udef_binary64
270×log1p-udef_binary64
151×add-sqr-sqrt_binary64
141×log1p-expm1-u_binary64
141×expm1-log1p-u_binary64
Counts
4 → 113
Calls

4 calls:

97.0ms
(/.f64 x (tan.f64 B))
97.0ms
(/.f64 F (sin.f64 B))
97.0ms
(*.f64 (/.f64 F (sin.f64 B)) (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2))
97.0ms
(pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01444
129944
2365744
3492044
4492644

simplify88.0ms (0.7%)

Algorithm
egg-herbie
Rules
965×times-frac_binary64
300×fma-def_binary64
196×+-commutative_binary64
187×fma-neg_binary64
166×*-commutative_binary64
Counts
193 → 212
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
03333644
110303471
235483471
350223471

prune279.0ms (2.4%)

Pruning

13 alts after pruning (13 fresh and 0 done)

PrunedKeptTotal
New19913212
Fresh101
Picked101
Done000
Total20113214
Error
0.0b
Counts
214 → 13
Alt Table
StatusErrorProgram
29.7b
(-.f64 (/.f64 1 (sin.f64 B)) (/.f64 x (tan.f64 B)))
12.2b
(-.f64 (*.f64 (/.f64 F (sin.f64 B)) (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2)) (*.f64 (/.f64 x (sin.f64 B)) (cos.f64 B)))
12.2b
(-.f64 (*.f64 (/.f64 F (sin.f64 B)) (*.f64 (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/4) (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/4))) (/.f64 x (tan.f64 B)))
39.3b
(-.f64 (*.f64 (/.f64 F (sin.f64 B)) (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2)) (*.f64 (/.f64 1 (sqrt.f64 (tan.f64 B))) (/.f64 x (sqrt.f64 (tan.f64 B)))))
10.1b
(-.f64 (/.f64 (*.f64 F (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2)) (sin.f64 B)) (/.f64 x (tan.f64 B)))
32.5b
(-.f64 (*.f64 (/.f64 F (sin.f64 B)) (/.f64 1 F)) (/.f64 x (tan.f64 B)))
12.2b
(-.f64 (*.f64 (/.f64 F (sin.f64 B)) (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2)) (*.f64 x (/.f64 1 (tan.f64 B))))
37.4b
(-.f64 (*.f64 (/.f64 F (sin.f64 B)) (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2)) (pow.f64 (sqrt.f64 (/.f64 x (tan.f64 B))) 2))
12.9b
(-.f64 (*.f64 (/.f64 F (sin.f64 B)) (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2)) (*.f64 (/.f64 1 (pow.f64 (cbrt.f64 (tan.f64 B)) 2)) (/.f64 x (cbrt.f64 (tan.f64 B)))))
10.1b
(-.f64 (/.f64 F (/.f64 (sin.f64 B) (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2))) (/.f64 x (tan.f64 B)))
12.8b
(-.f64 (*.f64 (/.f64 F (sin.f64 B)) (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2)) (*.f64 (cbrt.f64 (/.f64 x (tan.f64 B))) (pow.f64 (cbrt.f64 (/.f64 x (tan.f64 B))) 2)))
29.0b
(-.f64 (/.f64 -1 (sin.f64 B)) (/.f64 x (tan.f64 B)))
12.4b
(-.f64 (pow.f64 (cbrt.f64 (*.f64 (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2) (/.f64 F (sin.f64 B)))) 3) (/.f64 x (tan.f64 B)))
Compiler

Compiled 8354 to 4986 computations (40.3% saved)

localize16.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(/.f64 x (tan.f64 B))
0.2b
(/.f64 (*.f64 F (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2)) (sin.f64 B))
0.3b
(*.f64 F (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2))
19.6b
(pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2)

series141.0ms (1.2%)

Counts
2 → 44
Calls

2 calls:

98.0ms
(/.f64 (*.f64 F (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2)) (sin.f64 B))
43.0ms
(*.f64 F (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2))

rewrite60.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
598×log-prod_binary64
224×expm1-udef_binary64
224×log1p-udef_binary64
201×log-pow_binary64
126×add-sqr-sqrt_binary64
Counts
2 → 66
Calls

2 calls:

58.0ms
(/.f64 (*.f64 F (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2)) (sin.f64 B))
58.0ms
(*.f64 F (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01235
125235
2300935
3530535

simplify83.0ms (0.7%)

Algorithm
egg-herbie
Rules
786×fma-def_binary64
433×times-frac_binary64
365×fma-neg_binary64
316×cancel-sign-sub-inv_binary64
247×sub-neg_binary64
Counts
110 → 136
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02132287
16482159
221222043
348292042
449902042

prune319.0ms (2.7%)

Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New2383241
Fresh3912
Picked101
Done000
Total24212254
Error
0.0b
Counts
254 → 12
Alt Table
StatusErrorProgram
29.7b
(-.f64 (/.f64 1 (sin.f64 B)) (/.f64 x (tan.f64 B)))
12.2b
(-.f64 (*.f64 (/.f64 F (sin.f64 B)) (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2)) (*.f64 (/.f64 x (sin.f64 B)) (cos.f64 B)))
12.2b
(-.f64 (*.f64 (/.f64 F (sin.f64 B)) (*.f64 (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/4) (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/4))) (/.f64 x (tan.f64 B)))
39.3b
(-.f64 (*.f64 (/.f64 F (sin.f64 B)) (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2)) (*.f64 (/.f64 1 (sqrt.f64 (tan.f64 B))) (/.f64 x (sqrt.f64 (tan.f64 B)))))
12.9b
(-.f64 (*.f64 (/.f64 F (sin.f64 B)) (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2)) (*.f64 (/.f64 1 (pow.f64 (cbrt.f64 (tan.f64 B)) 2)) (/.f64 x (cbrt.f64 (tan.f64 B)))))
10.1b
(-.f64 (/.f64 (*.f64 F (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2)) (sin.f64 B)) (*.f64 (/.f64 1 (tan.f64 B)) x))
10.1b
(-.f64 (/.f64 F (/.f64 (sin.f64 B) (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2))) (/.f64 x (tan.f64 B)))
36.3b
(-.f64 (/.f64 (*.f64 F (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2)) (sin.f64 B)) (pow.f64 (sqrt.f64 (/.f64 x (tan.f64 B))) 2))
32.5b
(-.f64 (*.f64 (/.f64 F (sin.f64 B)) (/.f64 1 F)) (/.f64 x (tan.f64 B)))
35.1b
(-.f64 (/.f64 (*.f64 F (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2)) (sin.f64 B)) (cbrt.f64 (pow.f64 (/.f64 x (tan.f64 B)) 3)))
29.0b
(-.f64 (/.f64 -1 (sin.f64 B)) (/.f64 x (tan.f64 B)))
12.4b
(-.f64 (pow.f64 (cbrt.f64 (*.f64 (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2) (/.f64 F (sin.f64 B)))) 3) (/.f64 x (tan.f64 B)))
Compiler

Compiled 9631 to 6016 computations (37.5% saved)

localize17.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(/.f64 x (tan.f64 B))
0.3b
(/.f64 F (/.f64 (sin.f64 B) (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2)))
0.3b
(/.f64 (sin.f64 B) (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2))
19.6b
(pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2)

series143.0ms (1.2%)

Counts
2 → 56
Calls

2 calls:

101.0ms
(/.f64 F (/.f64 (sin.f64 B) (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2)))
42.0ms
(/.f64 (sin.f64 B) (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2))

rewrite65.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
622×log-prod_binary64
228×expm1-udef_binary64
228×log1p-udef_binary64
205×log-pow_binary64
131×prod-diff_binary64
Counts
2 → 83
Calls

2 calls:

62.0ms
(/.f64 F (/.f64 (sin.f64 B) (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2)))
62.0ms
(/.f64 (sin.f64 B) (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2))
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01237
125835
2315435
3562035

simplify88.0ms (0.7%)

Algorithm
egg-herbie
Rules
559×fma-neg_binary64
528×times-frac_binary64
474×cancel-sign-sub-inv_binary64
273×neg-mul-1_binary64
230×sub-neg_binary64
Counts
139 → 165
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02342803
17372637
225022493
345872489
451092489

prune331.0ms (2.8%)

Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New2664270
Fresh3811
Picked101
Done000
Total27012282
Error
0.0b
Counts
282 → 12
Alt Table
StatusErrorProgram
29.7b
(-.f64 (/.f64 1 (sin.f64 B)) (/.f64 x (tan.f64 B)))
12.2b
(-.f64 (*.f64 (/.f64 F (sin.f64 B)) (*.f64 (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/4) (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/4))) (/.f64 x (tan.f64 B)))
10.2b
(-.f64 (/.f64 F (/.f64 (sin.f64 B) (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2))) (*.f64 (/.f64 x (sin.f64 B)) (cos.f64 B)))
39.3b
(-.f64 (*.f64 (/.f64 F (sin.f64 B)) (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2)) (*.f64 (/.f64 1 (sqrt.f64 (tan.f64 B))) (/.f64 x (sqrt.f64 (tan.f64 B)))))
30.1b
(-.f64 (/.f64 F (*.f64 (sin.f64 B) F)) (/.f64 x (tan.f64 B)))
12.9b
(-.f64 (*.f64 (/.f64 F (sin.f64 B)) (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2)) (*.f64 (/.f64 1 (pow.f64 (cbrt.f64 (tan.f64 B)) 2)) (/.f64 x (cbrt.f64 (tan.f64 B)))))
10.1b
(-.f64 (/.f64 (*.f64 F (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2)) (sin.f64 B)) (*.f64 (/.f64 1 (tan.f64 B)) x))
36.3b
(-.f64 (/.f64 (*.f64 F (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2)) (sin.f64 B)) (pow.f64 (sqrt.f64 (/.f64 x (tan.f64 B))) 2))
35.1b
(-.f64 (/.f64 (*.f64 F (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2)) (sin.f64 B)) (cbrt.f64 (pow.f64 (/.f64 x (tan.f64 B)) 3)))
29.0b
(-.f64 (/.f64 -1 (sin.f64 B)) (/.f64 x (tan.f64 B)))
29.5b
(-.f64 (/.f64 F (neg.f64 (*.f64 F (sin.f64 B)))) (/.f64 x (tan.f64 B)))
10.3b
(-.f64 (pow.f64 (cbrt.f64 (/.f64 F (*.f64 (sin.f64 B) (sqrt.f64 (fma.f64 x 2 (fma.f64 F F 2)))))) 3) (/.f64 x (tan.f64 B)))
Compiler

Compiled 10467 to 6239 computations (40.4% saved)

localize18.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (/.f64 1 (tan.f64 B)) x)
0.2b
(/.f64 (*.f64 F (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2)) (sin.f64 B))
0.3b
(*.f64 F (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2))
19.6b
(pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2)

series42.0ms (0.4%)

Counts
1 → 24
Calls

1 calls:

42.0ms
(*.f64 (/.f64 1 (tan.f64 B)) x)

rewrite70.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
597×log1p-expm1-u_binary64
597×expm1-log1p-u_binary64
320×log-prod_binary64
154×prod-diff_binary64
121×expm1-udef_binary64
Counts
1 → 30
Calls

1 calls:

69.0ms
(*.f64 (/.f64 1 (tan.f64 B)) x)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
076
11406
215836
349626
452416

simplify146.0ms (1.2%)

Algorithm
egg-herbie
Rules
824×unswap-sqr_binary64
470×distribute-rgt-neg-in_binary64
466×fma-def_binary64
424×sub-neg_binary64
384×distribute-lft-neg-in_binary64
Counts
54 → 38
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
027293
174291
2203284
3598282
41913282
52728282
63782282
74069282
84971282
94788282
104989282
114742282

prune299.0ms (2.5%)

Pruning

12 alts after pruning (11 fresh and 1 done)

PrunedKeptTotal
New2342236
Fresh2911
Picked011
Done000
Total23612248
Error
0.0b
Counts
248 → 12
Alt Table
StatusErrorProgram
38.5b
(-.f64 (/.f64 (*.f64 F (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2)) (sin.f64 B)) (/.f64 (/.f64 x (sqrt.f64 (tan.f64 B))) (sqrt.f64 (tan.f64 B))))
30.1b
(-.f64 (/.f64 F (*.f64 (sin.f64 B) F)) (/.f64 x (tan.f64 B)))
29.7b
(-.f64 (/.f64 1 (sin.f64 B)) (*.f64 (/.f64 1 (tan.f64 B)) x))
12.2b
(-.f64 (*.f64 (/.f64 F (sin.f64 B)) (*.f64 (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/4) (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/4))) (/.f64 x (tan.f64 B)))
10.2b
(-.f64 (/.f64 F (/.f64 (sin.f64 B) (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2))) (*.f64 (/.f64 x (sin.f64 B)) (cos.f64 B)))
12.9b
(-.f64 (*.f64 (/.f64 F (sin.f64 B)) (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2)) (*.f64 (/.f64 1 (pow.f64 (cbrt.f64 (tan.f64 B)) 2)) (/.f64 x (cbrt.f64 (tan.f64 B)))))
10.1b
(-.f64 (/.f64 (*.f64 F (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2)) (sin.f64 B)) (*.f64 (/.f64 1 (tan.f64 B)) x))
36.3b
(-.f64 (/.f64 (*.f64 F (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2)) (sin.f64 B)) (pow.f64 (sqrt.f64 (/.f64 x (tan.f64 B))) 2))
35.1b
(-.f64 (/.f64 (*.f64 F (pow.f64 (fma.f64 x 2 (fma.f64 F F 2)) -1/2)) (sin.f64 B)) (cbrt.f64 (pow.f64 (/.f64 x (tan.f64 B)) 3)))
29.0b
(-.f64 (/.f64 -1 (sin.f64 B)) (/.f64 x (tan.f64 B)))
29.5b
(-.f64 (/.f64 F (neg.f64 (*.f64 F (sin.f64 B)))) (/.f64 x (tan.f64 B)))
10.3b
(-.f64 (pow.f64 (cbrt.f64 (/.f64 F (*.f64 (sin.f64 B) (sqrt.f64 (fma.f64 x 2 (fma.f64 F F 2)))))) 3) (/.f64 x (tan.f64 B)))
Compiler

Compiled 9598 to 6339 computations (34% saved)

regimes1.7s (14.4%)

Accuracy

Total 0.2b remaining (80.1%)

Threshold costs 0.2b (80.1%)

Counts
251 → 3
Compiler

Compiled 24568 to 17436 computations (29% saved)

bsearch91.0ms (0.8%)

Steps
ItersRangePoint
5
3714.3682933169516
14749.48028086883
14495.167669812563
3
-1.4196206076109526e+37
-1592390075078215200.0
-3.690548725701647e+20
Compiler

Compiled 4 to 3 computations (25% saved)

simplify4.0ms (0%)

Algorithm
egg-herbie
Rules
+-commutative_binary64
sub-neg_binary64
*-commutative_binary64
neg-sub0_binary64
neg-mul-1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02968
13668
24368
34768
45068
55168
65068

end216.0ms (1.8%)

Compiler

Compiled 364 to 239 computations (34.3% saved)

Profiling

Loading profile data...