Details

Time bar (total: 5.8s)

analyze39.0ms (0.7%)

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)

sample862.0ms (14.9%)

Results
847.0ms8256×body256valid

preprocess158.0ms (2.7%)

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)

simplify151.0ms (2.6%)

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)

prune3.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.2b
Counts
3 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
8.0b
(/.f64 10 (-.f64 1 (*.f64 x x)))
0.2b
(/.f64 -10 (fma.f64 x x -1))
Compiler

Compiled 15 to 11 computations (26.7% saved)

localize13.0ms (0.2%)

Local error

Found 1 expressions with local error:

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

Compiled 14 to 9 computations (35.7% saved)

series10.0ms (0.2%)

Counts
1 → 12
Calls

3 calls:

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

rewrite64.0ms (1.1%)

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

simplify50.0ms (0.9%)

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.2b
(/.f64 10 (-.f64 1 (*.f64 x x)))
8.0b
(-.f64 1 (*.f64 x x))
Compiler

Compiled 19 to 10 computations (47.4% saved)

series2.0ms (0%)

Counts
2 → 24
Calls

6 calls:

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

rewrite61.0ms (1.1%)

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

simplify51.0ms (0.9%)

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

eval30.0ms (0.5%)

Compiler

Compiled 1239 to 893 computations (27.9% saved)

prune24.0ms (0.4%)

Pruning

13 alts after pruning (11 fresh and 2 done)

PrunedKeptTotal
New9411105
Fresh000
Picked011
Done011
Total9413107
Error
0.0b
Counts
107 → 13
Alt Table
Click to see full alt table
StatusErrorProgram
8.0b
(/.f64 10 (/.f64 (-.f64 1 (*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x)))) (-.f64 1 (*.f64 x (neg.f64 x)))))
58.1b
10
60.3b
(/.f64 -10 (*.f64 x x))
0.4b
(pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -1)
8.0b
(*.f64 (/.f64 1 (-.f64 1 (*.f64 x x))) 10)
1.4b
(pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 3)
8.0b
(/.f64 10 (-.f64 1 (*.f64 x x)))
0.4b
(*.f64 (/.f64 1 (fma.f64 x x -1)) -10)
0.2b
(/.f64 -10 (fma.f64 x x -1))
1.3b
(*.f64 (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2) (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))))
23.9b
(exp.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1))))
23.9b
(expm1.f64 (log1p.f64 (/.f64 -10 (fma.f64 x x -1))))
0.6b
(cbrt.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3))
Compiler

Compiled 239 to 175 computations (26.8% saved)

localize10.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.3b
(/.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 (/.f64 1 (fma.f64 x x -1)) -10)

rewrite124.0ms (2.2%)

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

simplify110.0ms (1.9%)

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

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

simplify155.0ms (2.7%)

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

localize16.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(/.f64 10 (/.f64 (-.f64 1 (*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x)))) (-.f64 1 (*.f64 x (neg.f64 x)))))
0.4b
(/.f64 (-.f64 1 (*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x)))) (-.f64 1 (*.f64 x (neg.f64 x))))
0.6b
(*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x)))
7.0b
(-.f64 1 (*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x))))
Compiler

Compiled 74 to 22 computations (70.3% saved)

series5.0ms (0.1%)

Counts
4 → 48
Calls

12 calls:

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

rewrite189.0ms (3.3%)

