Details

Time bar (total: 7.2s)

analyze2.0ms (0%)

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

Compiled 15 to 11 computations (26.7% saved)

sample985.0ms (13.6%)

Results
971.0ms8256×body256valid

preprocess150.0ms (2.1%)

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

Useful iterations: 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)

simplify144.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: 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.2b
Counts
3 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
0.2b
(/.f64 -10 (fma.f64 x x -1))
7.8b
(/.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.2b
(/.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))))))))

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

localize7.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 19 to 10 computations (47.4% saved)

series2.0ms (0%)

Counts
2 → 24
Calls

6 calls:

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

rewrite59.0ms (0.8%)

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

Useful iterations: 0 (0.0ms)

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

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

eval28.0ms (0.4%)

Compiler

Compiled 1239 to 893 computations (27.9% saved)

prune24.0ms (0.3%)

Pruning

12 alts after pruning (10 fresh and 2 done)

PrunedKeptTotal
New9510105
Fresh000
Picked011
Done011
Total9512107
Error
0.0b
Counts
107 → 12
Alt Table
Click to see full alt table
StatusErrorProgram
7.8b
(/.f64 10 (/.f64 (-.f64 1 (*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x)))) (-.f64 1 (*.f64 x (neg.f64 x)))))
57.5b
10
0.2b
(/.f64 -10 (fma.f64 x x -1))
7.8b
(/.f64 10 (-.f64 1 (*.f64 x x)))
19.5b
(exp.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1))))
60.8b
(/.f64 -10 (*.f64 x x))
7.8b
(*.f64 (/.f64 1 (-.f64 1 (*.f64 x x))) 10)
18.2b
(sqrt.f64 (/.f64 100 (pow.f64 (fma.f64 x x -1) 2)))
0.4b
(pow.f64 (*.f64 (fma.f64 x x -1) -1/10) -1)
18.6b
(pow.f64 (sqrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2)
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)
Compiler

Compiled 205 to 149 computations (27.3% saved)

localize11.0ms (0.2%)

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
@0
(*.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 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.9%)

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

Useful iterations: 2 (0.0ms)

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

localize4.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 11 to 5 computations (54.5% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

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

rewrite47.0ms (0.7%)

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

Useful iterations: 0 (0.0ms)

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

simplify157.0ms (2.2%)

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

localize20.0ms (0.3%)

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)

series6.0ms (0.1%)

Counts
4 → 48
Calls

12 calls:

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

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

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

localize17.0ms (0.2%)

Local error

Found 3 expressions with local error:

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

Compiled 29 to 20 computations (31% saved)

series3.0ms (0%)

Counts
2 → 24
Calls

6 calls:

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

rewrite54.0ms (0.8%)

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

simplify59.0ms (0.8%)

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

Useful iterations: 2 (0.0ms)

IterNodesCost
073489
1209459
2604453
31905453
45934453
Stop Event
node limit
Counts
80 → 94
Calls
Call 1
Inputs
10
(+.f64 (*.f64 10 (pow.f64 x 2)) 10)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 10 (*.f64 10 (pow.f64 x 4))))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 10 (pow.f64 x 6)) (+.f64 10 (*.f64 10 (pow.f64 x 4)))))
(/.f64 -10 (pow.f64 x 2))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))))
(/.f64 -10 (pow.f64 x 2))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))))
(log.f64 10)
(+.f64 (log.f64 10) (pow.f64 x 2))
(+.f64 (log.f64 10) (+.f64 (pow.f64 x 2) (*.f64 1/2 (pow.f64 x 4))))
(+.f64 (log.f64 10) (+.f64 (pow.f64 x 2) (+.f64 (*.f64 1/2 (pow.f64 x 4)) (*.f64 1/3 (pow.f64 x 6)))))
(+.f64 (log.f64 -10) (*.f64 2 (log.f64 (/.f64 1 x))))
(+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (log.f64 -10) (*.f64 2 (log.f64 (/.f64 1 x)))))
(+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 4))) (+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (log.f64 -10) (*.f64 2 (log.f64 (/.f64 1 x))))))
(+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 4))) (+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 x 6))) (+.f64 (log.f64 -10) (*.f64 2 (log.f64 (/.f64 1 x)))))))
(+.f64 (*.f64 2 (log.f64 (/.f64 -1 x))) (log.f64 -10))
(+.f64 (*.f64 2 (log.f64 (/.f64 -1 x))) (+.f64 (/.f64 1 (pow.f64 x 2)) (log.f64 -10)))
(+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 2 (log.f64 (/.f64 -1 x))) (+.f64 (/.f64 1 (pow.f64 x 2)) (log.f64 -10))))
(+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 2 (log.f64 (/.f64 -1 x))) (+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 x 6))) (log.f64 -10)))))
Outputs
10
(+.f64 (*.f64 10 (pow.f64 x 2)) 10)
(fma.f64 10 (*.f64 x x) 10)
(*.f64 10 (fma.f64 x x 1))
(fma.f64 x (*.f64 10 x) 10)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 10 (*.f64 10 (pow.f64 x 4))))
(+.f64 (fma.f64 10 (*.f64 x x) 10) (*.f64 10 (pow.f64 x 4)))
(fma.f64 10 (*.f64 x x) (fma.f64 10 (pow.f64 x 4) 10))
(*.f64 10 (+.f64 (fma.f64 x x 1) (pow.f64 x 4)))
(*.f64 10 (+.f64 (pow.f64 x 4) (fma.f64 x x 1)))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 10 (pow.f64 x 6)) (+.f64 10 (*.f64 10 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 10 (pow.f64 x 6) (+.f64 10 (*.f64 10 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 10 (pow.f64 x 6) (fma.f64 10 (pow.f64 x 4) 10)))
(fma.f64 10 (fma.f64 x x (pow.f64 x 6)) (fma.f64 10 (pow.f64 x 4) 10))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (*.f64 x x))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (/.f64 10 (*.f64 x x))))
(+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x)))
(-.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 10 (*.f64 x x)))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6)))))
(-.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))))
(+.f64 (-.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 10 (*.f64 x x))) (/.f64 -10 (pow.f64 x 6)))
(+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x))) (/.f64 -10 (pow.f64 x 6)))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))) (/.f64 10 (pow.f64 x 8)))))
(-.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 10 (pow.f64 x 6)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 8)))))
(+.f64 (+.f64 (-.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 10 (*.f64 x x))) (/.f64 -10 (pow.f64 x 6))) (/.f64 -10 (pow.f64 x 8)))
(+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x))) (+.f64 (/.f64 -10 (pow.f64 x 6)) (/.f64 -10 (pow.f64 x 8))))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (*.f64 x x))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (/.f64 10 (*.f64 x x))))
(+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x)))
(-.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 10 (*.f64 x x)))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6)))))
(-.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))))
(+.f64 (-.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 10 (*.f64 x x))) (/.f64 -10 (pow.f64 x 6)))
(+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x))) (/.f64 -10 (pow.f64 x 6)))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))) (/.f64 10 (pow.f64 x 8)))))
(-.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 10 (pow.f64 x 6)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 8)))))
(+.f64 (+.f64 (-.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 10 (*.f64 x x))) (/.f64 -10 (pow.f64 x 6))) (/.f64 -10 (pow.f64 x 8)))
(+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x))) (+.f64 (/.f64 -10 (pow.f64 x 6)) (/.f64 -10 (pow.f64 x 8))))
(log.f64 10)
(+.f64 (log.f64 10) (pow.f64 x 2))
(+.f64 (*.f64 x x) (log.f64 10))
(fma.f64 x x (log.f64 10))
(+.f64 (log.f64 10) (+.f64 (pow.f64 x 2) (*.f64 1/2 (pow.f64 x 4))))
(+.f64 (log.f64 10) (+.f64 (*.f64 x x) (*.f64 (pow.f64 x 4) 1/2)))
(+.f64 (log.f64 10) (fma.f64 x x (*.f64 (pow.f64 x 4) 1/2)))
(fma.f64 x x (fma.f64 (pow.f64 x 4) 1/2 (log.f64 10)))
(fma.f64 (pow.f64 x 4) 1/2 (fma.f64 x x (log.f64 10)))
(+.f64 (log.f64 10) (+.f64 (pow.f64 x 2) (+.f64 (*.f64 1/2 (pow.f64 x 4)) (*.f64 1/3 (pow.f64 x 6)))))
(+.f64 (log.f64 10) (+.f64 (*.f64 x x) (fma.f64 1/2 (pow.f64 x 4) (*.f64 (pow.f64 x 6) 1/3))))
(+.f64 (fma.f64 x x (log.f64 10)) (fma.f64 (pow.f64 x 6) 1/3 (*.f64 (pow.f64 x 4) 1/2)))
(+.f64 (log.f64 10) (fma.f64 x x (fma.f64 (pow.f64 x 6) 1/3 (*.f64 (pow.f64 x 4) 1/2))))
(+.f64 (log.f64 10) (fma.f64 x x (fma.f64 (pow.f64 x 4) 1/2 (*.f64 (pow.f64 x 6) 1/3))))
(+.f64 (log.f64 -10) (*.f64 2 (log.f64 (/.f64 1 x))))
(+.f64 (log.f64 -10) (*.f64 2 (neg.f64 (log.f64 x))))
(fma.f64 2 (neg.f64 (log.f64 x)) (log.f64 -10))
(+.f64 (log.f64 -10) (*.f64 (log.f64 x) -2))
(+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (log.f64 -10) (*.f64 2 (log.f64 (/.f64 1 x)))))
(+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (log.f64 -10) (*.f64 2 (neg.f64 (log.f64 x)))))
(+.f64 (/.f64 1 (*.f64 x x)) (fma.f64 2 (neg.f64 (log.f64 x)) (log.f64 -10)))
(+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (log.f64 -10) (*.f64 (log.f64 x) -2)))
(+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 4))) (+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (log.f64 -10) (*.f64 2 (log.f64 (/.f64 1 x))))))
(+.f64 (+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (log.f64 -10) (*.f64 2 (neg.f64 (log.f64 x))))) (/.f64 1/2 (pow.f64 x 4)))
(+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (fma.f64 2 (neg.f64 (log.f64 x)) (log.f64 -10)) (/.f64 1/2 (pow.f64 x 4))))
(+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (log.f64 -10) (+.f64 (*.f64 (log.f64 x) -2) (/.f64 1/2 (pow.f64 x 4)))))
(+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 4))) (+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 x 6))) (+.f64 (log.f64 -10) (*.f64 2 (log.f64 (/.f64 1 x)))))))
(+.f64 (/.f64 1/2 (pow.f64 x 4)) (+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (+.f64 (log.f64 -10) (*.f64 2 (neg.f64 (log.f64 x)))) (/.f64 1/3 (pow.f64 x 6)))))
(+.f64 (+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (fma.f64 2 (neg.f64 (log.f64 x)) (log.f64 -10)) (/.f64 1/2 (pow.f64 x 4)))) (/.f64 1/3 (pow.f64 x 6)))
(+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (*.f64 (log.f64 x) -2) (+.f64 (log.f64 -10) (+.f64 (/.f64 1/3 (pow.f64 x 6)) (/.f64 1/2 (pow.f64 x 4))))))
(+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (log.f64 -10) (+.f64 (/.f64 1/2 (pow.f64 x 4)) (+.f64 (*.f64 (log.f64 x) -2) (/.f64 1/3 (pow.f64 x 6))))))
(+.f64 (*.f64 2 (log.f64 (/.f64 -1 x))) (log.f64 -10))
(fma.f64 2 (log.f64 (/.f64 -1 x)) (log.f64 -10))
(+.f64 (*.f64 2 (log.f64 (/.f64 -1 x))) (+.f64 (/.f64 1 (pow.f64 x 2)) (log.f64 -10)))
(fma.f64 2 (log.f64 (/.f64 -1 x)) (+.f64 (/.f64 1 (*.f64 x x)) (log.f64 -10)))
(+.f64 (/.f64 1 (*.f64 x x)) (fma.f64 2 (log.f64 (/.f64 -1 x)) (log.f64 -10)))
(+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 2 (log.f64 (/.f64 -1 x))) (+.f64 (/.f64 1 (pow.f64 x 2)) (log.f64 -10))))
(+.f64 (/.f64 1/2 (pow.f64 x 4)) (fma.f64 2 (log.f64 (/.f64 -1 x)) (+.f64 (/.f64 1 (*.f64 x x)) (log.f64 -10))))
(+.f64 (/.f64 1/2 (pow.f64 x 4)) (+.f64 (/.f64 1 (*.f64 x x)) (fma.f64 2 (log.f64 (/.f64 -1 x)) (log.f64 -10))))
(+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (log.f64 -10) (fma.f64 2 (log.f64 (/.f64 -1 x)) (/.f64 1/2 (pow.f64 x 4)))))
(+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 1/2 (pow.f64 x 4)) (fma.f64 2 (log.f64 (/.f64 -1 x)) (log.f64 -10))))
(+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 2 (log.f64 (/.f64 -1 x))) (+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 x 6))) (log.f64 -10)))))
(+.f64 (/.f64 1/2 (pow.f64 x 4)) (fma.f64 2 (log.f64 (/.f64 -1 x)) (+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (log.f64 -10) (/.f64 1/3 (pow.f64 x 6))))))
(+.f64 (/.f64 1/2 (pow.f64 x 4)) (+.f64 (+.f64 (/.f64 1 (*.f64 x x)) (fma.f64 2 (log.f64 (/.f64 -1 x)) (log.f64 -10))) (/.f64 1/3 (pow.f64 x 6))))
(+.f64 (log.f64 -10) (+.f64 (/.f64 1/2 (pow.f64 x 4)) (+.f64 (/.f64 1/3 (pow.f64 x 6)) (fma.f64 2 (log.f64 (/.f64 -1 x)) (/.f64 1 (*.f64 x x))))))
(+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 1/2 (pow.f64 x 4)) (+.f64 (/.f64 1/3 (pow.f64 x 6)) (fma.f64 2 (log.f64 (/.f64 -1 x)) (log.f64 -10)))))

