Details

Time bar (total: 9.4s)

analyze793.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)

sample2.4s (25.9%)

Results
1.1s2121×body1024valid
674.0ms4587×body128valid
395.0ms1046×body512valid
132.0ms498×body256valid
3.0msbody2048valid
Compiler

Compiled 50 to 26 computations (48% saved)

simplify132.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

prune6.0ms (0.1%)

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))) (fma.f64 (tan.f64 x) (tan.f64 x) 1))
0.3b
(/.f64 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))) (+.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))))
Compiler

Compiled 92 to 45 computations (51.1% saved)

localize13.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.2b
(/.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))

series241.0ms (2.6%)

Counts
4 → 48
Calls

4 calls:

161.0ms
(/.f64 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))) (fma.f64 (tan.f64 x) (tan.f64 x) 1))
35.0ms
(fma.f64 (tan.f64 x) (tan.f64 x) 1)
24.0ms
(-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x)))
21.0ms
(*.f64 (tan.f64 x) (tan.f64 x))

rewrite32.0ms (0.3%)

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:

8.0ms
(/.f64 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))) (fma.f64 (tan.f64 x) (tan.f64 x) 1))
8.0ms
(*.f64 (tan.f64 x) (tan.f64 x))
5.0ms
(-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x)))
1.0ms
(fma.f64 (tan.f64 x) (tan.f64 x) 1)

simplify177.0ms (1.9%)

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

prune249.0ms (2.6%)

Pruning

13 alts after pruning (13 fresh and 0 done)

PrunedKeptTotal
New14613159
Fresh101
Picked101
Done000
Total14813161
Error
0.0b
Counts
161 → 13
Alt Table
StatusErrorProgram
1.6b
(/.f64 (-.f64 1 (log.f64 (exp.f64 (*.f64 (tan.f64 x) (tan.f64 x))))) (fma.f64 (tan.f64 x) (tan.f64 x) 1))
13.8b
(*.f64 (sqrt.f64 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x)))) (/.f64 (sqrt.f64 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x)))) (fma.f64 (tan.f64 x) (tan.f64 x) 1)))
1.0b
(/.f64 (-.f64 1 (*.f64 (pow.f64 (cbrt.f64 (tan.f64 x)) 5) (cbrt.f64 (tan.f64 x)))) (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.4b
(/.f64 (-.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))) (+.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))))
1.5b
(/.f64 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))) (log1p.f64 (expm1.f64 (fma.f64 (tan.f64 x) (tan.f64 x) 1))))
0.5b
(cbrt.f64 (/.f64 (*.f64 (*.f64 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))) (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x)))) (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x)))) (*.f64 (*.f64 (fma.f64 (tan.f64 x) (tan.f64 x) 1) (fma.f64 (tan.f64 x) (tan.f64 x) 1)) (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))))
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 (/.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.5b
(*.f64 (/.f64 (+.f64 1 (tan.f64 x)) (hypot.f64 1 (tan.f64 x))) (/.f64 (-.f64 1 (tan.f64 x)) (hypot.f64 1 (tan.f64 x))))
0.8b
(*.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))))
Compiler

Compiled 3964 to 1913 computations (51.7% saved)

localize15.0ms (0.2%)

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.2b
(*.f64 (sin.f64 x) (tan.f64 x))
0.2b
(/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x))
0.2b
(/.f64 (-.f64 1 (/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x))) (fma.f64 (tan.f64 x) (tan.f64 x) 1))

series175.0ms (1.9%)

Counts
4 → 48
Calls

4 calls:

110.0ms
(/.f64 (-.f64 1 (/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x))) (fma.f64 (tan.f64 x) (tan.f64 x) 1))
37.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))

rewrite48.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:

15.0ms
(/.f64 (-.f64 1 (/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x))) (fma.f64 (tan.f64 x) (tan.f64 x) 1))
9.0ms
(*.f64 (sin.f64 x) (tan.f64 x))
8.0ms
(/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x))
6.0ms
(-.f64 1 (/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x)))