Algorithm
batch-egg-rewrite
Rules
494×log-prod_binary64
300×pow-prod-down_binary64
262×fma-def_binary64
246×pow-unpow_binary64
244×pow2_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01170
126034
2409024
Stop Event
node limit
Counts
4 → 204
Calls
Call 1
Inputs
(-.f64 1 (*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x))))
(*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x)))
(/.f64 (-.f64 1 (*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x)))) (-.f64 1 (*.f64 x (neg.f64 x))))
(/.f64 10 (/.f64 (-.f64 1 (*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x)))) (-.f64 1 (*.f64 x (neg.f64 x)))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (pow.f64 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (pow.f64 x 4) 1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (+.f64 1 (pow.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (+.f64 1 (pow.f64 x 4)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (+.f64 1 (pow.f64 x 4))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (+.f64 1 (pow.f64 x 4))))) (log.f64 (sqrt.f64 (exp.f64 (+.f64 1 (pow.f64 x 4))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 1 (pow.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1 (pow.f64 x 4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 1 (pow.f64 x 4))) (pow.f64 (cbrt.f64 (+.f64 1 (pow.f64 x 4))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 1 (pow.f64 x 4))) 2) (cbrt.f64 (+.f64 1 (pow.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 1 (*.f64 x x)) (hypot.f64 1 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1 (pow.f64 x 12)) (/.f64 1 (+.f64 (+.f64 1 (pow.f64 x 8)) (pow.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1 (pow.f64 x 8)) (pow.f64 (hypot.f64 1 (*.f64 x x)) -2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (+.f64 1 (pow.f64 x 8)) (pow.f64 x 4)) (-.f64 1 (pow.f64 x 12))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 1 (pow.f64 x 4)) (+.f64 1 (pow.f64 x 8))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (pow.f64 x 12)) (+.f64 (+.f64 1 (pow.f64 x 8)) (pow.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1 (pow.f64 x 8)) (+.f64 1 (pow.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 1 (pow.f64 x 12))) (neg.f64 (+.f64 (+.f64 1 (pow.f64 x 8)) (pow.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 1 (pow.f64 x 8))) (+.f64 -1 (pow.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1 (pow.f64 x 12)) (+.f64 (+.f64 1 (pow.f64 x 8)) (pow.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 1 (pow.f64 x 4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 1 (pow.f64 x 4)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (hypot.f64 1 (*.f64 x x)) 6) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 1 (pow.f64 x 4))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (hypot.f64 1 (*.f64 x x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 (+.f64 1 (pow.f64 x 8)) (pow.f64 x 4)) (-.f64 1 (pow.f64 x 12))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 1 (pow.f64 x 4)) (+.f64 1 (pow.f64 x 8))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 1 (pow.f64 x 4)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 1 (pow.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 1 (pow.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (hypot.f64 1 (*.f64 x x)) 6))))) (#(struct:change #<rule egg-rr> (2) ((x hypot.f64 (hypot.f64 1 (*.f64 x x)) (hypot.f64 (*.f64 x x) (pow.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 1 (pow.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 1 (pow.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log1p.f64 (pow.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log1p.f64 (pow.f64 x 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (pow.f64 x 4) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (pow.f64 x 3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x x) (*.f64 x x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x 4) 1 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (cbrt.f64 x)) (cbrt.f64 (pow.f64 x 8)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 x 8)) (*.f64 x (cbrt.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 x 8)) (neg.f64 (*.f64 x (cbrt.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) (pow.f64 x 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (pow.f64 x 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (pow.f64 x 4) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x 3) x 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (cbrt.f64 (pow.f64 x 8))) (*.f64 x (cbrt.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 x x) (*.f64 x (cbrt.f64 x))) (pow.f64 (cbrt.f64 x) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 x 3) 1) x 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 x 3) (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 x 3) (sqrt.f64 x)) (sqrt.f64 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 x 3) -1) x 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (pow.f64 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (pow.f64 x 4))) 2)) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 x 4)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 x 4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (pow.f64 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 x 4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x x) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 x 4) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 x 8) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (cbrt.f64 x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 x) 2) 6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 x 12) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 x 6) 2/3)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (pow.f64 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 x 8))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 1 (+.f64 1 (expm1.f64 (pow.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 x 12))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (*.f64 (log1p.f64 (pow.f64 x 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (pow.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 2 (log.f64 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 x 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 1 (pow.f64 x 4)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 1 (pow.f64 x 4)) 1 -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (+.f64 1 (pow.f64 x 4))) (pow.f64 (cbrt.f64 (+.f64 1 (pow.f64 x 4))) 2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 1 (pow.f64 x 4))) 2) (cbrt.f64 (+.f64 1 (pow.f64 x 4))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (hypot.f64 1 (*.f64 x x)) (hypot.f64 1 (*.f64 x x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 1 (pow.f64 x 12)) (/.f64 1 (+.f64 (+.f64 1 (pow.f64 x 8)) (pow.f64 x 4))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 1 (pow.f64 x 8)) (pow.f64 (hypot.f64 1 (*.f64 x x)) -2) -1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (fma.f64 x x 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (pow.f64 (hypot.f64 1 x) -2) (neg.f64 (/.f64 (pow.f64 x 4) (fma.f64 x x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (fma.f64 x x 1))) 2)) (log.f64 (cbrt.f64 (exp.f64 (fma.f64 x x 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (fma.f64 x x 1)))) (log.f64 (sqrt.f64 (exp.f64 (fma.f64 x x 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 1 (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (pow.f64 (hypot.f64 1 x) -2) (/.f64 (pow.f64 x 4) (fma.f64 x x 1)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 x x 1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 1 (fma.f64 x (+.f64 (pow.f64 x 3) x) 1)) (/.f64 (pow.f64 x 6) (fma.f64 x (+.f64 (pow.f64 x 3) x) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 x x 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1 (pow.f64 x 4)) (pow.f64 (hypot.f64 1 x) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x x 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 x x 1)) (cbrt.f64 (pow.f64 (hypot.f64 1 x) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (hypot.f64 1 x) 4)) (cbrt.f64 (fma.f64 x x 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 1 (pow.f64 x 4))) 2) (*.f64 (cbrt.f64 (+.f64 1 (pow.f64 x 4))) (pow.f64 (hypot.f64 1 x) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 1 x) (hypot.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 1 (*.f64 x x)) (*.f64 (hypot.f64 1 (*.f64 x x)) (pow.f64 (hypot.f64 1 x) -2)))))) (#(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 (+.f64 1 (pow.f64 x 6)) (/.f64 1 (fma.f64 x (+.f64 (pow.f64 x 3) x) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (hypot.f64 1 x) -2) (+.f64 1 (pow.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 x x 1)) -2) (/.f64 (+.f64 1 (pow.f64 x 4)) (cbrt.f64 (fma.f64 x x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (hypot.f64 1 x)) (/.f64 (+.f64 1 (pow.f64 x 4)) (hypot.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 1 (pow.f64 x 4))) 2) 1) (/.f64 (cbrt.f64 (+.f64 1 (pow.f64 x 4))) (fma.f64 x x 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (hypot.f64 1 (*.f64 x x)) 1) (/.f64 (hypot.f64 1 (*.f64 x x)) (fma.f64 x x 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 1 (pow.f64 x 4))) 2) (cbrt.f64 (pow.f64 (hypot.f64 1 x) 4))) (cbrt.f64 (fma.f64 x x 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (hypot.f64 1 (*.f64 x x)) (cbrt.f64 (pow.f64 (hypot.f64 1 x) 4))) (/.f64 (hypot.f64 1 (*.f64 x x)) (cbrt.f64 (fma.f64 x x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 1 (pow.f64 x 4))) 2) (hypot.f64 1 x)) (/.f64 (cbrt.f64 (+.f64 1 (pow.f64 x 4))) (hypot.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 1 (pow.f64 x 4)) (+.f64 1 (pow.f64 x 6))) (fma.f64 x (+.f64 (pow.f64 x 3) x) 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 (pow.f64 (hypot.f64 1 x) 4) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (hypot.f64 1 x) 6) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 x x 1)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (hypot.f64 1 x) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (hypot.f64 1 x) -2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (hypot.f64 1 (*.f64 x x)) 6) (pow.f64 (hypot.f64 1 x) 6)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 x (+.f64 (pow.f64 x 3) x) 1) (+.f64 1 (pow.f64 x 6))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (hypot.f64 1 x) -2) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (+.f64 1 (pow.f64 x 4)) (+.f64 -1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (hypot.f64 1 x) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 x x 1)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 x x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (hypot.f64 1 x) 6))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (hypot.f64 1 (*.f64 x x)) 6) (pow.f64 (hypot.f64 1 x) 6)))))) (#(struct:change #<rule egg-rr> (2) ((x hypot.f64 (hypot.f64 1 x) (hypot.f64 x (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 x x 1)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 x x 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log1p.f64 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log1p.f64 (*.f64 x x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (pow.f64 (hypot.f64 1 x) -2) (neg.f64 (/.f64 (pow.f64 x 4) (fma.f64 x x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x x 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x x) 1 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 x x 1) (pow.f64 (hypot.f64 1 (*.f64 x x)) -2) (neg.f64 (/.f64 (pow.f64 x 4) (fma.f64 x x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (cbrt.f64 x)) (pow.f64 (cbrt.f64 x) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (cbrt.f64 x)) (neg.f64 (pow.f64 (cbrt.f64 x) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 x (cbrt.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 x (sqrt.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (*.f64 x x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 1 x) -2)) 2) (cbrt.f64 (pow.f64 (hypot.f64 1 x) -2)) (neg.f64 (/.f64 (pow.f64 x 4) (fma.f64 x x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (cbrt.f64 (pow.f64 x 8))) (sqrt.f64 (*.f64 x (cbrt.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (sqrt.f64 x)) (sqrt.f64 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (pow.f64 (hypot.f64 1 x) -2)) (sqrt.f64 (pow.f64 (hypot.f64 1 x) -2)) (neg.f64 (/.f64 (pow.f64 x 4) (fma.f64 x x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (cbrt.f64 (pow.f64 (hypot.f64 1 x) 4)) 1) (/.f64 (cbrt.f64 (fma.f64 x x 1)) (+.f64 1 (pow.f64 x 4))) (neg.f64 (/.f64 (pow.f64 x 4) (fma.f64 x x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (hypot.f64 1 x) 1) (/.f64 (hypot.f64 1 x) (+.f64 1 (pow.f64 x 4))) (neg.f64 (/.f64 (pow.f64 x 4) (fma.f64 x x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 1 (pow.f64 x 4))) -2) (/.f64 (fma.f64 x x 1) (cbrt.f64 (+.f64 1 (pow.f64 x 4)))) (neg.f64 (/.f64 (pow.f64 x 4) (fma.f64 x x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (cbrt.f64 (pow.f64 (hypot.f64 1 x) 4)) (pow.f64 (cbrt.f64 (+.f64 1 (pow.f64 x 4))) 2)) (/.f64 (cbrt.f64 (fma.f64 x x 1)) (cbrt.f64 (+.f64 1 (pow.f64 x 4)))) (neg.f64 (/.f64 (pow.f64 x 4) (fma.f64 x x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (hypot.f64 1 x) (pow.f64 (cbrt.f64 (+.f64 1 (pow.f64 x 4))) 2)) (/.f64 (hypot.f64 1 x) (cbrt.f64 (+.f64 1 (pow.f64 x 4)))) (neg.f64 (/.f64 (pow.f64 x 4) (fma.f64 x x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (hypot.f64 1 (*.f64 x x))) (/.f64 (fma.f64 x x 1) (hypot.f64 1 (*.f64 x x))) (neg.f64 (/.f64 (pow.f64 x 4) (fma.f64 x x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (cbrt.f64 (pow.f64 (hypot.f64 1 x) 4)) (hypot.f64 1 (*.f64 x x))) (/.f64 (cbrt.f64 (fma.f64 x x 1)) (hypot.f64 1 (*.f64 x x))) (neg.f64 (/.f64 (pow.f64 x 4) (fma.f64 x x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (hypot.f64 1 x) (hypot.f64 1 (*.f64 x x))) (/.f64 (hypot.f64 1 x) (hypot.f64 1 (*.f64 x x))) (neg.f64 (/.f64 (pow.f64 x 4) (fma.f64 x x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (hypot.f64 1 (*.f64 x x)) -2) (fma.f64 x x 1) (neg.f64 (/.f64 (pow.f64 x 4) (fma.f64 x x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (*.f64 x (cbrt.f64 x))) (pow.f64 (cbrt.f64 x) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (+.f64 1 (pow.f64 x 6))) (fma.f64 x (+.f64 (pow.f64 x 3) x) 1) (neg.f64 (/.f64 (pow.f64 x 4) (fma.f64 x x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (+.f64 -1 (pow.f64 x 4))) (+.f64 -1 (*.f64 x x)) (neg.f64 (/.f64 (pow.f64 x 4) (fma.f64 x x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (fma.f64 x x 1) (-.f64 1 (pow.f64 x 12))) (+.f64 (+.f64 1 (pow.f64 x 8)) (pow.f64 x 4)) (neg.f64 (/.f64 (pow.f64 x 4) (fma.f64 x x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (fma.f64 x x 1) (+.f64 1 (pow.f64 x 8))) (+.f64 1 (pow.f64 x 4)) (neg.f64 (/.f64 (pow.f64 x 4) (fma.f64 x x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 10 (fma.f64 x x 1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 -10 (+.f64 -1 (pow.f64 x 4))) (*.f64 (*.f64 x x) (/.f64 -10 (+.f64 -1 (pow.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (/.f64 -10 (+.f64 -1 (pow.f64 x 4))) 1) (*.f64 (/.f64 -10 (+.f64 -1 (pow.f64 x 4))) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (/.f64 10 (fma.f64 x x 1)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (/.f64 10 (fma.f64 x x 1))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 10 (fma.f64 x x 1))))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 10 (fma.f64 x x 1))))))))) (#(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 1 (/.f64 10 (fma.f64 x x 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x x 1) (/.f64 -10 (+.f64 -1 (pow.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 10 (pow.f64 (hypot.f64 1 x) -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 (cbrt.f64 (/.f64 10 (fma.f64 x x 1))) (cbrt.f64 (/.f64 100 (pow.f64 (hypot.f64 1 x) 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 100 (pow.f64 (hypot.f64 1 x) 4))) (cbrt.f64 (/.f64 10 (fma.f64 x x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 10) (hypot.f64 1 x)) (/.f64 (sqrt.f64 10) (hypot.f64 1 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 (pow.f64 (hypot.f64 1 x) -2) 10)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -10 (+.f64 -1 (pow.f64 x 4))) (fma.f64 x x 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 -10 (+.f64 -1 (pow.f64 x 4))) 1) (fma.f64 x x 1))))) (#(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 *.f64 (*.f64 (/.f64 -10 (+.f64 -1 (pow.f64 x 4))) (cbrt.f64 (pow.f64 (hypot.f64 1 x) 4))) (cbrt.f64 (fma.f64 x x 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 -10 (+.f64 -1 (pow.f64 x 4))) (hypot.f64 1 x)) (hypot.f64 1 x))))) (#(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 100 (pow.f64 (hypot.f64 1 x) 4)) 1/2)))) (#(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 (/.f64 (sqrt.f64 10) (hypot.f64 1 x)) 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 (*.f64 (fma.f64 x x 1) 1/10) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (/.f64 100 (pow.f64 (hypot.f64 1 x) 4)))))) (#(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 exp.f64 (*.f64 (log.f64 (/.f64 10 (fma.f64 x x 1))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (/.f64 -10 (+.f64 -1 (pow.f64 x 4))) (*.f64 (*.f64 x x) (/.f64 -10 (+.f64 -1 (pow.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 10 (pow.f64 (hypot.f64 1 (*.f64 x x)) -2) (*.f64 (*.f64 x x) (/.f64 -10 (+.f64 -1 (pow.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 -10 (+.f64 -1 (pow.f64 x 4))) 1 (*.f64 (/.f64 -10 (+.f64 -1 (pow.f64 x 4))) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (/.f64 -10 (+.f64 -1 (pow.f64 x 4)))) 2) (cbrt.f64 (/.f64 -10 (+.f64 -1 (pow.f64 x 4)))) (*.f64 (*.f64 x x) (/.f64 -10 (+.f64 -1 (pow.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (/.f64 -10 (+.f64 -1 (pow.f64 x 4)))) (sqrt.f64 (/.f64 -10 (+.f64 -1 (pow.f64 x 4)))) (*.f64 (*.f64 x x) (/.f64 -10 (+.f64 -1 (pow.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 10 (-.f64 1 (pow.f64 x 12))) (+.f64 (+.f64 1 (pow.f64 x 8)) (pow.f64 x 4)) (*.f64 (*.f64 x x) (/.f64 -10 (+.f64 -1 (pow.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 10 (+.f64 1 (pow.f64 x 8))) (+.f64 1 (pow.f64 x 4)) (*.f64 (*.f64 x x) (/.f64 -10 (+.f64 -1 (pow.f64 x 4)))))))))

simplify66.0ms (1.1%)

Algorithm
egg-herbie
Rules
697×fma-def_binary64
437×distribute-rgt-out_binary64
413×unswap-sqr_binary64
360×distribute-neg-frac_binary64
293×associate-*l*_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
043462
1122410
2365406
31241403
45173400
Stop Event
node limit
Counts
252 → 227
Calls
Call 1
Inputs
1
(+.f64 1 (*.f64 -1 (pow.f64 x 4)))
(+.f64 1 (*.f64 -1 (pow.f64 x 4)))
(+.f64 1 (*.f64 -1 (pow.f64 x 4)))
(*.f64 -1 (pow.f64 x 4))
(+.f64 1 (*.f64 -1 (pow.f64 x 4)))
(+.f64 1 (*.f64 -1 (pow.f64 x 4)))
(+.f64 1 (*.f64 -1 (pow.f64 x 4)))
(*.f64 -1 (pow.f64 x 4))
(+.f64 1 (*.f64 -1 (pow.f64 x 4)))
(+.f64 1 (*.f64 -1 (pow.f64 x 4)))
(+.f64 1 (*.f64 -1 (pow.f64 x 4)))
(pow.f64 x 4)
(pow.f64 x 4)
(pow.f64 x 4)
(pow.f64 x 4)
(pow.f64 x 4)
(pow.f64 x 4)
(pow.f64 x 4)
(pow.f64 x 4)
(pow.f64 x 4)
(pow.f64 x 4)
(pow.f64 x 4)
(pow.f64 x 4)
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 4)))
(+.f64 1 (neg.f64 (pow.f64 x 4)))
(-.f64 1 (pow.f64 x 4))
(+.f64 1 (*.f64 -1 (pow.f64 x 4)))
(+.f64 1 (neg.f64 (pow.f64 x 4)))
(-.f64 1 (pow.f64 x 4))
(+.f64 1 (*.f64 -1 (pow.f64 x 4)))
(+.f64 1 (neg.f64 (pow.f64 x 4)))
(-.f64 1 (pow.f64 x 4))
(*.f64 -1 (pow.f64 x 4))
(neg.f64 (pow.f64 x 4))
(+.f64 1 (*.f64 -1 (pow.f64 x 4)))
(+.f64 1 (neg.f64 (pow.f64 x 4)))
(-.f64 1 (pow.f64 x 4))
(+.f64 1 (*.f64 -1 (pow.f64 x 4)))
(+.f64 1 (neg.f64 (pow.f64 x 4)))
(-.f64 1 (pow.f64 x 4))
(+.f64 1 (*.f64 -1 (pow.f64 x 4)))
(+.f64 1 (neg.f64 (pow.f64 x 4)))
(-.f64 1 (pow.f64 x 4))
(*.f64 -1 (pow.f64 x 4))
(neg.f64 (pow.f64 x 4))
(+.f64 1 (*.f64 -1 (pow.f64 x 4)))
(+.f64 1 (neg.f64 (pow.f64 x 4)))
(-.f64 1 (pow.f64 x 4))
(+.f64 1 (*.f64 -1 (pow.f64 x 4)))
(+.f64 1 (neg.f64 (pow.f64 x 4)))
(-.f64 1 (pow.f64 x 4))
(+.f64 1 (*.f64 -1 (pow.f64 x 4)))
(+.f64 1 (neg.f64 (pow.f64 x 4)))
(-.f64 1 (pow.f64 x 4))
(pow.f64 x 4)
(pow.f64 x 4)
(pow.f64 x 4)
(pow.f64 x 4)
(pow.f64 x 4)
(pow.f64 x 4)
(pow.f64 x 4)
(pow.f64 x 4)
(pow.f64 x 4)
(pow.f64 x 4)
(pow.f64 x 4)
(pow.f64 x 4)
1
(+.f64 1 (*.f64 -1 (pow.f64 x 2)))
(+.f64 1 (neg.f64 (*.f64 x x)))
(-.f64 1 (*.f64 x x))
(fma.f64 x (neg.f64 x) 1)
(+.f64 1 (*.f64 -1 (pow.f64 x 2)))
(+.f64 1 (neg.f64 (*.f64 x x)))
(-.f64 1 (*.f64 x x))
(fma.f64 x (neg.f64 x) 1)
(+.f64 1 (*.f64 -1 (pow.f64 x 2)))
(+.f64 1 (neg.f64 (*.f64 x x)))
(-.f64 1 (*.f64 x x))
(fma.f64 x (neg.f64 x) 1)
(*.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))
(fma.f64 x (neg.f64 x) 1)
(+.f64 1 (*.f64 -1 (pow.f64 x 2)))
(+.f64 1 (neg.f64 (*.f64 x x)))
(-.f64 1 (*.f64 x x))
(fma.f64 x (neg.f64 x) 1)
(+.f64 1 (*.f64 -1 (pow.f64 x 2)))
(+.f64 1 (neg.f64 (*.f64 x x)))
(-.f64 1 (*.f64 x x))
(fma.f64 x (neg.f64 x) 1)
(*.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))
(fma.f64 x (neg.f64 x) 1)
(+.f64 1 (*.f64 -1 (pow.f64 x 2)))
(+.f64 1 (neg.f64 (*.f64 x x)))
(-.f64 1 (*.f64 x x))
(fma.f64 x (neg.f64 x) 1)
(+.f64 1 (*.f64 -1 (pow.f64 x 2)))
(+.f64 1 (neg.f64 (*.f64 x x)))
(-.f64 1 (*.f64 x x))
(fma.f64 x (neg.f64 x) 1)
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 (pow.f64 x 4) 10)))
(fma.f64 (*.f64 x x) 10 (fma.f64 (pow.f64 x 4) 10 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 (pow.f64 x 4) 10))))
(fma.f64 (*.f64 x x) 10 (fma.f64 10 (pow.f64 x 6) (fma.f64 (pow.f64 x 4) 10 10)))
(fma.f64 10 (fma.f64 x x (pow.f64 x 6)) (fma.f64 (pow.f64 x 4) 10 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 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 6)) (/.f64 10 (pow.f64 x 4))) (/.f64 10 (*.f64 x x)))
(+.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 6)) (/.f64 10 (pow.f64 x 4))) (/.f64 10 (*.f64 x x))) (/.f64 -10 (pow.f64 x 8)))
(+.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.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 -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 6)) (/.f64 10 (pow.f64 x 4))) (/.f64 10 (*.f64 x x)))
(+.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 6)) (/.f64 10 (pow.f64 x 4))) (/.f64 10 (*.f64 x x))) (/.f64 -10 (pow.f64 x 8)))
(+.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 (/.f64 -10 x) x) (+.f64 (/.f64 -10 (pow.f64 x 6)) (/.f64 -10 (pow.f64 x 8)))))

localize16.0ms (0.3%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(log.f64 (/.f64 -10 (fma.f64 x x -1)))
0.2b
(/.f64 -10 (fma.f64 x x -1))
1.1b
(exp.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1))))
Compiler

Compiled 29 to 20 computations (31% saved)

