Details

Time bar (total: 8.7s)

analyze733.0ms (8.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)

sample1.7s (19.4%)

Results
763.0ms2099×body1024valid
481.0ms4581×body128valid
301.0ms1045×body512valid
100.0ms526×body256valid
2.0msbody2048valid
Compiler

Compiled 50 to 26 computations (48% saved)

simplify26.0ms (0.3%)

Algorithm
egg-herbie
Rules
627×times-frac_binary64
563×div-sub_binary64
543×fma-def_binary64
333×fma-neg_binary64
263×distribute-rgt-in_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0824
11922
23122
34922
49922
516922
627922
758822
8146622
9371722
Stop Event
node limit
Counts
1 → 2

prune3.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.3b
Counts
3 → 2
Alt Table
StatusErrorProgram
0.3b
(/.f64 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))) (+.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))))
0.3b
(/.f64 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))) (fma.f64 (tan.f64 x) (tan.f64 x) 1))
Compiler

Compiled 92 to 45 computations (51.1% saved)

localize6.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

series87.0ms (1%)

Counts
4 → 48
Calls

4 calls:

59.0ms
(/.f64 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))) (+.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))))
10.0ms
(-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x)))
9.0ms
(+.f64 1 (*.f64 (tan.f64 x) (tan.f64 x)))
9.0ms
(*.f64 (tan.f64 x) (tan.f64 x))

rewrite86.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
434×log-prod_binary64
381×prod-diff_binary64
236×egg-rr
196×fma-def_binary64
157×expm1-udef_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0844
118244
2252844
Stop Event
node limit
Counts
4 → 236
Calls

4 calls:

80.0ms
(+.f64 1 (*.f64 (tan.f64 x) (tan.f64 x)))
80.0ms
(-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x)))
80.0ms
(/.f64 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))) (+.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))))
80.0ms
(*.f64 (tan.f64 x) (tan.f64 x))

simplify34.0ms (0.4%)

Algorithm
egg-herbie
Rules
669×fma-def_binary64
516×associate-*l*_binary64
451×associate-*r*_binary64
342×cancel-sign-sub-inv_binary64
184×fma-neg_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
046868
1132864
2345858
31101856
Stop Event
node limit
Counts
284 → 269

prune642.0ms (7.3%)

Pruning

13 alts after pruning (13 fresh and 0 done)

