Details

Time bar (total: 6.9s)

analyze2.0ms (0%)

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

Compiled 15 to 11 computations (26.7% saved)

sample754.0ms (10.9%)

Results
742.0ms8256×body256valid

preprocess151.0ms (2.2%)

Algorithm
egg-herbie
Rules
601×unsub-neg_binary64
586×distribute-rgt-out--_binary64
492×fma-neg_binary64
434×distribute-neg-in_binary64
409×distribute-rgt-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0710
11410
22110
33210
44910
5778
61318
73628
87388
915368
1028958
1143128
1252708
1355808
1458848
1559858
1660638
1763318
1872778
011
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
Outputs
0
Call 2
Inputs
(/.f64 10 (-.f64 1 (*.f64 x x)))
Outputs
(/.f64 10 (-.f64 1 (*.f64 x x)))
(/.f64 10 (fma.f64 x (neg.f64 x) 1))
(/.f64 -10 (fma.f64 x x -1))
Compiler

Compiled 9 to 7 computations (22.2% saved)

simplify145.0ms (2.1%)

Algorithm
egg-herbie
Rules
601×unsub-neg_binary64
586×distribute-rgt-out--_binary64
492×fma-neg_binary64
434×distribute-neg-in_binary64
409×distribute-rgt-in_binary64
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
0710
11410
22110
33210
44910
5778
61318
73628
87388
915368
1028958
1143128
1252708
1355808
1458848
1559858
1660638
1763318
1872778
Stop Event
node limit
Counts
1 → 2
Calls
Call 1
Inputs
(/.f64 10 (-.f64 1 (*.f64 x x)))
Outputs
(/.f64 10 (-.f64 1 (*.f64 x x)))
(/.f64 10 (fma.f64 x (neg.f64 x) 1))
(/.f64 -10 (fma.f64 x x -1))

eval1.0ms (0%)

Compiler

Compiled 14 to 10 computations (28.6% saved)

prune1.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
Click to see full alt table
StatusErrorProgram
0.3b
(/.f64 -10 (fma.f64 x x -1))
7.9b
(/.f64 10 (-.f64 1 (*.f64 x x)))
Compiler

Compiled 15 to 11 computations (26.7% saved)

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.3b
(/.f64 -10 (fma.f64 x x -1))
Compiler

Compiled 14 to 9 computations (35.7% saved)

series2.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
1.0ms
x
@inf
(/.f64 -10 (fma.f64 x x -1))
1.0ms
x
@0
(/.f64 -10 (fma.f64 x x -1))
1.0ms
x
@-inf
(/.f64 -10 (fma.f64 x x -1))

rewrite42.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
549×pow1_binary64
512×add-log-exp_binary64
512×log1p-expm1-u_binary64
512×expm1-log1p-u_binary64
503×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
068
11228
213708
Stop Event
node limit
Counts
1 → 20
Calls
Call 1
Inputs
(/.f64 -10 (fma.f64 x x -1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (/.f64 -10 (fma.f64 x x -1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -10 (/.f64 1 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -10 (fma.f64 x x -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 -10 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2) (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 -10 (fma.f64 x x -1))) (sqrt.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 10 (/.f64 1 (neg.f64 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (fma.f64 x x -1)) -10)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 -10 (fma.f64 x x -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (/.f64 100 (pow.f64 (fma.f64 x x -1) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1))))))))

simplify48.0ms (0.7%)

Algorithm
egg-herbie
Rules
677×fma-def_binary64
437×distribute-rgt-out_binary64
413×unswap-sqr_binary64
354×distribute-neg-frac_binary64
255×associate-/r*_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
038226
1112210
2338206
31162203
44868200
Stop Event
node limit
Counts
32 → 35
Calls
Call 1
Inputs
10
(+.f64 (*.f64 10 (pow.f64 x 2)) 10)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 10 (*.f64 10 (pow.f64 x 4))))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 10 (pow.f64 x 6)) (+.f64 10 (*.f64 10 (pow.f64 x 4)))))
(/.f64 -10 (pow.f64 x 2))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))))
(/.f64 -10 (pow.f64 x 2))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))))
Outputs
10
(+.f64 (*.f64 10 (pow.f64 x 2)) 10)
(fma.f64 10 (*.f64 x x) 10)
(*.f64 10 (fma.f64 x x 1))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 10 (*.f64 10 (pow.f64 x 4))))
(+.f64 (fma.f64 10 (*.f64 x x) 10) (*.f64 10 (pow.f64 x 4)))
(fma.f64 10 (*.f64 x x) (fma.f64 10 (pow.f64 x 4) 10))
(*.f64 10 (+.f64 (pow.f64 x 4) (fma.f64 x x 1)))
(fma.f64 10 (fma.f64 x x (pow.f64 x 4)) 10)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 10 (pow.f64 x 6)) (+.f64 10 (*.f64 10 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 10 (pow.f64 x 6) (+.f64 10 (*.f64 10 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 10 (pow.f64 x 6) (fma.f64 10 (pow.f64 x 4) 10)))
(fma.f64 10 (fma.f64 x x (pow.f64 x 6)) (fma.f64 10 (pow.f64 x 4) 10))
(fma.f64 10 (+.f64 (pow.f64 x 4) (fma.f64 x x (pow.f64 x 6))) 10)
(*.f64 (fma.f64 x x 1) (fma.f64 10 (pow.f64 x 4) 10))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (*.f64 x x))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (/.f64 10 (*.f64 x x))))
(-.f64 (/.f64 -10 (*.f64 x x)) (/.f64 10 (pow.f64 x 4)))
(+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x)))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6)))))
(-.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))))
(+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x))) (/.f64 -10 (pow.f64 x 6)))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))) (/.f64 10 (pow.f64 x 8)))))
(-.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (+.f64 (/.f64 10 (pow.f64 x 6)) (/.f64 10 (pow.f64 x 8)))))
(+.f64 (+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x))) (/.f64 -10 (pow.f64 x 6))) (/.f64 -10 (pow.f64 x 8)))
(+.f64 (/.f64 -10 (*.f64 x x)) (+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (pow.f64 x 8))) (/.f64 -10 (pow.f64 x 6))))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (*.f64 x x))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (/.f64 10 (*.f64 x x))))
(-.f64 (/.f64 -10 (*.f64 x x)) (/.f64 10 (pow.f64 x 4)))
(+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x)))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6)))))
(-.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))))
(+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x))) (/.f64 -10 (pow.f64 x 6)))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))) (/.f64 10 (pow.f64 x 8)))))
(-.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (+.f64 (/.f64 10 (pow.f64 x 6)) (/.f64 10 (pow.f64 x 8)))))
(+.f64 (+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x))) (/.f64 -10 (pow.f64 x 6))) (/.f64 -10 (pow.f64 x 8)))
(+.f64 (/.f64 -10 (*.f64 x x)) (+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (pow.f64 x 8))) (/.f64 -10 (pow.f64 x 6))))

localize7.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.3b
(/.f64 10 (-.f64 1 (*.f64 x x)))
7.9b
(-.f64 1 (*.f64 x x))
Compiler

Compiled 19 to 10 computations (47.4% saved)

series2.0ms (0%)

Counts
2 → 24
Calls

6 calls:

TimeVariablePointExpression
1.0ms
x
@inf
(-.f64 1 (*.f64 x x))
0.0ms
x
@0
(-.f64 1 (*.f64 x x))
0.0ms
x
@inf
(/.f64 10 (-.f64 1 (*.f64 x x)))
0.0ms
x
@0
(/.f64 10 (-.f64 1 (*.f64 x x)))
0.0ms
x
@-inf
(-.f64 1 (*.f64 x x))

rewrite58.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
736×pow1_binary64
694×add-log-exp_binary64
693×log1p-expm1-u_binary64
693×expm1-log1p-u_binary64
681×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0717
115417
2192217
Stop Event
node limit
Counts
2 → 50
Calls
Call 1
Inputs
(-.f64 1 (*.f64 x x))
(/.f64 10 (-.f64 1 (*.f64 x x)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (*.f64 x (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (*.f64 (*.f64 x (neg.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (neg.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 1 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1 (*.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 1 (*.f64 x x))) (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 x x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 x x))) 2) (cbrt.f64 (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 1 (*.f64 x x))) (sqrt.f64 (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1 (pow.f64 x 6)) (/.f64 1 (+.f64 1 (+.f64 (*.f64 x x) (pow.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1 (pow.f64 x 4)) (/.f64 1 (+.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 1 (+.f64 (*.f64 x x) (pow.f64 x 4))) (-.f64 1 (pow.f64 x 6))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 1 (*.f64 x x)) (-.f64 1 (pow.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (pow.f64 x 6)) (+.f64 1 (+.f64 (*.f64 x x) (pow.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (pow.f64 x 4)) (+.f64 1 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 1 (pow.f64 x 6))) (neg.f64 (+.f64 1 (+.f64 (*.f64 x x) (pow.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 1 (pow.f64 x 4))) (neg.f64 (+.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1 (pow.f64 (*.f64 x (neg.f64 x)) 3)) (+.f64 1 (-.f64 (*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x))) (*.f64 x (neg.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x)))) (-.f64 1 (*.f64 x (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 1 (*.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 1 (*.f64 x x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (-.f64 1 (*.f64 x x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (-.f64 1 (*.f64 x x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (-.f64 1 (*.f64 x x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 1 (*.f64 x x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log1p.f64 (*.f64 x (neg.f64 x))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (/.f64 10 (-.f64 1 (*.f64 x x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 10 (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 10 (/.f64 1 (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 10 (-.f64 1 (*.f64 x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 10 (-.f64 1 (*.f64 x x)))) (pow.f64 (cbrt.f64 (/.f64 10 (-.f64 1 (*.f64 x x)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 10 (-.f64 1 (*.f64 x x)))) 2) (cbrt.f64 (/.f64 10 (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 10 (-.f64 1 (*.f64 x x)))) (sqrt.f64 (/.f64 10 (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -10 (/.f64 1 (neg.f64 (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (-.f64 1 (*.f64 x x))) 10)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 10 (-.f64 1 (pow.f64 x 6))) (+.f64 1 (+.f64 (*.f64 x x) (pow.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 10 (-.f64 1 (pow.f64 x 4))) (+.f64 1 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 10 (-.f64 1 (*.f64 x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 10 (-.f64 1 (*.f64 x x))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 10 (-.f64 1 (*.f64 x x)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 10 (-.f64 1 (*.f64 x x)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 1/10 (/.f64 (*.f64 x x) 10)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (/.f64 100 (pow.f64 (-.f64 1 (*.f64 x x)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 10 (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 10 (-.f64 1 (*.f64 x x))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 10 (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 10 (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 10 (-.f64 1 (*.f64 x x)))))))))

simplify50.0ms (0.7%)

Algorithm
egg-herbie
Rules
681×fma-def_binary64
437×distribute-rgt-out_binary64
413×unswap-sqr_binary64
361×distribute-neg-frac_binary64
258×associate-*l*_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
041320
1117286
2354282
31199279
44981276
Stop Event
node limit
Counts
74 → 70
Calls
Call 1
Inputs
1
(+.f64 1 (*.f64 -1 (pow.f64 x 2)))
(+.f64 1 (*.f64 -1 (pow.f64 x 2)))
(+.f64 1 (*.f64 -1 (pow.f64 x 2)))
(*.f64 -1 (pow.f64 x 2))
(+.f64 1 (*.f64 -1 (pow.f64 x 2)))
(+.f64 1 (*.f64 -1 (pow.f64 x 2)))
(+.f64 1 (*.f64 -1 (pow.f64 x 2)))
(*.f64 -1 (pow.f64 x 2))
(+.f64 1 (*.f64 -1 (pow.f64 x 2)))
(+.f64 1 (*.f64 -1 (pow.f64 x 2)))
(+.f64 1 (*.f64 -1 (pow.f64 x 2)))
10
(+.f64 (*.f64 10 (pow.f64 x 2)) 10)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 10 (*.f64 10 (pow.f64 x 4))))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 10 (pow.f64 x 6)) (+.f64 10 (*.f64 10 (pow.f64 x 4)))))
(/.f64 -10 (pow.f64 x 2))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))))
(/.f64 -10 (pow.f64 x 2))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))))
Outputs
1
(+.f64 1 (*.f64 -1 (pow.f64 x 2)))
(+.f64 1 (neg.f64 (*.f64 x x)))
(-.f64 1 (*.f64 x x))
(+.f64 1 (*.f64 -1 (pow.f64 x 2)))
(+.f64 1 (neg.f64 (*.f64 x x)))
(-.f64 1 (*.f64 x x))
(+.f64 1 (*.f64 -1 (pow.f64 x 2)))
(+.f64 1 (neg.f64 (*.f64 x x)))
(-.f64 1 (*.f64 x x))
(*.f64 -1 (pow.f64 x 2))
(neg.f64 (*.f64 x x))
(*.f64 x (neg.f64 x))
(+.f64 1 (*.f64 -1 (pow.f64 x 2)))
(+.f64 1 (neg.f64 (*.f64 x x)))
(-.f64 1 (*.f64 x x))
(+.f64 1 (*.f64 -1 (pow.f64 x 2)))
(+.f64 1 (neg.f64 (*.f64 x x)))
(-.f64 1 (*.f64 x x))
(+.f64 1 (*.f64 -1 (pow.f64 x 2)))
(+.f64 1 (neg.f64 (*.f64 x x)))
(-.f64 1 (*.f64 x x))
(*.f64 -1 (pow.f64 x 2))
(neg.f64 (*.f64 x x))
(*.f64 x (neg.f64 x))
(+.f64 1 (*.f64 -1 (pow.f64 x 2)))
(+.f64 1 (neg.f64 (*.f64 x x)))
(-.f64 1 (*.f64 x x))
(+.f64 1 (*.f64 -1 (pow.f64 x 2)))
(+.f64 1 (neg.f64 (*.f64 x x)))
(-.f64 1 (*.f64 x x))
(+.f64 1 (*.f64 -1 (pow.f64 x 2)))
(+.f64 1 (neg.f64 (*.f64 x x)))
(-.f64 1 (*.f64 x x))
10
(+.f64 (*.f64 10 (pow.f64 x 2)) 10)
(fma.f64 10 (*.f64 x x) 10)
(fma.f64 (*.f64 x x) 10 10)
(*.f64 10 (fma.f64 x x 1))
(fma.f64 x (*.f64 x 10) 10)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 10 (*.f64 10 (pow.f64 x 4))))
(fma.f64 10 (*.f64 x x) (+.f64 10 (*.f64 10 (pow.f64 x 4))))
(fma.f64 (*.f64 x x) 10 (fma.f64 10 (pow.f64 x 4) 10))
(*.f64 10 (+.f64 (fma.f64 x x 1) (pow.f64 x 4)))
(fma.f64 10 (fma.f64 x x (pow.f64 x 4)) 10)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 10 (pow.f64 x 6)) (+.f64 10 (*.f64 10 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 10 (pow.f64 x 6) (+.f64 10 (*.f64 10 (pow.f64 x 4)))))
(fma.f64 (*.f64 x x) 10 (fma.f64 10 (pow.f64 x 6) (fma.f64 10 (pow.f64 x 4) 10)))
(fma.f64 10 (fma.f64 x x (pow.f64 x 6)) (fma.f64 10 (pow.f64 x 4) 10))
(fma.f64 10 (+.f64 (pow.f64 x 4) (fma.f64 x x (pow.f64 x 6))) 10)
(*.f64 (fma.f64 x x 1) (fma.f64 10 (pow.f64 x 4) 10))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (*.f64 x x))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (/.f64 10 (*.f64 x x))))
(+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x)))
(-.f64 (/.f64 -10 (*.f64 x x)) (/.f64 10 (pow.f64 x 4)))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6)))))
(-.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))))
(+.f64 (-.f64 (/.f64 -10 (*.f64 x x)) (/.f64 10 (pow.f64 x 4))) (/.f64 -10 (pow.f64 x 6)))
(-.f64 (/.f64 -10 (*.f64 x x)) (-.f64 (/.f64 10 (pow.f64 x 6)) (/.f64 -10 (pow.f64 x 4))))
(+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x))) (/.f64 -10 (pow.f64 x 6)))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))) (/.f64 10 (pow.f64 x 8)))))
(-.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (+.f64 (/.f64 10 (pow.f64 x 6)) (/.f64 10 (pow.f64 x 8)))))
(+.f64 (+.f64 (-.f64 (/.f64 -10 (*.f64 x x)) (/.f64 10 (pow.f64 x 4))) (/.f64 -10 (pow.f64 x 6))) (/.f64 -10 (pow.f64 x 8)))
(+.f64 (-.f64 (/.f64 -10 (*.f64 x x)) (-.f64 (/.f64 10 (pow.f64 x 6)) (/.f64 -10 (pow.f64 x 4)))) (/.f64 -10 (pow.f64 x 8)))
(+.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 -10 (*.f64 x x)) (+.f64 (/.f64 -10 (pow.f64 x 8)) (/.f64 -10 (pow.f64 x 6)))))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (*.f64 x x))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (/.f64 10 (*.f64 x x))))
(+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x)))
(-.f64 (/.f64 -10 (*.f64 x x)) (/.f64 10 (pow.f64 x 4)))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6)))))
(-.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))))
(+.f64 (-.f64 (/.f64 -10 (*.f64 x x)) (/.f64 10 (pow.f64 x 4))) (/.f64 -10 (pow.f64 x 6)))
(-.f64 (/.f64 -10 (*.f64 x x)) (-.f64 (/.f64 10 (pow.f64 x 6)) (/.f64 -10 (pow.f64 x 4))))
(+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x))) (/.f64 -10 (pow.f64 x 6)))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))) (/.f64 10 (pow.f64 x 8)))))
(-.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (+.f64 (/.f64 10 (pow.f64 x 6)) (/.f64 10 (pow.f64 x 8)))))
(+.f64 (+.f64 (-.f64 (/.f64 -10 (*.f64 x x)) (/.f64 10 (pow.f64 x 4))) (/.f64 -10 (pow.f64 x 6))) (/.f64 -10 (pow.f64 x 8)))
(+.f64 (-.f64 (/.f64 -10 (*.f64 x x)) (-.f64 (/.f64 10 (pow.f64 x 6)) (/.f64 -10 (pow.f64 x 4)))) (/.f64 -10 (pow.f64 x 8)))
(+.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 -10 (*.f64 x x)) (+.f64 (/.f64 -10 (pow.f64 x 8)) (/.f64 -10 (pow.f64 x 6)))))

eval31.0ms (0.4%)

Compiler

Compiled 1239 to 893 computations (27.9% saved)

prune25.0ms (0.4%)

Pruning

16 alts after pruning (14 fresh and 2 done)

PrunedKeptTotal
New9114105
Fresh000
Picked011
Done011
Total9116107
Error
0.0b
Counts
107 → 16
Alt Table
Click to see full alt table
StatusErrorProgram
0.3b
(/.f64 -10 (fma.f64 x x -1))
0.5b
(pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -1)
22.0b
(pow.f64 (sqrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2)
7.9b
(*.f64 (/.f64 1 (-.f64 1 (*.f64 x x))) 10)
7.9b
(/.f64 10 (/.f64 (-.f64 1 (*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x)))) (-.f64 1 (*.f64 x (neg.f64 x)))))
60.4b
(/.f64 -10 (*.f64 x x))
22.7b
(expm1.f64 (log1p.f64 (/.f64 -10 (fma.f64 x x -1))))
57.9b
10
6.4b
(/.f64 10 (*.f64 (-.f64 1 (pow.f64 x 6)) (/.f64 1 (+.f64 1 (+.f64 (*.f64 x x) (pow.f64 x 4))))))
0.6b
(cbrt.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3))
21.4b
(sqrt.f64 (/.f64 100 (pow.f64 (fma.f64 x x -1) 2)))
1.4b
(pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 3)
0.4b
(*.f64 (/.f64 1 (fma.f64 x x -1)) -10)
7.9b
(/.f64 10 (-.f64 1 (*.f64 x x)))
1.4b
(*.f64 (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2) (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))))
22.6b
(exp.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1))))
Compiler

Compiled 319 to 239 computations (25.1% saved)

localize10.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.2b
(/.f64 1 (fma.f64 x x -1))
0.3b
(*.f64 (/.f64 1 (fma.f64 x x -1)) -10)
Compiler

Compiled 23 to 16 computations (30.4% saved)

series2.0ms (0%)

Counts
2 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
x
@-inf
(*.f64 (/.f64 1 (fma.f64 x x -1)) -10)
0.0ms
x
@inf
(/.f64 1 (fma.f64 x x -1))
0.0ms
x
@0
(*.f64 (/.f64 1 (fma.f64 x x -1)) -10)
0.0ms
x
@0
(/.f64 1 (fma.f64 x x -1))
0.0ms
x
@-inf
(/.f64 1 (fma.f64 x x -1))

rewrite48.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
637×pow1_binary64
591×add-log-exp_binary64
590×log1p-expm1-u_binary64
590×expm1-log1p-u_binary64
580×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0816
115416
2164116
Stop Event
node limit
Counts
2 → 36
Calls
Call 1
Inputs
(*.f64 (/.f64 1 (fma.f64 x x -1)) -10)
(/.f64 1 (fma.f64 x x -1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (/.f64 -10 (fma.f64 x x -1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 x x -1) -10))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -10 (fma.f64 x x -1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 10 (neg.f64 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 -10 (pow.f64 (cbrt.f64 (fma.f64 x x -1)) 2)) (cbrt.f64 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 -10 (sqrt.f64 (fma.f64 x x -1))) (sqrt.f64 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 -10 (fma.f64 x x -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (/.f64 100 (pow.f64 (fma.f64 x x -1) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (/.f64 1 (fma.f64 x x -1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 1 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (/.f64 1 (neg.f64 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (fma.f64 x x -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 (fma.f64 x x -1))) (cbrt.f64 (pow.f64 (fma.f64 x x -1) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (fma.f64 x x -1) -2)) (/.f64 1 (cbrt.f64 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (fma.f64 x x -1) -1/2) (pow.f64 (fma.f64 x x -1) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (fma.f64 x x -1)) 2) -1) (pow.f64 (cbrt.f64 (fma.f64 x x -1)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (fma.f64 x x -1)) -1) (pow.f64 (sqrt.f64 (fma.f64 x x -1)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 x x -1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1 (fma.f64 x x -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 1 (fma.f64 x x -1)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1 (cbrt.f64 (fma.f64 x x -1))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 x x -1) -1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 x x -1) -2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 1 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 1 (fma.f64 x x -1)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 1 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 1 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (neg.f64 (log.f64 (fma.f64 x x -1))))))))

simplify56.0ms (0.8%)

Algorithm
egg-herbie
Rules
546×fma-neg_binary64
413×unswap-sqr_binary64
394×sub-neg_binary64
356×distribute-neg-frac_binary64
331×associate-*l*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
052438
1156414
2468406
31574406
46068406
Stop Event
node limit
Counts
60 → 66
Calls
Call 1
Inputs
10
(+.f64 (*.f64 10 (pow.f64 x 2)) 10)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 10 (*.f64 10 (pow.f64 x 4))))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 10 (pow.f64 x 6)) (+.f64 10 (*.f64 10 (pow.f64 x 4)))))
(/.f64 -10 (pow.f64 x 2))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))))
(/.f64 -10 (pow.f64 x 2))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))))
-1
(-.f64 (*.f64 -1 (pow.f64 x 2)) 1)
(-.f64 (+.f64 (*.f64 -1 (pow.f64 x 2)) (*.f64 -1 (pow.f64 x 4))) 1)
(-.f64 (+.f64 (*.f64 -1 (pow.f64 x 6)) (+.f64 (*.f64 -1 (pow.f64 x 2)) (*.f64 -1 (pow.f64 x 4)))) 1)
(/.f64 1 (pow.f64 x 2))
(+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2)))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 (pow.f64 x 6))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (pow.f64 x 8)) (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 (pow.f64 x 6)))))
(/.f64 1 (pow.f64 x 2))
(+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2)))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 (pow.f64 x 6))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (pow.f64 x 8)) (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 (pow.f64 x 6)))))
Outputs
10
(+.f64 (*.f64 10 (pow.f64 x 2)) 10)
(fma.f64 10 (*.f64 x x) 10)
(fma.f64 x (*.f64 10 x) 10)
(*.f64 10 (fma.f64 x x 1))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 10 (*.f64 10 (pow.f64 x 4))))
(+.f64 (fma.f64 10 (*.f64 x x) 10) (*.f64 10 (pow.f64 x 4)))
(fma.f64 10 (*.f64 x x) (fma.f64 10 (pow.f64 x 4) 10))
(+.f64 10 (*.f64 10 (fma.f64 x x (pow.f64 x 4))))
(*.f64 10 (+.f64 (pow.f64 x 4) (fma.f64 x x 1)))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 10 (pow.f64 x 6)) (+.f64 10 (*.f64 10 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 10 (pow.f64 x 6) (+.f64 10 (*.f64 10 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 10 (pow.f64 x 6) (fma.f64 10 (pow.f64 x 4) 10)))
(fma.f64 10 (fma.f64 x x (pow.f64 x 6)) (fma.f64 10 (pow.f64 x 4) 10))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (*.f64 x x))
(/.f64 (/.f64 -10 x) x)
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (/.f64 10 (*.f64 x x))))
(-.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 10 (*.f64 x x)))
(+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x)))
(+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 (/.f64 -10 x) x))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6)))))
(-.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))))
(+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x))) (/.f64 -10 (pow.f64 x 6)))
(+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 (/.f64 -10 x) x)) (/.f64 -10 (pow.f64 x 6)))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))) (/.f64 10 (pow.f64 x 8)))))
(-.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (+.f64 (/.f64 10 (pow.f64 x 6)) (/.f64 10 (pow.f64 x 8)))))
(+.f64 (+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x))) (/.f64 -10 (pow.f64 x 6))) (/.f64 -10 (pow.f64 x 8)))
(+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 (/.f64 -10 x) x)) (+.f64 (/.f64 -10 (pow.f64 x 8)) (/.f64 -10 (pow.f64 x 6))))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (*.f64 x x))
(/.f64 (/.f64 -10 x) x)
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (/.f64 10 (*.f64 x x))))
(-.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 10 (*.f64 x x)))
(+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x)))
(+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 (/.f64 -10 x) x))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6)))))
(-.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))))
(+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x))) (/.f64 -10 (pow.f64 x 6)))
(+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 (/.f64 -10 x) x)) (/.f64 -10 (pow.f64 x 6)))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))) (/.f64 10 (pow.f64 x 8)))))
(-.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (+.f64 (/.f64 10 (pow.f64 x 6)) (/.f64 10 (pow.f64 x 8)))))
(+.f64 (+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x))) (/.f64 -10 (pow.f64 x 6))) (/.f64 -10 (pow.f64 x 8)))
(+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 (/.f64 -10 x) x)) (+.f64 (/.f64 -10 (pow.f64 x 8)) (/.f64 -10 (pow.f64 x 6))))
-1
(-.f64 (*.f64 -1 (pow.f64 x 2)) 1)
(fma.f64 -1 (*.f64 x x) -1)
(fma.f64 (*.f64 x x) -1 -1)
(-.f64 -1 (*.f64 x x))
(-.f64 (+.f64 (*.f64 -1 (pow.f64 x 2)) (*.f64 -1 (pow.f64 x 4))) 1)
(+.f64 (*.f64 -1 (+.f64 (*.f64 x x) (pow.f64 x 4))) -1)
(fma.f64 -1 (fma.f64 x x (pow.f64 x 4)) -1)
(-.f64 -1 (fma.f64 x x (pow.f64 x 4)))
(-.f64 (+.f64 (*.f64 -1 (pow.f64 x 6)) (+.f64 (*.f64 -1 (pow.f64 x 2)) (*.f64 -1 (pow.f64 x 4)))) 1)
(+.f64 (fma.f64 -1 (pow.f64 x 6) (*.f64 -1 (+.f64 (*.f64 x x) (pow.f64 x 4)))) -1)
(+.f64 -1 (-.f64 (neg.f64 (fma.f64 x x (pow.f64 x 4))) (pow.f64 x 6)))
(-.f64 (-.f64 -1 (fma.f64 x x (pow.f64 x 4))) (pow.f64 x 6))
(-.f64 -1 (+.f64 (pow.f64 x 4) (fma.f64 x x (pow.f64 x 6))))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (*.f64 x x))
(/.f64 (/.f64 1 x) x)
(+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2)))
(+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (*.f64 x x)))
(+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 (/.f64 1 x) x))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 (pow.f64 x 6))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 6))))
(+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 6))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 (/.f64 1 x) x) (/.f64 1 (pow.f64 x 6))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (pow.f64 x 8)) (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 (pow.f64 x 6)))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (pow.f64 x 8)) (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 6)))))
(+.f64 (/.f64 1 (pow.f64 x 8)) (+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 6)))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 1 (pow.f64 x 6)) (/.f64 1 (pow.f64 x 8)))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (pow.f64 x 8)) (+.f64 (/.f64 (/.f64 1 x) x) (/.f64 1 (pow.f64 x 6)))))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (*.f64 x x))
(/.f64 (/.f64 1 x) x)
(+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2)))
(+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (*.f64 x x)))
(+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 (/.f64 1 x) x))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 (pow.f64 x 6))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 6))))
(+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 6))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 (/.f64 1 x) x) (/.f64 1 (pow.f64 x 6))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (pow.f64 x 8)) (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 (pow.f64 x 6)))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (pow.f64 x 8)) (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 6)))))
(+.f64 (/.f64 1 (pow.f64 x 8)) (+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 6)))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 1 (pow.f64 x 6)) (/.f64 1 (pow.f64 x 8)))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (pow.f64 x 8)) (+.f64 (/.f64 (/.f64 1 x) x) (/.f64 1 (pow.f64 x 6)))))

localize4.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.2b
(/.f64 -10 (*.f64 x x))
Compiler

Compiled 11 to 5 computations (54.5% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
1.0ms
x
@0
(/.f64 -10 (*.f64 x x))
0.0ms
x
@inf
(/.f64 -10 (*.f64 x x))
0.0ms
x
@-inf
(/.f64 -10 (*.f64 x x))

rewrite43.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
498×pow1_binary64
491×add-sqr-sqrt_binary64
470×add-log-exp_binary64
470×log1p-expm1-u_binary64
470×expm1-log1p-u_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
057
11097
213247
Stop Event
node limit
Counts
1 → 21
Calls
Call 1
Inputs
(/.f64 -10 (*.f64 x x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 -10 (pow.f64 x -2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -10 (pow.f64 x -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 -10 (pow.f64 x -2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 -10 (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 -10 (pow.f64 x -2))) (cbrt.f64 (/.f64 100 (pow.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 100 (pow.f64 x 4))) (cbrt.f64 (*.f64 -10 (pow.f64 x -2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 -10) x) (/.f64 (sqrt.f64 -10) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 10 (/.f64 1 (*.f64 x (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 x -2) -10)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -10 x) (/.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 -10 (pow.f64 x -2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 -10 (pow.f64 x -2)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 -10 (pow.f64 x -2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 -10) x) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 x x) -1/10) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (/.f64 100 (pow.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 -10) (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 -10 (pow.f64 x -2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 -10 (pow.f64 x -2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 -10 (pow.f64 x -2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 -10 (pow.f64 x -2))))))))

simplify159.0ms (2.3%)

Algorithm
egg-herbie
Rules
1140×associate-/r*_binary64
1082×sqr-pow_binary64
560×cube-prod_binary64
554×fabs-mul_binary64
523×pow-sqr_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0684
11184
22084
33584
47584
522484
683484
7204384
8220984
9239384
10260184
11289884
12329184
13377284
14434084
15502884
16586384
17625584
18654384
19681984
20689184
21692784
Stop Event
node limit
Counts
33 → 23
Calls
Call 1
Inputs
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (pow.f64 x 2))
Outputs
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (*.f64 x x))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (*.f64 x x))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (*.f64 x x))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (*.f64 x x))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (*.f64 x x))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (*.f64 x x))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (*.f64 x x))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (*.f64 x x))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (*.f64 x x))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (*.f64 x x))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (*.f64 x x))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (*.f64 x x))