series4.0ms (0.1%)

Counts
2 → 24
Calls

6 calls:

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

rewrite59.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
626×pow1_binary64
582×add-log-exp_binary64
582×log1p-expm1-u_binary64
582×expm1-log1p-u_binary64
571×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0818
114718
2156718
Stop Event
node limit
Counts
2 → 56
Calls
Call 1
Inputs
(exp.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1))))
(log.f64 (/.f64 -10 (fma.f64 x x -1)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (-.f64 (/.f64 -10 (fma.f64 x x -1)) 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 (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 -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 pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1)))) 2)) (cbrt.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1))))) (sqrt.f64 (log.f64 (/.f64 -10 (fma.f64 x x -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 +.f64 (log.f64 -10) (neg.f64 (log.f64 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2)) (log.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (/.f64 -10 (fma.f64 x x -1)))) (log.f64 (sqrt.f64 (/.f64 -10 (fma.f64 x x -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (log.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 -10) (log.f64 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (log.f64 (/.f64 -10 (fma.f64 x x -1)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (log.f64 (*.f64 (fma.f64 x x -1) -1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 10) (log.f64 (neg.f64 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (log.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1)))) (pow.f64 (cbrt.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1)))) 2) (cbrt.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1)))) (sqrt.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (log.f64 -10) 3) (pow.f64 (log.f64 (fma.f64 x x -1)) 3)) (+.f64 (*.f64 (log.f64 -10) (log.f64 -10)) (+.f64 (*.f64 (log.f64 (fma.f64 x x -1)) (log.f64 (fma.f64 x x -1))) (*.f64 (log.f64 -10) (log.f64 (fma.f64 x x -1))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (log.f64 -10) (log.f64 -10)) (*.f64 (log.f64 (fma.f64 x x -1)) (log.f64 (fma.f64 x x -1)))) (+.f64 (log.f64 -10) (log.f64 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (log.f64 (*.f64 (fma.f64 x x -1) -1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (-.f64 (/.f64 -10 (fma.f64 x x -1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1)))))))))

simplify56.0ms (1%)

Algorithm
egg-herbie
Rules
413×unswap-sqr_binary64
359×distribute-neg-frac_binary64
348×associate-*l*_binary64
338×associate-/r*_binary64
303×associate-+r+_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
073489
1209459
2604453
31905453
45934453
Stop Event
node limit
Counts
80 → 94
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 10)
(+.f64 (log.f64 10) (pow.f64 x 2))
(+.f64 (log.f64 10) (+.f64 (pow.f64 x 2) (*.f64 1/2 (pow.f64 x 4))))
(+.f64 (log.f64 10) (+.f64 (pow.f64 x 2) (+.f64 (*.f64 1/2 (pow.f64 x 4)) (*.f64 1/3 (pow.f64 x 6)))))
(+.f64 (log.f64 -10) (*.f64 2 (log.f64 (/.f64 1 x))))
(+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (log.f64 -10) (*.f64 2 (log.f64 (/.f64 1 x)))))
(+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 4))) (+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (log.f64 -10) (*.f64 2 (log.f64 (/.f64 1 x))))))
(+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 4))) (+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 x 6))) (+.f64 (log.f64 -10) (*.f64 2 (log.f64 (/.f64 1 x)))))))
(+.f64 (*.f64 2 (log.f64 (/.f64 -1 x))) (log.f64 -10))
(+.f64 (*.f64 2 (log.f64 (/.f64 -1 x))) (+.f64 (/.f64 1 (pow.f64 x 2)) (log.f64 -10)))
(+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 2 (log.f64 (/.f64 -1 x))) (+.f64 (/.f64 1 (pow.f64 x 2)) (log.f64 -10))))
(+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 2 (log.f64 (/.f64 -1 x))) (+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 x 6))) (log.f64 -10)))))
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 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))
(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)))
(+.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 6)) (/.f64 -10 (pow.f64 x 8))))
(/.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)))
(+.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 6)) (/.f64 -10 (pow.f64 x 8))))
(log.f64 10)
(+.f64 (log.f64 10) (pow.f64 x 2))
(+.f64 (*.f64 x x) (log.f64 10))
(fma.f64 x x (log.f64 10))
(+.f64 (log.f64 10) (+.f64 (pow.f64 x 2) (*.f64 1/2 (pow.f64 x 4))))
(+.f64 (log.f64 10) (+.f64 (*.f64 x x) (*.f64 (pow.f64 x 4) 1/2)))
(+.f64 (log.f64 10) (fma.f64 x x (*.f64 (pow.f64 x 4) 1/2)))
(fma.f64 x x (fma.f64 (pow.f64 x 4) 1/2 (log.f64 10)))
(fma.f64 (pow.f64 x 4) 1/2 (fma.f64 x x (log.f64 10)))
(+.f64 (log.f64 10) (+.f64 (pow.f64 x 2) (+.f64 (*.f64 1/2 (pow.f64 x 4)) (*.f64 1/3 (pow.f64 x 6)))))
(+.f64 (log.f64 10) (+.f64 (*.f64 x x) (fma.f64 1/2 (pow.f64 x 4) (*.f64 (pow.f64 x 6) 1/3))))
(+.f64 (fma.f64 x x (log.f64 10)) (fma.f64 (pow.f64 x 6) 1/3 (*.f64 (pow.f64 x 4) 1/2)))
(+.f64 (log.f64 10) (fma.f64 x x (fma.f64 (pow.f64 x 6) 1/3 (*.f64 (pow.f64 x 4) 1/2))))
(+.f64 (log.f64 10) (fma.f64 x x (fma.f64 (pow.f64 x 4) 1/2 (*.f64 (pow.f64 x 6) 1/3))))
(+.f64 (log.f64 -10) (*.f64 2 (log.f64 (/.f64 1 x))))
(+.f64 (log.f64 -10) (*.f64 2 (neg.f64 (log.f64 x))))
(fma.f64 2 (neg.f64 (log.f64 x)) (log.f64 -10))
(+.f64 (log.f64 -10) (*.f64 (log.f64 x) -2))
(+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (log.f64 -10) (*.f64 2 (log.f64 (/.f64 1 x)))))
(+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (log.f64 -10) (*.f64 2 (neg.f64 (log.f64 x)))))
(+.f64 (/.f64 1 (*.f64 x x)) (fma.f64 2 (neg.f64 (log.f64 x)) (log.f64 -10)))
(+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (log.f64 -10) (*.f64 (log.f64 x) -2)))
(+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 4))) (+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (log.f64 -10) (*.f64 2 (log.f64 (/.f64 1 x))))))
(+.f64 (+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (log.f64 -10) (*.f64 2 (neg.f64 (log.f64 x))))) (/.f64 1/2 (pow.f64 x 4)))
(+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (fma.f64 2 (neg.f64 (log.f64 x)) (log.f64 -10)) (/.f64 1/2 (pow.f64 x 4))))
(+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (log.f64 -10) (+.f64 (*.f64 (log.f64 x) -2) (/.f64 1/2 (pow.f64 x 4)))))
(+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 4))) (+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 x 6))) (+.f64 (log.f64 -10) (*.f64 2 (log.f64 (/.f64 1 x)))))))
(+.f64 (/.f64 1/2 (pow.f64 x 4)) (+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (+.f64 (log.f64 -10) (*.f64 2 (neg.f64 (log.f64 x)))) (/.f64 1/3 (pow.f64 x 6)))))
(+.f64 (+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (fma.f64 2 (neg.f64 (log.f64 x)) (log.f64 -10)) (/.f64 1/2 (pow.f64 x 4)))) (/.f64 1/3 (pow.f64 x 6)))
(+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (*.f64 (log.f64 x) -2) (+.f64 (log.f64 -10) (+.f64 (/.f64 1/3 (pow.f64 x 6)) (/.f64 1/2 (pow.f64 x 4))))))
(+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (log.f64 -10) (+.f64 (/.f64 1/2 (pow.f64 x 4)) (+.f64 (*.f64 (log.f64 x) -2) (/.f64 1/3 (pow.f64 x 6))))))
(+.f64 (*.f64 2 (log.f64 (/.f64 -1 x))) (log.f64 -10))
(fma.f64 2 (log.f64 (/.f64 -1 x)) (log.f64 -10))
(+.f64 (*.f64 2 (log.f64 (/.f64 -1 x))) (+.f64 (/.f64 1 (pow.f64 x 2)) (log.f64 -10)))
(fma.f64 2 (log.f64 (/.f64 -1 x)) (+.f64 (/.f64 1 (*.f64 x x)) (log.f64 -10)))
(+.f64 (/.f64 1 (*.f64 x x)) (fma.f64 2 (log.f64 (/.f64 -1 x)) (log.f64 -10)))
(+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 2 (log.f64 (/.f64 -1 x))) (+.f64 (/.f64 1 (pow.f64 x 2)) (log.f64 -10))))
(+.f64 (/.f64 1/2 (pow.f64 x 4)) (fma.f64 2 (log.f64 (/.f64 -1 x)) (+.f64 (/.f64 1 (*.f64 x x)) (log.f64 -10))))
(+.f64 (/.f64 1/2 (pow.f64 x 4)) (+.f64 (/.f64 1 (*.f64 x x)) (fma.f64 2 (log.f64 (/.f64 -1 x)) (log.f64 -10))))
(+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (log.f64 -10) (fma.f64 2 (log.f64 (/.f64 -1 x)) (/.f64 1/2 (pow.f64 x 4)))))
(+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 1/2 (pow.f64 x 4)) (fma.f64 2 (log.f64 (/.f64 -1 x)) (log.f64 -10))))
(+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 2 (log.f64 (/.f64 -1 x))) (+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 x 6))) (log.f64 -10)))))
(+.f64 (/.f64 1/2 (pow.f64 x 4)) (fma.f64 2 (log.f64 (/.f64 -1 x)) (+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (log.f64 -10) (/.f64 1/3 (pow.f64 x 6))))))
(+.f64 (/.f64 1/2 (pow.f64 x 4)) (+.f64 (+.f64 (/.f64 1 (*.f64 x x)) (fma.f64 2 (log.f64 (/.f64 -1 x)) (log.f64 -10))) (/.f64 1/3 (pow.f64 x 6))))
(+.f64 (log.f64 -10) (+.f64 (/.f64 1/2 (pow.f64 x 4)) (+.f64 (/.f64 1/3 (pow.f64 x 6)) (fma.f64 2 (log.f64 (/.f64 -1 x)) (/.f64 1 (*.f64 x x))))))
(+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 1/2 (pow.f64 x 4)) (+.f64 (/.f64 1/3 (pow.f64 x 6)) (fma.f64 2 (log.f64 (/.f64 -1 x)) (log.f64 -10)))))

localize16.0ms (0.3%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.2b
(/.f64 -10 (fma.f64 x x -1))
0.6b
(cbrt.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3))
0.7b
(pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3)
Compiler

Compiled 32 to 23 computations (28.1% saved)

series4.0ms (0.1%)

Counts
2 → 24
Calls

6 calls:

TimeVariablePointExpression
1.0ms
x
@inf
(cbrt.f64 (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
@0
(pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3)
0.0ms
x
@-inf
(pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3)

rewrite61.0ms (1.1%)

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

simplify61.0ms (1.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)))))

eval295.0ms (5.1%)

Compiler

Compiled 8203 to 6236 computations (24% saved)

prune152.0ms (2.6%)

Pruning

18 alts after pruning (11 fresh and 7 done)

PrunedKeptTotal
New56510575
Fresh516
Picked011
Done066
Total57018588
Error
0b
Counts
588 → 18
Alt Table
Click to see full alt table
StatusErrorProgram
8.0b
(/.f64 10 (/.f64 (-.f64 1 (*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x)))) (-.f64 1 (*.f64 x (neg.f64 x)))))
60.3b
(/.f64 -10 (*.f64 x x))
41.5b
(/.f64 (/.f64 -10 (sqrt.f64 (fma.f64 x x -1))) (sqrt.f64 (fma.f64 x x -1)))
0.4b
(*.f64 (/.f64 1 (fma.f64 x x -1)) -10)
60.3b
(/.f64 (/.f64 -10 x) x)
58.1b
10
0.9b
(*.f64 (*.f64 (/.f64 1 (cbrt.f64 (fma.f64 x x -1))) (cbrt.f64 (pow.f64 (fma.f64 x x -1) -2))) -10)
23.9b
(exp.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1))))
41.7b
(*.f64 (exp.f64 (neg.f64 (log.f64 (fma.f64 x x -1)))) -10)
23.9b
(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)))
0.4b
(/.f64 1 (*.f64 (fma.f64 x x -1) -1/10))
0.3b
(/.f64 1 (/.f64 (fma.f64 x x -1) -10))
0.6b
(cbrt.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3))
0.6b
(cbrt.f64 (/.f64 1 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) 3)))
8.0b
(*.f64 (/.f64 1 (-.f64 1 (*.f64 x x))) 10)
8.0b
(/.f64 10 (-.f64 1 (*.f64 x x)))
0.2b
(/.f64 -10 (fma.f64 x x -1))
Compiler

Compiled 286 to 216 computations (24.5% saved)

localize11.0ms (0.2%)

Local error

Found 2 expressions with local error:

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

Compiled 23 to 16 computations (30.4% saved)

series3.0ms (0.1%)

Counts
2 → 24
Calls

6 calls:

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

rewrite50.0ms (0.9%)

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 (fma.f64 x x -1) -10)
(/.f64 1 (/.f64 (fma.f64 x x -1) -10))
Outputs
((#(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 (*.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 (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 (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 (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 (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)))))))
((#(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 -10 (/.f64 1 (fma.f64 x x -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 -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))))))))

simplify53.0ms (0.9%)

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
70 → 66
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))))

