Details

Time bar (total: 6.4s)

analyze732.0ms (11.4%)

Algorithm
search
Search
TrueOtherFalseIter
0%100%0%0
0%100%0%1
0%100%0%2
50%50%0%3
50%50%0%4
50%50%0%5
50%50%0%6
50%50%0%7
50%50%0%8
50%50%0%9
50%50%0%10
50%50%0%11
50%50%0%12
50%50%0%13
50%49.9%0%14
Compiler

Compiled 17 to 9 computations (47.1% saved)

sample2.4s (37.5%)

Results
1.4s2102×body1024valid
500.0ms4565×body128valid
297.0ms1068×body512valid
101.0ms516×body256valid
2.0msbody2048valid
Compiler

Compiled 50 to 26 computations (48% saved)

simplify91.0ms (1.4%)

Algorithm
egg-herbie
Rules
678×unsub-neg_binary64
627×times-frac_binary64
565×div-sub_binary64
547×fma-def_binary64
526×sub-neg_binary64
Counts
1 → 2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0824
11922
23022
34722
49422
513722
621122
743722
892822
9171822
10307422
11386122
12444222
13482222

prune3.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New112
Fresh101
Picked000
Done000
Total213
Error
0.3b
Counts
3 → 1
Alt Table
StatusErrorProgram
0.3b
(/.f64 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))) (fma.f64 (tan.f64 x) (tan.f64 x) 1))
Compiler

Compiled 60 to 29 computations (51.7% saved)

localize7.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(fma.f64 (tan.f64 x) (tan.f64 x) 1)
0.1b
(-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x)))
0.1b
(/.f64 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))) (fma.f64 (tan.f64 x) (tan.f64 x) 1))
0.2b
(*.f64 (tan.f64 x) (tan.f64 x))

series126.0ms (2%)

Counts
4 → 48
Calls

4 calls:

88.0ms
(/.f64 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))) (fma.f64 (tan.f64 x) (tan.f64 x) 1))
17.0ms
(fma.f64 (tan.f64 x) (tan.f64 x) 1)
11.0ms
(-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x)))
10.0ms
(*.f64 (tan.f64 x) (tan.f64 x))

rewrite16.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
27×add-sqr-sqrt_binary64
25×*-un-lft-identity_binary64
20×add-cube-cbrt_binary64
15×times-frac_binary64
11×pow1_binary64
Counts
4 → 102
Calls

4 calls:

4.0ms
(*.f64 (tan.f64 x) (tan.f64 x))
4.0ms
(/.f64 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))) (fma.f64 (tan.f64 x) (tan.f64 x) 1))
2.0ms
(-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x)))
0.0ms
(fma.f64 (tan.f64 x) (tan.f64 x) 1)

simplify97.0ms (1.5%)

Algorithm
egg-herbie
Rules
588×cancel-sign-sub-inv_binary64
342×fma-def_binary64
323×fma-neg_binary64
287×associate-*l*_binary64
237×associate-*r*_binary64
Counts
150 → 159
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01643084
13602781
29602730
331232721
450352721

prune215.0ms (3.3%)

Pruning

10 alts after pruning (10 fresh and 0 done)

