Details

Time bar (total: 7.4s)

analyze2.0ms (0%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%0%100%0%0%0%0
0%0%0%100%0%0%0%1
50%0%0%100%0%0%0%2
75%0%0%100%0%0%0%3
87.5%0%0%100%0%0%0%4
93.8%0%0%100%0%0%0%5
96.9%0%0%100%0%0%0%6
98.4%0%0%100%0%0%0%7
99.2%0%0%100%0%0%0%8
99.6%0%0%100%0%0%0%9
99.8%0%0%100%0%0%0%10
99.9%0%0%100%0%0%0%11
100%0%0%100%0%0%0%12
Compiler

Compiled 15 to 11 computations (26.7% saved)

sample794.0ms (10.7%)

Results
784.0ms8256×body256valid
Bogosity

preprocess149.0ms (2%)

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

Useful iterations: 0 (0.0ms)

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

Compiled 9 to 7 computations (22.2% saved)

simplify143.0ms (1.9%)

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

Useful iterations: 5 (0.0ms)

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

eval1.0ms (0%)

Compiler

Compiled 14 to 10 computations (28.6% saved)

prune1.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

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

Compiled 15 to 11 computations (26.7% saved)

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 14 to 9 computations (35.7% saved)

series2.0ms (0%)

Counts
1 → 12
Calls

3 calls:

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

rewrite42.0ms (0.6%)

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

Useful iterations: 0 (0.0ms)

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

simplify48.0ms (0.6%)

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

localize8.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.3b
(/.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
@inf
(/.f64 10 (-.f64 1 (*.f64 x x)))
0.0ms
x
@0
(/.f64 10 (-.f64 1 (*.f64 x x)))
0.0ms
x
@-inf
(-.f64 1 (*.f64 x x))

rewrite55.0ms (0.7%)

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

simplify49.0ms (0.7%)

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

Useful iterations: 4 (0.0ms)

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

eval30.0ms (0.4%)

Compiler

Compiled 1239 to 893 computations (27.9% saved)

prune26.0ms (0.3%)

Pruning

15 alts after pruning (13 fresh and 2 done)

PrunedKeptTotal
New9213105
Fresh000
Picked011
Done011
Total9215107
Error
0.0b
Counts
107 → 15
Alt Table
Click to see full alt table
StatusErrorProgram
7.9b
(*.f64 (/.f64 1 (-.f64 1 (*.f64 x x))) 10)
20.1b
(pow.f64 (sqrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2)
7.9b
(/.f64 10 (/.f64 (-.f64 1 (*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x)))) (-.f64 1 (*.f64 x (neg.f64 x)))))
60.7b
(/.f64 -10 (*.f64 x x))
7.9b
(/.f64 10 (-.f64 1 (*.f64 x x)))
21.0b
(expm1.f64 (log1p.f64 (/.f64 -10 (fma.f64 x x -1))))
57.7b
10
1.3b
(pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 3)
0.4b
(*.f64 (/.f64 1 (fma.f64 x x -1)) -10)
0.3b
(/.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))))
21.0b
(exp.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1))))
0.5b
(cbrt.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3))
19.7b
(sqrt.f64 (/.f64 100 (pow.f64 (fma.f64 x x -1) 2)))
0.5b
(pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -1)
Compiler

Compiled 279 to 207 computations (25.8% saved)

localize10.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 23 to 16 computations (30.4% saved)

series2.0ms (0%)

Counts
2 → 24
Calls

6 calls:

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

rewrite51.0ms (0.7%)

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

Useful iterations: 0 (0.0ms)

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

simplify62.0ms (0.8%)

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

Useful iterations: 2 (0.0ms)

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

localize4.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 11 to 5 computations (54.5% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

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

rewrite41.0ms (0.6%)

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

Useful iterations: 0 (0.0ms)

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

simplify155.0ms (2.1%)

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

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(-.f64 1 (*.f64 x (neg.f64 x)))
0.3b
(/.f64 (-.f64 1 (*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x)))) (-.f64 1 (*.f64 x (neg.f64 x))))
0.5b
(*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x)))
6.9b
(-.f64 1 (*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x))))
Compiler

Compiled 74 to 22 computations (70.3% saved)

series4.0ms (0.1%)

Counts
4 → 48
Calls

12 calls:

TimeVariablePointExpression
1.0ms
x
@inf
(-.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
@0
(-.f64 1 (*.f64 (*.f64 x (neg.f64 x)) (*.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))))
0.0ms
x
@-inf
(-.f64 1 (*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x))))