localize10.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.3b
(pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -1)
0.4b
(*.f64 (fma.f64 x x -1) -1/10)
Compiler

Compiled 22 to 15 computations (31.8% saved)

series3.0ms (0%)

Counts
2 → 24
Calls

6 calls:

TimeVariablePointExpression
1.0ms
x
@0
(pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -1)
1.0ms
x
@0
(*.f64 (fma.f64 x x -1) -1/10)
1.0ms
x
@inf
(*.f64 (fma.f64 x x -1) -1/10)
1.0ms
x
@-inf
(*.f64 (fma.f64 x x -1) -1/10)
0.0ms
x
@inf
(pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -1)

rewrite54.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
637×pow1_binary64
598×add-log-exp_binary64
598×log1p-expm1-u_binary64
598×expm1-log1p-u_binary64
585×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0719
114616
2162816
Stop Event
node limit
Counts
2 → 36
Calls
Call 1
Inputs
(*.f64 (fma.f64 x x -1) -1/10)
(pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -1)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 x x) -1/10) 1/10)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 -1/10 (*.f64 x x)) 1/10)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (fma.f64 x x -1) -1/10)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (fma.f64 x x -1) -1/10) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 1/100 (pow.f64 (fma.f64 x x -1) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 -1/10) (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (fma.f64 x x -1) -1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (fma.f64 x x -1) -1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (fma.f64 x x -1) -1/10)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (/.f64 -10 (fma.f64 x x -1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -10 (fma.f64 x x -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 -10 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) (cbrt.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -2)) (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (fma.f64 x x -1)) -10)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -10 (/.f64 1 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 -10 (fma.f64 x x -1))) (sqrt.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) 2) -1) (pow.f64 (cbrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) -1) (pow.f64 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -1 (neg.f64 (*.f64 (fma.f64 x x -1) -1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (*.f64 (fma.f64 x x -1) -1/10))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (*.f64 (fma.f64 x x -1) -1/10) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 1 (fma.f64 x x -1)) -1/10)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -10 (fma.f64 x x -1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (/.f64 -10 (fma.f64 x x -1))) (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 1 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) 2)) (cbrt.f64 (*.f64 (fma.f64 x x -1) -1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1))))))))

simplify53.0ms (0.8%)

Algorithm
egg-herbie
Rules
679×fma-def_binary64
437×distribute-rgt-out_binary64
413×unswap-sqr_binary64
358×distribute-neg-frac_binary64
255×associate-*l*_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
042331
1118297
2350293
31185290
44932287
Stop Event
node limit
Counts
60 → 56
Calls
Call 1
Inputs
1/10
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(*.f64 -1/10 (pow.f64 x 2))
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(*.f64 -1/10 (pow.f64 x 2))
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
10
(+.f64 (*.f64 10 (pow.f64 x 2)) 10)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 10 (*.f64 10 (pow.f64 x 4))))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 10 (pow.f64 x 6)) (+.f64 10 (*.f64 10 (pow.f64 x 4)))))
(/.f64 -10 (pow.f64 x 2))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))))
(/.f64 -10 (pow.f64 x 2))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))))
Outputs
1/10
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (*.f64 x x)))
(fma.f64 -1/10 (*.f64 x x) 1/10)
(fma.f64 x (*.f64 -1/10 x) 1/10)
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (*.f64 x x)))
(fma.f64 -1/10 (*.f64 x x) 1/10)
(fma.f64 x (*.f64 -1/10 x) 1/10)
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (*.f64 x x)))
(fma.f64 -1/10 (*.f64 x x) 1/10)
(fma.f64 x (*.f64 -1/10 x) 1/10)
(*.f64 -1/10 (pow.f64 x 2))
(*.f64 -1/10 (*.f64 x x))
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (*.f64 x x)))
(fma.f64 -1/10 (*.f64 x x) 1/10)
(fma.f64 x (*.f64 -1/10 x) 1/10)
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (*.f64 x x)))
(fma.f64 -1/10 (*.f64 x x) 1/10)
(fma.f64 x (*.f64 -1/10 x) 1/10)
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (*.f64 x x)))
(fma.f64 -1/10 (*.f64 x x) 1/10)
(fma.f64 x (*.f64 -1/10 x) 1/10)
(*.f64 -1/10 (pow.f64 x 2))
(*.f64 -1/10 (*.f64 x x))
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (*.f64 x x)))
(fma.f64 -1/10 (*.f64 x x) 1/10)
(fma.f64 x (*.f64 -1/10 x) 1/10)
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (*.f64 x x)))
(fma.f64 -1/10 (*.f64 x x) 1/10)
(fma.f64 x (*.f64 -1/10 x) 1/10)
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (*.f64 x x)))
(fma.f64 -1/10 (*.f64 x x) 1/10)
(fma.f64 x (*.f64 -1/10 x) 1/10)
10
(+.f64 (*.f64 10 (pow.f64 x 2)) 10)
(fma.f64 10 (*.f64 x x) 10)
(fma.f64 (*.f64 x x) 10 10)
(*.f64 10 (fma.f64 x x 1))
(fma.f64 x (*.f64 x 10) 10)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 10 (*.f64 10 (pow.f64 x 4))))
(fma.f64 10 (*.f64 x x) (+.f64 10 (*.f64 10 (pow.f64 x 4))))
(fma.f64 (*.f64 x x) 10 (fma.f64 10 (pow.f64 x 4) 10))
(*.f64 10 (+.f64 (pow.f64 x 4) (fma.f64 x x 1)))
(fma.f64 10 (fma.f64 x x (pow.f64 x 4)) 10)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 10 (pow.f64 x 6)) (+.f64 10 (*.f64 10 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 10 (pow.f64 x 6) (+.f64 10 (*.f64 10 (pow.f64 x 4)))))
(fma.f64 (*.f64 x x) 10 (fma.f64 10 (pow.f64 x 6) (fma.f64 10 (pow.f64 x 4) 10)))
(fma.f64 10 (fma.f64 x x (pow.f64 x 6)) (fma.f64 10 (pow.f64 x 4) 10))
(fma.f64 10 (+.f64 (pow.f64 x 4) (fma.f64 x x (pow.f64 x 6))) 10)
(*.f64 (fma.f64 x x 1) (fma.f64 10 (pow.f64 x 4) 10))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (*.f64 x x))
(/.f64 (/.f64 -10 x) x)
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (/.f64 10 (*.f64 x x))))
(+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x)))
(+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 (/.f64 -10 x) x))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6)))))
(-.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))))
(+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x))) (/.f64 -10 (pow.f64 x 6)))
(+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 (/.f64 -10 x) x)) (/.f64 -10 (pow.f64 x 6)))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))) (/.f64 10 (pow.f64 x 8)))))
(-.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (+.f64 (/.f64 10 (pow.f64 x 6)) (/.f64 10 (pow.f64 x 8)))))
(+.f64 (+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x))) (/.f64 -10 (pow.f64 x 6))) (/.f64 -10 (pow.f64 x 8)))
(+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 (/.f64 -10 x) x)) (+.f64 (/.f64 -10 (pow.f64 x 6)) (/.f64 -10 (pow.f64 x 8))))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (*.f64 x x))
(/.f64 (/.f64 -10 x) x)
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (/.f64 10 (*.f64 x x))))
(+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x)))
(+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 (/.f64 -10 x) x))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6)))))
(-.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))))
(+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x))) (/.f64 -10 (pow.f64 x 6)))
(+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 (/.f64 -10 x) x)) (/.f64 -10 (pow.f64 x 6)))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))) (/.f64 10 (pow.f64 x 8)))))
(-.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (+.f64 (/.f64 10 (pow.f64 x 6)) (/.f64 10 (pow.f64 x 8)))))
(+.f64 (+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x))) (/.f64 -10 (pow.f64 x 6))) (/.f64 -10 (pow.f64 x 8)))
(+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 (/.f64 -10 x) x)) (+.f64 (/.f64 -10 (pow.f64 x 6)) (/.f64 -10 (pow.f64 x 8))))

localize16.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(log1p.f64 (/.f64 -10 (fma.f64 x x -1)))
0.3b
(/.f64 -10 (fma.f64 x x -1))
1.2b
(expm1.f64 (log1p.f64 (/.f64 -10 (fma.f64 x x -1))))
Compiler

Compiled 29 to 20 computations (31% saved)

series3.0ms (0%)

Counts
2 → 24
Calls

6 calls:

TimeVariablePointExpression
1.0ms
x
@inf
(log1p.f64 (/.f64 -10 (fma.f64 x x -1)))
1.0ms
x
@0
(log1p.f64 (/.f64 -10 (fma.f64 x x -1)))
0.0ms
x
@-inf
(log1p.f64 (/.f64 -10 (fma.f64 x x -1)))
0.0ms
x
@0
(expm1.f64 (log1p.f64 (/.f64 -10 (fma.f64 x x -1))))
0.0ms
x
@-inf
(expm1.f64 (log1p.f64 (/.f64 -10 (fma.f64 x x -1))))

rewrite54.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
630×pow1_binary64
587×expm1-log1p-u_binary64
586×add-log-exp_binary64
586×log1p-expm1-u_binary64
575×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0818
114318
2157718
Stop Event
node limit
Counts
2 → 45
Calls
Call 1
Inputs
(expm1.f64 (log1p.f64 (/.f64 -10 (fma.f64 x x -1))))
(log1p.f64 (/.f64 -10 (fma.f64 x x -1)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (/.f64 -10 (fma.f64 x x -1)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (/.f64 -10 (fma.f64 x x -1)) 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -10 (/.f64 1 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -10 (fma.f64 x x -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 -10 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2) (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 -10 (fma.f64 x x -1))) (sqrt.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 10 (/.f64 1 (neg.f64 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (fma.f64 x x -1)) -10)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -10 (fma.f64 x x -1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -10 (neg.f64 (neg.f64 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -1 (neg.f64 (*.f64 (fma.f64 x x -1) -1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (*.f64 (fma.f64 x x -1) -1/10))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (*.f64 (fma.f64 x x -1) -1/10) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 10 (neg.f64 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (+.f64 (/.f64 -10 (fma.f64 x x -1)) 1) 3) 1) (+.f64 (*.f64 (+.f64 (/.f64 -10 (fma.f64 x x -1)) 1) (+.f64 (/.f64 -10 (fma.f64 x x -1)) 1)) (+.f64 1 (*.f64 (+.f64 (/.f64 -10 (fma.f64 x x -1)) 1) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (+.f64 (/.f64 -10 (fma.f64 x x -1)) 1) (+.f64 (/.f64 -10 (fma.f64 x x -1)) 1)) 1) (+.f64 (+.f64 (/.f64 -10 (fma.f64 x x -1)) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 -10 (sqrt.f64 (fma.f64 x x -1))) (sqrt.f64 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 -10 (pow.f64 (cbrt.f64 (fma.f64 x x -1)) 2)) (cbrt.f64 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 -10 (fma.f64 x x -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (/.f64 100 (pow.f64 (fma.f64 x x -1) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (log1p.f64 (/.f64 -10 (fma.f64 x x -1)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (log1p.f64 (/.f64 -10 (fma.f64 x x -1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (log1p.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (log1p.f64 (/.f64 -10 (fma.f64 x x -1)))) (pow.f64 (cbrt.f64 (log1p.f64 (/.f64 -10 (fma.f64 x x -1)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (log1p.f64 (/.f64 -10 (fma.f64 x x -1)))) 2) (cbrt.f64 (log1p.f64 (/.f64 -10 (fma.f64 x x -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (log1p.f64 (/.f64 -10 (fma.f64 x x -1)))) (sqrt.f64 (log1p.f64 (/.f64 -10 (fma.f64 x x -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (log1p.f64 (/.f64 -10 (fma.f64 x x -1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (log1p.f64 (/.f64 -10 (fma.f64 x x -1))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (log1p.f64 (/.f64 -10 (fma.f64 x x -1)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (log1p.f64 (/.f64 -10 (fma.f64 x x -1)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (log1p.f64 (/.f64 -10 (fma.f64 x x -1))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 (/.f64 -10 (fma.f64 x x -1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (log1p.f64 (/.f64 -10 (fma.f64 x x -1))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (log1p.f64 (/.f64 -10 (fma.f64 x x -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (log1p.f64 (/.f64 -10 (fma.f64 x x -1)))))))))

simplify64.0ms (0.9%)

Algorithm
egg-herbie
Rules
525×associate-/r*_binary64
413×unswap-sqr_binary64
400×sub-neg_binary64
381×fma-neg_binary64
363×associate-*l*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
065456
1196428
2588424
31998424
47022424
Stop Event
node limit
Counts
69 → 73
Calls
Call 1
Inputs
10
(+.f64 (*.f64 10 (pow.f64 x 2)) 10)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 10 (*.f64 10 (pow.f64 x 4))))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 10 (pow.f64 x 6)) (+.f64 10 (*.f64 10 (pow.f64 x 4)))))
(/.f64 -10 (pow.f64 x 2))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))))
(/.f64 -10 (pow.f64 x 2))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))))
(log.f64 11)
(+.f64 (*.f64 10/11 (pow.f64 x 2)) (log.f64 11))
(+.f64 (*.f64 10/11 (pow.f64 x 2)) (+.f64 (*.f64 60/121 (pow.f64 x 4)) (log.f64 11)))
(+.f64 (*.f64 10/11 (pow.f64 x 2)) (+.f64 (*.f64 1330/3993 (pow.f64 x 6)) (+.f64 (*.f64 60/121 (pow.f64 x 4)) (log.f64 11))))
(/.f64 -10 (pow.f64 x 2))
(neg.f64 (+.f64 (*.f64 60 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (*.f64 1330/3 (/.f64 1 (pow.f64 x 6))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 2))) (*.f64 60 (/.f64 1 (pow.f64 x 4))))))
(neg.f64 (+.f64 (*.f64 1330/3 (/.f64 1 (pow.f64 x 6))) (+.f64 (*.f64 3660 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 2))) (*.f64 60 (/.f64 1 (pow.f64 x 4)))))))
(/.f64 -10 (pow.f64 x 2))
(neg.f64 (+.f64 (*.f64 60 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (*.f64 1330/3 (/.f64 1 (pow.f64 x 6))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 2))) (*.f64 60 (/.f64 1 (pow.f64 x 4))))))
(neg.f64 (+.f64 (*.f64 1330/3 (/.f64 1 (pow.f64 x 6))) (+.f64 (*.f64 3660 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 2))) (*.f64 60 (/.f64 1 (pow.f64 x 4)))))))
Outputs
10
(+.f64 (*.f64 10 (pow.f64 x 2)) 10)
(fma.f64 10 (*.f64 x x) 10)
(*.f64 10 (fma.f64 x x 1))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 10 (*.f64 10 (pow.f64 x 4))))
(+.f64 (fma.f64 10 (*.f64 x x) 10) (*.f64 10 (pow.f64 x 4)))
(fma.f64 10 (*.f64 x x) (fma.f64 10 (pow.f64 x 4) 10))
(*.f64 10 (+.f64 (fma.f64 x x 1) (pow.f64 x 4)))
(*.f64 10 (+.f64 (pow.f64 x 4) (fma.f64 x x 1)))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 10 (pow.f64 x 6)) (+.f64 10 (*.f64 10 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 10 (pow.f64 x 6) (+.f64 10 (*.f64 10 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 10 (pow.f64 x 6) (fma.f64 10 (pow.f64 x 4) 10)))
(fma.f64 10 (fma.f64 x x (pow.f64 x 6)) (fma.f64 10 (pow.f64 x 4) 10))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (*.f64 x x))
(/.f64 (/.f64 -10 x) x)
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (/.f64 10 (*.f64 x x))))
(+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x)))
(-.f64 (/.f64 (/.f64 -10 x) x) (/.f64 10 (pow.f64 x 4)))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6)))))
(-.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))))
(+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x))) (/.f64 -10 (pow.f64 x 6)))
(+.f64 (-.f64 (/.f64 (/.f64 -10 x) x) (/.f64 10 (pow.f64 x 4))) (/.f64 -10 (pow.f64 x 6)))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))) (/.f64 10 (pow.f64 x 8)))))
(-.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (+.f64 (/.f64 10 (pow.f64 x 6)) (/.f64 10 (pow.f64 x 8)))))
(+.f64 (+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x))) (/.f64 -10 (pow.f64 x 6))) (/.f64 -10 (pow.f64 x 8)))
(+.f64 (-.f64 (/.f64 (/.f64 -10 x) x) (/.f64 10 (pow.f64 x 4))) (+.f64 (/.f64 -10 (pow.f64 x 6)) (/.f64 -10 (pow.f64 x 8))))
(+.f64 (/.f64 -10 (*.f64 x x)) (+.f64 (/.f64 -10 (pow.f64 x 6)) (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (pow.f64 x 8)))))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (*.f64 x x))
(/.f64 (/.f64 -10 x) x)
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (/.f64 10 (*.f64 x x))))
(+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x)))
(-.f64 (/.f64 (/.f64 -10 x) x) (/.f64 10 (pow.f64 x 4)))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6)))))
(-.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))))
(+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x))) (/.f64 -10 (pow.f64 x 6)))
(+.f64 (-.f64 (/.f64 (/.f64 -10 x) x) (/.f64 10 (pow.f64 x 4))) (/.f64 -10 (pow.f64 x 6)))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))) (/.f64 10 (pow.f64 x 8)))))
(-.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (+.f64 (/.f64 10 (pow.f64 x 6)) (/.f64 10 (pow.f64 x 8)))))
(+.f64 (+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x))) (/.f64 -10 (pow.f64 x 6))) (/.f64 -10 (pow.f64 x 8)))
(+.f64 (-.f64 (/.f64 (/.f64 -10 x) x) (/.f64 10 (pow.f64 x 4))) (+.f64 (/.f64 -10 (pow.f64 x 6)) (/.f64 -10 (pow.f64 x 8))))
(+.f64 (/.f64 -10 (*.f64 x x)) (+.f64 (/.f64 -10 (pow.f64 x 6)) (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (pow.f64 x 8)))))
(log.f64 11)
(+.f64 (*.f64 10/11 (pow.f64 x 2)) (log.f64 11))
(fma.f64 10/11 (*.f64 x x) (log.f64 11))
(fma.f64 (*.f64 x x) 10/11 (log.f64 11))
(fma.f64 x (*.f64 x 10/11) (log.f64 11))
(+.f64 (*.f64 10/11 (pow.f64 x 2)) (+.f64 (*.f64 60/121 (pow.f64 x 4)) (log.f64 11)))
(fma.f64 10/11 (*.f64 x x) (fma.f64 60/121 (pow.f64 x 4) (log.f64 11)))
(fma.f64 (*.f64 x x) 10/11 (fma.f64 (pow.f64 x 4) 60/121 (log.f64 11)))
(fma.f64 x (*.f64 x 10/11) (fma.f64 (pow.f64 x 4) 60/121 (log.f64 11)))
(fma.f64 (pow.f64 x 4) 60/121 (fma.f64 x (*.f64 x 10/11) (log.f64 11)))
(+.f64 (*.f64 10/11 (pow.f64 x 2)) (+.f64 (*.f64 1330/3993 (pow.f64 x 6)) (+.f64 (*.f64 60/121 (pow.f64 x 4)) (log.f64 11))))
(fma.f64 10/11 (*.f64 x x) (fma.f64 1330/3993 (pow.f64 x 6) (fma.f64 60/121 (pow.f64 x 4) (log.f64 11))))
(fma.f64 (*.f64 x x) 10/11 (fma.f64 (pow.f64 x 6) 1330/3993 (fma.f64 (pow.f64 x 4) 60/121 (log.f64 11))))
(fma.f64 x (*.f64 x 10/11) (fma.f64 (pow.f64 x 4) 60/121 (fma.f64 (pow.f64 x 6) 1330/3993 (log.f64 11))))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (*.f64 x x))
(/.f64 (/.f64 -10 x) x)
(neg.f64 (+.f64 (*.f64 60 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 60 (pow.f64 x 4))))
(+.f64 (/.f64 -10 (*.f64 x x)) (/.f64 -60 (pow.f64 x 4)))
(-.f64 (/.f64 -60 (pow.f64 x 4)) (/.f64 (/.f64 10 x) x))
(+.f64 (/.f64 (/.f64 -10 x) x) (/.f64 -60 (pow.f64 x 4)))
(neg.f64 (+.f64 (*.f64 1330/3 (/.f64 1 (pow.f64 x 6))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 2))) (*.f64 60 (/.f64 1 (pow.f64 x 4))))))
(neg.f64 (+.f64 (/.f64 1330/3 (pow.f64 x 6)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 60 (pow.f64 x 4)))))
(+.f64 (/.f64 -1330/3 (pow.f64 x 6)) (+.f64 (/.f64 -10 (*.f64 x x)) (/.f64 -60 (pow.f64 x 4))))
(+.f64 (/.f64 -1330/3 (pow.f64 x 6)) (-.f64 (/.f64 -60 (pow.f64 x 4)) (/.f64 (/.f64 10 x) x)))
(+.f64 (/.f64 (/.f64 -10 x) x) (+.f64 (/.f64 -1330/3 (pow.f64 x 6)) (/.f64 -60 (pow.f64 x 4))))
(neg.f64 (+.f64 (*.f64 1330/3 (/.f64 1 (pow.f64 x 6))) (+.f64 (*.f64 3660 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 2))) (*.f64 60 (/.f64 1 (pow.f64 x 4)))))))
(neg.f64 (+.f64 (/.f64 1330/3 (pow.f64 x 6)) (+.f64 (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 60 (pow.f64 x 4))) (/.f64 3660 (pow.f64 x 8)))))
(-.f64 (/.f64 -1330/3 (pow.f64 x 6)) (+.f64 (/.f64 10 (*.f64 x x)) (+.f64 (/.f64 60 (pow.f64 x 4)) (/.f64 3660 (pow.f64 x 8)))))
(+.f64 (+.f64 (/.f64 -1330/3 (pow.f64 x 6)) (-.f64 (/.f64 -60 (pow.f64 x 4)) (/.f64 (/.f64 10 x) x))) (/.f64 -3660 (pow.f64 x 8)))
(+.f64 (+.f64 (/.f64 (/.f64 -10 x) x) (+.f64 (/.f64 -1330/3 (pow.f64 x 6)) (/.f64 -60 (pow.f64 x 4)))) (/.f64 -3660 (pow.f64 x 8)))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (*.f64 x x))
(/.f64 (/.f64 -10 x) x)
(neg.f64 (+.f64 (*.f64 60 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 60 (pow.f64 x 4))))
(+.f64 (/.f64 -10 (*.f64 x x)) (/.f64 -60 (pow.f64 x 4)))
(-.f64 (/.f64 -60 (pow.f64 x 4)) (/.f64 (/.f64 10 x) x))
(+.f64 (/.f64 (/.f64 -10 x) x) (/.f64 -60 (pow.f64 x 4)))
(neg.f64 (+.f64 (*.f64 1330/3 (/.f64 1 (pow.f64 x 6))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 2))) (*.f64 60 (/.f64 1 (pow.f64 x 4))))))
(neg.f64 (+.f64 (/.f64 1330/3 (pow.f64 x 6)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 60 (pow.f64 x 4)))))
(+.f64 (/.f64 -1330/3 (pow.f64 x 6)) (+.f64 (/.f64 -10 (*.f64 x x)) (/.f64 -60 (pow.f64 x 4))))
(+.f64 (/.f64 -1330/3 (pow.f64 x 6)) (-.f64 (/.f64 -60 (pow.f64 x 4)) (/.f64 (/.f64 10 x) x)))
(+.f64 (/.f64 (/.f64 -10 x) x) (+.f64 (/.f64 -1330/3 (pow.f64 x 6)) (/.f64 -60 (pow.f64 x 4))))
(neg.f64 (+.f64 (*.f64 1330/3 (/.f64 1 (pow.f64 x 6))) (+.f64 (*.f64 3660 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 2))) (*.f64 60 (/.f64 1 (pow.f64 x 4)))))))
(neg.f64 (+.f64 (/.f64 1330/3 (pow.f64 x 6)) (+.f64 (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 60 (pow.f64 x 4))) (/.f64 3660 (pow.f64 x 8)))))
(-.f64 (/.f64 -1330/3 (pow.f64 x 6)) (+.f64 (/.f64 10 (*.f64 x x)) (+.f64 (/.f64 60 (pow.f64 x 4)) (/.f64 3660 (pow.f64 x 8)))))
(+.f64 (+.f64 (/.f64 -1330/3 (pow.f64 x 6)) (-.f64 (/.f64 -60 (pow.f64 x 4)) (/.f64 (/.f64 10 x) x))) (/.f64 -3660 (pow.f64 x 8)))
(+.f64 (+.f64 (/.f64 (/.f64 -10 x) x) (+.f64 (/.f64 -1330/3 (pow.f64 x 6)) (/.f64 -60 (pow.f64 x 4)))) (/.f64 -3660 (pow.f64 x 8)))

localize18.0ms (0.3%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.3b
(/.f64 -10 (fma.f64 x x -1))
0.5b
(cbrt.f64 (/.f64 -10 (fma.f64 x x -1)))
0.8b
(pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 3)
Compiler

Compiled 31 to 22 computations (29% saved)

series12.0ms (0.2%)

Counts
2 → 8
Calls

6 calls:

TimeVariablePointExpression
6.0ms
x
@0
(pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 3)
2.0ms
x
@inf
(pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 3)
1.0ms
x
@-inf
(pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 3)
1.0ms
x
@inf
(cbrt.f64 (/.f64 -10 (fma.f64 x x -1)))
1.0ms
x
@0
(cbrt.f64 (/.f64 -10 (fma.f64 x x -1)))

rewrite56.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
728×pow1_binary64
689×add-log-exp_binary64
689×log1p-expm1-u_binary64
689×expm1-log1p-u_binary64
675×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0918
119118
2189918
Stop Event
node limit
Counts
2 → 60
Calls
Call 1
Inputs
(pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 3)
(cbrt.f64 (/.f64 -10 (fma.f64 x x -1)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (/.f64 -10 (fma.f64 x x -1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -10 (/.f64 1 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -10 (fma.f64 x x -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 -10 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2) (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1)))) 2) (*.f64 (cbrt.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1)))) (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 -10 (fma.f64 x x -1))) (sqrt.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 1/6) (*.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 1/6) (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 10 (/.f64 1 (neg.f64 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (fma.f64 x x -1)) -10)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1)))) 2) 3) (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 1/6) 3) (pow.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 1/6) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2) 1) (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2) (pow.f64 (cbrt.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1)))) 2)) (cbrt.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2) (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 1/6)) (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -10 (fma.f64 x x -1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -10 (neg.f64 (neg.f64 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -1 (neg.f64 (*.f64 (fma.f64 x x -1) -1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (*.f64 (fma.f64 x x -1) -1/10))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (*.f64 (fma.f64 x x -1) -1/10) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 10 (neg.f64 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (cbrt.f64 -10) 3) (fma.f64 x x -1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 -10 (sqrt.f64 (fma.f64 x x -1))) (sqrt.f64 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 -10 (pow.f64 (cbrt.f64 (fma.f64 x x -1)) 2)) (cbrt.f64 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cbrt.f64 -10) (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2)) (cbrt.f64 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2) (cbrt.f64 -10)) (cbrt.f64 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 -10) (cbrt.f64 (/.f64 1 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 -10) (pow.f64 (/.f64 1 (fma.f64 x x -1)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 -10) (/.f64 1 (cbrt.f64 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1)))) (pow.f64 (cbrt.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1)))) (pow.f64 (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1)))) 2) (cbrt.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 1/6) (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2) 1/3) (cbrt.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (/.f64 -10 (fma.f64 x x -1))) 1/3) (pow.f64 (sqrt.f64 (/.f64 -10 (fma.f64 x x -1))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (cbrt.f64 (*.f64 (fma.f64 x x -1) -1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (cbrt.f64 (fma.f64 x x -1)) (cbrt.f64 -10)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (cbrt.f64 -10) (cbrt.f64 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (cbrt.f64 10) (cbrt.f64 (neg.f64 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (cbrt.f64 -10)) (neg.f64 (cbrt.f64 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 -10 (fma.f64 x x -1)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 1/6) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1)))))))))

simplify45.0ms (0.7%)