PrunedKeptTotal
New29513308
Fresh101
Picked101
Done000
Total29713310
Error
0.0b
Counts
310 → 13
Alt Table
StatusErrorProgram
0.5b
(/.f64 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))) (*.f64 (-.f64 1 (pow.f64 (tan.f64 x) 4)) (/.f64 1 (-.f64 1 (pow.f64 (tan.f64 x) 2)))))
0.4b
(/.f64 (/.f64 (/.f64 (-.f64 1 (pow.f64 (tan.f64 x) 4)) (hypot.f64 1 (tan.f64 x))) (hypot.f64 1 (tan.f64 x))) (+.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))))
0.6b
(+.f64 (fma.f64 (/.f64 1 (-.f64 1 (pow.f64 (tan.f64 x) 4))) (-.f64 1 (pow.f64 (tan.f64 x) 2)) (neg.f64 (*.f64 (/.f64 (pow.f64 (cbrt.f64 (tan.f64 x)) 2) (pow.f64 (hypot.f64 1 (tan.f64 x)) 2)) (/.f64 (cbrt.f64 (pow.f64 (tan.f64 x) 4)) 1)))) (fma.f64 (neg.f64 (/.f64 (pow.f64 (cbrt.f64 (tan.f64 x)) 2) (pow.f64 (hypot.f64 1 (tan.f64 x)) 2))) (/.f64 (cbrt.f64 (pow.f64 (tan.f64 x) 4)) 1) (*.f64 (/.f64 (pow.f64 (cbrt.f64 (tan.f64 x)) 2) (pow.f64 (hypot.f64 1 (tan.f64 x)) 2)) (/.f64 (cbrt.f64 (pow.f64 (tan.f64 x) 4)) 1))))
0.4b
(/.f64 (/.f64 (-.f64 1 (pow.f64 (tan.f64 x) 6)) (+.f64 1 (fma.f64 (tan.f64 x) (tan.f64 x) (pow.f64 (tan.f64 x) 4)))) (+.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))))
0.4b
(*.f64 (/.f64 (-.f64 1 (pow.f64 (tan.f64 x) 2)) (+.f64 1 (pow.f64 (tan.f64 x) 6))) (+.f64 1 (-.f64 (pow.f64 (tan.f64 x) 4) (pow.f64 (tan.f64 x) 2))))
0.5b
(fma.f64 (/.f64 1 (+.f64 1 (pow.f64 (tan.f64 x) 6))) (+.f64 1 (-.f64 (pow.f64 (tan.f64 x) 4) (pow.f64 (tan.f64 x) 2))) (neg.f64 (/.f64 (pow.f64 (tan.f64 x) 2) (pow.f64 (hypot.f64 1 (tan.f64 x)) 2))))
0.4b
(*.f64 (/.f64 (-.f64 1 (pow.f64 (tan.f64 x) 2)) (-.f64 1 (pow.f64 (tan.f64 x) 4))) (-.f64 1 (pow.f64 (tan.f64 x) 2)))
0.5b
(+.f64 (fma.f64 (sqrt.f64 (/.f64 1 (pow.f64 (hypot.f64 1 (tan.f64 x)) 2))) (sqrt.f64 (/.f64 1 (pow.f64 (hypot.f64 1 (tan.f64 x)) 2))) (neg.f64 (*.f64 (/.f64 (tan.f64 x) (pow.f64 (hypot.f64 1 (tan.f64 x)) 2)) (/.f64 (tan.f64 x) 1)))) (fma.f64 (neg.f64 (/.f64 (tan.f64 x) (pow.f64 (hypot.f64 1 (tan.f64 x)) 2))) (/.f64 (tan.f64 x) 1) (*.f64 (/.f64 (tan.f64 x) (pow.f64 (hypot.f64 1 (tan.f64 x)) 2)) (/.f64 (tan.f64 x) 1))))
1.4b
(/.f64 (-.f64 1 (+.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (tan.f64 x) 2)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (tan.f64 x) 2)))))) (+.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))))
0.7b
(+.f64 (fma.f64 (/.f64 1 (+.f64 1 (pow.f64 (tan.f64 x) 6))) (+.f64 1 (-.f64 (pow.f64 (tan.f64 x) 4) (pow.f64 (tan.f64 x) 2))) (neg.f64 (*.f64 (/.f64 (pow.f64 (tan.f64 x) 2) (cbrt.f64 (pow.f64 (hypot.f64 1 (tan.f64 x)) 2))) (/.f64 1 (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 1 (tan.f64 x)) 2)) 2))))) (fma.f64 (neg.f64 (/.f64 (pow.f64 (tan.f64 x) 2) (cbrt.f64 (pow.f64 (hypot.f64 1 (tan.f64 x)) 2)))) (/.f64 1 (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 1 (tan.f64 x)) 2)) 2)) (*.f64 (/.f64 (pow.f64 (tan.f64 x) 2) (cbrt.f64 (pow.f64 (hypot.f64 1 (tan.f64 x)) 2))) (/.f64 1 (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 1 (tan.f64 x)) 2)) 2)))))
15.6b
(exp.f64 (-.f64 (log1p.f64 (neg.f64 (pow.f64 (tan.f64 x) 2))) (log1p.f64 (pow.f64 (tan.f64 x) 2))))
0.7b
(*.f64 (/.f64 1 (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 1 (tan.f64 x)) 2)) 2)) (/.f64 (-.f64 1 (pow.f64 (tan.f64 x) 2)) (cbrt.f64 (pow.f64 (hypot.f64 1 (tan.f64 x)) 2))))
0.5b
(+.f64 (fma.f64 1 (/.f64 1 (pow.f64 (hypot.f64 1 (tan.f64 x)) 2)) (neg.f64 (*.f64 (+.f64 1 (-.f64 (pow.f64 (tan.f64 x) 4) (pow.f64 (tan.f64 x) 2))) (/.f64 (pow.f64 (tan.f64 x) 2) (+.f64 1 (pow.f64 (tan.f64 x) 6)))))) (fma.f64 (neg.f64 (+.f64 1 (-.f64 (pow.f64 (tan.f64 x) 4) (pow.f64 (tan.f64 x) 2)))) (/.f64 (pow.f64 (tan.f64 x) 2) (+.f64 1 (pow.f64 (tan.f64 x) 6))) (*.f64 (+.f64 1 (-.f64 (pow.f64 (tan.f64 x) 4) (pow.f64 (tan.f64 x) 2))) (/.f64 (pow.f64 (tan.f64 x) 2) (+.f64 1 (pow.f64 (tan.f64 x) 6))))))
Compiler