PrunedKeptTotal
New14910159
Fresh000
Picked101
Done000
Total15010160
Error
0.0b
Counts
160 → 10
Alt Table
StatusErrorProgram
1.1b
(/.f64 (log.f64 (exp.f64 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))))) (fma.f64 (tan.f64 x) (tan.f64 x) 1))
0.7b
(*.f64 (/.f64 (+.f64 1 (tan.f64 x)) (*.f64 (cbrt.f64 (fma.f64 (tan.f64 x) (tan.f64 x) 1)) (cbrt.f64 (fma.f64 (tan.f64 x) (tan.f64 x) 1)))) (/.f64 (-.f64 1 (tan.f64 x)) (cbrt.f64 (fma.f64 (tan.f64 x) (tan.f64 x) 1))))
0.4b
(/.f64 (-.f64 1 (cbrt.f64 (pow.f64 (tan.f64 x) 6))) (fma.f64 (tan.f64 x) (tan.f64 x) 1))
0.4b
(/.f64 (-.f64 (pow.f64 1 3) (pow.f64 (*.f64 (tan.f64 x) (tan.f64 x)) 3)) (*.f64 (fma.f64 (tan.f64 x) (tan.f64 x) 1) (+.f64 1 (fma.f64 (tan.f64 x) (tan.f64 x) (pow.f64 (tan.f64 x) 4)))))
0.3b
(*.f64 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))) (/.f64 1 (fma.f64 (tan.f64 x) (tan.f64 x) 1)))
0.4b
(/.f64 1 (/.f64 (fma.f64 (tan.f64 x) (tan.f64 x) 1) (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x)))))
0.3b
(-.f64 (/.f64 1 (fma.f64 (tan.f64 x) (tan.f64 x) 1)) (/.f64 (*.f64 (tan.f64 x) (tan.f64 x)) (fma.f64 (tan.f64 x) (tan.f64 x) 1)))
0.3b
(/.f64 (fma.f64 (tan.f64 x) (tan.f64 x) -1) (neg.f64 (fma.f64 (tan.f64 x) (tan.f64 x) 1)))
0.3b
(/.f64 (-.f64 1 (/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x))) (fma.f64 (tan.f64 x) (tan.f64 x) 1))
0.4b
(log.f64 (exp.f64 (/.f64 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))) (fma.f64 (tan.f64 x) (tan.f64 x) 1))))
Compiler

Compiled 3784 to 1813 computations (52.1% saved)

localize9.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.1b
(fma.f64 (tan.f64 x) (tan.f64 x) 1)
0.1b
(/.f64 (fma.f64 (tan.f64 x) (tan.f64 x) -1) (neg.f64 (fma.f64 (tan.f64 x) (tan.f64 x) 1)))
0.3b
(fma.f64 (tan.f64 x) (tan.f64 x) -1)

series118.0ms (1.8%)

Counts
2 → 24
Calls

2 calls:

102.0ms
(/.f64 (fma.f64 (tan.f64 x) (tan.f64 x) -1) (neg.f64 (fma.f64 (tan.f64 x) (tan.f64 x) 1)))
16.0ms
(fma.f64 (tan.f64 x) (tan.f64 x) -1)

rewrite8.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
30×times-frac_binary64
25×*-un-lft-identity_binary64
25×add-sqr-sqrt_binary64
25×add-cube-cbrt_binary64
12×distribute-lft-neg-in_binary64
Counts
2 → 67
Calls

2 calls:

3.0ms
(/.f64 (fma.f64 (tan.f64 x) (tan.f64 x) -1) (neg.f64 (fma.f64 (tan.f64 x) (tan.f64 x) 1)))
0.0ms
(fma.f64 (tan.f64 x) (tan.f64 x) -1)

simplify107.0ms (1.7%)

Algorithm
egg-herbie
Rules
647×fma-def_binary64
452×fma-neg_binary64
437×distribute-rgt-in_binary64
303×div-sub_binary64
247×cancel-sign-sub-inv_binary64
Counts
91 → 118
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01312869
12712750
27192666
321372656
446772656
549132656

prune190.0ms (3%)

Pruning

9 alts after pruning (9 fresh and 0 done)