simplify177.0ms (1.9%)

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 → 196
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02465019
15704557
220194173
344354173
448964173

prune467.0ms (5%)

Pruning

16 alts after pruning (16 fresh and 0 done)

PrunedKeptTotal
New18610196
Fresh6612
Picked101
Done000
Total19316209
Error
0.0b
Counts
209 → 16
Alt Table
StatusErrorProgram
1.6b
(/.f64 (-.f64 1 (log.f64 (exp.f64 (*.f64 (tan.f64 x) (tan.f64 x))))) (fma.f64 (tan.f64 x) (tan.f64 x) 1))
0.4b
(/.f64 (*.f64 (+.f64 1 (sqrt.f64 (/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x)))) (-.f64 1 (sqrt.f64 (/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x))))) (fma.f64 (tan.f64 x) (tan.f64 x) 1))
0.4b
(/.f64 (-.f64 1 (/.f64 (log.f64 (exp.f64 (*.f64 (sin.f64 x) (tan.f64 x)))) (cos.f64 x))) (fma.f64 (tan.f64 x) (tan.f64 x) 1))
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 (-.f64 1 (/.f64 (sin.f64 x) (/.f64 (cos.f64 x) (tan.f64 x)))) (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 (tan.f64 x) (tan.f64 x)) (fma.f64 (tan.f64 x) (tan.f64 x) 1)))
0.4b
(/.f64 (-.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))) (+.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))))
13.7b
(/.f64 (sqrt.f64 (-.f64 1 (/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x)))) (/.f64 (fma.f64 (tan.f64 x) (tan.f64 x) 1) (sqrt.f64 (-.f64 1 (/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x))))))
1.5b
(/.f64 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))) (log1p.f64 (expm1.f64 (fma.f64 (tan.f64 x) (tan.f64 x) 1))))
0.5b
(cbrt.f64 (/.f64 (*.f64 (*.f64 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))) (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x)))) (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x)))) (*.f64 (*.f64 (fma.f64 (tan.f64 x) (tan.f64 x) 1) (fma.f64 (tan.f64 x) (tan.f64 x) 1)) (fma.f64 (tan.f64 x) (tan.f64 x) 1))))
0.3b
(/.f64 (+.f64 (fma.f64 1 1 (neg.f64 (*.f64 (/.f64 (tan.f64 x) (cos.f64 x)) (/.f64 (sin.f64 x) 1)))) (fma.f64 (neg.f64 (/.f64 (tan.f64 x) (cos.f64 x))) (/.f64 (sin.f64 x) 1) (*.f64 (/.f64 (tan.f64 x) (cos.f64 x)) (/.f64 (sin.f64 x) 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 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x)))))
0.7b
(*.f64 (*.f64 (cbrt.f64 (-.f64 1 (/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x)))) (cbrt.f64 (-.f64 1 (/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x))))) (/.f64 (cbrt.f64 (-.f64 1 (/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x)))) (fma.f64 (tan.f64 x) (tan.f64 x) 1)))
0.8b
(*.f64 (/.f64 (*.f64 (cbrt.f64 (-.f64 1 (/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x)))) (cbrt.f64 (-.f64 1 (/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.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 (cbrt.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))))
13.8b
(*.f64 (sqrt.f64 (/.f64 (-.f64 1 (/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x))) (fma.f64 (tan.f64 x) (tan.f64 x) 1))) (sqrt.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 (-.f64 (*.f64 1 1) (*.f64 (/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x)) (/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x)))) (*.f64 (fma.f64 (tan.f64 x) (tan.f64 x) 1) (fma.f64 (sin.f64 x) (/.f64 (tan.f64 x) (cos.f64 x)) 1)))
Compiler

Compiled 6752 to 2538 computations (62.4% saved)

localize10.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

series167.0ms (1.8%)

Counts
2 → 24
Calls

2 calls:

92.0ms
(*.f64 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))) (/.f64 1 (fma.f64 (tan.f64 x) (tan.f64 x) 1)))
75.0ms
(/.f64 1 (fma.f64 (tan.f64 x) (tan.f64 x) 1))

rewrite18.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
26×add-sqr-sqrt_binary64
20×times-frac_binary64
20×*-un-lft-identity_binary64
18×add-cube-cbrt_binary64
15×add-exp-log_binary64
Counts
2 → 77
Calls

2 calls:

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

simplify108.0ms (1.1%)

Algorithm
egg-herbie
Rules
656×fma-neg_binary64
627×distribute-rgt-in_binary64
383×cancel-sign-sub-inv_binary64
244×associate-*l*_binary64
234×fma-def_binary64
Counts
101 → 122
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01202438
12802128
27672112
322122112
448862112
552672112

prune487.0ms (5.2%)

Pruning

13 alts after pruning (13 fresh and 0 done)

PrunedKeptTotal
New1944198
Fresh6915
Picked101
Done000
Total20113214
Error
0.0b
Counts
214 → 13
Alt Table
StatusErrorProgram
1.6b
(/.f64 (-.f64 1 (log.f64 (exp.f64 (*.f64 (tan.f64 x) (tan.f64 x))))) (fma.f64 (tan.f64 x) (tan.f64 x) 1))
0.4b
(*.f64 (+.f64 1 (tan.f64 x)) (*.f64 (-.f64 1 (tan.f64 x)) (/.f64 1 (fma.f64 (tan.f64 x) (tan.f64 x) 1))))
0.4b
(*.f64 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))) (expm1.f64 (log1p.f64 (/.f64 1 (fma.f64 (tan.f64 x) (tan.f64 x) 1)))))
0.8b
(*.f64 (/.f64 (*.f64 (cbrt.f64 (-.f64 1 (/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x)))) (cbrt.f64 (-.f64 1 (/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.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 (cbrt.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))))
1.5b
(/.f64 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))) (log1p.f64 (expm1.f64 (fma.f64 (tan.f64 x) (tan.f64 x) 1))))
0.5b
(cbrt.f64 (/.f64 (*.f64 (*.f64 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))) (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x)))) (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x)))) (*.f64 (*.f64 (fma.f64 (tan.f64 x) (tan.f64 x) 1) (fma.f64 (tan.f64 x) (tan.f64 x) 1)) (fma.f64 (tan.f64 x) (tan.f64 x) 1))))
0.3b
(/.f64 (+.f64 (fma.f64 1 1 (neg.f64 (*.f64 (/.f64 (tan.f64 x) (cos.f64 x)) (/.f64 (sin.f64 x) 1)))) (fma.f64 (neg.f64 (/.f64 (tan.f64 x) (cos.f64 x))) (/.f64 (sin.f64 x) 1) (*.f64 (/.f64 (tan.f64 x) (cos.f64 x)) (/.f64 (sin.f64 x) 1)))) (fma.f64 (tan.f64 x) (tan.f64 x) 1))
0.3b
(*.f64 (-.f64 1 (/.f64 (*.f64 (tan.f64 x) (sin.f64 x)) (cos.f64 x))) (/.f64 1 (fma.f64 (tan.f64 x) (tan.f64 x) 1)))
0.4b
(*.f64 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))) (exp.f64 (neg.f64 (log1p.f64 (*.f64 (tan.f64 x) (tan.f64 x))))))
0.4b
(-.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.7b
(*.f64 (*.f64 (cbrt.f64 (-.f64 1 (/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x)))) (cbrt.f64 (-.f64 1 (/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x))))) (/.f64 (cbrt.f64 (-.f64 1 (/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x)))) (fma.f64 (tan.f64 x) (tan.f64 x) 1)))
13.8b
(*.f64 (sqrt.f64 (/.f64 (-.f64 1 (/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x))) (fma.f64 (tan.f64 x) (tan.f64 x) 1))) (sqrt.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 (-.f64 (*.f64 1 1) (*.f64 (/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x)) (/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x)))) (*.f64 (fma.f64 (tan.f64 x) (tan.f64 x) 1) (fma.f64 (sin.f64 x) (/.f64 (tan.f64 x) (cos.f64 x)) 1)))
Compiler