Compiled 11427 to 7532 computations (34.1% saved)

localize12.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(/.f64 (-.f64 1 (pow.f64 (tan.f64 x) 6)) (+.f64 1 (fma.f64 (tan.f64 x) (tan.f64 x) (pow.f64 (tan.f64 x) 4))))
0.2b
(*.f64 (tan.f64 x) (tan.f64 x))
0.4b
(pow.f64 (tan.f64 x) 4)
0.6b
(pow.f64 (tan.f64 x) 6)

series161.0ms (1.8%)

Counts
3 → 36
Calls

3 calls:

126.0ms
(/.f64 (-.f64 1 (pow.f64 (tan.f64 x) 6)) (+.f64 1 (fma.f64 (tan.f64 x) (tan.f64 x) (pow.f64 (tan.f64 x) 4))))
18.0ms
(pow.f64 (tan.f64 x) 6)
16.0ms
(pow.f64 (tan.f64 x) 4)

rewrite98.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
606×prod-diff_binary64
220×log1p-udef_binary64
139×egg-rr
128×log1p-expm1-u_binary64
128×expm1-log1p-u_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01240
127440
2349040
Stop Event
node limit
Counts
3 → 139
Calls

3 calls:

89.0ms
(/.f64 (-.f64 1 (pow.f64 (tan.f64 x) 6)) (+.f64 1 (fma.f64 (tan.f64 x) (tan.f64 x) (pow.f64 (tan.f64 x) 4))))
89.0ms
(pow.f64 (tan.f64 x) 4)
89.0ms
(pow.f64 (tan.f64 x) 6)

simplify31.0ms (0.4%)

Algorithm
egg-herbie
Rules
853×fma-def_binary64
359×associate-/l*_binary64
254×associate-/r*_binary64
218×*-commutative_binary64
191×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
061811
1148807
2380801
31337799
Stop Event
node limit
Counts
175 → 164

prune654.0ms (7.5%)

Pruning

13 alts after pruning (13 fresh and 0 done)