Algorithm
egg-herbie
Rules
807×associate-*l/_binary64
646×associate-*r/_binary64
514×associate-/r/_binary64
396×distribute-rgt-in_binary64
394×distribute-lft-in_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
079421
1202372
2635358
33056286
Stop Event
node limit
Counts
68 → 75
Calls
Call 1
Inputs
10
(+.f64 (*.f64 10 (pow.f64 x 2)) 10)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 10 (*.f64 (+.f64 40/9 (*.f64 (+.f64 (*.f64 -4/9 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (cbrt.f64 -1))) (*.f64 1/9 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (pow.f64 (cbrt.f64 -1) 4)))) (*.f64 (cbrt.f64 -1) (cbrt.f64 -10)))) (pow.f64 x 4))))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 10 (+.f64 (*.f64 (+.f64 40/9 (*.f64 (+.f64 (*.f64 -4/9 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (cbrt.f64 -1))) (*.f64 1/9 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (pow.f64 (cbrt.f64 -1) 4)))) (*.f64 (cbrt.f64 -1) (cbrt.f64 -10)))) (pow.f64 x 4)) (*.f64 (+.f64 (*.f64 -1/3 (/.f64 (*.f64 (+.f64 (*.f64 -4/9 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (cbrt.f64 -1))) (*.f64 1/9 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (pow.f64 (cbrt.f64 -1) 4)))) (cbrt.f64 -10)) (pow.f64 (cbrt.f64 -1) 2))) (+.f64 40/27 (+.f64 (*.f64 -10/3 (-.f64 (*.f64 1/27 (/.f64 1 (pow.f64 (cbrt.f64 -1) 6))) 5/9)) (*.f64 (+.f64 (*.f64 4/27 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (pow.f64 (cbrt.f64 -1) 4))) (*.f64 2/3 (/.f64 (*.f64 (-.f64 (*.f64 1/27 (/.f64 1 (pow.f64 (cbrt.f64 -1) 6))) 5/9) (pow.f64 (cbrt.f64 -10) 2)) (cbrt.f64 -1)))) (*.f64 (cbrt.f64 -1) (cbrt.f64 -10)))))) (pow.f64 x 6)))))
(*.f64 (cbrt.f64 -1) (cbrt.f64 -10))
(+.f64 (*.f64 (cbrt.f64 -1) (cbrt.f64 -10)) (*.f64 -1/3 (/.f64 (*.f64 (cbrt.f64 -10) (pow.f64 x 2)) (pow.f64 (cbrt.f64 -1) 2))))
(+.f64 (*.f64 (cbrt.f64 -1) (cbrt.f64 -10)) (+.f64 (*.f64 -1/3 (/.f64 (*.f64 (cbrt.f64 -10) (pow.f64 x 2)) (pow.f64 (cbrt.f64 -1) 2))) (*.f64 -2/9 (/.f64 (*.f64 (cbrt.f64 -10) (pow.f64 x 4)) (pow.f64 (cbrt.f64 -1) 2)))))
(+.f64 (*.f64 (cbrt.f64 -1) (cbrt.f64 -10)) (+.f64 (*.f64 -1/3 (/.f64 (*.f64 (cbrt.f64 -10) (pow.f64 x 2)) (pow.f64 (cbrt.f64 -1) 2))) (+.f64 (*.f64 -2/9 (/.f64 (*.f64 (cbrt.f64 -10) (pow.f64 x 4)) (pow.f64 (cbrt.f64 -1) 2))) (*.f64 1/3 (/.f64 (*.f64 (-.f64 (*.f64 1/27 (/.f64 1 (pow.f64 (cbrt.f64 -1) 6))) 5/9) (*.f64 (cbrt.f64 -10) (pow.f64 x 6))) (pow.f64 (cbrt.f64 -1) 2))))))
Outputs
10
(+.f64 (*.f64 10 (pow.f64 x 2)) 10)
(fma.f64 10 (*.f64 x x) 10)
(*.f64 10 (fma.f64 x x 1))
(fma.f64 x (*.f64 10 x) 10)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 10 (*.f64 (+.f64 40/9 (*.f64 (+.f64 (*.f64 -4/9 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (cbrt.f64 -1))) (*.f64 1/9 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (pow.f64 (cbrt.f64 -1) 4)))) (*.f64 (cbrt.f64 -1) (cbrt.f64 -10)))) (pow.f64 x 4))))
(+.f64 (fma.f64 10 (*.f64 x x) 10) (*.f64 (+.f64 40/9 (*.f64 (fma.f64 -4/9 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (cbrt.f64 -1)) (/.f64 (*.f64 1/9 (pow.f64 (cbrt.f64 -10) 2)) (pow.f64 (cbrt.f64 -1) 4))) (*.f64 (cbrt.f64 -10) (cbrt.f64 -1)))) (pow.f64 x 4)))
(fma.f64 10 (*.f64 x x) (fma.f64 (fma.f64 (fma.f64 -4/9 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (cbrt.f64 -1)) (*.f64 1/9 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (*.f64 (cbrt.f64 -1) -1)))) (*.f64 (cbrt.f64 -10) (cbrt.f64 -1)) 40/9) (pow.f64 x 4) 10))
(fma.f64 (fma.f64 (cbrt.f64 -1) (*.f64 (cbrt.f64 -10) (fma.f64 -4/9 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (cbrt.f64 -1)) (*.f64 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (cbrt.f64 -1)) -1/9))) 40/9) (pow.f64 x 4) (*.f64 10 (fma.f64 x x 1)))
(fma.f64 (fma.f64 (cbrt.f64 -1) (*.f64 (cbrt.f64 -10) (*.f64 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (cbrt.f64 -1)) -5/9)) 40/9) (pow.f64 x 4) (fma.f64 x (*.f64 10 x) 10))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 10 (+.f64 (*.f64 (+.f64 40/9 (*.f64 (+.f64 (*.f64 -4/9 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (cbrt.f64 -1))) (*.f64 1/9 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (pow.f64 (cbrt.f64 -1) 4)))) (*.f64 (cbrt.f64 -1) (cbrt.f64 -10)))) (pow.f64 x 4)) (*.f64 (+.f64 (*.f64 -1/3 (/.f64 (*.f64 (+.f64 (*.f64 -4/9 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (cbrt.f64 -1))) (*.f64 1/9 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (pow.f64 (cbrt.f64 -1) 4)))) (cbrt.f64 -10)) (pow.f64 (cbrt.f64 -1) 2))) (+.f64 40/27 (+.f64 (*.f64 -10/3 (-.f64 (*.f64 1/27 (/.f64 1 (pow.f64 (cbrt.f64 -1) 6))) 5/9)) (*.f64 (+.f64 (*.f64 4/27 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (pow.f64 (cbrt.f64 -1) 4))) (*.f64 2/3 (/.f64 (*.f64 (-.f64 (*.f64 1/27 (/.f64 1 (pow.f64 (cbrt.f64 -1) 6))) 5/9) (pow.f64 (cbrt.f64 -10) 2)) (cbrt.f64 -1)))) (*.f64 (cbrt.f64 -1) (cbrt.f64 -10)))))) (pow.f64 x 6)))))
(+.f64 (fma.f64 10 (*.f64 x x) 10) (fma.f64 (+.f64 40/9 (*.f64 (fma.f64 -4/9 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (cbrt.f64 -1)) (/.f64 (*.f64 1/9 (pow.f64 (cbrt.f64 -10) 2)) (pow.f64 (cbrt.f64 -1) 4))) (*.f64 (cbrt.f64 -10) (cbrt.f64 -1)))) (pow.f64 x 4) (*.f64 (fma.f64 -1/3 (/.f64 (fma.f64 -4/9 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (cbrt.f64 -1)) (/.f64 (*.f64 1/9 (pow.f64 (cbrt.f64 -10) 2)) (pow.f64 (cbrt.f64 -1) 4))) (/.f64 (pow.f64 (cbrt.f64 -1) 2) (cbrt.f64 -10))) (+.f64 40/27 (fma.f64 -10/3 (+.f64 (/.f64 1/27 (pow.f64 (cbrt.f64 -1) 6)) -5/9) (*.f64 (*.f64 (cbrt.f64 -10) (cbrt.f64 -1)) (fma.f64 4/27 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (pow.f64 (cbrt.f64 -1) 4)) (*.f64 2/3 (/.f64 (+.f64 (/.f64 1/27 (pow.f64 (cbrt.f64 -1) 6)) -5/9) (/.f64 (cbrt.f64 -1) (pow.f64 (cbrt.f64 -10) 2))))))))) (pow.f64 x 6))))
(+.f64 (fma.f64 10 (*.f64 x x) 10) (fma.f64 (fma.f64 (fma.f64 -4/9 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (cbrt.f64 -1)) (*.f64 1/9 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (*.f64 (cbrt.f64 -1) -1)))) (*.f64 (cbrt.f64 -10) (cbrt.f64 -1)) 40/9) (pow.f64 x 4) (*.f64 (fma.f64 -1/3 (/.f64 (fma.f64 -4/9 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (cbrt.f64 -1)) (*.f64 1/9 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (*.f64 (cbrt.f64 -1) -1)))) (/.f64 (pow.f64 (cbrt.f64 -1) 2) (cbrt.f64 -10))) (+.f64 (*.f64 (*.f64 (cbrt.f64 -10) (cbrt.f64 -1)) (fma.f64 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (*.f64 (cbrt.f64 -1) -1)) 4/27 (/.f64 (*.f64 -28/81 (pow.f64 (cbrt.f64 -10) 2)) (cbrt.f64 -1)))) 260/81)) (pow.f64 x 6))))
(fma.f64 10 (*.f64 x x) (fma.f64 (fma.f64 (cbrt.f64 -1) (*.f64 (cbrt.f64 -10) (fma.f64 -4/9 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (cbrt.f64 -1)) (*.f64 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (cbrt.f64 -1)) -1/9))) 40/9) (pow.f64 x 4) (fma.f64 (fma.f64 -1/3 (*.f64 (cbrt.f64 -10) (/.f64 (fma.f64 -4/9 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (cbrt.f64 -1)) (*.f64 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (cbrt.f64 -1)) -1/9)) (pow.f64 (cbrt.f64 -1) 2))) (fma.f64 (cbrt.f64 -10) (*.f64 (cbrt.f64 -1) (fma.f64 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (neg.f64 (cbrt.f64 -1))) 4/27 (*.f64 (/.f64 -28/81 (cbrt.f64 -1)) (pow.f64 (cbrt.f64 -10) 2)))) 260/81)) (pow.f64 x 6) 10)))
(fma.f64 10 (*.f64 x x) (fma.f64 (fma.f64 (cbrt.f64 -1) (*.f64 (cbrt.f64 -10) (*.f64 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (cbrt.f64 -1)) -5/9)) 40/9) (pow.f64 x 4) (fma.f64 (+.f64 260/81 (*.f64 (cbrt.f64 -10) (+.f64 (*.f64 -1/3 (/.f64 (*.f64 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (cbrt.f64 -1)) -5/9) (pow.f64 (cbrt.f64 -1) 2))) (*.f64 (cbrt.f64 -1) (*.f64 (pow.f64 (cbrt.f64 -10) 2) (+.f64 (/.f64 4/27 (neg.f64 (cbrt.f64 -1))) (/.f64 -28/81 (cbrt.f64 -1)))))))) (pow.f64 x 6) 10)))
(*.f64 (cbrt.f64 -1) (cbrt.f64 -10))
(*.f64 (cbrt.f64 -10) (cbrt.f64 -1))
(+.f64 (*.f64 (cbrt.f64 -1) (cbrt.f64 -10)) (*.f64 -1/3 (/.f64 (*.f64 (cbrt.f64 -10) (pow.f64 x 2)) (pow.f64 (cbrt.f64 -1) 2))))
(fma.f64 (cbrt.f64 -1) (cbrt.f64 -10) (*.f64 -1/3 (/.f64 (*.f64 (*.f64 x x) (cbrt.f64 -10)) (pow.f64 (cbrt.f64 -1) 2))))
(fma.f64 (cbrt.f64 -10) (cbrt.f64 -1) (/.f64 (*.f64 (cbrt.f64 -10) -1/3) (/.f64 (pow.f64 (cbrt.f64 -1) 2) (*.f64 x x))))
(fma.f64 (cbrt.f64 -10) (cbrt.f64 -1) (*.f64 -1/3 (/.f64 (*.f64 x (*.f64 x (cbrt.f64 -10))) (pow.f64 (cbrt.f64 -1) 2))))
(fma.f64 (cbrt.f64 -10) (cbrt.f64 -1) (/.f64 (*.f64 (cbrt.f64 -10) (*.f64 (*.f64 x x) -1/3)) (pow.f64 (cbrt.f64 -1) 2)))
(+.f64 (*.f64 (cbrt.f64 -1) (cbrt.f64 -10)) (+.f64 (*.f64 -1/3 (/.f64 (*.f64 (cbrt.f64 -10) (pow.f64 x 2)) (pow.f64 (cbrt.f64 -1) 2))) (*.f64 -2/9 (/.f64 (*.f64 (cbrt.f64 -10) (pow.f64 x 4)) (pow.f64 (cbrt.f64 -1) 2)))))
(fma.f64 (cbrt.f64 -1) (cbrt.f64 -10) (fma.f64 -1/3 (/.f64 (*.f64 (*.f64 x x) (cbrt.f64 -10)) (pow.f64 (cbrt.f64 -1) 2)) (*.f64 -2/9 (/.f64 (*.f64 (cbrt.f64 -10) (pow.f64 x 4)) (pow.f64 (cbrt.f64 -1) 2)))))
(fma.f64 (cbrt.f64 -10) (cbrt.f64 -1) (fma.f64 -1/3 (*.f64 (/.f64 (cbrt.f64 -10) (pow.f64 (cbrt.f64 -1) 2)) (*.f64 x x)) (*.f64 -2/9 (*.f64 (/.f64 (cbrt.f64 -10) (pow.f64 (cbrt.f64 -1) 2)) (pow.f64 x 4)))))
(fma.f64 (cbrt.f64 -10) (cbrt.f64 -1) (fma.f64 -1/3 (/.f64 (*.f64 x (*.f64 x (cbrt.f64 -10))) (pow.f64 (cbrt.f64 -1) 2)) (*.f64 -2/9 (*.f64 (pow.f64 x 4) (/.f64 (cbrt.f64 -10) (pow.f64 (cbrt.f64 -1) 2))))))
(fma.f64 (cbrt.f64 -10) (cbrt.f64 -1) (*.f64 (/.f64 (cbrt.f64 -10) (pow.f64 (cbrt.f64 -1) 2)) (+.f64 (*.f64 (*.f64 x x) -1/3) (*.f64 (pow.f64 x 4) -2/9))))
(+.f64 (*.f64 (cbrt.f64 -1) (cbrt.f64 -10)) (+.f64 (*.f64 -1/3 (/.f64 (*.f64 (cbrt.f64 -10) (pow.f64 x 2)) (pow.f64 (cbrt.f64 -1) 2))) (+.f64 (*.f64 -2/9 (/.f64 (*.f64 (cbrt.f64 -10) (pow.f64 x 4)) (pow.f64 (cbrt.f64 -1) 2))) (*.f64 1/3 (/.f64 (*.f64 (-.f64 (*.f64 1/27 (/.f64 1 (pow.f64 (cbrt.f64 -1) 6))) 5/9) (*.f64 (cbrt.f64 -10) (pow.f64 x 6))) (pow.f64 (cbrt.f64 -1) 2))))))
(fma.f64 (cbrt.f64 -1) (cbrt.f64 -10) (fma.f64 -1/3 (/.f64 (*.f64 (*.f64 x x) (cbrt.f64 -10)) (pow.f64 (cbrt.f64 -1) 2)) (fma.f64 -2/9 (/.f64 (*.f64 (cbrt.f64 -10) (pow.f64 x 4)) (pow.f64 (cbrt.f64 -1) 2)) (*.f64 1/3 (/.f64 (+.f64 (/.f64 1/27 (pow.f64 (cbrt.f64 -1) 6)) -5/9) (/.f64 (pow.f64 (cbrt.f64 -1) 2) (*.f64 (cbrt.f64 -10) (pow.f64 x 6))))))))
(fma.f64 (cbrt.f64 -10) (cbrt.f64 -1) (fma.f64 -1/3 (*.f64 (/.f64 (cbrt.f64 -10) (pow.f64 (cbrt.f64 -1) 2)) (*.f64 x x)) (fma.f64 -2/9 (*.f64 (/.f64 (cbrt.f64 -10) (pow.f64 (cbrt.f64 -1) 2)) (pow.f64 x 4)) (/.f64 (*.f64 -14/81 (*.f64 (cbrt.f64 -10) (pow.f64 x 6))) (pow.f64 (cbrt.f64 -1) 2)))))
(fma.f64 (cbrt.f64 -10) (cbrt.f64 -1) (fma.f64 -1/3 (/.f64 (*.f64 x (*.f64 x (cbrt.f64 -10))) (pow.f64 (cbrt.f64 -1) 2)) (fma.f64 -2/9 (*.f64 (pow.f64 x 4) (/.f64 (cbrt.f64 -10) (pow.f64 (cbrt.f64 -1) 2))) (*.f64 (/.f64 -14/81 (pow.f64 (cbrt.f64 -1) 2)) (*.f64 (cbrt.f64 -10) (pow.f64 x 6))))))
(+.f64 (*.f64 (/.f64 (cbrt.f64 -10) (pow.f64 (cbrt.f64 -1) 2)) (+.f64 (*.f64 (*.f64 x x) -1/3) (*.f64 (pow.f64 x 4) -2/9))) (*.f64 (cbrt.f64 -10) (+.f64 (cbrt.f64 -1) (*.f64 (/.f64 -14/81 (pow.f64 (cbrt.f64 -1) 2)) (pow.f64 x 6)))))

eval218.0ms (3.2%)

Compiler

Compiled 4809 to 3910 computations (18.7% saved)

prune121.0ms (1.8%)

Pruning

23 alts after pruning (17 fresh and 6 done)

PrunedKeptTotal
New35013363
Fresh549
Picked011
Done156
Total35623379
Error
0b
Counts
379 → 23
Alt Table
Click to see full alt table
StatusErrorProgram
0.6b
(cbrt.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3))
42.9b
(*.f64 (exp.f64 (neg.f64 (log.f64 (fma.f64 x x -1)))) -10)
0.3b
(/.f64 -10 (fma.f64 x x -1))
2.0b
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1)))) 2) 3) (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))))
1.4b
(pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 3)
0.3b
(/.f64 1 (/.f64 (fma.f64 x x -1) -10))
7.9b
(/.f64 10 (/.f64 (-.f64 1 (*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x)))) (-.f64 1 (*.f64 x (neg.f64 x)))))
60.4b
(/.f64 -10 (*.f64 x x))
6.9b
(pow.f64 (fma.f64 x (*.f64 -1/10 x) 1/10) -1)
22.6b
(exp.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1))))
7.9b
(/.f64 10 (-.f64 1 (*.f64 x x)))
1.8b
(pow.f64 (*.f64 (cbrt.f64 -10) (/.f64 1 (cbrt.f64 (fma.f64 x x -1)))) 3)
1.3b
(*.f64 (pow.f64 (/.f64 1 (cbrt.f64 (fma.f64 x x -1))) 3) -10)
22.7b
(expm1.f64 (log1p.f64 (/.f64 -10 (fma.f64 x x -1))))
57.9b
10
6.4b
(/.f64 10 (*.f64 (-.f64 1 (pow.f64 x 6)) (/.f64 1 (+.f64 1 (+.f64 (*.f64 x x) (pow.f64 x 4))))))
1.4b
(*.f64 (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2) (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))))
7.9b
(*.f64 (/.f64 1 (-.f64 1 (*.f64 x x))) 10)
0.4b
(*.f64 (/.f64 1 (fma.f64 x x -1)) -10)
0.5b
(/.f64 (/.f64 1 (fma.f64 x x -1)) -1/10)
21.4b
(sqrt.f64 (/.f64 100 (pow.f64 (fma.f64 x x -1) 2)))
60.4b
(/.f64 (/.f64 -10 x) x)
22.0b
(pow.f64 (pow.f64 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) 2) -1)
Compiler

Compiled 449 to 345 computations (23.2% saved)

localize22.0ms (0.3%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.2b
(/.f64 (fma.f64 x x -1) -10)
0.3b
(/.f64 1 (/.f64 (fma.f64 x x -1) -10))
Compiler

Compiled 23 to 16 computations (30.4% saved)

series3.0ms (0%)

Counts
2 → 24
Calls

6 calls:

TimeVariablePointExpression
1.0ms
x
@0
(/.f64 1 (/.f64 (fma.f64 x x -1) -10))
1.0ms
x
@inf
(/.f64 1 (/.f64 (fma.f64 x x -1) -10))
1.0ms
x
@-inf
(/.f64 1 (/.f64 (fma.f64 x x -1) -10))
0.0ms
x
@-inf
(/.f64 (fma.f64 x x -1) -10)
0.0ms
x
@0
(/.f64 (fma.f64 x x -1) -10)

rewrite71.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
693×pow1_binary64
649×add-log-exp_binary64
648×log1p-expm1-u_binary64
648×expm1-log1p-u_binary64
637×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0819
116316
2182716
Stop Event
node limit
Counts
2 → 46
Calls
Call 1
Inputs
(/.f64 1 (/.f64 (fma.f64 x x -1) -10))
(/.f64 (fma.f64 x x -1) -10)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (/.f64 -10 (fma.f64 x x -1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 -10 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (/.f64 1 (*.f64 (fma.f64 x x -1) 1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -10 (/.f64 1 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -10 (fma.f64 x x -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2) (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 -10 (fma.f64 x x -1))) (sqrt.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (fma.f64 x x -1)) -10)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) 2) -1) (pow.f64 (cbrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) -1) (pow.f64 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (neg.f64 (fma.f64 x x -1))) 10)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 -10 (fma.f64 x x -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (fma.f64 x x -1) -1/10)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (fma.f64 x x -1) -1/10))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x x -1) -1/10)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (fma.f64 x x -1) -1/10) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 x x -1)) 2) (*.f64 (cbrt.f64 (fma.f64 x x -1)) -1/10))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) (pow.f64 (cbrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) 2) (cbrt.f64 (*.f64 (fma.f64 x x -1) -1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 x x -1)) (*.f64 (sqrt.f64 (fma.f64 x x -1)) -1/10))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (fma.f64 x x -1)) 1/10)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1/10 (fma.f64 x x -1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (fma.f64 x x -1) -1/10) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 -10 (fma.f64 x x -1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (fma.f64 x x -1) 10))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (fma.f64 x x -1) 2) 1/100))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (fma.f64 x x -1)) -1/10))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (fma.f64 x x -1) -1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (fma.f64 x x -1) -1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (fma.f64 x x -1) -1/10)))))))

simplify53.0ms (0.8%)

Algorithm
egg-herbie
Rules
683×fma-def_binary64
437×distribute-rgt-out_binary64
413×unswap-sqr_binary64
359×distribute-neg-frac_binary64
257×associate-*l*_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
042331
1118297
2350293
31185290
44923287
Stop Event
node limit
Counts
70 → 66
Calls
Call 1
Inputs
10
(+.f64 (*.f64 10 (pow.f64 x 2)) 10)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 10 (*.f64 10 (pow.f64 x 4))))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 10 (pow.f64 x 6)) (+.f64 10 (*.f64 10 (pow.f64 x 4)))))
(/.f64 -10 (pow.f64 x 2))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))))
(/.f64 -10 (pow.f64 x 2))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))))
1/10
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(*.f64 -1/10 (pow.f64 x 2))
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(*.f64 -1/10 (pow.f64 x 2))
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
Outputs
10
(+.f64 (*.f64 10 (pow.f64 x 2)) 10)
(fma.f64 10 (*.f64 x x) 10)
(fma.f64 x (*.f64 10 x) 10)
(*.f64 10 (fma.f64 x x 1))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 10 (*.f64 10 (pow.f64 x 4))))
(+.f64 (fma.f64 10 (*.f64 x x) 10) (*.f64 10 (pow.f64 x 4)))
(fma.f64 10 (*.f64 x x) (fma.f64 10 (pow.f64 x 4) 10))
(*.f64 10 (+.f64 (fma.f64 x x 1) (pow.f64 x 4)))
(fma.f64 10 (fma.f64 x x (pow.f64 x 4)) 10)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 10 (pow.f64 x 6)) (+.f64 10 (*.f64 10 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 10 (pow.f64 x 6) (+.f64 10 (*.f64 10 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 10 (pow.f64 x 6) (fma.f64 10 (pow.f64 x 4) 10)))
(fma.f64 10 (fma.f64 x x (pow.f64 x 6)) (fma.f64 10 (pow.f64 x 4) 10))
(fma.f64 10 (+.f64 (pow.f64 x 4) (fma.f64 x x (pow.f64 x 6))) 10)
(*.f64 (fma.f64 x x 1) (fma.f64 10 (pow.f64 x 4) 10))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (*.f64 x x))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (/.f64 10 (*.f64 x x))))
(-.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 10 (*.f64 x x)))
(+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x)))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6)))))
(-.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))))
(+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x))) (/.f64 -10 (pow.f64 x 6)))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))) (/.f64 10 (pow.f64 x 8)))))
(-.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 10 (pow.f64 x 6)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 8)))))
(+.f64 (+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x))) (/.f64 -10 (pow.f64 x 6))) (/.f64 -10 (pow.f64 x 8)))
(+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x))) (-.f64 (/.f64 -10 (pow.f64 x 8)) (/.f64 10 (pow.f64 x 6))))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (*.f64 x x))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (/.f64 10 (*.f64 x x))))
(-.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 10 (*.f64 x x)))
(+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x)))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6)))))
(-.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))))
(+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x))) (/.f64 -10 (pow.f64 x 6)))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))) (/.f64 10 (pow.f64 x 8)))))
(-.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 10 (pow.f64 x 6)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 8)))))
(+.f64 (+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x))) (/.f64 -10 (pow.f64 x 6))) (/.f64 -10 (pow.f64 x 8)))
(+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x))) (-.f64 (/.f64 -10 (pow.f64 x 8)) (/.f64 10 (pow.f64 x 6))))
1/10
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 (*.f64 x x) -1/10))
(fma.f64 (*.f64 x x) -1/10 1/10)
(fma.f64 x (*.f64 x -1/10) 1/10)
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 (*.f64 x x) -1/10))
(fma.f64 (*.f64 x x) -1/10 1/10)
(fma.f64 x (*.f64 x -1/10) 1/10)
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 (*.f64 x x) -1/10))
(fma.f64 (*.f64 x x) -1/10 1/10)
(fma.f64 x (*.f64 x -1/10) 1/10)
(*.f64 -1/10 (pow.f64 x 2))
(*.f64 (*.f64 x x) -1/10)
(*.f64 x (*.f64 x -1/10))
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 (*.f64 x x) -1/10))
(fma.f64 (*.f64 x x) -1/10 1/10)
(fma.f64 x (*.f64 x -1/10) 1/10)
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 (*.f64 x x) -1/10))
(fma.f64 (*.f64 x x) -1/10 1/10)
(fma.f64 x (*.f64 x -1/10) 1/10)
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 (*.f64 x x) -1/10))
(fma.f64 (*.f64 x x) -1/10 1/10)
(fma.f64 x (*.f64 x -1/10) 1/10)
(*.f64 -1/10 (pow.f64 x 2))
(*.f64 (*.f64 x x) -1/10)
(*.f64 x (*.f64 x -1/10))
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 (*.f64 x x) -1/10))
(fma.f64 (*.f64 x x) -1/10 1/10)
(fma.f64 x (*.f64 x -1/10) 1/10)
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 (*.f64 x x) -1/10))
(fma.f64 (*.f64 x x) -1/10 1/10)
(fma.f64 x (*.f64 x -1/10) 1/10)
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 (*.f64 x x) -1/10))
(fma.f64 (*.f64 x x) -1/10 1/10)
(fma.f64 x (*.f64 x -1/10) 1/10)

localize5.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.3b
(/.f64 (/.f64 -10 x) x)
Compiler

Compiled 11 to 7 computations (36.4% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
0.0ms
x
@0
(/.f64 (/.f64 -10 x) x)
0.0ms
x
@inf
(/.f64 (/.f64 -10 x) x)
0.0ms
x
@-inf
(/.f64 (/.f64 -10 x) x)

rewrite45.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
581×pow1_binary64
547×add-log-exp_binary64
547×log1p-expm1-u_binary64
547×expm1-log1p-u_binary64
537×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
057
11127
214807
Stop Event
node limit
Counts
1 → 35
Calls
Call 1
Inputs
(/.f64 (/.f64 -10 x) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (/.f64 -10 (*.f64 x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -10 (*.f64 (/.f64 1 x) (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -10 (/.f64 (/.f64 1 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -10 (/.f64 1 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -10 x) (/.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -10 (*.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 -10 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 -10 (*.f64 x x))) (pow.f64 (cbrt.f64 (/.f64 -10 (*.f64 x x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 -10 (*.f64 x x))) 2) (cbrt.f64 (/.f64 -10 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 -10 x)) 2) (*.f64 (cbrt.f64 (/.f64 -10 x)) (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 -10) x) (/.f64 (sqrt.f64 -10) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 -10 x)) (*.f64 (sqrt.f64 (/.f64 -10 x)) (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 10 x) (/.f64 1 (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 x) (/.f64 -10 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (/.f64 -10 x)) 2) 1) (/.f64 (cbrt.f64 (/.f64 -10 x)) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (/.f64 -10 x)) 1) (/.f64 (sqrt.f64 (/.f64 -10 x)) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -10 (pow.f64 (cbrt.f64 x) 2)) (/.f64 (/.f64 1 x) (cbrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 (cbrt.f64 x) 2)) (/.f64 (/.f64 -10 x) (cbrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (/.f64 -10 x)) 2) (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 (/.f64 -10 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (/.f64 -10 x)) (pow.f64 (cbrt.f64 x) 2)) (/.f64 (sqrt.f64 (/.f64 -10 x)) (cbrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -10 (sqrt.f64 x)) (/.f64 (/.f64 1 x) (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (sqrt.f64 x)) (/.f64 (/.f64 -10 x) (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (/.f64 -10 x)) 2) (sqrt.f64 x)) (/.f64 (cbrt.f64 (/.f64 -10 x)) (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 -10 (*.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 -10 (*.f64 x x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 -10 (*.f64 x x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 -10) x) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (*.f64 x -1/10)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (/.f64 -10 x) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 -10 (*.f64 x x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 -10 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 -10 (*.f64 x x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 -10 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 -10 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 -10 (*.f64 x x))))))))

simplify160.0ms (2.3%)

Algorithm
egg-herbie
Rules
1140×associate-/r*_binary64
1082×sqr-pow_binary64
560×cube-prod_binary64
554×fabs-mul_binary64
523×pow-sqr_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0684
11184
22084
33584
47584
522484
683484
7204384
8220984
9239384
10260184
11289884
12329184
13377284
14434084
15502884
16586384
17625584
18654384
19681984
20689184
21692784
Stop Event
node limit
Counts
47 → 37
Calls
Call 1
Inputs
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (pow.f64 x 2))
Outputs
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (*.f64 x x))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (*.f64 x x))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (*.f64 x x))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (*.f64 x x))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (*.f64 x x))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (*.f64 x x))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (*.f64 x x))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (*.f64 x x))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (*.f64 x x))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (*.f64 x x))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (*.f64 x x))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (*.f64 x x))

localize10.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.3b
(pow.f64 (fma.f64 x (*.f64 -1/10 x) 1/10) -1)
0.4b
(*.f64 -1/10 x)
7.4b
(fma.f64 x (*.f64 -1/10 x) 1/10)
Compiler

Compiled 22 to 16 computations (27.3% saved)

series4.0ms (0.1%)

Counts
3 → 24
Calls

9 calls:

TimeVariablePointExpression
1.0ms
x
@0
(fma.f64 x (*.f64 -1/10 x) 1/10)
1.0ms
x
@inf
(fma.f64 x (*.f64 -1/10 x) 1/10)
1.0ms
x
@-inf
(fma.f64 x (*.f64 -1/10 x) 1/10)
0.0ms
x
@-inf
(pow.f64 (fma.f64 x (*.f64 -1/10 x) 1/10) -1)
0.0ms
x
@inf
(pow.f64 (fma.f64 x (*.f64 -1/10 x) 1/10) -1)