localize16.0ms (0.2%)

Local error

Found 3 expressions with local error:

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

Compiled 31 to 22 computations (29% saved)

series12.0ms (0.2%)

Counts
2 → 8
Calls

6 calls:

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

rewrite68.0ms (0.9%)

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

simplify63.0ms (0.9%)

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

eval252.0ms (3.5%)

Compiler

Compiled 7102 to 5278 computations (25.7% saved)

prune69.0ms (1%)

Pruning

19 alts after pruning (12 fresh and 7 done)

PrunedKeptTotal
New43810448
Fresh325
Picked011
Done066
Total44119460
Error
0.0b
Counts
460 → 19
Alt Table
Click to see full alt table
StatusErrorProgram
0.4b
(/.f64 1 (*.f64 (fma.f64 x x -1) -1/10))
7.8b
(/.f64 10 (-.f64 1 (*.f64 x x)))
1.7b
(pow.f64 (/.f64 (cbrt.f64 -10) (cbrt.f64 (fma.f64 x x -1))) 3)
60.8b
(/.f64 -10 (*.f64 x x))
0.6b
(*.f64 (cbrt.f64 (pow.f64 (/.f64 1 (fma.f64 x x -1)) 3)) -10)
7.8b
(*.f64 (/.f64 1 (-.f64 1 (*.f64 x x))) 10)
45.2b
(*.f64 (sqrt.f64 (pow.f64 (fma.f64 x x -1) -2)) -10)
18.6b
(pow.f64 (sqrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2)
1.3b
(pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 3)
60.8b
(/.f64 (/.f64 -10 x) x)
7.8b
(/.f64 10 (/.f64 (-.f64 1 (*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x)))) (-.f64 1 (*.f64 x (neg.f64 x)))))
57.5b
10
19.2b
(*.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)))
0.2b
(/.f64 -10 (fma.f64 x x -1))
19.5b
(exp.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1))))
0.4b
(/.f64 1 (/.f64 (fma.f64 x x -1) -10))
45.9b
(*.f64 (pow.f64 (pow.f64 (fma.f64 x x -1) -1/2) 2) -10)
18.2b
(sqrt.f64 (/.f64 100 (pow.f64 (fma.f64 x x -1) 2)))
0.4b
(*.f64 (/.f64 1 (fma.f64 x x -1)) -10)
Compiler

Compiled 324 to 250 computations (22.8% saved)

localize10.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

rewrite54.0ms (0.7%)

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

simplify51.0ms (0.7%)

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

localize5.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 11 to 7 computations (36.4% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

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

rewrite44.0ms (0.6%)

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

Useful iterations: 0 (0.0ms)

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

simplify157.0ms (2.2%)

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

Useful iterations: 0 (0.0ms)

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

localize10.0ms (0.1%)

Local error

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

series2.0ms (0%)

Counts
2 → 24
Calls

6 calls:

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

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

simplify50.0ms (0.7%)

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)

localize14.0ms (0.2%)

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)

series3.0ms (0%)

Counts
3 → 36
Calls

9 calls:

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

rewrite57.0ms (0.8%)

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

simplify64.0ms (0.9%)

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

localize17.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(pow.f64 (fma.f64 x x -1) -1/2)
0.1b
(*.f64 (pow.f64 (pow.f64 (fma.f64 x x -1) -1/2) 2) -10)
0.1b
(pow.f64 (pow.f64 (fma.f64 x x -1) -1/2) 2)
Compiler

Compiled 34 to 25 computations (26.5% saved)

series5.0ms (0.1%)

Counts
3 → 36
Calls

9 calls:

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

rewrite56.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
810×pow1_binary64
755×add-log-exp_binary64
755×log1p-expm1-u_binary64
755×expm1-log1p-u_binary64
739×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify53.0ms (0.7%)