localize5.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.2b
(/.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)

rewrite46.0ms (0.8%)

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

simplify156.0ms (2.7%)

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.2%)

Local error

Found 2 expressions with local error:

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

Compiled 23 to 16 computations (30.4% saved)

series2.0ms (0%)

Counts
2 → 24
Calls

6 calls:

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

rewrite53.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
660×pow1_binary64
614×add-log-exp_binary64
613×log1p-expm1-u_binary64
613×expm1-log1p-u_binary64
602×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0819
115516
2169616
Stop Event
node limit
Counts
2 → 42
Calls
Call 1
Inputs
(*.f64 (fma.f64 x x -1) -1/10)
(/.f64 1 (*.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) -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 (*.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 (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 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 -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))) (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 -10 (/.f64 1 (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 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))))))))

simplify49.0ms (0.9%)

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
66 → 62
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.3%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.3b
(/.f64 -1000 (pow.f64 (fma.f64 x x -1) 3))
0.6b
(cbrt.f64 (/.f64 -1000 (pow.f64 (fma.f64 x x -1) 3)))
0.7b
(pow.f64 (fma.f64 x x -1) 3)
Compiler

Compiled 32 to 23 computations (28.1% saved)

series3.0ms (0.1%)

Counts
3 → 36
Calls

9 calls:

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

rewrite64.0ms (1.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0929
119129
2203929
Stop Event
node limit
Counts
3 → 73
Calls
Call 1
Inputs
(pow.f64 (fma.f64 x x -1) 3)
(cbrt.f64 (/.f64 -1000 (pow.f64 (fma.f64 x x -1) 3)))
(/.f64 -1000 (pow.f64 (fma.f64 x x -1) 3))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 x x) (pow.f64 (fma.f64 x x -1) 2)) (*.f64 -1 (pow.f64 (fma.f64 x x -1) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 (fma.f64 x x -1) 2) (*.f64 x x)) (*.f64 (pow.f64 (fma.f64 x x -1) 2) -1))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (fma.f64 x x -1) 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x x -1) (pow.f64 (fma.f64 x x -1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (fma.f64 x x -1) 3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (fma.f64 x x -1) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (fma.f64 x x -1) 2) (fma.f64 x x -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)) (pow.f64 (fma.f64 x x -1) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 x x -1)) (*.f64 (sqrt.f64 (fma.f64 x x -1)) (pow.f64 (fma.f64 x x -1) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (fma.f64 x x -1) 3/2) (pow.f64 (fma.f64 x x -1) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (fma.f64 x x -1)) 2) 3) (fma.f64 x x -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (fma.f64 x x -1)) 3) (pow.f64 (sqrt.f64 (fma.f64 x x -1)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (fma.f64 x x -1) 2) 1) (fma.f64 x x -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (fma.f64 x x -1) 2) (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 (pow.f64 (fma.f64 x x -1) 2) (sqrt.f64 (fma.f64 x x -1))) (sqrt.f64 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 x x -1) 6))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (fma.f64 x x -1) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (fma.f64 x x -1) 3) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (fma.f64 x x -1) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (fma.f64 x x -1) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 3 (log.f64 (fma.f64 x x -1))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (/.f64 (cbrt.f64 -1000) (fma.f64 x x -1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 -1000) (fma.f64 x x -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 (cbrt.f64 -1000) (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 (cbrt.f64 -1000) (fma.f64 x x -1))) (pow.f64 (cbrt.f64 (/.f64 (cbrt.f64 -1000) (fma.f64 x x -1))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 (cbrt.f64 -1000) (fma.f64 x x -1))) 2) (cbrt.f64 (/.f64 (cbrt.f64 -1000) (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 -1000) (cbrt.f64 (pow.f64 (fma.f64 x x -1) -3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 -1000) (pow.f64 (pow.f64 (fma.f64 x x -1) -3) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 -1000) (/.f64 1 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 (cbrt.f64 -1000) (fma.f64 x x -1))) (sqrt.f64 (/.f64 (cbrt.f64 -1000) (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (/.f64 (cbrt.f64 -1000) (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 (cbrt.f64 1000000) (pow.f64 (fma.f64 x x -1) 2)) 1/3) (cbrt.f64 (/.f64 (cbrt.f64 -1000) (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 (sqrt.f64 -1000) (pow.f64 (fma.f64 x x -1) 3/2)) 1/3) (pow.f64 (/.f64 (sqrt.f64 -1000) (pow.f64 (fma.f64 x x -1) 3/2)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (cbrt.f64 (*.f64 (pow.f64 (fma.f64 x x -1) 3) -1/1000)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 x x -1) (cbrt.f64 -1000)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (cbrt.f64 -1000) (fma.f64 x x -1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (cbrt.f64 1000) (cbrt.f64 (neg.f64 (pow.f64 (fma.f64 x x -1) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (cbrt.f64 -1000)) (neg.f64 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (cbrt.f64 -1000) 1) (fma.f64 x x -1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (cbrt.f64 -1000) (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 -1000) (sqrt.f64 (fma.f64 x x -1))) (sqrt.f64 (fma.f64 x x -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 (/.f64 (cbrt.f64 -1000) (fma.f64 x x -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 (cbrt.f64 -1000) (fma.f64 x x -1))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 (cbrt.f64 -1000) (fma.f64 x x -1))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (/.f64 (cbrt.f64 1000000) (pow.f64 (fma.f64 x x -1) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 (cbrt.f64 -1000) (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 (cbrt.f64 -1000) (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 (cbrt.f64 -1000) (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 (cbrt.f64 -1000) (fma.f64 x x -1))))))))
((#(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 -1000 (pow.f64 (fma.f64 x x -1) -3))))) (#(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 (/.f64 (cbrt.f64 -1000) (fma.f64 x x -1)) (/.f64 (cbrt.f64 1000000) (pow.f64 (fma.f64 x x -1) 2)))))) (#(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 (/.f64 (cbrt.f64 1000000) (pow.f64 (fma.f64 x x -1) 2)) (/.f64 (cbrt.f64 -1000) (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 -1000) (pow.f64 (fma.f64 x x -1) 3/2)) (/.f64 (sqrt.f64 -1000) (pow.f64 (fma.f64 x x -1) 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1000 (/.f64 1 (neg.f64 (pow.f64 (fma.f64 x x -1) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (fma.f64 x x -1) -3) -1000)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 (cbrt.f64 1000000) (pow.f64 (fma.f64 x x -1) 2)) 1) (/.f64 (cbrt.f64 -1000) (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 (cbrt.f64 1000000) (pow.f64 (fma.f64 x x -1) 2)) (pow.f64 (cbrt.f64 (/.f64 (cbrt.f64 -1000) (fma.f64 x x -1))) 2)) (cbrt.f64 (/.f64 (cbrt.f64 -1000) (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 (cbrt.f64 1000000) (pow.f64 (fma.f64 x x -1) 2)) (sqrt.f64 (/.f64 (cbrt.f64 -1000) (fma.f64 x x -1)))) (sqrt.f64 (/.f64 (cbrt.f64 -1000) (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 -1000 (pow.f64 (fma.f64 x x -1) -3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (cbrt.f64 -1000) (fma.f64 x x -1)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 -1000 (pow.f64 (fma.f64 x x -1) -3)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 -1000) (pow.f64 (fma.f64 x x -1) 3/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (fma.f64 x x -1) 3) -1/1000) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (/.f64 1000000 (pow.f64 (fma.f64 x x -1) 6)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.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 (log.f64 (*.f64 -1000 (pow.f64 (fma.f64 x x -1) -3))))))))

simplify64.0ms (1.1%)

Algorithm
egg-herbie
Rules
751×fma-neg_binary64
726×associate-/r*_binary64
430×sub-neg_binary64
383×cancel-sign-sub-inv_binary64
298×fma-def_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
075679
1206643
2620628
32179622
47345622
Stop Event
node limit
Counts
109 → 115
Calls
Call 1
Inputs
-1
(-.f64 (*.f64 3 (pow.f64 x 2)) 1)
(-.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -3 (pow.f64 x 4))) 1)
(-.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (+.f64 (*.f64 -3 (pow.f64 x 4)) (pow.f64 x 6))) 1)
(pow.f64 x 6)
(+.f64 (*.f64 -3 (pow.f64 x 4)) (pow.f64 x 6))
(+.f64 (*.f64 3 (pow.f64 x 2)) (+.f64 (*.f64 -3 (pow.f64 x 4)) (pow.f64 x 6)))
(-.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (+.f64 (*.f64 -3 (pow.f64 x 4)) (pow.f64 x 6))) 1)
(pow.f64 x 6)
(+.f64 (*.f64 -3 (pow.f64 x 4)) (pow.f64 x 6))
(+.f64 (*.f64 3 (pow.f64 x 2)) (+.f64 (*.f64 -3 (pow.f64 x 4)) (pow.f64 x 6)))
(-.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (+.f64 (*.f64 -3 (pow.f64 x 4)) (pow.f64 x 6))) 1)
(*.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)))))
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)))))))
Outputs
-1
(-.f64 (*.f64 3 (pow.f64 x 2)) 1)
(fma.f64 3 (*.f64 x x) -1)
(fma.f64 x (*.f64 3 x) -1)
(-.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -3 (pow.f64 x 4))) 1)
(+.f64 (fma.f64 3 (*.f64 x x) (*.f64 -3 (pow.f64 x 4))) -1)
(fma.f64 3 (*.f64 x x) (fma.f64 -3 (pow.f64 x 4) -1))
(-.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (+.f64 (*.f64 -3 (pow.f64 x 4)) (pow.f64 x 6))) 1)
(+.f64 (fma.f64 3 (*.f64 x x) (fma.f64 -3 (pow.f64 x 4) (pow.f64 x 6))) -1)
(+.f64 (fma.f64 -3 (pow.f64 x 4) (pow.f64 x 6)) (fma.f64 3 (*.f64 x x) -1))
(+.f64 -1 (fma.f64 -3 (pow.f64 x 4) (fma.f64 3 (*.f64 x x) (pow.f64 x 6))))
(+.f64 (fma.f64 x (*.f64 3 x) -1) (fma.f64 -3 (pow.f64 x 4) (pow.f64 x 6)))
(pow.f64 x 6)
(+.f64 (*.f64 -3 (pow.f64 x 4)) (pow.f64 x 6))
(fma.f64 -3 (pow.f64 x 4) (pow.f64 x 6))
(+.f64 (*.f64 3 (pow.f64 x 2)) (+.f64 (*.f64 -3 (pow.f64 x 4)) (pow.f64 x 6)))
(fma.f64 3 (*.f64 x x) (fma.f64 -3 (pow.f64 x 4) (pow.f64 x 6)))
(fma.f64 -3 (pow.f64 x 4) (fma.f64 3 (*.f64 x x) (pow.f64 x 6)))
(-.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (+.f64 (*.f64 -3 (pow.f64 x 4)) (pow.f64 x 6))) 1)
(+.f64 (fma.f64 3 (*.f64 x x) (fma.f64 -3 (pow.f64 x 4) (pow.f64 x 6))) -1)
(+.f64 (fma.f64 -3 (pow.f64 x 4) (pow.f64 x 6)) (fma.f64 3 (*.f64 x x) -1))
(+.f64 -1 (fma.f64 -3 (pow.f64 x 4) (fma.f64 3 (*.f64 x x) (pow.f64 x 6))))
(+.f64 (fma.f64 x (*.f64 3 x) -1) (fma.f64 -3 (pow.f64 x 4) (pow.f64 x 6)))
(pow.f64 x 6)
(+.f64 (*.f64 -3 (pow.f64 x 4)) (pow.f64 x 6))
(fma.f64 -3 (pow.f64 x 4) (pow.f64 x 6))
(+.f64 (*.f64 3 (pow.f64 x 2)) (+.f64 (*.f64 -3 (pow.f64 x 4)) (pow.f64 x 6)))
(fma.f64 3 (*.f64 x x) (fma.f64 -3 (pow.f64 x 4) (pow.f64 x 6)))
(fma.f64 -3 (pow.f64 x 4) (fma.f64 3 (*.f64 x x) (pow.f64 x 6)))
(-.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (+.f64 (*.f64 -3 (pow.f64 x 4)) (pow.f64 x 6))) 1)
(+.f64 (fma.f64 3 (*.f64 x x) (fma.f64 -3 (pow.f64 x 4) (pow.f64 x 6))) -1)
(+.f64 (fma.f64 -3 (pow.f64 x 4) (pow.f64 x 6)) (fma.f64 3 (*.f64 x x) -1))
(+.f64 -1 (fma.f64 -3 (pow.f64 x 4) (fma.f64 3 (*.f64 x x) (pow.f64 x 6))))
(+.f64 (fma.f64 x (*.f64 3 x) -1) (fma.f64 -3 (pow.f64 x 4) (pow.f64 x 6)))
(*.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 (fma.f64 x x (pow.f64 x 4)) (pow.f64 x 6))) (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) (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) (pow.f64 x 4)) (/.f64 (cbrt.f64 -1000) (pow.f64 x 8))) (+.f64 (/.f64 (cbrt.f64 -1000) (*.f64 x x)) (/.f64 (cbrt.f64 -1000) (pow.f64 x 6))))
(+.f64 (/.f64 (cbrt.f64 -1000) (*.f64 x x)) (+.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 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) (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) (pow.f64 x 4)) (/.f64 (cbrt.f64 -1000) (pow.f64 x 8))) (+.f64 (/.f64 (cbrt.f64 -1000) (*.f64 x x)) (/.f64 (cbrt.f64 -1000) (pow.f64 x 6))))
(+.f64 (/.f64 (cbrt.f64 -1000) (*.f64 x x)) (+.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 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)))))
1000
(+.f64 1000 (*.f64 3000 (pow.f64 x 2)))
(+.f64 1000 (*.f64 (*.f64 x x) 3000))
(fma.f64 (*.f64 x x) 3000 1000)
(fma.f64 x (*.f64 x 3000) 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 (*.f64 x x) 3000)))
(fma.f64 (pow.f64 x 4) 6000 (fma.f64 (*.f64 x x) 3000 1000))
(fma.f64 x (*.f64 x 3000) (fma.f64 (pow.f64 x 4) 6000 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 (*.f64 x x) 3000))))
(+.f64 (fma.f64 (*.f64 x x) 3000 (*.f64 (pow.f64 x 6) 10000)) (fma.f64 (pow.f64 x 4) 6000 1000))
(fma.f64 (pow.f64 x 4) 6000 (fma.f64 x (*.f64 x 3000) (fma.f64 (pow.f64 x 6) 10000 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)))
(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 -3000 (pow.f64 x 8)) (/.f64 -1000 (pow.f64 x 6))))
(+.f64 (/.f64 -3000 (pow.f64 x 8)) (+.f64 (/.f64 -6000 (pow.f64 x 10)) (/.f64 -1000 (pow.f64 x 6))))
(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 10000 (pow.f64 x 12)) (/.f64 6000 (pow.f64 x 10))) (+.f64 (/.f64 3000 (pow.f64 x 8)) (/.f64 1000 (pow.f64 x 6)))))
(+.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 -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 -3000 (pow.f64 x 8)) (+.f64 (/.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)))
(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 -3000 (pow.f64 x 8)) (/.f64 -1000 (pow.f64 x 6))))
(+.f64 (/.f64 -3000 (pow.f64 x 8)) (+.f64 (/.f64 -6000 (pow.f64 x 10)) (/.f64 -1000 (pow.f64 x 6))))
(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 10000 (pow.f64 x 12)) (/.f64 6000 (pow.f64 x 10))) (+.f64 (/.f64 3000 (pow.f64 x 8)) (/.f64 1000 (pow.f64 x 6)))))
(+.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 -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 -3000 (pow.f64 x 8)) (+.f64 (/.f64 -1000 (pow.f64 x 6)) (/.f64 -10000 (pow.f64 x 12)))))