rewrite66.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
682×pow1_binary64
637×add-log-exp_binary64
637×log1p-expm1-u_binary64
637×expm1-log1p-u_binary64
624×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0823
116323
2174323
Stop Event
node limit
Counts
3 → 51
Calls
Call 1
Inputs
(fma.f64 x (*.f64 -1/10 x) 1/10)
(*.f64 -1/10 x)
(pow.f64 (fma.f64 x (*.f64 -1/10 x) 1/10) -1)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 1/10 (*.f64 x (*.f64 x -1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 x -1/10)) 1/10)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 x (*.f64 x -1/10)) 1) 1/10)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (fma.f64 x (*.f64 x -1/10) 1/10)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x (*.f64 x -1/10) 1/10) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 x (*.f64 x -1/10) 1/10))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 x (*.f64 x -1/10) 1/10)) (pow.f64 (cbrt.f64 (fma.f64 x (*.f64 x -1/10) 1/10)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 x (*.f64 x -1/10) 1/10)) 2) (cbrt.f64 (fma.f64 x (*.f64 x -1/10) 1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 x (*.f64 x -1/10) 1/10)) (sqrt.f64 (fma.f64 x (*.f64 x -1/10) 1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 x (*.f64 x -1/10)) 3) 1/1000) (+.f64 (*.f64 (*.f64 x (*.f64 x -1/10)) (*.f64 x (*.f64 x -1/10))) (-.f64 1/100 (*.f64 (*.f64 x (*.f64 x -1/10)) 1/10))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 x (*.f64 x -1/10)) (*.f64 x (*.f64 x -1/10))) 1/100) (-.f64 (*.f64 x (*.f64 x -1/10)) 1/10))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 x (*.f64 x -1/10) 1/10) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 x (*.f64 x -1/10) 1/10) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 x (*.f64 x -1/10) 1/10)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 x (*.f64 x -1/10) 1/10)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 x (*.f64 x -1/10) 1/10) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 x (*.f64 x -1/10) 1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 x (*.f64 x -1/10) 1/10) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 x (*.f64 x -1/10) 1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 x (*.f64 x -1/10) 1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 x (*.f64 x -1/10) 1/10)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 x -1/10)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x -1/10) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x -1/10) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x -1/10)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x -1/10)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 1/100 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x) -1/10))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x -1/10) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x -1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x -1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x -1/10)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (/.f64 1 (fma.f64 x (*.f64 x -1/10) 1/10))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (fma.f64 x (*.f64 x -1/10) 1/10)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 1 (fma.f64 x (*.f64 x -1/10) 1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 (fma.f64 x (*.f64 x -1/10) 1/10))) (cbrt.f64 (pow.f64 (fma.f64 x (*.f64 x -1/10) 1/10) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (fma.f64 x (*.f64 x -1/10) 1/10) -2)) (/.f64 1 (cbrt.f64 (fma.f64 x (*.f64 x -1/10) 1/10))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (fma.f64 x (*.f64 x -1/10) 1/10) -1/2) (pow.f64 (fma.f64 x (*.f64 x -1/10) 1/10) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (fma.f64 x (*.f64 x -1/10) 1/10)) 2) -1) (pow.f64 (cbrt.f64 (fma.f64 x (*.f64 x -1/10) 1/10)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (fma.f64 x (*.f64 x -1/10) 1/10)) -1) (pow.f64 (sqrt.f64 (fma.f64 x (*.f64 x -1/10) 1/10)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -1 (neg.f64 (fma.f64 x (*.f64 x -1/10) 1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (fma.f64 x (*.f64 x -1/10) 1/10))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 x (*.f64 x -1/10) 1/10) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (fma.f64 x (*.f64 x -1/10) 1/10) -1/2) (sqrt.f64 (fma.f64 x (*.f64 x -1/10) 1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 1 (pow.f64 (cbrt.f64 (fma.f64 x (*.f64 x -1/10) 1/10)) 2)) (cbrt.f64 (fma.f64 x (*.f64 x -1/10) 1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 x (*.f64 x -1/10) 1/10) -2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 1 (fma.f64 x (*.f64 x -1/10) 1/10))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 1 (fma.f64 x (*.f64 x -1/10) 1/10)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 1 (fma.f64 x (*.f64 x -1/10) 1/10))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 1 (fma.f64 x (*.f64 x -1/10) 1/10))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (neg.f64 (log.f64 (fma.f64 x (*.f64 x -1/10) 1/10))))))))

simplify52.0ms (0.8%)

Algorithm
egg-herbie
Rules
679×fma-def_binary64
437×distribute-rgt-out_binary64
413×unswap-sqr_binary64
358×distribute-neg-frac_binary64
255×associate-*l*_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
042331
1118297
2350293
31185290
44932287
Stop Event
node limit
Counts
75 → 71
Calls
Call 1
Inputs
1/10
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(*.f64 -1/10 (pow.f64 x 2))
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(*.f64 -1/10 (pow.f64 x 2))
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
10
(+.f64 (*.f64 10 (pow.f64 x 2)) 10)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 10 (*.f64 10 (pow.f64 x 4))))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 10 (pow.f64 x 6)) (+.f64 10 (*.f64 10 (pow.f64 x 4)))))
(/.f64 -10 (pow.f64 x 2))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))))
(/.f64 -10 (pow.f64 x 2))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))))
Outputs
1/10
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (*.f64 x x)))
(fma.f64 -1/10 (*.f64 x x) 1/10)
(fma.f64 x (*.f64 -1/10 x) 1/10)
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (*.f64 x x)))
(fma.f64 -1/10 (*.f64 x x) 1/10)
(fma.f64 x (*.f64 -1/10 x) 1/10)
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (*.f64 x x)))
(fma.f64 -1/10 (*.f64 x x) 1/10)
(fma.f64 x (*.f64 -1/10 x) 1/10)
(*.f64 -1/10 (pow.f64 x 2))
(*.f64 -1/10 (*.f64 x x))
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (*.f64 x x)))
(fma.f64 -1/10 (*.f64 x x) 1/10)
(fma.f64 x (*.f64 -1/10 x) 1/10)
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (*.f64 x x)))
(fma.f64 -1/10 (*.f64 x x) 1/10)
(fma.f64 x (*.f64 -1/10 x) 1/10)
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (*.f64 x x)))
(fma.f64 -1/10 (*.f64 x x) 1/10)
(fma.f64 x (*.f64 -1/10 x) 1/10)
(*.f64 -1/10 (pow.f64 x 2))
(*.f64 -1/10 (*.f64 x x))
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (*.f64 x x)))
(fma.f64 -1/10 (*.f64 x x) 1/10)
(fma.f64 x (*.f64 -1/10 x) 1/10)
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (*.f64 x x)))
(fma.f64 -1/10 (*.f64 x x) 1/10)
(fma.f64 x (*.f64 -1/10 x) 1/10)
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (*.f64 x x)))
(fma.f64 -1/10 (*.f64 x x) 1/10)
(fma.f64 x (*.f64 -1/10 x) 1/10)
10
(+.f64 (*.f64 10 (pow.f64 x 2)) 10)
(fma.f64 10 (*.f64 x x) 10)
(fma.f64 (*.f64 x x) 10 10)
(*.f64 10 (fma.f64 x x 1))
(fma.f64 x (*.f64 x 10) 10)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 10 (*.f64 10 (pow.f64 x 4))))
(fma.f64 10 (*.f64 x x) (+.f64 10 (*.f64 10 (pow.f64 x 4))))
(fma.f64 (*.f64 x x) 10 (fma.f64 10 (pow.f64 x 4) 10))
(*.f64 10 (+.f64 (pow.f64 x 4) (fma.f64 x x 1)))
(fma.f64 10 (fma.f64 x x (pow.f64 x 4)) 10)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 10 (pow.f64 x 6)) (+.f64 10 (*.f64 10 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 10 (pow.f64 x 6) (+.f64 10 (*.f64 10 (pow.f64 x 4)))))
(fma.f64 (*.f64 x x) 10 (fma.f64 10 (pow.f64 x 6) (fma.f64 10 (pow.f64 x 4) 10)))
(fma.f64 10 (fma.f64 x x (pow.f64 x 6)) (fma.f64 10 (pow.f64 x 4) 10))
(fma.f64 10 (+.f64 (pow.f64 x 4) (fma.f64 x x (pow.f64 x 6))) 10)
(*.f64 (fma.f64 x x 1) (fma.f64 10 (pow.f64 x 4) 10))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (*.f64 x x))
(/.f64 (/.f64 -10 x) x)
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (/.f64 10 (*.f64 x x))))
(+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x)))
(+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 (/.f64 -10 x) x))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6)))))
(-.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))))
(+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x))) (/.f64 -10 (pow.f64 x 6)))
(+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 (/.f64 -10 x) x)) (/.f64 -10 (pow.f64 x 6)))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))) (/.f64 10 (pow.f64 x 8)))))
(-.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (+.f64 (/.f64 10 (pow.f64 x 6)) (/.f64 10 (pow.f64 x 8)))))
(+.f64 (+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x))) (/.f64 -10 (pow.f64 x 6))) (/.f64 -10 (pow.f64 x 8)))
(+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 (/.f64 -10 x) x)) (+.f64 (/.f64 -10 (pow.f64 x 6)) (/.f64 -10 (pow.f64 x 8))))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (*.f64 x x))
(/.f64 (/.f64 -10 x) x)
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (/.f64 10 (*.f64 x x))))
(+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x)))
(+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 (/.f64 -10 x) x))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6)))))
(-.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))))
(+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x))) (/.f64 -10 (pow.f64 x 6)))
(+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 (/.f64 -10 x) x)) (/.f64 -10 (pow.f64 x 6)))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))) (/.f64 10 (pow.f64 x 8)))))
(-.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (+.f64 (/.f64 10 (pow.f64 x 6)) (/.f64 10 (pow.f64 x 8)))))
(+.f64 (+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x))) (/.f64 -10 (pow.f64 x 6))) (/.f64 -10 (pow.f64 x 8)))
(+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 (/.f64 -10 x) x)) (+.f64 (/.f64 -10 (pow.f64 x 6)) (/.f64 -10 (pow.f64 x 8))))

localize15.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.1b
(sqrt.f64 (/.f64 100 (pow.f64 (fma.f64 x x -1) 2)))
0.3b
(/.f64 100 (pow.f64 (fma.f64 x x -1) 2))
0.5b
(pow.f64 (fma.f64 x x -1) 2)
Compiler

Compiled 32 to 23 computations (28.1% saved)

series4.0ms (0.1%)

Counts
3 → 36
Calls

9 calls:

TimeVariablePointExpression
1.0ms
x
@0
(pow.f64 (fma.f64 x x -1) 2)
1.0ms
x
@inf
(pow.f64 (fma.f64 x x -1) 2)
0.0ms
x
@inf
(/.f64 100 (pow.f64 (fma.f64 x x -1) 2))
0.0ms
x
@inf
(sqrt.f64 (/.f64 100 (pow.f64 (fma.f64 x x -1) 2)))
0.0ms
x
@0
(/.f64 100 (pow.f64 (fma.f64 x x -1) 2))

rewrite71.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
764×pow1_binary64
718×add-log-exp_binary64
718×log1p-expm1-u_binary64
718×expm1-log1p-u_binary64
703×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0932
118827
2202527
Stop Event
node limit
Counts
3 → 71
Calls
Call 1
Inputs
(pow.f64 (fma.f64 x x -1) 2)
(/.f64 100 (pow.f64 (fma.f64 x x -1) 2))
(sqrt.f64 (/.f64 100 (pow.f64 (fma.f64 x x -1) 2)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 x x) (fma.f64 x x -1)) (*.f64 -1 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (fma.f64 x x -1) (*.f64 x x)) (*.f64 (fma.f64 x x -1) -1))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (fma.f64 x x -1) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x x -1) (fma.f64 x x -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (fma.f64 x x -1) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (fma.f64 x x -1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (fma.f64 x x -1) 4)) (pow.f64 (cbrt.f64 (fma.f64 x x -1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 x x -1)) 2) (cbrt.f64 (pow.f64 (fma.f64 x x -1) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 x x -1)) 2) (*.f64 (cbrt.f64 (fma.f64 x x -1)) (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 x x -1)) (*.f64 (sqrt.f64 (fma.f64 x x -1)) (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (fma.f64 x x -1) (sqrt.f64 (fma.f64 x x -1))) (sqrt.f64 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (fma.f64 x x -1) (pow.f64 (cbrt.f64 (fma.f64 x x -1)) 2)) (cbrt.f64 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 x x -1) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (fma.f64 x x -1) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (fma.f64 x x -1) 2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (fma.f64 x x -1) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (fma.f64 x x -1) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 2 (log.f64 (fma.f64 x x -1))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 100 (pow.f64 (fma.f64 x x -1) -2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 100 (pow.f64 (fma.f64 x x -1) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 100 (pow.f64 (fma.f64 x x -1) -2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 10 (fma.f64 x x -1)) (/.f64 10 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 100 (pow.f64 (fma.f64 x x -1) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 10 (fma.f64 x x -1))) 2) (cbrt.f64 (/.f64 10000 (pow.f64 (fma.f64 x x -1) 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 10 (fma.f64 x x -1))) 2) (*.f64 (cbrt.f64 (/.f64 10 (fma.f64 x x -1))) (/.f64 10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 10000 (pow.f64 (fma.f64 x x -1) 4))) (pow.f64 (cbrt.f64 (/.f64 10 (fma.f64 x x -1))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 10 (fma.f64 x x -1))) (*.f64 (sqrt.f64 (/.f64 10 (fma.f64 x x -1))) (/.f64 10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -100 (/.f64 1 (neg.f64 (pow.f64 (fma.f64 x x -1) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (fma.f64 x x -1) -2) 100)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 10 (fma.f64 x x -1)) (sqrt.f64 (/.f64 10 (fma.f64 x x -1)))) (sqrt.f64 (/.f64 10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 10 (fma.f64 x x -1)) (pow.f64 (cbrt.f64 (/.f64 10 (fma.f64 x x -1))) 2)) (cbrt.f64 (/.f64 10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 100 (pow.f64 (fma.f64 x x -1) -2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 10 (fma.f64 x x -1)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 10000 (pow.f64 (fma.f64 x x -1) 4)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 100 (pow.f64 (fma.f64 x x -1) -2)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 (/.f64 10 (fma.f64 x x -1))) 2) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (fma.f64 x x -1) 2) 1/100) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (/.f64 10000 (pow.f64 (fma.f64 x x -1) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 100) (pow.f64 (fma.f64 x x -1) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 100 (pow.f64 (fma.f64 x x -1) -2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 100 (pow.f64 (fma.f64 x x -1) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 100 (pow.f64 (fma.f64 x x -1) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 100 (pow.f64 (fma.f64 x x -1) -2))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (/.f64 10 (fma.f64 x x -1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 10 (fma.f64 x x -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 10 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 10 (fma.f64 x x -1))) 2) (cbrt.f64 (/.f64 10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 10 (fma.f64 x x -1))) (pow.f64 (cbrt.f64 (/.f64 10 (fma.f64 x x -1))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 10 (fma.f64 x x -1))) (sqrt.f64 (/.f64 10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 10 (sqrt.f64 (pow.f64 (fma.f64 x x -1) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 10 (/.f64 1 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cbrt.f64 (/.f64 10000 (pow.f64 (fma.f64 x x -1) 4)))) (sqrt.f64 (pow.f64 (cbrt.f64 (/.f64 10 (fma.f64 x x -1))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 100 1/2) (pow.f64 (pow.f64 (fma.f64 x x -1) -2) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/2) (/.f64 10 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 10000 (pow.f64 (fma.f64 x x -1) 4))) 1/2) (pow.f64 (pow.f64 (cbrt.f64 (/.f64 10 (fma.f64 x x -1))) 2) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (sqrt.f64 (*.f64 (pow.f64 (fma.f64 x x -1) 2) 1/100)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 x x -1) 10))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 10 (fma.f64 x x -1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 -100) (sqrt.f64 (neg.f64 (pow.f64 (fma.f64 x x -1) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -10 (neg.f64 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 100 (pow.f64 (fma.f64 x x -1) -2)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 10 (fma.f64 x x -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1000 (pow.f64 (fma.f64 x x -1) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 10 (fma.f64 x x -1))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 10 (fma.f64 x x -1))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (/.f64 10 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 1000 (pow.f64 (fma.f64 x x -1) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 10 (fma.f64 x x -1))))))))

simplify48.0ms (0.7%)

Algorithm
egg-herbie
Rules
798×fma-def_binary64
582×distribute-rgt-out_binary64
446×unswap-sqr_binary64
433×distribute-lft-out_binary64
369×associate-/r*_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
066551
1186545
2462524
31243524
44630521
Stop Event
node limit
Counts
107 → 108
Calls
Call 1
Inputs
1
(+.f64 (*.f64 -2 (pow.f64 x 2)) 1)
(+.f64 (*.f64 -2 (pow.f64 x 2)) (+.f64 1 (pow.f64 x 4)))
(+.f64 (*.f64 -2 (pow.f64 x 2)) (+.f64 1 (pow.f64 x 4)))
(pow.f64 x 4)
(+.f64 (*.f64 -2 (pow.f64 x 2)) (pow.f64 x 4))
(+.f64 (*.f64 -2 (pow.f64 x 2)) (+.f64 1 (pow.f64 x 4)))
(+.f64 (*.f64 -2 (pow.f64 x 2)) (+.f64 1 (pow.f64 x 4)))
(pow.f64 x 4)
(+.f64 (*.f64 -2 (pow.f64 x 2)) (pow.f64 x 4))
(+.f64 (*.f64 -2 (pow.f64 x 2)) (+.f64 1 (pow.f64 x 4)))
(+.f64 (*.f64 -2 (pow.f64 x 2)) (+.f64 1 (pow.f64 x 4)))
100
(+.f64 100 (*.f64 200 (pow.f64 x 2)))
(+.f64 100 (+.f64 (*.f64 300 (pow.f64 x 4)) (*.f64 200 (pow.f64 x 2))))
(+.f64 100 (+.f64 (*.f64 400 (pow.f64 x 6)) (+.f64 (*.f64 300 (pow.f64 x 4)) (*.f64 200 (pow.f64 x 2)))))
(/.f64 100 (pow.f64 x 4))
(+.f64 (*.f64 100 (/.f64 1 (pow.f64 x 4))) (*.f64 200 (/.f64 1 (pow.f64 x 6))))
(+.f64 (*.f64 100 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 200 (/.f64 1 (pow.f64 x 6))) (*.f64 300 (/.f64 1 (pow.f64 x 8)))))
(+.f64 (*.f64 100 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 400 (/.f64 1 (pow.f64 x 10))) (+.f64 (*.f64 200 (/.f64 1 (pow.f64 x 6))) (*.f64 300 (/.f64 1 (pow.f64 x 8))))))
(/.f64 100 (pow.f64 x 4))
(+.f64 (*.f64 100 (/.f64 1 (pow.f64 x 4))) (*.f64 200 (/.f64 1 (pow.f64 x 6))))
(+.f64 (*.f64 100 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 200 (/.f64 1 (pow.f64 x 6))) (*.f64 300 (/.f64 1 (pow.f64 x 8)))))
(+.f64 (*.f64 100 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 400 (/.f64 1 (pow.f64 x 10))) (+.f64 (*.f64 200 (/.f64 1 (pow.f64 x 6))) (*.f64 300 (/.f64 1 (pow.f64 x 8))))))
-10
(-.f64 (*.f64 -10 (pow.f64 x 2)) 10)
(-.f64 (+.f64 (*.f64 -10 (pow.f64 x 4)) (*.f64 -10 (pow.f64 x 2))) 10)
(-.f64 (+.f64 (*.f64 -10 (pow.f64 x 4)) (+.f64 (*.f64 -10 (pow.f64 x 6)) (*.f64 -10 (pow.f64 x 2)))) 10)
(/.f64 10 (pow.f64 x 2))
(+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))
(+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
(/.f64 10 (pow.f64 x 2))
(+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))
(+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
Outputs
1
(+.f64 (*.f64 -2 (pow.f64 x 2)) 1)
(fma.f64 -2 (*.f64 x x) 1)
(fma.f64 x (*.f64 -2 x) 1)
(+.f64 (*.f64 -2 (pow.f64 x 2)) (+.f64 1 (pow.f64 x 4)))
(+.f64 (fma.f64 -2 (*.f64 x x) 1) (pow.f64 x 4))
(fma.f64 (*.f64 x x) (fma.f64 x x -2) 1)
(fma.f64 x (*.f64 x (fma.f64 x x -2)) 1)
(+.f64 (*.f64 -2 (pow.f64 x 2)) (+.f64 1 (pow.f64 x 4)))
(+.f64 (fma.f64 -2 (*.f64 x x) 1) (pow.f64 x 4))
(fma.f64 (*.f64 x x) (fma.f64 x x -2) 1)
(fma.f64 x (*.f64 x (fma.f64 x x -2)) 1)
(pow.f64 x 4)
(+.f64 (*.f64 -2 (pow.f64 x 2)) (pow.f64 x 4))
(fma.f64 -2 (*.f64 x x) (pow.f64 x 4))
(*.f64 x (*.f64 x (fma.f64 x x -2)))
(*.f64 (*.f64 x x) (fma.f64 x x -2))
(+.f64 (*.f64 -2 (pow.f64 x 2)) (+.f64 1 (pow.f64 x 4)))
(+.f64 (fma.f64 -2 (*.f64 x x) 1) (pow.f64 x 4))
(fma.f64 (*.f64 x x) (fma.f64 x x -2) 1)
(fma.f64 x (*.f64 x (fma.f64 x x -2)) 1)
(+.f64 (*.f64 -2 (pow.f64 x 2)) (+.f64 1 (pow.f64 x 4)))
(+.f64 (fma.f64 -2 (*.f64 x x) 1) (pow.f64 x 4))
(fma.f64 (*.f64 x x) (fma.f64 x x -2) 1)
(fma.f64 x (*.f64 x (fma.f64 x x -2)) 1)
(pow.f64 x 4)
(+.f64 (*.f64 -2 (pow.f64 x 2)) (pow.f64 x 4))
(fma.f64 -2 (*.f64 x x) (pow.f64 x 4))
(*.f64 x (*.f64 x (fma.f64 x x -2)))
(*.f64 (*.f64 x x) (fma.f64 x x -2))
(+.f64 (*.f64 -2 (pow.f64 x 2)) (+.f64 1 (pow.f64 x 4)))
(+.f64 (fma.f64 -2 (*.f64 x x) 1) (pow.f64 x 4))
(fma.f64 (*.f64 x x) (fma.f64 x x -2) 1)
(fma.f64 x (*.f64 x (fma.f64 x x -2)) 1)
(+.f64 (*.f64 -2 (pow.f64 x 2)) (+.f64 1 (pow.f64 x 4)))
(+.f64 (fma.f64 -2 (*.f64 x x) 1) (pow.f64 x 4))
(fma.f64 (*.f64 x x) (fma.f64 x x -2) 1)
(fma.f64 x (*.f64 x (fma.f64 x x -2)) 1)
100
(+.f64 100 (*.f64 200 (pow.f64 x 2)))
(+.f64 100 (*.f64 (*.f64 x x) 200))
(fma.f64 (*.f64 x x) 200 100)
(fma.f64 x (*.f64 x 200) 100)
(+.f64 100 (+.f64 (*.f64 300 (pow.f64 x 4)) (*.f64 200 (pow.f64 x 2))))
(+.f64 100 (fma.f64 300 (pow.f64 x 4) (*.f64 (*.f64 x x) 200)))
(+.f64 (fma.f64 (*.f64 x x) 200 100) (*.f64 (pow.f64 x 4) 300))
(fma.f64 (pow.f64 x 4) 300 (fma.f64 x (*.f64 x 200) 100))
(fma.f64 x (*.f64 x 200) (fma.f64 (pow.f64 x 4) 300 100))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 300) 200) 100)
(+.f64 100 (+.f64 (*.f64 400 (pow.f64 x 6)) (+.f64 (*.f64 300 (pow.f64 x 4)) (*.f64 200 (pow.f64 x 2)))))
(+.f64 100 (fma.f64 400 (pow.f64 x 6) (fma.f64 300 (pow.f64 x 4) (*.f64 (*.f64 x x) 200))))
(+.f64 (fma.f64 400 (pow.f64 x 6) (*.f64 (pow.f64 x 4) 300)) (fma.f64 (*.f64 x x) 200 100))
(fma.f64 400 (pow.f64 x 6) (fma.f64 (pow.f64 x 4) 300 (fma.f64 x (*.f64 x 200) 100)))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 300) 200) (fma.f64 400 (pow.f64 x 6) 100))
(/.f64 100 (pow.f64 x 4))
(+.f64 (*.f64 100 (/.f64 1 (pow.f64 x 4))) (*.f64 200 (/.f64 1 (pow.f64 x 6))))
(+.f64 (/.f64 100 (pow.f64 x 4)) (/.f64 200 (pow.f64 x 6)))
(+.f64 (*.f64 100 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 200 (/.f64 1 (pow.f64 x 6))) (*.f64 300 (/.f64 1 (pow.f64 x 8)))))
(+.f64 (/.f64 100 (pow.f64 x 4)) (+.f64 (/.f64 200 (pow.f64 x 6)) (/.f64 300 (pow.f64 x 8))))
(+.f64 (/.f64 200 (pow.f64 x 6)) (+.f64 (/.f64 300 (pow.f64 x 8)) (/.f64 100 (pow.f64 x 4))))
(+.f64 (*.f64 100 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 400 (/.f64 1 (pow.f64 x 10))) (+.f64 (*.f64 200 (/.f64 1 (pow.f64 x 6))) (*.f64 300 (/.f64 1 (pow.f64 x 8))))))
(+.f64 (/.f64 100 (pow.f64 x 4)) (+.f64 (+.f64 (/.f64 400 (pow.f64 x 10)) (/.f64 200 (pow.f64 x 6))) (/.f64 300 (pow.f64 x 8))))
(+.f64 (+.f64 (/.f64 200 (pow.f64 x 6)) (/.f64 300 (pow.f64 x 8))) (+.f64 (/.f64 100 (pow.f64 x 4)) (/.f64 400 (pow.f64 x 10))))
(+.f64 (/.f64 100 (pow.f64 x 4)) (+.f64 (/.f64 300 (pow.f64 x 8)) (+.f64 (/.f64 200 (pow.f64 x 6)) (/.f64 400 (pow.f64 x 10)))))
(/.f64 100 (pow.f64 x 4))
(+.f64 (*.f64 100 (/.f64 1 (pow.f64 x 4))) (*.f64 200 (/.f64 1 (pow.f64 x 6))))
(+.f64 (/.f64 100 (pow.f64 x 4)) (/.f64 200 (pow.f64 x 6)))
(+.f64 (*.f64 100 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 200 (/.f64 1 (pow.f64 x 6))) (*.f64 300 (/.f64 1 (pow.f64 x 8)))))
(+.f64 (/.f64 100 (pow.f64 x 4)) (+.f64 (/.f64 200 (pow.f64 x 6)) (/.f64 300 (pow.f64 x 8))))
(+.f64 (/.f64 200 (pow.f64 x 6)) (+.f64 (/.f64 300 (pow.f64 x 8)) (/.f64 100 (pow.f64 x 4))))
(+.f64 (*.f64 100 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 400 (/.f64 1 (pow.f64 x 10))) (+.f64 (*.f64 200 (/.f64 1 (pow.f64 x 6))) (*.f64 300 (/.f64 1 (pow.f64 x 8))))))
(+.f64 (/.f64 100 (pow.f64 x 4)) (+.f64 (+.f64 (/.f64 400 (pow.f64 x 10)) (/.f64 200 (pow.f64 x 6))) (/.f64 300 (pow.f64 x 8))))
(+.f64 (+.f64 (/.f64 200 (pow.f64 x 6)) (/.f64 300 (pow.f64 x 8))) (+.f64 (/.f64 100 (pow.f64 x 4)) (/.f64 400 (pow.f64 x 10))))
(+.f64 (/.f64 100 (pow.f64 x 4)) (+.f64 (/.f64 300 (pow.f64 x 8)) (+.f64 (/.f64 200 (pow.f64 x 6)) (/.f64 400 (pow.f64 x 10)))))
-10
(-.f64 (*.f64 -10 (pow.f64 x 2)) 10)
(fma.f64 -10 (*.f64 x x) -10)
(fma.f64 (*.f64 x x) -10 -10)
(*.f64 -10 (fma.f64 x x 1))
(-.f64 (+.f64 (*.f64 -10 (pow.f64 x 4)) (*.f64 -10 (pow.f64 x 2))) 10)
(+.f64 (*.f64 -10 (+.f64 (pow.f64 x 4) (*.f64 x x))) -10)
(fma.f64 -10 (+.f64 (*.f64 x x) (pow.f64 x 4)) -10)
(fma.f64 -10 (fma.f64 x x (pow.f64 x 4)) -10)
(-.f64 (+.f64 (*.f64 -10 (pow.f64 x 4)) (+.f64 (*.f64 -10 (pow.f64 x 6)) (*.f64 -10 (pow.f64 x 2)))) 10)
(+.f64 (fma.f64 -10 (pow.f64 x 4) (*.f64 -10 (+.f64 (pow.f64 x 6) (*.f64 x x)))) -10)
(fma.f64 (pow.f64 x 4) -10 (fma.f64 -10 (+.f64 (*.f64 x x) (pow.f64 x 6)) -10))
(fma.f64 -10 (+.f64 (pow.f64 x 4) (fma.f64 x x (pow.f64 x 6))) -10)
(*.f64 (fma.f64 x x 1) (fma.f64 (pow.f64 x 4) -10 -10))
(/.f64 10 (pow.f64 x 2))
(/.f64 10 (*.f64 x x))
(+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))
(+.f64 (/.f64 10 (pow.f64 x 4)) (/.f64 10 (*.f64 x x)))
(+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))))
(+.f64 (/.f64 10 (*.f64 x x)) (+.f64 (/.f64 10 (pow.f64 x 4)) (/.f64 10 (pow.f64 x 6))))
(+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
(+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))) (/.f64 10 (pow.f64 x 8))))
(+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (/.f64 10 (pow.f64 x 6)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 8)))))
(+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (+.f64 (/.f64 10 (pow.f64 x 6)) (/.f64 10 (pow.f64 x 8)))))
(/.f64 10 (pow.f64 x 2))
(/.f64 10 (*.f64 x x))
(+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))
(+.f64 (/.f64 10 (pow.f64 x 4)) (/.f64 10 (*.f64 x x)))
(+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))))
(+.f64 (/.f64 10 (*.f64 x x)) (+.f64 (/.f64 10 (pow.f64 x 4)) (/.f64 10 (pow.f64 x 6))))
(+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
(+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))) (/.f64 10 (pow.f64 x 8))))
(+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (/.f64 10 (pow.f64 x 6)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 8)))))
(+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (+.f64 (/.f64 10 (pow.f64 x 6)) (/.f64 10 (pow.f64 x 8)))))

localize65.0ms (0.9%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (cbrt.f64 -10) (/.f64 1 (cbrt.f64 (fma.f64 x x -1))))
0.6b
(cbrt.f64 (fma.f64 x x -1))
0.8b
(pow.f64 (*.f64 (cbrt.f64 -10) (/.f64 1 (cbrt.f64 (fma.f64 x x -1)))) 3)
1.0b
(cbrt.f64 -10)
Compiler