Algorithm
egg-herbie
Rules
562×fma-neg_binary64
515×associate-/r*_binary64
460×fma-def_binary64
392×distribute-lft-out_binary64
383×distribute-rgt-out_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0100715
1287649
2890634
33514627
Stop Event
node limit
Counts
83 → 98
Calls
Call 1
Inputs
-1
(-.f64 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (pow.f64 x 2)) 1)
(-.f64 (+.f64 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (pow.f64 x 2)) (*.f64 (+.f64 (*.f64 3/4 (pow.f64 (sqrt.f64 -1) 2)) (*.f64 1/4 (pow.f64 (sqrt.f64 -1) 2))) (pow.f64 x 4))) 1)
(-.f64 (+.f64 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (pow.f64 x 2)) (+.f64 (*.f64 (+.f64 (*.f64 5/8 (pow.f64 (sqrt.f64 -1) 2)) (*.f64 3/8 (pow.f64 (sqrt.f64 -1) 2))) (pow.f64 x 6)) (*.f64 (+.f64 (*.f64 3/4 (pow.f64 (sqrt.f64 -1) 2)) (*.f64 1/4 (pow.f64 (sqrt.f64 -1) 2))) (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)))))))
(sqrt.f64 -1)
(+.f64 (sqrt.f64 -1) (*.f64 1/2 (*.f64 (sqrt.f64 -1) (pow.f64 x 2))))
(+.f64 (sqrt.f64 -1) (+.f64 (*.f64 3/8 (*.f64 (sqrt.f64 -1) (pow.f64 x 4))) (*.f64 1/2 (*.f64 (sqrt.f64 -1) (pow.f64 x 2)))))
(+.f64 (sqrt.f64 -1) (+.f64 (*.f64 3/8 (*.f64 (sqrt.f64 -1) (pow.f64 x 4))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 -1) (pow.f64 x 2))) (*.f64 5/16 (*.f64 (sqrt.f64 -1) (pow.f64 x 6))))))
(/.f64 1 x)
(+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 3))) (/.f64 1 x))
(+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 3))) (+.f64 (/.f64 1 x) (*.f64 3/8 (/.f64 1 (pow.f64 x 5)))))
(+.f64 (*.f64 5/16 (/.f64 1 (pow.f64 x 7))) (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 3))) (+.f64 (/.f64 1 x) (*.f64 3/8 (/.f64 1 (pow.f64 x 5))))))
(/.f64 -1 x)
(neg.f64 (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 3))) (/.f64 1 x)))
(neg.f64 (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 3))) (+.f64 (/.f64 1 x) (*.f64 3/8 (/.f64 1 (pow.f64 x 5))))))
(neg.f64 (+.f64 (*.f64 5/16 (/.f64 1 (pow.f64 x 7))) (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 3))) (+.f64 (/.f64 1 x) (*.f64 3/8 (/.f64 1 (pow.f64 x 5)))))))
Outputs
-1
(-.f64 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (pow.f64 x 2)) 1)
(fma.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 x x) -1)
(fma.f64 -1 (*.f64 x x) -1)
(fma.f64 x (neg.f64 x) -1)
(-.f64 -1 (*.f64 x x))
(-.f64 (+.f64 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (pow.f64 x 2)) (*.f64 (+.f64 (*.f64 3/4 (pow.f64 (sqrt.f64 -1) 2)) (*.f64 1/4 (pow.f64 (sqrt.f64 -1) 2))) (pow.f64 x 4))) 1)
(+.f64 (fma.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 x x) (*.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 -1) 2) 1))) -1)
(fma.f64 -1 (*.f64 x x) (fma.f64 -1 (pow.f64 x 4) -1))
(fma.f64 -1 (pow.f64 x 4) (fma.f64 x (neg.f64 x) -1))
(-.f64 (-.f64 -1 (*.f64 x x)) (pow.f64 x 4))
(-.f64 (+.f64 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (pow.f64 x 2)) (+.f64 (*.f64 (+.f64 (*.f64 5/8 (pow.f64 (sqrt.f64 -1) 2)) (*.f64 3/8 (pow.f64 (sqrt.f64 -1) 2))) (pow.f64 x 6)) (*.f64 (+.f64 (*.f64 3/4 (pow.f64 (sqrt.f64 -1) 2)) (*.f64 1/4 (pow.f64 (sqrt.f64 -1) 2))) (pow.f64 x 4)))) 1)
(+.f64 (fma.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 x x) (fma.f64 (*.f64 (pow.f64 (sqrt.f64 -1) 2) 1) (pow.f64 x 6) (*.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 -1) 2) 1)))) -1)
(+.f64 -1 (fma.f64 -1 (*.f64 x x) (*.f64 -1 (+.f64 (pow.f64 x 4) (pow.f64 x 6)))))
(fma.f64 -1 (+.f64 (pow.f64 x 4) (pow.f64 x 6)) (fma.f64 x (neg.f64 x) -1))
(+.f64 -1 (-.f64 (neg.f64 (fma.f64 x x (pow.f64 x 6))) (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 (*.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 1 (pow.f64 x 8)) (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 (pow.f64 x 6)))))
(+.f64 (+.f64 (/.f64 1 (pow.f64 x 4)) (/.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 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 6))) (/.f64 1 (pow.f64 x 8))))
(+.f64 (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 8))) (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 6))))
(+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (+.f64 (/.f64 1 (pow.f64 x 6)) (/.f64 1 (pow.f64 x 8))) (/.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 (*.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 1 (pow.f64 x 8)) (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 (pow.f64 x 6)))))
(+.f64 (+.f64 (/.f64 1 (pow.f64 x 4)) (/.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 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 6))) (/.f64 1 (pow.f64 x 8))))
(+.f64 (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 8))) (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 6))))
(+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (+.f64 (/.f64 1 (pow.f64 x 6)) (/.f64 1 (pow.f64 x 8))) (/.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 (fma.f64 x x 1) (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 (/.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 (/.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 (/.f64 (/.f64 10 x) x) (/.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 -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 (/.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 (/.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 (/.f64 (/.f64 10 x) x) (/.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 -10 (*.f64 x x))) (-.f64 (/.f64 -10 (pow.f64 x 6)) (/.f64 10 (pow.f64 x 8))))
(sqrt.f64 -1)
(+.f64 (sqrt.f64 -1) (*.f64 1/2 (*.f64 (sqrt.f64 -1) (pow.f64 x 2))))
(+.f64 (sqrt.f64 -1) (*.f64 (*.f64 1/2 (sqrt.f64 -1)) (*.f64 x x)))
(fma.f64 1/2 (*.f64 (sqrt.f64 -1) (*.f64 x x)) (sqrt.f64 -1))
(*.f64 (+.f64 (*.f64 x (*.f64 x 1/2)) 1) (sqrt.f64 -1))
(*.f64 (sqrt.f64 -1) (+.f64 (*.f64 x (*.f64 x 1/2)) 1))
(+.f64 (sqrt.f64 -1) (+.f64 (*.f64 3/8 (*.f64 (sqrt.f64 -1) (pow.f64 x 4))) (*.f64 1/2 (*.f64 (sqrt.f64 -1) (pow.f64 x 2)))))
(+.f64 (sqrt.f64 -1) (fma.f64 3/8 (*.f64 (sqrt.f64 -1) (pow.f64 x 4)) (*.f64 (*.f64 1/2 (sqrt.f64 -1)) (*.f64 x x))))
(+.f64 (sqrt.f64 -1) (fma.f64 3/8 (*.f64 (sqrt.f64 -1) (pow.f64 x 4)) (*.f64 1/2 (*.f64 (sqrt.f64 -1) (*.f64 x x)))))
(+.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 -1) (+.f64 (*.f64 (pow.f64 x 4) 3/8) (*.f64 x (*.f64 x 1/2)))))
(*.f64 (sqrt.f64 -1) (+.f64 1 (*.f64 (*.f64 x x) (+.f64 1/2 (*.f64 3/8 (*.f64 x x))))))
(+.f64 (sqrt.f64 -1) (+.f64 (*.f64 3/8 (*.f64 (sqrt.f64 -1) (pow.f64 x 4))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 -1) (pow.f64 x 2))) (*.f64 5/16 (*.f64 (sqrt.f64 -1) (pow.f64 x 6))))))
(+.f64 (sqrt.f64 -1) (fma.f64 3/8 (*.f64 (sqrt.f64 -1) (pow.f64 x 4)) (fma.f64 1/2 (*.f64 (sqrt.f64 -1) (*.f64 x x)) (*.f64 5/16 (*.f64 (sqrt.f64 -1) (pow.f64 x 6))))))
(+.f64 (sqrt.f64 -1) (fma.f64 3/8 (*.f64 (sqrt.f64 -1) (pow.f64 x 4)) (fma.f64 1/2 (*.f64 (sqrt.f64 -1) (*.f64 x x)) (*.f64 (sqrt.f64 -1) (*.f64 (pow.f64 x 6) 5/16)))))
(+.f64 (sqrt.f64 -1) (fma.f64 (sqrt.f64 -1) (*.f64 x (*.f64 x 1/2)) (*.f64 (sqrt.f64 -1) (+.f64 (*.f64 (pow.f64 x 4) 3/8) (*.f64 (pow.f64 x 6) 5/16)))))
(+.f64 (sqrt.f64 -1) (*.f64 (sqrt.f64 -1) (+.f64 (*.f64 x (*.f64 x 1/2)) (*.f64 (pow.f64 x 4) (+.f64 3/8 (*.f64 5/16 (*.f64 x x)))))))
(/.f64 1 x)
(+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 3))) (/.f64 1 x))
(+.f64 (/.f64 1 x) (/.f64 1/2 (pow.f64 x 3)))
(+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 3))) (+.f64 (/.f64 1 x) (*.f64 3/8 (/.f64 1 (pow.f64 x 5)))))
(+.f64 (/.f64 1/2 (pow.f64 x 3)) (+.f64 (/.f64 1 x) (/.f64 3/8 (pow.f64 x 5))))
(+.f64 (/.f64 1 x) (+.f64 (/.f64 3/8 (pow.f64 x 5)) (/.f64 1/2 (pow.f64 x 3))))
(+.f64 (/.f64 1 x) (+.f64 (/.f64 1/2 (pow.f64 x 3)) (/.f64 3/8 (pow.f64 x 5))))
(+.f64 (/.f64 1 x) (-.f64 (/.f64 1/2 (pow.f64 x 3)) (/.f64 -3/8 (pow.f64 x 5))))
(+.f64 (*.f64 5/16 (/.f64 1 (pow.f64 x 7))) (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 3))) (+.f64 (/.f64 1 x) (*.f64 3/8 (/.f64 1 (pow.f64 x 5))))))
(+.f64 (+.f64 (/.f64 5/16 (pow.f64 x 7)) (/.f64 1/2 (pow.f64 x 3))) (+.f64 (/.f64 1 x) (/.f64 3/8 (pow.f64 x 5))))
(+.f64 (+.f64 (/.f64 5/16 (pow.f64 x 7)) (+.f64 (/.f64 1 x) (/.f64 1/2 (pow.f64 x 3)))) (/.f64 3/8 (pow.f64 x 5)))
(+.f64 (/.f64 1 x) (+.f64 (/.f64 5/16 (pow.f64 x 7)) (+.f64 (/.f64 1/2 (pow.f64 x 3)) (/.f64 3/8 (pow.f64 x 5)))))
(+.f64 (/.f64 1 x) (+.f64 (/.f64 5/16 (pow.f64 x 7)) (-.f64 (/.f64 1/2 (pow.f64 x 3)) (/.f64 -3/8 (pow.f64 x 5)))))
(/.f64 -1 x)
(neg.f64 (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 3))) (/.f64 1 x)))
(neg.f64 (+.f64 (/.f64 1 x) (/.f64 1/2 (pow.f64 x 3))))
(-.f64 (/.f64 -1 x) (/.f64 1/2 (pow.f64 x 3)))
(+.f64 (/.f64 -1/2 (pow.f64 x 3)) (/.f64 -1 x))
(neg.f64 (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 3))) (+.f64 (/.f64 1 x) (*.f64 3/8 (/.f64 1 (pow.f64 x 5))))))
(neg.f64 (+.f64 (/.f64 1/2 (pow.f64 x 3)) (+.f64 (/.f64 1 x) (/.f64 3/8 (pow.f64 x 5)))))
(-.f64 (-.f64 (/.f64 -1 x) (/.f64 1/2 (pow.f64 x 3))) (/.f64 3/8 (pow.f64 x 5)))
(+.f64 (+.f64 (/.f64 -1/2 (pow.f64 x 3)) (/.f64 -1 x)) (/.f64 -3/8 (pow.f64 x 5)))
(neg.f64 (+.f64 (*.f64 5/16 (/.f64 1 (pow.f64 x 7))) (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 3))) (+.f64 (/.f64 1 x) (*.f64 3/8 (/.f64 1 (pow.f64 x 5)))))))
(neg.f64 (+.f64 (+.f64 (/.f64 5/16 (pow.f64 x 7)) (/.f64 1/2 (pow.f64 x 3))) (+.f64 (/.f64 1 x) (/.f64 3/8 (pow.f64 x 5)))))
(+.f64 (-.f64 (-.f64 (/.f64 -1 x) (/.f64 1/2 (pow.f64 x 3))) (/.f64 3/8 (pow.f64 x 5))) (/.f64 -5/16 (pow.f64 x 7)))
(+.f64 (+.f64 (/.f64 -1/2 (pow.f64 x 3)) (/.f64 -1 x)) (-.f64 (/.f64 -3/8 (pow.f64 x 5)) (/.f64 5/16 (pow.f64 x 7))))
(+.f64 (+.f64 (/.f64 -1/2 (pow.f64 x 3)) (/.f64 -1 x)) (+.f64 (/.f64 -5/16 (pow.f64 x 7)) (/.f64 -3/8 (pow.f64 x 5))))

eval118.0ms (1.6%)

Compiler

Compiled 4644 to 3676 computations (20.8% saved)

prune61.0ms (0.8%)

Pruning

19 alts after pruning (9 fresh and 10 done)

PrunedKeptTotal
New3564360
Fresh257
Picked101
Done11011
Total36019379
Error
0.0b
Counts
379 → 19
Alt Table
Click to see full alt table
StatusErrorProgram
0.4b
(/.f64 1 (*.f64 (fma.f64 x x -1) -1/10))
1.3b
(*.f64 (pow.f64 (cbrt.f64 (/.f64 1 (fma.f64 x x -1))) 3) -10)
7.8b
(/.f64 10 (-.f64 1 (*.f64 x x)))
1.7b
(pow.f64 (/.f64 (cbrt.f64 -10) (cbrt.f64 (fma.f64 x x -1))) 3)
60.8b
(/.f64 -10 (*.f64 x x))
7.8b
(*.f64 (/.f64 1 (-.f64 1 (*.f64 x x))) 10)
18.6b
(pow.f64 (sqrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2)
1.3b
(pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 3)
8.3b
(/.f64 1 (+.f64 (*.f64 (*.f64 x x) -1/10) 1/10))
60.8b
(/.f64 (/.f64 -10 x) x)
7.8b
(/.f64 10 (/.f64 (-.f64 1 (*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x)))) (-.f64 1 (*.f64 x (neg.f64 x)))))
57.5b
10
19.2b
(*.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)))
0.6b
(*.f64 (cbrt.f64 (pow.f64 (fma.f64 x x -1) -3)) -10)
0.4b
(*.f64 (/.f64 1 (fma.f64 x x -1)) -10)
18.2b
(sqrt.f64 (*.f64 (pow.f64 (fma.f64 x x -1) -2) 100))
0.2b
(/.f64 -10 (fma.f64 x x -1))
19.5b
(exp.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1))))
0.4b
(/.f64 1 (/.f64 (fma.f64 x x -1) -10))
Compiler

Compiled 298 to 230 computations (22.8% saved)

localize15.0ms (0.2%)

Local error

Found 3 expressions with local error:

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

Compiled 31 to 22 computations (29% saved)

series4.0ms (0.1%)

Counts
3 → 36
Calls

9 calls:

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

rewrite61.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
747×pow1_binary64
702×add-log-exp_binary64
702×log1p-expm1-u_binary64
702×expm1-log1p-u_binary64
687×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify81.0ms (1.1%)

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
83 → 90
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))))

localize19.0ms (0.3%)

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)
7.9b
(-.f64 1 (*.f64 x x))
Compiler

Compiled 28 to 16 computations (42.9% saved)

series3.0ms (0%)

Counts
2 → 24
Calls

6 calls:

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

rewrite54.0ms (0.7%)

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

simplify58.0ms (0.8%)

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

localize15.0ms (0.2%)

Local error

Found 3 expressions with local error:

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

Compiled 32 to 23 computations (28.1% saved)

series4.0ms (0.1%)

Counts
2 → 24
Calls

6 calls:

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

rewrite54.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
736×pow1_binary64
688×add-log-exp_binary64
688×log1p-expm1-u_binary64
688×expm1-log1p-u_binary64
673×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify57.0ms (0.8%)