PrunedKeptTotal
New2003203
Fresh21012
Picked101
Done000
Total20313216
Error
0b
Counts
216 → 13
Alt Table
StatusErrorProgram
0.5b
(/.f64 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))) (*.f64 (-.f64 1 (pow.f64 (tan.f64 x) 4)) (/.f64 1 (-.f64 1 (pow.f64 (tan.f64 x) 2)))))
0.4b
(/.f64 (/.f64 (/.f64 (-.f64 1 (pow.f64 (tan.f64 x) 4)) (hypot.f64 1 (tan.f64 x))) (hypot.f64 1 (tan.f64 x))) (+.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))))
0.6b
(+.f64 (fma.f64 (/.f64 1 (-.f64 1 (pow.f64 (tan.f64 x) 4))) (-.f64 1 (pow.f64 (tan.f64 x) 2)) (neg.f64 (*.f64 (/.f64 (pow.f64 (cbrt.f64 (tan.f64 x)) 2) (pow.f64 (hypot.f64 1 (tan.f64 x)) 2)) (/.f64 (cbrt.f64 (pow.f64 (tan.f64 x) 4)) 1)))) (fma.f64 (neg.f64 (/.f64 (pow.f64 (cbrt.f64 (tan.f64 x)) 2) (pow.f64 (hypot.f64 1 (tan.f64 x)) 2))) (/.f64 (cbrt.f64 (pow.f64 (tan.f64 x) 4)) 1) (*.f64 (/.f64 (pow.f64 (cbrt.f64 (tan.f64 x)) 2) (pow.f64 (hypot.f64 1 (tan.f64 x)) 2)) (/.f64 (cbrt.f64 (pow.f64 (tan.f64 x) 4)) 1))))
0.4b
(*.f64 (/.f64 (-.f64 1 (pow.f64 (tan.f64 x) 2)) (-.f64 1 (pow.f64 (tan.f64 x) 4))) (-.f64 1 (pow.f64 (tan.f64 x) 2)))
0.8b
(/.f64 (/.f64 (-.f64 1 (pow.f64 (tan.f64 x) 6)) (+.f64 1 (fma.f64 (tan.f64 x) (tan.f64 x) (*.f64 (pow.f64 (pow.f64 (cbrt.f64 (tan.f64 x)) 2) 4) (pow.f64 (cbrt.f64 (tan.f64 x)) 4))))) (+.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))))
0.5b
(fma.f64 (/.f64 1 (+.f64 1 (pow.f64 (tan.f64 x) 6))) (+.f64 1 (-.f64 (pow.f64 (tan.f64 x) 4) (pow.f64 (tan.f64 x) 2))) (neg.f64 (/.f64 (pow.f64 (tan.f64 x) 2) (pow.f64 (hypot.f64 1 (tan.f64 x)) 2))))
0.5b
(+.f64 (fma.f64 (sqrt.f64 (/.f64 1 (pow.f64 (hypot.f64 1 (tan.f64 x)) 2))) (sqrt.f64 (/.f64 1 (pow.f64 (hypot.f64 1 (tan.f64 x)) 2))) (neg.f64 (*.f64 (/.f64 (tan.f64 x) (pow.f64 (hypot.f64 1 (tan.f64 x)) 2)) (/.f64 (tan.f64 x) 1)))) (fma.f64 (neg.f64 (/.f64 (tan.f64 x) (pow.f64 (hypot.f64 1 (tan.f64 x)) 2))) (/.f64 (tan.f64 x) 1) (*.f64 (/.f64 (tan.f64 x) (pow.f64 (hypot.f64 1 (tan.f64 x)) 2)) (/.f64 (tan.f64 x) 1))))
0.5b
(/.f64 (+.f64 (fma.f64 (/.f64 1 (-.f64 1 (pow.f64 (+.f64 (pow.f64 (tan.f64 x) 4) (pow.f64 (tan.f64 x) 2)) 2))) (-.f64 (-.f64 1 (pow.f64 (tan.f64 x) 2)) (pow.f64 (tan.f64 x) 4)) (neg.f64 (*.f64 (/.f64 (pow.f64 (tan.f64 x) 6) (hypot.f64 1 (hypot.f64 (tan.f64 x) (pow.f64 (tan.f64 x) 2)))) (/.f64 1 (hypot.f64 1 (hypot.f64 (tan.f64 x) (pow.f64 (tan.f64 x) 2))))))) (fma.f64 (neg.f64 (/.f64 (pow.f64 (tan.f64 x) 6) (hypot.f64 1 (hypot.f64 (tan.f64 x) (pow.f64 (tan.f64 x) 2))))) (/.f64 1 (hypot.f64 1 (hypot.f64 (tan.f64 x) (pow.f64 (tan.f64 x) 2)))) (*.f64 (/.f64 (pow.f64 (tan.f64 x) 6) (hypot.f64 1 (hypot.f64 (tan.f64 x) (pow.f64 (tan.f64 x) 2)))) (/.f64 1 (hypot.f64 1 (hypot.f64 (tan.f64 x) (pow.f64 (tan.f64 x) 2))))))) (+.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))))
1.4b
(/.f64 (-.f64 1 (+.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (tan.f64 x) 2)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (tan.f64 x) 2)))))) (+.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))))
0.5b
(/.f64 (/.f64 (-.f64 1 (pow.f64 (tan.f64 x) 6)) (+.f64 1 (fma.f64 (tan.f64 x) (tan.f64 x) (pow.f64 (tan.f64 x) 4)))) (+.f64 1 (-.f64 (pow.f64 (hypot.f64 1 (tan.f64 x)) 2) 1)))
15.6b
(exp.f64 (-.f64 (log1p.f64 (neg.f64 (pow.f64 (tan.f64 x) 2))) (log1p.f64 (pow.f64 (tan.f64 x) 2))))
0.7b
(*.f64 (/.f64 1 (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 1 (tan.f64 x)) 2)) 2)) (/.f64 (-.f64 1 (pow.f64 (tan.f64 x) 2)) (cbrt.f64 (pow.f64 (hypot.f64 1 (tan.f64 x)) 2))))
0.5b
(+.f64 (fma.f64 1 (/.f64 1 (pow.f64 (hypot.f64 1 (tan.f64 x)) 2)) (neg.f64 (*.f64 (+.f64 1 (-.f64 (pow.f64 (tan.f64 x) 4) (pow.f64 (tan.f64 x) 2))) (/.f64 (pow.f64 (tan.f64 x) 2) (+.f64 1 (pow.f64 (tan.f64 x) 6)))))) (fma.f64 (neg.f64 (+.f64 1 (-.f64 (pow.f64 (tan.f64 x) 4) (pow.f64 (tan.f64 x) 2)))) (/.f64 (pow.f64 (tan.f64 x) 2) (+.f64 1 (pow.f64 (tan.f64 x) 6))) (*.f64 (+.f64 1 (-.f64 (pow.f64 (tan.f64 x) 4) (pow.f64 (tan.f64 x) 2))) (/.f64 (pow.f64 (tan.f64 x) 2) (+.f64 1 (pow.f64 (tan.f64 x) 6))))))
Compiler