Compiled 46 to 35 computations (23.9% saved)

series9.0ms (0.1%)

Counts
4 → 12
Calls

9 calls:

TimeVariablePointExpression
2.0ms
x
@0
(cbrt.f64 (fma.f64 x x -1))
1.0ms
x
@inf
(pow.f64 (*.f64 (cbrt.f64 -10) (/.f64 1 (cbrt.f64 (fma.f64 x x -1)))) 3)
1.0ms
x
@-inf
(pow.f64 (*.f64 (cbrt.f64 -10) (/.f64 1 (cbrt.f64 (fma.f64 x x -1)))) 3)
1.0ms
x
@0
(pow.f64 (*.f64 (cbrt.f64 -10) (/.f64 1 (cbrt.f64 (fma.f64 x x -1)))) 3)
1.0ms
x
@inf
(cbrt.f64 (fma.f64 x x -1))

rewrite115.0ms (1.7%)

Algorithm
batch-egg-rewrite
Rules
961×pow1_binary64
904×add-log-exp_binary64
902×log1p-expm1-u_binary64
902×expm1-log1p-u_binary64
108×add-sqr-sqrt_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01237
124328
2260628
Stop Event
node limit
Counts
4 → 93
Calls
Call 1
Inputs
(cbrt.f64 -10)
(pow.f64 (*.f64 (cbrt.f64 -10) (/.f64 1 (cbrt.f64 (fma.f64 x x -1)))) 3)
(cbrt.f64 (fma.f64 x x -1))
(*.f64 (cbrt.f64 -10) (/.f64 1 (cbrt.f64 (fma.f64 x x -1))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (cbrt.f64 -10))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 -10) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cbrt.f64 -10))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 -10)) (cbrt.f64 (cbrt.f64 100)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 100)) (cbrt.f64 (cbrt.f64 -10)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 100)) (*.f64 (cbrt.f64 (cbrt.f64 -10)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 -10 1/6) (pow.f64 -10 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 -10 1/6) (*.f64 (pow.f64 -10 1/6) 1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 -10 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 -10) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (cbrt.f64 -10)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 -10 1/6) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (cbrt.f64 100))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (cbrt.f64 -10)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (cbrt.f64 -10))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (cbrt.f64 -10)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (cbrt.f64 -10)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (cbrt.f64 -10)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 -10 (fma.f64 x x -1)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -10 (/.f64 1 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 -10) (*.f64 (/.f64 1 (cbrt.f64 (fma.f64 x x -1))) (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 -10 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 (fma.f64 x x -1))) (*.f64 (cbrt.f64 -10) (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -10 (fma.f64 x x -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2) (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1)))) 2) (*.f64 (cbrt.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1)))) (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1)))) (*.f64 (sqrt.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1)))) (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (fma.f64 x x -1)) -10)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 -10 (fma.f64 x x -1))) (sqrt.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1)))) 2) 3) (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1)))) 3) (pow.f64 (sqrt.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2) (cbrt.f64 -10)) (/.f64 1 (cbrt.f64 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2) 1) (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2) (/.f64 1 (cbrt.f64 (fma.f64 x x -1)))) (cbrt.f64 -10))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2) (pow.f64 (cbrt.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1)))) 2)) (cbrt.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2) (sqrt.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))))) (sqrt.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -10 (fma.f64 x x -1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cbrt.f64 -10) (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2)) (cbrt.f64 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2) (cbrt.f64 -10)) (cbrt.f64 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 -10 (fma.f64 x x -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (cbrt.f64 (fma.f64 x x -1)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cbrt.f64 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 x x -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (fma.f64 x x -1))) (pow.f64 (cbrt.f64 (cbrt.f64 (fma.f64 x x -1))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (fma.f64 x x -1))) 2) (cbrt.f64 (cbrt.f64 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (fma.f64 x x -1) 1/6) (pow.f64 (fma.f64 x x -1) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (cbrt.f64 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (fma.f64 x x -1)) 2) 1/3) (cbrt.f64 (cbrt.f64 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (fma.f64 x x -1)) 1/3) (pow.f64 (sqrt.f64 (fma.f64 x x -1)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 1 (cbrt.f64 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (cbrt.f64 (fma.f64 x x -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (fma.f64 x x -1))) 2) (/.f64 1 (cbrt.f64 (cbrt.f64 (fma.f64 x x -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (fma.f64 x x -1) 1/6) (pow.f64 (cbrt.f64 (fma.f64 x x -1)) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (cbrt.f64 (fma.f64 x x -1))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 x x -1) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 x x -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (cbrt.f64 (fma.f64 x x -1))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 x x -1) 1/6) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 x x -1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (cbrt.f64 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (cbrt.f64 (fma.f64 x x -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (cbrt.f64 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (cbrt.f64 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (cbrt.f64 (fma.f64 x x -1))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (cbrt.f64 -10) (cbrt.f64 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (cbrt.f64 (fma.f64 x x -1)) (cbrt.f64 -10)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (cbrt.f64 (cbrt.f64 100)) (/.f64 (cbrt.f64 (fma.f64 x x -1)) (cbrt.f64 (cbrt.f64 -10))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 -10 1/6) (/.f64 (cbrt.f64 (fma.f64 x x -1)) (pow.f64 -10 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (cbrt.f64 -10)) (neg.f64 (cbrt.f64 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (cbrt.f64 -10) (pow.f64 (fma.f64 x x -1) 1/6)) (pow.f64 (fma.f64 x x -1) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (cbrt.f64 -10) 1) (cbrt.f64 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (cbrt.f64 -10) (pow.f64 (cbrt.f64 (cbrt.f64 (fma.f64 x x -1))) 2)) (cbrt.f64 (cbrt.f64 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -1 (cbrt.f64 -10)) (neg.f64 (cbrt.f64 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cbrt.f64 -10) -1) (neg.f64 (cbrt.f64 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 -10 (fma.f64 x x -1)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 -10 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1)))))))))

simplify162.0ms (2.3%)

Algorithm
egg-herbie
Rules
719×associate-+l+_binary64
605×associate-/r/_binary64
571×associate-+r+_binary64
404×associate-/l/_binary64
396×distribute-rgt-in_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
095529
1242478
2758460
33639388
Stop Event
node limit
Counts
105 → 115
Calls
Call 1
Inputs
10
(+.f64 (*.f64 10 (pow.f64 x 2)) 10)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 10 (*.f64 (+.f64 40/9 (*.f64 (+.f64 (*.f64 -4/9 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (cbrt.f64 -1))) (*.f64 1/9 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (pow.f64 (cbrt.f64 -1) 4)))) (*.f64 (cbrt.f64 -1) (cbrt.f64 -10)))) (pow.f64 x 4))))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 10 (+.f64 (*.f64 (+.f64 40/9 (*.f64 (+.f64 (*.f64 -4/9 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (cbrt.f64 -1))) (*.f64 1/9 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (pow.f64 (cbrt.f64 -1) 4)))) (*.f64 (cbrt.f64 -1) (cbrt.f64 -10)))) (pow.f64 x 4)) (*.f64 (+.f64 (*.f64 -1/3 (/.f64 (*.f64 (+.f64 (*.f64 -4/9 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (cbrt.f64 -1))) (*.f64 1/9 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (pow.f64 (cbrt.f64 -1) 4)))) (cbrt.f64 -10)) (pow.f64 (cbrt.f64 -1) 2))) (+.f64 40/27 (+.f64 (*.f64 -10/3 (-.f64 (*.f64 1/27 (/.f64 1 (pow.f64 (cbrt.f64 -1) 6))) 5/9)) (*.f64 (+.f64 (*.f64 4/27 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (pow.f64 (cbrt.f64 -1) 4))) (*.f64 2/3 (/.f64 (*.f64 (-.f64 (*.f64 1/27 (/.f64 1 (pow.f64 (cbrt.f64 -1) 6))) 5/9) (pow.f64 (cbrt.f64 -10) 2)) (cbrt.f64 -1)))) (*.f64 (cbrt.f64 -1) (cbrt.f64 -10)))))) (pow.f64 x 6)))))
(cbrt.f64 -1)
(+.f64 (cbrt.f64 -1) (*.f64 1/3 (/.f64 (pow.f64 x 2) (pow.f64 (cbrt.f64 -1) 2))))
(+.f64 (cbrt.f64 -1) (+.f64 (*.f64 1/3 (/.f64 (pow.f64 x 2) (pow.f64 (cbrt.f64 -1) 2))) (*.f64 -1/9 (/.f64 (pow.f64 x 4) (pow.f64 (cbrt.f64 -1) 5)))))
(+.f64 (*.f64 5/81 (/.f64 (pow.f64 x 6) (pow.f64 (cbrt.f64 -1) 8))) (+.f64 (cbrt.f64 -1) (+.f64 (*.f64 1/3 (/.f64 (pow.f64 x 2) (pow.f64 (cbrt.f64 -1) 2))) (*.f64 -1/9 (/.f64 (pow.f64 x 4) (pow.f64 (cbrt.f64 -1) 5))))))
(*.f64 (cbrt.f64 -1) (cbrt.f64 -10))
(+.f64 (*.f64 (cbrt.f64 -1) (cbrt.f64 -10)) (*.f64 -1/3 (/.f64 (*.f64 (cbrt.f64 -10) (pow.f64 x 2)) (pow.f64 (cbrt.f64 -1) 2))))
(+.f64 (*.f64 (cbrt.f64 -1) (cbrt.f64 -10)) (+.f64 (*.f64 -1/3 (/.f64 (*.f64 (cbrt.f64 -10) (pow.f64 x 2)) (pow.f64 (cbrt.f64 -1) 2))) (*.f64 -2/9 (/.f64 (*.f64 (cbrt.f64 -10) (pow.f64 x 4)) (pow.f64 (cbrt.f64 -1) 2)))))
(+.f64 (*.f64 (cbrt.f64 -1) (cbrt.f64 -10)) (+.f64 (*.f64 -1/3 (/.f64 (*.f64 (cbrt.f64 -10) (pow.f64 x 2)) (pow.f64 (cbrt.f64 -1) 2))) (+.f64 (*.f64 -2/9 (/.f64 (*.f64 (cbrt.f64 -10) (pow.f64 x 4)) (pow.f64 (cbrt.f64 -1) 2))) (*.f64 1/3 (/.f64 (*.f64 (-.f64 (*.f64 1/27 (/.f64 1 (pow.f64 (cbrt.f64 -1) 6))) 5/9) (*.f64 (cbrt.f64 -10) (pow.f64 x 6))) (pow.f64 (cbrt.f64 -1) 2))))))
Outputs
10
(+.f64 (*.f64 10 (pow.f64 x 2)) 10)
(fma.f64 10 (*.f64 x x) 10)
(fma.f64 x (*.f64 10 x) 10)
(*.f64 10 (fma.f64 x x 1))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 10 (*.f64 (+.f64 40/9 (*.f64 (+.f64 (*.f64 -4/9 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (cbrt.f64 -1))) (*.f64 1/9 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (pow.f64 (cbrt.f64 -1) 4)))) (*.f64 (cbrt.f64 -1) (cbrt.f64 -10)))) (pow.f64 x 4))))
(+.f64 (fma.f64 10 (*.f64 x x) 10) (*.f64 (+.f64 40/9 (*.f64 (fma.f64 -4/9 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (cbrt.f64 -1)) (/.f64 (*.f64 1/9 (pow.f64 (cbrt.f64 -10) 2)) (pow.f64 (cbrt.f64 -1) 4))) (*.f64 (cbrt.f64 -10) (cbrt.f64 -1)))) (pow.f64 x 4)))
(fma.f64 10 (*.f64 x x) (fma.f64 (fma.f64 (fma.f64 -4/9 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (cbrt.f64 -1)) (*.f64 1/9 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (*.f64 (cbrt.f64 -1) -1)))) (*.f64 (cbrt.f64 -10) (cbrt.f64 -1)) 40/9) (pow.f64 x 4) 10))
(fma.f64 (fma.f64 (cbrt.f64 -1) (*.f64 (cbrt.f64 -10) (fma.f64 -4/9 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (cbrt.f64 -1)) (*.f64 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (cbrt.f64 -1)) -1/9))) 40/9) (pow.f64 x 4) (fma.f64 x (*.f64 10 x) 10))
(fma.f64 (fma.f64 (cbrt.f64 -10) (*.f64 (cbrt.f64 -1) (*.f64 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (cbrt.f64 -1)) -5/9)) 40/9) (pow.f64 x 4) (*.f64 10 (fma.f64 x x 1)))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 10 (+.f64 (*.f64 (+.f64 40/9 (*.f64 (+.f64 (*.f64 -4/9 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (cbrt.f64 -1))) (*.f64 1/9 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (pow.f64 (cbrt.f64 -1) 4)))) (*.f64 (cbrt.f64 -1) (cbrt.f64 -10)))) (pow.f64 x 4)) (*.f64 (+.f64 (*.f64 -1/3 (/.f64 (*.f64 (+.f64 (*.f64 -4/9 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (cbrt.f64 -1))) (*.f64 1/9 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (pow.f64 (cbrt.f64 -1) 4)))) (cbrt.f64 -10)) (pow.f64 (cbrt.f64 -1) 2))) (+.f64 40/27 (+.f64 (*.f64 -10/3 (-.f64 (*.f64 1/27 (/.f64 1 (pow.f64 (cbrt.f64 -1) 6))) 5/9)) (*.f64 (+.f64 (*.f64 4/27 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (pow.f64 (cbrt.f64 -1) 4))) (*.f64 2/3 (/.f64 (*.f64 (-.f64 (*.f64 1/27 (/.f64 1 (pow.f64 (cbrt.f64 -1) 6))) 5/9) (pow.f64 (cbrt.f64 -10) 2)) (cbrt.f64 -1)))) (*.f64 (cbrt.f64 -1) (cbrt.f64 -10)))))) (pow.f64 x 6)))))
(+.f64 (fma.f64 10 (*.f64 x x) 10) (fma.f64 (+.f64 40/9 (*.f64 (fma.f64 -4/9 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (cbrt.f64 -1)) (/.f64 (*.f64 1/9 (pow.f64 (cbrt.f64 -10) 2)) (pow.f64 (cbrt.f64 -1) 4))) (*.f64 (cbrt.f64 -10) (cbrt.f64 -1)))) (pow.f64 x 4) (*.f64 (fma.f64 -1/3 (/.f64 (fma.f64 -4/9 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (cbrt.f64 -1)) (/.f64 (*.f64 1/9 (pow.f64 (cbrt.f64 -10) 2)) (pow.f64 (cbrt.f64 -1) 4))) (/.f64 (pow.f64 (cbrt.f64 -1) 2) (cbrt.f64 -10))) (+.f64 40/27 (fma.f64 -10/3 (+.f64 (/.f64 1/27 (pow.f64 (cbrt.f64 -1) 6)) -5/9) (*.f64 (*.f64 (cbrt.f64 -10) (cbrt.f64 -1)) (fma.f64 4/27 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (pow.f64 (cbrt.f64 -1) 4)) (*.f64 2/3 (/.f64 (+.f64 (/.f64 1/27 (pow.f64 (cbrt.f64 -1) 6)) -5/9) (/.f64 (cbrt.f64 -1) (pow.f64 (cbrt.f64 -10) 2))))))))) (pow.f64 x 6))))
(+.f64 (fma.f64 10 (*.f64 x x) 10) (fma.f64 (fma.f64 (fma.f64 -4/9 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (cbrt.f64 -1)) (*.f64 1/9 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (*.f64 (cbrt.f64 -1) -1)))) (*.f64 (cbrt.f64 -10) (cbrt.f64 -1)) 40/9) (pow.f64 x 4) (*.f64 (fma.f64 -1/3 (/.f64 (fma.f64 -4/9 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (cbrt.f64 -1)) (*.f64 1/9 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (*.f64 (cbrt.f64 -1) -1)))) (/.f64 (pow.f64 (cbrt.f64 -1) 2) (cbrt.f64 -10))) (+.f64 (*.f64 (*.f64 (cbrt.f64 -10) (cbrt.f64 -1)) (fma.f64 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (*.f64 (cbrt.f64 -1) -1)) 4/27 (/.f64 -28/81 (/.f64 (cbrt.f64 -1) (pow.f64 (cbrt.f64 -10) 2))))) 260/81)) (pow.f64 x 6))))
(fma.f64 10 (*.f64 x x) (fma.f64 (fma.f64 (cbrt.f64 -1) (*.f64 (cbrt.f64 -10) (fma.f64 -4/9 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (cbrt.f64 -1)) (*.f64 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (cbrt.f64 -1)) -1/9))) 40/9) (pow.f64 x 4) (fma.f64 (fma.f64 -1/3 (*.f64 (/.f64 (cbrt.f64 -10) (pow.f64 (cbrt.f64 -1) 2)) (fma.f64 -4/9 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (cbrt.f64 -1)) (*.f64 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (cbrt.f64 -1)) -1/9))) (fma.f64 (cbrt.f64 -10) (*.f64 (cbrt.f64 -1) (fma.f64 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (neg.f64 (cbrt.f64 -1))) 4/27 (*.f64 (/.f64 -28/81 (cbrt.f64 -1)) (pow.f64 (cbrt.f64 -10) 2)))) 260/81)) (pow.f64 x 6) 10)))
(fma.f64 10 (*.f64 x x) (fma.f64 (fma.f64 (cbrt.f64 -10) (*.f64 (cbrt.f64 -1) (*.f64 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (cbrt.f64 -1)) -5/9)) 40/9) (pow.f64 x 4) (fma.f64 (+.f64 260/81 (*.f64 (cbrt.f64 -10) (+.f64 (/.f64 (*.f64 (*.f64 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (cbrt.f64 -1)) -5/9) -1/3) (pow.f64 (cbrt.f64 -1) 2)) (*.f64 (cbrt.f64 -1) (*.f64 (pow.f64 (cbrt.f64 -10) 2) (+.f64 (/.f64 4/27 (neg.f64 (cbrt.f64 -1))) (/.f64 -28/81 (cbrt.f64 -1)))))))) (pow.f64 x 6) 10)))
(cbrt.f64 -1)
(+.f64 (cbrt.f64 -1) (*.f64 1/3 (/.f64 (pow.f64 x 2) (pow.f64 (cbrt.f64 -1) 2))))
(+.f64 (cbrt.f64 -1) (*.f64 1/3 (/.f64 (*.f64 x x) (pow.f64 (cbrt.f64 -1) 2))))
(fma.f64 1/3 (/.f64 x (/.f64 (pow.f64 (cbrt.f64 -1) 2) x)) (cbrt.f64 -1))
(fma.f64 1/3 (/.f64 (*.f64 x x) (pow.f64 (cbrt.f64 -1) 2)) (cbrt.f64 -1))
(fma.f64 1/3 (*.f64 (/.f64 x (pow.f64 (cbrt.f64 -1) 2)) x) (cbrt.f64 -1))
(+.f64 (cbrt.f64 -1) (+.f64 (*.f64 1/3 (/.f64 (pow.f64 x 2) (pow.f64 (cbrt.f64 -1) 2))) (*.f64 -1/9 (/.f64 (pow.f64 x 4) (pow.f64 (cbrt.f64 -1) 5)))))
(+.f64 (cbrt.f64 -1) (fma.f64 1/3 (/.f64 (*.f64 x x) (pow.f64 (cbrt.f64 -1) 2)) (*.f64 -1/9 (/.f64 (pow.f64 x 4) (pow.f64 (cbrt.f64 -1) 5)))))
(+.f64 (cbrt.f64 -1) (fma.f64 1/3 (/.f64 x (/.f64 (pow.f64 (cbrt.f64 -1) 2) x)) (*.f64 -1/9 (/.f64 (pow.f64 x 4) (pow.f64 (cbrt.f64 -1) 5)))))
(fma.f64 1/3 (/.f64 (*.f64 x x) (pow.f64 (cbrt.f64 -1) 2)) (fma.f64 -1/9 (/.f64 (pow.f64 x 4) (pow.f64 (cbrt.f64 -1) 5)) (cbrt.f64 -1)))
(fma.f64 1/3 (*.f64 (/.f64 x (pow.f64 (cbrt.f64 -1) 2)) x) (fma.f64 -1/9 (/.f64 (pow.f64 x 4) (pow.f64 (cbrt.f64 -1) 5)) (cbrt.f64 -1)))
(+.f64 (*.f64 5/81 (/.f64 (pow.f64 x 6) (pow.f64 (cbrt.f64 -1) 8))) (+.f64 (cbrt.f64 -1) (+.f64 (*.f64 1/3 (/.f64 (pow.f64 x 2) (pow.f64 (cbrt.f64 -1) 2))) (*.f64 -1/9 (/.f64 (pow.f64 x 4) (pow.f64 (cbrt.f64 -1) 5))))))
(fma.f64 5/81 (/.f64 (pow.f64 x 6) (pow.f64 (cbrt.f64 -1) 8)) (+.f64 (cbrt.f64 -1) (fma.f64 1/3 (/.f64 (*.f64 x x) (pow.f64 (cbrt.f64 -1) 2)) (*.f64 -1/9 (/.f64 (pow.f64 x 4) (pow.f64 (cbrt.f64 -1) 5))))))
(+.f64 (fma.f64 1/3 (/.f64 x (/.f64 (pow.f64 (cbrt.f64 -1) 2) x)) (*.f64 -1/9 (/.f64 (pow.f64 x 4) (pow.f64 (cbrt.f64 -1) 5)))) (fma.f64 5/81 (/.f64 (pow.f64 x 6) (pow.f64 (cbrt.f64 -1) 8)) (cbrt.f64 -1)))
(fma.f64 5/81 (/.f64 (pow.f64 x 6) (pow.f64 (cbrt.f64 -1) 8)) (fma.f64 1/3 (/.f64 (*.f64 x x) (pow.f64 (cbrt.f64 -1) 2)) (fma.f64 -1/9 (/.f64 (pow.f64 x 4) (pow.f64 (cbrt.f64 -1) 5)) (cbrt.f64 -1))))
(fma.f64 5/81 (/.f64 (pow.f64 x 6) (pow.f64 (cbrt.f64 -1) 2)) (fma.f64 1/3 (*.f64 (/.f64 x (pow.f64 (cbrt.f64 -1) 2)) x) (fma.f64 -1/9 (/.f64 (pow.f64 x 4) (pow.f64 (cbrt.f64 -1) 5)) (cbrt.f64 -1))))
(*.f64 (cbrt.f64 -1) (cbrt.f64 -10))
(*.f64 (cbrt.f64 -10) (cbrt.f64 -1))
(+.f64 (*.f64 (cbrt.f64 -1) (cbrt.f64 -10)) (*.f64 -1/3 (/.f64 (*.f64 (cbrt.f64 -10) (pow.f64 x 2)) (pow.f64 (cbrt.f64 -1) 2))))
(fma.f64 (cbrt.f64 -1) (cbrt.f64 -10) (/.f64 (*.f64 -1/3 (*.f64 (*.f64 x x) (cbrt.f64 -10))) (pow.f64 (cbrt.f64 -1) 2)))
(fma.f64 (cbrt.f64 -10) (cbrt.f64 -1) (*.f64 -1/3 (*.f64 (/.f64 (cbrt.f64 -10) (pow.f64 (cbrt.f64 -1) 2)) (*.f64 x x))))
(fma.f64 (cbrt.f64 -10) (cbrt.f64 -1) (*.f64 -1/3 (*.f64 (/.f64 (*.f64 x x) (pow.f64 (cbrt.f64 -1) 2)) (cbrt.f64 -10))))
(fma.f64 (cbrt.f64 -10) (cbrt.f64 -1) (*.f64 (/.f64 (*.f64 (cbrt.f64 -10) -1/3) (pow.f64 (cbrt.f64 -1) 2)) (*.f64 x x)))
(+.f64 (*.f64 (cbrt.f64 -1) (cbrt.f64 -10)) (+.f64 (*.f64 -1/3 (/.f64 (*.f64 (cbrt.f64 -10) (pow.f64 x 2)) (pow.f64 (cbrt.f64 -1) 2))) (*.f64 -2/9 (/.f64 (*.f64 (cbrt.f64 -10) (pow.f64 x 4)) (pow.f64 (cbrt.f64 -1) 2)))))
(fma.f64 (cbrt.f64 -1) (cbrt.f64 -10) (fma.f64 -1/3 (/.f64 (cbrt.f64 -10) (/.f64 (pow.f64 (cbrt.f64 -1) 2) (*.f64 x x))) (/.f64 (*.f64 -2/9 (*.f64 (cbrt.f64 -10) (pow.f64 x 4))) (pow.f64 (cbrt.f64 -1) 2))))
(fma.f64 (cbrt.f64 -10) (cbrt.f64 -1) (fma.f64 -1/3 (*.f64 (/.f64 (cbrt.f64 -10) (pow.f64 (cbrt.f64 -1) 2)) (*.f64 x x)) (*.f64 -2/9 (/.f64 (pow.f64 x 4) (/.f64 (pow.f64 (cbrt.f64 -1) 2) (cbrt.f64 -10))))))
(fma.f64 (cbrt.f64 -10) (cbrt.f64 -1) (fma.f64 -1/3 (*.f64 (/.f64 (*.f64 x x) (pow.f64 (cbrt.f64 -1) 2)) (cbrt.f64 -10)) (*.f64 -2/9 (/.f64 (*.f64 (cbrt.f64 -10) (pow.f64 x 4)) (pow.f64 (cbrt.f64 -1) 2)))))
(fma.f64 (cbrt.f64 -10) (cbrt.f64 -1) (*.f64 (/.f64 (cbrt.f64 -10) (pow.f64 (cbrt.f64 -1) 2)) (+.f64 (*.f64 (*.f64 -1/3 x) x) (*.f64 (pow.f64 x 4) -2/9))))
(+.f64 (*.f64 (cbrt.f64 -1) (cbrt.f64 -10)) (+.f64 (*.f64 -1/3 (/.f64 (*.f64 (cbrt.f64 -10) (pow.f64 x 2)) (pow.f64 (cbrt.f64 -1) 2))) (+.f64 (*.f64 -2/9 (/.f64 (*.f64 (cbrt.f64 -10) (pow.f64 x 4)) (pow.f64 (cbrt.f64 -1) 2))) (*.f64 1/3 (/.f64 (*.f64 (-.f64 (*.f64 1/27 (/.f64 1 (pow.f64 (cbrt.f64 -1) 6))) 5/9) (*.f64 (cbrt.f64 -10) (pow.f64 x 6))) (pow.f64 (cbrt.f64 -1) 2))))))
(fma.f64 (cbrt.f64 -1) (cbrt.f64 -10) (fma.f64 -1/3 (/.f64 (cbrt.f64 -10) (/.f64 (pow.f64 (cbrt.f64 -1) 2) (*.f64 x x))) (fma.f64 -2/9 (/.f64 (cbrt.f64 -10) (/.f64 (pow.f64 (cbrt.f64 -1) 2) (pow.f64 x 4))) (*.f64 1/3 (/.f64 (+.f64 (/.f64 1/27 (pow.f64 (cbrt.f64 -1) 6)) -5/9) (/.f64 (pow.f64 (cbrt.f64 -1) 2) (*.f64 (cbrt.f64 -10) (pow.f64 x 6))))))))
(fma.f64 (cbrt.f64 -10) (cbrt.f64 -1) (fma.f64 -1/3 (*.f64 (/.f64 (cbrt.f64 -10) (pow.f64 (cbrt.f64 -1) 2)) (*.f64 x x)) (fma.f64 -2/9 (/.f64 (pow.f64 x 4) (/.f64 (pow.f64 (cbrt.f64 -1) 2) (cbrt.f64 -10))) (/.f64 -14/81 (/.f64 (pow.f64 (cbrt.f64 -1) 2) (*.f64 (cbrt.f64 -10) (pow.f64 x 6)))))))
(fma.f64 (cbrt.f64 -10) (cbrt.f64 -1) (fma.f64 -1/3 (*.f64 (/.f64 (*.f64 x x) (pow.f64 (cbrt.f64 -1) 2)) (cbrt.f64 -10)) (fma.f64 -2/9 (/.f64 (*.f64 (cbrt.f64 -10) (pow.f64 x 4)) (pow.f64 (cbrt.f64 -1) 2)) (/.f64 (*.f64 (pow.f64 x 6) (*.f64 -14/81 (cbrt.f64 -10))) (pow.f64 (cbrt.f64 -1) 2)))))
(+.f64 (*.f64 (/.f64 (cbrt.f64 -10) (pow.f64 (cbrt.f64 -1) 2)) (+.f64 (*.f64 (*.f64 -1/3 x) x) (*.f64 (pow.f64 x 4) -2/9))) (*.f64 (cbrt.f64 -10) (+.f64 (cbrt.f64 -1) (*.f64 (/.f64 -14/81 (pow.f64 (cbrt.f64 -1) 2)) (pow.f64 x 6)))))

eval320.0ms (4.6%)

Compiler

Compiled 5463 to 4410 computations (19.3% saved)

prune88.0ms (1.3%)

Pruning

23 alts after pruning (15 fresh and 8 done)

PrunedKeptTotal
New38710397
Fresh7512
Picked011
Done3710
Total39723420
Error
0b
Counts
420 → 23
Alt Table
Click to see full alt table
StatusErrorProgram
0.3b
(/.f64 -10 (fma.f64 x x -1))
42.9b
(*.f64 (exp.f64 (neg.f64 (log.f64 (fma.f64 x x -1)))) -10)
1.4b
(pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 3)
0.3b
(/.f64 1 (/.f64 (fma.f64 x x -1) -10))
7.9b
(/.f64 10 (/.f64 (-.f64 1 (*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x)))) (-.f64 1 (*.f64 x (neg.f64 x)))))
1.2b
(*.f64 (/.f64 1 (cbrt.f64 (fma.f64 x x -1))) (*.f64 (cbrt.f64 -10) (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2)))
21.4b
(sqrt.f64 (*.f64 (pow.f64 (fma.f64 x x -1) -2) 100))
57.9b
(/.f64 10 (*.f64 x x))
7.9b
(/.f64 10 (-.f64 1 (*.f64 x x)))
1.8b
(pow.f64 (*.f64 (cbrt.f64 -10) (/.f64 1 (cbrt.f64 (fma.f64 x x -1)))) 3)
57.9b
10
0.5b
(/.f64 (/.f64 1 (fma.f64 x x -1)) -1/10)
22.0b
(/.f64 1 (pow.f64 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) 2))
0.6b
(cbrt.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3))
22.7b
(expm1.f64 (log1p.f64 (/.f64 -10 (fma.f64 x x -1))))
6.4b
(/.f64 10 (*.f64 (-.f64 1 (pow.f64 x 6)) (/.f64 1 (+.f64 1 (+.f64 (*.f64 x x) (pow.f64 x 4))))))
22.6b
(exp.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1))))
7.9b
(*.f64 (/.f64 1 (-.f64 1 (*.f64 x x))) 10)
0.4b
(*.f64 (/.f64 1 (fma.f64 x x -1)) -10)
22.0b
(sqrt.f64 (pow.f64 (pow.f64 (cbrt.f64 (/.f64 10 (fma.f64 x x -1))) 2) 3))
60.4b
-10
21.4b
(sqrt.f64 (/.f64 100 (pow.f64 (fma.f64 x x -1) 2)))
6.9b
(/.f64 1 (fma.f64 x (*.f64 x -1/10) 1/10))
Compiler