Algorithm
egg-herbie
Rules
737×fma-def_binary64
720×associate-/l*_binary64
559×distribute-rgt-out_binary64
446×unswap-sqr_binary64
419×distribute-lft-out_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
060428
1171422
2431413
31168413
44459410
Stop Event
node limit
Counts
60 → 65
Calls
Call 1
Inputs
100
(+.f64 100 (*.f64 200 (pow.f64 x 2)))
(+.f64 100 (+.f64 (*.f64 300 (pow.f64 x 4)) (*.f64 200 (pow.f64 x 2))))
(+.f64 100 (+.f64 (*.f64 400 (pow.f64 x 6)) (+.f64 (*.f64 300 (pow.f64 x 4)) (*.f64 200 (pow.f64 x 2)))))
(/.f64 100 (pow.f64 x 4))
(+.f64 (*.f64 100 (/.f64 1 (pow.f64 x 4))) (*.f64 200 (/.f64 1 (pow.f64 x 6))))
(+.f64 (*.f64 100 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 200 (/.f64 1 (pow.f64 x 6))) (*.f64 300 (/.f64 1 (pow.f64 x 8)))))
(+.f64 (*.f64 100 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 400 (/.f64 1 (pow.f64 x 10))) (+.f64 (*.f64 200 (/.f64 1 (pow.f64 x 6))) (*.f64 300 (/.f64 1 (pow.f64 x 8))))))
(/.f64 100 (pow.f64 x 4))
(+.f64 (*.f64 100 (/.f64 1 (pow.f64 x 4))) (*.f64 200 (/.f64 1 (pow.f64 x 6))))
(+.f64 (*.f64 100 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 200 (/.f64 1 (pow.f64 x 6))) (*.f64 300 (/.f64 1 (pow.f64 x 8)))))
(+.f64 (*.f64 100 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 400 (/.f64 1 (pow.f64 x 10))) (+.f64 (*.f64 200 (/.f64 1 (pow.f64 x 6))) (*.f64 300 (/.f64 1 (pow.f64 x 8))))))
-10
(-.f64 (*.f64 -10 (pow.f64 x 2)) 10)
(-.f64 (+.f64 (*.f64 -10 (pow.f64 x 4)) (*.f64 -10 (pow.f64 x 2))) 10)
(-.f64 (+.f64 (*.f64 -10 (pow.f64 x 4)) (+.f64 (*.f64 -10 (pow.f64 x 6)) (*.f64 -10 (pow.f64 x 2)))) 10)
(/.f64 10 (pow.f64 x 2))
(+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))
(+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
(/.f64 10 (pow.f64 x 2))
(+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))
(+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
Outputs
100
(+.f64 100 (*.f64 200 (pow.f64 x 2)))
(+.f64 100 (*.f64 200 (*.f64 x x)))
(fma.f64 200 (*.f64 x x) 100)
(+.f64 100 (+.f64 (*.f64 300 (pow.f64 x 4)) (*.f64 200 (pow.f64 x 2))))
(+.f64 100 (fma.f64 300 (pow.f64 x 4) (*.f64 200 (*.f64 x x))))
(+.f64 (fma.f64 200 (*.f64 x x) 100) (*.f64 300 (pow.f64 x 4)))
(fma.f64 200 (*.f64 x x) (fma.f64 300 (pow.f64 x 4) 100))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 300) 200) 100)
(+.f64 100 (+.f64 (*.f64 400 (pow.f64 x 6)) (+.f64 (*.f64 300 (pow.f64 x 4)) (*.f64 200 (pow.f64 x 2)))))
(+.f64 100 (fma.f64 400 (pow.f64 x 6) (fma.f64 300 (pow.f64 x 4) (*.f64 200 (*.f64 x x)))))
(+.f64 (fma.f64 400 (pow.f64 x 6) (*.f64 300 (pow.f64 x 4))) (fma.f64 200 (*.f64 x x) 100))
(fma.f64 400 (pow.f64 x 6) (fma.f64 200 (*.f64 x x) (fma.f64 300 (pow.f64 x 4) 100)))
(fma.f64 200 (*.f64 x x) (fma.f64 400 (pow.f64 x 6) (fma.f64 300 (pow.f64 x 4) 100)))
(/.f64 100 (pow.f64 x 4))
(+.f64 (*.f64 100 (/.f64 1 (pow.f64 x 4))) (*.f64 200 (/.f64 1 (pow.f64 x 6))))
(+.f64 (/.f64 100 (pow.f64 x 4)) (/.f64 200 (pow.f64 x 6)))
(+.f64 (*.f64 100 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 200 (/.f64 1 (pow.f64 x 6))) (*.f64 300 (/.f64 1 (pow.f64 x 8)))))
(+.f64 (/.f64 100 (pow.f64 x 4)) (+.f64 (/.f64 200 (pow.f64 x 6)) (/.f64 300 (pow.f64 x 8))))
(+.f64 (/.f64 200 (pow.f64 x 6)) (+.f64 (/.f64 100 (pow.f64 x 4)) (/.f64 300 (pow.f64 x 8))))
(+.f64 (*.f64 100 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 400 (/.f64 1 (pow.f64 x 10))) (+.f64 (*.f64 200 (/.f64 1 (pow.f64 x 6))) (*.f64 300 (/.f64 1 (pow.f64 x 8))))))
(+.f64 (/.f64 100 (pow.f64 x 4)) (+.f64 (+.f64 (/.f64 400 (pow.f64 x 10)) (/.f64 200 (pow.f64 x 6))) (/.f64 300 (pow.f64 x 8))))
(+.f64 (+.f64 (/.f64 200 (pow.f64 x 6)) (/.f64 300 (pow.f64 x 8))) (+.f64 (/.f64 100 (pow.f64 x 4)) (/.f64 400 (pow.f64 x 10))))
(+.f64 (/.f64 100 (pow.f64 x 4)) (+.f64 (/.f64 200 (pow.f64 x 6)) (+.f64 (/.f64 300 (pow.f64 x 8)) (/.f64 400 (pow.f64 x 10)))))
(+.f64 (/.f64 200 (pow.f64 x 6)) (+.f64 (/.f64 100 (pow.f64 x 4)) (+.f64 (/.f64 300 (pow.f64 x 8)) (/.f64 400 (pow.f64 x 10)))))
(/.f64 100 (pow.f64 x 4))
(+.f64 (*.f64 100 (/.f64 1 (pow.f64 x 4))) (*.f64 200 (/.f64 1 (pow.f64 x 6))))
(+.f64 (/.f64 100 (pow.f64 x 4)) (/.f64 200 (pow.f64 x 6)))
(+.f64 (*.f64 100 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 200 (/.f64 1 (pow.f64 x 6))) (*.f64 300 (/.f64 1 (pow.f64 x 8)))))
(+.f64 (/.f64 100 (pow.f64 x 4)) (+.f64 (/.f64 200 (pow.f64 x 6)) (/.f64 300 (pow.f64 x 8))))
(+.f64 (/.f64 200 (pow.f64 x 6)) (+.f64 (/.f64 100 (pow.f64 x 4)) (/.f64 300 (pow.f64 x 8))))
(+.f64 (*.f64 100 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 400 (/.f64 1 (pow.f64 x 10))) (+.f64 (*.f64 200 (/.f64 1 (pow.f64 x 6))) (*.f64 300 (/.f64 1 (pow.f64 x 8))))))
(+.f64 (/.f64 100 (pow.f64 x 4)) (+.f64 (+.f64 (/.f64 400 (pow.f64 x 10)) (/.f64 200 (pow.f64 x 6))) (/.f64 300 (pow.f64 x 8))))
(+.f64 (+.f64 (/.f64 200 (pow.f64 x 6)) (/.f64 300 (pow.f64 x 8))) (+.f64 (/.f64 100 (pow.f64 x 4)) (/.f64 400 (pow.f64 x 10))))
(+.f64 (/.f64 100 (pow.f64 x 4)) (+.f64 (/.f64 200 (pow.f64 x 6)) (+.f64 (/.f64 300 (pow.f64 x 8)) (/.f64 400 (pow.f64 x 10)))))
(+.f64 (/.f64 200 (pow.f64 x 6)) (+.f64 (/.f64 100 (pow.f64 x 4)) (+.f64 (/.f64 300 (pow.f64 x 8)) (/.f64 400 (pow.f64 x 10)))))
-10
(-.f64 (*.f64 -10 (pow.f64 x 2)) 10)
(fma.f64 -10 (*.f64 x x) -10)
(fma.f64 (*.f64 x x) -10 -10)
(*.f64 -10 (fma.f64 x x 1))
(-.f64 (+.f64 (*.f64 -10 (pow.f64 x 4)) (*.f64 -10 (pow.f64 x 2))) 10)
(+.f64 (*.f64 -10 (+.f64 (pow.f64 x 4) (*.f64 x x))) -10)
(fma.f64 -10 (+.f64 (*.f64 x x) (pow.f64 x 4)) -10)
(fma.f64 -10 (fma.f64 x x (pow.f64 x 4)) -10)
(-.f64 (+.f64 (*.f64 -10 (pow.f64 x 4)) (+.f64 (*.f64 -10 (pow.f64 x 6)) (*.f64 -10 (pow.f64 x 2)))) 10)
(+.f64 (fma.f64 -10 (pow.f64 x 4) (*.f64 -10 (+.f64 (pow.f64 x 6) (*.f64 x x)))) -10)
(fma.f64 (pow.f64 x 4) -10 (fma.f64 -10 (+.f64 (*.f64 x x) (pow.f64 x 6)) -10))
(fma.f64 -10 (+.f64 (pow.f64 x 4) (fma.f64 x x (pow.f64 x 6))) -10)
(fma.f64 -10 (+.f64 (pow.f64 x 6) (fma.f64 x x (pow.f64 x 4))) -10)
(*.f64 (fma.f64 x x 1) (fma.f64 (pow.f64 x 4) -10 -10))
(/.f64 10 (pow.f64 x 2))
(/.f64 10 (*.f64 x x))
(+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))
(+.f64 (/.f64 10 (pow.f64 x 4)) (/.f64 10 (*.f64 x x)))
(+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))))
(+.f64 (/.f64 10 (*.f64 x x)) (+.f64 (/.f64 10 (pow.f64 x 4)) (/.f64 10 (pow.f64 x 6))))
(+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
(+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))) (/.f64 10 (pow.f64 x 8))))
(+.f64 (+.f64 (/.f64 10 (*.f64 x x)) (+.f64 (/.f64 10 (pow.f64 x 4)) (/.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 (/.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 10 (pow.f64 x 6)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 8)))))
(/.f64 10 (pow.f64 x 2))
(/.f64 10 (*.f64 x x))
(+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))
(+.f64 (/.f64 10 (pow.f64 x 4)) (/.f64 10 (*.f64 x x)))
(+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))))
(+.f64 (/.f64 10 (*.f64 x x)) (+.f64 (/.f64 10 (pow.f64 x 4)) (/.f64 10 (pow.f64 x 6))))
(+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
(+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))) (/.f64 10 (pow.f64 x 8))))
(+.f64 (+.f64 (/.f64 10 (*.f64 x x)) (+.f64 (/.f64 10 (pow.f64 x 4)) (/.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 (/.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 10 (pow.f64 x 6)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 8)))))

localize21.0ms (0.3%)

Local error

Found 4 expressions with local error:

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

Compiled 43 to 32 computations (25.6% saved)

series7.0ms (0.1%)

Counts
3 → 20
Calls

9 calls:

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

rewrite101.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
803×pow1_binary64
757×add-log-exp_binary64
755×log1p-expm1-u_binary64
755×expm1-log1p-u_binary64
741×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify56.0ms (0.8%)