localize22.0ms (0.4%)

Local error

Found 4 expressions with local error:

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

Compiled 45 to 34 computations (24.4% saved)

series3.0ms (0.1%)

Counts
3 → 36
Calls

9 calls:

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

rewrite68.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
889×pow1_binary64
843×add-log-exp_binary64
841×log1p-expm1-u_binary64
841×expm1-log1p-u_binary64
823×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01133
122830
2240130
Stop Event
node limit
Counts
3 → 90
Calls
Call 1
Inputs
(pow.f64 (*.f64 (fma.f64 x x -1) -1/10) 3)
(cbrt.f64 (/.f64 1 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) 3)))
(/.f64 1 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) 3))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 -1/1000 (pow.f64 (fma.f64 x x -1) 3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x x -1) (*.f64 -1/10 (*.f64 1/100 (pow.f64 (fma.f64 x x -1) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1/10 (*.f64 (fma.f64 x x -1) (*.f64 1/100 (pow.f64 (fma.f64 x x -1) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (fma.f64 x x -1) -1/10) (*.f64 1/100 (pow.f64 (fma.f64 x x -1) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 -1/1000 (pow.f64 (fma.f64 x x -1) 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 -1/1000 (pow.f64 (fma.f64 x x -1) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1/1000 (pow.f64 (fma.f64 x x -1) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/100 (pow.f64 (fma.f64 x x -1) 2)) (*.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) (*.f64 (cbrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) (*.f64 1/100 (pow.f64 (fma.f64 x x -1) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) (*.f64 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) (*.f64 1/100 (pow.f64 (fma.f64 x x -1) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (fma.f64 x x -1) 3) -1/1000)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) 3/2) (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) 2) 3) (*.f64 (fma.f64 x x -1) -1/10))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) 3) (pow.f64 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 1/100 (pow.f64 (fma.f64 x x -1) 2)) (fma.f64 x x -1)) -1/10)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 1/100 (pow.f64 (fma.f64 x x -1) 2)) -1/10) (fma.f64 x x -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 1/100 (pow.f64 (fma.f64 x x -1) 2)) 1) (*.f64 (fma.f64 x x -1) -1/10))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 1/100 (pow.f64 (fma.f64 x x -1) 2)) (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 (*.f64 (*.f64 1/100 (pow.f64 (fma.f64 x x -1) 2)) (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) (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -1/1000 (pow.f64 (fma.f64 x x -1) 3)) 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 (*.f64 1/100 (pow.f64 (fma.f64 x x -1) 2)) (/.f64 -10 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (fma.f64 x x -1) 3) -1000)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 (fma.f64 x x -1) 3) 1/1000) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) 3/2) (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -3/2))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) 6))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (pow.f64 (fma.f64 x x -1) 3)) -1/1000))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 -1/1000 (pow.f64 (fma.f64 x x -1) 3)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 -1/1000 (pow.f64 (fma.f64 x x -1) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 -1/1000 (pow.f64 (fma.f64 x x -1) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 3 (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 -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))) (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 (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)) 2) 1/3) (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -3/2) 1/3) (pow.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -3/2) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -1 (cbrt.f64 (*.f64 (pow.f64 (fma.f64 x x -1) 3) 1/1000)))))) (#(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 (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 (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 (/.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 pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 -1/1000 (pow.f64 (fma.f64 x x -1) 3)) -1/3)))) (#(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 (/.f64 -10 (fma.f64 x x -1)) 1)))) (#(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 -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))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (/.f64 1 (*.f64 (pow.f64 (fma.f64 x x -1) 3) 1/1000)))))) (#(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 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -3) 1)))) (#(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 -10 (fma.f64 x x -1)) (pow.f64 (*.f64 1/100 (pow.f64 (fma.f64 x x -1) 2)) -1))))) (#(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 (*.f64 (fma.f64 x x -1) -1/10) -3/2) (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.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 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) 2) -3) (pow.f64 (cbrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) -3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) -3) (pow.f64 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) -3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 1/100 (pow.f64 (fma.f64 x x -1) 2)) -1) (/.f64 -10 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (fma.f64 x x -1) 3) -1) -1000)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) 3/2) -1) (pow.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) 3/2) -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 pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 -1/1000 (pow.f64 (fma.f64 x x -1) 3)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -3) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -3/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -6))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -3) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (fma.f64 x x -1) -1/10)) -3))))))

simplify66.0ms (1.1%)

Algorithm
egg-herbie
Rules
725×associate-/r*_binary64
704×fma-neg_binary64
403×sub-neg_binary64
382×unswap-sqr_binary64
377×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
080708
1219664
2646649
32233643
47292643
Stop Event
node limit
Counts
126 → 133
Calls
Call 1
Inputs
1/1000
(+.f64 1/1000 (*.f64 -3/1000 (pow.f64 x 2)))
(+.f64 (*.f64 3/1000 (pow.f64 x 4)) (+.f64 1/1000 (*.f64 -3/1000 (pow.f64 x 2))))
(+.f64 (*.f64 -1/1000 (pow.f64 x 6)) (+.f64 (*.f64 3/1000 (pow.f64 x 4)) (+.f64 1/1000 (*.f64 -3/1000 (pow.f64 x 2)))))
(*.f64 -1/1000 (pow.f64 x 6))
(+.f64 (*.f64 3/1000 (pow.f64 x 4)) (*.f64 -1/1000 (pow.f64 x 6)))
(+.f64 (*.f64 3/1000 (pow.f64 x 4)) (+.f64 (*.f64 -1/1000 (pow.f64 x 6)) (*.f64 -3/1000 (pow.f64 x 2))))
(+.f64 (*.f64 3/1000 (pow.f64 x 4)) (+.f64 (*.f64 -1/1000 (pow.f64 x 6)) (+.f64 1/1000 (*.f64 -3/1000 (pow.f64 x 2)))))
(*.f64 -1/1000 (pow.f64 x 6))
(+.f64 (*.f64 3/1000 (pow.f64 x 4)) (*.f64 -1/1000 (pow.f64 x 6)))
(+.f64 (*.f64 3/1000 (pow.f64 x 4)) (+.f64 (*.f64 -1/1000 (pow.f64 x 6)) (*.f64 -3/1000 (pow.f64 x 2))))
(+.f64 (*.f64 3/1000 (pow.f64 x 4)) (+.f64 (*.f64 -1/1000 (pow.f64 x 6)) (+.f64 1/1000 (*.f64 -3/1000 (pow.f64 x 2)))))
(*.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)))))
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)))))))
Outputs
1/1000
(+.f64 1/1000 (*.f64 -3/1000 (pow.f64 x 2)))
(+.f64 1/1000 (*.f64 -3/1000 (*.f64 x x)))
(fma.f64 -3/1000 (*.f64 x x) 1/1000)
(+.f64 (*.f64 3/1000 (pow.f64 x 4)) (+.f64 1/1000 (*.f64 -3/1000 (pow.f64 x 2))))
(fma.f64 3/1000 (pow.f64 x 4) (+.f64 1/1000 (*.f64 -3/1000 (*.f64 x x))))
(fma.f64 3/1000 (pow.f64 x 4) (fma.f64 -3/1000 (*.f64 x x) 1/1000))
(fma.f64 -3/1000 (*.f64 x x) (fma.f64 3/1000 (pow.f64 x 4) 1/1000))
(+.f64 (*.f64 -1/1000 (pow.f64 x 6)) (+.f64 (*.f64 3/1000 (pow.f64 x 4)) (+.f64 1/1000 (*.f64 -3/1000 (pow.f64 x 2)))))
(fma.f64 3/1000 (pow.f64 x 4) (fma.f64 -1/1000 (pow.f64 x 6) (+.f64 1/1000 (*.f64 -3/1000 (*.f64 x x)))))
(fma.f64 3/1000 (pow.f64 x 4) (fma.f64 -1/1000 (pow.f64 x 6) (fma.f64 -3/1000 (*.f64 x x) 1/1000)))
(fma.f64 -1/1000 (pow.f64 x 6) (fma.f64 -3/1000 (*.f64 x x) (fma.f64 3/1000 (pow.f64 x 4) 1/1000)))
(*.f64 -1/1000 (pow.f64 x 6))
(+.f64 (*.f64 3/1000 (pow.f64 x 4)) (*.f64 -1/1000 (pow.f64 x 6)))
(fma.f64 3/1000 (pow.f64 x 4) (*.f64 -1/1000 (pow.f64 x 6)))
(+.f64 (*.f64 3/1000 (pow.f64 x 4)) (+.f64 (*.f64 -1/1000 (pow.f64 x 6)) (*.f64 -3/1000 (pow.f64 x 2))))
(fma.f64 3/1000 (pow.f64 x 4) (fma.f64 -1/1000 (pow.f64 x 6) (*.f64 -3/1000 (*.f64 x x))))
(fma.f64 3/1000 (pow.f64 x 4) (fma.f64 -3/1000 (*.f64 x x) (*.f64 -1/1000 (pow.f64 x 6))))
(fma.f64 -3/1000 (*.f64 x x) (fma.f64 3/1000 (pow.f64 x 4) (*.f64 -1/1000 (pow.f64 x 6))))
(+.f64 (*.f64 3/1000 (pow.f64 x 4)) (+.f64 (*.f64 -1/1000 (pow.f64 x 6)) (+.f64 1/1000 (*.f64 -3/1000 (pow.f64 x 2)))))
(fma.f64 3/1000 (pow.f64 x 4) (fma.f64 -1/1000 (pow.f64 x 6) (+.f64 1/1000 (*.f64 -3/1000 (*.f64 x x)))))
(fma.f64 3/1000 (pow.f64 x 4) (fma.f64 -1/1000 (pow.f64 x 6) (fma.f64 -3/1000 (*.f64 x x) 1/1000)))
(fma.f64 -1/1000 (pow.f64 x 6) (fma.f64 -3/1000 (*.f64 x x) (fma.f64 3/1000 (pow.f64 x 4) 1/1000)))
(*.f64 -1/1000 (pow.f64 x 6))
(+.f64 (*.f64 3/1000 (pow.f64 x 4)) (*.f64 -1/1000 (pow.f64 x 6)))
(fma.f64 3/1000 (pow.f64 x 4) (*.f64 -1/1000 (pow.f64 x 6)))
(+.f64 (*.f64 3/1000 (pow.f64 x 4)) (+.f64 (*.f64 -1/1000 (pow.f64 x 6)) (*.f64 -3/1000 (pow.f64 x 2))))
(fma.f64 3/1000 (pow.f64 x 4) (fma.f64 -1/1000 (pow.f64 x 6) (*.f64 -3/1000 (*.f64 x x))))
(fma.f64 3/1000 (pow.f64 x 4) (fma.f64 -3/1000 (*.f64 x x) (*.f64 -1/1000 (pow.f64 x 6))))
(fma.f64 -3/1000 (*.f64 x x) (fma.f64 3/1000 (pow.f64 x 4) (*.f64 -1/1000 (pow.f64 x 6))))
(+.f64 (*.f64 3/1000 (pow.f64 x 4)) (+.f64 (*.f64 -1/1000 (pow.f64 x 6)) (+.f64 1/1000 (*.f64 -3/1000 (pow.f64 x 2)))))
(fma.f64 3/1000 (pow.f64 x 4) (fma.f64 -1/1000 (pow.f64 x 6) (+.f64 1/1000 (*.f64 -3/1000 (*.f64 x x)))))
(fma.f64 3/1000 (pow.f64 x 4) (fma.f64 -1/1000 (pow.f64 x 6) (fma.f64 -3/1000 (*.f64 x x) 1/1000)))
(fma.f64 -1/1000 (pow.f64 x 6) (fma.f64 -3/1000 (*.f64 x x) (fma.f64 3/1000 (pow.f64 x 4) 1/1000)))
(*.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))))
(*.f64 -1 (+.f64 (cbrt.f64 -1000) (*.f64 (*.f64 x x) (cbrt.f64 -1000))))
(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 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 (/.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 (cbrt.f64 -1000) (pow.f64 x 4))))
(+.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) (pow.f64 x 4)) (+.f64 (/.f64 (cbrt.f64 -1000) (pow.f64 x 8)) (+.f64 (/.f64 (cbrt.f64 -1000) (*.f64 x x)) (/.f64 (cbrt.f64 -1000) (pow.f64 x 6)))))
(/.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 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 (/.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 (cbrt.f64 -1000) (pow.f64 x 4))))
(+.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) (pow.f64 x 4)) (+.f64 (/.f64 (cbrt.f64 -1000) (pow.f64 x 8)) (+.f64 (/.f64 (cbrt.f64 -1000) (*.f64 x x)) (/.f64 (cbrt.f64 -1000) (pow.f64 x 6)))))
1000
(+.f64 1000 (*.f64 3000 (pow.f64 x 2)))
(+.f64 1000 (*.f64 (*.f64 x x) 3000))
(fma.f64 (*.f64 x x) 3000 1000)
(fma.f64 x (*.f64 x 3000) 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 (*.f64 x x) 3000)))
(fma.f64 (pow.f64 x 4) 6000 (fma.f64 (*.f64 x x) 3000 1000))
(fma.f64 x (*.f64 x 3000) (fma.f64 (pow.f64 x 4) 6000 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 (*.f64 x x) 3000))))
(+.f64 (fma.f64 (pow.f64 x 4) 6000 (fma.f64 (*.f64 x x) 3000 1000)) (*.f64 (pow.f64 x 6) 10000))
(fma.f64 (pow.f64 x 4) 6000 (fma.f64 (pow.f64 x 6) 10000 (fma.f64 (*.f64 x x) 3000 1000)))
(fma.f64 (pow.f64 x 4) 6000 (fma.f64 x (*.f64 x 3000) (fma.f64 (pow.f64 x 6) 10000 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 -10000 (pow.f64 x 12)) (/.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 (/.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 -10000 (pow.f64 x 12)) (/.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 (/.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))))

eval149.0ms (2.6%)

Compiler

Compiled 5647 to 4477 computations (20.7% saved)

prune71.0ms (1.2%)

Pruning

20 alts after pruning (9 fresh and 11 done)

PrunedKeptTotal
New4335438
Fresh246
Picked101
Done01111
Total43620456
Error
0b
Counts
456 → 20
Alt Table
Click to see full alt table
StatusErrorProgram
8.2b
(/.f64 1 (+.f64 (*.f64 (*.f64 x x) -1/10) 1/10))
58.1b
10
8.0b
(/.f64 10 (/.f64 (-.f64 1 (*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x)))) (-.f64 1 (*.f64 x (neg.f64 x)))))
60.3b
(/.f64 -10 (*.f64 x x))
6.7b
(/.f64 1 (fma.f64 x (*.f64 -1/10 x) 1/10))
0.4b
(*.f64 (/.f64 1 (fma.f64 x x -1)) -10)
60.3b
(/.f64 (/.f64 -10 x) x)
23.9b
(exp.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1))))
41.7b
(*.f64 (exp.f64 (neg.f64 (log.f64 (fma.f64 x x -1)))) -10)
23.9b
(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)))
0.4b
(/.f64 (/.f64 1 (fma.f64 x x -1)) -1/10)
0.4b
(/.f64 1 (*.f64 (fma.f64 x x -1) -1/10))
0.3b
(/.f64 1 (/.f64 (fma.f64 x x -1) -10))
0.6b
(cbrt.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -3))
8.0b
(*.f64 (/.f64 1 (-.f64 1 (*.f64 x x))) 10)
8.0b
(/.f64 10 (-.f64 1 (*.f64 x x)))
0.2b
(/.f64 -10 (fma.f64 x x -1))
0.9b
(*.f64 (*.f64 (/.f64 1 (cbrt.f64 (fma.f64 x x -1))) (cbrt.f64 (pow.f64 (fma.f64 x x -1) -2))) -10)
0.6b
(cbrt.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3))
Compiler