Compiled 14493 to 9368 computations (35.4% saved)

localize9.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(/.f64 (-.f64 1 (pow.f64 (tan.f64 x) 2)) (-.f64 1 (pow.f64 (tan.f64 x) 4)))
0.2b
(*.f64 (/.f64 (-.f64 1 (pow.f64 (tan.f64 x) 2)) (-.f64 1 (pow.f64 (tan.f64 x) 4))) (-.f64 1 (pow.f64 (tan.f64 x) 2)))
0.2b
(pow.f64 (tan.f64 x) 2)
0.4b
(pow.f64 (tan.f64 x) 4)

series149.0ms (1.7%)

Counts
3 → 36
Calls

3 calls:

74.0ms
(*.f64 (/.f64 (-.f64 1 (pow.f64 (tan.f64 x) 2)) (-.f64 1 (pow.f64 (tan.f64 x) 4))) (-.f64 1 (pow.f64 (tan.f64 x) 2)))
66.0ms
(/.f64 (-.f64 1 (pow.f64 (tan.f64 x) 2)) (-.f64 1 (pow.f64 (tan.f64 x) 4)))
9.0ms
(pow.f64 (tan.f64 x) 2)

rewrite89.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
509×prod-diff_binary64
212×expm1-udef_binary64
210×log1p-udef_binary64
170×egg-rr
122×add-sqr-sqrt_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01257
127138
2343538
Stop Event
node limit
Counts
3 → 170
Calls

3 calls:

83.0ms
(/.f64 (-.f64 1 (pow.f64 (tan.f64 x) 2)) (-.f64 1 (pow.f64 (tan.f64 x) 4)))
83.0ms
(*.f64 (/.f64 (-.f64 1 (pow.f64 (tan.f64 x) 2)) (-.f64 1 (pow.f64 (tan.f64 x) 4))) (-.f64 1 (pow.f64 (tan.f64 x) 2)))
83.0ms
(pow.f64 (tan.f64 x) 2)

simplify32.0ms (0.4%)

Algorithm
egg-herbie
Rules
653×fma-def_binary64
556×times-frac_binary64
330×cancel-sign-sub-inv_binary64
217×associate-/l*_binary64
190×fma-neg_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
053865
1142865
2380861
31304859
Stop Event
node limit
Counts
206 → 194

prune627.0ms (7.2%)

Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New2464250
Fresh4812
Picked101
Done000
Total25112263
Error
0b
Counts
263 → 12
Alt Table
StatusErrorProgram
0.5b
(fma.f64 (/.f64 1 (+.f64 1 (pow.f64 (tan.f64 x) 6))) (+.f64 1 (-.f64 (pow.f64 (tan.f64 x) 4) (pow.f64 (tan.f64 x) 2))) (neg.f64 (/.f64 (pow.f64 (tan.f64 x) 2) (pow.f64 (hypot.f64 1 (tan.f64 x)) 2))))
0.8b
(/.f64 (/.f64 (-.f64 1 (pow.f64 (tan.f64 x) 6)) (+.f64 1 (fma.f64 (tan.f64 x) (tan.f64 x) (*.f64 (pow.f64 (pow.f64 (cbrt.f64 (tan.f64 x)) 2) 4) (pow.f64 (cbrt.f64 (tan.f64 x)) 4))))) (+.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))))
0.5b
(/.f64 (/.f64 (-.f64 1 (pow.f64 (tan.f64 x) 6)) (+.f64 1 (fma.f64 (tan.f64 x) (tan.f64 x) (pow.f64 (tan.f64 x) 4)))) (+.f64 1 (-.f64 (pow.f64 (hypot.f64 1 (tan.f64 x)) 2) 1)))
0.4b
(+.f64 (/.f64 1 (+.f64 (pow.f64 (tan.f64 x) 2) 1)) (*.f64 (neg.f64 (pow.f64 (tan.f64 x) 2)) (/.f64 1 (+.f64 (pow.f64 (tan.f64 x) 2) 1))))
15.6b
(exp.f64 (-.f64 (log1p.f64 (neg.f64 (pow.f64 (tan.f64 x) 2))) (log1p.f64 (pow.f64 (tan.f64 x) 2))))
0.4b
(log.f64 (exp.f64 (/.f64 (-.f64 1 (pow.f64 (tan.f64 x) 2)) (+.f64 (pow.f64 (tan.f64 x) 2) 1))))
0.5b
(*.f64 (/.f64 (-.f64 1 (pow.f64 (tan.f64 x) 2)) (-.f64 1 (pow.f64 (tan.f64 x) 4))) (-.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))))
0.5b
(/.f64 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))) (*.f64 (-.f64 1 (pow.f64 (tan.f64 x) 4)) (/.f64 1 (-.f64 1 (pow.f64 (tan.f64 x) 2)))))
0.4b
(*.f64 (/.f64 (-.f64 1 (pow.f64 (tan.f64 x) 2)) (-.f64 1 (pow.f64 (tan.f64 x) 4))) (-.f64 1 (*.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (tan.f64 x) 8))) (sqrt.f64 (cbrt.f64 (pow.f64 (tan.f64 x) 4))))))
0.5b
(/.f64 (+.f64 (fma.f64 (/.f64 1 (-.f64 1 (pow.f64 (+.f64 (pow.f64 (tan.f64 x) 4) (pow.f64 (tan.f64 x) 2)) 2))) (-.f64 (-.f64 1 (pow.f64 (tan.f64 x) 2)) (pow.f64 (tan.f64 x) 4)) (neg.f64 (*.f64 (/.f64 (pow.f64 (tan.f64 x) 6) (hypot.f64 1 (hypot.f64 (tan.f64 x) (pow.f64 (tan.f64 x) 2)))) (/.f64 1 (hypot.f64 1 (hypot.f64 (tan.f64 x) (pow.f64 (tan.f64 x) 2))))))) (fma.f64 (neg.f64 (/.f64 (pow.f64 (tan.f64 x) 6) (hypot.f64 1 (hypot.f64 (tan.f64 x) (pow.f64 (tan.f64 x) 2))))) (/.f64 1 (hypot.f64 1 (hypot.f64 (tan.f64 x) (pow.f64 (tan.f64 x) 2)))) (*.f64 (/.f64 (pow.f64 (tan.f64 x) 6) (hypot.f64 1 (hypot.f64 (tan.f64 x) (pow.f64 (tan.f64 x) 2)))) (/.f64 1 (hypot.f64 1 (hypot.f64 (tan.f64 x) (pow.f64 (tan.f64 x) 2))))))) (+.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))))
1.4b
(/.f64 (-.f64 1 (+.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (tan.f64 x) 2)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (tan.f64 x) 2)))))) (+.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))))
0.7b
(*.f64 (/.f64 1 (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 1 (tan.f64 x)) 2)) 2)) (/.f64 (-.f64 1 (pow.f64 (tan.f64 x) 2)) (cbrt.f64 (pow.f64 (hypot.f64 1 (tan.f64 x)) 2))))
Compiler