PrunedKeptTotal
New1372139
Fresh279
Picked101
Done000
Total1409149
Error
0.0b
Counts
149 → 9
Alt Table
StatusErrorProgram
1.1b
(/.f64 (log.f64 (exp.f64 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))))) (fma.f64 (tan.f64 x) (tan.f64 x) 1))
0.7b
(*.f64 (/.f64 (+.f64 1 (tan.f64 x)) (*.f64 (cbrt.f64 (fma.f64 (tan.f64 x) (tan.f64 x) 1)) (cbrt.f64 (fma.f64 (tan.f64 x) (tan.f64 x) 1)))) (/.f64 (-.f64 1 (tan.f64 x)) (cbrt.f64 (fma.f64 (tan.f64 x) (tan.f64 x) 1))))
0.3b
(*.f64 (fma.f64 (tan.f64 x) (tan.f64 x) -1) (/.f64 -1 (fma.f64 (tan.f64 x) (tan.f64 x) 1)))
0.4b
(/.f64 (-.f64 1 (cbrt.f64 (pow.f64 (tan.f64 x) 6))) (fma.f64 (tan.f64 x) (tan.f64 x) 1))
0.3b
(/.f64 1 (/.f64 (neg.f64 (fma.f64 (tan.f64 x) (tan.f64 x) 1)) (fma.f64 (tan.f64 x) (tan.f64 x) -1)))
0.4b
(/.f64 (-.f64 (pow.f64 1 3) (pow.f64 (*.f64 (tan.f64 x) (tan.f64 x)) 3)) (*.f64 (fma.f64 (tan.f64 x) (tan.f64 x) 1) (+.f64 1 (fma.f64 (tan.f64 x) (tan.f64 x) (pow.f64 (tan.f64 x) 4)))))
0.3b
(-.f64 (/.f64 1 (fma.f64 (tan.f64 x) (tan.f64 x) 1)) (/.f64 (*.f64 (tan.f64 x) (tan.f64 x)) (fma.f64 (tan.f64 x) (tan.f64 x) 1)))
0.3b
(/.f64 (-.f64 1 (/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x))) (fma.f64 (tan.f64 x) (tan.f64 x) 1))
0.4b
(log.f64 (exp.f64 (/.f64 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))) (fma.f64 (tan.f64 x) (tan.f64 x) 1))))
Compiler

Compiled 3723 to 1930 computations (48.2% saved)

localize16.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(-.f64 1 (/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x)))
0.1b
(/.f64 (-.f64 1 (/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x))) (fma.f64 (tan.f64 x) (tan.f64 x) 1))
0.1b
(*.f64 (sin.f64 x) (tan.f64 x))
0.2b
(/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x))

series142.0ms (2.2%)

Counts
4 → 48
Calls

4 calls:

95.0ms
(/.f64 (-.f64 1 (/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x))) (fma.f64 (tan.f64 x) (tan.f64 x) 1))
19.0ms
(-.f64 1 (/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x)))
18.0ms
(/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x))
9.0ms
(*.f64 (sin.f64 x) (tan.f64 x))

rewrite31.0ms (0.5%)

Algorithm
rewrite-expression-head
Rules
52×add-sqr-sqrt_binary64
50×*-un-lft-identity_binary64
35×add-cube-cbrt_binary64
33×times-frac_binary64
21×prod-diff_binary64
Counts
4 → 136
Calls

4 calls:

9.0ms
(/.f64 (-.f64 1 (/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x))) (fma.f64 (tan.f64 x) (tan.f64 x) 1))
5.0ms
(-.f64 1 (/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x)))
4.0ms
(/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x))
4.0ms
(*.f64 (sin.f64 x) (tan.f64 x))

simplify137.0ms (2.1%)

Algorithm
egg-herbie
Rules
631×fma-def_binary64
328×associate-/r/_binary64
242×cancel-sign-sub-inv_binary64
210×distribute-rgt-neg-in_binary64
202×exp-prod_binary64
Counts
184 → 197
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02465019
15704557
220194173
344354173
448964173