Compiled 276 to 210 computations (23.9% saved)

localize11.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.3b
(/.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)

rewrite47.0ms (0.8%)

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

simplify49.0ms (0.8%)

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

localize11.0ms (0.2%)

Local error

Found 3 expressions with local error:

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

Compiled 28 to 16 computations (42.9% saved)

series2.0ms (0%)

Counts
2 → 24
Calls

6 calls:

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

rewrite55.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
801×pow1_binary64
751×add-log-exp_binary64
750×log1p-expm1-u_binary64
750×expm1-log1p-u_binary64
736×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0820
117420
2214020
Stop Event
node limit
Counts
2 → 38
Calls
Call 1
Inputs
(*.f64 (/.f64 1 (-.f64 1 (*.f64 x x))) 10)
(/.f64 1 (-.f64 1 (*.f64 x x)))
Outputs
((#(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 (-.f64 1 (*.f64 x x)) 10))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 10 (-.f64 1 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -10 (neg.f64 (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 10 (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 (/.f64 10 (sqrt.f64 (-.f64 1 (*.f64 x x)))) (sqrt.f64 (-.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 sqrt.f64 (*.f64 (pow.f64 (-.f64 1 (*.f64 x x)) -2) 100))))) (#(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)))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (/.f64 1 (-.f64 1 (*.f64 x x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 1 (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (-.f64 1 (*.f64 x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 (-.f64 1 (*.f64 x x)))) (cbrt.f64 (pow.f64 (-.f64 1 (*.f64 x x)) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (-.f64 1 (*.f64 x x)) -2)) (/.f64 1 (cbrt.f64 (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (-.f64 1 (*.f64 x x)) -1/2) (pow.f64 (-.f64 1 (*.f64 x x)) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (/.f64 1 (neg.f64 (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 x x))) 2) -1) (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 x x))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (-.f64 1 (*.f64 x x))) -1) (pow.f64 (sqrt.f64 (-.f64 1 (*.f64 x x))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (-.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 (-.f64 1 (pow.f64 x 4))) (+.f64 1 (*.f64 x 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 (/.f64 1 (-.f64 1 (*.f64 x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 1 (-.f64 1 (*.f64 x x))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1 (cbrt.f64 (-.f64 1 (*.f64 x x)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 1 (*.f64 x x)) -1/2) 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 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 1 (-.f64 1 (*.f64 x x))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 1 (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 1 (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (neg.f64 (log1p.f64 (*.f64 x (neg.f64 x)))))))))

simplify55.0ms (1%)

Algorithm
egg-herbie
Rules
823×fma-def_binary64
432×sub-neg_binary64
413×unswap-sqr_binary64
380×distribute-neg-frac_binary64
305×associate-/r*_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
054442
1158408
2481404
31547401
45588401
Stop Event
node limit
Counts
62 → 68
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 1 (pow.f64 x 2))
(+.f64 1 (+.f64 (pow.f64 x 2) (pow.f64 x 4)))
(+.f64 1 (+.f64 (pow.f64 x 2) (+.f64 (pow.f64 x 4) (pow.f64 x 6))))
(/.f64 -1 (pow.f64 x 2))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 (pow.f64 x 6)))))
(neg.f64 (+.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))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 (pow.f64 x 6)))))
(neg.f64 (+.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)
(*.f64 (fma.f64 x x 1) 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 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))))
(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 -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)))
(-.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 -10 (pow.f64 x 4)) (+.f64 (/.f64 (/.f64 10 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)))
(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 -10 (pow.f64 x 4)) (+.f64 (/.f64 (/.f64 10 x) x) (/.f64 10 (pow.f64 x 6)))) (/.f64 -10 (pow.f64 x 8)))
(+.f64 (-.f64 (/.f64 -10 (*.f64 x x)) (/.f64 10 (pow.f64 x 4))) (+.f64 (/.f64 -10 (pow.f64 x 6)) (/.f64 -10 (pow.f64 x 8))))
(/.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)))
(-.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 -10 (pow.f64 x 4)) (+.f64 (/.f64 (/.f64 10 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)))
(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 -10 (pow.f64 x 4)) (+.f64 (/.f64 (/.f64 10 x) x) (/.f64 10 (pow.f64 x 6)))) (/.f64 -10 (pow.f64 x 8)))
(+.f64 (-.f64 (/.f64 -10 (*.f64 x x)) (/.f64 10 (pow.f64 x 4))) (+.f64 (/.f64 -10 (pow.f64 x 6)) (/.f64 -10 (pow.f64 x 8))))
1
(+.f64 1 (pow.f64 x 2))
(+.f64 (*.f64 x x) 1)
(fma.f64 x x 1)
(+.f64 1 (+.f64 (pow.f64 x 2) (pow.f64 x 4)))
(+.f64 1 (+.f64 (*.f64 x x) (pow.f64 x 4)))
(+.f64 (pow.f64 x 4) (fma.f64 x x 1))
(+.f64 1 (+.f64 (pow.f64 x 2) (+.f64 (pow.f64 x 4) (pow.f64 x 6))))
(+.f64 1 (+.f64 (*.f64 x x) (+.f64 (pow.f64 x 4) (pow.f64 x 6))))
(+.f64 (fma.f64 x x 1) (+.f64 (pow.f64 x 4) (pow.f64 x 6)))
(+.f64 (fma.f64 x x (pow.f64 x 4)) (+.f64 (pow.f64 x 6) 1))
(+.f64 (pow.f64 x 4) (+.f64 (pow.f64 x 6) (fma.f64 x x 1)))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (*.f64 x x))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (*.f64 x x))))
(+.f64 (/.f64 -1 (pow.f64 x 4)) (/.f64 -1 (*.f64 x x)))
(-.f64 (/.f64 -1 (pow.f64 x 4)) (/.f64 1 (*.f64 x x)))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 (pow.f64 x 6)))))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 6)))))
(-.f64 (+.f64 (/.f64 -1 (pow.f64 x 4)) (/.f64 -1 (*.f64 x x))) (/.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 (pow.f64 x 4)) (+.f64 (/.f64 -1 (*.f64 x x)) (/.f64 -1 (pow.f64 x 6))))
(neg.f64 (+.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))))))
(neg.f64 (+.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 4)) (+.f64 (/.f64 1 (pow.f64 x 6)) (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 8)))))
(+.f64 (-.f64 (/.f64 -1 (pow.f64 x 4)) (-.f64 (/.f64 1 (*.f64 x x)) (/.f64 -1 (pow.f64 x 6)))) (/.f64 -1 (pow.f64 x 8)))
(+.f64 (/.f64 -1 (pow.f64 x 4)) (+.f64 (+.f64 (/.f64 -1 (*.f64 x x)) (/.f64 -1 (pow.f64 x 6))) (/.f64 -1 (pow.f64 x 8))))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (*.f64 x x))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (*.f64 x x))))
(+.f64 (/.f64 -1 (pow.f64 x 4)) (/.f64 -1 (*.f64 x x)))
(-.f64 (/.f64 -1 (pow.f64 x 4)) (/.f64 1 (*.f64 x x)))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 (pow.f64 x 6)))))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 6)))))
(-.f64 (+.f64 (/.f64 -1 (pow.f64 x 4)) (/.f64 -1 (*.f64 x x))) (/.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 (pow.f64 x 4)) (+.f64 (/.f64 -1 (*.f64 x x)) (/.f64 -1 (pow.f64 x 6))))
(neg.f64 (+.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))))))
(neg.f64 (+.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 4)) (+.f64 (/.f64 1 (pow.f64 x 6)) (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 8)))))
(+.f64 (-.f64 (/.f64 -1 (pow.f64 x 4)) (-.f64 (/.f64 1 (*.f64 x x)) (/.f64 -1 (pow.f64 x 6)))) (/.f64 -1 (pow.f64 x 8)))
(+.f64 (/.f64 -1 (pow.f64 x 4)) (+.f64 (+.f64 (/.f64 -1 (*.f64 x x)) (/.f64 -1 (pow.f64 x 6))) (/.f64 -1 (pow.f64 x 8))))

localize10.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.2b
(/.f64 1 (fma.f64 x (*.f64 -1/10 x) 1/10))
0.4b
(*.f64 -1/10 x)
7.1b
(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
(/.f64 1 (fma.f64 x (*.f64 -1/10 x) 1/10))
0.0ms
x
@-inf
(/.f64 1 (fma.f64 x (*.f64 -1/10 x) 1/10))

rewrite56.0ms (1%)

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 -1/10 x) 1/10)
(*.f64 -1/10 x)
(/.f64 1 (fma.f64 x (*.f64 -1/10 x) 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))))))))

simplify49.0ms (0.9%)

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
81 → 77
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.3%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.4b
(*.f64 (fma.f64 x x -1) -1/10)
0.6b
(cbrt.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -3))
0.7b
(pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -3)
Compiler

Compiled 32 to 23 computations (28.1% saved)

series3.0ms (0.1%)

Counts
2 → 24
Calls

6 calls:

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