Compiled 11402 to 8090 computations (29% saved)

localize11.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(-.f64 1 (pow.f64 (tan.f64 x) 2))
0.2b
(/.f64 (-.f64 1 (pow.f64 (tan.f64 x) 2)) (+.f64 (pow.f64 (tan.f64 x) 2) 1))
0.2b
(pow.f64 (tan.f64 x) 2)
0.3b
(log.f64 (exp.f64 (/.f64 (-.f64 1 (pow.f64 (tan.f64 x) 2)) (+.f64 (pow.f64 (tan.f64 x) 2) 1))))

series126.0ms (1.4%)

Counts
3 → 36
Calls

3 calls:

59.0ms
(/.f64 (-.f64 1 (pow.f64 (tan.f64 x) 2)) (+.f64 (pow.f64 (tan.f64 x) 2) 1))
57.0ms
(log.f64 (exp.f64 (/.f64 (-.f64 1 (pow.f64 (tan.f64 x) 2)) (+.f64 (pow.f64 (tan.f64 x) 2) 1))))
9.0ms
(-.f64 1 (pow.f64 (tan.f64 x) 2))

rewrite118.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
376×prod-diff_binary64
285×egg-rr
207×fma-def_binary64
181×expm1-udef_binary64
181×log1p-udef_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01149
122649
2286749
Stop Event
node limit
Counts
3 → 285
Calls

3 calls:

107.0ms
(-.f64 1 (pow.f64 (tan.f64 x) 2))
107.0ms
(/.f64 (-.f64 1 (pow.f64 (tan.f64 x) 2)) (+.f64 (pow.f64 (tan.f64 x) 2) 1))
107.0ms
(log.f64 (exp.f64 (/.f64 (-.f64 1 (pow.f64 (tan.f64 x) 2)) (+.f64 (pow.f64 (tan.f64 x) 2) 1))))

simplify46.0ms (0.5%)

Algorithm
egg-herbie
Rules
390×fma-def_binary64
367×associate-*l*_binary64
350×associate-*r*_binary64
338×cancel-sign-sub-inv_binary64
332×unswap-sqr_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
035859
199859
2258851
3868847
44191847
Stop Event
node limit
Counts
321 → 192

prune588.0ms (6.7%)

Pruning

12 alts after pruning (11 fresh and 1 done)