rewrite72.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
878×pow1_binary64
826×add-log-exp_binary64
825×log1p-expm1-u_binary64
825×expm1-log1p-u_binary64
107×add-sqr-sqrt_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0967
121031
2336931
Stop Event
node limit
Counts
4 → 143
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 1 (*.f64 x (neg.f64 x)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (*.f64 x (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (pow.f64 x 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 1 (*.f64 x (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1 (*.f64 x (pow.f64 x 3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 1 (*.f64 x (pow.f64 x 3)))) (pow.f64 (cbrt.f64 (+.f64 1 (*.f64 x (pow.f64 x 3)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 1 (*.f64 x (pow.f64 x 3)))) 2) (cbrt.f64 (+.f64 1 (*.f64 x (pow.f64 x 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 1 (*.f64 x (pow.f64 x 3)))) (sqrt.f64 (+.f64 1 (*.f64 x (pow.f64 x 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1 (pow.f64 (*.f64 x x) 6)) (/.f64 1 (+.f64 1 (+.f64 (*.f64 x (pow.f64 x 3)) (pow.f64 (*.f64 x x) 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1 (pow.f64 (*.f64 x x) 4)) (/.f64 1 (+.f64 1 (*.f64 x (pow.f64 x 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 1 (+.f64 (*.f64 x (pow.f64 x 3)) (pow.f64 (*.f64 x x) 4))) (-.f64 1 (pow.f64 (*.f64 x x) 6))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 1 (*.f64 x (pow.f64 x 3))) (+.f64 1 (pow.f64 (*.f64 x x) 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (pow.f64 (*.f64 x x) 6)) (+.f64 1 (+.f64 (*.f64 x (pow.f64 x 3)) (pow.f64 (*.f64 x x) 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1 (pow.f64 (*.f64 x x) 4)) (+.f64 1 (*.f64 x (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 1 (pow.f64 (*.f64 x x) 6))) (neg.f64 (+.f64 1 (+.f64 (*.f64 x (pow.f64 x 3)) (pow.f64 (*.f64 x x) 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 1 (pow.f64 (*.f64 x x) 4))) (+.f64 -1 (*.f64 x (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1 (pow.f64 (*.f64 x x) 6)) (+.f64 1 (-.f64 (pow.f64 (*.f64 x x) 4) (*.f64 x (pow.f64 x 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 1 (*.f64 x (pow.f64 x 3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 1 (*.f64 x (pow.f64 x 3))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 1 (*.f64 x (pow.f64 x 3)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 1 (*.f64 x (pow.f64 x 3)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 1 (*.f64 x (pow.f64 x 3))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 1 (*.f64 x (pow.f64 x 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 1 (*.f64 x (pow.f64 x 3))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 1 (*.f64 x (pow.f64 x 3))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 1 (*.f64 x (pow.f64 x 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 1 (*.f64 x (pow.f64 x 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log1p.f64 (*.f64 x (pow.f64 x 3))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 x (pow.f64 x 3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 x (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x x) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (pow.f64 x 3)) 1)))) (#(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 (*.f64 x x) 6) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 x (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x x) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x) (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 x (pow.f64 x 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 1 (pow.f64 (exp.f64 x) (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x x) 6))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 x x)) 2))))))
((#(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 (/.f64 -1 (+.f64 -1 (*.f64 x x))) (neg.f64 (/.f64 (*.f64 x (pow.f64 x 3)) (+.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 1 (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 -1 (+.f64 -1 (*.f64 x x))) (/.f64 (*.f64 x (pow.f64 x 3)) (+.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (+.f64 1 (*.f64 x x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 1 (+.f64 1 (*.f64 x (+.f64 (pow.f64 x 3) x)))) (/.f64 (pow.f64 (*.f64 x x) 3) (+.f64 1 (*.f64 x (+.f64 (pow.f64 x 3) x)))))))) (#(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 (pow.f64 x 3))) (/.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 (pow.f64 (cbrt.f64 (+.f64 1 (*.f64 x (pow.f64 x 3)))) 2) (*.f64 (cbrt.f64 (+.f64 1 (*.f64 x (pow.f64 x 3)))) (/.f64 -1 (+.f64 -1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 1 x) (hypot.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 1 (*.f64 x (pow.f64 x 3)))) (*.f64 (sqrt.f64 (+.f64 1 (*.f64 x (pow.f64 x 3)))) (/.f64 -1 (+.f64 -1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 -1 (*.f64 x (pow.f64 x 3))) (/.f64 1 (+.f64 -1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -1 (+.f64 -1 (*.f64 x x))) (+.f64 1 (*.f64 x (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1 (pow.f64 (*.f64 x x) 3)) (/.f64 1 (+.f64 1 (*.f64 x (+.f64 (pow.f64 x 3) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 1 (*.f64 x (pow.f64 x 3)))) 2) 1) (/.f64 (cbrt.f64 (+.f64 1 (*.f64 x (pow.f64 x 3)))) (+.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (+.f64 1 (*.f64 x (pow.f64 x 3)))) 1) (/.f64 (sqrt.f64 (+.f64 1 (*.f64 x (pow.f64 x 3)))) (+.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 (cbrt.f64 (+.f64 1 (*.f64 x x))) 2)) (/.f64 (+.f64 1 (*.f64 x (pow.f64 x 3))) (cbrt.f64 (+.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 1 (*.f64 x (pow.f64 x 3)))) 2) (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 (sqrt.f64 (+.f64 1 (*.f64 x (pow.f64 x 3)))) (pow.f64 (cbrt.f64 (+.f64 1 (*.f64 x x))) 2)) (/.f64 (sqrt.f64 (+.f64 1 (*.f64 x (pow.f64 x 3)))) (cbrt.f64 (+.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (hypot.f64 1 x)) (/.f64 (+.f64 1 (*.f64 x (pow.f64 x 3))) (hypot.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 1 (*.f64 x (pow.f64 x 3)))) 2) (hypot.f64 1 x)) (/.f64 (cbrt.f64 (+.f64 1 (*.f64 x (pow.f64 x 3)))) (hypot.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 1 (*.f64 x (pow.f64 x 3))) (+.f64 1 (*.f64 x (pow.f64 x 3)))) (+.f64 1 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 1 (*.f64 x (pow.f64 x 3))) (+.f64 1 (pow.f64 (*.f64 x x) 3))) (+.f64 1 (*.f64 x (+.f64 (pow.f64 x 3) 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 (hypot.f64 1 x) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 -1 (+.f64 -1 (*.f64 x x))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (+.f64 1 (*.f64 x (pow.f64 x 3))) (+.f64 -1 (*.f64 x x))))))) (#(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 log.f64 (+.f64 1 (expm1.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 cbrt.f64 (/.f64 (pow.f64 (+.f64 1 (*.f64 x (pow.f64 x 3))) 3) (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 x)))))))
((#(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 (/.f64 -1 (+.f64 -1 (*.f64 x x))) (neg.f64 (/.f64 (*.f64 x (pow.f64 x 3)) (+.f64 1 (*.f64 x x)))))))) (#(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 (pow.f64 x 3))) (/.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 (pow.f64 (cbrt.f64 (+.f64 1 (*.f64 x (pow.f64 x 3)))) 2) (*.f64 (cbrt.f64 (+.f64 1 (*.f64 x (pow.f64 x 3)))) (/.f64 -1 (+.f64 -1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 1 x) (hypot.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 1 (*.f64 x (pow.f64 x 3)))) (*.f64 (sqrt.f64 (+.f64 1 (*.f64 x (pow.f64 x 3)))) (/.f64 -1 (+.f64 -1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 -1 (*.f64 x (pow.f64 x 3))) (/.f64 1 (+.f64 -1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -1 (+.f64 -1 (*.f64 x x))) (+.f64 1 (*.f64 x (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1 (pow.f64 (*.f64 x x) 3)) (/.f64 1 (+.f64 1 (*.f64 x (+.f64 (pow.f64 x 3) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 1 (*.f64 x (pow.f64 x 3)))) 2) 1) (/.f64 (cbrt.f64 (+.f64 1 (*.f64 x (pow.f64 x 3)))) (+.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (+.f64 1 (*.f64 x (pow.f64 x 3)))) 1) (/.f64 (sqrt.f64 (+.f64 1 (*.f64 x (pow.f64 x 3)))) (+.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 (cbrt.f64 (+.f64 1 (*.f64 x x))) 2)) (/.f64 (+.f64 1 (*.f64 x (pow.f64 x 3))) (cbrt.f64 (+.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 1 (*.f64 x (pow.f64 x 3)))) 2) (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 (sqrt.f64 (+.f64 1 (*.f64 x (pow.f64 x 3)))) (pow.f64 (cbrt.f64 (+.f64 1 (*.f64 x x))) 2)) (/.f64 (sqrt.f64 (+.f64 1 (*.f64 x (pow.f64 x 3)))) (cbrt.f64 (+.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (hypot.f64 1 x)) (/.f64 (+.f64 1 (*.f64 x (pow.f64 x 3))) (hypot.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 1 (*.f64 x (pow.f64 x 3)))) 2) (hypot.f64 1 x)) (/.f64 (cbrt.f64 (+.f64 1 (*.f64 x (pow.f64 x 3)))) (hypot.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 1 (*.f64 x (pow.f64 x 3))) (+.f64 1 (*.f64 x (pow.f64 x 3)))) (+.f64 1 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 1 (*.f64 x (pow.f64 x 3))) (+.f64 1 (pow.f64 (*.f64 x x) 3))) (+.f64 1 (*.f64 x (+.f64 (pow.f64 x 3) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 -1 (+.f64 -1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (/.f64 -1 (+.f64 -1 (*.f64 x x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 1 (*.f64 x (+.f64 (pow.f64 x 3) x))) (+.f64 1 (pow.f64 (*.f64 x x) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1 (*.f64 x (pow.f64 x 3))) (+.f64 1 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (cbrt.f64 (+.f64 1 (*.f64 x (pow.f64 x 3)))) 2) (/.f64 (+.f64 1 (*.f64 x x)) (cbrt.f64 (+.f64 1 (*.f64 x (pow.f64 x 3))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (+.f64 1 (*.f64 x (pow.f64 x 3)))) (/.f64 (+.f64 1 (*.f64 x x)) (sqrt.f64 (+.f64 1 (*.f64 x (pow.f64 x 3))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 -1 (*.f64 x (pow.f64 x 3))) (+.f64 -1 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (pow.f64 (*.f64 x x) 6)) (*.f64 (+.f64 1 (*.f64 x x)) (+.f64 1 (+.f64 (*.f64 x (pow.f64 x 3)) (pow.f64 (*.f64 x x) 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1 (pow.f64 (*.f64 x x) 3)) (+.f64 1 (*.f64 x (+.f64 (pow.f64 x 3) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -1 (neg.f64 (/.f64 -1 (+.f64 -1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1 (pow.f64 (*.f64 x x) 4)) (*.f64 (+.f64 1 (*.f64 x x)) (+.f64 1 (*.f64 x (pow.f64 x 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 -1 (*.f64 x (pow.f64 x 3)))) (neg.f64 (+.f64 -1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 1 (pow.f64 (*.f64 x x) 3))) (neg.f64 (+.f64 1 (*.f64 x (+.f64 (pow.f64 x 3) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (pow.f64 (*.f64 x x) 6)) 1) (*.f64 (+.f64 1 (+.f64 (*.f64 x (pow.f64 x 3)) (pow.f64 (*.f64 x x) 4))) (+.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 (pow.f64 (*.f64 x x) 4)) 1) (*.f64 (+.f64 1 (*.f64 x (pow.f64 x 3))) (+.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (+.f64 1 (*.f64 x x)) (*.f64 (+.f64 1 (*.f64 x x)) (*.f64 x (pow.f64 x 3)))) (pow.f64 (+.f64 1 (*.f64 x x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (+.f64 1 (*.f64 x (pow.f64 x 3))) (hypot.f64 1 x)) (hypot.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (/.f64 -1 (+.f64 -1 (*.f64 x x))) 3) (pow.f64 (/.f64 (*.f64 x (pow.f64 x 3)) (+.f64 1 (*.f64 x x))) 3)) (+.f64 (*.f64 (/.f64 -1 (+.f64 -1 (*.f64 x x))) (/.f64 -1 (+.f64 -1 (*.f64 x x)))) (+.f64 (*.f64 (/.f64 (*.f64 x (pow.f64 x 3)) (+.f64 1 (*.f64 x x))) (/.f64 (*.f64 x (pow.f64 x 3)) (+.f64 1 (*.f64 x x)))) (*.f64 (/.f64 -1 (+.f64 -1 (*.f64 x x))) (/.f64 (*.f64 x (pow.f64 x 3)) (+.f64 1 (*.f64 x x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (/.f64 -1 (+.f64 -1 (*.f64 x x))) (/.f64 -1 (+.f64 -1 (*.f64 x x)))) (*.f64 (/.f64 (*.f64 x (pow.f64 x 3)) (+.f64 1 (*.f64 x x))) (/.f64 (*.f64 x (pow.f64 x 3)) (+.f64 1 (*.f64 x x))))) (+.f64 (/.f64 -1 (+.f64 -1 (*.f64 x x))) (/.f64 (*.f64 x (pow.f64 x 3)) (+.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (+.f64 1 (*.f64 x (pow.f64 x 3))) 1) (+.f64 1 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (+.f64 1 (*.f64 x (pow.f64 x 3))) (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 (-.f64 1 (pow.f64 (*.f64 x x) 6)) (/.f64 -1 (+.f64 -1 (*.f64 x x)))) (+.f64 1 (+.f64 (*.f64 x (pow.f64 x 3)) (pow.f64 (*.f64 x x) 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 (pow.f64 (*.f64 x x) 4)) (/.f64 -1 (+.f64 -1 (*.f64 x x)))) (+.f64 1 (*.f64 x (pow.f64 x 3))))))) (#(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 (hypot.f64 1 x) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 -1 (+.f64 -1 (*.f64 x x))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (+.f64 1 (*.f64 x (pow.f64 x 3))) (+.f64 -1 (*.f64 x x))))))) (#(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 log.f64 (+.f64 1 (expm1.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 cbrt.f64 (/.f64 (pow.f64 (+.f64 1 (*.f64 x (pow.f64 x 3))) 3) (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 x)))))))

simplify76.0ms (1%)

Algorithm
egg-herbie
Rules
671×fma-neg_binary64
462×distribute-rgt-neg-in_binary64
456×distribute-lft-neg-in_binary64
421×fma-def_binary64
349×associate-*l*_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
013308
128254
257254
3139254
4417254
51465254
63085254
74933254
87940254
Stop Event
node limit
Counts
191 → 120
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)))
1
(+.f64 1 (pow.f64 x 2))
(+.f64 1 (pow.f64 x 2))
(+.f64 1 (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 1 (pow.f64 x 2))
(+.f64 1 (pow.f64 x 2))
(+.f64 1 (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 1 (pow.f64 x 2))
(+.f64 1 (pow.f64 x 2))
(+.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)
1
(+.f64 1 (pow.f64 x 2))
(+.f64 1 (*.f64 x x))
(fma.f64 x x 1)
(+.f64 1 (pow.f64 x 2))
(+.f64 1 (*.f64 x x))
(fma.f64 x x 1)
(+.f64 1 (pow.f64 x 2))
(+.f64 1 (*.f64 x x))
(fma.f64 x x 1)
(pow.f64 x 2)
(*.f64 x x)
(+.f64 1 (pow.f64 x 2))
(+.f64 1 (*.f64 x x))
(fma.f64 x x 1)
(+.f64 1 (pow.f64 x 2))
(+.f64 1 (*.f64 x x))
(fma.f64 x x 1)
(+.f64 1 (pow.f64 x 2))
(+.f64 1 (*.f64 x x))
(fma.f64 x x 1)
(pow.f64 x 2)
(*.f64 x x)
(+.f64 1 (pow.f64 x 2))
(+.f64 1 (*.f64 x x))
(fma.f64 x x 1)
(+.f64 1 (pow.f64 x 2))
(+.f64 1 (*.f64 x x))
(fma.f64 x x 1)
(+.f64 1 (pow.f64 x 2))
(+.f64 1 (*.f64 x x))
(fma.f64 x x 1)

localize18.0ms (0.2%)

Local error

Found 3 expressions with local error:

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

Compiled 29 to 20 computations (31% saved)

series6.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)))
1.0ms
x
@-inf
(log.f64 (/.f64 -10 (fma.f64 x x -1)))
1.0ms
x
@-inf
(exp.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1))))
1.0ms
x
@0
(exp.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1))))

rewrite97.0ms (1.3%)

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

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

localize77.0ms (1%)

Local error

Found 3 expressions with local error:

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

Compiled 32 to 23 computations (28.1% saved)

series7.0ms (0.1%)

Counts
2 → 24
Calls

6 calls:

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

rewrite98.0ms (1.3%)

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

simplify141.0ms (1.9%)

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

eval546.0ms (7.4%)

Compiler

Compiled 7098 to 5205 computations (26.7% saved)

prune90.0ms (1.2%)

Pruning

20 alts after pruning (14 fresh and 6 done)

PrunedKeptTotal
New45612468
Fresh628
Picked011
Done156
Total46320483
Error
0.0b
Counts
483 → 20
Alt Table
Click to see full alt table
StatusErrorProgram
1.3b
(pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 3)
0.4b
(/.f64 1 (/.f64 (fma.f64 x x -1) -10))
7.9b
(*.f64 (/.f64 1 (-.f64 1 (*.f64 x x))) 10)
0.6b
(*.f64 (cbrt.f64 (pow.f64 (/.f64 1 (fma.f64 x x -1)) 3)) -10)
19.7b
(sqrt.f64 (/.f64 100 (pow.f64 (fma.f64 x x -1) 2)))
7.9b
(/.f64 10 (/.f64 (-.f64 1 (*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x)))) (-.f64 1 (*.f64 x (neg.f64 x)))))
60.7b
(/.f64 -10 (*.f64 x x))
43.7b
(*.f64 (sqrt.f64 (pow.f64 (fma.f64 x x -1) -2)) -10)
0.5b
(/.f64 1 (*.f64 (fma.f64 x x -1) -1/10))
0.3b
(/.f64 -10 (fma.f64 x x -1))
7.9b
(/.f64 10 (-.f64 1 (*.f64 x x)))
57.7b
10
1.6b
(*.f64 (pow.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 2) 1/3) (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))))
0.5b
(cbrt.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3))
20.1b
(pow.f64 (sqrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2)
21.0b
(expm1.f64 (log1p.f64 (/.f64 -10 (fma.f64 x x -1))))
1.3b
(cbrt.f64 (pow.f64 (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 3) 3))
60.7b
(/.f64 (/.f64 -10 x) x)
0.4b
(*.f64 (/.f64 1 (fma.f64 x x -1)) -10)
0.6b
(cbrt.f64 (/.f64 -1000 (pow.f64 (fma.f64 x x -1) 3)))
Compiler

Compiled 337 to 261 computations (22.6% saved)

localize10.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 23 to 16 computations (30.4% saved)

series3.0ms (0%)

Counts
2 → 24
Calls

6 calls:

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

rewrite55.0ms (0.7%)

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

Useful iterations: 1 (0.0ms)

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

simplify59.0ms (0.8%)

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

Useful iterations: 4 (0.0ms)

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

localize86.0ms (1.2%)

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

rewrite64.0ms (0.9%)

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

simplify187.0ms (2.5%)

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

localize57.0ms (0.8%)

Local error

Found 3 expressions with local error:

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

Compiled 29 to 20 computations (31% saved)

series6.0ms (0.1%)

Counts
2 → 24
Calls

6 calls:

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

rewrite160.0ms (2.2%)

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

Useful iterations: 0 (0.0ms)

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

simplify79.0ms (1.1%)

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

Useful iterations: 2 (0.0ms)

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

localize70.0ms (0.9%)

Local error

Found 3 expressions with local error:

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

Compiled 31 to 22 computations (29% saved)

series6.0ms (0.1%)

Counts
3 → 36
Calls

9 calls:

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

rewrite88.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
731×pow1_binary64
683×add-log-exp_binary64
683×log1p-expm1-u_binary64
683×expm1-log1p-u_binary64
668×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify94.0ms (1.3%)

Algorithm
egg-herbie
Rules
525×fma-neg_binary64
455×associate-*l*_binary64
417×associate-/r*_binary64
394×sub-neg_binary64
356×associate-*r*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
073652
1219626
2623616
31964616
47350616
Stop Event
node limit
Counts
89 → 97
Calls
Call 1
Inputs
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))))))
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
1
(+.f64 (*.f64 2 (pow.f64 x 2)) 1)
(fma.f64 2 (*.f64 x x) 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 3 (pow.f64 x 4)))
(fma.f64 2 (*.f64 x x) (fma.f64 3 (pow.f64 x 4) 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 3 (pow.f64 x 4))))
(+.f64 (fma.f64 2 (*.f64 x x) 1) (fma.f64 3 (pow.f64 x 4) (*.f64 4 (pow.f64 x 6))))
(fma.f64 2 (*.f64 x x) (fma.f64 3 (pow.f64 x 4) (fma.f64 4 (pow.f64 x 6) 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 1 (pow.f64 x 4)) (+.f64 (+.f64 (/.f64 2 (pow.f64 x 6)) (/.f64 3 (pow.f64 x 8))) (/.f64 4 (pow.f64 x 10))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 3 (pow.f64 x 8)) (+.f64 (/.f64 2 (pow.f64 x 6)) (/.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 1 (pow.f64 x 4)) (+.f64 (+.f64 (/.f64 2 (pow.f64 x 6)) (/.f64 3 (pow.f64 x 8))) (/.f64 4 (pow.f64 x 10))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 3 (pow.f64 x 8)) (+.f64 (/.f64 2 (pow.f64 x 6)) (/.f64 4 (pow.f64 x 10)))))
10
(+.f64 (*.f64 10 (pow.f64 x 2)) 10)
(fma.f64 10 (*.f64 x x) 10)
(fma.f64 (*.f64 x x) 10 10)
(*.f64 10 (fma.f64 x x 1))
(fma.f64 x (*.f64 x 10) 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 (pow.f64 x 4) 10))
(fma.f64 (*.f64 x x) 10 (fma.f64 (pow.f64 x 4) 10 10))
(*.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 (pow.f64 x 4) 10))))
(fma.f64 (*.f64 x x) 10 (fma.f64 (pow.f64 x 6) 10 (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))
(/.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 (/.f64 -10 x) x) (/.f64 10 (pow.f64 x 4)))
(+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 (/.f64 -10 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 (/.f64 -10 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 -10 (pow.f64 x 4)) (+.f64 (+.f64 (/.f64 (/.f64 -10 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))
(/.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 (/.f64 -10 x) x) (/.f64 10 (pow.f64 x 4)))
(+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 (/.f64 -10 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 (/.f64 -10 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 -10 (pow.f64 x 4)) (+.f64 (+.f64 (/.f64 (/.f64 -10 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))))
-1
(-.f64 (*.f64 -1 (pow.f64 x 2)) 1)
(fma.f64 -1 (*.f64 x x) -1)
(fma.f64 (*.f64 x x) -1 -1)
(fma.f64 x (neg.f64 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 (pow.f64 x 6) -1 (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 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 (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 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 4)) (+.f64 (/.f64 1 (pow.f64 x 6)) (+.f64 (/.f64 1 (pow.f64 x 8)) (/.f64 (/.f64 1 x) x))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (pow.f64 x 8)) (+.f64 (/.f64 1 (pow.f64 x 6)) (/.f64 (/.f64 1 x) x))))
(/.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 (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 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 4)) (+.f64 (/.f64 1 (pow.f64 x 6)) (+.f64 (/.f64 1 (pow.f64 x 8)) (/.f64 (/.f64 1 x) x))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (pow.f64 x 8)) (+.f64 (/.f64 1 (pow.f64 x 6)) (/.f64 (/.f64 1 x) x))))

localize42.0ms (0.6%)

Local error

Found 4 expressions with local error:

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

Compiled 44 to 33 computations (25% saved)

series6.0ms (0.1%)

Counts
3 → 36
Calls

9 calls:

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

rewrite84.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
811×pow1_binary64
766×add-log-exp_binary64
764×log1p-expm1-u_binary64
764×expm1-log1p-u_binary64
749×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01130
122524
2218924
Stop Event
node limit
Counts
3 → 68
Calls
Call 1
Inputs
(pow.f64 (/.f64 1 (fma.f64 x x -1)) 3)
(cbrt.f64 (pow.f64 (/.f64 1 (fma.f64 x x -1)) 3))
(*.f64 (cbrt.f64 (pow.f64 (/.f64 1 (fma.f64 x x -1)) 3)) -10)
Outputs
((#(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 1 (pow.f64 (fma.f64 x x -1) -3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (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 (pow.f64 (fma.f64 x x -1) -2) (/.f64 1 (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))) (pow.f64 (fma.f64 x x -1) -2)))))) (#(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) (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 (cbrt.f64 (pow.f64 (fma.f64 x x -1) -2)) 3) (/.f64 1 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (fma.f64 x x -1) -1/2) 3) (pow.f64 (pow.f64 (fma.f64 x x -1) -1/2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (fma.f64 x x -1) -2) 1) (/.f64 1 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (fma.f64 x x -1) -2) (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 (*.f64 (pow.f64 (fma.f64 x x -1) -2) (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 1 (pow.f64 (fma.f64 x x -1) 3))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (pow.f64 (fma.f64 x x -1) 3) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -1 (pow.f64 (neg.f64 (fma.f64 x x -1)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x /.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) -2) (fma.f64 x x -1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -1 (pow.f64 (fma.f64 x x -1) -2)) (neg.f64 (fma.f64 x x -1)))))) (#(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) -1) (neg.f64 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 1 (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 (log.f64 (pow.f64 (fma.f64 x x -1) -3)))))))
((#(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 (/.f64 1 (cbrt.f64 (fma.f64 x x -1))) (pow.f64 (pow.f64 (fma.f64 x x -1) -2) 1/3))))) (#(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 *.f64 (pow.f64 1 1/3) (/.f64 1 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (fma.f64 x x -1) -2) 1/3) (/.f64 1 (cbrt.f64 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (fma.f64 x x -1) -3/2) 1/3) (pow.f64 (pow.f64 (fma.f64 x x -1) -3/2) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (fma.f64 x x -1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (neg.f64 (neg.f64 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -1 (neg.f64 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (fma.f64 x x -1) -1/2) (sqrt.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)) (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 (/.f64 1 (fma.f64 x x -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (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 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))))))))
((#(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 (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 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 (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))))))))

simplify89.0ms (1.2%)

Algorithm
egg-herbie
Rules
565×fma-neg_binary64
541×associate-*l*_binary64
452×associate-/r*_binary64
415×associate-*r*_binary64
314×fma-def_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
076652
1219626
2628616
32032616
47853616
Stop Event
node limit
Counts
104 → 111
Calls
Call 1
Inputs
-1
(-.f64 (*.f64 -3 (pow.f64 x 2)) 1)
(-.f64 (+.f64 (*.f64 -6 (pow.f64 x 4)) (*.f64 -3 (pow.f64 x 2))) 1)
(-.f64 (+.f64 (*.f64 -6 (pow.f64 x 4)) (+.f64 (*.f64 -3 (pow.f64 x 2)) (*.f64 -10 (pow.f64 x 6)))) 1)
(/.f64 1 (pow.f64 x 6))
(+.f64 (*.f64 3 (/.f64 1 (pow.f64 x 8))) (/.f64 1 (pow.f64 x 6)))
(+.f64 (*.f64 6 (/.f64 1 (pow.f64 x 10))) (+.f64 (/.f64 1 (pow.f64 x 6)) (*.f64 3 (/.f64 1 (pow.f64 x 8)))))
(+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 12))) (+.f64 (*.f64 6 (/.f64 1 (pow.f64 x 10))) (+.f64 (/.f64 1 (pow.f64 x 6)) (*.f64 3 (/.f64 1 (pow.f64 x 8))))))
(/.f64 1 (pow.f64 x 6))
(+.f64 (*.f64 3 (/.f64 1 (pow.f64 x 8))) (/.f64 1 (pow.f64 x 6)))
(+.f64 (*.f64 6 (/.f64 1 (pow.f64 x 10))) (+.f64 (/.f64 1 (pow.f64 x 6)) (*.f64 3 (/.f64 1 (pow.f64 x 8)))))
(+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 12))) (+.f64 (*.f64 6 (/.f64 1 (pow.f64 x 10))) (+.f64 (/.f64 1 (pow.f64 x 6)) (*.f64 3 (/.f64 1 (pow.f64 x 8))))))
-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)))))
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 (*.f64 -3 (pow.f64 x 2)) 1)
(fma.f64 -3 (*.f64 x x) -1)
(-.f64 (+.f64 (*.f64 -6 (pow.f64 x 4)) (*.f64 -3 (pow.f64 x 2))) 1)
(+.f64 (fma.f64 -6 (pow.f64 x 4) (*.f64 -3 (*.f64 x x))) -1)
(fma.f64 -6 (pow.f64 x 4) (fma.f64 -3 (*.f64 x x) -1))
(fma.f64 -3 (*.f64 x x) (fma.f64 -6 (pow.f64 x 4) -1))
(-.f64 (+.f64 (*.f64 -6 (pow.f64 x 4)) (+.f64 (*.f64 -3 (pow.f64 x 2)) (*.f64 -10 (pow.f64 x 6)))) 1)
(+.f64 (fma.f64 -6 (pow.f64 x 4) (fma.f64 -3 (*.f64 x x) (*.f64 -10 (pow.f64 x 6)))) -1)
(fma.f64 -6 (pow.f64 x 4) (+.f64 (*.f64 -10 (pow.f64 x 6)) (fma.f64 -3 (*.f64 x x) -1)))
(fma.f64 -6 (pow.f64 x 4) (fma.f64 -3 (*.f64 x x) (fma.f64 -10 (pow.f64 x 6) -1)))
(/.f64 1 (pow.f64 x 6))
(+.f64 (*.f64 3 (/.f64 1 (pow.f64 x 8))) (/.f64 1 (pow.f64 x 6)))
(+.f64 (/.f64 1 (pow.f64 x 6)) (/.f64 3 (pow.f64 x 8)))
(+.f64 (*.f64 6 (/.f64 1 (pow.f64 x 10))) (+.f64 (/.f64 1 (pow.f64 x 6)) (*.f64 3 (/.f64 1 (pow.f64 x 8)))))
(+.f64 (/.f64 6 (pow.f64 x 10)) (+.f64 (/.f64 1 (pow.f64 x 6)) (/.f64 3 (pow.f64 x 8))))
(+.f64 (/.f64 1 (pow.f64 x 6)) (+.f64 (/.f64 3 (pow.f64 x 8)) (/.f64 6 (pow.f64 x 10))))
(+.f64 (/.f64 3 (pow.f64 x 8)) (+.f64 (/.f64 1 (pow.f64 x 6)) (/.f64 6 (pow.f64 x 10))))
(+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 12))) (+.f64 (*.f64 6 (/.f64 1 (pow.f64 x 10))) (+.f64 (/.f64 1 (pow.f64 x 6)) (*.f64 3 (/.f64 1 (pow.f64 x 8))))))
(+.f64 (+.f64 (/.f64 6 (pow.f64 x 10)) (+.f64 (/.f64 1 (pow.f64 x 6)) (/.f64 3 (pow.f64 x 8)))) (/.f64 10 (pow.f64 x 12)))
(+.f64 (+.f64 (/.f64 1 (pow.f64 x 6)) (/.f64 3 (pow.f64 x 8))) (+.f64 (/.f64 6 (pow.f64 x 10)) (/.f64 10 (pow.f64 x 12))))
(+.f64 (+.f64 (/.f64 3 (pow.f64 x 8)) (+.f64 (/.f64 1 (pow.f64 x 6)) (/.f64 6 (pow.f64 x 10)))) (/.f64 10 (pow.f64 x 12)))
(+.f64 (/.f64 6 (pow.f64 x 10)) (+.f64 (/.f64 1 (pow.f64 x 6)) (+.f64 (/.f64 3 (pow.f64 x 8)) (/.f64 10 (pow.f64 x 12)))))
(/.f64 1 (pow.f64 x 6))
(+.f64 (*.f64 3 (/.f64 1 (pow.f64 x 8))) (/.f64 1 (pow.f64 x 6)))
(+.f64 (/.f64 1 (pow.f64 x 6)) (/.f64 3 (pow.f64 x 8)))
(+.f64 (*.f64 6 (/.f64 1 (pow.f64 x 10))) (+.f64 (/.f64 1 (pow.f64 x 6)) (*.f64 3 (/.f64 1 (pow.f64 x 8)))))
(+.f64 (/.f64 6 (pow.f64 x 10)) (+.f64 (/.f64 1 (pow.f64 x 6)) (/.f64 3 (pow.f64 x 8))))
(+.f64 (/.f64 1 (pow.f64 x 6)) (+.f64 (/.f64 3 (pow.f64 x 8)) (/.f64 6 (pow.f64 x 10))))
(+.f64 (/.f64 3 (pow.f64 x 8)) (+.f64 (/.f64 1 (pow.f64 x 6)) (/.f64 6 (pow.f64 x 10))))
(+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 12))) (+.f64 (*.f64 6 (/.f64 1 (pow.f64 x 10))) (+.f64 (/.f64 1 (pow.f64 x 6)) (*.f64 3 (/.f64 1 (pow.f64 x 8))))))
(+.f64 (+.f64 (/.f64 6 (pow.f64 x 10)) (+.f64 (/.f64 1 (pow.f64 x 6)) (/.f64 3 (pow.f64 x 8)))) (/.f64 10 (pow.f64 x 12)))
(+.f64 (+.f64 (/.f64 1 (pow.f64 x 6)) (/.f64 3 (pow.f64 x 8))) (+.f64 (/.f64 6 (pow.f64 x 10)) (/.f64 10 (pow.f64 x 12))))
(+.f64 (+.f64 (/.f64 3 (pow.f64 x 8)) (+.f64 (/.f64 1 (pow.f64 x 6)) (/.f64 6 (pow.f64 x 10)))) (/.f64 10 (pow.f64 x 12)))
(+.f64 (/.f64 6 (pow.f64 x 10)) (+.f64 (/.f64 1 (pow.f64 x 6)) (+.f64 (/.f64 3 (pow.f64 x 8)) (/.f64 10 (pow.f64 x 12)))))
-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 (fma.f64 -1 (*.f64 x x) (neg.f64 (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) (fma.f64 -1 (*.f64 x x) (neg.f64 (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 (*.f64 x x)) (/.f64 1 (pow.f64 x 4)))
(+.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 (*.f64 x x)) (/.f64 1 (pow.f64 x 4))))
(+.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 8)) (+.f64 (/.f64 1 (pow.f64 x 6)) (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 4)))))
(+.f64 (/.f64 1 (pow.f64 x 6)) (+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 1 (pow.f64 x 8)) (/.f64 1 (pow.f64 x 4)))))
(+.f64 (/.f64 1 (pow.f64 x 6)) (+.f64 (/.f64 1 (pow.f64 x 8)) (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (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 (*.f64 x x)) (/.f64 1 (pow.f64 x 4)))
(+.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 (*.f64 x x)) (/.f64 1 (pow.f64 x 4))))
(+.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 8)) (+.f64 (/.f64 1 (pow.f64 x 6)) (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 4)))))
(+.f64 (/.f64 1 (pow.f64 x 6)) (+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 1 (pow.f64 x 8)) (/.f64 1 (pow.f64 x 4)))))
(+.f64 (/.f64 1 (pow.f64 x 6)) (+.f64 (/.f64 1 (pow.f64 x 8)) (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 4)))))
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))))
(+.f64 (fma.f64 10 (*.f64 x x) 10) (*.f64 (pow.f64 x 4) 10))
(fma.f64 (*.f64 x x) 10 (fma.f64 (pow.f64 x 4) 10 10))
(+.f64 10 (*.f64 10 (fma.f64 x x (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)))))
(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 (pow.f64 x 6) 10 (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))
(/.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)))
(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 -10 (*.f64 x x)) (-.f64 (/.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 -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 (+.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)))
(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 -10 (*.f64 x x)) (-.f64 (/.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 -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 (+.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))))