Compiled 399 to 307 computations (23.1% saved)

localize10.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.2b
(/.f64 1 (fma.f64 x x -1))
0.4b
(/.f64 (/.f64 1 (fma.f64 x x -1)) -1/10)
Compiler

Compiled 23 to 16 computations (30.4% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
0.0ms
x
@0
(/.f64 (/.f64 1 (fma.f64 x x -1)) -1/10)
0.0ms
x
@inf
(/.f64 (/.f64 1 (fma.f64 x x -1)) -1/10)
0.0ms
x
@-inf
(/.f64 (/.f64 1 (fma.f64 x x -1)) -1/10)

rewrite163.0ms (2.4%)

Algorithm
batch-egg-rewrite
Rules
689×pow1_binary64
645×add-log-exp_binary64
644×log1p-expm1-u_binary64
644×expm1-log1p-u_binary64
634×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0811
11638
218328
Stop Event
node limit
Counts
1 → 23
Calls
Call 1
Inputs
(/.f64 (/.f64 1 (fma.f64 x x -1)) -1/10)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (/.f64 -10 (fma.f64 x x -1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 -10 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (fma.f64 x x -1)) -10)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -10 (fma.f64 x x -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2) (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (fma.f64 x x -1) -2)) (*.f64 (/.f64 1 (cbrt.f64 (fma.f64 x x -1))) -10))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 -10 (fma.f64 x x -1))) (sqrt.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (fma.f64 x x -1) -1/2) (*.f64 (pow.f64 (fma.f64 x x -1) -1/2) -10))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -1 (fma.f64 x x -1)) 10)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -10 (/.f64 1 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 -10 (fma.f64 x x -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (/.f64 1 (fma.f64 x x -1)) 1/10))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (fma.f64 x x -1) -2) 100))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1))))))))

simplify155.0ms (2.2%)

Algorithm
egg-herbie
Rules
677×fma-def_binary64
437×distribute-rgt-out_binary64
413×unswap-sqr_binary64
354×distribute-neg-frac_binary64
255×associate-/r*_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
038226
1112210
2338206
31162203
44868200
Stop Event
node limit
Counts
35 → 38
Calls
Call 1
Inputs
10
(+.f64 (*.f64 10 (pow.f64 x 2)) 10)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 10 (*.f64 10 (pow.f64 x 4))))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 10 (pow.f64 x 6)) (+.f64 10 (*.f64 10 (pow.f64 x 4)))))
(/.f64 -10 (pow.f64 x 2))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))))
(/.f64 -10 (pow.f64 x 2))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))))
Outputs
10
(+.f64 (*.f64 10 (pow.f64 x 2)) 10)
(fma.f64 10 (*.f64 x x) 10)
(*.f64 10 (fma.f64 x x 1))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 10 (*.f64 10 (pow.f64 x 4))))
(+.f64 (fma.f64 10 (*.f64 x x) 10) (*.f64 10 (pow.f64 x 4)))
(fma.f64 10 (*.f64 x x) (fma.f64 10 (pow.f64 x 4) 10))
(*.f64 10 (+.f64 (pow.f64 x 4) (fma.f64 x x 1)))
(fma.f64 10 (fma.f64 x x (pow.f64 x 4)) 10)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 10 (pow.f64 x 6)) (+.f64 10 (*.f64 10 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 10 (pow.f64 x 6) (+.f64 10 (*.f64 10 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 10 (pow.f64 x 6) (fma.f64 10 (pow.f64 x 4) 10)))
(fma.f64 10 (fma.f64 x x (pow.f64 x 6)) (fma.f64 10 (pow.f64 x 4) 10))
(fma.f64 10 (+.f64 (pow.f64 x 4) (fma.f64 x x (pow.f64 x 6))) 10)
(*.f64 (fma.f64 x x 1) (fma.f64 10 (pow.f64 x 4) 10))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (*.f64 x x))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (/.f64 10 (*.f64 x x))))
(-.f64 (/.f64 -10 (*.f64 x x)) (/.f64 10 (pow.f64 x 4)))
(+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x)))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6)))))
(-.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))))
(+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x))) (/.f64 -10 (pow.f64 x 6)))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))) (/.f64 10 (pow.f64 x 8)))))
(-.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (+.f64 (/.f64 10 (pow.f64 x 6)) (/.f64 10 (pow.f64 x 8)))))
(+.f64 (+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x))) (/.f64 -10 (pow.f64 x 6))) (/.f64 -10 (pow.f64 x 8)))
(+.f64 (/.f64 -10 (*.f64 x x)) (+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (pow.f64 x 8))) (/.f64 -10 (pow.f64 x 6))))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (*.f64 x x))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (/.f64 10 (*.f64 x x))))
(-.f64 (/.f64 -10 (*.f64 x x)) (/.f64 10 (pow.f64 x 4)))
(+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x)))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6)))))
(-.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))))
(+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x))) (/.f64 -10 (pow.f64 x 6)))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))) (/.f64 10 (pow.f64 x 8)))))
(-.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (+.f64 (/.f64 10 (pow.f64 x 6)) (/.f64 10 (pow.f64 x 8)))))
(+.f64 (+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x))) (/.f64 -10 (pow.f64 x 6))) (/.f64 -10 (pow.f64 x 8)))
(+.f64 (/.f64 -10 (*.f64 x x)) (+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (pow.f64 x 8))) (/.f64 -10 (pow.f64 x 6))))

localize4.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.2b
(/.f64 10 (*.f64 x x))
Compiler

Compiled 11 to 5 computations (54.5% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
1.0ms
x
@0
(/.f64 10 (*.f64 x x))
0.0ms
x
@inf
(/.f64 10 (*.f64 x x))
0.0ms
x
@-inf
(/.f64 10 (*.f64 x x))

rewrite47.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
498×pow1_binary64
491×add-sqr-sqrt_binary64
470×add-log-exp_binary64
470×log1p-expm1-u_binary64
470×expm1-log1p-u_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
057
11097
213247
Stop Event
node limit
Counts
1 → 21
Calls
Call 1
Inputs
(/.f64 10 (*.f64 x x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 10 (pow.f64 x -2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 10 (pow.f64 x -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 10 (pow.f64 x -2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 10 (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 10 (pow.f64 x -2))) (cbrt.f64 (/.f64 100 (pow.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 100 (pow.f64 x 4))) (cbrt.f64 (*.f64 10 (pow.f64 x -2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 10) x) (/.f64 (sqrt.f64 10) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -10 (/.f64 1 (*.f64 x (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 x -2) 10)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 10 x) (/.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 10 (pow.f64 x -2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 10 (pow.f64 x -2)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 10 (pow.f64 x -2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 10) x) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 x x) 1/10) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (/.f64 100 (pow.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 10) (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 10 (pow.f64 x -2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 10 (pow.f64 x -2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 10 (pow.f64 x -2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 10 (pow.f64 x -2))))))))

simplify165.0ms (2.4%)

Algorithm
egg-herbie
Rules
1140×associate-/r*_binary64
1082×sqr-pow_binary64
560×cube-prod_binary64
552×fabs-mul_binary64
523×pow-sqr_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0684
11184
22084
33584
47584
522484
683484
7204384
8220984
9239284
10260084
11289784
12329084
13377184
14433984
15502584
16586084
17624884
18653684
19681484
20688884
21692484
Stop Event
node limit
Counts
33 → 23
Calls
Call 1
Inputs
(/.f64 10 (pow.f64 x 2))
(/.f64 10 (pow.f64 x 2))
(/.f64 10 (pow.f64 x 2))
(/.f64 10 (pow.f64 x 2))
(/.f64 10 (pow.f64 x 2))
(/.f64 10 (pow.f64 x 2))
(/.f64 10 (pow.f64 x 2))
(/.f64 10 (pow.f64 x 2))
(/.f64 10 (pow.f64 x 2))
(/.f64 10 (pow.f64 x 2))
(/.f64 10 (pow.f64 x 2))
(/.f64 10 (pow.f64 x 2))
Outputs
(/.f64 10 (pow.f64 x 2))
(/.f64 10 (*.f64 x x))
(/.f64 10 (pow.f64 x 2))
(/.f64 10 (*.f64 x x))
(/.f64 10 (pow.f64 x 2))
(/.f64 10 (*.f64 x x))
(/.f64 10 (pow.f64 x 2))
(/.f64 10 (*.f64 x x))
(/.f64 10 (pow.f64 x 2))
(/.f64 10 (*.f64 x x))
(/.f64 10 (pow.f64 x 2))
(/.f64 10 (*.f64 x x))
(/.f64 10 (pow.f64 x 2))
(/.f64 10 (*.f64 x x))
(/.f64 10 (pow.f64 x 2))
(/.f64 10 (*.f64 x x))
(/.f64 10 (pow.f64 x 2))
(/.f64 10 (*.f64 x x))
(/.f64 10 (pow.f64 x 2))
(/.f64 10 (*.f64 x x))
(/.f64 10 (pow.f64 x 2))
(/.f64 10 (*.f64 x x))
(/.f64 10 (pow.f64 x 2))
(/.f64 10 (*.f64 x x))

localize11.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.3b
(/.f64 1 (fma.f64 x (*.f64 x -1/10) 1/10))
0.4b
(*.f64 x -1/10)
7.4b
(fma.f64 x (*.f64 x -1/10) 1/10)
Compiler

Compiled 22 to 16 computations (27.3% saved)

series3.0ms (0%)

Counts
3 → 36
Calls

9 calls:

TimeVariablePointExpression
0.0ms
x
@0
(fma.f64 x (*.f64 x -1/10) 1/10)
0.0ms
x
@inf
(/.f64 1 (fma.f64 x (*.f64 x -1/10) 1/10))
0.0ms
x
@-inf
(/.f64 1 (fma.f64 x (*.f64 x -1/10) 1/10))
0.0ms
x
@0
(/.f64 1 (fma.f64 x (*.f64 x -1/10) 1/10))
0.0ms
x
@inf
(fma.f64 x (*.f64 x -1/10) 1/10)

rewrite165.0ms (2.4%)

Algorithm
batch-egg-rewrite
Rules
670×pow1_binary64
622×add-log-exp_binary64
622×log1p-expm1-u_binary64
622×expm1-log1p-u_binary64
610×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0823
116023
2173023
Stop Event
node limit
Counts
3 → 57
Calls
Call 1
Inputs
(fma.f64 x (*.f64 x -1/10) 1/10)
(*.f64 x -1/10)
(/.f64 1 (fma.f64 x (*.f64 x -1/10) 1/10))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 1/10 (*.f64 (*.f64 x x) -1/10))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 x x) -1/10) 1/10)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 (*.f64 x x) -1/10) 1) 1/10)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (fma.f64 x (*.f64 x -1/10) 1/10)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x (*.f64 x -1/10) 1/10) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 x (*.f64 x -1/10) 1/10))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 x (*.f64 x -1/10) 1/10)) (pow.f64 (cbrt.f64 (fma.f64 x (*.f64 x -1/10) 1/10)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 x (*.f64 x -1/10) 1/10)) 2) (cbrt.f64 (fma.f64 x (*.f64 x -1/10) 1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 x (*.f64 x -1/10) 1/10)) (sqrt.f64 (fma.f64 x (*.f64 x -1/10) 1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 x (*.f64 x -1/10) 1/10) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 1 (fma.f64 x (*.f64 x -1/10) 1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (cbrt.f64 (fma.f64 x (*.f64 x -1/10) 1/10)) 2) (/.f64 1 (cbrt.f64 (fma.f64 x (*.f64 x -1/10) 1/10))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (fma.f64 x (*.f64 x -1/10) 1/10)) (pow.f64 (fma.f64 x (*.f64 x -1/10) 1/10) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (fma.f64 x (*.f64 x -1/10) 1/10)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 (*.f64 x x) -1/10) 3) 1/1000) (+.f64 (*.f64 (*.f64 (*.f64 x x) -1/10) (*.f64 (*.f64 x x) -1/10)) (-.f64 1/100 (*.f64 (*.f64 (*.f64 x x) -1/10) 1/10))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 (*.f64 x x) -1/10) (*.f64 (*.f64 x x) -1/10)) 1/100) (-.f64 (*.f64 (*.f64 x x) -1/10) 1/10))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 x (*.f64 x -1/10) 1/10) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 x (*.f64 x -1/10) 1/10) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 x (*.f64 x -1/10) 1/10)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 x (*.f64 x -1/10) 1/10)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 x (*.f64 x -1/10) 1/10) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 x (*.f64 x -1/10) 1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 x (*.f64 x -1/10) 1/10) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 x (*.f64 x -1/10) 1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 x (*.f64 x -1/10) 1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 x (*.f64 x -1/10) 1/10)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 x -1/10)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x -1/10) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x -1/10) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x -1/10)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x -1/10)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 1/100 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x) -1/10))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x -1/10) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x -1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x -1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x -1/10)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (/.f64 1 (fma.f64 x (*.f64 x -1/10) 1/10))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 1 (fma.f64 x (*.f64 x -1/10) 1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (fma.f64 x (*.f64 x -1/10) 1/10)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 (fma.f64 x (*.f64 x -1/10) 1/10))) (cbrt.f64 (pow.f64 (fma.f64 x (*.f64 x -1/10) 1/10) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (fma.f64 x (*.f64 x -1/10) 1/10) -2)) (/.f64 1 (cbrt.f64 (fma.f64 x (*.f64 x -1/10) 1/10))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (fma.f64 x (*.f64 x -1/10) 1/10) -1/2) (pow.f64 (fma.f64 x (*.f64 x -1/10) 1/10) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (/.f64 1 (neg.f64 (fma.f64 x (*.f64 x -1/10) 1/10))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (fma.f64 x (*.f64 x -1/10) 1/10)) 2) -1) (pow.f64 (cbrt.f64 (fma.f64 x (*.f64 x -1/10) 1/10)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (fma.f64 x (*.f64 x -1/10) 1/10)) -1) (pow.f64 (sqrt.f64 (fma.f64 x (*.f64 x -1/10) 1/10)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 x (*.f64 x -1/10) 1/10) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1 (fma.f64 x (*.f64 x -1/10) 1/10)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 1 (fma.f64 x (*.f64 x -1/10) 1/10)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1 (cbrt.f64 (fma.f64 x (*.f64 x -1/10) 1/10))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 x (*.f64 x -1/10) 1/10) -1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 x (*.f64 x -1/10) 1/10) -2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 1 (fma.f64 x (*.f64 x -1/10) 1/10))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 1 (fma.f64 x (*.f64 x -1/10) 1/10)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 1 (fma.f64 x (*.f64 x -1/10) 1/10))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 1 (fma.f64 x (*.f64 x -1/10) 1/10))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (neg.f64 (log.f64 (fma.f64 x (*.f64 x -1/10) 1/10))))))))

simplify59.0ms (0.9%)

Algorithm
egg-herbie
Rules
681×fma-def_binary64
437×distribute-rgt-out_binary64
413×unswap-sqr_binary64
354×distribute-neg-frac_binary64
266×associate-*l*_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
043379
1120345
2350341
31185338
44914335
Stop Event
node limit
Counts
93 → 78
Calls
Call 1
Inputs
1/10
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(*.f64 -1/10 (pow.f64 x 2))
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(*.f64 -1/10 (pow.f64 x 2))
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(*.f64 -1/10 x)
(*.f64 -1/10 x)
(*.f64 -1/10 x)
(*.f64 -1/10 x)
(*.f64 -1/10 x)
(*.f64 -1/10 x)
(*.f64 -1/10 x)
(*.f64 -1/10 x)
(*.f64 -1/10 x)
(*.f64 -1/10 x)
(*.f64 -1/10 x)
(*.f64 -1/10 x)
10
(+.f64 (*.f64 10 (pow.f64 x 2)) 10)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 10 (*.f64 10 (pow.f64 x 4))))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 10 (pow.f64 x 6)) (+.f64 10 (*.f64 10 (pow.f64 x 4)))))
(/.f64 -10 (pow.f64 x 2))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))))
(/.f64 -10 (pow.f64 x 2))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))))
Outputs
1/10
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (*.f64 x x)))
(fma.f64 -1/10 (*.f64 x x) 1/10)
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (*.f64 x x)))
(fma.f64 -1/10 (*.f64 x x) 1/10)
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (*.f64 x x)))
(fma.f64 -1/10 (*.f64 x x) 1/10)
(*.f64 -1/10 (pow.f64 x 2))
(*.f64 -1/10 (*.f64 x x))
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (*.f64 x x)))
(fma.f64 -1/10 (*.f64 x x) 1/10)
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (*.f64 x x)))
(fma.f64 -1/10 (*.f64 x x) 1/10)
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (*.f64 x x)))
(fma.f64 -1/10 (*.f64 x x) 1/10)
(*.f64 -1/10 (pow.f64 x 2))
(*.f64 -1/10 (*.f64 x x))
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (*.f64 x x)))
(fma.f64 -1/10 (*.f64 x x) 1/10)
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (*.f64 x x)))
(fma.f64 -1/10 (*.f64 x x) 1/10)
(+.f64 1/10 (*.f64 -1/10 (pow.f64 x 2)))
(+.f64 1/10 (*.f64 -1/10 (*.f64 x x)))
(fma.f64 -1/10 (*.f64 x x) 1/10)
(*.f64 -1/10 x)
(*.f64 -1/10 x)
(*.f64 -1/10 x)
(*.f64 -1/10 x)
(*.f64 -1/10 x)
(*.f64 -1/10 x)
(*.f64 -1/10 x)
(*.f64 -1/10 x)
(*.f64 -1/10 x)
(*.f64 -1/10 x)
(*.f64 -1/10 x)
(*.f64 -1/10 x)
10
(+.f64 (*.f64 10 (pow.f64 x 2)) 10)
(fma.f64 10 (*.f64 x x) 10)
(fma.f64 (*.f64 x x) 10 10)
(*.f64 10 (fma.f64 x x 1))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 10 (*.f64 10 (pow.f64 x 4))))
(fma.f64 10 (*.f64 x x) (+.f64 10 (*.f64 10 (pow.f64 x 4))))
(fma.f64 (*.f64 x x) 10 (fma.f64 10 (pow.f64 x 4) 10))
(*.f64 10 (+.f64 (fma.f64 x x 1) (pow.f64 x 4)))
(fma.f64 10 (fma.f64 x x (pow.f64 x 4)) 10)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 10 (pow.f64 x 6)) (+.f64 10 (*.f64 10 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 10 (pow.f64 x 6) (+.f64 10 (*.f64 10 (pow.f64 x 4)))))
(fma.f64 (*.f64 x x) 10 (fma.f64 10 (pow.f64 x 6) (fma.f64 10 (pow.f64 x 4) 10)))
(fma.f64 10 (fma.f64 x x (pow.f64 x 6)) (fma.f64 10 (pow.f64 x 4) 10))
(fma.f64 10 (+.f64 (pow.f64 x 4) (fma.f64 x x (pow.f64 x 6))) 10)
(*.f64 (fma.f64 x x 1) (fma.f64 10 (pow.f64 x 4) 10))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (*.f64 x x))
(/.f64 (/.f64 -10 x) x)
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (/.f64 10 (*.f64 x x))))
(+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x)))
(+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 (/.f64 -10 x) x))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6)))))
(-.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))))
(+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x))) (/.f64 -10 (pow.f64 x 6)))
(+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 (/.f64 -10 x) x)) (/.f64 -10 (pow.f64 x 6)))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))) (/.f64 10 (pow.f64 x 8)))))
(-.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (+.f64 (/.f64 10 (pow.f64 x 6)) (/.f64 10 (pow.f64 x 8)))))
(+.f64 (+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x))) (/.f64 -10 (pow.f64 x 6))) (/.f64 -10 (pow.f64 x 8)))
(+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 (/.f64 -10 x) x)) (+.f64 (/.f64 -10 (pow.f64 x 6)) (/.f64 -10 (pow.f64 x 8))))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (*.f64 x x))
(/.f64 (/.f64 -10 x) x)
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (/.f64 10 (*.f64 x x))))
(+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x)))
(+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 (/.f64 -10 x) x))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6)))))
(-.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))))
(+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x))) (/.f64 -10 (pow.f64 x 6)))
(+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 (/.f64 -10 x) x)) (/.f64 -10 (pow.f64 x 6)))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))) (/.f64 10 (pow.f64 x 8)))))
(-.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (+.f64 (/.f64 10 (pow.f64 x 6)) (/.f64 10 (pow.f64 x 8)))))
(+.f64 (+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x))) (/.f64 -10 (pow.f64 x 6))) (/.f64 -10 (pow.f64 x 8)))
(+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 (/.f64 -10 x) x)) (+.f64 (/.f64 -10 (pow.f64 x 6)) (/.f64 -10 (pow.f64 x 8))))

localize16.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.3b
(/.f64 -10 (fma.f64 x x -1))
0.5b
(cbrt.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3))
0.8b
(pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3)
Compiler

Compiled 32 to 23 computations (28.1% saved)

series5.0ms (0.1%)

Counts
2 → 24
Calls

6 calls:

TimeVariablePointExpression
2.0ms
x
@0
(pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3)
1.0ms
x
@0
(cbrt.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3))
1.0ms
x
@inf
(pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3)
1.0ms
x
@inf
(cbrt.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3))
0.0ms
x
@-inf
(cbrt.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3))