prune305.0ms (4.7%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New1925197
Fresh268
Picked101
Done000
Total19511206
Error
0.0b
Counts
206 → 11
Alt Table
StatusErrorProgram
0.8b
(*.f64 (/.f64 1 (*.f64 (cbrt.f64 (fma.f64 (tan.f64 x) (tan.f64 x) 1)) (cbrt.f64 (fma.f64 (tan.f64 x) (tan.f64 x) 1)))) (/.f64 (-.f64 1 (/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x))) (cbrt.f64 (fma.f64 (tan.f64 x) (tan.f64 x) 1))))
0.3b
(*.f64 (fma.f64 (tan.f64 x) (tan.f64 x) -1) (/.f64 -1 (fma.f64 (tan.f64 x) (tan.f64 x) 1)))
1.1b
(/.f64 (log.f64 (exp.f64 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))))) (fma.f64 (tan.f64 x) (tan.f64 x) 1))
0.7b
(*.f64 (/.f64 (+.f64 1 (tan.f64 x)) (*.f64 (cbrt.f64 (fma.f64 (tan.f64 x) (tan.f64 x) 1)) (cbrt.f64 (fma.f64 (tan.f64 x) (tan.f64 x) 1)))) (/.f64 (-.f64 1 (tan.f64 x)) (cbrt.f64 (fma.f64 (tan.f64 x) (tan.f64 x) 1))))
0.5b
(*.f64 (/.f64 1 (hypot.f64 1 (tan.f64 x))) (/.f64 (-.f64 1 (/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x))) (hypot.f64 1 (tan.f64 x))))
0.4b
(log.f64 (exp.f64 (/.f64 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))) (fma.f64 (tan.f64 x) (tan.f64 x) 1))))
0.4b
(/.f64 (-.f64 1 (cbrt.f64 (pow.f64 (tan.f64 x) 6))) (fma.f64 (tan.f64 x) (tan.f64 x) 1))
0.4b
(/.f64 (-.f64 (pow.f64 1 3) (pow.f64 (*.f64 (tan.f64 x) (tan.f64 x)) 3)) (*.f64 (fma.f64 (tan.f64 x) (tan.f64 x) 1) (+.f64 1 (fma.f64 (tan.f64 x) (tan.f64 x) (pow.f64 (tan.f64 x) 4)))))
0.7b
(*.f64 (*.f64 (cbrt.f64 (/.f64 (-.f64 1 (/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x))) (fma.f64 (tan.f64 x) (tan.f64 x) 1))) (cbrt.f64 (/.f64 (-.f64 1 (/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x))) (fma.f64 (tan.f64 x) (tan.f64 x) 1)))) (cbrt.f64 (/.f64 (-.f64 1 (/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x))) (fma.f64 (tan.f64 x) (tan.f64 x) 1))))
0.4b
(/.f64 (cbrt.f64 (pow.f64 (-.f64 1 (/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x))) 3)) (fma.f64 (tan.f64 x) (tan.f64 x) 1))
0.4b
(-.f64 (/.f64 1 (fma.f64 (tan.f64 x) (tan.f64 x) 1)) (/.f64 (/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x)) (fma.f64 (tan.f64 x) (tan.f64 x) 1)))
Compiler

Compiled 6387 to 2375 computations (62.8% saved)

localize8.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(fma.f64 (tan.f64 x) (tan.f64 x) 1)
0.1b
(/.f64 -1 (fma.f64 (tan.f64 x) (tan.f64 x) 1))
0.1b
(*.f64 (fma.f64 (tan.f64 x) (tan.f64 x) -1) (/.f64 -1 (fma.f64 (tan.f64 x) (tan.f64 x) 1)))
0.3b
(fma.f64 (tan.f64 x) (tan.f64 x) -1)

series172.0ms (2.7%)

Counts
2 → 24
Calls

2 calls:

102.0ms
(*.f64 (fma.f64 (tan.f64 x) (tan.f64 x) -1) (/.f64 -1 (fma.f64 (tan.f64 x) (tan.f64 x) 1)))
70.0ms
(/.f64 -1 (fma.f64 (tan.f64 x) (tan.f64 x) 1))

rewrite13.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
23×add-sqr-sqrt_binary64
19×times-frac_binary64
18×*-un-lft-identity_binary64
18×add-cube-cbrt_binary64
13×associate-*r*_binary64
Counts
2 → 63
Calls

2 calls:

7.0ms
(*.f64 (fma.f64 (tan.f64 x) (tan.f64 x) -1) (/.f64 -1 (fma.f64 (tan.f64 x) (tan.f64 x) 1)))
2.0ms
(/.f64 -1 (fma.f64 (tan.f64 x) (tan.f64 x) 1))

simplify95.0ms (1.5%)