eval630.0ms (8.5%)

Compiler

Compiled 5928 to 4697 computations (20.8% saved)

prune141.0ms (1.9%)

Pruning

20 alts after pruning (10 fresh and 10 done)

PrunedKeptTotal
New4486454
Fresh549
Picked011
Done1910
Total45420474
Error
0b
Counts
474 → 20
Alt Table
Click to see full alt table
StatusErrorProgram
0.4b
(/.f64 1 (/.f64 (fma.f64 x x -1) -10))
7.9b
(*.f64 (/.f64 1 (-.f64 1 (*.f64 x x))) 10)
0.6b
(*.f64 (cbrt.f64 (pow.f64 (/.f64 1 (fma.f64 x x -1)) 3)) -10)
19.7b
(sqrt.f64 (/.f64 100 (pow.f64 (fma.f64 x x -1) 2)))
7.9b
(/.f64 10 (/.f64 (-.f64 1 (*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x)))) (-.f64 1 (*.f64 x (neg.f64 x)))))
60.7b
(/.f64 -10 (*.f64 x x))
6.5b
(/.f64 1 (fma.f64 x (*.f64 x -1/10) 1/10))
0.4b
(*.f64 (/.f64 1 (fma.f64 x x -1)) -10)
0.8b
(*.f64 (*.f64 (cbrt.f64 (pow.f64 (fma.f64 x x -1) -2)) (cbrt.f64 (/.f64 1 (fma.f64 x x -1)))) -10)
0.5b
(/.f64 1 (*.f64 (fma.f64 x x -1) -1/10))
0.3b
(/.f64 -10 (fma.f64 x x -1))
0.7b
(/.f64 1 (cbrt.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) 3)))
0.5b
(cbrt.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3))
57.7b
10
21.0b
(expm1.f64 (log1p.f64 (/.f64 -10 (fma.f64 x x -1))))
60.7b
(/.f64 (/.f64 -10 x) x)
0.6b
(cbrt.f64 (/.f64 -1000 (pow.f64 (fma.f64 x x -1) 3)))
7.9b
(/.f64 10 (-.f64 1 (*.f64 x x)))
1.3b
(pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 3)
20.1b
(pow.f64 (sqrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2)
Compiler

Compiled 295 to 227 computations (23.1% saved)

localize180.0ms (2.4%)

Local error

Found 2 expressions with local error:

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

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

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

localize9.0ms (0.1%)

Local error

Found 3 expressions with local error:

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

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

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

localize77.0ms (1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.3b
(/.f64 -1000 (pow.f64 (fma.f64 x x -1) 3))
0.5b
(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)

series4.0ms (0.1%)

Counts
3 → 36
Calls

9 calls:

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

rewrite105.0ms (1.4%)

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

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

localize17.0ms (0.2%)

Local error

Found 3 expressions with local error:

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

Compiled 31 to 22 computations (29% saved)

series11.0ms (0.1%)

Counts
2 → 8
Calls

6 calls:

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

rewrite79.0ms (1.1%)

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

Useful iterations: 0 (0.0ms)

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

simplify50.0ms (0.7%)

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

Useful iterations: 3 (0.0ms)

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

localize24.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(/.f64 1 (cbrt.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) 3)))
0.4b
(*.f64 (fma.f64 x x -1) -1/10)
0.7b
(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 44 to 33 computations (25% saved)

series5.0ms (0.1%)

Counts
3 → 36
Calls

9 calls:

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

rewrite63.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
819×pow1_binary64
774×add-log-exp_binary64
772×log1p-expm1-u_binary64
772×expm1-log1p-u_binary64
757×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01130
122627
2220727
Stop Event
node limit
Counts
3 → 83
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))
(/.f64 1 (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 -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 -1/1000 (pow.f64 (fma.f64 x x -1) 3)) 1)))) (#(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 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 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 (*.f64 x x) -1/10) 1/10)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 -1/10 (*.f64 x x)) 1/10)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (fma.f64 x x -1) -1/10)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x x -1) -1/10)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x x -1) (pow.f64 -1/1000 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1/10 (fma.f64 x x -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (fma.f64 x x -1) -1/10) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (fma.f64 x x -1) -1/10))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) (pow.f64 (cbrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) (pow.f64 (*.f64 1/100 (pow.f64 (fma.f64 x x -1) 2)) 1/3))))) (#(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 (pow.f64 (*.f64 1/100 (pow.f64 (fma.f64 x x -1) 2)) 1/3) (cbrt.f64 (*.f64 (fma.f64 x x -1) -1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (*.f64 (fma.f64 x x -1) -1/10))))) (#(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 (*.f64 -1/10 (pow.f64 (cbrt.f64 (fma.f64 x x -1)) 2)) (cbrt.f64 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 -1/10 (sqrt.f64 (fma.f64 x x -1))) (sqrt.f64 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (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 -1/1000 (pow.f64 (fma.f64 x x -1) 3)) 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 (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 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 (pow.f64 (fma.f64 x x -1) -1) -10)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -10 (pow.f64 (fma.f64 x x -1) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) 2) -1) (pow.f64 (cbrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.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 -1/1000 (pow.f64 (fma.f64 x x -1) 3)) -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 -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))))))))

simplify63.0ms (0.8%)

Algorithm
egg-herbie
Rules
647×associate-/l*_binary64
443×associate-*l*_binary64
413×unswap-sqr_binary64
367×associate-*r*_binary64
339×sub-neg_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
057705
1150663
2379641
31066635
44348627
Stop Event
node limit
Counts
119 → 117
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 -1/1000))
(+.f64 (*.f64 -1 (cbrt.f64 -1/1000)) (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))
(+.f64 (*.f64 -1 (cbrt.f64 -1/1000)) (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))
(+.f64 (*.f64 -1 (cbrt.f64 -1/1000)) (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))
(*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2))
(+.f64 (*.f64 -1 (cbrt.f64 -1/1000)) (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))
(+.f64 (*.f64 -1 (cbrt.f64 -1/1000)) (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))
(+.f64 (*.f64 -1 (cbrt.f64 -1/1000)) (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))
(*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2))
(+.f64 (*.f64 -1 (cbrt.f64 -1/1000)) (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))
(+.f64 (*.f64 -1 (cbrt.f64 -1/1000)) (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))
(+.f64 (*.f64 -1 (cbrt.f64 -1/1000)) (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))
(/.f64 -1 (cbrt.f64 -1/1000))
(-.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (cbrt.f64 -1/1000))) (/.f64 1 (cbrt.f64 -1/1000)))
(-.f64 (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 4) (cbrt.f64 -1/1000))) (*.f64 -1 (/.f64 (pow.f64 x 2) (cbrt.f64 -1/1000)))) (/.f64 1 (cbrt.f64 -1/1000)))
(-.f64 (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 4) (cbrt.f64 -1/1000))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (cbrt.f64 -1/1000))) (*.f64 -1 (/.f64 (pow.f64 x 6) (cbrt.f64 -1/1000))))) (/.f64 1 (cbrt.f64 -1/1000)))
(/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))
(+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 4))) (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2))))
(+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 4))) (+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 6))) (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))))
(+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 4))) (+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 8))) (+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 6))) (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2))))))
(/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))
(+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 4))) (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2))))
(+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 4))) (+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 6))) (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))))
(+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 4))) (+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 8))) (+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 6))) (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2))))))
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)
(fma.f64 x (*.f64 -3/1000 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 -3/1000 (*.f64 x x) (fma.f64 -1/1000 (pow.f64 x 6) (fma.f64 3/1000 (pow.f64 x 4) 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 -1/1000 (pow.f64 x 6) (fma.f64 -3/1000 (*.f64 x x) (*.f64 3/1000 (pow.f64 x 4))))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 3/1000) -3/1000) (*.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 -3/1000 (*.f64 x x) (fma.f64 -1/1000 (pow.f64 x 6) (fma.f64 3/1000 (pow.f64 x 4) 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 -1/1000 (pow.f64 x 6) (fma.f64 -3/1000 (*.f64 x x) (*.f64 3/1000 (pow.f64 x 4))))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 3/1000) -3/1000) (*.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 -3/1000 (*.f64 x x) (fma.f64 -1/1000 (pow.f64 x 6) (fma.f64 3/1000 (pow.f64 x 4) 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 -1/1000))
(neg.f64 (cbrt.f64 -1/1000))
(+.f64 (*.f64 -1 (cbrt.f64 -1/1000)) (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))
(fma.f64 -1 (cbrt.f64 -1/1000) (*.f64 (*.f64 x x) (cbrt.f64 -1/1000)))
(*.f64 (cbrt.f64 -1/1000) (+.f64 -1 (*.f64 x x)))
(*.f64 (cbrt.f64 -1/1000) (fma.f64 x x -1))
(+.f64 (*.f64 -1 (cbrt.f64 -1/1000)) (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))
(fma.f64 -1 (cbrt.f64 -1/1000) (*.f64 (*.f64 x x) (cbrt.f64 -1/1000)))
(*.f64 (cbrt.f64 -1/1000) (+.f64 -1 (*.f64 x x)))
(*.f64 (cbrt.f64 -1/1000) (fma.f64 x x -1))
(+.f64 (*.f64 -1 (cbrt.f64 -1/1000)) (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))
(fma.f64 -1 (cbrt.f64 -1/1000) (*.f64 (*.f64 x x) (cbrt.f64 -1/1000)))
(*.f64 (cbrt.f64 -1/1000) (+.f64 -1 (*.f64 x x)))
(*.f64 (cbrt.f64 -1/1000) (fma.f64 x x -1))
(*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2))
(*.f64 (*.f64 x x) (cbrt.f64 -1/1000))
(*.f64 x (*.f64 x (cbrt.f64 -1/1000)))
(+.f64 (*.f64 -1 (cbrt.f64 -1/1000)) (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))
(fma.f64 -1 (cbrt.f64 -1/1000) (*.f64 (*.f64 x x) (cbrt.f64 -1/1000)))
(*.f64 (cbrt.f64 -1/1000) (+.f64 -1 (*.f64 x x)))
(*.f64 (cbrt.f64 -1/1000) (fma.f64 x x -1))
(+.f64 (*.f64 -1 (cbrt.f64 -1/1000)) (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))
(fma.f64 -1 (cbrt.f64 -1/1000) (*.f64 (*.f64 x x) (cbrt.f64 -1/1000)))
(*.f64 (cbrt.f64 -1/1000) (+.f64 -1 (*.f64 x x)))
(*.f64 (cbrt.f64 -1/1000) (fma.f64 x x -1))
(+.f64 (*.f64 -1 (cbrt.f64 -1/1000)) (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))
(fma.f64 -1 (cbrt.f64 -1/1000) (*.f64 (*.f64 x x) (cbrt.f64 -1/1000)))
(*.f64 (cbrt.f64 -1/1000) (+.f64 -1 (*.f64 x x)))
(*.f64 (cbrt.f64 -1/1000) (fma.f64 x x -1))
(*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2))
(*.f64 (*.f64 x x) (cbrt.f64 -1/1000))
(*.f64 x (*.f64 x (cbrt.f64 -1/1000)))
(+.f64 (*.f64 -1 (cbrt.f64 -1/1000)) (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))
(fma.f64 -1 (cbrt.f64 -1/1000) (*.f64 (*.f64 x x) (cbrt.f64 -1/1000)))
(*.f64 (cbrt.f64 -1/1000) (+.f64 -1 (*.f64 x x)))
(*.f64 (cbrt.f64 -1/1000) (fma.f64 x x -1))
(+.f64 (*.f64 -1 (cbrt.f64 -1/1000)) (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))
(fma.f64 -1 (cbrt.f64 -1/1000) (*.f64 (*.f64 x x) (cbrt.f64 -1/1000)))
(*.f64 (cbrt.f64 -1/1000) (+.f64 -1 (*.f64 x x)))
(*.f64 (cbrt.f64 -1/1000) (fma.f64 x x -1))
(+.f64 (*.f64 -1 (cbrt.f64 -1/1000)) (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))
(fma.f64 -1 (cbrt.f64 -1/1000) (*.f64 (*.f64 x x) (cbrt.f64 -1/1000)))
(*.f64 (cbrt.f64 -1/1000) (+.f64 -1 (*.f64 x x)))
(*.f64 (cbrt.f64 -1/1000) (fma.f64 x x -1))
(/.f64 -1 (cbrt.f64 -1/1000))
(-.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (cbrt.f64 -1/1000))) (/.f64 1 (cbrt.f64 -1/1000)))
(-.f64 (neg.f64 (/.f64 (*.f64 x x) (cbrt.f64 -1/1000))) (/.f64 1 (cbrt.f64 -1/1000)))
(fma.f64 -1 (/.f64 x (/.f64 (cbrt.f64 -1/1000) x)) (/.f64 -1 (cbrt.f64 -1/1000)))
(-.f64 (/.f64 -1 (cbrt.f64 -1/1000)) (*.f64 (/.f64 x (cbrt.f64 -1/1000)) x))
(-.f64 (/.f64 -1 (cbrt.f64 -1/1000)) (*.f64 x (/.f64 x (cbrt.f64 -1/1000))))
(*.f64 (/.f64 1 (cbrt.f64 -1/1000)) (-.f64 -1 (*.f64 x x)))
(-.f64 (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 4) (cbrt.f64 -1/1000))) (*.f64 -1 (/.f64 (pow.f64 x 2) (cbrt.f64 -1/1000)))) (/.f64 1 (cbrt.f64 -1/1000)))
(-.f64 (*.f64 -1 (+.f64 (/.f64 (pow.f64 x 4) (cbrt.f64 -1/1000)) (/.f64 (*.f64 x x) (cbrt.f64 -1/1000)))) (/.f64 1 (cbrt.f64 -1/1000)))
(fma.f64 -1 (+.f64 (/.f64 x (/.f64 (cbrt.f64 -1/1000) x)) (/.f64 (pow.f64 x 4) (cbrt.f64 -1/1000))) (/.f64 -1 (cbrt.f64 -1/1000)))
(-.f64 (-.f64 (/.f64 -1 (cbrt.f64 -1/1000)) (*.f64 (/.f64 x (cbrt.f64 -1/1000)) x)) (/.f64 (pow.f64 x 4) (cbrt.f64 -1/1000)))
(+.f64 (*.f64 (*.f64 x (/.f64 x (cbrt.f64 -1/1000))) (-.f64 -1 (*.f64 x x))) (/.f64 -1 (cbrt.f64 -1/1000)))
(-.f64 (/.f64 -1 (cbrt.f64 -1/1000)) (*.f64 (/.f64 x (cbrt.f64 -1/1000)) (+.f64 x (pow.f64 x 3))))
(-.f64 (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 4) (cbrt.f64 -1/1000))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (cbrt.f64 -1/1000))) (*.f64 -1 (/.f64 (pow.f64 x 6) (cbrt.f64 -1/1000))))) (/.f64 1 (cbrt.f64 -1/1000)))
(-.f64 (fma.f64 -1 (/.f64 (pow.f64 x 4) (cbrt.f64 -1/1000)) (*.f64 -1 (+.f64 (/.f64 (*.f64 x x) (cbrt.f64 -1/1000)) (/.f64 (pow.f64 x 6) (cbrt.f64 -1/1000))))) (/.f64 1 (cbrt.f64 -1/1000)))
(+.f64 (-.f64 (-.f64 (/.f64 (neg.f64 (*.f64 x x)) (cbrt.f64 -1/1000)) (/.f64 (pow.f64 x 4) (cbrt.f64 -1/1000))) (/.f64 (pow.f64 x 6) (cbrt.f64 -1/1000))) (/.f64 -1 (cbrt.f64 -1/1000)))
(-.f64 (-.f64 (-.f64 (/.f64 -1 (cbrt.f64 -1/1000)) (*.f64 (/.f64 x (cbrt.f64 -1/1000)) x)) (/.f64 (pow.f64 x 4) (cbrt.f64 -1/1000))) (/.f64 (pow.f64 x 6) (cbrt.f64 -1/1000)))
(-.f64 (*.f64 (/.f64 -1 (cbrt.f64 -1/1000)) (+.f64 (pow.f64 x 4) (pow.f64 x 6))) (fma.f64 (/.f64 x (cbrt.f64 -1/1000)) x (/.f64 1 (cbrt.f64 -1/1000))))
(+.f64 (*.f64 (/.f64 -1 (cbrt.f64 -1/1000)) (+.f64 (pow.f64 x 4) (*.f64 x (+.f64 (pow.f64 x 5) x)))) (/.f64 -1 (cbrt.f64 -1/1000)))
(/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))
(/.f64 1 (*.f64 (*.f64 x x) (cbrt.f64 -1/1000)))
(/.f64 (/.f64 1 (*.f64 x x)) (cbrt.f64 -1/1000))
(/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (*.f64 x x))
(+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 4))) (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2))))
(+.f64 (/.f64 1 (*.f64 (*.f64 x x) (cbrt.f64 -1/1000))) (/.f64 1 (*.f64 (pow.f64 x 4) (cbrt.f64 -1/1000))))
(+.f64 (/.f64 (/.f64 1 (*.f64 x x)) (cbrt.f64 -1/1000)) (/.f64 1 (*.f64 (pow.f64 x 4) (cbrt.f64 -1/1000))))
(+.f64 (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (*.f64 x x)) (/.f64 1 (*.f64 (pow.f64 x 4) (cbrt.f64 -1/1000))))
(+.f64 (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (*.f64 x x)) (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (pow.f64 x 4)))
(+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 4))) (+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 6))) (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))))
(+.f64 (/.f64 1 (*.f64 (pow.f64 x 4) (cbrt.f64 -1/1000))) (+.f64 (/.f64 1 (*.f64 (*.f64 x x) (cbrt.f64 -1/1000))) (/.f64 1 (*.f64 (pow.f64 x 6) (cbrt.f64 -1/1000)))))
(+.f64 (/.f64 (/.f64 1 (*.f64 x x)) (cbrt.f64 -1/1000)) (+.f64 (/.f64 1 (*.f64 (pow.f64 x 4) (cbrt.f64 -1/1000))) (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (pow.f64 x 6))))
(+.f64 (/.f64 1 (*.f64 (pow.f64 x 4) (cbrt.f64 -1/1000))) (+.f64 (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (*.f64 x x)) (/.f64 1 (*.f64 (pow.f64 x 6) (cbrt.f64 -1/1000)))))
(+.f64 (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (*.f64 x x)) (+.f64 (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (pow.f64 x 4)) (/.f64 1 (*.f64 (pow.f64 x 6) (cbrt.f64 -1/1000)))))
(+.f64 (+.f64 (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (*.f64 x x)) (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (pow.f64 x 4))) (/.f64 1 (*.f64 (pow.f64 x 6) (cbrt.f64 -1/1000))))
(+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 4))) (+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 8))) (+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 6))) (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2))))))
(+.f64 (/.f64 1 (*.f64 (pow.f64 x 4) (cbrt.f64 -1/1000))) (+.f64 (+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 8))) (/.f64 1 (*.f64 (pow.f64 x 6) (cbrt.f64 -1/1000)))) (/.f64 1 (*.f64 (*.f64 x x) (cbrt.f64 -1/1000)))))
(+.f64 (+.f64 (/.f64 (/.f64 1 (*.f64 x x)) (cbrt.f64 -1/1000)) (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (pow.f64 x 6))) (+.f64 (/.f64 1 (*.f64 (pow.f64 x 4) (cbrt.f64 -1/1000))) (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 8)))))
(+.f64 (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (*.f64 x x)) (+.f64 (/.f64 1 (*.f64 (pow.f64 x 4) (cbrt.f64 -1/1000))) (+.f64 (/.f64 1 (*.f64 (pow.f64 x 6) (cbrt.f64 -1/1000))) (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 8))))))
(+.f64 (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (*.f64 x x)) (+.f64 (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (pow.f64 x 4)) (+.f64 (/.f64 1 (*.f64 (pow.f64 x 6) (cbrt.f64 -1/1000))) (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 8))))))
(+.f64 (+.f64 (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (*.f64 x x)) (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (pow.f64 x 4))) (+.f64 (/.f64 1 (*.f64 (pow.f64 x 6) (cbrt.f64 -1/1000))) (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (pow.f64 x 8))))
(/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))
(/.f64 1 (*.f64 (*.f64 x x) (cbrt.f64 -1/1000)))
(/.f64 (/.f64 1 (*.f64 x x)) (cbrt.f64 -1/1000))
(/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (*.f64 x x))
(+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 4))) (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2))))
(+.f64 (/.f64 1 (*.f64 (*.f64 x x) (cbrt.f64 -1/1000))) (/.f64 1 (*.f64 (pow.f64 x 4) (cbrt.f64 -1/1000))))
(+.f64 (/.f64 (/.f64 1 (*.f64 x x)) (cbrt.f64 -1/1000)) (/.f64 1 (*.f64 (pow.f64 x 4) (cbrt.f64 -1/1000))))
(+.f64 (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (*.f64 x x)) (/.f64 1 (*.f64 (pow.f64 x 4) (cbrt.f64 -1/1000))))
(+.f64 (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (*.f64 x x)) (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (pow.f64 x 4)))
(+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 4))) (+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 6))) (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))))
(+.f64 (/.f64 1 (*.f64 (pow.f64 x 4) (cbrt.f64 -1/1000))) (+.f64 (/.f64 1 (*.f64 (*.f64 x x) (cbrt.f64 -1/1000))) (/.f64 1 (*.f64 (pow.f64 x 6) (cbrt.f64 -1/1000)))))
(+.f64 (/.f64 (/.f64 1 (*.f64 x x)) (cbrt.f64 -1/1000)) (+.f64 (/.f64 1 (*.f64 (pow.f64 x 4) (cbrt.f64 -1/1000))) (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (pow.f64 x 6))))
(+.f64 (/.f64 1 (*.f64 (pow.f64 x 4) (cbrt.f64 -1/1000))) (+.f64 (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (*.f64 x x)) (/.f64 1 (*.f64 (pow.f64 x 6) (cbrt.f64 -1/1000)))))
(+.f64 (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (*.f64 x x)) (+.f64 (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (pow.f64 x 4)) (/.f64 1 (*.f64 (pow.f64 x 6) (cbrt.f64 -1/1000)))))
(+.f64 (+.f64 (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (*.f64 x x)) (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (pow.f64 x 4))) (/.f64 1 (*.f64 (pow.f64 x 6) (cbrt.f64 -1/1000))))
(+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 4))) (+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 8))) (+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 6))) (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2))))))
(+.f64 (/.f64 1 (*.f64 (pow.f64 x 4) (cbrt.f64 -1/1000))) (+.f64 (+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 8))) (/.f64 1 (*.f64 (pow.f64 x 6) (cbrt.f64 -1/1000)))) (/.f64 1 (*.f64 (*.f64 x x) (cbrt.f64 -1/1000)))))
(+.f64 (+.f64 (/.f64 (/.f64 1 (*.f64 x x)) (cbrt.f64 -1/1000)) (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (pow.f64 x 6))) (+.f64 (/.f64 1 (*.f64 (pow.f64 x 4) (cbrt.f64 -1/1000))) (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 8)))))
(+.f64 (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (*.f64 x x)) (+.f64 (/.f64 1 (*.f64 (pow.f64 x 4) (cbrt.f64 -1/1000))) (+.f64 (/.f64 1 (*.f64 (pow.f64 x 6) (cbrt.f64 -1/1000))) (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 8))))))
(+.f64 (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (*.f64 x x)) (+.f64 (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (pow.f64 x 4)) (+.f64 (/.f64 1 (*.f64 (pow.f64 x 6) (cbrt.f64 -1/1000))) (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 8))))))
(+.f64 (+.f64 (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (*.f64 x x)) (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (pow.f64 x 4))) (+.f64 (/.f64 1 (*.f64 (pow.f64 x 6) (cbrt.f64 -1/1000))) (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (pow.f64 x 8))))