rewrite57.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
738×pow1_binary64
699×add-log-exp_binary64
699×log1p-expm1-u_binary64
699×expm1-log1p-u_binary64
684×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0919
119319
2194019
Stop Event
node limit
Counts
2 → 65
Calls
Call 1
Inputs
(pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3)
(cbrt.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (/.f64 -1000 (pow.f64 (fma.f64 x x -1) 3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -10 (*.f64 (/.f64 1 (fma.f64 x x -1)) (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -10 (fma.f64 x x -1)) (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -1000 (pow.f64 (fma.f64 x x -1) 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 -1000 (pow.f64 (fma.f64 x x -1) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1000 (pow.f64 (/.f64 1 (fma.f64 x x -1)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1000 (/.f64 1 (pow.f64 (fma.f64 x x -1) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 2) (/.f64 -10 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2) (*.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 -10 (fma.f64 x x -1))) (*.f64 (sqrt.f64 (/.f64 -10 (fma.f64 x x -1))) (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3/2) (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2) 3) (/.f64 -10 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (/.f64 -10 (fma.f64 x x -1))) 3) (pow.f64 (sqrt.f64 (/.f64 -10 (fma.f64 x x -1))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 2) -10) (/.f64 1 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 2) 1) (/.f64 -10 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 2) (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2)) (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 2) (sqrt.f64 (/.f64 -10 (fma.f64 x x -1)))) (sqrt.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) 3))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (pow.f64 (fma.f64 x x -1) 3) -1000))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -1000 (pow.f64 (fma.f64 x x -1) 3))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 2) (*.f64 (fma.f64 x x -1) -1/10))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1000 (pow.f64 (neg.f64 (fma.f64 x x -1)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1000 (neg.f64 (pow.f64 (fma.f64 x x -1) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -10 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 2)) (fma.f64 x x -1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 10 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 2)) (neg.f64 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 2) -10) (fma.f64 x x -1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 2) 1) (*.f64 (fma.f64 x x -1) -1/10))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 2) 10) (neg.f64 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 6))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 -1000 (pow.f64 (fma.f64 x x -1) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 -1000 (pow.f64 (fma.f64 x x -1) 3)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 -1000 (pow.f64 (fma.f64 x x -1) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 -1000 (pow.f64 (fma.f64 x x -1) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 3 (log.f64 (/.f64 -10 (fma.f64 x x -1)))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (/.f64 -10 (fma.f64 x x -1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -10 (/.f64 1 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -10 (fma.f64 x x -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 -10 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) (pow.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 2) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2) (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 -10 (fma.f64 x x -1))) (sqrt.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 10 (/.f64 1 (neg.f64 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (fma.f64 x x -1)) -10)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 2) 1/3) (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (/.f64 -10 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3/2) 1/3) (pow.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3/2) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -10 (fma.f64 x x -1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -10 (neg.f64 (neg.f64 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -1 (neg.f64 (*.f64 (fma.f64 x x -1) -1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (*.f64 (fma.f64 x x -1) -1/10))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (*.f64 (fma.f64 x x -1) -1/10) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 10 (neg.f64 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 -10 (sqrt.f64 (fma.f64 x x -1))) (sqrt.f64 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 -10 (pow.f64 (cbrt.f64 (fma.f64 x x -1)) 2)) (cbrt.f64 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 -10 (fma.f64 x x -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 -1000 (pow.f64 (fma.f64 x x -1) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1))))))))

simplify67.0ms (1%)

Algorithm
egg-herbie
Rules
723×associate-/r*_binary64
704×fma-neg_binary64
575×associate-*r*_binary64
377×cancel-sign-sub-inv_binary64
249×fma-def_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
065524
1179490
2551475
31987469
47868469
Stop Event
node limit
Counts
89 → 95
Calls
Call 1
Inputs
1000
(+.f64 1000 (*.f64 3000 (pow.f64 x 2)))
(+.f64 (*.f64 6000 (pow.f64 x 4)) (+.f64 1000 (*.f64 3000 (pow.f64 x 2))))
(+.f64 (*.f64 6000 (pow.f64 x 4)) (+.f64 1000 (+.f64 (*.f64 10000 (pow.f64 x 6)) (*.f64 3000 (pow.f64 x 2)))))
(/.f64 -1000 (pow.f64 x 6))
(neg.f64 (+.f64 (*.f64 3000 (/.f64 1 (pow.f64 x 8))) (*.f64 1000 (/.f64 1 (pow.f64 x 6)))))
(neg.f64 (+.f64 (*.f64 6000 (/.f64 1 (pow.f64 x 10))) (+.f64 (*.f64 1000 (/.f64 1 (pow.f64 x 6))) (*.f64 3000 (/.f64 1 (pow.f64 x 8))))))
(neg.f64 (+.f64 (*.f64 10000 (/.f64 1 (pow.f64 x 12))) (+.f64 (*.f64 6000 (/.f64 1 (pow.f64 x 10))) (+.f64 (*.f64 1000 (/.f64 1 (pow.f64 x 6))) (*.f64 3000 (/.f64 1 (pow.f64 x 8)))))))
(/.f64 -1000 (pow.f64 x 6))
(neg.f64 (+.f64 (*.f64 3000 (/.f64 1 (pow.f64 x 8))) (*.f64 1000 (/.f64 1 (pow.f64 x 6)))))
(neg.f64 (+.f64 (*.f64 6000 (/.f64 1 (pow.f64 x 10))) (+.f64 (*.f64 1000 (/.f64 1 (pow.f64 x 6))) (*.f64 3000 (/.f64 1 (pow.f64 x 8))))))
(neg.f64 (+.f64 (*.f64 10000 (/.f64 1 (pow.f64 x 12))) (+.f64 (*.f64 6000 (/.f64 1 (pow.f64 x 10))) (+.f64 (*.f64 1000 (/.f64 1 (pow.f64 x 6))) (*.f64 3000 (/.f64 1 (pow.f64 x 8)))))))
(*.f64 -1 (cbrt.f64 -1000))
(+.f64 (*.f64 -1 (cbrt.f64 -1000)) (*.f64 -1 (*.f64 (cbrt.f64 -1000) (pow.f64 x 2))))
(+.f64 (*.f64 -1 (cbrt.f64 -1000)) (+.f64 (*.f64 -1 (*.f64 (cbrt.f64 -1000) (pow.f64 x 4))) (*.f64 -1 (*.f64 (cbrt.f64 -1000) (pow.f64 x 2)))))
(+.f64 (*.f64 -1 (*.f64 (cbrt.f64 -1000) (pow.f64 x 6))) (+.f64 (*.f64 -1 (cbrt.f64 -1000)) (+.f64 (*.f64 -1 (*.f64 (cbrt.f64 -1000) (pow.f64 x 4))) (*.f64 -1 (*.f64 (cbrt.f64 -1000) (pow.f64 x 2))))))
(/.f64 (cbrt.f64 -1000) (pow.f64 x 2))
(+.f64 (/.f64 (cbrt.f64 -1000) (pow.f64 x 4)) (/.f64 (cbrt.f64 -1000) (pow.f64 x 2)))
(+.f64 (/.f64 (cbrt.f64 -1000) (pow.f64 x 6)) (+.f64 (/.f64 (cbrt.f64 -1000) (pow.f64 x 4)) (/.f64 (cbrt.f64 -1000) (pow.f64 x 2))))
(+.f64 (/.f64 (cbrt.f64 -1000) (pow.f64 x 6)) (+.f64 (/.f64 (cbrt.f64 -1000) (pow.f64 x 8)) (+.f64 (/.f64 (cbrt.f64 -1000) (pow.f64 x 4)) (/.f64 (cbrt.f64 -1000) (pow.f64 x 2)))))
(/.f64 (cbrt.f64 -1000) (pow.f64 x 2))
(+.f64 (/.f64 (cbrt.f64 -1000) (pow.f64 x 4)) (/.f64 (cbrt.f64 -1000) (pow.f64 x 2)))
(+.f64 (/.f64 (cbrt.f64 -1000) (pow.f64 x 6)) (+.f64 (/.f64 (cbrt.f64 -1000) (pow.f64 x 4)) (/.f64 (cbrt.f64 -1000) (pow.f64 x 2))))
(+.f64 (/.f64 (cbrt.f64 -1000) (pow.f64 x 6)) (+.f64 (/.f64 (cbrt.f64 -1000) (pow.f64 x 8)) (+.f64 (/.f64 (cbrt.f64 -1000) (pow.f64 x 4)) (/.f64 (cbrt.f64 -1000) (pow.f64 x 2)))))
Outputs
1000
(+.f64 1000 (*.f64 3000 (pow.f64 x 2)))
(+.f64 1000 (*.f64 3000 (*.f64 x x)))
(fma.f64 3000 (*.f64 x x) 1000)
(+.f64 (*.f64 6000 (pow.f64 x 4)) (+.f64 1000 (*.f64 3000 (pow.f64 x 2))))
(fma.f64 6000 (pow.f64 x 4) (+.f64 1000 (*.f64 3000 (*.f64 x x))))
(fma.f64 6000 (pow.f64 x 4) (fma.f64 3000 (*.f64 x x) 1000))
(+.f64 (*.f64 6000 (pow.f64 x 4)) (+.f64 1000 (+.f64 (*.f64 10000 (pow.f64 x 6)) (*.f64 3000 (pow.f64 x 2)))))
(fma.f64 6000 (pow.f64 x 4) (+.f64 1000 (fma.f64 10000 (pow.f64 x 6) (*.f64 3000 (*.f64 x x)))))
(+.f64 (fma.f64 10000 (pow.f64 x 6) (*.f64 3000 (*.f64 x x))) (fma.f64 6000 (pow.f64 x 4) 1000))
(fma.f64 6000 (pow.f64 x 4) (fma.f64 3000 (*.f64 x x) (fma.f64 10000 (pow.f64 x 6) 1000)))
(/.f64 -1000 (pow.f64 x 6))
(neg.f64 (+.f64 (*.f64 3000 (/.f64 1 (pow.f64 x 8))) (*.f64 1000 (/.f64 1 (pow.f64 x 6)))))
(neg.f64 (+.f64 (/.f64 3000 (pow.f64 x 8)) (/.f64 1000 (pow.f64 x 6))))
(+.f64 (/.f64 -3000 (pow.f64 x 8)) (/.f64 -1000 (pow.f64 x 6)))
(-.f64 (/.f64 -1000 (pow.f64 x 6)) (/.f64 3000 (pow.f64 x 8)))
(neg.f64 (+.f64 (*.f64 6000 (/.f64 1 (pow.f64 x 10))) (+.f64 (*.f64 1000 (/.f64 1 (pow.f64 x 6))) (*.f64 3000 (/.f64 1 (pow.f64 x 8))))))
(neg.f64 (+.f64 (/.f64 6000 (pow.f64 x 10)) (+.f64 (/.f64 3000 (pow.f64 x 8)) (/.f64 1000 (pow.f64 x 6)))))
(+.f64 (/.f64 -6000 (pow.f64 x 10)) (+.f64 (/.f64 -3000 (pow.f64 x 8)) (/.f64 -1000 (pow.f64 x 6))))
(+.f64 (/.f64 -6000 (pow.f64 x 10)) (-.f64 (/.f64 -1000 (pow.f64 x 6)) (/.f64 3000 (pow.f64 x 8))))
(neg.f64 (+.f64 (*.f64 10000 (/.f64 1 (pow.f64 x 12))) (+.f64 (*.f64 6000 (/.f64 1 (pow.f64 x 10))) (+.f64 (*.f64 1000 (/.f64 1 (pow.f64 x 6))) (*.f64 3000 (/.f64 1 (pow.f64 x 8)))))))
(neg.f64 (+.f64 (+.f64 (/.f64 6000 (pow.f64 x 10)) (+.f64 (/.f64 3000 (pow.f64 x 8)) (/.f64 1000 (pow.f64 x 6)))) (/.f64 10000 (pow.f64 x 12))))
(+.f64 (+.f64 (/.f64 -6000 (pow.f64 x 10)) (+.f64 (/.f64 -3000 (pow.f64 x 8)) (/.f64 -1000 (pow.f64 x 6)))) (/.f64 -10000 (pow.f64 x 12)))
(+.f64 (/.f64 -6000 (pow.f64 x 10)) (-.f64 (-.f64 (/.f64 -1000 (pow.f64 x 6)) (/.f64 3000 (pow.f64 x 8))) (/.f64 10000 (pow.f64 x 12))))
(+.f64 (/.f64 -6000 (pow.f64 x 10)) (+.f64 (+.f64 (/.f64 -3000 (pow.f64 x 8)) (/.f64 -1000 (pow.f64 x 6))) (/.f64 -10000 (pow.f64 x 12))))
(/.f64 -1000 (pow.f64 x 6))
(neg.f64 (+.f64 (*.f64 3000 (/.f64 1 (pow.f64 x 8))) (*.f64 1000 (/.f64 1 (pow.f64 x 6)))))
(neg.f64 (+.f64 (/.f64 3000 (pow.f64 x 8)) (/.f64 1000 (pow.f64 x 6))))
(+.f64 (/.f64 -3000 (pow.f64 x 8)) (/.f64 -1000 (pow.f64 x 6)))
(-.f64 (/.f64 -1000 (pow.f64 x 6)) (/.f64 3000 (pow.f64 x 8)))
(neg.f64 (+.f64 (*.f64 6000 (/.f64 1 (pow.f64 x 10))) (+.f64 (*.f64 1000 (/.f64 1 (pow.f64 x 6))) (*.f64 3000 (/.f64 1 (pow.f64 x 8))))))
(neg.f64 (+.f64 (/.f64 6000 (pow.f64 x 10)) (+.f64 (/.f64 3000 (pow.f64 x 8)) (/.f64 1000 (pow.f64 x 6)))))
(+.f64 (/.f64 -6000 (pow.f64 x 10)) (+.f64 (/.f64 -3000 (pow.f64 x 8)) (/.f64 -1000 (pow.f64 x 6))))
(+.f64 (/.f64 -6000 (pow.f64 x 10)) (-.f64 (/.f64 -1000 (pow.f64 x 6)) (/.f64 3000 (pow.f64 x 8))))
(neg.f64 (+.f64 (*.f64 10000 (/.f64 1 (pow.f64 x 12))) (+.f64 (*.f64 6000 (/.f64 1 (pow.f64 x 10))) (+.f64 (*.f64 1000 (/.f64 1 (pow.f64 x 6))) (*.f64 3000 (/.f64 1 (pow.f64 x 8)))))))
(neg.f64 (+.f64 (+.f64 (/.f64 6000 (pow.f64 x 10)) (+.f64 (/.f64 3000 (pow.f64 x 8)) (/.f64 1000 (pow.f64 x 6)))) (/.f64 10000 (pow.f64 x 12))))
(+.f64 (+.f64 (/.f64 -6000 (pow.f64 x 10)) (+.f64 (/.f64 -3000 (pow.f64 x 8)) (/.f64 -1000 (pow.f64 x 6)))) (/.f64 -10000 (pow.f64 x 12)))
(+.f64 (/.f64 -6000 (pow.f64 x 10)) (-.f64 (-.f64 (/.f64 -1000 (pow.f64 x 6)) (/.f64 3000 (pow.f64 x 8))) (/.f64 10000 (pow.f64 x 12))))
(+.f64 (/.f64 -6000 (pow.f64 x 10)) (+.f64 (+.f64 (/.f64 -3000 (pow.f64 x 8)) (/.f64 -1000 (pow.f64 x 6))) (/.f64 -10000 (pow.f64 x 12))))
(*.f64 -1 (cbrt.f64 -1000))
(neg.f64 (cbrt.f64 -1000))
(+.f64 (*.f64 -1 (cbrt.f64 -1000)) (*.f64 -1 (*.f64 (cbrt.f64 -1000) (pow.f64 x 2))))
(fma.f64 -1 (cbrt.f64 -1000) (*.f64 (neg.f64 (cbrt.f64 -1000)) (*.f64 x x)))
(neg.f64 (*.f64 (+.f64 (*.f64 x x) 1) (cbrt.f64 -1000)))
(*.f64 (cbrt.f64 -1000) (-.f64 -1 (*.f64 x x)))
(+.f64 (*.f64 -1 (cbrt.f64 -1000)) (+.f64 (*.f64 -1 (*.f64 (cbrt.f64 -1000) (pow.f64 x 4))) (*.f64 -1 (*.f64 (cbrt.f64 -1000) (pow.f64 x 2)))))
(fma.f64 -1 (cbrt.f64 -1000) (fma.f64 -1 (*.f64 (pow.f64 x 4) (cbrt.f64 -1000)) (*.f64 (neg.f64 (cbrt.f64 -1000)) (*.f64 x x))))
(-.f64 (*.f64 (neg.f64 (cbrt.f64 -1000)) (+.f64 (pow.f64 x 4) (*.f64 x x))) (cbrt.f64 -1000))
(neg.f64 (fma.f64 (cbrt.f64 -1000) (fma.f64 x x (pow.f64 x 4)) (cbrt.f64 -1000)))
(*.f64 (cbrt.f64 -1000) (-.f64 -1 (fma.f64 x x (pow.f64 x 4))))
(+.f64 (*.f64 -1 (*.f64 (cbrt.f64 -1000) (pow.f64 x 6))) (+.f64 (*.f64 -1 (cbrt.f64 -1000)) (+.f64 (*.f64 -1 (*.f64 (cbrt.f64 -1000) (pow.f64 x 4))) (*.f64 -1 (*.f64 (cbrt.f64 -1000) (pow.f64 x 2))))))
(fma.f64 -1 (*.f64 (pow.f64 x 6) (cbrt.f64 -1000)) (fma.f64 -1 (cbrt.f64 -1000) (fma.f64 -1 (*.f64 (pow.f64 x 4) (cbrt.f64 -1000)) (*.f64 (neg.f64 (cbrt.f64 -1000)) (*.f64 x x)))))
(-.f64 (-.f64 (*.f64 (neg.f64 (cbrt.f64 -1000)) (+.f64 (pow.f64 x 4) (*.f64 x x))) (cbrt.f64 -1000)) (*.f64 (pow.f64 x 6) (cbrt.f64 -1000)))
(-.f64 (*.f64 (neg.f64 (cbrt.f64 -1000)) (+.f64 (pow.f64 x 6) (fma.f64 x x (pow.f64 x 4)))) (cbrt.f64 -1000))
(*.f64 (cbrt.f64 -1000) (-.f64 (-.f64 -1 (pow.f64 x 6)) (fma.f64 x x (pow.f64 x 4))))
(/.f64 (cbrt.f64 -1000) (pow.f64 x 2))
(/.f64 (cbrt.f64 -1000) (*.f64 x x))
(+.f64 (/.f64 (cbrt.f64 -1000) (pow.f64 x 4)) (/.f64 (cbrt.f64 -1000) (pow.f64 x 2)))
(+.f64 (/.f64 (cbrt.f64 -1000) (*.f64 x x)) (/.f64 (cbrt.f64 -1000) (pow.f64 x 4)))
(+.f64 (/.f64 (cbrt.f64 -1000) (pow.f64 x 6)) (+.f64 (/.f64 (cbrt.f64 -1000) (pow.f64 x 4)) (/.f64 (cbrt.f64 -1000) (pow.f64 x 2))))
(+.f64 (+.f64 (/.f64 (cbrt.f64 -1000) (*.f64 x x)) (/.f64 (cbrt.f64 -1000) (pow.f64 x 4))) (/.f64 (cbrt.f64 -1000) (pow.f64 x 6)))
(+.f64 (/.f64 (cbrt.f64 -1000) (*.f64 x x)) (+.f64 (/.f64 (cbrt.f64 -1000) (pow.f64 x 4)) (/.f64 (cbrt.f64 -1000) (pow.f64 x 6))))
(+.f64 (/.f64 (cbrt.f64 -1000) (pow.f64 x 4)) (+.f64 (/.f64 (cbrt.f64 -1000) (*.f64 x x)) (/.f64 (cbrt.f64 -1000) (pow.f64 x 6))))
(+.f64 (/.f64 (cbrt.f64 -1000) (pow.f64 x 6)) (+.f64 (/.f64 (cbrt.f64 -1000) (pow.f64 x 8)) (+.f64 (/.f64 (cbrt.f64 -1000) (pow.f64 x 4)) (/.f64 (cbrt.f64 -1000) (pow.f64 x 2)))))
(+.f64 (/.f64 (cbrt.f64 -1000) (pow.f64 x 6)) (+.f64 (+.f64 (/.f64 (cbrt.f64 -1000) (*.f64 x x)) (/.f64 (cbrt.f64 -1000) (pow.f64 x 4))) (/.f64 (cbrt.f64 -1000) (pow.f64 x 8))))
(+.f64 (+.f64 (/.f64 (cbrt.f64 -1000) (*.f64 x x)) (/.f64 (cbrt.f64 -1000) (pow.f64 x 4))) (+.f64 (/.f64 (cbrt.f64 -1000) (pow.f64 x 6)) (/.f64 (cbrt.f64 -1000) (pow.f64 x 8))))
(+.f64 (/.f64 (cbrt.f64 -1000) (*.f64 x x)) (+.f64 (/.f64 (cbrt.f64 -1000) (pow.f64 x 4)) (+.f64 (/.f64 (cbrt.f64 -1000) (pow.f64 x 6)) (/.f64 (cbrt.f64 -1000) (pow.f64 x 8)))))
(/.f64 (cbrt.f64 -1000) (pow.f64 x 2))
(/.f64 (cbrt.f64 -1000) (*.f64 x x))
(+.f64 (/.f64 (cbrt.f64 -1000) (pow.f64 x 4)) (/.f64 (cbrt.f64 -1000) (pow.f64 x 2)))
(+.f64 (/.f64 (cbrt.f64 -1000) (*.f64 x x)) (/.f64 (cbrt.f64 -1000) (pow.f64 x 4)))
(+.f64 (/.f64 (cbrt.f64 -1000) (pow.f64 x 6)) (+.f64 (/.f64 (cbrt.f64 -1000) (pow.f64 x 4)) (/.f64 (cbrt.f64 -1000) (pow.f64 x 2))))
(+.f64 (+.f64 (/.f64 (cbrt.f64 -1000) (*.f64 x x)) (/.f64 (cbrt.f64 -1000) (pow.f64 x 4))) (/.f64 (cbrt.f64 -1000) (pow.f64 x 6)))
(+.f64 (/.f64 (cbrt.f64 -1000) (*.f64 x x)) (+.f64 (/.f64 (cbrt.f64 -1000) (pow.f64 x 4)) (/.f64 (cbrt.f64 -1000) (pow.f64 x 6))))
(+.f64 (/.f64 (cbrt.f64 -1000) (pow.f64 x 4)) (+.f64 (/.f64 (cbrt.f64 -1000) (*.f64 x x)) (/.f64 (cbrt.f64 -1000) (pow.f64 x 6))))
(+.f64 (/.f64 (cbrt.f64 -1000) (pow.f64 x 6)) (+.f64 (/.f64 (cbrt.f64 -1000) (pow.f64 x 8)) (+.f64 (/.f64 (cbrt.f64 -1000) (pow.f64 x 4)) (/.f64 (cbrt.f64 -1000) (pow.f64 x 2)))))
(+.f64 (/.f64 (cbrt.f64 -1000) (pow.f64 x 6)) (+.f64 (+.f64 (/.f64 (cbrt.f64 -1000) (*.f64 x x)) (/.f64 (cbrt.f64 -1000) (pow.f64 x 4))) (/.f64 (cbrt.f64 -1000) (pow.f64 x 8))))
(+.f64 (+.f64 (/.f64 (cbrt.f64 -1000) (*.f64 x x)) (/.f64 (cbrt.f64 -1000) (pow.f64 x 4))) (+.f64 (/.f64 (cbrt.f64 -1000) (pow.f64 x 6)) (/.f64 (cbrt.f64 -1000) (pow.f64 x 8))))
(+.f64 (/.f64 (cbrt.f64 -1000) (*.f64 x x)) (+.f64 (/.f64 (cbrt.f64 -1000) (pow.f64 x 4)) (+.f64 (/.f64 (cbrt.f64 -1000) (pow.f64 x 6)) (/.f64 (cbrt.f64 -1000) (pow.f64 x 8)))))

localize23.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10))
0.2b
(/.f64 1 (pow.f64 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) 2))
0.3b
(pow.f64 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) 2)
0.4b
(*.f64 (fma.f64 x x -1) -1/10)
Compiler

Compiled 43 to 32 computations (25.6% saved)

series9.0ms (0.1%)

Counts
3 → 36
Calls

9 calls:

TimeVariablePointExpression
3.0ms
x
@0
(pow.f64 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) 2)
2.0ms
x
@0
(/.f64 1 (pow.f64 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) 2))
1.0ms
x
@inf
(pow.f64 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) 2)
1.0ms
x
@inf
(/.f64 1 (pow.f64 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) 2))
1.0ms
x
@-inf
(pow.f64 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) 2)

rewrite64.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
794×pow1_binary64
743×add-log-exp_binary64
742×log1p-expm1-u_binary64
742×expm1-log1p-u_binary64
727×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01129
122426
2213326
Stop Event
node limit
Counts
3 → 81
Calls
Call 1
Inputs
(pow.f64 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) 2)
(/.f64 1 (pow.f64 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) 2))
(sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 x x) -1/10) 1/10)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 -1/10 (*.f64 x x)) 1/10)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (fma.f64 x x -1) -1/10)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x x -1) -1/10)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x x -1) (pow.f64 (sqrt.f64 -1/10) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1/10 (fma.f64 x x -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (fma.f64 x x -1) -1/10) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (fma.f64 x x -1) -1/10))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) (pow.f64 (cbrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) (*.f64 (cbrt.f64 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10))) (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) 2) (cbrt.f64 (*.f64 (fma.f64 x x -1) -1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 x x -1)) 2) (*.f64 (cbrt.f64 (fma.f64 x x -1)) -1/10))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) 1/4) (*.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) 1/4) (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 x x -1)) (*.f64 (sqrt.f64 (fma.f64 x x -1)) -1/10))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 x x -1)) (*.f64 (sqrt.f64 -1/10) (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) 1/4)) (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 -1/10 (pow.f64 (cbrt.f64 (fma.f64 x x -1)) 2)) (cbrt.f64 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 -1/10 (sqrt.f64 (fma.f64 x x -1))) (sqrt.f64 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) (cbrt.f64 (*.f64 (fma.f64 x x -1) -1/10))) (cbrt.f64 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) (sqrt.f64 (fma.f64 x x -1))) (sqrt.f64 -1/10))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 x x -1) -10)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -1/10 (/.f64 1 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) (sqrt.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 x x -1) -1/10) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 -10 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) 2) (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 x x -1) 1/10) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 -1/10) (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (fma.f64 x x -1) -1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (fma.f64 x x -1) -1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (fma.f64 x x -1) -1/10)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (/.f64 -10 (fma.f64 x x -1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (/.f64 1 (*.f64 (fma.f64 x x -1) 1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 -10 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -10 (fma.f64 x x -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) (cbrt.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -2)) (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 -10 (fma.f64 x x -1))) (sqrt.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) -2) (pow.f64 (cbrt.f64 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10))) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) 1/4) -2) (pow.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) 1/4) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (fma.f64 x x -1)) -2) (pow.f64 (sqrt.f64 -1/10) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (fma.f64 x x -1) -1) -10)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -10 (pow.f64 (fma.f64 x x -1) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) 2) -1) (pow.f64 (cbrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 -10 (fma.f64 x x -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) (cbrt.f64 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10))) (cbrt.f64 (*.f64 (fma.f64 x x -1) -1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 -1/10) (sqrt.f64 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) 1/4) (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 x x -1)) (sqrt.f64 -1/10))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) 2)) (sqrt.f64 (cbrt.f64 (*.f64 (fma.f64 x x -1) -1/10))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/2) (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) 2) 1/2) (pow.f64 (cbrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (fma.f64 x x -1) -1/10) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10))))))))

simplify60.0ms (0.9%)