Algorithm
egg-herbie
Rules
765×associate-/l*_binary64
407×distribute-rgt-in_binary64
385×fma-neg_binary64
375×fma-def_binary64
354×distribute-lft-in_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
095521
1278454
2890410
33311353
Stop Event
node limit
Counts
86 → 95
Calls
Call 1
Inputs
-1
(-.f64 (*.f64 -1 (pow.f64 x 2)) 1)
(-.f64 (+.f64 (*.f64 -1 (pow.f64 x 2)) (*.f64 (-.f64 (*.f64 (cbrt.f64 -1) (-.f64 (*.f64 1/9 (/.f64 1 (pow.f64 (cbrt.f64 -1) 4))) (*.f64 4/9 (/.f64 1 (cbrt.f64 -1))))) 4/9) (pow.f64 x 4))) 1)
(-.f64 (+.f64 (*.f64 -1 (pow.f64 x 2)) (+.f64 (*.f64 (-.f64 (+.f64 (*.f64 (cbrt.f64 -1) (+.f64 (*.f64 2/3 (/.f64 (-.f64 (*.f64 1/27 (/.f64 1 (pow.f64 (cbrt.f64 -1) 6))) 5/9) (cbrt.f64 -1))) (*.f64 4/27 (/.f64 1 (pow.f64 (cbrt.f64 -1) 4))))) (+.f64 (*.f64 1/3 (-.f64 (*.f64 1/27 (/.f64 1 (pow.f64 (cbrt.f64 -1) 6))) 5/9)) (*.f64 -1/3 (/.f64 (-.f64 (*.f64 1/9 (/.f64 1 (pow.f64 (cbrt.f64 -1) 4))) (*.f64 4/9 (/.f64 1 (cbrt.f64 -1)))) (pow.f64 (cbrt.f64 -1) 2))))) 4/27) (pow.f64 x 6)) (*.f64 (-.f64 (*.f64 (cbrt.f64 -1) (-.f64 (*.f64 1/9 (/.f64 1 (pow.f64 (cbrt.f64 -1) 4))) (*.f64 4/9 (/.f64 1 (cbrt.f64 -1))))) 4/9) (pow.f64 x 4)))) 1)
(cbrt.f64 -1)
(+.f64 (cbrt.f64 -1) (*.f64 -1/3 (/.f64 (pow.f64 x 2) (pow.f64 (cbrt.f64 -1) 2))))
(+.f64 (cbrt.f64 -1) (+.f64 (*.f64 -1/3 (/.f64 (pow.f64 x 2) (pow.f64 (cbrt.f64 -1) 2))) (*.f64 -2/9 (/.f64 (pow.f64 x 4) (pow.f64 (cbrt.f64 -1) 2)))))
(+.f64 (cbrt.f64 -1) (+.f64 (*.f64 -1/3 (/.f64 (pow.f64 x 2) (pow.f64 (cbrt.f64 -1) 2))) (+.f64 (*.f64 -2/9 (/.f64 (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) (pow.f64 x 6)) (pow.f64 (cbrt.f64 -1) 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 (*.f64 -1 (pow.f64 x 2)) 1)
(fma.f64 -1 (*.f64 x x) -1)
(fma.f64 x (neg.f64 x) -1)
(-.f64 -1 (*.f64 x x))
(-.f64 (+.f64 (*.f64 -1 (pow.f64 x 2)) (*.f64 (-.f64 (*.f64 (cbrt.f64 -1) (-.f64 (*.f64 1/9 (/.f64 1 (pow.f64 (cbrt.f64 -1) 4))) (*.f64 4/9 (/.f64 1 (cbrt.f64 -1))))) 4/9) (pow.f64 x 4))) 1)
(+.f64 (fma.f64 -1 (*.f64 x x) (*.f64 (fma.f64 (cbrt.f64 -1) (-.f64 (/.f64 1/9 (pow.f64 (cbrt.f64 -1) 4)) (/.f64 4/9 (cbrt.f64 -1))) -4/9) (pow.f64 x 4))) -1)
(fma.f64 -1 (*.f64 x x) (fma.f64 (fma.f64 (cbrt.f64 -1) (+.f64 (/.f64 1/9 (*.f64 -1 (cbrt.f64 -1))) (/.f64 -4/9 (cbrt.f64 -1))) -4/9) (pow.f64 x 4) -1))
(fma.f64 (fma.f64 (cbrt.f64 -1) (-.f64 (/.f64 -1/9 (cbrt.f64 -1)) (/.f64 4/9 (cbrt.f64 -1))) -4/9) (pow.f64 x 4) (fma.f64 x (neg.f64 x) -1))
(-.f64 (*.f64 -1 (pow.f64 x 4)) (fma.f64 x x 1))
(-.f64 (+.f64 (*.f64 -1 (pow.f64 x 2)) (+.f64 (*.f64 (-.f64 (+.f64 (*.f64 (cbrt.f64 -1) (+.f64 (*.f64 2/3 (/.f64 (-.f64 (*.f64 1/27 (/.f64 1 (pow.f64 (cbrt.f64 -1) 6))) 5/9) (cbrt.f64 -1))) (*.f64 4/27 (/.f64 1 (pow.f64 (cbrt.f64 -1) 4))))) (+.f64 (*.f64 1/3 (-.f64 (*.f64 1/27 (/.f64 1 (pow.f64 (cbrt.f64 -1) 6))) 5/9)) (*.f64 -1/3 (/.f64 (-.f64 (*.f64 1/9 (/.f64 1 (pow.f64 (cbrt.f64 -1) 4))) (*.f64 4/9 (/.f64 1 (cbrt.f64 -1)))) (pow.f64 (cbrt.f64 -1) 2))))) 4/27) (pow.f64 x 6)) (*.f64 (-.f64 (*.f64 (cbrt.f64 -1) (-.f64 (*.f64 1/9 (/.f64 1 (pow.f64 (cbrt.f64 -1) 4))) (*.f64 4/9 (/.f64 1 (cbrt.f64 -1))))) 4/9) (pow.f64 x 4)))) 1)
(+.f64 (fma.f64 -1 (*.f64 x x) (fma.f64 (+.f64 (fma.f64 (cbrt.f64 -1) (fma.f64 2/3 (/.f64 (+.f64 (/.f64 1/27 (pow.f64 (cbrt.f64 -1) 6)) -5/9) (cbrt.f64 -1)) (/.f64 4/27 (pow.f64 (cbrt.f64 -1) 4))) (fma.f64 1/3 (+.f64 (/.f64 1/27 (pow.f64 (cbrt.f64 -1) 6)) -5/9) (/.f64 (*.f64 -1/3 (-.f64 (/.f64 1/9 (pow.f64 (cbrt.f64 -1) 4)) (/.f64 4/9 (cbrt.f64 -1)))) (pow.f64 (cbrt.f64 -1) 2)))) -4/27) (pow.f64 x 6) (*.f64 (fma.f64 (cbrt.f64 -1) (-.f64 (/.f64 1/9 (pow.f64 (cbrt.f64 -1) 4)) (/.f64 4/9 (cbrt.f64 -1))) -4/9) (pow.f64 x 4)))) -1)
(+.f64 -1 (-.f64 (fma.f64 (fma.f64 (cbrt.f64 -1) (+.f64 (/.f64 1/9 (*.f64 -1 (cbrt.f64 -1))) (/.f64 -4/9 (cbrt.f64 -1))) -4/9) (pow.f64 x 4) (*.f64 (fma.f64 (cbrt.f64 -1) (+.f64 (/.f64 -28/81 (cbrt.f64 -1)) (/.f64 4/27 (*.f64 -1 (cbrt.f64 -1)))) (+.f64 (*.f64 -1/3 (+.f64 (/.f64 (/.f64 1/9 (*.f64 -1 (cbrt.f64 -1))) (pow.f64 (cbrt.f64 -1) 2)) 4/9)) -26/81)) (pow.f64 x 6))) (*.f64 x x)))
(-.f64 (fma.f64 (fma.f64 (cbrt.f64 -1) (-.f64 (/.f64 -1/9 (cbrt.f64 -1)) (/.f64 4/9 (cbrt.f64 -1))) -4/9) (pow.f64 x 4) (*.f64 (fma.f64 (cbrt.f64 -1) (+.f64 (/.f64 -28/81 (cbrt.f64 -1)) (/.f64 -4/27 (cbrt.f64 -1))) -41/81) (pow.f64 x 6))) (fma.f64 x x 1))
(-.f64 (fma.f64 -1 (pow.f64 x 4) (fma.f64 -1 (pow.f64 x 6) -1)) (*.f64 x x))
(cbrt.f64 -1)
(+.f64 (cbrt.f64 -1) (*.f64 -1/3 (/.f64 (pow.f64 x 2) (pow.f64 (cbrt.f64 -1) 2))))
(+.f64 (cbrt.f64 -1) (*.f64 -1/3 (/.f64 (*.f64 x x) (pow.f64 (cbrt.f64 -1) 2))))
(fma.f64 -1/3 (/.f64 x (/.f64 (pow.f64 (cbrt.f64 -1) 2) x)) (cbrt.f64 -1))
(fma.f64 -1/3 (*.f64 (/.f64 x (pow.f64 (cbrt.f64 -1) 2)) x) (cbrt.f64 -1))
(+.f64 (cbrt.f64 -1) (+.f64 (*.f64 -1/3 (/.f64 (pow.f64 x 2) (pow.f64 (cbrt.f64 -1) 2))) (*.f64 -2/9 (/.f64 (pow.f64 x 4) (pow.f64 (cbrt.f64 -1) 2)))))
(+.f64 (cbrt.f64 -1) (fma.f64 -1/3 (/.f64 (*.f64 x x) (pow.f64 (cbrt.f64 -1) 2)) (/.f64 (*.f64 -2/9 (pow.f64 x 4)) (pow.f64 (cbrt.f64 -1) 2))))
(+.f64 (cbrt.f64 -1) (fma.f64 -1/3 (/.f64 x (/.f64 (pow.f64 (cbrt.f64 -1) 2) x)) (*.f64 -2/9 (/.f64 (pow.f64 x 4) (pow.f64 (cbrt.f64 -1) 2)))))
(fma.f64 -1/3 (*.f64 (/.f64 x (pow.f64 (cbrt.f64 -1) 2)) x) (fma.f64 -2/9 (/.f64 (pow.f64 x 4) (pow.f64 (cbrt.f64 -1) 2)) (cbrt.f64 -1)))
(+.f64 (cbrt.f64 -1) (+.f64 (*.f64 -1/3 (/.f64 (pow.f64 x 2) (pow.f64 (cbrt.f64 -1) 2))) (+.f64 (*.f64 -2/9 (/.f64 (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) (pow.f64 x 6)) (pow.f64 (cbrt.f64 -1) 2))))))
(+.f64 (cbrt.f64 -1) (fma.f64 -1/3 (/.f64 (*.f64 x x) (pow.f64 (cbrt.f64 -1) 2)) (fma.f64 -2/9 (/.f64 (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) (pow.f64 x 6)))))))
(+.f64 (cbrt.f64 -1) (fma.f64 -1/3 (/.f64 x (/.f64 (pow.f64 (cbrt.f64 -1) 2) x)) (fma.f64 -2/9 (/.f64 (pow.f64 x 4) (pow.f64 (cbrt.f64 -1) 2)) (/.f64 -14/81 (/.f64 (pow.f64 (cbrt.f64 -1) 2) (pow.f64 x 6))))))
(+.f64 (cbrt.f64 -1) (fma.f64 -1/3 (*.f64 (/.f64 x (pow.f64 (cbrt.f64 -1) 2)) x) (fma.f64 -2/9 (/.f64 (pow.f64 x 4) (pow.f64 (cbrt.f64 -1) 2)) (*.f64 (/.f64 -14/81 (pow.f64 (cbrt.f64 -1) 2)) (pow.f64 x 6)))))
(+.f64 (fma.f64 -1/3 (*.f64 (/.f64 x (pow.f64 (cbrt.f64 -1) 2)) x) (cbrt.f64 -1)) (fma.f64 -2/9 (/.f64 (pow.f64 x 4) (pow.f64 (cbrt.f64 -1) 2)) (*.f64 (/.f64 -14/81 (pow.f64 (cbrt.f64 -1) 2)) (pow.f64 x 6))))
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 (fma.f64 x x 1) (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)))
(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 (/.f64 10 (*.f64 x x)) (/.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 -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)))
(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 (/.f64 10 (*.f64 x x)) (/.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 -10 (*.f64 x x))) (-.f64 (/.f64 -10 (pow.f64 x 6)) (/.f64 10 (pow.f64 x 8))))