Algorithm
egg-herbie
Rules
716×fma-def_binary64
363×fma-neg_binary64
311×associate-*l*_binary64
276×cancel-sign-sub-inv_binary64
248×div-sub_binary64
Counts
87 → 107
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01252230
12772019
28851945
326681931
444651931
551421931

prune236.0ms (3.7%)

Pruning

11 alts after pruning (10 fresh and 1 done)

PrunedKeptTotal
New1480148
Fresh01010
Picked011
Done000
Total14811159
Error
0.0b
Counts
159 → 11
Alt Table
StatusErrorProgram
0.8b
(*.f64 (/.f64 1 (*.f64 (cbrt.f64 (fma.f64 (tan.f64 x) (tan.f64 x) 1)) (cbrt.f64 (fma.f64 (tan.f64 x) (tan.f64 x) 1)))) (/.f64 (-.f64 1 (/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x))) (cbrt.f64 (fma.f64 (tan.f64 x) (tan.f64 x) 1))))
0.3b
(*.f64 (fma.f64 (tan.f64 x) (tan.f64 x) -1) (/.f64 -1 (fma.f64 (tan.f64 x) (tan.f64 x) 1)))
1.1b
(/.f64 (log.f64 (exp.f64 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))))) (fma.f64 (tan.f64 x) (tan.f64 x) 1))
0.7b
(*.f64 (/.f64 (+.f64 1 (tan.f64 x)) (*.f64 (cbrt.f64 (fma.f64 (tan.f64 x) (tan.f64 x) 1)) (cbrt.f64 (fma.f64 (tan.f64 x) (tan.f64 x) 1)))) (/.f64 (-.f64 1 (tan.f64 x)) (cbrt.f64 (fma.f64 (tan.f64 x) (tan.f64 x) 1))))
0.5b
(*.f64 (/.f64 1 (hypot.f64 1 (tan.f64 x))) (/.f64 (-.f64 1 (/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x))) (hypot.f64 1 (tan.f64 x))))
0.4b
(log.f64 (exp.f64 (/.f64 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))) (fma.f64 (tan.f64 x) (tan.f64 x) 1))))
0.4b
(/.f64 (-.f64 1 (cbrt.f64 (pow.f64 (tan.f64 x) 6))) (fma.f64 (tan.f64 x) (tan.f64 x) 1))
0.4b
(/.f64 (-.f64 (pow.f64 1 3) (pow.f64 (*.f64 (tan.f64 x) (tan.f64 x)) 3)) (*.f64 (fma.f64 (tan.f64 x) (tan.f64 x) 1) (+.f64 1 (fma.f64 (tan.f64 x) (tan.f64 x) (pow.f64 (tan.f64 x) 4)))))
0.7b
(*.f64 (*.f64 (cbrt.f64 (/.f64 (-.f64 1 (/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x))) (fma.f64 (tan.f64 x) (tan.f64 x) 1))) (cbrt.f64 (/.f64 (-.f64 1 (/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x))) (fma.f64 (tan.f64 x) (tan.f64 x) 1)))) (cbrt.f64 (/.f64 (-.f64 1 (/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x))) (fma.f64 (tan.f64 x) (tan.f64 x) 1))))
0.4b
(/.f64 (cbrt.f64 (pow.f64 (-.f64 1 (/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x))) 3)) (fma.f64 (tan.f64 x) (tan.f64 x) 1))
0.4b
(-.f64 (/.f64 1 (fma.f64 (tan.f64 x) (tan.f64 x) 1)) (/.f64 (/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x)) (fma.f64 (tan.f64 x) (tan.f64 x) 1)))
Compiler

Compiled 3538 to 1986 computations (43.9% saved)

regimes956.0ms (14.8%)

Accuracy

Total 0.2b remaining (76.9%)

Threshold costs 0.2b (76.9%)

Counts
236 → 1
Compiler

Compiled 21054 to 12254 computations (41.8% 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
01022
11622
22022
32322
42422
52322

end193.0ms (3%)

Compiler

Compiled 323 to 184 computations (43% saved)

Profiling

Loading profile data...