eval225.0ms (3%)

Compiler

Compiled 7406 to 5912 computations (20.2% saved)

prune102.0ms (1.4%)

Pruning

23 alts after pruning (8 fresh and 15 done)

PrunedKeptTotal
New5264530
Fresh145
Picked011
Done01414
Total52723550
Error
0b
Counts
550 → 23
Alt Table
Click to see full alt table
StatusErrorProgram
7.9b
(/.f64 1 (/.f64 (-.f64 1 (*.f64 x x)) 10))
0.4b
(/.f64 1 (/.f64 (fma.f64 x x -1) -10))
7.9b
(*.f64 (/.f64 1 (-.f64 1 (*.f64 x x))) 10)
0.6b
(*.f64 (cbrt.f64 (pow.f64 (/.f64 1 (fma.f64 x x -1)) 3)) -10)
19.7b
(sqrt.f64 (/.f64 100 (pow.f64 (fma.f64 x x -1) 2)))
7.9b
(/.f64 10 (/.f64 (-.f64 1 (*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x)))) (-.f64 1 (*.f64 x (neg.f64 x)))))
60.7b
(/.f64 -10 (*.f64 x x))
6.5b
(/.f64 1 (fma.f64 x (*.f64 x -1/10) 1/10))
0.4b
(*.f64 (/.f64 1 (fma.f64 x x -1)) -10)
0.5b
(/.f64 1 (*.f64 (fma.f64 x x -1) -1/10))
0.3b
(/.f64 -10 (fma.f64 x x -1))
0.7b
(/.f64 1 (cbrt.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) 3)))
0.5b
(cbrt.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3))
57.7b
10
0.8b
(/.f64 (cbrt.f64 1000) (cbrt.f64 (neg.f64 (pow.f64 (fma.f64 x x -1) 3))))
21.0b
(expm1.f64 (log1p.f64 (/.f64 -10 (fma.f64 x x -1))))
60.7b
(/.f64 (/.f64 -10 x) x)
0.6b
(cbrt.f64 (/.f64 -1000 (pow.f64 (fma.f64 x x -1) 3)))
7.9b
(*.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)
8.2b
(/.f64 1 (+.f64 (*.f64 (*.f64 x x) -1/10) 1/10))
7.9b
(/.f64 10 (-.f64 1 (*.f64 x x)))
1.3b
(pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 3)
20.1b
(pow.f64 (sqrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2)
Compiler

Compiled 234 to 174 computations (25.6% saved)

regimes390.0ms (5.3%)

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

7 calls:

109.0ms
(/.f64 10 (-.f64 1 (*.f64 x x)))
76.0ms
(/.f64 10 (-.f64 1 (*.f64 x x)))
66.0ms
(*.f64 x x)
33.0ms
(-.f64 1 (*.f64 x x))
22.0ms
(*.f64 x x)
Results
ErrorSegmentsBranch
0.3b1x
0.3b1(/.f64 10 (-.f64 1 (*.f64 x x)))
0.3b1(/.f64 10 (-.f64 1 (*.f64 x x)))
0.3b1(-.f64 1 (*.f64 x x))
0.3b1(-.f64 1 (*.f64 x x))
0.3b1(*.f64 x x)
0.3b1(*.f64 x x)
Compiler

Compiled 393 to 281 computations (28.5% saved)

regimes72.0ms (1%)

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

7 calls:

30.0ms
(/.f64 10 (-.f64 1 (*.f64 x x)))
7.0ms
(*.f64 x x)
6.0ms
(*.f64 x x)
6.0ms
(/.f64 10 (-.f64 1 (*.f64 x x)))
6.0ms
x
Results
ErrorSegmentsBranch
7.9b1x
7.9b1(/.f64 10 (-.f64 1 (*.f64 x x)))
7.9b1(/.f64 10 (-.f64 1 (*.f64 x x)))
7.9b1(-.f64 1 (*.f64 x x))
7.9b1(-.f64 1 (*.f64 x x))
7.9b1(*.f64 x x)
7.9b1(*.f64 x x)
Compiler

Compiled 127 to 75 computations (40.9% saved)

regimes68.0ms (0.9%)

Counts
8 → 1
Calls
Call 1
Inputs
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 (/.f64 1 (-.f64 1 (*.f64 x x))) 10)
Outputs
(/.f64 10 (-.f64 1 (*.f64 x x)))
Calls