localize88.0ms (1.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(/.f64 -10 (fma.f64 x x -1))
0.4b
(pow.f64 (/.f64 -10 (fma.f64 x x -1)) 1/6)
0.5b
(cbrt.f64 (/.f64 -10 (fma.f64 x x -1)))
0.6b
(pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2)
Compiler

Compiled 85 to 64 computations (24.7% saved)

series5.0ms (0.1%)

Counts
2 → 16
Calls

6 calls:

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

rewrite189.0ms (2.6%)

Algorithm
batch-egg-rewrite
Rules
903×pow1_binary64
849×add-log-exp_binary64
849×log1p-expm1-u_binary64
849×expm1-log1p-u_binary64
832×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01124
123124
2246224
Stop Event
node limit
Counts
2 → 38
Calls
Call 1
Inputs
(pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2)
(pow.f64 (/.f64 -10 (fma.f64 x x -1)) 1/6)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) (cbrt.f64 (/.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) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 1/6) (sqrt.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 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 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1)))) 2) (cbrt.f64 (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 4)))))) (#(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)))) (cbrt.f64 (/.f64 -10 (fma.f64 x x -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 4)) (pow.f64 (cbrt.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))) (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) (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 (cbrt.f64 100) (pow.f64 (cbrt.f64 (fma.f64 x x -1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cbrt.f64 -10) (cbrt.f64 (/.f64 -10 (fma.f64 x x -1)))) (cbrt.f64 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) (cbrt.f64 -10)) (cbrt.f64 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 100 (pow.f64 (fma.f64 x x -1) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 2 (log.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 1/6)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 1/6) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 1/6)) (cbrt.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1)))) (cbrt.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 1/12) (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 1/12))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1)))) 2)) (sqrt.f64 (cbrt.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 -10 1/6) (pow.f64 (/.f64 1 (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/6) (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/6) (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (/.f64 -10 (fma.f64 x x -1))) 1/6) (pow.f64 (sqrt.f64 (/.f64 -10 (fma.f64 x x -1))) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (cbrt.f64 -10)) (sqrt.f64 (cbrt.f64 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (sqrt.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 1/6 (log.f64 (/.f64 -10 (fma.f64 x x -1)))))))))

simplify71.0ms (1%)

Algorithm
egg-herbie
Rules
572×associate-*l/_binary64
412×associate-*r/_binary64
362×fma-def_binary64
301×associate-+l+_binary64
287×unswap-sqr_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
099821
1270757
2775644
33127516
47392516
Stop Event
node limit
Counts
54 → 64
Calls
Call 1
Inputs
(*.f64 (pow.f64 (cbrt.f64 -1) 2) (pow.f64 (cbrt.f64 -10) 2))
(+.f64 (*.f64 -2/3 (/.f64 (*.f64 (pow.f64 (cbrt.f64 -10) 2) (pow.f64 x 2)) (cbrt.f64 -1))) (*.f64 (pow.f64 (cbrt.f64 -1) 2) (pow.f64 (cbrt.f64 -10) 2)))
(+.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)))) (pow.f64 x 4)) (+.f64 (*.f64 -2/3 (/.f64 (*.f64 (pow.f64 (cbrt.f64 -10) 2) (pow.f64 x 2)) (cbrt.f64 -1))) (*.f64 (pow.f64 (cbrt.f64 -1) 2) (pow.f64 (cbrt.f64 -10) 2))))
(+.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)))) (pow.f64 x 4)) (+.f64 (*.f64 -2/3 (/.f64 (*.f64 (pow.f64 (cbrt.f64 -10) 2) (pow.f64 x 2)) (cbrt.f64 -1))) (+.f64 (*.f64 (pow.f64 (cbrt.f64 -1) 2) (pow.f64 (cbrt.f64 -10) 2)) (*.f64 (+.f64 (*.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 4/27 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (pow.f64 (cbrt.f64 -1) 4)))) (pow.f64 x 6)))))
(pow.f64 10 1/6)
(+.f64 (pow.f64 10 1/6) (*.f64 1/6 (*.f64 (pow.f64 10 1/6) (pow.f64 x 2))))
(+.f64 (pow.f64 10 1/6) (+.f64 (*.f64 7/72 (*.f64 (pow.f64 10 1/6) (pow.f64 x 4))) (*.f64 1/6 (*.f64 (pow.f64 10 1/6) (pow.f64 x 2)))))
(+.f64 (pow.f64 10 1/6) (+.f64 (*.f64 91/1296 (*.f64 (pow.f64 10 1/6) (pow.f64 x 6))) (+.f64 (*.f64 7/72 (*.f64 (pow.f64 10 1/6) (pow.f64 x 4))) (*.f64 1/6 (*.f64 (pow.f64 10 1/6) (pow.f64 x 2))))))
(exp.f64 (*.f64 1/6 (+.f64 (log.f64 -10) (*.f64 2 (log.f64 (/.f64 1 x))))))
(+.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 -10) (*.f64 2 (log.f64 (/.f64 1 x)))))) (*.f64 1/6 (/.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 -10) (*.f64 2 (log.f64 (/.f64 1 x)))))) (pow.f64 x 2))))
(+.f64 (*.f64 7/72 (/.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 -10) (*.f64 2 (log.f64 (/.f64 1 x)))))) (pow.f64 x 4))) (+.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 -10) (*.f64 2 (log.f64 (/.f64 1 x)))))) (*.f64 1/6 (/.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 -10) (*.f64 2 (log.f64 (/.f64 1 x)))))) (pow.f64 x 2)))))
(+.f64 (*.f64 7/72 (/.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 -10) (*.f64 2 (log.f64 (/.f64 1 x)))))) (pow.f64 x 4))) (+.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 -10) (*.f64 2 (log.f64 (/.f64 1 x)))))) (+.f64 (*.f64 1/6 (/.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 -10) (*.f64 2 (log.f64 (/.f64 1 x)))))) (pow.f64 x 2))) (*.f64 91/1296 (/.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 -10) (*.f64 2 (log.f64 (/.f64 1 x)))))) (pow.f64 x 6))))))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 (/.f64 -1 x))) (log.f64 -10))))
(+.f64 (*.f64 1/6 (/.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 (/.f64 -1 x))) (log.f64 -10)))) (pow.f64 x 2))) (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 (/.f64 -1 x))) (log.f64 -10)))))
(+.f64 (*.f64 1/6 (/.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 (/.f64 -1 x))) (log.f64 -10)))) (pow.f64 x 2))) (+.f64 (*.f64 7/72 (/.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 (/.f64 -1 x))) (log.f64 -10)))) (pow.f64 x 4))) (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 (/.f64 -1 x))) (log.f64 -10))))))
(+.f64 (*.f64 1/6 (/.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 (/.f64 -1 x))) (log.f64 -10)))) (pow.f64 x 2))) (+.f64 (*.f64 91/1296 (/.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 (/.f64 -1 x))) (log.f64 -10)))) (pow.f64 x 6))) (+.f64 (*.f64 7/72 (/.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 (/.f64 -1 x))) (log.f64 -10)))) (pow.f64 x 4))) (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 (/.f64 -1 x))) (log.f64 -10)))))))
Outputs
(*.f64 (pow.f64 (cbrt.f64 -1) 2) (pow.f64 (cbrt.f64 -10) 2))
(+.f64 (*.f64 -2/3 (/.f64 (*.f64 (pow.f64 (cbrt.f64 -10) 2) (pow.f64 x 2)) (cbrt.f64 -1))) (*.f64 (pow.f64 (cbrt.f64 -1) 2) (pow.f64 (cbrt.f64 -10) 2)))
(fma.f64 -2/3 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (/.f64 (cbrt.f64 -1) (*.f64 x x))) (*.f64 (pow.f64 (cbrt.f64 -1) 2) (pow.f64 (cbrt.f64 -10) 2)))
(fma.f64 (pow.f64 (cbrt.f64 -1) 2) (pow.f64 (cbrt.f64 -10) 2) (*.f64 -2/3 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (/.f64 (cbrt.f64 -1) (*.f64 x x)))))
(fma.f64 (pow.f64 (cbrt.f64 -1) 2) (pow.f64 (cbrt.f64 -10) 2) (*.f64 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (cbrt.f64 -1)) (*.f64 -2/3 (*.f64 x x))))
(+.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)))) (pow.f64 x 4)) (+.f64 (*.f64 -2/3 (/.f64 (*.f64 (pow.f64 (cbrt.f64 -10) 2) (pow.f64 x 2)) (cbrt.f64 -1))) (*.f64 (pow.f64 (cbrt.f64 -1) 2) (pow.f64 (cbrt.f64 -10) 2))))
(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) (pow.f64 (cbrt.f64 -1) 4)))) (pow.f64 x 4) (fma.f64 -2/3 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (/.f64 (cbrt.f64 -1) (*.f64 x x))) (*.f64 (pow.f64 (cbrt.f64 -1) 2) (pow.f64 (cbrt.f64 -10) 2))))
(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 -1 (cbrt.f64 -1))))) (pow.f64 x 4) (fma.f64 (pow.f64 (cbrt.f64 -1) 2) (pow.f64 (cbrt.f64 -10) 2) (*.f64 -2/3 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (/.f64 (cbrt.f64 -1) (*.f64 x x))))))
(fma.f64 (pow.f64 (cbrt.f64 -1) 2) (pow.f64 (cbrt.f64 -10) 2) (fma.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 x 4) (*.f64 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (cbrt.f64 -1)) (*.f64 -2/3 (*.f64 x x)))))
(fma.f64 (pow.f64 (cbrt.f64 -1) 2) (pow.f64 (cbrt.f64 -10) 2) (fma.f64 -2/3 (*.f64 (*.f64 x x) (/.f64 (pow.f64 (cbrt.f64 -10) 2) (cbrt.f64 -1))) (*.f64 (*.f64 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (cbrt.f64 -1)) -5/9) (pow.f64 x 4))))
(+.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)))) (pow.f64 x 4)) (+.f64 (*.f64 -2/3 (/.f64 (*.f64 (pow.f64 (cbrt.f64 -10) 2) (pow.f64 x 2)) (cbrt.f64 -1))) (+.f64 (*.f64 (pow.f64 (cbrt.f64 -1) 2) (pow.f64 (cbrt.f64 -10) 2)) (*.f64 (+.f64 (*.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 4/27 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (pow.f64 (cbrt.f64 -1) 4)))) (pow.f64 x 6)))))
(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) (pow.f64 (cbrt.f64 -1) 4)))) (pow.f64 x 4) (fma.f64 -2/3 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (/.f64 (cbrt.f64 -1) (*.f64 x x))) (fma.f64 (pow.f64 (cbrt.f64 -1) 2) (pow.f64 (cbrt.f64 -10) 2) (*.f64 (fma.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))) (*.f64 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (pow.f64 (cbrt.f64 -1) 4)) 4/27)) (pow.f64 x 6)))))
(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 -1 (cbrt.f64 -1))))) (pow.f64 x 4) (fma.f64 -2/3 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (/.f64 (cbrt.f64 -1) (*.f64 x x))) (fma.f64 (pow.f64 (cbrt.f64 -1) 2) (pow.f64 (cbrt.f64 -10) 2) (*.f64 (fma.f64 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (*.f64 -1 (cbrt.f64 -1))) 4/27 (/.f64 -28/81 (/.f64 (cbrt.f64 -1) (pow.f64 (cbrt.f64 -10) 2)))) (pow.f64 x 6)))))
(fma.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 x 4) (fma.f64 (+.f64 (*.f64 (/.f64 -28/81 (cbrt.f64 -1)) (pow.f64 (cbrt.f64 -10) 2)) (*.f64 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (cbrt.f64 -1)) -4/27)) (pow.f64 x 6) (fma.f64 (pow.f64 (cbrt.f64 -1) 2) (pow.f64 (cbrt.f64 -10) 2) (*.f64 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (cbrt.f64 -1)) (*.f64 -2/3 (*.f64 x x))))))
(fma.f64 (*.f64 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (cbrt.f64 -1)) -5/9) (pow.f64 x 4) (fma.f64 (*.f64 (pow.f64 (cbrt.f64 -10) 2) (+.f64 (/.f64 -28/81 (cbrt.f64 -1)) (/.f64 4/27 (neg.f64 (cbrt.f64 -1))))) (pow.f64 x 6) (fma.f64 (pow.f64 (cbrt.f64 -1) 2) (pow.f64 (cbrt.f64 -10) 2) (*.f64 (/.f64 (pow.f64 (cbrt.f64 -10) 2) (cbrt.f64 -1)) (*.f64 -2/3 (*.f64 x x))))))
(pow.f64 10 1/6)
(+.f64 (pow.f64 10 1/6) (*.f64 1/6 (*.f64 (pow.f64 10 1/6) (pow.f64 x 2))))
(+.f64 (pow.f64 10 1/6) (*.f64 1/6 (*.f64 (*.f64 x x) (pow.f64 10 1/6))))
(fma.f64 1/6 (*.f64 (*.f64 x x) (pow.f64 10 1/6)) (pow.f64 10 1/6))
(*.f64 (+.f64 (*.f64 (*.f64 x x) 1/6) 1) (pow.f64 10 1/6))
(*.f64 (+.f64 1 (*.f64 x (*.f64 x 1/6))) (pow.f64 10 1/6))
(+.f64 (pow.f64 10 1/6) (+.f64 (*.f64 7/72 (*.f64 (pow.f64 10 1/6) (pow.f64 x 4))) (*.f64 1/6 (*.f64 (pow.f64 10 1/6) (pow.f64 x 2)))))
(+.f64 (pow.f64 10 1/6) (fma.f64 7/72 (*.f64 (pow.f64 x 4) (pow.f64 10 1/6)) (*.f64 1/6 (*.f64 (*.f64 x x) (pow.f64 10 1/6)))))
(+.f64 (pow.f64 10 1/6) (fma.f64 1/6 (*.f64 (*.f64 x x) (pow.f64 10 1/6)) (*.f64 (pow.f64 x 4) (*.f64 (pow.f64 10 1/6) 7/72))))
(+.f64 (pow.f64 10 1/6) (*.f64 (pow.f64 10 1/6) (+.f64 (*.f64 (*.f64 x x) 1/6) (*.f64 (pow.f64 x 4) 7/72))))
(*.f64 (pow.f64 10 1/6) (+.f64 (*.f64 x (*.f64 x 1/6)) (+.f64 1 (*.f64 (pow.f64 x 4) 7/72))))
(+.f64 (pow.f64 10 1/6) (+.f64 (*.f64 91/1296 (*.f64 (pow.f64 10 1/6) (pow.f64 x 6))) (+.f64 (*.f64 7/72 (*.f64 (pow.f64 10 1/6) (pow.f64 x 4))) (*.f64 1/6 (*.f64 (pow.f64 10 1/6) (pow.f64 x 2))))))
(+.f64 (pow.f64 10 1/6) (fma.f64 91/1296 (*.f64 (pow.f64 x 6) (pow.f64 10 1/6)) (fma.f64 7/72 (*.f64 (pow.f64 x 4) (pow.f64 10 1/6)) (*.f64 1/6 (*.f64 (*.f64 x x) (pow.f64 10 1/6))))))
(+.f64 (pow.f64 10 1/6) (fma.f64 91/1296 (*.f64 (pow.f64 x 6) (pow.f64 10 1/6)) (fma.f64 1/6 (*.f64 (*.f64 x x) (pow.f64 10 1/6)) (*.f64 (pow.f64 x 4) (*.f64 (pow.f64 10 1/6) 7/72)))))
(+.f64 (*.f64 (+.f64 (*.f64 (*.f64 x x) 1/6) 1) (pow.f64 10 1/6)) (*.f64 (pow.f64 10 1/6) (+.f64 (*.f64 (pow.f64 x 4) 7/72) (*.f64 (pow.f64 x 6) 91/1296))))
(+.f64 (pow.f64 10 1/6) (*.f64 (pow.f64 10 1/6) (+.f64 (*.f64 x (+.f64 (*.f64 x 1/6) (*.f64 (pow.f64 x 3) 7/72))) (*.f64 (pow.f64 x 6) 91/1296))))
(exp.f64 (*.f64 1/6 (+.f64 (log.f64 -10) (*.f64 2 (log.f64 (/.f64 1 x))))))
(pow.f64 (exp.f64 1/6) (+.f64 (log.f64 -10) (*.f64 2 (neg.f64 (log.f64 x)))))
(pow.f64 (exp.f64 1/6) (fma.f64 2 (neg.f64 (log.f64 x)) (log.f64 -10)))
(*.f64 (pow.f64 -10 1/6) (exp.f64 (*.f64 -1/3 (log.f64 x))))
(pow.f64 (*.f64 (pow.f64 x -2) -10) 1/6)
(+.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 -10) (*.f64 2 (log.f64 (/.f64 1 x)))))) (*.f64 1/6 (/.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 -10) (*.f64 2 (log.f64 (/.f64 1 x)))))) (pow.f64 x 2))))
(+.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 -10) (*.f64 2 (neg.f64 (log.f64 x))))) (/.f64 (*.f64 1/6 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 -10) (*.f64 2 (neg.f64 (log.f64 x)))))) (*.f64 x x)))
(fma.f64 1/6 (/.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (neg.f64 (log.f64 x)) (log.f64 -10))) (*.f64 x x)) (pow.f64 (exp.f64 1/6) (fma.f64 2 (neg.f64 (log.f64 x)) (log.f64 -10))))
(fma.f64 (pow.f64 -10 1/6) (exp.f64 (*.f64 -1/3 (log.f64 x))) (/.f64 1/6 (/.f64 (/.f64 (*.f64 x x) (pow.f64 -10 1/6)) (exp.f64 (*.f64 -1/3 (log.f64 x))))))
(*.f64 (+.f64 (/.f64 1/6 (*.f64 x x)) 1) (pow.f64 (*.f64 (pow.f64 x -2) -10) 1/6))
(+.f64 (*.f64 7/72 (/.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 -10) (*.f64 2 (log.f64 (/.f64 1 x)))))) (pow.f64 x 4))) (+.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 -10) (*.f64 2 (log.f64 (/.f64 1 x)))))) (*.f64 1/6 (/.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 -10) (*.f64 2 (log.f64 (/.f64 1 x)))))) (pow.f64 x 2)))))
(fma.f64 7/72 (/.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 -10) (*.f64 2 (neg.f64 (log.f64 x))))) (pow.f64 x 4)) (+.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 -10) (*.f64 2 (neg.f64 (log.f64 x))))) (/.f64 (*.f64 1/6 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 -10) (*.f64 2 (neg.f64 (log.f64 x)))))) (*.f64 x x))))
(fma.f64 7/72 (/.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (neg.f64 (log.f64 x)) (log.f64 -10))) (pow.f64 x 4)) (fma.f64 1/6 (/.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (neg.f64 (log.f64 x)) (log.f64 -10))) (*.f64 x x)) (pow.f64 (exp.f64 1/6) (fma.f64 2 (neg.f64 (log.f64 x)) (log.f64 -10)))))
(fma.f64 (pow.f64 -10 1/6) (exp.f64 (*.f64 -1/3 (log.f64 x))) (*.f64 (*.f64 (/.f64 (pow.f64 -10 1/6) x) (/.f64 (exp.f64 (*.f64 -1/3 (log.f64 x))) x)) (+.f64 1/6 (/.f64 7/72 (*.f64 x x)))))
(+.f64 (pow.f64 (*.f64 (pow.f64 x -2) -10) 1/6) (*.f64 (/.f64 (pow.f64 (*.f64 (pow.f64 x -2) -10) 1/6) x) (+.f64 (/.f64 1/6 x) (/.f64 7/72 (pow.f64 x 3)))))
(+.f64 (*.f64 7/72 (/.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 -10) (*.f64 2 (log.f64 (/.f64 1 x)))))) (pow.f64 x 4))) (+.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 -10) (*.f64 2 (log.f64 (/.f64 1 x)))))) (+.f64 (*.f64 1/6 (/.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 -10) (*.f64 2 (log.f64 (/.f64 1 x)))))) (pow.f64 x 2))) (*.f64 91/1296 (/.f64 (exp.f64 (*.f64 1/6 (+.f64 (log.f64 -10) (*.f64 2 (log.f64 (/.f64 1 x)))))) (pow.f64 x 6))))))
(fma.f64 7/72 (/.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 -10) (*.f64 2 (neg.f64 (log.f64 x))))) (pow.f64 x 4)) (+.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 -10) (*.f64 2 (neg.f64 (log.f64 x))))) (fma.f64 1/6 (/.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 -10) (*.f64 2 (neg.f64 (log.f64 x))))) (*.f64 x x)) (*.f64 91/1296 (/.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 -10) (*.f64 2 (neg.f64 (log.f64 x))))) (pow.f64 x 6))))))
(+.f64 (fma.f64 1/6 (/.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (neg.f64 (log.f64 x)) (log.f64 -10))) (*.f64 x x)) (*.f64 91/1296 (/.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (neg.f64 (log.f64 x)) (log.f64 -10))) (pow.f64 x 6)))) (fma.f64 7/72 (/.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (neg.f64 (log.f64 x)) (log.f64 -10))) (pow.f64 x 4)) (pow.f64 (exp.f64 1/6) (fma.f64 2 (neg.f64 (log.f64 x)) (log.f64 -10)))))
(+.f64 (fma.f64 (pow.f64 -10 1/6) (exp.f64 (*.f64 -1/3 (log.f64 x))) (*.f64 (*.f64 (/.f64 (pow.f64 -10 1/6) x) (/.f64 (exp.f64 (*.f64 -1/3 (log.f64 x))) x)) (+.f64 1/6 (/.f64 7/72 (*.f64 x x))))) (*.f64 91/1296 (/.f64 (*.f64 (pow.f64 -10 1/6) (exp.f64 (*.f64 -1/3 (log.f64 x)))) (pow.f64 x 6))))
(+.f64 (*.f64 (+.f64 (/.f64 1/6 (*.f64 x x)) 1) (pow.f64 (*.f64 (pow.f64 x -2) -10) 1/6)) (*.f64 (pow.f64 (*.f64 (pow.f64 x -2) -10) 1/6) (+.f64 (/.f64 7/72 (pow.f64 x 4)) (/.f64 91/1296 (pow.f64 x 6)))))
(exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 (/.f64 -1 x))) (log.f64 -10))))
(pow.f64 (exp.f64 1/6) (+.f64 (log.f64 -10) (*.f64 2 (neg.f64 (log.f64 x)))))
(pow.f64 (exp.f64 1/6) (fma.f64 2 (neg.f64 (log.f64 x)) (log.f64 -10)))
(*.f64 (pow.f64 -10 1/6) (exp.f64 (*.f64 -1/3 (log.f64 x))))
(pow.f64 (*.f64 (pow.f64 x -2) -10) 1/6)
(+.f64 (*.f64 1/6 (/.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 (/.f64 -1 x))) (log.f64 -10)))) (pow.f64 x 2))) (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 (/.f64 -1 x))) (log.f64 -10)))))
(+.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 -10) (*.f64 2 (neg.f64 (log.f64 x))))) (/.f64 (*.f64 1/6 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 -10) (*.f64 2 (neg.f64 (log.f64 x)))))) (*.f64 x x)))
(fma.f64 1/6 (/.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (neg.f64 (log.f64 x)) (log.f64 -10))) (*.f64 x x)) (pow.f64 (exp.f64 1/6) (fma.f64 2 (neg.f64 (log.f64 x)) (log.f64 -10))))
(fma.f64 (pow.f64 -10 1/6) (exp.f64 (*.f64 -1/3 (log.f64 x))) (/.f64 1/6 (/.f64 (/.f64 (*.f64 x x) (pow.f64 -10 1/6)) (exp.f64 (*.f64 -1/3 (log.f64 x))))))
(*.f64 (+.f64 (/.f64 1/6 (*.f64 x x)) 1) (pow.f64 (*.f64 (pow.f64 x -2) -10) 1/6))
(+.f64 (*.f64 1/6 (/.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 (/.f64 -1 x))) (log.f64 -10)))) (pow.f64 x 2))) (+.f64 (*.f64 7/72 (/.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 (/.f64 -1 x))) (log.f64 -10)))) (pow.f64 x 4))) (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 (/.f64 -1 x))) (log.f64 -10))))))
(fma.f64 7/72 (/.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 -10) (*.f64 2 (neg.f64 (log.f64 x))))) (pow.f64 x 4)) (+.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 -10) (*.f64 2 (neg.f64 (log.f64 x))))) (/.f64 (*.f64 1/6 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 -10) (*.f64 2 (neg.f64 (log.f64 x)))))) (*.f64 x x))))
(fma.f64 7/72 (/.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (neg.f64 (log.f64 x)) (log.f64 -10))) (pow.f64 x 4)) (fma.f64 1/6 (/.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (neg.f64 (log.f64 x)) (log.f64 -10))) (*.f64 x x)) (pow.f64 (exp.f64 1/6) (fma.f64 2 (neg.f64 (log.f64 x)) (log.f64 -10)))))
(fma.f64 (pow.f64 -10 1/6) (exp.f64 (*.f64 -1/3 (log.f64 x))) (*.f64 (*.f64 (/.f64 (pow.f64 -10 1/6) x) (/.f64 (exp.f64 (*.f64 -1/3 (log.f64 x))) x)) (+.f64 1/6 (/.f64 7/72 (*.f64 x x)))))
(+.f64 (pow.f64 (*.f64 (pow.f64 x -2) -10) 1/6) (*.f64 (/.f64 (pow.f64 (*.f64 (pow.f64 x -2) -10) 1/6) x) (+.f64 (/.f64 1/6 x) (/.f64 7/72 (pow.f64 x 3)))))
(+.f64 (*.f64 1/6 (/.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 (/.f64 -1 x))) (log.f64 -10)))) (pow.f64 x 2))) (+.f64 (*.f64 91/1296 (/.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 (/.f64 -1 x))) (log.f64 -10)))) (pow.f64 x 6))) (+.f64 (*.f64 7/72 (/.f64 (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 (/.f64 -1 x))) (log.f64 -10)))) (pow.f64 x 4))) (exp.f64 (*.f64 1/6 (+.f64 (*.f64 2 (log.f64 (/.f64 -1 x))) (log.f64 -10)))))))
(fma.f64 7/72 (/.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 -10) (*.f64 2 (neg.f64 (log.f64 x))))) (pow.f64 x 4)) (+.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 -10) (*.f64 2 (neg.f64 (log.f64 x))))) (fma.f64 1/6 (/.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 -10) (*.f64 2 (neg.f64 (log.f64 x))))) (*.f64 x x)) (*.f64 91/1296 (/.f64 (pow.f64 (exp.f64 1/6) (+.f64 (log.f64 -10) (*.f64 2 (neg.f64 (log.f64 x))))) (pow.f64 x 6))))))
(+.f64 (fma.f64 1/6 (/.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (neg.f64 (log.f64 x)) (log.f64 -10))) (*.f64 x x)) (*.f64 91/1296 (/.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (neg.f64 (log.f64 x)) (log.f64 -10))) (pow.f64 x 6)))) (fma.f64 7/72 (/.f64 (pow.f64 (exp.f64 1/6) (fma.f64 2 (neg.f64 (log.f64 x)) (log.f64 -10))) (pow.f64 x 4)) (pow.f64 (exp.f64 1/6) (fma.f64 2 (neg.f64 (log.f64 x)) (log.f64 -10)))))
(+.f64 (fma.f64 (pow.f64 -10 1/6) (exp.f64 (*.f64 -1/3 (log.f64 x))) (*.f64 (*.f64 (/.f64 (pow.f64 -10 1/6) x) (/.f64 (exp.f64 (*.f64 -1/3 (log.f64 x))) x)) (+.f64 1/6 (/.f64 7/72 (*.f64 x x))))) (*.f64 91/1296 (/.f64 (*.f64 (pow.f64 -10 1/6) (exp.f64 (*.f64 -1/3 (log.f64 x)))) (pow.f64 x 6))))
(+.f64 (*.f64 (+.f64 (/.f64 1/6 (*.f64 x x)) 1) (pow.f64 (*.f64 (pow.f64 x -2) -10) 1/6)) (*.f64 (pow.f64 (*.f64 (pow.f64 x -2) -10) 1/6) (+.f64 (/.f64 7/72 (pow.f64 x 4)) (/.f64 91/1296 (pow.f64 x 6)))))