Algorithm
egg-herbie
Rules
573×associate-/l/_binary64
543×fma-def_binary64
532×fma-neg_binary64
375×unswap-sqr_binary64
284×associate-+l+_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01261121
1374704
21254674
34745604
Stop Event
node limit
Counts
117 → 130
Calls
Call 1
Inputs
(*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 (sqrt.f64 -1) 2))
(+.f64 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 (sqrt.f64 -1) 2)) (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2)))
(+.f64 (*.f64 (+.f64 (*.f64 1/4 (/.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 (sqrt.f64 -1) 2))) (*.f64 -1/4 (/.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 (sqrt.f64 -1) 2)))) (pow.f64 x 4)) (+.f64 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 (sqrt.f64 -1) 2)) (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2))))
(+.f64 (*.f64 (+.f64 (*.f64 1/4 (/.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 (sqrt.f64 -1) 2))) (*.f64 -1/4 (/.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 (sqrt.f64 -1) 2)))) (pow.f64 x 4)) (+.f64 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 (sqrt.f64 -1) 2)) (+.f64 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2)) (*.f64 (+.f64 (*.f64 1/8 (/.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 (sqrt.f64 -1) 4))) (*.f64 -1/8 (/.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 (sqrt.f64 -1) 4)))) (pow.f64 x 6)))))
(*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2))
(+.f64 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2)) (*.f64 -1 (pow.f64 (sqrt.f64 -1/10) 2)))
(+.f64 (*.f64 1/4 (/.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2))) (+.f64 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2)) (+.f64 (*.f64 -1 (pow.f64 (sqrt.f64 -1/10) 2)) (*.f64 -1/4 (/.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2))))))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 4))) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2))) (+.f64 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2)) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 4))) (+.f64 (*.f64 -1 (pow.f64 (sqrt.f64 -1/10) 2)) (*.f64 -1/4 (/.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2))))))))
(*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2))
(+.f64 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2)) (*.f64 -1 (pow.f64 (sqrt.f64 -1/10) 2)))
(+.f64 (*.f64 1/4 (/.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2))) (+.f64 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2)) (+.f64 (*.f64 -1 (pow.f64 (sqrt.f64 -1/10) 2)) (*.f64 -1/4 (/.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2))))))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 4))) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2))) (+.f64 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2)) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 4))) (+.f64 (*.f64 -1 (pow.f64 (sqrt.f64 -1/10) 2)) (*.f64 -1/4 (/.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2))))))))
(/.f64 -1 (pow.f64 (sqrt.f64 -1/10) 2))
(-.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 (sqrt.f64 -1/10) 2))) (/.f64 1 (pow.f64 (sqrt.f64 -1/10) 2)))
(-.f64 (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 4) (pow.f64 (sqrt.f64 -1/10) 2))) (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 (sqrt.f64 -1/10) 2)))) (/.f64 1 (pow.f64 (sqrt.f64 -1/10) 2)))
(-.f64 (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 4) (pow.f64 (sqrt.f64 -1/10) 2))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 (sqrt.f64 -1/10) 2))) (*.f64 -1 (/.f64 (pow.f64 x 6) (pow.f64 (sqrt.f64 -1/10) 2))))) (/.f64 1 (pow.f64 (sqrt.f64 -1/10) 2)))
(/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2)))
(+.f64 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 4))) (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2))))
(+.f64 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 6))) (+.f64 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 4))) (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2)))))
(+.f64 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 8))) (+.f64 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 6))) (+.f64 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 4))) (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2))))))
(/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2)))
(+.f64 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 4))) (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2))))
(+.f64 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 6))) (+.f64 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 4))) (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2)))))
(+.f64 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 8))) (+.f64 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 6))) (+.f64 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 4))) (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2))))))
(*.f64 (sqrt.f64 -1/10) (sqrt.f64 -1))
(+.f64 (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 -1/10) (pow.f64 x 2)) (sqrt.f64 -1))) (*.f64 (sqrt.f64 -1/10) (sqrt.f64 -1)))
(+.f64 (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 -1/10) (pow.f64 x 2)) (sqrt.f64 -1))) (+.f64 (*.f64 (sqrt.f64 -1/10) (sqrt.f64 -1)) (*.f64 -1/8 (/.f64 (*.f64 (sqrt.f64 -1/10) (pow.f64 x 4)) (pow.f64 (sqrt.f64 -1) 3)))))
(+.f64 (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 -1/10) (pow.f64 x 2)) (sqrt.f64 -1))) (+.f64 (*.f64 1/16 (/.f64 (*.f64 (sqrt.f64 -1/10) (pow.f64 x 6)) (pow.f64 (sqrt.f64 -1) 5))) (+.f64 (*.f64 (sqrt.f64 -1/10) (sqrt.f64 -1)) (*.f64 -1/8 (/.f64 (*.f64 (sqrt.f64 -1/10) (pow.f64 x 4)) (pow.f64 (sqrt.f64 -1) 3))))))
(*.f64 (sqrt.f64 -1/10) x)
(+.f64 (*.f64 -1/2 (/.f64 (sqrt.f64 -1/10) x)) (*.f64 (sqrt.f64 -1/10) x))
(+.f64 (*.f64 -1/2 (/.f64 (sqrt.f64 -1/10) x)) (+.f64 (*.f64 -1/8 (/.f64 (sqrt.f64 -1/10) (pow.f64 x 3))) (*.f64 (sqrt.f64 -1/10) x)))
(+.f64 (*.f64 -1/2 (/.f64 (sqrt.f64 -1/10) x)) (+.f64 (*.f64 -1/8 (/.f64 (sqrt.f64 -1/10) (pow.f64 x 3))) (+.f64 (*.f64 (sqrt.f64 -1/10) x) (*.f64 -1/16 (/.f64 (sqrt.f64 -1/10) (pow.f64 x 5))))))
(*.f64 -1 (*.f64 (sqrt.f64 -1/10) x))
(+.f64 (*.f64 -1 (*.f64 (sqrt.f64 -1/10) x)) (*.f64 1/2 (/.f64 (sqrt.f64 -1/10) x)))
(+.f64 (*.f64 -1 (*.f64 (sqrt.f64 -1/10) x)) (+.f64 (*.f64 1/8 (/.f64 (sqrt.f64 -1/10) (pow.f64 x 3))) (*.f64 1/2 (/.f64 (sqrt.f64 -1/10) x))))
(+.f64 (*.f64 -1 (*.f64 (sqrt.f64 -1/10) x)) (+.f64 (*.f64 1/8 (/.f64 (sqrt.f64 -1/10) (pow.f64 x 3))) (+.f64 (*.f64 1/16 (/.f64 (sqrt.f64 -1/10) (pow.f64 x 5))) (*.f64 1/2 (/.f64 (sqrt.f64 -1/10) x)))))
Outputs
(*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 (sqrt.f64 -1) 2))
1/10
(+.f64 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 (sqrt.f64 -1) 2)) (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2)))
(*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (+.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 x x)))
(fma.f64 -1/10 (*.f64 x x) 1/10)
(*.f64 -1/10 (fma.f64 x x -1))
(+.f64 (*.f64 (+.f64 (*.f64 1/4 (/.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 (sqrt.f64 -1) 2))) (*.f64 -1/4 (/.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 (sqrt.f64 -1) 2)))) (pow.f64 x 4)) (+.f64 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 (sqrt.f64 -1) 2)) (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2))))
(*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (+.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 x x)))
(fma.f64 -1/10 (*.f64 x x) 1/10)
(*.f64 -1/10 (fma.f64 x x -1))
(+.f64 (*.f64 (+.f64 (*.f64 1/4 (/.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 (sqrt.f64 -1) 2))) (*.f64 -1/4 (/.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 (sqrt.f64 -1) 2)))) (pow.f64 x 4)) (+.f64 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 (sqrt.f64 -1) 2)) (+.f64 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2)) (*.f64 (+.f64 (*.f64 1/8 (/.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 (sqrt.f64 -1) 4))) (*.f64 -1/8 (/.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 (sqrt.f64 -1) 4)))) (pow.f64 x 6)))))
(*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (+.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 x x)))
(fma.f64 -1/10 (*.f64 x x) 1/10)
(*.f64 -1/10 (fma.f64 x x -1))
(*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (*.f64 x x))
(*.f64 -1/10 (*.f64 x x))
(+.f64 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2)) (*.f64 -1 (pow.f64 (sqrt.f64 -1/10) 2)))
(*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (+.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 x x)))
(fma.f64 -1/10 (*.f64 x x) 1/10)
(*.f64 -1/10 (fma.f64 x x -1))
(+.f64 (*.f64 1/4 (/.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2))) (+.f64 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2)) (+.f64 (*.f64 -1 (pow.f64 (sqrt.f64 -1/10) 2)) (*.f64 -1/4 (/.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2))))))
(*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (+.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 x x)))
(fma.f64 -1/10 (*.f64 x x) 1/10)
(*.f64 -1/10 (fma.f64 x x -1))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 4))) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2))) (+.f64 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2)) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 4))) (+.f64 (*.f64 -1 (pow.f64 (sqrt.f64 -1/10) 2)) (*.f64 -1/4 (/.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2))))))))
(fma.f64 1/8 (/.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 4)) (fma.f64 1/4 (/.f64 (pow.f64 (sqrt.f64 -1/10) 2) (*.f64 x x)) (fma.f64 (pow.f64 (sqrt.f64 -1/10) 2) (*.f64 x x) (fma.f64 -1/8 (/.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 4)) (fma.f64 -1 (pow.f64 (sqrt.f64 -1/10) 2) (*.f64 -1/4 (/.f64 (pow.f64 (sqrt.f64 -1/10) 2) (*.f64 x x))))))))
(+.f64 (/.f64 -1/80 (pow.f64 x 4)) (+.f64 (/.f64 -1/40 (*.f64 x x)) (+.f64 (+.f64 1/10 (/.f64 1/40 (*.f64 x x))) (fma.f64 -1/10 (*.f64 x x) (/.f64 1/80 (pow.f64 x 4))))))
(+.f64 (+.f64 (/.f64 -1/80 (pow.f64 x 4)) (fma.f64 -1/10 (fma.f64 x x -1) (*.f64 (/.f64 -1/10 (*.f64 x x)) 0))) (/.f64 1/80 (pow.f64 x 4)))
(+.f64 (*.f64 -1/10 (fma.f64 x x -1)) (*.f64 (/.f64 -1/10 (pow.f64 x 4)) 0))
(*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (*.f64 x x))
(*.f64 -1/10 (*.f64 x x))
(+.f64 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2)) (*.f64 -1 (pow.f64 (sqrt.f64 -1/10) 2)))
(*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (+.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 x x)))
(fma.f64 -1/10 (*.f64 x x) 1/10)
(*.f64 -1/10 (fma.f64 x x -1))
(+.f64 (*.f64 1/4 (/.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2))) (+.f64 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2)) (+.f64 (*.f64 -1 (pow.f64 (sqrt.f64 -1/10) 2)) (*.f64 -1/4 (/.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2))))))
(*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (+.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 x x)))
(fma.f64 -1/10 (*.f64 x x) 1/10)
(*.f64 -1/10 (fma.f64 x x -1))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 4))) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2))) (+.f64 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2)) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 4))) (+.f64 (*.f64 -1 (pow.f64 (sqrt.f64 -1/10) 2)) (*.f64 -1/4 (/.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2))))))))
(fma.f64 1/8 (/.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 4)) (fma.f64 1/4 (/.f64 (pow.f64 (sqrt.f64 -1/10) 2) (*.f64 x x)) (fma.f64 (pow.f64 (sqrt.f64 -1/10) 2) (*.f64 x x) (fma.f64 -1/8 (/.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 4)) (fma.f64 -1 (pow.f64 (sqrt.f64 -1/10) 2) (*.f64 -1/4 (/.f64 (pow.f64 (sqrt.f64 -1/10) 2) (*.f64 x x))))))))
(+.f64 (/.f64 -1/80 (pow.f64 x 4)) (+.f64 (/.f64 -1/40 (*.f64 x x)) (+.f64 (+.f64 1/10 (/.f64 1/40 (*.f64 x x))) (fma.f64 -1/10 (*.f64 x x) (/.f64 1/80 (pow.f64 x 4))))))
(+.f64 (+.f64 (/.f64 -1/80 (pow.f64 x 4)) (fma.f64 -1/10 (fma.f64 x x -1) (*.f64 (/.f64 -1/10 (*.f64 x x)) 0))) (/.f64 1/80 (pow.f64 x 4)))
(+.f64 (*.f64 -1/10 (fma.f64 x x -1)) (*.f64 (/.f64 -1/10 (pow.f64 x 4)) 0))
(/.f64 -1 (pow.f64 (sqrt.f64 -1/10) 2))
10
(-.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 (sqrt.f64 -1/10) 2))) (/.f64 1 (pow.f64 (sqrt.f64 -1/10) 2)))
(-.f64 (neg.f64 (/.f64 (*.f64 x x) (pow.f64 (sqrt.f64 -1/10) 2))) (/.f64 1 (pow.f64 (sqrt.f64 -1/10) 2)))
(fma.f64 -1 (/.f64 (*.f64 x x) -1/10) 10)
(-.f64 10 (*.f64 (/.f64 x -1/10) x))
(fma.f64 10 (*.f64 x x) 10)
(-.f64 (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 4) (pow.f64 (sqrt.f64 -1/10) 2))) (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 (sqrt.f64 -1/10) 2)))) (/.f64 1 (pow.f64 (sqrt.f64 -1/10) 2)))
(-.f64 (*.f64 -1 (+.f64 (/.f64 (pow.f64 x 4) (pow.f64 (sqrt.f64 -1/10) 2)) (/.f64 (*.f64 x x) (pow.f64 (sqrt.f64 -1/10) 2)))) (/.f64 1 (pow.f64 (sqrt.f64 -1/10) 2)))
(fma.f64 -1 (+.f64 (/.f64 (*.f64 x x) -1/10) (/.f64 (pow.f64 x 4) -1/10)) 10)
(+.f64 (*.f64 10 (*.f64 x x)) (+.f64 (*.f64 10 (pow.f64 x 4)) 10))
(fma.f64 10 (*.f64 x x) (fma.f64 10 (pow.f64 x 4) 10))
(-.f64 (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 4) (pow.f64 (sqrt.f64 -1/10) 2))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 (sqrt.f64 -1/10) 2))) (*.f64 -1 (/.f64 (pow.f64 x 6) (pow.f64 (sqrt.f64 -1/10) 2))))) (/.f64 1 (pow.f64 (sqrt.f64 -1/10) 2)))
(-.f64 (fma.f64 -1 (/.f64 (pow.f64 x 4) (pow.f64 (sqrt.f64 -1/10) 2)) (fma.f64 -1 (/.f64 (*.f64 x x) (pow.f64 (sqrt.f64 -1/10) 2)) (neg.f64 (/.f64 (pow.f64 x 6) (pow.f64 (sqrt.f64 -1/10) 2))))) (/.f64 1 (pow.f64 (sqrt.f64 -1/10) 2)))
(+.f64 (-.f64 (-.f64 (/.f64 (neg.f64 (*.f64 x x)) -1/10) (/.f64 (pow.f64 x 4) -1/10)) (/.f64 (pow.f64 x 6) -1/10)) 10)
(+.f64 (*.f64 10 (*.f64 x x)) (-.f64 (+.f64 (*.f64 10 (pow.f64 x 4)) (*.f64 10 (pow.f64 x 6))) -10))
(fma.f64 10 (pow.f64 x 6) (fma.f64 10 (*.f64 x x) (fma.f64 10 (pow.f64 x 4) 10)))
(/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2)))
(/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (*.f64 x x)))
(/.f64 -10 (*.f64 x x))
(+.f64 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 4))) (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2))))
(+.f64 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (*.f64 x x))) (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 4))))
(+.f64 (/.f64 -10 (*.f64 x x)) (/.f64 -10 (pow.f64 x 4)))
(+.f64 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 6))) (+.f64 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 4))) (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2)))))
(+.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (*.f64 x x))) (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 4)))) (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 6))))
(+.f64 (+.f64 (/.f64 -10 (pow.f64 x 6)) (/.f64 -10 (*.f64 x x))) (/.f64 -10 (pow.f64 x 4)))
(+.f64 (/.f64 -10 (*.f64 x x)) (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (pow.f64 x 6))))
(+.f64 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 8))) (+.f64 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 6))) (+.f64 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 4))) (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2))))))
(+.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 8))) (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 6)))) (+.f64 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (*.f64 x x))) (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 4)))))
(+.f64 (/.f64 -10 (pow.f64 x 6)) (+.f64 (+.f64 (/.f64 -10 (*.f64 x x)) (/.f64 -10 (pow.f64 x 4))) (/.f64 -10 (pow.f64 x 8))))
(+.f64 (/.f64 -10 (pow.f64 x 6)) (+.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 -10 (*.f64 x x)) (/.f64 -10 (pow.f64 x 8)))))
(+.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 -10 (*.f64 x x)) (+.f64 (/.f64 -10 (pow.f64 x 6)) (/.f64 -10 (pow.f64 x 8)))))
(/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2)))
(/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (*.f64 x x)))
(/.f64 -10 (*.f64 x x))
(+.f64 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 4))) (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2))))
(+.f64 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (*.f64 x x))) (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 4))))
(+.f64 (/.f64 -10 (*.f64 x x)) (/.f64 -10 (pow.f64 x 4)))
(+.f64 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 6))) (+.f64 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 4))) (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2)))))
(+.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (*.f64 x x))) (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 4)))) (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 6))))
(+.f64 (+.f64 (/.f64 -10 (pow.f64 x 6)) (/.f64 -10 (*.f64 x x))) (/.f64 -10 (pow.f64 x 4)))
(+.f64 (/.f64 -10 (*.f64 x x)) (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (pow.f64 x 6))))
(+.f64 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 8))) (+.f64 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 6))) (+.f64 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 4))) (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 2))))))
(+.f64 (+.f64 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 8))) (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 6)))) (+.f64 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (*.f64 x x))) (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 -1/10) 2) (pow.f64 x 4)))))
(+.f64 (/.f64 -10 (pow.f64 x 6)) (+.f64 (+.f64 (/.f64 -10 (*.f64 x x)) (/.f64 -10 (pow.f64 x 4))) (/.f64 -10 (pow.f64 x 8))))
(+.f64 (/.f64 -10 (pow.f64 x 6)) (+.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 -10 (*.f64 x x)) (/.f64 -10 (pow.f64 x 8)))))
(+.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 -10 (*.f64 x x)) (+.f64 (/.f64 -10 (pow.f64 x 6)) (/.f64 -10 (pow.f64 x 8)))))
(*.f64 (sqrt.f64 -1/10) (sqrt.f64 -1))
(+.f64 (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 -1/10) (pow.f64 x 2)) (sqrt.f64 -1))) (*.f64 (sqrt.f64 -1/10) (sqrt.f64 -1)))
(fma.f64 1/2 (/.f64 (sqrt.f64 -1/10) (/.f64 (sqrt.f64 -1) (*.f64 x x))) (*.f64 (sqrt.f64 -1/10) (sqrt.f64 -1)))
(fma.f64 (sqrt.f64 -1/10) (sqrt.f64 -1) (*.f64 1/2 (*.f64 (/.f64 (sqrt.f64 -1/10) (sqrt.f64 -1)) (*.f64 x x))))
(fma.f64 (sqrt.f64 -1/10) (sqrt.f64 -1) (*.f64 1/2 (*.f64 (*.f64 x x) (/.f64 (sqrt.f64 -1/10) (sqrt.f64 -1)))))
(fma.f64 (sqrt.f64 -1/10) (sqrt.f64 -1) (*.f64 (/.f64 1/2 (sqrt.f64 -1)) (*.f64 (sqrt.f64 -1/10) (*.f64 x x))))
(+.f64 (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 -1/10) (pow.f64 x 2)) (sqrt.f64 -1))) (+.f64 (*.f64 (sqrt.f64 -1/10) (sqrt.f64 -1)) (*.f64 -1/8 (/.f64 (*.f64 (sqrt.f64 -1/10) (pow.f64 x 4)) (pow.f64 (sqrt.f64 -1) 3)))))
(fma.f64 1/2 (/.f64 (sqrt.f64 -1/10) (/.f64 (sqrt.f64 -1) (*.f64 x x))) (fma.f64 (sqrt.f64 -1/10) (sqrt.f64 -1) (/.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 -1/10) (pow.f64 x 4))) (pow.f64 (sqrt.f64 -1) 3))))
(fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 -1/10) (sqrt.f64 -1)) (*.f64 x x)) (fma.f64 (sqrt.f64 -1/10) (sqrt.f64 -1) (*.f64 1/8 (/.f64 (*.f64 (sqrt.f64 -1/10) (pow.f64 x 4)) (sqrt.f64 -1)))))
(fma.f64 1/8 (/.f64 (sqrt.f64 -1/10) (/.f64 (sqrt.f64 -1) (pow.f64 x 4))) (fma.f64 (sqrt.f64 -1/10) (sqrt.f64 -1) (*.f64 1/2 (*.f64 (*.f64 x x) (/.f64 (sqrt.f64 -1/10) (sqrt.f64 -1))))))
(fma.f64 (sqrt.f64 -1/10) (sqrt.f64 -1) (*.f64 (*.f64 (*.f64 x x) (/.f64 (sqrt.f64 -1/10) (sqrt.f64 -1))) (+.f64 1/2 (/.f64 -1/8 (/.f64 -1 (*.f64 x x))))))
(+.f64 (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 -1/10) (pow.f64 x 2)) (sqrt.f64 -1))) (+.f64 (*.f64 1/16 (/.f64 (*.f64 (sqrt.f64 -1/10) (pow.f64 x 6)) (pow.f64 (sqrt.f64 -1) 5))) (+.f64 (*.f64 (sqrt.f64 -1/10) (sqrt.f64 -1)) (*.f64 -1/8 (/.f64 (*.f64 (sqrt.f64 -1/10) (pow.f64 x 4)) (pow.f64 (sqrt.f64 -1) 3))))))
(fma.f64 1/2 (/.f64 (sqrt.f64 -1/10) (/.f64 (sqrt.f64 -1) (*.f64 x x))) (fma.f64 1/16 (/.f64 (*.f64 (sqrt.f64 -1/10) (pow.f64 x 6)) (pow.f64 (sqrt.f64 -1) 5)) (fma.f64 (sqrt.f64 -1/10) (sqrt.f64 -1) (/.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 -1/10) (pow.f64 x 4))) (pow.f64 (sqrt.f64 -1) 3)))))
(fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 -1/10) (sqrt.f64 -1)) (*.f64 x x)) (fma.f64 1/16 (*.f64 (/.f64 (sqrt.f64 -1/10) (pow.f64 (sqrt.f64 -1) 5)) (pow.f64 x 6)) (fma.f64 (sqrt.f64 -1/10) (sqrt.f64 -1) (*.f64 1/8 (/.f64 (*.f64 (sqrt.f64 -1/10) (pow.f64 x 4)) (sqrt.f64 -1))))))
(fma.f64 1/2 (*.f64 (*.f64 x x) (/.f64 (sqrt.f64 -1/10) (sqrt.f64 -1))) (fma.f64 (sqrt.f64 -1/10) (sqrt.f64 -1) (fma.f64 1/8 (/.f64 (sqrt.f64 -1/10) (/.f64 (sqrt.f64 -1) (pow.f64 x 4))) (*.f64 1/16 (/.f64 (pow.f64 x 6) (/.f64 (pow.f64 (sqrt.f64 -1) 5) (sqrt.f64 -1/10)))))))
(fma.f64 1/16 (*.f64 (pow.f64 x 6) (/.f64 (sqrt.f64 -1/10) (pow.f64 (sqrt.f64 -1) 5))) (fma.f64 (sqrt.f64 -1/10) (sqrt.f64 -1) (*.f64 (*.f64 (*.f64 x x) (/.f64 (sqrt.f64 -1/10) (sqrt.f64 -1))) (+.f64 1/2 (/.f64 -1/8 (/.f64 -1 (*.f64 x x)))))))
(*.f64 (sqrt.f64 -1/10) x)
(+.f64 (*.f64 -1/2 (/.f64 (sqrt.f64 -1/10) x)) (*.f64 (sqrt.f64 -1/10) x))
(fma.f64 -1/2 (/.f64 (sqrt.f64 -1/10) x) (*.f64 (sqrt.f64 -1/10) x))
(fma.f64 (sqrt.f64 -1/10) x (*.f64 -1/2 (/.f64 (sqrt.f64 -1/10) x)))
(fma.f64 (sqrt.f64 -1/10) x (/.f64 (*.f64 (sqrt.f64 -1/10) -1/2) x))
(*.f64 (sqrt.f64 -1/10) (-.f64 x (/.f64 1/2 x)))
(+.f64 (*.f64 -1/2 (/.f64 (sqrt.f64 -1/10) x)) (+.f64 (*.f64 -1/8 (/.f64 (sqrt.f64 -1/10) (pow.f64 x 3))) (*.f64 (sqrt.f64 -1/10) x)))
(fma.f64 -1/2 (/.f64 (sqrt.f64 -1/10) x) (fma.f64 -1/8 (/.f64 (sqrt.f64 -1/10) (pow.f64 x 3)) (*.f64 (sqrt.f64 -1/10) x)))
(fma.f64 -1/2 (/.f64 (sqrt.f64 -1/10) x) (fma.f64 (sqrt.f64 -1/10) x (*.f64 -1/8 (/.f64 (sqrt.f64 -1/10) (pow.f64 x 3)))))
(fma.f64 (sqrt.f64 -1/10) x (*.f64 (/.f64 (sqrt.f64 -1/10) x) (+.f64 -1/2 (/.f64 -1/8 (*.f64 x x)))))
(fma.f64 (sqrt.f64 -1/10) x (*.f64 (/.f64 (sqrt.f64 -1/10) x) (+.f64 (/.f64 (/.f64 -1/8 x) x) -1/2)))
(+.f64 (*.f64 -1/2 (/.f64 (sqrt.f64 -1/10) x)) (+.f64 (*.f64 -1/8 (/.f64 (sqrt.f64 -1/10) (pow.f64 x 3))) (+.f64 (*.f64 (sqrt.f64 -1/10) x) (*.f64 -1/16 (/.f64 (sqrt.f64 -1/10) (pow.f64 x 5))))))
(fma.f64 -1/2 (/.f64 (sqrt.f64 -1/10) x) (fma.f64 -1/8 (/.f64 (sqrt.f64 -1/10) (pow.f64 x 3)) (fma.f64 (sqrt.f64 -1/10) x (*.f64 -1/16 (/.f64 (sqrt.f64 -1/10) (pow.f64 x 5))))))
(+.f64 (fma.f64 (sqrt.f64 -1/10) x (*.f64 (/.f64 (sqrt.f64 -1/10) x) (+.f64 -1/2 (/.f64 -1/8 (*.f64 x x))))) (*.f64 -1/16 (/.f64 (sqrt.f64 -1/10) (pow.f64 x 5))))
(+.f64 (*.f64 (sqrt.f64 -1/10) (-.f64 x (/.f64 1/16 (pow.f64 x 5)))) (*.f64 (/.f64 (sqrt.f64 -1/10) x) (+.f64 (/.f64 (/.f64 -1/8 x) x) -1/2)))
(*.f64 -1 (*.f64 (sqrt.f64 -1/10) x))
(neg.f64 (*.f64 (sqrt.f64 -1/10) x))
(*.f64 (sqrt.f64 -1/10) (neg.f64 x))
(*.f64 x (neg.f64 (sqrt.f64 -1/10)))
(+.f64 (*.f64 -1 (*.f64 (sqrt.f64 -1/10) x)) (*.f64 1/2 (/.f64 (sqrt.f64 -1/10) x)))
(fma.f64 -1 (*.f64 (sqrt.f64 -1/10) x) (*.f64 1/2 (/.f64 (sqrt.f64 -1/10) x)))
(-.f64 (/.f64 1/2 (/.f64 x (sqrt.f64 -1/10))) (*.f64 (sqrt.f64 -1/10) x))
(-.f64 (*.f64 1/2 (/.f64 (sqrt.f64 -1/10) x)) (*.f64 (sqrt.f64 -1/10) x))
(*.f64 (sqrt.f64 -1/10) (-.f64 (/.f64 1/2 x) x))
(+.f64 (*.f64 -1 (*.f64 (sqrt.f64 -1/10) x)) (+.f64 (*.f64 1/8 (/.f64 (sqrt.f64 -1/10) (pow.f64 x 3))) (*.f64 1/2 (/.f64 (sqrt.f64 -1/10) x))))
(fma.f64 -1 (*.f64 (sqrt.f64 -1/10) x) (fma.f64 1/8 (/.f64 (sqrt.f64 -1/10) (pow.f64 x 3)) (*.f64 1/2 (/.f64 (sqrt.f64 -1/10) x))))
(-.f64 (fma.f64 1/8 (/.f64 (sqrt.f64 -1/10) (pow.f64 x 3)) (/.f64 1/2 (/.f64 x (sqrt.f64 -1/10)))) (*.f64 (sqrt.f64 -1/10) x))
(-.f64 (*.f64 (/.f64 (sqrt.f64 -1/10) x) (+.f64 (/.f64 (/.f64 1/8 x) x) 1/2)) (*.f64 (sqrt.f64 -1/10) x))
(fma.f64 1/8 (/.f64 (sqrt.f64 -1/10) (pow.f64 x 3)) (*.f64 (sqrt.f64 -1/10) (-.f64 (/.f64 1/2 x) x)))
(+.f64 (*.f64 -1 (*.f64 (sqrt.f64 -1/10) x)) (+.f64 (*.f64 1/8 (/.f64 (sqrt.f64 -1/10) (pow.f64 x 3))) (+.f64 (*.f64 1/16 (/.f64 (sqrt.f64 -1/10) (pow.f64 x 5))) (*.f64 1/2 (/.f64 (sqrt.f64 -1/10) x)))))
(fma.f64 -1 (*.f64 (sqrt.f64 -1/10) x) (fma.f64 1/8 (/.f64 (sqrt.f64 -1/10) (pow.f64 x 3)) (fma.f64 1/16 (/.f64 (sqrt.f64 -1/10) (pow.f64 x 5)) (*.f64 1/2 (/.f64 (sqrt.f64 -1/10) x)))))
(-.f64 (fma.f64 1/8 (/.f64 (sqrt.f64 -1/10) (pow.f64 x 3)) (fma.f64 1/2 (/.f64 (sqrt.f64 -1/10) x) (*.f64 1/16 (/.f64 (sqrt.f64 -1/10) (pow.f64 x 5))))) (*.f64 (sqrt.f64 -1/10) x))
(-.f64 (fma.f64 1/16 (/.f64 (sqrt.f64 -1/10) (pow.f64 x 5)) (*.f64 (/.f64 (sqrt.f64 -1/10) x) (+.f64 (/.f64 (/.f64 1/8 x) x) 1/2))) (*.f64 (sqrt.f64 -1/10) x))
(+.f64 (*.f64 (/.f64 (sqrt.f64 -1/10) x) (+.f64 (/.f64 (/.f64 1/8 x) x) 1/2)) (*.f64 (sqrt.f64 -1/10) (-.f64 (/.f64 1/16 (pow.f64 x 5)) x)))

eval592.0ms (8.5%)

Compiler

Compiled 6220 to 5047 computations (18.9% saved)

prune375.0ms (5.4%)

Pruning

22 alts after pruning (13 fresh and 9 done)

PrunedKeptTotal
New4457452
Fresh4610
Picked101
Done3912
Total45322475
Error
0b
Counts
475 → 22
Alt Table
Click to see full alt table
StatusErrorProgram
8.2b
(/.f64 1 (+.f64 (*.f64 (*.f64 x x) -1/10) 1/10))
0.4b
(*.f64 (/.f64 1 (fma.f64 x x -1)) -10)
57.9b
(/.f64 10 (*.f64 x x))
7.9b
(/.f64 10 (-.f64 1 (*.f64 x x)))
57.9b
10
8.5b
(/.f64 1 (/.f64 (-.f64 (*.f64 (*.f64 (*.f64 x x) -1/10) (*.f64 (*.f64 x x) -1/10)) 1/100) (-.f64 (*.f64 (*.f64 x x) -1/10) 1/10)))
0.5b
(/.f64 (/.f64 1 (fma.f64 x x -1)) -1/10)
42.9b
(/.f64 (expm1.f64 (log1p.f64 (/.f64 1 (fma.f64 x x -1)))) -1/10)
22.0b
(pow.f64 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) -2)
22.2b
(/.f64 1 (pow.f64 (cbrt.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) 3/2)) 2))
21.4b
(sqrt.f64 (/.f64 100 (pow.f64 (fma.f64 x x -1) 2)))
22.7b
(expm1.f64 (log1p.f64 (/.f64 -10 (fma.f64 x x -1))))
0.6b
(cbrt.f64 (/.f64 -1000 (pow.f64 (fma.f64 x x -1) 3)))
6.4b
(/.f64 10 (*.f64 (-.f64 1 (pow.f64 x 6)) (/.f64 1 (+.f64 1 (+.f64 (*.f64 x x) (pow.f64 x 4))))))
22.6b
(exp.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1))))
0.3b
(/.f64 -10 (fma.f64 x x -1))
7.9b
(*.f64 (/.f64 1 (-.f64 1 (*.f64 x x))) 10)
0.3b
(/.f64 1 (/.f64 (fma.f64 x x -1) -10))
7.9b
(/.f64 10 (/.f64 (-.f64 1 (*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x)))) (-.f64 1 (*.f64 x (neg.f64 x)))))
60.4b
-10
42.9b
(/.f64 (exp.f64 (neg.f64 (log.f64 (fma.f64 x x -1)))) -1/10)
6.9b
(/.f64 1 (fma.f64 x (*.f64 x -1/10) 1/10))
Compiler

Compiled 229 to 173 computations (24.5% saved)

regimes382.0ms (5.5%)

Counts
46 → 1
Calls
Call 1
Inputs
10
-10
10
(/.f64 10 (*.f64 x x))
(/.f64 (/.f64 -10 x) x)
(/.f64 -10 (*.f64 x x))
(/.f64 10 (-.f64 1 (*.f64 x x)))
(/.f64 1 (+.f64 (*.f64 (*.f64 x x) -1/10) 1/10))
(*.f64 (/.f64 1 (-.f64 1 (*.f64 x x))) 10)
(/.f64 10 (/.f64 (-.f64 1 (*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x)))) (-.f64 1 (*.f64 x (neg.f64 x)))))
(/.f64 1 (/.f64 (-.f64 (*.f64 (*.f64 (*.f64 x x) -1/10) (*.f64 (*.f64 x x) -1/10)) 1/100) (-.f64 (*.f64 (*.f64 x x) -1/10) 1/10)))
(/.f64 -10 (fma.f64 x x -1))
(/.f64 1 (fma.f64 x (*.f64 x -1/10) 1/10))
(/.f64 1 (/.f64 (fma.f64 x x -1) -10))
(/.f64 (/.f64 1 (fma.f64 x x -1)) -1/10)
(*.f64 (/.f64 1 (fma.f64 x x -1)) -10)
(pow.f64 (fma.f64 x (*.f64 -1/10 x) 1/10) -1)
(pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -1)
(/.f64 10 (*.f64 (-.f64 1 (pow.f64 x 6)) (/.f64 1 (+.f64 1 (+.f64 (*.f64 x x) (pow.f64 x 4))))))
(exp.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1))))
(exp.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1))))
(expm1.f64 (log1p.f64 (/.f64 -10 (fma.f64 x x -1))))
(exp.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1))))
(pow.f64 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) -2)
(cbrt.f64 (/.f64 -1000 (pow.f64 (fma.f64 x x -1) 3)))
(/.f64 (exp.f64 (neg.f64 (log.f64 (fma.f64 x x -1)))) -1/10)
(sqrt.f64 (*.f64 (pow.f64 (fma.f64 x x -1) -2) 100))
(cbrt.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3))
(cbrt.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3))
(*.f64 (exp.f64 (neg.f64 (log.f64 (fma.f64 x x -1)))) -10)
(sqrt.f64 (/.f64 100 (pow.f64 (fma.f64 x x -1) 2)))
(pow.f64 (sqrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2)
(cbrt.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3))
(sqrt.f64 (/.f64 100 (pow.f64 (fma.f64 x x -1) 2)))
(pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 3)
(/.f64 (expm1.f64 (log1p.f64 (/.f64 1 (fma.f64 x x -1)))) -1/10)
(/.f64 1 (pow.f64 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) 2))
(*.f64 (pow.f64 (/.f64 1 (cbrt.f64 (fma.f64 x x -1))) 3) -10)
(pow.f64 (pow.f64 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) 2) -1)
(pow.f64 (*.f64 (cbrt.f64 -10) (/.f64 1 (cbrt.f64 (fma.f64 x x -1)))) 3)
(/.f64 1 (pow.f64 (cbrt.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) 3/2)) 2))
(sqrt.f64 (pow.f64 (pow.f64 (cbrt.f64 (/.f64 10 (fma.f64 x x -1))) 2) 3))
(*.f64 (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2) (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))))
(*.f64 (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2) (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))))
(*.f64 (/.f64 1 (cbrt.f64 (fma.f64 x x -1))) (*.f64 (cbrt.f64 -10) (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2)))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1)))) 2) 3) (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))))
Outputs
(/.f64 -10 (fma.f64 x x -1))
Calls

7 calls:

183.0ms
(-.f64 1 (*.f64 x x))
47.0ms
(*.f64 x x)
40.0ms
x
25.0ms
(/.f64 10 (-.f64 1 (*.f64 x x)))
25.0ms
(-.f64 1 (*.f64 x x))
Results
ErrorSegmentsBranch
0.3b1x
0.3b1(/.f64 10 (-.f64 1 (*.f64 x x)))
0.3b1(/.f64 10 (-.f64 1 (*.f64 x x)))
0.3b1(-.f64 1 (*.f64 x x))
0.3b1(-.f64 1 (*.f64 x x))
0.3b1(*.f64 x x)
0.3b1(*.f64 x x)
Compiler

Compiled 492 to 363 computations (26.2% saved)

regimes77.0ms (1.1%)

Counts
11 → 1
Calls
Call 1
Inputs
10
-10
10
(/.f64 10 (*.f64 x x))
(/.f64 (/.f64 -10 x) x)
(/.f64 -10 (*.f64 x x))
(/.f64 10 (-.f64 1 (*.f64 x x)))
(/.f64 1 (+.f64 (*.f64 (*.f64 x x) -1/10) 1/10))
(*.f64 (/.f64 1 (-.f64 1 (*.f64 x x))) 10)
(/.f64 10 (/.f64 (-.f64 1 (*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x)))) (-.f64 1 (*.f64 x (neg.f64 x)))))
(/.f64 1 (/.f64 (-.f64 (*.f64 (*.f64 (*.f64 x x) -1/10) (*.f64 (*.f64 x x) -1/10)) 1/100) (-.f64 (*.f64 (*.f64 x x) -1/10) 1/10)))
Outputs
(*.f64 (/.f64 1 (-.f64 1 (*.f64 x x))) 10)
Calls

5 calls:

40.0ms
(*.f64 x x)
11.0ms
(/.f64 10 (-.f64 1 (*.f64 x x)))
8.0ms
(/.f64 10 (-.f64 1 (*.f64 x x)))
7.0ms
(-.f64 1 (*.f64 x x))
7.0ms
x
Results
ErrorSegmentsBranch
7.9b1x
7.9b1(/.f64 10 (-.f64 1 (*.f64 x x)))
7.9b1(/.f64 10 (-.f64 1 (*.f64 x x)))
7.9b1(-.f64 1 (*.f64 x x))
7.9b1(*.f64 x x)
Compiler

Compiled 115 to 71 computations (38.3% saved)

regimes192.0ms (2.8%)

Counts
8 → 1
Calls
Call 1
Inputs
10
-10
10
(/.f64 10 (*.f64 x x))
(/.f64 (/.f64 -10 x) x)
(/.f64 -10 (*.f64 x x))
(/.f64 10 (-.f64 1 (*.f64 x x)))
(/.f64 1 (+.f64 (*.f64 (*.f64 x x) -1/10) 1/10))
Outputs
(/.f64 10 (-.f64 1 (*.f64 x x)))
Calls

4 calls:

152.0ms
(/.f64 10 (-.f64 1 (*.f64 x x)))
13.0ms
(-.f64 1 (*.f64 x x))
12.0ms
x
12.0ms
(*.f64 x x)
Results
ErrorSegmentsBranch
7.9b1x
7.9b1(/.f64 10 (-.f64 1 (*.f64 x x)))
7.9b1(-.f64 1 (*.f64 x x))
7.9b1(*.f64 x x)
Compiler

Compiled 55 to 35 computations (36.4% saved)

regimes52.0ms (0.8%)

Counts
6 → 2
Calls
Call 1
Inputs
10
-10
10
(/.f64 10 (*.f64 x x))
(/.f64 (/.f64 -10 x) x)
(/.f64 -10 (*.f64 x x))
Outputs
(/.f64 10 (*.f64 x x))
-10
Calls

2 calls:

28.0ms
x
21.0ms
(*.f64 x x)
Results
ErrorSegmentsBranch
55.4b2x
55.4b2(*.f64 x x)
Compiler

Compiled 25 to 15 computations (40% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.9999784701681915
1.000003071402024
Compiler

Compiled 12 to 9 computations (25% saved)

regimes17.0ms (0.2%)

Accuracy

Total -7.6b remaining (-13.8%)

Threshold costs -7.6b (-13.8%)

Counts
3 → 2
Calls
Call 1
Inputs
10
-10
10
Outputs
10
-10
Calls

1 calls:

15.0ms
x
Results
ErrorSegmentsBranch
55.4b2x
Compiler

Compiled 6 to 5 computations (16.7% saved)

bsearch0.0ms (0%)

Algorithm
binary-search
Steps
TimeLeftRight
0.0ms
0.9999892350261534
1.0000015356998329
Compiler

Compiled 12 to 9 computations (25% saved)

simplify10.0ms (0.1%)

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
01957
12757
23357
33757
43957
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(/.f64 -10 (fma.f64 x x -1))
(*.f64 (/.f64 1 (-.f64 1 (*.f64 x x))) 10)
(/.f64 10 (-.f64 1 (*.f64 x x)))
(if (<=.f64 (*.f64 x x) 1) (/.f64 10 (*.f64 x x)) -10)
(if (<=.f64 x 1) 10 -10)
10
Outputs
(/.f64 -10 (fma.f64 x x -1))
(*.f64 (/.f64 1 (-.f64 1 (*.f64 x x))) 10)
(/.f64 10 (-.f64 1 (*.f64 x x)))
(if (<=.f64 (*.f64 x x) 1) (/.f64 10 (*.f64 x x)) -10)
(if (<=.f64 x 1) 10 -10)
10
Compiler

Compiled 47 to 35 computations (25.5% saved)

soundness331.0ms (4.8%)

Algorithm
egg-herbie
Rules
601×unsub-neg_binary64
586×distribute-rgt-out--_binary64
492×fma-neg_binary64
434×distribute-neg-in_binary64
409×distribute-rgt-in_binary64
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
0710
11410
22110
33210
44910
5778
61318
73628
87388
915368
1028958
1143128
1252708
1355808
1458848
1559858
1660638
1763318
1872778
Stop Event
node limit
Compiler

Compiled 110 to 86 computations (21.8% saved)

end47.0ms (0.7%)

Compiler

Compiled 42 to 28 computations (33.3% saved)

Profiling

Loading profile data...