4 calls:

46.0ms
(/.f64 10 (-.f64 1 (*.f64 x x)))
6.0ms
(-.f64 1 (*.f64 x x))
6.0ms
(*.f64 x x)
5.0ms
x
Results
ErrorSegmentsBranch
7.9b1x
7.9b1(/.f64 10 (-.f64 1 (*.f64 x x)))
7.9b1(-.f64 1 (*.f64 x x))
7.9b1(*.f64 x x)
Compiler

Compiled 67 to 44 computations (34.3% saved)

regimes66.0ms (0.9%)

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

3 calls:

50.0ms
(*.f64 x x)
7.0ms
(*.f64 x x)
7.0ms
x
Results
ErrorSegmentsBranch
55.4b2x
55.4b2(*.f64 x x)
55.4b2(*.f64 x x)
Compiler

Compiled 23 to 14 computations (39.1% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.9999882975384136
1.0000107721244424
Compiler

Compiled 12 to 9 computations (25% saved)

regimes4.0ms (0.1%)

Accuracy

Total 0.0b remaining (0%)

Threshold costs 0.0b (0%)

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

1 calls:

3.0ms
x
Results
ErrorSegmentsBranch
57.7b1x
Compiler

Compiled 5 to 4 computations (20% saved)

simplify8.0ms (0.1%)

Algorithm
egg-herbie
Rules
17×cancel-sign-sub-inv_binary64
10×distribute-rgt-neg-in_binary64
+-commutative_binary64
sub-neg_binary64
distribute-lft-neg-in_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02367
14061
26361
38761
410961
511461
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(/.f64 -10 (fma.f64 x x -1))
(/.f64 10 (/.f64 (-.f64 1 (*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x)))) (-.f64 1 (*.f64 x (neg.f64 x)))))
(/.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 10 (/.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 (neg.f64 (*.f64 x x)) (neg.f64 (*.f64 x x)))) (-.f64 1 (neg.f64 (*.f64 x x)))))
(/.f64 10 (/.f64 (-.f64 1 (*.f64 (*.f64 x x) (*.f64 x x))) (+.f64 1 (*.f64 x x))))
(/.f64 10 (-.f64 1 (*.f64 x x)))
(if (<=.f64 (*.f64 x x) 1) 10 (/.f64 (/.f64 -10 x) x))
10
Compiler

Compiled 48 to 32 computations (33.3% saved)

soundness327.0ms (4.4%)

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)

end55.0ms (0.7%)

Compiler

Compiled 44 to 26 computations (40.9% saved)

Profiling

Loading profile data...