eval1.3s (17.8%)

Compiler

Compiled 14581 to 11739 computations (19.5% saved)

prune127.0ms (1.8%)

Pruning

22 alts after pruning (10 fresh and 12 done)

PrunedKeptTotal
New6528660
Fresh224
Picked101
Done21214
Total65722679
Error
0.0b
Counts
679 → 22
Alt Table
Click to see full alt table
StatusErrorProgram
60.8b
-10
0.2b
(/.f64 -10 (fma.f64 x x -1))
0.4b
(/.f64 1 (*.f64 (fma.f64 x x -1) -1/10))
1.3b
(*.f64 (pow.f64 (cbrt.f64 (/.f64 1 (fma.f64 x x -1))) 3) -10)
7.8b
(/.f64 10 (-.f64 1 (*.f64 x x)))
18.6b
(sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 (pow.f64 (fma.f64 x x -1) -2) 100)) 3))
19.5b
(exp.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1))))
57.5b
10
0.4b
(/.f64 1 (/.f64 (fma.f64 x x -1) -10))
57.5b
(/.f64 10 (*.f64 x x))
7.8b
(*.f64 (/.f64 1 (-.f64 1 (*.f64 x x))) 10)
7.8b
(*.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)
1.3b
(pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 3)
8.3b
(/.f64 1 (+.f64 (*.f64 (*.f64 x x) -1/10) 1/10))
18.3b
(sqrt.f64 (*.f64 (*.f64 (cbrt.f64 (pow.f64 (fma.f64 x x -1) -2)) (cbrt.f64 (pow.f64 (fma.f64 x x -1) -4))) 100))
0.6b
(*.f64 (cbrt.f64 (pow.f64 (fma.f64 x x -1) -3)) -10)
0.4b
(*.f64 (/.f64 1 (fma.f64 x x -1)) -10)
18.2b
(sqrt.f64 (*.f64 (pow.f64 (fma.f64 x x -1) -2) 100))
7.8b
(/.f64 1 (/.f64 (-.f64 1 (*.f64 x x)) 10))
1.7b
(pow.f64 (/.f64 (cbrt.f64 -10) (cbrt.f64 (fma.f64 x x -1))) 3)
18.6b
(pow.f64 (sqrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2)
7.8b
(/.f64 10 (/.f64 (-.f64 1 (*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x)))) (-.f64 1 (*.f64 x (neg.f64 x)))))
Compiler