rewrite58.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
777×pow1_binary64
733×add-log-exp_binary64
733×log1p-expm1-u_binary64
733×expm1-log1p-u_binary64
717×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0924
118422
2198422
Stop Event
node limit
Counts
2 → 40
Calls
Call 1
Inputs
(pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -3)
(cbrt.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -3))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (pow.f64 (fma.f64 x x -1) -3) -1000)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (fma.f64 x x -1) -3) -1000) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -1) (cbrt.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -6)))))) (#(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 (cbrt.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -6)) (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.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 (fma.f64 x x -1) -1/10) -3/2) (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) 2) -3) (pow.f64 (cbrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) -3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) -3) (pow.f64 (sqrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) -3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -6)) 1) (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -6)) (cbrt.f64 (cbrt.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -6)))) (cbrt.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -6)) (cbrt.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -3/2))) (cbrt.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -6))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (pow.f64 (fma.f64 x x -1) -3)) -1000))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (pow.f64 (fma.f64 x x -1) -3) -1000) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (pow.f64 (fma.f64 x x -1) -3) -1000)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (pow.f64 (fma.f64 x x -1) -3) -1000)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 -3 (log.f64 (*.f64 (fma.f64 x x -1) -1/10))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -1)) (cbrt.f64 (cbrt.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -6))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -6))) (cbrt.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -3/2)) (cbrt.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (fma.f64 x x -1) -3)) (cbrt.f64 -1000))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -6)) 1/3) (cbrt.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (fma.f64 x x -1) -3) 1/3) (pow.f64 -1000 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -3/2) 1/3) (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 (*.f64 (fma.f64 x x -1) -1/10) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (fma.f64 x x -1) -3) -1000) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -1)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -3/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -6)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -1)))))))

simplify63.0ms (1.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
64 → 70
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)))))

localize33.0ms (0.6%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (/.f64 1 (cbrt.f64 (fma.f64 x x -1))) (cbrt.f64 (pow.f64 (fma.f64 x x -1) -2)))
0.5b
(cbrt.f64 (pow.f64 (fma.f64 x x -1) -2))
0.5b
(pow.f64 (fma.f64 x x -1) -2)
0.6b
(cbrt.f64 (fma.f64 x x -1))
Compiler

Compiled 67 to 48 computations (28.4% saved)

series7.0ms (0.1%)

Counts
4 → 32
Calls

12 calls:

TimeVariablePointExpression
1.0ms
x
@0
(cbrt.f64 (fma.f64 x x -1))
1.0ms
x
@-inf
(cbrt.f64 (fma.f64 x x -1))
1.0ms
x
@inf
(cbrt.f64 (fma.f64 x x -1))
1.0ms
x
@inf
(cbrt.f64 (pow.f64 (fma.f64 x x -1) -2))
1.0ms
x
@0
(cbrt.f64 (pow.f64 (fma.f64 x x -1) -2))

rewrite122.0ms (2.1%)

Algorithm
batch-egg-rewrite
Rules
804×pow1_binary64
750×add-log-exp_binary64
748×log1p-expm1-u_binary64
748×expm1-log1p-u_binary64
731×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01144
121433
2240133
Stop Event
node limit
Counts
4 → 104
Calls
Call 1
Inputs
(cbrt.f64 (fma.f64 x x -1))
(pow.f64 (fma.f64 x x -1) -2)
(cbrt.f64 (pow.f64 (fma.f64 x x -1) -2))
(*.f64 (/.f64 1 (cbrt.f64 (fma.f64 x x -1))) (cbrt.f64 (pow.f64 (fma.f64 x x -1) -2)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (cbrt.f64 (fma.f64 x x -1))) 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 1 (cbrt.f64 (fma.f64 x x -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 (cbrt.f64 (fma.f64 x x -1)) 1)))) (#(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 (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 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 (+.f64 1 (pow.f64 (fma.f64 x x -1) -2)) 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 (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 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 (sqrt.f64 (/.f64 1 (fma.f64 x x -1))) (*.f64 (sqrt.f64 (/.f64 1 (fma.f64 x x -1))) (/.f64 1 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 (fma.f64 x x -1))) (*.f64 (pow.f64 (cbrt.f64 (fma.f64 x x -1)) -2) (/.f64 1 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (fma.f64 x x -1)) (/.f64 1 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 1 (fma.f64 x x -1)) (sqrt.f64 (/.f64 1 (fma.f64 x x -1)))) (sqrt.f64 (/.f64 1 (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) -2) (pow.f64 (cbrt.f64 (fma.f64 x x -1)) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (fma.f64 x x -1)) -2) (pow.f64 (sqrt.f64 (fma.f64 x x -1)) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 1 (fma.f64 x x -1)) (pow.f64 (cbrt.f64 (fma.f64 x x -1)) -2)) (/.f64 1 (cbrt.f64 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (pow.f64 (fma.f64 x x -1) -4)) 1) (pow.f64 (cbrt.f64 (fma.f64 x x -1)) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (pow.f64 (fma.f64 x x -1) -4)) (cbrt.f64 (cbrt.f64 (pow.f64 (fma.f64 x x -1) -4)))) (cbrt.f64 (pow.f64 (cbrt.f64 (fma.f64 x x -1)) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (pow.f64 (fma.f64 x x -1) -4)) (/.f64 1 (cbrt.f64 (fma.f64 x x -1)))) (/.f64 1 (cbrt.f64 (fma.f64 x x -1))))))) (#(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 (*.f64 (pow.f64 (cbrt.f64 (fma.f64 x x -1)) -2) (/.f64 1 (fma.f64 x x -1))) (cbrt.f64 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 1 (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 (pow.f64 (cbrt.f64 (fma.f64 x x -1)) -2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 x x -1)) -2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (cbrt.f64 (fma.f64 x x -1)) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (fma.f64 x x -1)) -2)) (cbrt.f64 (cbrt.f64 (pow.f64 (fma.f64 x x -1) -4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (fma.f64 x x -1)) -2)) (*.f64 (/.f64 1 (cbrt.f64 (cbrt.f64 (fma.f64 x x -1)))) (/.f64 1 (cbrt.f64 (fma.f64 x x -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (fma.f64 x x -1) -4))) (cbrt.f64 (pow.f64 (cbrt.f64 (fma.f64 x x -1)) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 1 (fma.f64 x x -1))) (pow.f64 (cbrt.f64 (fma.f64 x x -1)) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 (fma.f64 x x -1))) (/.f64 1 (cbrt.f64 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 x x -1)) -1/2) (sqrt.f64 (/.f64 1 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (pow.f64 (cbrt.f64 (fma.f64 x x -1)) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (fma.f64 x x -1) -4)) 1/3) (cbrt.f64 (pow.f64 (cbrt.f64 (fma.f64 x x -1)) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 1 (cbrt.f64 (fma.f64 x x -1))) (cbrt.f64 (pow.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 -1 (*.f64 (cbrt.f64 (fma.f64 x x -1)) (neg.f64 (cbrt.f64 (fma.f64 x x -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -1 (*.f64 (neg.f64 (cbrt.f64 (fma.f64 x x -1))) (cbrt.f64 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (pow.f64 (cbrt.f64 (fma.f64 x x -1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (*.f64 (neg.f64 (cbrt.f64 (fma.f64 x x -1))) (neg.f64 (cbrt.f64 (fma.f64 x x -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 1 (cbrt.f64 (fma.f64 x x -1))) (cbrt.f64 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -1 (/.f64 1 (cbrt.f64 (fma.f64 x x -1)))) (neg.f64 (cbrt.f64 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 1 (cbrt.f64 (fma.f64 x x -1))) -1) (neg.f64 (cbrt.f64 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 x x -1) -2/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 x x -1)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 x x -1) -2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 (fma.f64 x x -1)) -2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 (fma.f64 x x -1)) 2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (fma.f64 x x -1)) -2)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1 (cbrt.f64 (fma.f64 x x -1))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (cbrt.f64 (pow.f64 (fma.f64 x x -1) -4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (cbrt.f64 (fma.f64 x x -1)) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (cbrt.f64 (fma.f64 x x -1)) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (cbrt.f64 (fma.f64 x x -1)) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (pow.f64 (cbrt.f64 (fma.f64 x x -1)) -2)))))))
((#(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 (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 1 (fma.f64 x x -1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (cbrt.f64 (fma.f64 x x -1)) (pow.f64 (cbrt.f64 (fma.f64 x x -1)) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (fma.f64 x x -1) -4))) (/.f64 (cbrt.f64 (fma.f64 x x -1)) (cbrt.f64 (pow.f64 (cbrt.f64 (fma.f64 x x -1)) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 1 (cbrt.f64 (fma.f64 x x -1))) (/.f64 (cbrt.f64 (fma.f64 x x -1)) (/.f64 1 (cbrt.f64 (fma.f64 x x -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (pow.f64 (cbrt.f64 (fma.f64 x x -1)) -2)) (neg.f64 (cbrt.f64 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (pow.f64 (cbrt.f64 (fma.f64 x x -1)) -2) (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 (pow.f64 (cbrt.f64 (fma.f64 x x -1)) -2) 1) (cbrt.f64 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (pow.f64 (cbrt.f64 (fma.f64 x x -1)) -2) (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 (pow.f64 (cbrt.f64 (fma.f64 x x -1)) -2)) (neg.f64 (cbrt.f64 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 (cbrt.f64 (fma.f64 x x -1)) -2) -1) (neg.f64 (cbrt.f64 (fma.f64 x x -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 (pow.f64 (fma.f64 x x -1) -2) 1/2)))) (#(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 (sqrt.f64 (/.f64 1 (fma.f64 x x -1))) 2)))) (#(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 (/.f64 1 (fma.f64 x x -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 x x -1) -2))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (/.f64 1 (fma.f64 x x -1)))))) (#(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 cbrt.f64 (/.f64 (pow.f64 (fma.f64 x x -1) -2) (fma.f64 x x -1)))))) (#(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 (*.f64 (log.f64 (fma.f64 x x -1)) -1))))))

simplify44.0ms (0.8%)

Algorithm
egg-herbie
Rules
812×times-frac_binary64
610×associate-*l*_binary64
547×associate-*r*_binary64
526×associate-/r*_binary64
431×associate-/l*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
080584
1211568
2559558
31736558
Stop Event
node limit
Counts
136 → 146
Calls
Call 1
Inputs
(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))))))
1
(+.f64 (*.f64 2 (pow.f64 x 2)) 1)
(+.f64 (*.f64 2 (pow.f64 x 2)) (+.f64 1 (*.f64 3 (pow.f64 x 4))))
(+.f64 (*.f64 2 (pow.f64 x 2)) (+.f64 1 (+.f64 (*.f64 4 (pow.f64 x 6)) (*.f64 3 (pow.f64 x 4)))))
(/.f64 1 (pow.f64 x 4))
(+.f64 (/.f64 1 (pow.f64 x 4)) (*.f64 2 (/.f64 1 (pow.f64 x 6))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (*.f64 2 (/.f64 1 (pow.f64 x 6))) (*.f64 3 (/.f64 1 (pow.f64 x 8)))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (*.f64 2 (/.f64 1 (pow.f64 x 6))) (+.f64 (*.f64 4 (/.f64 1 (pow.f64 x 10))) (*.f64 3 (/.f64 1 (pow.f64 x 8))))))
(/.f64 1 (pow.f64 x 4))
(+.f64 (/.f64 1 (pow.f64 x 4)) (*.f64 2 (/.f64 1 (pow.f64 x 6))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (*.f64 2 (/.f64 1 (pow.f64 x 6))) (*.f64 3 (/.f64 1 (pow.f64 x 8)))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (*.f64 2 (/.f64 1 (pow.f64 x 6))) (+.f64 (*.f64 4 (/.f64 1 (pow.f64 x 10))) (*.f64 3 (/.f64 1 (pow.f64 x 8))))))
1
(+.f64 (*.f64 2/3 (pow.f64 x 2)) 1)
(+.f64 (*.f64 2/3 (pow.f64 x 2)) (+.f64 1 (*.f64 5/9 (pow.f64 x 4))))
(+.f64 (*.f64 2/3 (pow.f64 x 2)) (+.f64 (*.f64 40/81 (pow.f64 x 6)) (+.f64 1 (*.f64 5/9 (pow.f64 x 4)))))
-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
(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 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 (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/9 (/.f64 (pow.f64 x 4) (pow.f64 (cbrt.f64 -1) 5)) (/.f64 (*.f64 1/3 (*.f64 x x)) (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 (*.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/9 (/.f64 (pow.f64 x 4) (pow.f64 (cbrt.f64 -1) 5)) (/.f64 (*.f64 1/3 (*.f64 x x)) (pow.f64 (cbrt.f64 -1) 2))) (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 (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))))
1
(+.f64 (*.f64 2 (pow.f64 x 2)) 1)
(fma.f64 2 (*.f64 x x) 1)
(fma.f64 x (*.f64 x 2) 1)
(+.f64 (*.f64 2 (pow.f64 x 2)) (+.f64 1 (*.f64 3 (pow.f64 x 4))))
(+.f64 (fma.f64 2 (*.f64 x x) 1) (*.f64 (pow.f64 x 4) 3))
(fma.f64 2 (*.f64 x x) (fma.f64 (pow.f64 x 4) 3 1))
(fma.f64 (pow.f64 x 4) 3 (fma.f64 x (*.f64 x 2) 1))
(fma.f64 x (*.f64 x 2) (fma.f64 (pow.f64 x 4) 3 1))
(+.f64 (*.f64 2 (pow.f64 x 2)) (+.f64 1 (+.f64 (*.f64 4 (pow.f64 x 6)) (*.f64 3 (pow.f64 x 4)))))
(+.f64 (fma.f64 2 (*.f64 x x) 1) (fma.f64 4 (pow.f64 x 6) (*.f64 (pow.f64 x 4) 3)))
(fma.f64 x (*.f64 x 2) (fma.f64 4 (pow.f64 x 6) (fma.f64 (pow.f64 x 4) 3 1)))
(/.f64 1 (pow.f64 x 4))
(+.f64 (/.f64 1 (pow.f64 x 4)) (*.f64 2 (/.f64 1 (pow.f64 x 6))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 2 (pow.f64 x 6)))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (*.f64 2 (/.f64 1 (pow.f64 x 6))) (*.f64 3 (/.f64 1 (pow.f64 x 8)))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 2 (pow.f64 x 6)) (/.f64 3 (pow.f64 x 8))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (*.f64 2 (/.f64 1 (pow.f64 x 6))) (+.f64 (*.f64 4 (/.f64 1 (pow.f64 x 10))) (*.f64 3 (/.f64 1 (pow.f64 x 8))))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 2 (pow.f64 x 6)) (+.f64 (/.f64 3 (pow.f64 x 8)) (/.f64 4 (pow.f64 x 10)))))
(+.f64 (+.f64 (/.f64 2 (pow.f64 x 6)) (/.f64 3 (pow.f64 x 8))) (+.f64 (/.f64 4 (pow.f64 x 10)) (/.f64 1 (pow.f64 x 4))))
(+.f64 (/.f64 2 (pow.f64 x 6)) (+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 3 (pow.f64 x 8)) (/.f64 4 (pow.f64 x 10)))))
(/.f64 1 (pow.f64 x 4))
(+.f64 (/.f64 1 (pow.f64 x 4)) (*.f64 2 (/.f64 1 (pow.f64 x 6))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 2 (pow.f64 x 6)))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (*.f64 2 (/.f64 1 (pow.f64 x 6))) (*.f64 3 (/.f64 1 (pow.f64 x 8)))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 2 (pow.f64 x 6)) (/.f64 3 (pow.f64 x 8))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (*.f64 2 (/.f64 1 (pow.f64 x 6))) (+.f64 (*.f64 4 (/.f64 1 (pow.f64 x 10))) (*.f64 3 (/.f64 1 (pow.f64 x 8))))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 2 (pow.f64 x 6)) (+.f64 (/.f64 3 (pow.f64 x 8)) (/.f64 4 (pow.f64 x 10)))))
(+.f64 (+.f64 (/.f64 2 (pow.f64 x 6)) (/.f64 3 (pow.f64 x 8))) (+.f64 (/.f64 4 (pow.f64 x 10)) (/.f64 1 (pow.f64 x 4))))
(+.f64 (/.f64 2 (pow.f64 x 6)) (+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 3 (pow.f64 x 8)) (/.f64 4 (pow.f64 x 10)))))
1
(+.f64 (*.f64 2/3 (pow.f64 x 2)) 1)
(fma.f64 2/3 (*.f64 x x) 1)
(fma.f64 (*.f64 x x) 2/3 1)
(fma.f64 x (*.f64 x 2/3) 1)
(+.f64 (*.f64 2/3 (pow.f64 x 2)) (+.f64 1 (*.f64 5/9 (pow.f64 x 4))))
(+.f64 (fma.f64 2/3 (*.f64 x x) 1) (*.f64 (pow.f64 x 4) 5/9))
(fma.f64 (*.f64 x x) 2/3 (fma.f64 (pow.f64 x 4) 5/9 1))
(fma.f64 x (*.f64 x 2/3) (fma.f64 (pow.f64 x 4) 5/9 1))
(+.f64 (*.f64 2/3 (pow.f64 x 2)) (+.f64 (*.f64 40/81 (pow.f64 x 6)) (+.f64 1 (*.f64 5/9 (pow.f64 x 4)))))
(fma.f64 2/3 (*.f64 x x) (fma.f64 40/81 (pow.f64 x 6) (+.f64 1 (*.f64 (pow.f64 x 4) 5/9))))
(fma.f64 (*.f64 x x) 2/3 (fma.f64 (pow.f64 x 6) 40/81 (fma.f64 (pow.f64 x 4) 5/9 1)))
(fma.f64 x (*.f64 x 2/3) (fma.f64 (pow.f64 x 4) 5/9 (fma.f64 (pow.f64 x 6) 40/81 1)))
-1
(-.f64 (*.f64 -1 (pow.f64 x 2)) 1)
(fma.f64 -1 (*.f64 x x) -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)
(fma.f64 -1 (pow.f64 x 6) (fma.f64 -1 (fma.f64 x x (pow.f64 x 4)) -1))
(-.f64 (-.f64 -1 (fma.f64 x x (pow.f64 x 4))) (pow.f64 x 6))
(-.f64 -1 (+.f64 (pow.f64 x 6) (fma.f64 x x (pow.f64 x 4))))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (*.f64 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 (pow.f64 x 2)) (/.f64 1 (pow.f64 x 6))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (pow.f64 x 6)) (/.f64 1 (*.f64 x x))))
(+.f64 (/.f64 1 (pow.f64 x 6)) (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (*.f64 x x))))
(+.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 (pow.f64 x 6)) (/.f64 1 (*.f64 x x)))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (pow.f64 x 6)) (+.f64 (/.f64 1 (pow.f64 x 8)) (/.f64 1 (*.f64 x x)))))
(+.f64 (/.f64 1 (pow.f64 x 8)) (+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (pow.f64 x 6)) (/.f64 1 (*.f64 x x)))))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (*.f64 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 (pow.f64 x 2)) (/.f64 1 (pow.f64 x 6))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (pow.f64 x 6)) (/.f64 1 (*.f64 x x))))
(+.f64 (/.f64 1 (pow.f64 x 6)) (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (*.f64 x x))))
(+.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 (pow.f64 x 6)) (/.f64 1 (*.f64 x x)))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (pow.f64 x 6)) (+.f64 (/.f64 1 (pow.f64 x 8)) (/.f64 1 (*.f64 x x)))))
(+.f64 (/.f64 1 (pow.f64 x 8)) (+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (pow.f64 x 6)) (/.f64 1 (*.f64 x x)))))