PrunedKeptTotal
New2542256
Fresh2911
Picked011
Done000
Total25612268
Error
0b
Counts
268 → 12
Alt Table
StatusErrorProgram
0.4b
(-.f64 (/.f64 1 (+.f64 1 (pow.f64 (tan.f64 x) 2))) (/.f64 (pow.f64 (tan.f64 x) 2) (+.f64 1 (pow.f64 (tan.f64 x) 2))))
0.5b
(/.f64 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))) (*.f64 (-.f64 1 (pow.f64 (tan.f64 x) 4)) (/.f64 1 (-.f64 1 (pow.f64 (tan.f64 x) 2)))))
0.5b
(fma.f64 (/.f64 1 (+.f64 1 (pow.f64 (tan.f64 x) 6))) (+.f64 1 (-.f64 (pow.f64 (tan.f64 x) 4) (pow.f64 (tan.f64 x) 2))) (neg.f64 (/.f64 (pow.f64 (tan.f64 x) 2) (pow.f64 (hypot.f64 1 (tan.f64 x)) 2))))
0.8b
(/.f64 (/.f64 (-.f64 1 (pow.f64 (tan.f64 x) 6)) (+.f64 1 (fma.f64 (tan.f64 x) (tan.f64 x) (*.f64 (pow.f64 (pow.f64 (cbrt.f64 (tan.f64 x)) 2) 4) (pow.f64 (cbrt.f64 (tan.f64 x)) 4))))) (+.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))))
15.6b
(exp.f64 (-.f64 (log1p.f64 (neg.f64 (pow.f64 (tan.f64 x) 2))) (log1p.f64 (pow.f64 (tan.f64 x) 2))))
0.4b
(log.f64 (exp.f64 (/.f64 (-.f64 1 (pow.f64 (tan.f64 x) 2)) (+.f64 (pow.f64 (tan.f64 x) 2) 1))))
0.5b
(*.f64 (/.f64 (-.f64 1 (pow.f64 (tan.f64 x) 2)) (-.f64 1 (pow.f64 (tan.f64 x) 4))) (-.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))))
0.4b
(/.f64 (-.f64 (+.f64 1 (pow.f64 (tan.f64 x) 2)) (+.f64 (pow.f64 (tan.f64 x) 2) (pow.f64 (tan.f64 x) 4))) (pow.f64 (+.f64 1 (pow.f64 (tan.f64 x) 2)) 2))
0.4b
(*.f64 (/.f64 (-.f64 1 (pow.f64 (tan.f64 x) 2)) (-.f64 1 (pow.f64 (tan.f64 x) 4))) (-.f64 1 (*.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (tan.f64 x) 8))) (sqrt.f64 (cbrt.f64 (pow.f64 (tan.f64 x) 4))))))
1.4b
(/.f64 (-.f64 1 (+.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (tan.f64 x) 2)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (tan.f64 x) 2)))))) (+.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))))
0.5b
(/.f64 (/.f64 (-.f64 1 (pow.f64 (tan.f64 x) 6)) (+.f64 1 (fma.f64 (tan.f64 x) (tan.f64 x) (pow.f64 (tan.f64 x) 4)))) (+.f64 1 (-.f64 (pow.f64 (hypot.f64 1 (tan.f64 x)) 2) 1)))
0.7b
(*.f64 (/.f64 1 (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 1 (tan.f64 x)) 2)) 2)) (/.f64 (-.f64 1 (pow.f64 (tan.f64 x) 2)) (cbrt.f64 (pow.f64 (hypot.f64 1 (tan.f64 x)) 2))))
Compiler

Compiled 9639 to 6781 computations (29.7% saved)

regimes2.4s (28%)

Accuracy

Total 0.3b remaining (80.2%)

Threshold costs 0.3b (80.2%)

Counts
494 → 1
Compiler

Compiled 55496 to 40085 computations (27.8% saved)

simplify3.0ms (0%)

Algorithm
egg-herbie
Rules
+-commutative_binary64
*-commutative_binary64
*-rgt-identity_binary64
neg-sub0_binary64
neg-mul-1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01024
12024
22724
32824
Stop Event
saturated

end229.0ms (2.6%)

Compiler

Compiled 341 to 246 computations (27.9% saved)

Profiling

Loading profile data...