Compiled 230 to 172 computations (25.2% saved)

regimes382.0ms (5.3%)

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

7 calls:

219.0ms
(*.f64 x x)
40.0ms
x
20.0ms
(*.f64 x x)
18.0ms
(/.f64 10 (-.f64 1 (*.f64 x x)))
17.0ms
(-.f64 1 (*.f64 x x))
Results
ErrorSegmentsBranch
0.2b1x
0.2b1(/.f64 10 (-.f64 1 (*.f64 x x)))
0.2b1(/.f64 10 (-.f64 1 (*.f64 x x)))
0.2b1(-.f64 1 (*.f64 x x))
0.2b1(-.f64 1 (*.f64 x x))
0.2b1(*.f64 x x)
0.2b1(*.f64 x x)
Compiler

Compiled 359 to 254 computations (29.2% saved)

regimes234.0ms (3.2%)

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

140.0ms
(/.f64 10 (-.f64 1 (*.f64 x x)))
51.0ms
x
10.0ms
(-.f64 1 (*.f64 x x))
8.0ms
(*.f64 x x)
7.0ms
(*.f64 x x)
Results
ErrorSegmentsBranch
7.8b1x
7.8b1(/.f64 10 (-.f64 1 (*.f64 x x)))
7.8b1(/.f64 10 (-.f64 1 (*.f64 x x)))
7.8b1(-.f64 1 (*.f64 x x))
7.8b1(-.f64 1 (*.f64 x x))
7.8b1(*.f64 x x)
7.8b1(*.f64 x x)
Compiler

Compiled 133 to 78 computations (41.4% saved)

regimes35.0ms (0.5%)

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

5 calls:

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

Compiled 81 to 53 computations (34.6% saved)

regimes27.0ms (0.4%)

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

4 calls:

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

Compiled 64 to 41 computations (35.9% saved)

regimes40.0ms (0.6%)

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

2 calls:

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

Compiled 25 to 15 computations (40% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.9999981627024453
1.0000000157057038
Compiler

Compiled 12 to 9 computations (25% saved)

regimes7.0ms (0.1%)

Accuracy

Total -7.6b remaining (-13.8%)

Threshold costs -7.6b (-13.8%)

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

1 calls:

6.0ms
x
Results
ErrorSegmentsBranch
55.4b2x
Compiler

Compiled 6 to 5 computations (16.7% saved)

bsearch0.0ms (0%)

Algorithm
binary-search
Steps
TimeLeftRight
0.0ms
0.9999990813508007
1.000000007852852
Compiler

Compiled 12 to 9 computations (25% saved)

simplify143.0ms (2%)

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
02688
14482
26782
39182
411382
511882
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 (/.f64 1 (-.f64 1 (*.f64 x x))) 10)
(/.f64 10 (-.f64 1 (*.f64 x x)))
(if (<=.f64 (*.f64 x x) 1) (/.f64 10 (*.f64 x x)) -10)
(if (<=.f64 x 1) 10 -10)
-10
Outputs
(/.f64 -10 (fma.f64 x x -1))
(/.f64 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 (/.f64 1 (-.f64 1 (*.f64 x x))) 10)
(*.f64 10 (/.f64 1 (-.f64 1 (*.f64 x x))))
(/.f64 10 (-.f64 1 (*.f64 x x)))
(if (<=.f64 (*.f64 x x) 1) (/.f64 10 (*.f64 x x)) -10)
(if (<=.f64 x 1) 10 -10)
-10
Compiler

Compiled 65 to 45 computations (30.8% saved)

soundness363.0ms (5%)

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

Useful iterations: 5 (0.0ms)

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

Compiled 110 to 86 computations (21.8% saved)

end47.0ms (0.6%)

Compiler

Compiled 59 to 36 computations (39% saved)

Profiling

Loading profile data...