eval215.0ms (3.7%)

Compiler

Compiled 7540 to 5895 computations (21.8% saved)

prune139.0ms (2.4%)

Pruning

23 alts after pruning (7 fresh and 16 done)

PrunedKeptTotal
New4875492
Fresh224
Picked011
Done01515
Total48923512
Error
0b
Counts
512 → 23
Alt Table
Click to see full alt table
StatusErrorProgram
8.0b
(/.f64 1 (/.f64 (-.f64 1 (*.f64 x x)) 10))
8.0b
(/.f64 10 (-.f64 1 (*.f64 x x)))
8.0b
(/.f64 10 (/.f64 (-.f64 1 (*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x)))) (-.f64 1 (*.f64 x (neg.f64 x)))))
60.3b
(/.f64 -10 (*.f64 x x))
8.0b
(*.f64 (/.f64 1 (/.f64 (-.f64 1 (*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x)))) (-.f64 1 (*.f64 x (neg.f64 x))))) 10)
6.7b
(/.f64 1 (fma.f64 x (*.f64 -1/10 x) 1/10))
0.4b
(*.f64 (/.f64 1 (fma.f64 x x -1)) -10)
60.3b
(/.f64 (/.f64 -10 x) x)
8.2b
(/.f64 1 (+.f64 (*.f64 (*.f64 x x) -1/10) 1/10))
58.1b
10
23.9b
(exp.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1))))
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)))
41.7b
(*.f64 (exp.f64 (neg.f64 (log.f64 (fma.f64 x x -1)))) -10)
23.9b
(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)))
0.4b
(/.f64 (/.f64 1 (fma.f64 x x -1)) -1/10)
0.4b
(/.f64 1 (*.f64 (fma.f64 x x -1) -1/10))
0.3b
(/.f64 1 (/.f64 (fma.f64 x x -1) -10))
0.6b
(cbrt.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -3))
8.0b
(*.f64 (/.f64 1 (-.f64 1 (*.f64 x x))) 10)
0.2b
(/.f64 -10 (fma.f64 x x -1))
0.9b
(*.f64 (*.f64 (/.f64 1 (cbrt.f64 (fma.f64 x x -1))) (cbrt.f64 (pow.f64 (fma.f64 x x -1) -2))) -10)
0.6b
(cbrt.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3))
Compiler

Compiled 248 to 180 computations (27.4% saved)

regimes235.0ms (4.1%)

Counts
33 → 1
Calls
Call 1
Inputs
10
10
10
10
(/.f64 (/.f64 -10 x) x)
(/.f64 -10 (*.f64 x x))
(/.f64 10 (-.f64 1 (*.f64 x x)))
(/.f64 1 (/.f64 (-.f64 1 (*.f64 x x)) 10))
(/.f64 1 (+.f64 (*.f64 (*.f64 x x) -1/10) 1/10))
(/.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 (/.f64 1 (/.f64 (-.f64 1 (*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x)))) (-.f64 1 (*.f64 x (neg.f64 x))))) 10)
(/.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 -1/10 x) 1/10))
(/.f64 (/.f64 1 (fma.f64 x x -1)) -1/10)
(/.f64 1 (*.f64 (fma.f64 x x -1) -1/10))
(/.f64 1 (/.f64 (fma.f64 x x -1) -10))
(*.f64 (/.f64 1 (fma.f64 x x -1)) -10)
(pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -1)
(expm1.f64 (log1p.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))))
(cbrt.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -3))
(*.f64 (exp.f64 (neg.f64 (log.f64 (fma.f64 x x -1)))) -10)
(cbrt.f64 (/.f64 -1000 (pow.f64 (fma.f64 x x -1) 3)))
(pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 3)
(cbrt.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3))
(cbrt.f64 (/.f64 1 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) 3)))
(/.f64 (/.f64 -10 (sqrt.f64 (fma.f64 x x -1))) (sqrt.f64 (fma.f64 x x -1)))
(*.f64 (*.f64 (/.f64 1 (cbrt.f64 (fma.f64 x x -1))) (cbrt.f64 (pow.f64 (fma.f64 x x -1) -2))) -10)
(*.f64 (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2) (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))))
Outputs
(/.f64 -10 (fma.f64 x x -1))
Calls

7 calls:

63.0ms
(-.f64 1 (*.f64 x x))
45.0ms
(*.f64 x x)
38.0ms
(-.f64 1 (*.f64 x x))
21.0ms
(/.f64 10 (-.f64 1 (*.f64 x x)))
20.0ms
x
Results
ErrorSegmentsBranch
0.2b1x
0.2b1(/.f64 10 (-.f64 1 (*.f64 x x)))
0.2b1(/.f64 10 (-.f64 1 (*.f64 x x)))
0.2b1(-.f64 1 (*.f64 x x))
0.2b1(-.f64 1 (*.f64 x x))
0.2b1(*.f64 x x)
0.2b1(*.f64 x x)
Compiler

Compiled 342 to 234 computations (31.6% saved)

regimes51.0ms (0.9%)

Counts
14 → 1
Calls
Call 1
Inputs
10
10
10
10
(/.f64 (/.f64 -10 x) x)
(/.f64 -10 (*.f64 x x))
(/.f64 10 (-.f64 1 (*.f64 x x)))
(/.f64 1 (/.f64 (-.f64 1 (*.f64 x x)) 10))
(/.f64 1 (+.f64 (*.f64 (*.f64 x x) -1/10) 1/10))
(/.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 (/.f64 1 (/.f64 (-.f64 1 (*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x)))) (-.f64 1 (*.f64 x (neg.f64 x))))) 10)
(/.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:

10.0ms
(/.f64 10 (-.f64 1 (*.f64 x x)))
10.0ms
(*.f64 x x)
9.0ms
(/.f64 10 (-.f64 1 (*.f64 x x)))
9.0ms
x
9.0ms
(-.f64 1 (*.f64 x x))
Results
ErrorSegmentsBranch
8.0b1x
8.0b1(/.f64 10 (-.f64 1 (*.f64 x x)))
8.0b1(/.f64 10 (-.f64 1 (*.f64 x x)))
8.0b1(-.f64 1 (*.f64 x x))
8.0b1(*.f64 x x)
Compiler

Compiled 151 to 91 computations (39.7% saved)

regimes34.0ms (0.6%)

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

4 calls:

10.0ms
(/.f64 10 (-.f64 1 (*.f64 x x)))
9.0ms
(*.f64 x x)
6.0ms
x
6.0ms
(-.f64 1 (*.f64 x x))
Results
ErrorSegmentsBranch
8.0b1x
8.0b1(/.f64 10 (-.f64 1 (*.f64 x x)))
8.0b1(-.f64 1 (*.f64 x x))
8.0b1(*.f64 x x)
Compiler

Compiled 69 to 46 computations (33.3% saved)

regimes46.0ms (0.8%)

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

3 calls:

11.0ms
(*.f64 x x)
9.0ms
(*.f64 x x)
9.0ms
x
Results
ErrorSegmentsBranch
55.4b2x
55.4b2(*.f64 x x)
55.4b2(*.f64 x x)
Compiler

Compiled 25 to 16 computations (36% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.9999783902776361
1.0000123760386301
Compiler

Compiled 12 to 9 computations (25% saved)

regimes5.0ms (0.1%)

Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0.0b (-0%)

Counts
4 → 1
Calls
Call 1
Inputs
10
10
10
10
Outputs
10
Calls

1 calls:

4.0ms
x
Results
ErrorSegmentsBranch
58.1b1x
Compiler

Compiled 7 to 6 computations (14.3% saved)

simplify5.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
01849
12649
23249
33649
43849
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) 10 (/.f64 (/.f64 -10 x) x))
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) 10 (/.f64 (/.f64 -10 x) x))
10
Compiler

Compiled 40 to 30 computations (25% saved)

soundness329.0ms (5.7%)

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)

end76.0ms (1.3%)

Compiler

Compiled 36 to 24 computations (33.3% saved)

Profiling

Loading profile data...