Compiled 5406 to 2752 computations (49.1% saved)

localize33.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(/.f64 (tan.f64 x) (cos.f64 x))
0.2b
(/.f64 (+.f64 (fma.f64 1 1 (neg.f64 (*.f64 (/.f64 (tan.f64 x) (cos.f64 x)) (/.f64 (sin.f64 x) 1)))) (fma.f64 (neg.f64 (/.f64 (tan.f64 x) (cos.f64 x))) (/.f64 (sin.f64 x) 1) (*.f64 (/.f64 (tan.f64 x) (cos.f64 x)) (/.f64 (sin.f64 x) 1)))) (fma.f64 (tan.f64 x) (tan.f64 x) 1))
0.2b
(*.f64 (/.f64 (tan.f64 x) (cos.f64 x)) (/.f64 (sin.f64 x) 1))
45.1b
(fma.f64 (neg.f64 (/.f64 (tan.f64 x) (cos.f64 x))) (/.f64 (sin.f64 x) 1) (*.f64 (/.f64 (tan.f64 x) (cos.f64 x)) (/.f64 (sin.f64 x) 1)))

series416.0ms (4.4%)

Counts
4 → 48
Calls

4 calls:

256.0ms
(/.f64 (+.f64 (fma.f64 1 1 (neg.f64 (*.f64 (/.f64 (tan.f64 x) (cos.f64 x)) (/.f64 (sin.f64 x) 1)))) (fma.f64 (neg.f64 (/.f64 (tan.f64 x) (cos.f64 x))) (/.f64 (sin.f64 x) 1) (*.f64 (/.f64 (tan.f64 x) (cos.f64 x)) (/.f64 (sin.f64 x) 1)))) (fma.f64 (tan.f64 x) (tan.f64 x) 1))
94.0ms
(fma.f64 (neg.f64 (/.f64 (tan.f64 x) (cos.f64 x))) (/.f64 (sin.f64 x) 1) (*.f64 (/.f64 (tan.f64 x) (cos.f64 x)) (/.f64 (sin.f64 x) 1)))
33.0ms
(*.f64 (/.f64 (tan.f64 x) (cos.f64 x)) (/.f64 (sin.f64 x) 1))
33.0ms
(/.f64 (tan.f64 x) (cos.f64 x))

rewrite53.0ms (0.6%)

Algorithm
rewrite-expression-head
Rules
52×add-sqr-sqrt_binary64
46×times-frac_binary64
45×*-un-lft-identity_binary64
35×add-cube-cbrt_binary64
25×add-exp-log_binary64
Counts
4 → 131
Calls

4 calls:

16.0ms
(*.f64 (/.f64 (tan.f64 x) (cos.f64 x)) (/.f64 (sin.f64 x) 1))
8.0ms
(/.f64 (+.f64 (fma.f64 1 1 (neg.f64 (*.f64 (/.f64 (tan.f64 x) (cos.f64 x)) (/.f64 (sin.f64 x) 1)))) (fma.f64 (neg.f64 (/.f64 (tan.f64 x) (cos.f64 x))) (/.f64 (sin.f64 x) 1) (*.f64 (/.f64 (tan.f64 x) (cos.f64 x)) (/.f64 (sin.f64 x) 1)))) (fma.f64 (tan.f64 x) (tan.f64 x) 1))
8.0ms
(/.f64 (tan.f64 x) (cos.f64 x))
1.0ms
(fma.f64 (neg.f64 (/.f64 (tan.f64 x) (cos.f64 x))) (/.f64 (sin.f64 x) 1) (*.f64 (/.f64 (tan.f64 x) (cos.f64 x)) (/.f64 (sin.f64 x) 1)))

simplify303.0ms (3.2%)

Algorithm
egg-herbie
Rules
964×fma-def_binary64
483×associate-/l*_binary64
400×times-frac_binary64
325×associate-*l/_binary64
272×distribute-rgt-in_binary64
Counts
179 → 226
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02395524
15264396
214813399
340953397
449683397
548243397

prune1.2s (12.9%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New4075412
Fresh6612
Picked101
Done000
Total41411425
Error
0b
Counts
425 → 11
Alt Table
StatusErrorProgram
1.6b
(/.f64 (-.f64 1 (log.f64 (exp.f64 (*.f64 (tan.f64 x) (tan.f64 x))))) (fma.f64 (tan.f64 x) (tan.f64 x) 1))
0.4b
(*.f64 (+.f64 1 (tan.f64 x)) (*.f64 (-.f64 1 (tan.f64 x)) (/.f64 1 (fma.f64 (tan.f64 x) (tan.f64 x) 1))))
0.5b
(cbrt.f64 (/.f64 (*.f64 (*.f64 (+.f64 (fma.f64 1 1 (neg.f64 (*.f64 (/.f64 (tan.f64 x) (cos.f64 x)) (/.f64 (sin.f64 x) 1)))) (fma.f64 (neg.f64 (/.f64 (tan.f64 x) (cos.f64 x))) (/.f64 (sin.f64 x) 1) (*.f64 (/.f64 (tan.f64 x) (cos.f64 x)) (/.f64 (sin.f64 x) 1)))) (+.f64 (fma.f64 1 1 (neg.f64 (*.f64 (/.f64 (tan.f64 x) (cos.f64 x)) (/.f64 (sin.f64 x) 1)))) (fma.f64 (neg.f64 (/.f64 (tan.f64 x) (cos.f64 x))) (/.f64 (sin.f64 x) 1) (*.f64 (/.f64 (tan.f64 x) (cos.f64 x)) (/.f64 (sin.f64 x) 1))))) (+.f64 (fma.f64 1 1 (neg.f64 (*.f64 (/.f64 (tan.f64 x) (cos.f64 x)) (/.f64 (sin.f64 x) 1)))) (fma.f64 (neg.f64 (/.f64 (tan.f64 x) (cos.f64 x))) (/.f64 (sin.f64 x) 1) (*.f64 (/.f64 (tan.f64 x) (cos.f64 x)) (/.f64 (sin.f64 x) 1))))) (*.f64 (*.f64 (fma.f64 (tan.f64 x) (tan.f64 x) 1) (fma.f64 (tan.f64 x) (tan.f64 x) 1)) (fma.f64 (tan.f64 x) (tan.f64 x) 1))))
2.6b
(/.f64 (+.f64 (fma.f64 1 1 (neg.f64 (*.f64 (/.f64 (tan.f64 x) (cos.f64 x)) (/.f64 (sin.f64 x) 1)))) (fma.f64 (neg.f64 (log1p.f64 (expm1.f64 (/.f64 (tan.f64 x) (cos.f64 x))))) (/.f64 (sin.f64 x) 1) (*.f64 (/.f64 (tan.f64 x) (cos.f64 x)) (/.f64 (sin.f64 x) 1)))) (fma.f64 (tan.f64 x) (tan.f64 x) 1))
0.7b
(*.f64 (*.f64 (cbrt.f64 (/.f64 (+.f64 (fma.f64 1 1 (neg.f64 (*.f64 (/.f64 (tan.f64 x) (cos.f64 x)) (/.f64 (sin.f64 x) 1)))) (fma.f64 (neg.f64 (/.f64 (tan.f64 x) (cos.f64 x))) (/.f64 (sin.f64 x) 1) (*.f64 (/.f64 (tan.f64 x) (cos.f64 x)) (/.f64 (sin.f64 x) 1)))) (fma.f64 (tan.f64 x) (tan.f64 x) 1))) (cbrt.f64 (/.f64 (+.f64 (fma.f64 1 1 (neg.f64 (*.f64 (/.f64 (tan.f64 x) (cos.f64 x)) (/.f64 (sin.f64 x) 1)))) (fma.f64 (neg.f64 (/.f64 (tan.f64 x) (cos.f64 x))) (/.f64 (sin.f64 x) 1) (*.f64 (/.f64 (tan.f64 x) (cos.f64 x)) (/.f64 (sin.f64 x) 1)))) (fma.f64 (tan.f64 x) (tan.f64 x) 1)))) (cbrt.f64 (/.f64 (+.f64 (fma.f64 1 1 (neg.f64 (*.f64 (/.f64 (tan.f64 x) (cos.f64 x)) (/.f64 (sin.f64 x) 1)))) (fma.f64 (neg.f64 (/.f64 (tan.f64 x) (cos.f64 x))) (/.f64 (sin.f64 x) 1) (*.f64 (/.f64 (tan.f64 x) (cos.f64 x)) (/.f64 (sin.f64 x) 1)))) (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 (tan.f64 x) (tan.f64 x)) (fma.f64 (tan.f64 x) (tan.f64 x) 1)))
0.7b
(/.f64 (*.f64 (cbrt.f64 (+.f64 (fma.f64 1 1 (neg.f64 (*.f64 (/.f64 (tan.f64 x) (cos.f64 x)) (/.f64 (sin.f64 x) 1)))) (fma.f64 (neg.f64 (/.f64 (tan.f64 x) (cos.f64 x))) (/.f64 (sin.f64 x) 1) (*.f64 (/.f64 (tan.f64 x) (cos.f64 x)) (/.f64 (sin.f64 x) 1))))) (cbrt.f64 (+.f64 (fma.f64 1 1 (neg.f64 (*.f64 (/.f64 (tan.f64 x) (cos.f64 x)) (/.f64 (sin.f64 x) 1)))) (fma.f64 (neg.f64 (/.f64 (tan.f64 x) (cos.f64 x))) (/.f64 (sin.f64 x) 1) (*.f64 (/.f64 (tan.f64 x) (cos.f64 x)) (/.f64 (sin.f64 x) 1)))))) (/.f64 (fma.f64 (tan.f64 x) (tan.f64 x) 1) (cbrt.f64 (+.f64 (fma.f64 1 1 (neg.f64 (*.f64 (/.f64 (tan.f64 x) (cos.f64 x)) (/.f64 (sin.f64 x) 1)))) (fma.f64 (neg.f64 (/.f64 (tan.f64 x) (cos.f64 x))) (/.f64 (sin.f64 x) 1) (*.f64 (/.f64 (tan.f64 x) (cos.f64 x)) (/.f64 (sin.f64 x) 1)))))))
0.4b
(*.f64 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))) (exp.f64 (neg.f64 (log1p.f64 (*.f64 (tan.f64 x) (tan.f64 x))))))
0.7b
(*.f64 (*.f64 (cbrt.f64 (-.f64 1 (/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x)))) (cbrt.f64 (-.f64 1 (/.f64 (*.f64 (sin.f64 x) (tan.f64 x)) (cos.f64 x))))) (/.f64 (cbrt.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
(expm1.f64 (log1p.f64 (/.f64 (-.f64 1 (*.f64 (sin.f64 x) (/.f64 (tan.f64 x) (cos.f64 x)))) (fma.f64 (tan.f64 x) (tan.f64 x) 1))))
0.4b
(*.f64 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))) (expm1.f64 (log1p.f64 (/.f64 1 (fma.f64 (tan.f64 x) (tan.f64 x) 1)))))
Compiler

Compiled 21344 to 8519 computations (60.1% saved)

regimes1.4s (14.6%)

Accuracy

Total 0.3b remaining (77.1%)

Threshold costs 0.3b (77.1%)

Counts
287 → 1
Compiler

Compiled 35581 to 19653 computations (44.8% saved)

simplify3.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
01022
11722
22322
32722
42922
52822

end258.0ms (2.7%)

Compiler

Compiled 622 to 306 computations (50.8% saved)

Profiling

Loading profile data...