Details

Time bar (total: 7.9s)

analyze2.0ms (0%)

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

Compiled 15 to 11 computations (26.7% saved)

sample1.0s (12.9%)

Results
1.0s8256×body256valid

preprocess150.0ms (1.9%)

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

Useful iterations: 0 (0.0ms)

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

Compiled 9 to 7 computations (22.2% saved)

simplify143.0ms (1.8%)

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

Useful iterations: 5 (0.0ms)

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

eval1.0ms (0%)

Compiler

Compiled 14 to 10 computations (28.6% saved)

prune1.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

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

Compiled 15 to 11 computations (26.7% saved)

localize7.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 14 to 9 computations (35.7% saved)

series2.0ms (0%)

Counts
1 → 12
Calls

3 calls:

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

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

simplify52.0ms (0.7%)

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

Useful iterations: 4 (0.0ms)

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

localize8.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 19 to 10 computations (47.4% saved)

series2.0ms (0%)

Counts
2 → 24
Calls

6 calls:

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

rewrite59.0ms (0.7%)

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

Useful iterations: 0 (0.0ms)

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

simplify50.0ms (0.6%)

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

eval33.0ms (0.4%)

Compiler

Compiled 1239 to 893 computations (27.9% saved)

prune25.0ms (0.3%)

Pruning

15 alts after pruning (13 fresh and 2 done)

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

Compiled 299 to 207 computations (30.8% saved)

localize11.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 23 to 16 computations (30.4% saved)

series4.0ms (0.1%)

Counts
2 → 24
Calls

6 calls:

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

rewrite87.0ms (1.1%)

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

simplify77.0ms (1%)

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

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

series3.0ms (0%)

Counts
1 → 12
Calls

3 calls:

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

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

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

localize38.0ms (0.5%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(/.f64 10 (/.f64 (-.f64 1 (*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x)))) (-.f64 1 (*.f64 x (neg.f64 x)))))
0.4b
(/.f64 (-.f64 1 (*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x)))) (-.f64 1 (*.f64 x (neg.f64 x))))
0.5b
(*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x)))
6.7b
(-.f64 1 (*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x))))
Compiler

Compiled 74 to 22 computations (70.3% saved)

series10.0ms (0.1%)

Counts
4 → 48
Calls

12 calls:

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

rewrite113.0ms (1.4%)

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

Useful iterations: 2 (0.0ms)

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

simplify80.0ms (1%)

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

Useful iterations: 4 (0.0ms)

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

localize23.0ms (0.3%)

Local error

Found 2 expressions with local error:

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

Compiled 22 to 15 computations (31.8% saved)

series5.0ms (0.1%)

Counts
2 → 24
Calls

6 calls:

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

rewrite74.0ms (0.9%)

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

Useful iterations: 1 (0.0ms)

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

simplify66.0ms (0.8%)

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

Useful iterations: 4 (0.0ms)

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

localize36.0ms (0.4%)

Local error

Found 3 expressions with local error:

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

Compiled 29 to 20 computations (31% saved)

series8.0ms (0.1%)

Counts
2 → 24
Calls

6 calls:

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

rewrite74.0ms (0.9%)

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

Useful iterations: 0 (0.0ms)

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

simplify78.0ms (1%)

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

Useful iterations: 2 (0.0ms)

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

eval307.0ms (3.9%)

Compiler

Compiled 6725 to 5052 computations (24.9% saved)

prune160.0ms (2%)

Pruning

25 alts after pruning (19 fresh and 6 done)

PrunedKeptTotal
New46614480
Fresh358
Picked011
Done156
Total47025495
Error
0b
Counts
495 → 25
Alt Table
Click to see full alt table
StatusErrorProgram
0.5b
(/.f64 1 (*.f64 (fma.f64 x x -1) -1/10))
0.4b
(*.f64 (/.f64 1 (fma.f64 x x -1)) -10)
7.9b
(/.f64 10 (/.f64 (-.f64 1 (*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x)))) (-.f64 1 (*.f64 x (neg.f64 x)))))
7.8b
(/.f64 10 (-.f64 1 (*.f64 x x)))
1.3b
(/.f64 (/.f64 1 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) 2)) (cbrt.f64 (*.f64 (fma.f64 x x -1) -1/10)))
0.9b
(*.f64 (*.f64 (/.f64 1 (cbrt.f64 (fma.f64 x x -1))) (cbrt.f64 (pow.f64 (fma.f64 x x -1) -2))) -10)
1.4b
(/.f64 (/.f64 -10 (pow.f64 (cbrt.f64 (fma.f64 x x -1)) 2)) (cbrt.f64 (fma.f64 x x -1)))
0.5b
(/.f64 (/.f64 1 (fma.f64 x x -1)) -1/10)
0.6b
(pow.f64 (cbrt.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) 3)) -1)
42.9b
(*.f64 (exp.f64 (neg.f64 (log.f64 (fma.f64 x x -1)))) -10)
42.9b
(*.f64 (expm1.f64 (log1p.f64 (/.f64 1 (fma.f64 x x -1)))) -10)
0.4b
(/.f64 1 (/.f64 (fma.f64 x x -1) -10))
1.3b
(pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 3)
22.6b
(expm1.f64 (log1p.f64 (/.f64 -10 (fma.f64 x x -1))))
0.6b
(*.f64 (cbrt.f64 (pow.f64 (/.f64 1 (fma.f64 x x -1)) 3)) -10)
57.9b
10
42.0b
(*.f64 (sqrt.f64 (pow.f64 (fma.f64 x x -1) -2)) -10)
21.4b
(sqrt.f64 (/.f64 100 (pow.f64 (fma.f64 x x -1) 2)))
0.6b
(cbrt.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3))
0.3b
(/.f64 -10 (fma.f64 x x -1))
7.8b
(*.f64 (/.f64 1 (-.f64 1 (*.f64 x x))) 10)
60.4b
(/.f64 (/.f64 -10 x) x)
60.4b
(/.f64 -10 (*.f64 x x))
7.8b
(/.f64 10 (/.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))))))
22.6b
(exp.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1))))
Compiler

Compiled 500 to 372 computations (25.6% saved)

localize23.0ms (0.3%)

Local error

Found 2 expressions with local error:

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

Compiled 23 to 16 computations (30.4% saved)

series3.0ms (0%)

Counts
2 → 24
Calls

6 calls:

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

rewrite74.0ms (0.9%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
0819
116316
2182716
Stop Event
node limit
Counts
2 → 46
Calls
Call 1
Inputs
(/.f64 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)))))))

simplify63.0ms (0.8%)

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

Useful iterations: 4 (0.0ms)

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

localize12.0ms (0.2%)

Local error

Found 1 expressions with local error:

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

Compiled 11 to 7 computations (36.4% saved)

series2.0ms (0%)

Counts
1 → 12
Calls

3 calls:

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

rewrite65.0ms (0.8%)

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

Useful iterations: 0 (0.0ms)

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

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

localize73.0ms (0.9%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(/.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)))))
0.5b
(*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x)))
0.7b
(pow.f64 (*.f64 x (neg.f64 x)) 3)
6.4b
(+.f64 1 (pow.f64 (*.f64 x (neg.f64 x)) 3))
Compiler

Compiled 116 to 32 computations (72.4% saved)

series38.0ms (0.5%)

Counts
3 → 36
Calls

9 calls:

TimeVariablePointExpression
31.0ms
x
@inf
(pow.f64 (*.f64 x (neg.f64 x)) 3)
2.0ms
x
@inf
(+.f64 1 (pow.f64 (*.f64 x (neg.f64 x)) 3))
1.0ms
x
@0
(+.f64 1 (pow.f64 (*.f64 x (neg.f64 x)) 3))
1.0ms
x
@0
(/.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)))))
1.0ms
x
@0
(pow.f64 (*.f64 x (neg.f64 x)) 3)

rewrite133.0ms (1.7%)

Algorithm
batch-egg-rewrite
Rules
693×fma-def_binary64
551×log-prod_binary64
399×fma-neg_binary64
196×expm1-udef_binary64
196×log1p-udef_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01255
129439
2457039
Stop Event
node limit
Counts
3 → 121
Calls
Call 1
Inputs
(+.f64 1 (pow.f64 (*.f64 x (neg.f64 x)) 3))
(pow.f64 (*.f64 x (neg.f64 x)) 3)
(/.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)))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 1 (pow.f64 (*.f64 x x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (+.f64 1 (pow.f64 (*.f64 x x) 3)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 1 (+.f64 1 (pow.f64 (*.f64 x x) 3))) (/.f64 (pow.f64 (*.f64 x x) 6) (+.f64 1 (pow.f64 (*.f64 x x) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 1 (pow.f64 (*.f64 x x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1 (pow.f64 (*.f64 x x) 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 1 (pow.f64 (*.f64 x x) 3))) (pow.f64 (cbrt.f64 (+.f64 1 (pow.f64 (*.f64 x x) 3))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 1 (pow.f64 (*.f64 x x) 3))) 2) (cbrt.f64 (+.f64 1 (pow.f64 (*.f64 x x) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 1 (pow.f64 x 3)) (hypot.f64 1 (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1 (pow.f64 (*.f64 x x) 9)) (/.f64 1 (+.f64 1 (+.f64 (pow.f64 (*.f64 x x) 6) (pow.f64 (*.f64 x x) 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1 (pow.f64 (*.f64 x x) 6)) (/.f64 1 (+.f64 1 (pow.f64 (*.f64 x x) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 1 (+.f64 (pow.f64 (*.f64 x x) 6) (pow.f64 (*.f64 x x) 3))) (+.f64 1 (pow.f64 (*.f64 x x) 9))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 1 (pow.f64 (*.f64 x x) 3)) (+.f64 1 (pow.f64 (*.f64 x x) 6))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1 (pow.f64 (*.f64 x x) 9)) (+.f64 1 (+.f64 (pow.f64 (*.f64 x x) 6) (pow.f64 (*.f64 x x) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1 (pow.f64 (*.f64 x x) 9)) (+.f64 (pow.f64 (*.f64 x x) 6) (+.f64 1 (pow.f64 (*.f64 x x) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1 (pow.f64 (*.f64 x x) 6)) (+.f64 1 (pow.f64 (*.f64 x x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 1 (pow.f64 (*.f64 x x) 9))) (neg.f64 (+.f64 1 (+.f64 (pow.f64 (*.f64 x x) 6) (pow.f64 (*.f64 x x) 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 1 (pow.f64 (*.f64 x x) 6))) (+.f64 (pow.f64 (*.f64 x x) 3) -1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (pow.f64 (*.f64 x x) 9)) (+.f64 1 (+.f64 (pow.f64 (*.f64 x x) 6) (pow.f64 (*.f64 x x) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 x x) 6) 1) (+.f64 (pow.f64 (*.f64 x x) 3) -1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 1 (pow.f64 (*.f64 x x) 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 1 (pow.f64 (*.f64 x x) 3)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 1 (pow.f64 (*.f64 x x) 3))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (hypot.f64 1 (pow.f64 x 3)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 1 (+.f64 (pow.f64 (*.f64 x x) 6) (pow.f64 (*.f64 x x) 3))) (+.f64 1 (pow.f64 (*.f64 x x) 9))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 1 (pow.f64 (*.f64 x x) 3)) (+.f64 1 (pow.f64 (*.f64 x x) 6))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 1 (pow.f64 (*.f64 x x) 3)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 1 (pow.f64 (*.f64 x x) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 1 (pow.f64 (*.f64 x x) 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 1 (pow.f64 (*.f64 x x) 3)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 1 (pow.f64 (*.f64 x x) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 1 (pow.f64 (*.f64 x x) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log1p.f64 (pow.f64 (*.f64 x x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log1p.f64 (pow.f64 (*.f64 x x) 3)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (pow.f64 (*.f64 x x) 3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (*.f64 x (*.f64 x (pow.f64 x 3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (*.f64 (pow.f64 x 3) (*.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x x) (*.f64 x (pow.f64 x 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (*.f64 x x) 3) 1 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (pow.f64 x 3)) (*.f64 x x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (cbrt.f64 x)) (*.f64 (cbrt.f64 (*.f64 x x)) (*.f64 x (pow.f64 x 3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (*.f64 x (cbrt.f64 x)) 2) (*.f64 (*.f64 x (cbrt.f64 x)) (*.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x 3) (pow.f64 x 3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 x (pow.f64 x 3)) x) x 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 x x) (pow.f64 (*.f64 x (cbrt.f64 x)) 2)) (*.f64 x (cbrt.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 x x) (pow.f64 x 3)) x 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 x (pow.f64 x 3)) (*.f64 x (cbrt.f64 x))) (cbrt.f64 (*.f64 x x)) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (pow.f64 (*.f64 x x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (pow.f64 (*.f64 x x) 3))) (cbrt.f64 (exp.f64 (pow.f64 (*.f64 x x) 3))))) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 (*.f64 x x) 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (*.f64 x x) 3)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (*.f64 x x) 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (*.f64 x x) 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (*.f64 x x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 x (*.f64 x (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 (pow.f64 x 3) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x x) (*.f64 x (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 x x) 3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (pow.f64 x 3)) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (cbrt.f64 x)) (*.f64 (cbrt.f64 (*.f64 x x)) (*.f64 x (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 x (cbrt.f64 x)) 2) (*.f64 (*.f64 x (cbrt.f64 x)) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 x 3) (pow.f64 x 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x (pow.f64 x 3)) x) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x x) (pow.f64 (*.f64 x (cbrt.f64 x)) 2)) (*.f64 x (cbrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x x) (pow.f64 x 3)) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x (pow.f64 x 3)) (*.f64 x (cbrt.f64 x))) (cbrt.f64 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (pow.f64 (*.f64 x x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x x) 6))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (*.f64 x x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (*.f64 x x) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 1 (exp.f64 (pow.f64 (*.f64 x x) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 1 (+.f64 1 (expm1.f64 (pow.f64 (*.f64 x x) 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x x) 9))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (*.f64 x x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (*.f64 (log1p.f64 (pow.f64 (*.f64 x x) 3)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (*.f64 x x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 3 (*.f64 2 (log.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (*.f64 2 (log.f64 x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 1 (pow.f64 (*.f64 x x) 3)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 1 (pow.f64 (*.f64 x x) 3)) 1 -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (+.f64 1 (pow.f64 (*.f64 x x) 3))) (pow.f64 (cbrt.f64 (+.f64 1 (pow.f64 (*.f64 x x) 3))) 2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 1 (pow.f64 (*.f64 x x) 3))) 2) (cbrt.f64 (+.f64 1 (pow.f64 (*.f64 x x) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (hypot.f64 1 (pow.f64 x 3)) (hypot.f64 1 (pow.f64 x 3)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 1 (pow.f64 (*.f64 x x) 9)) (/.f64 1 (+.f64 1 (+.f64 (pow.f64 (*.f64 x x) 6) (pow.f64 (*.f64 x x) 3)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 1 (pow.f64 (*.f64 x x) 6)) (/.f64 1 (+.f64 1 (pow.f64 (*.f64 x x) 3))) -1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (pow.f64 (/.f64 (hypot.f64 1 (pow.f64 x 3)) (hypot.f64 1 (hypot.f64 x (*.f64 x x)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (pow.f64 (/.f64 (hypot.f64 1 (pow.f64 x 3)) (hypot.f64 1 (hypot.f64 x (*.f64 x x)))) 2))) (cbrt.f64 (exp.f64 (pow.f64 (/.f64 (hypot.f64 1 (pow.f64 x 3)) (hypot.f64 1 (hypot.f64 x (*.f64 x x)))) 2))))) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 (/.f64 (hypot.f64 1 (pow.f64 x 3)) (hypot.f64 1 (hypot.f64 x (*.f64 x x)))) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (/.f64 (hypot.f64 1 (pow.f64 x 3)) (hypot.f64 1 (hypot.f64 x (*.f64 x x)))) 2)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (/.f64 (hypot.f64 1 (pow.f64 x 3)) (hypot.f64 1 (hypot.f64 x (*.f64 x x)))) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (/.f64 (hypot.f64 1 (pow.f64 x 3)) (hypot.f64 1 (hypot.f64 x (*.f64 x x)))) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (/.f64 (hypot.f64 1 (pow.f64 x 3)) (hypot.f64 1 (hypot.f64 x (*.f64 x x)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1 (pow.f64 (*.f64 x x) 3)) (/.f64 1 (fma.f64 x (+.f64 (pow.f64 x 3) x) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 (hypot.f64 1 (pow.f64 x 3)) (hypot.f64 1 (hypot.f64 x (*.f64 x x)))) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 1 (pow.f64 (*.f64 x x) 3))) 2) (*.f64 (cbrt.f64 (+.f64 1 (pow.f64 (*.f64 x x) 3))) (/.f64 1 (fma.f64 x (+.f64 (pow.f64 x 3) x) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (/.f64 (hypot.f64 1 (pow.f64 x 3)) (hypot.f64 1 (hypot.f64 x (*.f64 x x)))) 2)) (pow.f64 (cbrt.f64 (pow.f64 (/.f64 (hypot.f64 1 (pow.f64 x 3)) (hypot.f64 1 (hypot.f64 x (*.f64 x x)))) 2)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (/.f64 (hypot.f64 1 (pow.f64 x 3)) (hypot.f64 1 (hypot.f64 x (*.f64 x x)))) 2)) 2) (cbrt.f64 (pow.f64 (/.f64 (hypot.f64 1 (pow.f64 x 3)) (hypot.f64 1 (hypot.f64 x (*.f64 x x)))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 1 (pow.f64 x 3)) (*.f64 (hypot.f64 1 (pow.f64 x 3)) (/.f64 1 (fma.f64 x (+.f64 (pow.f64 x 3) x) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (hypot.f64 1 (pow.f64 x 3)) (hypot.f64 1 (hypot.f64 x (*.f64 x x)))) (/.f64 (hypot.f64 1 (pow.f64 x 3)) (hypot.f64 1 (hypot.f64 x (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (*.f64 x x) 3) -1) (/.f64 1 (neg.f64 (fma.f64 x (+.f64 (pow.f64 x 3) x) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (fma.f64 x (+.f64 (pow.f64 x 3) x) 1)) (+.f64 1 (pow.f64 (*.f64 x x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 1 (pow.f64 (*.f64 x x) 3))) 2) 1) (/.f64 (cbrt.f64 (+.f64 1 (pow.f64 (*.f64 x x) 3))) (fma.f64 x (+.f64 (pow.f64 x 3) x) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (hypot.f64 1 (pow.f64 x 3)) 1) (/.f64 (hypot.f64 1 (pow.f64 x 3)) (fma.f64 x (+.f64 (pow.f64 x 3) x) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 (cbrt.f64 (fma.f64 x (+.f64 (pow.f64 x 3) x) 1)) 2)) (/.f64 (+.f64 1 (pow.f64 (*.f64 x x) 3)) (cbrt.f64 (fma.f64 x (+.f64 (pow.f64 x 3) x) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 1 (pow.f64 (*.f64 x x) 3))) 2) (pow.f64 (cbrt.f64 (fma.f64 x (+.f64 (pow.f64 x 3) x) 1)) 2)) (cbrt.f64 (pow.f64 (/.f64 (hypot.f64 1 (pow.f64 x 3)) (hypot.f64 1 (hypot.f64 x (*.f64 x x)))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (hypot.f64 1 (pow.f64 x 3)) (pow.f64 (cbrt.f64 (fma.f64 x (+.f64 (pow.f64 x 3) x) 1)) 2)) (/.f64 (hypot.f64 1 (pow.f64 x 3)) (cbrt.f64 (fma.f64 x (+.f64 (pow.f64 x 3) x) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (hypot.f64 1 (hypot.f64 x (*.f64 x x)))) (/.f64 (+.f64 1 (pow.f64 (*.f64 x x) 3)) (hypot.f64 1 (hypot.f64 x (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 1 (pow.f64 (*.f64 x x) 3))) 2) (hypot.f64 1 (hypot.f64 x (*.f64 x x)))) (/.f64 (cbrt.f64 (+.f64 1 (pow.f64 (*.f64 x x) 3))) (hypot.f64 1 (hypot.f64 x (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 1 (pow.f64 (*.f64 x x) 3)) (+.f64 1 (pow.f64 (pow.f64 (hypot.f64 x (*.f64 x x)) 2) 3))) (fma.f64 (pow.f64 (hypot.f64 x (*.f64 x x)) 2) (fma.f64 x (+.f64 (pow.f64 x 3) x) -1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 1 (pow.f64 (*.f64 x x) 3)) (-.f64 1 (pow.f64 (pow.f64 (hypot.f64 x (*.f64 x x)) 2) 2))) (-.f64 1 (pow.f64 (hypot.f64 x (*.f64 x x)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (hypot.f64 1 (pow.f64 x 3)) (hypot.f64 1 (hypot.f64 x (*.f64 x x)))) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (/.f64 (hypot.f64 1 (pow.f64 x 3)) (hypot.f64 1 (hypot.f64 x (*.f64 x x)))) 2) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (pow.f64 (/.f64 (hypot.f64 1 (pow.f64 x 3)) (hypot.f64 1 (hypot.f64 x (*.f64 x x)))) 2)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (hypot.f64 1 (pow.f64 x 3)) (hypot.f64 1 (hypot.f64 x (*.f64 x x)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 x (+.f64 (pow.f64 x 3) x) 1) (+.f64 1 (pow.f64 (*.f64 x x) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 (fma.f64 x (+.f64 (pow.f64 x 3) x) 1) (+.f64 1 (pow.f64 (*.f64 x x) 3))) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (+.f64 1 (pow.f64 (*.f64 x x) 3)) (neg.f64 (fma.f64 x (+.f64 (pow.f64 x 3) x) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (pow.f64 (/.f64 (hypot.f64 1 (pow.f64 x 3)) (hypot.f64 1 (hypot.f64 x (*.f64 x x)))) 2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (/.f64 (hypot.f64 1 (pow.f64 x 3)) (hypot.f64 1 (hypot.f64 x (*.f64 x x)))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (/.f64 (hypot.f64 1 (pow.f64 x 3)) (hypot.f64 1 (hypot.f64 x (*.f64 x x)))) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (/.f64 (hypot.f64 1 (pow.f64 x 3)) (hypot.f64 1 (hypot.f64 x (*.f64 x x)))) 2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (+.f64 1 (pow.f64 (*.f64 x x) 3)) 3) (pow.f64 (fma.f64 x (+.f64 (pow.f64 x 3) x) 1) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (/.f64 (hypot.f64 1 (pow.f64 x 3)) (hypot.f64 1 (hypot.f64 x (*.f64 x x)))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (/.f64 (hypot.f64 1 (pow.f64 x 3)) (hypot.f64 1 (hypot.f64 x (*.f64 x x)))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (log1p.f64 (pow.f64 (*.f64 x x) 3)) (log1p.f64 (pow.f64 (hypot.f64 x (*.f64 x x)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (-.f64 (log1p.f64 (pow.f64 (*.f64 x x) 3)) (log1p.f64 (pow.f64 (hypot.f64 x (*.f64 x x)) 2))) 1))))))

simplify109.0ms (1.4%)

Algorithm
egg-herbie
Rules
818×fma-def_binary64
514×distribute-rgt-neg-in_binary64
504×distribute-lft-neg-in_binary64
370×fma-neg_binary64
328×sub-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
012251
129224
262224
3157224
4608224
51339224
62693224
74380224
86204224
Stop Event
node limit
Counts
157 → 130
Calls
Call 1
Inputs
1
(+.f64 (*.f64 -1 (pow.f64 x 6)) 1)
(+.f64 (*.f64 -1 (pow.f64 x 6)) 1)
(+.f64 (*.f64 -1 (pow.f64 x 6)) 1)
(*.f64 -1 (pow.f64 x 6))
(+.f64 (*.f64 -1 (pow.f64 x 6)) 1)
(+.f64 (*.f64 -1 (pow.f64 x 6)) 1)
(+.f64 (*.f64 -1 (pow.f64 x 6)) 1)
(*.f64 -1 (pow.f64 x 6))
(+.f64 (*.f64 -1 (pow.f64 x 6)) 1)
(+.f64 (*.f64 -1 (pow.f64 x 6)) 1)
(+.f64 (*.f64 -1 (pow.f64 x 6)) 1)
(*.f64 -1 (pow.f64 x 6))
(*.f64 -1 (pow.f64 x 6))
(*.f64 -1 (pow.f64 x 6))
(*.f64 -1 (pow.f64 x 6))
(*.f64 -1 (pow.f64 x 6))
(*.f64 -1 (pow.f64 x 6))
(*.f64 -1 (pow.f64 x 6))
(*.f64 -1 (pow.f64 x 6))
(*.f64 -1 (pow.f64 x 6))
(*.f64 -1 (pow.f64 x 6))
(*.f64 -1 (pow.f64 x 6))
(*.f64 -1 (pow.f64 x 6))
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)))
Outputs
1
(+.f64 (*.f64 -1 (pow.f64 x 6)) 1)
(fma.f64 -1 (pow.f64 x 6) 1)
(-.f64 1 (pow.f64 x 6))
(+.f64 (*.f64 -1 (pow.f64 x 6)) 1)
(fma.f64 -1 (pow.f64 x 6) 1)
(-.f64 1 (pow.f64 x 6))
(+.f64 (*.f64 -1 (pow.f64 x 6)) 1)
(fma.f64 -1 (pow.f64 x 6) 1)
(-.f64 1 (pow.f64 x 6))
(*.f64 -1 (pow.f64 x 6))
(neg.f64 (pow.f64 x 6))
(+.f64 (*.f64 -1 (pow.f64 x 6)) 1)
(fma.f64 -1 (pow.f64 x 6) 1)
(-.f64 1 (pow.f64 x 6))
(+.f64 (*.f64 -1 (pow.f64 x 6)) 1)
(fma.f64 -1 (pow.f64 x 6) 1)
(-.f64 1 (pow.f64 x 6))
(+.f64 (*.f64 -1 (pow.f64 x 6)) 1)
(fma.f64 -1 (pow.f64 x 6) 1)
(-.f64 1 (pow.f64 x 6))
(*.f64 -1 (pow.f64 x 6))
(neg.f64 (pow.f64 x 6))
(+.f64 (*.f64 -1 (pow.f64 x 6)) 1)
(fma.f64 -1 (pow.f64 x 6) 1)
(-.f64 1 (pow.f64 x 6))
(+.f64 (*.f64 -1 (pow.f64 x 6)) 1)
(fma.f64 -1 (pow.f64 x 6) 1)
(-.f64 1 (pow.f64 x 6))
(+.f64 (*.f64 -1 (pow.f64 x 6)) 1)
(fma.f64 -1 (pow.f64 x 6) 1)
(-.f64 1 (pow.f64 x 6))
(*.f64 -1 (pow.f64 x 6))
(neg.f64 (pow.f64 x 6))
(*.f64 -1 (pow.f64 x 6))
(neg.f64 (pow.f64 x 6))
(*.f64 -1 (pow.f64 x 6))
(neg.f64 (pow.f64 x 6))
(*.f64 -1 (pow.f64 x 6))
(neg.f64 (pow.f64 x 6))
(*.f64 -1 (pow.f64 x 6))
(neg.f64 (pow.f64 x 6))
(*.f64 -1 (pow.f64 x 6))
(neg.f64 (pow.f64 x 6))
(*.f64 -1 (pow.f64 x 6))
(neg.f64 (pow.f64 x 6))
(*.f64 -1 (pow.f64 x 6))
(neg.f64 (pow.f64 x 6))
(*.f64 -1 (pow.f64 x 6))
(neg.f64 (pow.f64 x 6))
(*.f64 -1 (pow.f64 x 6))
(neg.f64 (pow.f64 x 6))
(*.f64 -1 (pow.f64 x 6))
(neg.f64 (pow.f64 x 6))
(*.f64 -1 (pow.f64 x 6))
(neg.f64 (pow.f64 x 6))
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)

localize65.0ms (0.8%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(log.f64 (fma.f64 x x -1))
0.1b
(*.f64 (exp.f64 (neg.f64 (log.f64 (fma.f64 x x -1)))) -10)
0.4b
(exp.f64 (neg.f64 (log.f64 (fma.f64 x x -1))))
Compiler

Compiled 35 to 24 computations (31.4% saved)

series10.0ms (0.1%)

Counts
3 → 36
Calls

9 calls:

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

rewrite109.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
596×pow1_binary64
553×add-log-exp_binary64
550×log1p-expm1-u_binary64
550×expm1-log1p-u_binary64
543×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify223.0ms (2.8%)

Algorithm
egg-herbie
Rules
535×fma-def_binary64
421×associate-/l*_binary64
351×associate-+l+_binary64
301×associate-/l/_binary64
262×fma-neg_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0991093
1292845
2896660
32734571
47483571
Stop Event
node limit
Counts
111 → 137
Calls
Call 1
Inputs
(exp.f64 (neg.f64 (log.f64 -1)))
(+.f64 (*.f64 (exp.f64 (neg.f64 (log.f64 -1))) (pow.f64 x 2)) (exp.f64 (neg.f64 (log.f64 -1))))
(+.f64 (*.f64 (exp.f64 (neg.f64 (log.f64 -1))) (pow.f64 x 2)) (+.f64 (exp.f64 (neg.f64 (log.f64 -1))) (*.f64 (exp.f64 (neg.f64 (log.f64 -1))) (pow.f64 x 4))))
(+.f64 (*.f64 (exp.f64 (neg.f64 (log.f64 -1))) (pow.f64 x 6)) (+.f64 (*.f64 (exp.f64 (neg.f64 (log.f64 -1))) (pow.f64 x 2)) (+.f64 (exp.f64 (neg.f64 (log.f64 -1))) (*.f64 (exp.f64 (neg.f64 (log.f64 -1))) (pow.f64 x 4)))))
(exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 1 x)))))
(+.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 1 x))))) (/.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 1 x))))) (pow.f64 x 2)))
(+.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 1 x))))) (+.f64 (/.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 1 x))))) (pow.f64 x 2)) (/.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 1 x))))) (pow.f64 x 4))))
(+.f64 (/.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 1 x))))) (pow.f64 x 6)) (+.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 1 x))))) (+.f64 (/.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 1 x))))) (pow.f64 x 2)) (/.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 1 x))))) (pow.f64 x 4)))))
(exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 -1 x)))))
(+.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 -1 x))))) (/.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 -1 x))))) (pow.f64 x 2)))
(+.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 -1 x))))) (+.f64 (/.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 -1 x))))) (pow.f64 x 2)) (/.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 -1 x))))) (pow.f64 x 4))))
(+.f64 (/.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 -1 x))))) (pow.f64 x 6)) (+.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 -1 x))))) (+.f64 (/.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 -1 x))))) (pow.f64 x 2)) (/.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 -1 x))))) (pow.f64 x 4)))))
(*.f64 -10 (exp.f64 (neg.f64 (log.f64 -1))))
(+.f64 (*.f64 -10 (exp.f64 (neg.f64 (log.f64 -1)))) (*.f64 -10 (*.f64 (exp.f64 (neg.f64 (log.f64 -1))) (pow.f64 x 2))))
(+.f64 (*.f64 -10 (exp.f64 (neg.f64 (log.f64 -1)))) (+.f64 (*.f64 -10 (*.f64 (exp.f64 (neg.f64 (log.f64 -1))) (pow.f64 x 2))) (*.f64 -10 (*.f64 (exp.f64 (neg.f64 (log.f64 -1))) (pow.f64 x 4)))))
(+.f64 (*.f64 -10 (exp.f64 (neg.f64 (log.f64 -1)))) (+.f64 (*.f64 -10 (*.f64 (exp.f64 (neg.f64 (log.f64 -1))) (pow.f64 x 6))) (+.f64 (*.f64 -10 (*.f64 (exp.f64 (neg.f64 (log.f64 -1))) (pow.f64 x 2))) (*.f64 -10 (*.f64 (exp.f64 (neg.f64 (log.f64 -1))) (pow.f64 x 4))))))
(*.f64 -10 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 1 x))))))
(+.f64 (*.f64 -10 (/.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 1 x))))) (pow.f64 x 2))) (*.f64 -10 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 1 x)))))))
(+.f64 (*.f64 -10 (/.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 1 x))))) (pow.f64 x 4))) (+.f64 (*.f64 -10 (/.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 1 x))))) (pow.f64 x 2))) (*.f64 -10 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 1 x))))))))
(+.f64 (*.f64 -10 (/.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 1 x))))) (pow.f64 x 4))) (+.f64 (*.f64 -10 (/.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 1 x))))) (pow.f64 x 2))) (+.f64 (*.f64 -10 (/.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 1 x))))) (pow.f64 x 6))) (*.f64 -10 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 1 x)))))))))
(*.f64 -10 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 -1 x))))))
(+.f64 (*.f64 -10 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 -1 x)))))) (*.f64 -10 (/.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 -1 x))))) (pow.f64 x 2))))
(+.f64 (*.f64 -10 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 -1 x)))))) (+.f64 (*.f64 -10 (/.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 -1 x))))) (pow.f64 x 2))) (*.f64 -10 (/.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 -1 x))))) (pow.f64 x 4)))))
(+.f64 (*.f64 -10 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 -1 x)))))) (+.f64 (*.f64 -10 (/.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 -1 x))))) (pow.f64 x 2))) (+.f64 (*.f64 -10 (/.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 -1 x))))) (pow.f64 x 4))) (*.f64 -10 (/.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 -1 x))))) (pow.f64 x 6))))))
(log.f64 -1)
(+.f64 (*.f64 -1 (pow.f64 x 2)) (log.f64 -1))
(+.f64 (*.f64 -1/2 (pow.f64 x 4)) (+.f64 (*.f64 -1 (pow.f64 x 2)) (log.f64 -1)))
(+.f64 (*.f64 -1/2 (pow.f64 x 4)) (+.f64 (*.f64 -1/3 (pow.f64 x 6)) (+.f64 (*.f64 -1 (pow.f64 x 2)) (log.f64 -1))))
(*.f64 -2 (log.f64 (/.f64 1 x)))
(-.f64 (*.f64 -2 (log.f64 (/.f64 1 x))) (/.f64 1 (pow.f64 x 2)))
(-.f64 (*.f64 -2 (log.f64 (/.f64 1 x))) (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 4))) (/.f64 1 (pow.f64 x 2))))
(-.f64 (*.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 1/3 (/.f64 1 (pow.f64 x 6))))))
(*.f64 -2 (log.f64 (/.f64 -1 x)))
(-.f64 (*.f64 -2 (log.f64 (/.f64 -1 x))) (/.f64 1 (pow.f64 x 2)))
(-.f64 (*.f64 -2 (log.f64 (/.f64 -1 x))) (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 4))) (/.f64 1 (pow.f64 x 2))))
(-.f64 (*.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 1/3 (/.f64 1 (pow.f64 x 6))))))
Outputs
(exp.f64 (neg.f64 (log.f64 -1)))
-1
(+.f64 (*.f64 (exp.f64 (neg.f64 (log.f64 -1))) (pow.f64 x 2)) (exp.f64 (neg.f64 (log.f64 -1))))
(fma.f64 (exp.f64 (neg.f64 (log.f64 -1))) (*.f64 x x) (exp.f64 (neg.f64 (log.f64 -1))))
(fma.f64 -1 (*.f64 x x) -1)
(-.f64 -1 (*.f64 x x))
(neg.f64 (fma.f64 x x 1))
(+.f64 (*.f64 (exp.f64 (neg.f64 (log.f64 -1))) (pow.f64 x 2)) (+.f64 (exp.f64 (neg.f64 (log.f64 -1))) (*.f64 (exp.f64 (neg.f64 (log.f64 -1))) (pow.f64 x 4))))
(+.f64 (fma.f64 (exp.f64 (neg.f64 (log.f64 -1))) (*.f64 x x) (exp.f64 (neg.f64 (log.f64 -1)))) (*.f64 (exp.f64 (neg.f64 (log.f64 -1))) (pow.f64 x 4)))
(fma.f64 -1 (*.f64 x x) (fma.f64 -1 (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 (exp.f64 (neg.f64 (log.f64 -1))) (pow.f64 x 6)) (+.f64 (*.f64 (exp.f64 (neg.f64 (log.f64 -1))) (pow.f64 x 2)) (+.f64 (exp.f64 (neg.f64 (log.f64 -1))) (*.f64 (exp.f64 (neg.f64 (log.f64 -1))) (pow.f64 x 4)))))
(fma.f64 (exp.f64 (neg.f64 (log.f64 -1))) (pow.f64 x 6) (+.f64 (fma.f64 (exp.f64 (neg.f64 (log.f64 -1))) (*.f64 x x) (exp.f64 (neg.f64 (log.f64 -1)))) (*.f64 (exp.f64 (neg.f64 (log.f64 -1))) (pow.f64 x 4))))
(fma.f64 -1 (pow.f64 x 6) (fma.f64 -1 (*.f64 x x) (fma.f64 -1 (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))))
(exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 1 x)))))
(exp.f64 (*.f64 2 (neg.f64 (log.f64 x))))
(pow.f64 (exp.f64 -2) (log.f64 x))
(pow.f64 x -2)
(+.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 1 x))))) (/.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 1 x))))) (pow.f64 x 2)))
(+.f64 (exp.f64 (*.f64 2 (neg.f64 (log.f64 x)))) (/.f64 (exp.f64 (*.f64 2 (neg.f64 (log.f64 x)))) (*.f64 x x)))
(+.f64 (pow.f64 (exp.f64 -2) (log.f64 x)) (/.f64 (pow.f64 (exp.f64 -2) (log.f64 x)) (*.f64 x x)))
(+.f64 (pow.f64 x -2) (/.f64 (pow.f64 x -2) (*.f64 x x)))
(+.f64 (pow.f64 x -2) (/.f64 1 (pow.f64 x 4)))
(+.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 1 x))))) (+.f64 (/.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 1 x))))) (pow.f64 x 2)) (/.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 1 x))))) (pow.f64 x 4))))
(+.f64 (exp.f64 (*.f64 2 (neg.f64 (log.f64 x)))) (+.f64 (/.f64 (exp.f64 (*.f64 2 (neg.f64 (log.f64 x)))) (*.f64 x x)) (/.f64 (exp.f64 (*.f64 2 (neg.f64 (log.f64 x)))) (pow.f64 x 4))))
(+.f64 (pow.f64 (exp.f64 -2) (log.f64 x)) (+.f64 (/.f64 (pow.f64 (exp.f64 -2) (log.f64 x)) (*.f64 x x)) (/.f64 (pow.f64 (exp.f64 -2) (log.f64 x)) (pow.f64 x 4))))
(+.f64 (/.f64 (pow.f64 x -2) (*.f64 x x)) (+.f64 (pow.f64 x -2) (/.f64 (pow.f64 x -2) (pow.f64 x 4))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (pow.f64 x -2) (/.f64 1 (pow.f64 x 6))))
(+.f64 (/.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 1 x))))) (pow.f64 x 6)) (+.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 1 x))))) (+.f64 (/.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 1 x))))) (pow.f64 x 2)) (/.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 1 x))))) (pow.f64 x 4)))))
(+.f64 (+.f64 (exp.f64 (*.f64 2 (neg.f64 (log.f64 x)))) (+.f64 (/.f64 (exp.f64 (*.f64 2 (neg.f64 (log.f64 x)))) (*.f64 x x)) (/.f64 (exp.f64 (*.f64 2 (neg.f64 (log.f64 x)))) (pow.f64 x 4)))) (/.f64 (exp.f64 (*.f64 2 (neg.f64 (log.f64 x)))) (pow.f64 x 6)))
(+.f64 (+.f64 (pow.f64 (exp.f64 -2) (log.f64 x)) (/.f64 (pow.f64 (exp.f64 -2) (log.f64 x)) (*.f64 x x))) (+.f64 (/.f64 (pow.f64 (exp.f64 -2) (log.f64 x)) (pow.f64 x 4)) (/.f64 (pow.f64 (exp.f64 -2) (log.f64 x)) (pow.f64 x 6))))
(+.f64 (pow.f64 x -2) (+.f64 (/.f64 (pow.f64 x -2) (*.f64 x x)) (+.f64 (/.f64 (pow.f64 x -2) (pow.f64 x 4)) (/.f64 (pow.f64 x -2) (pow.f64 x 6)))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (pow.f64 x 6)) (+.f64 (pow.f64 x -2) (/.f64 (pow.f64 x -2) (pow.f64 x 6)))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (pow.f64 x 6)) (+.f64 (pow.f64 x -2) (/.f64 1 (pow.f64 (*.f64 x x) 4)))))
(exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 -1 x)))))
(exp.f64 (*.f64 2 (neg.f64 (log.f64 x))))
(pow.f64 (exp.f64 -2) (log.f64 x))
(pow.f64 x -2)
(+.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 -1 x))))) (/.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 -1 x))))) (pow.f64 x 2)))
(+.f64 (exp.f64 (*.f64 2 (neg.f64 (log.f64 x)))) (/.f64 (exp.f64 (*.f64 2 (neg.f64 (log.f64 x)))) (*.f64 x x)))
(+.f64 (pow.f64 (exp.f64 -2) (log.f64 x)) (/.f64 (pow.f64 (exp.f64 -2) (log.f64 x)) (*.f64 x x)))
(+.f64 (pow.f64 x -2) (/.f64 (pow.f64 x -2) (*.f64 x x)))
(+.f64 (pow.f64 x -2) (/.f64 1 (pow.f64 x 4)))
(+.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 -1 x))))) (+.f64 (/.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 -1 x))))) (pow.f64 x 2)) (/.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 -1 x))))) (pow.f64 x 4))))
(+.f64 (exp.f64 (*.f64 2 (neg.f64 (log.f64 x)))) (+.f64 (/.f64 (exp.f64 (*.f64 2 (neg.f64 (log.f64 x)))) (*.f64 x x)) (/.f64 (exp.f64 (*.f64 2 (neg.f64 (log.f64 x)))) (pow.f64 x 4))))
(+.f64 (pow.f64 (exp.f64 -2) (log.f64 x)) (+.f64 (/.f64 (pow.f64 (exp.f64 -2) (log.f64 x)) (*.f64 x x)) (/.f64 (pow.f64 (exp.f64 -2) (log.f64 x)) (pow.f64 x 4))))
(+.f64 (/.f64 (pow.f64 x -2) (*.f64 x x)) (+.f64 (pow.f64 x -2) (/.f64 (pow.f64 x -2) (pow.f64 x 4))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (pow.f64 x -2) (/.f64 1 (pow.f64 x 6))))
(+.f64 (/.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 -1 x))))) (pow.f64 x 6)) (+.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 -1 x))))) (+.f64 (/.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 -1 x))))) (pow.f64 x 2)) (/.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 -1 x))))) (pow.f64 x 4)))))
(+.f64 (+.f64 (exp.f64 (*.f64 2 (neg.f64 (log.f64 x)))) (+.f64 (/.f64 (exp.f64 (*.f64 2 (neg.f64 (log.f64 x)))) (*.f64 x x)) (/.f64 (exp.f64 (*.f64 2 (neg.f64 (log.f64 x)))) (pow.f64 x 4)))) (/.f64 (exp.f64 (*.f64 2 (neg.f64 (log.f64 x)))) (pow.f64 x 6)))
(+.f64 (+.f64 (pow.f64 (exp.f64 -2) (log.f64 x)) (/.f64 (pow.f64 (exp.f64 -2) (log.f64 x)) (*.f64 x x))) (+.f64 (/.f64 (pow.f64 (exp.f64 -2) (log.f64 x)) (pow.f64 x 4)) (/.f64 (pow.f64 (exp.f64 -2) (log.f64 x)) (pow.f64 x 6))))
(+.f64 (pow.f64 x -2) (+.f64 (/.f64 (pow.f64 x -2) (*.f64 x x)) (+.f64 (/.f64 (pow.f64 x -2) (pow.f64 x 4)) (/.f64 (pow.f64 x -2) (pow.f64 x 6)))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (pow.f64 x 6)) (+.f64 (pow.f64 x -2) (/.f64 (pow.f64 x -2) (pow.f64 x 6)))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (pow.f64 x 6)) (+.f64 (pow.f64 x -2) (/.f64 1 (pow.f64 (*.f64 x x) 4)))))
(*.f64 -10 (exp.f64 (neg.f64 (log.f64 -1))))
(*.f64 (exp.f64 (neg.f64 (log.f64 -1))) -10)
10
(+.f64 (*.f64 -10 (exp.f64 (neg.f64 (log.f64 -1)))) (*.f64 -10 (*.f64 (exp.f64 (neg.f64 (log.f64 -1))) (pow.f64 x 2))))
(*.f64 -10 (fma.f64 (exp.f64 (neg.f64 (log.f64 -1))) (*.f64 x x) (exp.f64 (neg.f64 (log.f64 -1)))))
(fma.f64 10 (*.f64 x x) 10)
(fma.f64 (*.f64 x x) 10 10)
(*.f64 10 (fma.f64 x x 1))
(+.f64 (*.f64 -10 (exp.f64 (neg.f64 (log.f64 -1)))) (+.f64 (*.f64 -10 (*.f64 (exp.f64 (neg.f64 (log.f64 -1))) (pow.f64 x 2))) (*.f64 -10 (*.f64 (exp.f64 (neg.f64 (log.f64 -1))) (pow.f64 x 4)))))
(+.f64 (*.f64 -10 (fma.f64 (exp.f64 (neg.f64 (log.f64 -1))) (*.f64 x x) (exp.f64 (neg.f64 (log.f64 -1))))) (*.f64 (*.f64 (exp.f64 (neg.f64 (log.f64 -1))) (pow.f64 x 4)) -10))
(+.f64 10 (*.f64 10 (+.f64 (pow.f64 x 4) (*.f64 x x))))
(fma.f64 10 (fma.f64 x x (pow.f64 x 4)) 10)
(+.f64 (*.f64 -10 (exp.f64 (neg.f64 (log.f64 -1)))) (+.f64 (*.f64 -10 (*.f64 (exp.f64 (neg.f64 (log.f64 -1))) (pow.f64 x 6))) (+.f64 (*.f64 -10 (*.f64 (exp.f64 (neg.f64 (log.f64 -1))) (pow.f64 x 2))) (*.f64 -10 (*.f64 (exp.f64 (neg.f64 (log.f64 -1))) (pow.f64 x 4))))))
(fma.f64 -10 (exp.f64 (neg.f64 (log.f64 -1))) (fma.f64 -10 (*.f64 (exp.f64 (neg.f64 (log.f64 -1))) (pow.f64 x 6)) (*.f64 -10 (+.f64 (*.f64 (exp.f64 (neg.f64 (log.f64 -1))) (*.f64 x x)) (*.f64 (exp.f64 (neg.f64 (log.f64 -1))) (pow.f64 x 4))))))
(+.f64 10 (fma.f64 10 (pow.f64 x 6) (*.f64 10 (+.f64 (pow.f64 x 4) (*.f64 x x)))))
(fma.f64 (pow.f64 x 6) 10 (fma.f64 10 (fma.f64 x x (pow.f64 x 4)) 10))
(*.f64 -10 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 1 x))))))
(*.f64 (exp.f64 (*.f64 2 (neg.f64 (log.f64 x)))) -10)
(/.f64 -10 (pow.f64 (/.f64 1 x) -2))
(*.f64 (pow.f64 x -2) -10)
(+.f64 (*.f64 -10 (/.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 1 x))))) (pow.f64 x 2))) (*.f64 -10 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 1 x)))))))
(*.f64 -10 (+.f64 (exp.f64 (*.f64 2 (neg.f64 (log.f64 x)))) (/.f64 (exp.f64 (*.f64 2 (neg.f64 (log.f64 x)))) (*.f64 x x))))
(*.f64 (+.f64 (pow.f64 (exp.f64 -2) (log.f64 x)) (/.f64 (pow.f64 (exp.f64 -2) (log.f64 x)) (*.f64 x x))) -10)
(*.f64 (+.f64 (pow.f64 x -2) (/.f64 (pow.f64 x -2) (*.f64 x x))) -10)
(fma.f64 (pow.f64 x -2) -10 (/.f64 -10 (pow.f64 x 4)))
(+.f64 (*.f64 -10 (/.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 1 x))))) (pow.f64 x 4))) (+.f64 (*.f64 -10 (/.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 1 x))))) (pow.f64 x 2))) (*.f64 -10 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 1 x))))))))
(fma.f64 -10 (/.f64 (exp.f64 (*.f64 2 (neg.f64 (log.f64 x)))) (pow.f64 x 4)) (*.f64 -10 (+.f64 (exp.f64 (*.f64 2 (neg.f64 (log.f64 x)))) (/.f64 (exp.f64 (*.f64 2 (neg.f64 (log.f64 x)))) (*.f64 x x)))))
(*.f64 -10 (+.f64 (pow.f64 (exp.f64 -2) (log.f64 x)) (+.f64 (/.f64 (pow.f64 (exp.f64 -2) (log.f64 x)) (*.f64 x x)) (/.f64 (pow.f64 (exp.f64 -2) (log.f64 x)) (pow.f64 x 4)))))
(fma.f64 (pow.f64 x -2) -10 (*.f64 (/.f64 (pow.f64 x -2) (*.f64 x x)) (+.f64 -10 (/.f64 -10 (*.f64 x x)))))
(+.f64 (/.f64 -10 (pow.f64 x 4)) (fma.f64 (pow.f64 x -2) -10 (/.f64 -10 (pow.f64 x 6))))
(+.f64 (*.f64 -10 (/.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 1 x))))) (pow.f64 x 4))) (+.f64 (*.f64 -10 (/.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 1 x))))) (pow.f64 x 2))) (+.f64 (*.f64 -10 (/.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 1 x))))) (pow.f64 x 6))) (*.f64 -10 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 1 x)))))))))
(fma.f64 -10 (/.f64 (exp.f64 (*.f64 2 (neg.f64 (log.f64 x)))) (pow.f64 x 4)) (fma.f64 -10 (/.f64 (exp.f64 (*.f64 2 (neg.f64 (log.f64 x)))) (*.f64 x x)) (*.f64 -10 (+.f64 (/.f64 (exp.f64 (*.f64 2 (neg.f64 (log.f64 x)))) (pow.f64 x 6)) (exp.f64 (*.f64 2 (neg.f64 (log.f64 x))))))))
(fma.f64 (/.f64 (pow.f64 (exp.f64 -2) (log.f64 x)) (pow.f64 x 4)) -10 (*.f64 -10 (+.f64 (/.f64 (pow.f64 (exp.f64 -2) (log.f64 x)) (*.f64 x x)) (+.f64 (pow.f64 (exp.f64 -2) (log.f64 x)) (/.f64 (pow.f64 (exp.f64 -2) (log.f64 x)) (pow.f64 x 6))))))
(fma.f64 -10 (+.f64 (pow.f64 x -2) (/.f64 (pow.f64 x -2) (pow.f64 x 6))) (*.f64 (/.f64 (pow.f64 x -2) (*.f64 x x)) (+.f64 -10 (/.f64 -10 (*.f64 x x)))))
(+.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 -10 (pow.f64 x 6)) (*.f64 (pow.f64 x -2) (+.f64 -10 (/.f64 -10 (pow.f64 x 6))))))
(*.f64 -10 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 -1 x))))))
(*.f64 (exp.f64 (*.f64 2 (neg.f64 (log.f64 x)))) -10)
(/.f64 -10 (pow.f64 (/.f64 1 x) -2))
(*.f64 (pow.f64 x -2) -10)
(+.f64 (*.f64 -10 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 -1 x)))))) (*.f64 -10 (/.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 -1 x))))) (pow.f64 x 2))))
(*.f64 -10 (+.f64 (exp.f64 (*.f64 2 (neg.f64 (log.f64 x)))) (/.f64 (exp.f64 (*.f64 2 (neg.f64 (log.f64 x)))) (*.f64 x x))))
(*.f64 (+.f64 (pow.f64 (exp.f64 -2) (log.f64 x)) (/.f64 (pow.f64 (exp.f64 -2) (log.f64 x)) (*.f64 x x))) -10)
(*.f64 (+.f64 (pow.f64 x -2) (/.f64 (pow.f64 x -2) (*.f64 x x))) -10)
(fma.f64 (pow.f64 x -2) -10 (/.f64 -10 (pow.f64 x 4)))
(+.f64 (*.f64 -10 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 -1 x)))))) (+.f64 (*.f64 -10 (/.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 -1 x))))) (pow.f64 x 2))) (*.f64 -10 (/.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 -1 x))))) (pow.f64 x 4)))))
(fma.f64 -10 (/.f64 (exp.f64 (*.f64 2 (neg.f64 (log.f64 x)))) (pow.f64 x 4)) (*.f64 -10 (+.f64 (exp.f64 (*.f64 2 (neg.f64 (log.f64 x)))) (/.f64 (exp.f64 (*.f64 2 (neg.f64 (log.f64 x)))) (*.f64 x x)))))
(*.f64 -10 (+.f64 (pow.f64 (exp.f64 -2) (log.f64 x)) (+.f64 (/.f64 (pow.f64 (exp.f64 -2) (log.f64 x)) (*.f64 x x)) (/.f64 (pow.f64 (exp.f64 -2) (log.f64 x)) (pow.f64 x 4)))))
(fma.f64 (pow.f64 x -2) -10 (*.f64 (/.f64 (pow.f64 x -2) (*.f64 x x)) (+.f64 -10 (/.f64 -10 (*.f64 x x)))))
(+.f64 (/.f64 -10 (pow.f64 x 4)) (fma.f64 (pow.f64 x -2) -10 (/.f64 -10 (pow.f64 x 6))))
(+.f64 (*.f64 -10 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 -1 x)))))) (+.f64 (*.f64 -10 (/.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 -1 x))))) (pow.f64 x 2))) (+.f64 (*.f64 -10 (/.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 -1 x))))) (pow.f64 x 4))) (*.f64 -10 (/.f64 (exp.f64 (neg.f64 (*.f64 -2 (log.f64 (/.f64 -1 x))))) (pow.f64 x 6))))))
(fma.f64 -10 (/.f64 (exp.f64 (*.f64 2 (neg.f64 (log.f64 x)))) (pow.f64 x 4)) (fma.f64 -10 (/.f64 (exp.f64 (*.f64 2 (neg.f64 (log.f64 x)))) (*.f64 x x)) (*.f64 -10 (+.f64 (/.f64 (exp.f64 (*.f64 2 (neg.f64 (log.f64 x)))) (pow.f64 x 6)) (exp.f64 (*.f64 2 (neg.f64 (log.f64 x))))))))
(fma.f64 (/.f64 (pow.f64 (exp.f64 -2) (log.f64 x)) (pow.f64 x 4)) -10 (*.f64 -10 (+.f64 (/.f64 (pow.f64 (exp.f64 -2) (log.f64 x)) (*.f64 x x)) (+.f64 (pow.f64 (exp.f64 -2) (log.f64 x)) (/.f64 (pow.f64 (exp.f64 -2) (log.f64 x)) (pow.f64 x 6))))))
(fma.f64 -10 (+.f64 (pow.f64 x -2) (/.f64 (pow.f64 x -2) (pow.f64 x 6))) (*.f64 (/.f64 (pow.f64 x -2) (*.f64 x x)) (+.f64 -10 (/.f64 -10 (*.f64 x x)))))
(+.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 -10 (pow.f64 x 6)) (*.f64 (pow.f64 x -2) (+.f64 -10 (/.f64 -10 (pow.f64 x 6))))))
(log.f64 -1)
(+.f64 (*.f64 -1 (pow.f64 x 2)) (log.f64 -1))
(fma.f64 -1 (*.f64 x x) (log.f64 -1))
(-.f64 (log.f64 -1) (*.f64 x x))
(fma.f64 x (neg.f64 x) (log.f64 -1))
(+.f64 (*.f64 -1/2 (pow.f64 x 4)) (+.f64 (*.f64 -1 (pow.f64 x 2)) (log.f64 -1)))
(fma.f64 -1/2 (pow.f64 x 4) (fma.f64 -1 (*.f64 x x) (log.f64 -1)))
(fma.f64 (pow.f64 x 4) -1/2 (-.f64 (log.f64 -1) (*.f64 x x)))
(-.f64 (fma.f64 (pow.f64 x 4) -1/2 (log.f64 -1)) (*.f64 x x))
(+.f64 (*.f64 -1/2 (pow.f64 x 4)) (+.f64 (*.f64 -1/3 (pow.f64 x 6)) (+.f64 (*.f64 -1 (pow.f64 x 2)) (log.f64 -1))))
(fma.f64 -1/2 (pow.f64 x 4) (fma.f64 -1/3 (pow.f64 x 6) (fma.f64 -1 (*.f64 x x) (log.f64 -1))))
(fma.f64 (pow.f64 x 4) -1/2 (fma.f64 (pow.f64 x 6) -1/3 (-.f64 (log.f64 -1) (*.f64 x x))))
(fma.f64 (pow.f64 x 4) -1/2 (-.f64 (fma.f64 (pow.f64 x 6) -1/3 (log.f64 -1)) (*.f64 x x)))
(*.f64 -2 (log.f64 (/.f64 1 x)))
(*.f64 -2 (neg.f64 (log.f64 x)))
(*.f64 2 (log.f64 x))
(-.f64 (*.f64 -2 (log.f64 (/.f64 1 x))) (/.f64 1 (pow.f64 x 2)))
(fma.f64 -2 (neg.f64 (log.f64 x)) (neg.f64 (/.f64 1 (*.f64 x x))))
(fma.f64 -2 (neg.f64 (log.f64 x)) (/.f64 -1 (*.f64 x x)))
(-.f64 (*.f64 2 (log.f64 x)) (pow.f64 x -2))
(-.f64 (*.f64 -2 (log.f64 (/.f64 1 x))) (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 4))) (/.f64 1 (pow.f64 x 2))))
(-.f64 (*.f64 -2 (neg.f64 (log.f64 x))) (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1/2 (pow.f64 x 4))))
(-.f64 (fma.f64 -2 (neg.f64 (log.f64 x)) (/.f64 -1 (*.f64 x x))) (/.f64 1/2 (pow.f64 x 4)))
(+.f64 (fma.f64 -2 (neg.f64 (log.f64 x)) (/.f64 -1 (*.f64 x x))) (/.f64 -1/2 (pow.f64 x 4)))
(-.f64 (fma.f64 2 (log.f64 x) (/.f64 -1/2 (pow.f64 x 4))) (pow.f64 x -2))
(-.f64 (*.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 1/3 (/.f64 1 (pow.f64 x 6))))))
(-.f64 (*.f64 -2 (neg.f64 (log.f64 x))) (+.f64 (/.f64 1/2 (pow.f64 x 4)) (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1/3 (pow.f64 x 6)))))
(-.f64 (-.f64 (fma.f64 -2 (neg.f64 (log.f64 x)) (/.f64 -1 (*.f64 x x))) (/.f64 1/2 (pow.f64 x 4))) (/.f64 1/3 (pow.f64 x 6)))
(+.f64 (*.f64 2 (log.f64 x)) (+.f64 (/.f64 -1 (*.f64 x x)) (+.f64 (/.f64 -1/2 (pow.f64 x 4)) (/.f64 -1/3 (pow.f64 x 6)))))
(+.f64 (-.f64 (/.f64 -1/2 (pow.f64 x 4)) (pow.f64 x -2)) (fma.f64 2 (log.f64 x) (/.f64 -1/3 (pow.f64 x 6))))
(*.f64 -2 (log.f64 (/.f64 -1 x)))
(-.f64 (*.f64 -2 (log.f64 (/.f64 -1 x))) (/.f64 1 (pow.f64 x 2)))
(fma.f64 -2 (log.f64 (/.f64 -1 x)) (neg.f64 (/.f64 1 (*.f64 x x))))
(fma.f64 -2 (log.f64 (/.f64 -1 x)) (/.f64 -1 (*.f64 x x)))
(fma.f64 -2 (log.f64 (/.f64 -1 x)) (neg.f64 (pow.f64 x -2)))
(-.f64 (*.f64 -2 (log.f64 (/.f64 -1 x))) (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 4))) (/.f64 1 (pow.f64 x 2))))
(-.f64 (*.f64 -2 (log.f64 (/.f64 -1 x))) (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1/2 (pow.f64 x 4))))
(-.f64 (fma.f64 -2 (log.f64 (/.f64 -1 x)) (/.f64 -1 (*.f64 x x))) (/.f64 1/2 (pow.f64 x 4)))
(+.f64 (fma.f64 -2 (log.f64 (/.f64 -1 x)) (/.f64 -1 (*.f64 x x))) (/.f64 -1/2 (pow.f64 x 4)))
(-.f64 (fma.f64 -2 (log.f64 (/.f64 -1 x)) (/.f64 -1/2 (pow.f64 x 4))) (pow.f64 x -2))
(-.f64 (*.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 1/3 (/.f64 1 (pow.f64 x 6))))))
(-.f64 (*.f64 -2 (log.f64 (/.f64 -1 x))) (+.f64 (/.f64 1/2 (pow.f64 x 4)) (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1/3 (pow.f64 x 6)))))
(-.f64 (-.f64 (fma.f64 -2 (log.f64 (/.f64 -1 x)) (/.f64 -1 (*.f64 x x))) (/.f64 1/2 (pow.f64 x 4))) (/.f64 1/3 (pow.f64 x 6)))
(-.f64 (fma.f64 -2 (log.f64 (/.f64 -1 x)) (/.f64 -1 (*.f64 x x))) (+.f64 (/.f64 1/2 (pow.f64 x 4)) (/.f64 1/3 (pow.f64 x 6))))
(+.f64 (-.f64 (fma.f64 -2 (log.f64 (/.f64 -1 x)) (/.f64 -1/2 (pow.f64 x 4))) (pow.f64 x -2)) (/.f64 -1/3 (pow.f64 x 6)))

localize43.0ms (0.5%)

Local error

Found 4 expressions with local error:

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

Compiled 44 to 33 computations (25% saved)

series6.0ms (0.1%)

Counts
3 → 36
Calls

9 calls:

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

rewrite314.0ms (4%)

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

Useful iterations: 1 (0.0ms)

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

simplify96.0ms (1.2%)

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

Useful iterations: 2 (0.0ms)

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

eval383.0ms (4.8%)

Compiler

Compiled 9916 to 6578 computations (33.7% saved)

prune242.0ms (3%)

Pruning

25 alts after pruning (15 fresh and 10 done)

PrunedKeptTotal
New5398547
Fresh7714
Picked011
Done1910
Total54725572
Error
0b
Counts
572 → 25
Alt Table
Click to see full alt table
StatusErrorProgram
42.0b
(*.f64 (sqrt.f64 (pow.f64 (fma.f64 x x -1) -2)) -10)
6.4b
(/.f64 10 (/.f64 (-.f64 1 (pow.f64 x 6)) (+.f64 1 (-.f64 (*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x))) (*.f64 x (neg.f64 x))))))
21.4b
(sqrt.f64 (/.f64 100 (pow.f64 (fma.f64 x x -1) 2)))
1.3b
(*.f64 (/.f64 (/.f64 1 (pow.f64 (cbrt.f64 (fma.f64 x x -1)) 2)) (cbrt.f64 (fma.f64 x x -1))) -10)
7.9b
(/.f64 10 (/.f64 (-.f64 1 (*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x)))) (-.f64 1 (*.f64 x (neg.f64 x)))))
0.4b
(*.f64 (/.f64 1 (fma.f64 x x -1)) -10)
7.8b
(/.f64 10 (-.f64 1 (*.f64 x x)))
1.3b
(/.f64 (/.f64 1 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) 2)) (cbrt.f64 (*.f64 (fma.f64 x x -1) -1/10)))
1.4b
(/.f64 (/.f64 -10 (pow.f64 (cbrt.f64 (fma.f64 x x -1)) 2)) (cbrt.f64 (fma.f64 x x -1)))
0.5b
(/.f64 (/.f64 1 (fma.f64 x x -1)) -1/10)
0.4b
(/.f64 1 (/.f64 (fma.f64 x x -1) -10))
0.6b
(/.f64 1 (cbrt.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) 3)))
22.6b
(exp.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1))))
1.3b
(pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 3)
22.6b
(expm1.f64 (log1p.f64 (/.f64 -10 (fma.f64 x x -1))))
0.6b
(*.f64 (cbrt.f64 (pow.f64 (/.f64 1 (fma.f64 x x -1)) 3)) -10)
0.5b
(/.f64 1 (*.f64 (fma.f64 x x -1) -1/10))
0.6b
(cbrt.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3))
0.3b
(/.f64 -10 (fma.f64 x x -1))
7.8b
(*.f64 (/.f64 1 (-.f64 1 (*.f64 x x))) 10)
60.4b
(/.f64 (/.f64 -10 x) x)
60.4b
(/.f64 -10 (*.f64 x x))
42.9b
(*.f64 (exp.f64 (neg.f64 (log.f64 (fma.f64 x x -1)))) -10)
57.9b
10
42.9b
(*.f64 (expm1.f64 (log1p.f64 (/.f64 1 (fma.f64 x x -1)))) -10)
Compiler

Compiled 457 to 343 computations (24.9% 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.4b
(*.f64 (fma.f64 x x -1) -1/10)
Compiler

Compiled 23 to 16 computations (30.4% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

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

rewrite84.0ms (1.1%)

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
0811
11558
216968
Stop Event
node limit
Counts
1 → 22
Calls
Call 1
Inputs
(/.f64 1 (*.f64 (fma.f64 x x -1) -1/10))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (/.f64 -10 (fma.f64 x x -1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 -10 (fma.f64 x x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (/.f64 1 (*.f64 (fma.f64 x x -1) 1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -10 (fma.f64 x x -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 2) (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (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))))))))

simplify50.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
34 → 37
Calls
Call 1
Inputs
10
(+.f64 (*.f64 10 (pow.f64 x 2)) 10)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 10 (*.f64 10 (pow.f64 x 4))))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 10 (pow.f64 x 6)) (+.f64 10 (*.f64 10 (pow.f64 x 4)))))
(/.f64 -10 (pow.f64 x 2))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))))
(/.f64 -10 (pow.f64 x 2))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))))
Outputs
10
(+.f64 (*.f64 10 (pow.f64 x 2)) 10)
(fma.f64 10 (*.f64 x x) 10)
(*.f64 10 (fma.f64 x x 1))
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 10 (*.f64 10 (pow.f64 x 4))))
(+.f64 (fma.f64 10 (*.f64 x x) 10) (*.f64 10 (pow.f64 x 4)))
(fma.f64 10 (*.f64 x x) (fma.f64 10 (pow.f64 x 4) 10))
(*.f64 10 (+.f64 (pow.f64 x 4) (fma.f64 x x 1)))
(fma.f64 10 (fma.f64 x x (pow.f64 x 4)) 10)
(+.f64 (*.f64 10 (pow.f64 x 2)) (+.f64 (*.f64 10 (pow.f64 x 6)) (+.f64 10 (*.f64 10 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 10 (pow.f64 x 6) (+.f64 10 (*.f64 10 (pow.f64 x 4)))))
(fma.f64 10 (*.f64 x x) (fma.f64 10 (pow.f64 x 6) (fma.f64 10 (pow.f64 x 4) 10)))
(fma.f64 10 (fma.f64 x x (pow.f64 x 6)) (fma.f64 10 (pow.f64 x 4) 10))
(fma.f64 10 (+.f64 (pow.f64 x 4) (fma.f64 x x (pow.f64 x 6))) 10)
(*.f64 (fma.f64 x x 1) (fma.f64 10 (pow.f64 x 4) 10))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (*.f64 x x))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (/.f64 10 (*.f64 x x))))
(-.f64 (/.f64 -10 (*.f64 x x)) (/.f64 10 (pow.f64 x 4)))
(+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x)))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6)))))
(-.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))))
(+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x))) (/.f64 -10 (pow.f64 x 6)))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))) (/.f64 10 (pow.f64 x 8)))))
(-.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (+.f64 (/.f64 10 (pow.f64 x 6)) (/.f64 10 (pow.f64 x 8)))))
(+.f64 (+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x))) (/.f64 -10 (pow.f64 x 6))) (/.f64 -10 (pow.f64 x 8)))
(+.f64 (/.f64 -10 (*.f64 x x)) (+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (pow.f64 x 8))) (/.f64 -10 (pow.f64 x 6))))
(/.f64 -10 (pow.f64 x 2))
(/.f64 -10 (*.f64 x x))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (/.f64 10 (*.f64 x x))))
(-.f64 (/.f64 -10 (*.f64 x x)) (/.f64 10 (pow.f64 x 4)))
(+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x)))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6)))))
(-.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))))
(+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x))) (/.f64 -10 (pow.f64 x 6)))
(neg.f64 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 8))) (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 6))) (*.f64 10 (/.f64 1 (pow.f64 x 2)))))))
(neg.f64 (+.f64 (/.f64 10 (pow.f64 x 4)) (+.f64 (+.f64 (/.f64 10 (*.f64 x x)) (/.f64 10 (pow.f64 x 6))) (/.f64 10 (pow.f64 x 8)))))
(-.f64 (/.f64 -10 (pow.f64 x 4)) (+.f64 (/.f64 10 (*.f64 x x)) (+.f64 (/.f64 10 (pow.f64 x 6)) (/.f64 10 (pow.f64 x 8)))))
(+.f64 (+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (*.f64 x x))) (/.f64 -10 (pow.f64 x 6))) (/.f64 -10 (pow.f64 x 8)))
(+.f64 (/.f64 -10 (*.f64 x x)) (+.f64 (+.f64 (/.f64 -10 (pow.f64 x 4)) (/.f64 -10 (pow.f64 x 8))) (/.f64 -10 (pow.f64 x 6))))

localize11.0ms (0.1%)

Local error

Found 3 expressions with local error:

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

Compiled 28 to 16 computations (42.9% saved)

series2.0ms (0%)

Counts
2 → 24
Calls

6 calls:

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

rewrite114.0ms (1.4%)

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

simplify56.0ms (0.7%)

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

localize20.0ms (0.2%)

Local error

Found 3 expressions with local error:

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

rewrite56.0ms (0.7%)

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

simplify58.0ms (0.7%)

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

localize18.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.2b
(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
@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
(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
(sqrt.f64 (pow.f64 (fma.f64 x x -1) -2))

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

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

localize26.0ms (0.3%)

Local error

Found 4 expressions with local error:

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

Compiled 44 to 33 computations (25% saved)

series17.0ms (0.2%)

Counts
3 → 36
Calls

9 calls:

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

rewrite90.0ms (1.1%)

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

Useful iterations: 1 (0.0ms)

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

simplify94.0ms (1.2%)

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

Useful iterations: 4 (0.0ms)

IterNodesCost
057705
1150663
2379641
31066635
44348627
Stop Event
node limit
Counts
119 → 117
Calls
Call 1
Inputs
1/1000
(+.f64 1/1000 (*.f64 -3/1000 (pow.f64 x 2)))
(+.f64 (*.f64 3/1000 (pow.f64 x 4)) (+.f64 1/1000 (*.f64 -3/1000 (pow.f64 x 2))))
(+.f64 (*.f64 -1/1000 (pow.f64 x 6)) (+.f64 (*.f64 3/1000 (pow.f64 x 4)) (+.f64 1/1000 (*.f64 -3/1000 (pow.f64 x 2)))))
(*.f64 -1/1000 (pow.f64 x 6))
(+.f64 (*.f64 3/1000 (pow.f64 x 4)) (*.f64 -1/1000 (pow.f64 x 6)))
(+.f64 (*.f64 3/1000 (pow.f64 x 4)) (+.f64 (*.f64 -1/1000 (pow.f64 x 6)) (*.f64 -3/1000 (pow.f64 x 2))))
(+.f64 (*.f64 3/1000 (pow.f64 x 4)) (+.f64 (*.f64 -1/1000 (pow.f64 x 6)) (+.f64 1/1000 (*.f64 -3/1000 (pow.f64 x 2)))))
(*.f64 -1/1000 (pow.f64 x 6))
(+.f64 (*.f64 3/1000 (pow.f64 x 4)) (*.f64 -1/1000 (pow.f64 x 6)))
(+.f64 (*.f64 3/1000 (pow.f64 x 4)) (+.f64 (*.f64 -1/1000 (pow.f64 x 6)) (*.f64 -3/1000 (pow.f64 x 2))))
(+.f64 (*.f64 3/1000 (pow.f64 x 4)) (+.f64 (*.f64 -1/1000 (pow.f64 x 6)) (+.f64 1/1000 (*.f64 -3/1000 (pow.f64 x 2)))))
(*.f64 -1 (cbrt.f64 -1/1000))
(+.f64 (*.f64 -1 (cbrt.f64 -1/1000)) (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))
(+.f64 (*.f64 -1 (cbrt.f64 -1/1000)) (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))
(+.f64 (*.f64 -1 (cbrt.f64 -1/1000)) (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))
(*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2))
(+.f64 (*.f64 -1 (cbrt.f64 -1/1000)) (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))
(+.f64 (*.f64 -1 (cbrt.f64 -1/1000)) (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))
(+.f64 (*.f64 -1 (cbrt.f64 -1/1000)) (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))
(*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2))
(+.f64 (*.f64 -1 (cbrt.f64 -1/1000)) (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))
(+.f64 (*.f64 -1 (cbrt.f64 -1/1000)) (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))
(+.f64 (*.f64 -1 (cbrt.f64 -1/1000)) (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))
(/.f64 -1 (cbrt.f64 -1/1000))
(-.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (cbrt.f64 -1/1000))) (/.f64 1 (cbrt.f64 -1/1000)))
(-.f64 (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 4) (cbrt.f64 -1/1000))) (*.f64 -1 (/.f64 (pow.f64 x 2) (cbrt.f64 -1/1000)))) (/.f64 1 (cbrt.f64 -1/1000)))
(-.f64 (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 4) (cbrt.f64 -1/1000))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (cbrt.f64 -1/1000))) (*.f64 -1 (/.f64 (pow.f64 x 6) (cbrt.f64 -1/1000))))) (/.f64 1 (cbrt.f64 -1/1000)))
(/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))
(+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 4))) (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2))))
(+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 4))) (+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 6))) (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))))
(+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 4))) (+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 8))) (+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 6))) (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2))))))
(/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))
(+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 4))) (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2))))
(+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 4))) (+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 6))) (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))))
(+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 4))) (+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 8))) (+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 6))) (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2))))))
Outputs
1/1000
(+.f64 1/1000 (*.f64 -3/1000 (pow.f64 x 2)))
(+.f64 1/1000 (*.f64 -3/1000 (*.f64 x x)))
(fma.f64 -3/1000 (*.f64 x x) 1/1000)
(fma.f64 x (*.f64 -3/1000 x) 1/1000)
(+.f64 (*.f64 3/1000 (pow.f64 x 4)) (+.f64 1/1000 (*.f64 -3/1000 (pow.f64 x 2))))
(fma.f64 3/1000 (pow.f64 x 4) (+.f64 1/1000 (*.f64 -3/1000 (*.f64 x x))))
(fma.f64 3/1000 (pow.f64 x 4) (fma.f64 -3/1000 (*.f64 x x) 1/1000))
(fma.f64 -3/1000 (*.f64 x x) (fma.f64 3/1000 (pow.f64 x 4) 1/1000))
(+.f64 (*.f64 -1/1000 (pow.f64 x 6)) (+.f64 (*.f64 3/1000 (pow.f64 x 4)) (+.f64 1/1000 (*.f64 -3/1000 (pow.f64 x 2)))))
(fma.f64 3/1000 (pow.f64 x 4) (fma.f64 -1/1000 (pow.f64 x 6) (+.f64 1/1000 (*.f64 -3/1000 (*.f64 x x)))))
(fma.f64 3/1000 (pow.f64 x 4) (fma.f64 -1/1000 (pow.f64 x 6) (fma.f64 -3/1000 (*.f64 x x) 1/1000)))
(fma.f64 -3/1000 (*.f64 x x) (fma.f64 -1/1000 (pow.f64 x 6) (fma.f64 3/1000 (pow.f64 x 4) 1/1000)))
(fma.f64 -1/1000 (pow.f64 x 6) (fma.f64 -3/1000 (*.f64 x x) (fma.f64 3/1000 (pow.f64 x 4) 1/1000)))
(*.f64 -1/1000 (pow.f64 x 6))
(+.f64 (*.f64 3/1000 (pow.f64 x 4)) (*.f64 -1/1000 (pow.f64 x 6)))
(fma.f64 3/1000 (pow.f64 x 4) (*.f64 -1/1000 (pow.f64 x 6)))
(+.f64 (*.f64 3/1000 (pow.f64 x 4)) (+.f64 (*.f64 -1/1000 (pow.f64 x 6)) (*.f64 -3/1000 (pow.f64 x 2))))
(fma.f64 3/1000 (pow.f64 x 4) (fma.f64 -1/1000 (pow.f64 x 6) (*.f64 -3/1000 (*.f64 x x))))
(fma.f64 -1/1000 (pow.f64 x 6) (fma.f64 -3/1000 (*.f64 x x) (*.f64 3/1000 (pow.f64 x 4))))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 3/1000) -3/1000) (*.f64 -1/1000 (pow.f64 x 6)))
(fma.f64 -3/1000 (*.f64 x x) (fma.f64 3/1000 (pow.f64 x 4) (*.f64 -1/1000 (pow.f64 x 6))))
(+.f64 (*.f64 3/1000 (pow.f64 x 4)) (+.f64 (*.f64 -1/1000 (pow.f64 x 6)) (+.f64 1/1000 (*.f64 -3/1000 (pow.f64 x 2)))))
(fma.f64 3/1000 (pow.f64 x 4) (fma.f64 -1/1000 (pow.f64 x 6) (+.f64 1/1000 (*.f64 -3/1000 (*.f64 x x)))))
(fma.f64 3/1000 (pow.f64 x 4) (fma.f64 -1/1000 (pow.f64 x 6) (fma.f64 -3/1000 (*.f64 x x) 1/1000)))
(fma.f64 -3/1000 (*.f64 x x) (fma.f64 -1/1000 (pow.f64 x 6) (fma.f64 3/1000 (pow.f64 x 4) 1/1000)))
(fma.f64 -1/1000 (pow.f64 x 6) (fma.f64 -3/1000 (*.f64 x x) (fma.f64 3/1000 (pow.f64 x 4) 1/1000)))
(*.f64 -1/1000 (pow.f64 x 6))
(+.f64 (*.f64 3/1000 (pow.f64 x 4)) (*.f64 -1/1000 (pow.f64 x 6)))
(fma.f64 3/1000 (pow.f64 x 4) (*.f64 -1/1000 (pow.f64 x 6)))
(+.f64 (*.f64 3/1000 (pow.f64 x 4)) (+.f64 (*.f64 -1/1000 (pow.f64 x 6)) (*.f64 -3/1000 (pow.f64 x 2))))
(fma.f64 3/1000 (pow.f64 x 4) (fma.f64 -1/1000 (pow.f64 x 6) (*.f64 -3/1000 (*.f64 x x))))
(fma.f64 -1/1000 (pow.f64 x 6) (fma.f64 -3/1000 (*.f64 x x) (*.f64 3/1000 (pow.f64 x 4))))
(fma.f64 (*.f64 x x) (fma.f64 x (*.f64 x 3/1000) -3/1000) (*.f64 -1/1000 (pow.f64 x 6)))
(fma.f64 -3/1000 (*.f64 x x) (fma.f64 3/1000 (pow.f64 x 4) (*.f64 -1/1000 (pow.f64 x 6))))
(+.f64 (*.f64 3/1000 (pow.f64 x 4)) (+.f64 (*.f64 -1/1000 (pow.f64 x 6)) (+.f64 1/1000 (*.f64 -3/1000 (pow.f64 x 2)))))
(fma.f64 3/1000 (pow.f64 x 4) (fma.f64 -1/1000 (pow.f64 x 6) (+.f64 1/1000 (*.f64 -3/1000 (*.f64 x x)))))
(fma.f64 3/1000 (pow.f64 x 4) (fma.f64 -1/1000 (pow.f64 x 6) (fma.f64 -3/1000 (*.f64 x x) 1/1000)))
(fma.f64 -3/1000 (*.f64 x x) (fma.f64 -1/1000 (pow.f64 x 6) (fma.f64 3/1000 (pow.f64 x 4) 1/1000)))
(fma.f64 -1/1000 (pow.f64 x 6) (fma.f64 -3/1000 (*.f64 x x) (fma.f64 3/1000 (pow.f64 x 4) 1/1000)))
(*.f64 -1 (cbrt.f64 -1/1000))
(neg.f64 (cbrt.f64 -1/1000))
(+.f64 (*.f64 -1 (cbrt.f64 -1/1000)) (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))
(fma.f64 -1 (cbrt.f64 -1/1000) (*.f64 (*.f64 x x) (cbrt.f64 -1/1000)))
(*.f64 (cbrt.f64 -1/1000) (+.f64 -1 (*.f64 x x)))
(*.f64 (cbrt.f64 -1/1000) (fma.f64 x x -1))
(+.f64 (*.f64 -1 (cbrt.f64 -1/1000)) (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))
(fma.f64 -1 (cbrt.f64 -1/1000) (*.f64 (*.f64 x x) (cbrt.f64 -1/1000)))
(*.f64 (cbrt.f64 -1/1000) (+.f64 -1 (*.f64 x x)))
(*.f64 (cbrt.f64 -1/1000) (fma.f64 x x -1))
(+.f64 (*.f64 -1 (cbrt.f64 -1/1000)) (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))
(fma.f64 -1 (cbrt.f64 -1/1000) (*.f64 (*.f64 x x) (cbrt.f64 -1/1000)))
(*.f64 (cbrt.f64 -1/1000) (+.f64 -1 (*.f64 x x)))
(*.f64 (cbrt.f64 -1/1000) (fma.f64 x x -1))
(*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2))
(*.f64 (*.f64 x x) (cbrt.f64 -1/1000))
(*.f64 x (*.f64 x (cbrt.f64 -1/1000)))
(+.f64 (*.f64 -1 (cbrt.f64 -1/1000)) (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))
(fma.f64 -1 (cbrt.f64 -1/1000) (*.f64 (*.f64 x x) (cbrt.f64 -1/1000)))
(*.f64 (cbrt.f64 -1/1000) (+.f64 -1 (*.f64 x x)))
(*.f64 (cbrt.f64 -1/1000) (fma.f64 x x -1))
(+.f64 (*.f64 -1 (cbrt.f64 -1/1000)) (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))
(fma.f64 -1 (cbrt.f64 -1/1000) (*.f64 (*.f64 x x) (cbrt.f64 -1/1000)))
(*.f64 (cbrt.f64 -1/1000) (+.f64 -1 (*.f64 x x)))
(*.f64 (cbrt.f64 -1/1000) (fma.f64 x x -1))
(+.f64 (*.f64 -1 (cbrt.f64 -1/1000)) (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))
(fma.f64 -1 (cbrt.f64 -1/1000) (*.f64 (*.f64 x x) (cbrt.f64 -1/1000)))
(*.f64 (cbrt.f64 -1/1000) (+.f64 -1 (*.f64 x x)))
(*.f64 (cbrt.f64 -1/1000) (fma.f64 x x -1))
(*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2))
(*.f64 (*.f64 x x) (cbrt.f64 -1/1000))
(*.f64 x (*.f64 x (cbrt.f64 -1/1000)))
(+.f64 (*.f64 -1 (cbrt.f64 -1/1000)) (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))
(fma.f64 -1 (cbrt.f64 -1/1000) (*.f64 (*.f64 x x) (cbrt.f64 -1/1000)))
(*.f64 (cbrt.f64 -1/1000) (+.f64 -1 (*.f64 x x)))
(*.f64 (cbrt.f64 -1/1000) (fma.f64 x x -1))
(+.f64 (*.f64 -1 (cbrt.f64 -1/1000)) (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))
(fma.f64 -1 (cbrt.f64 -1/1000) (*.f64 (*.f64 x x) (cbrt.f64 -1/1000)))
(*.f64 (cbrt.f64 -1/1000) (+.f64 -1 (*.f64 x x)))
(*.f64 (cbrt.f64 -1/1000) (fma.f64 x x -1))
(+.f64 (*.f64 -1 (cbrt.f64 -1/1000)) (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))
(fma.f64 -1 (cbrt.f64 -1/1000) (*.f64 (*.f64 x x) (cbrt.f64 -1/1000)))
(*.f64 (cbrt.f64 -1/1000) (+.f64 -1 (*.f64 x x)))
(*.f64 (cbrt.f64 -1/1000) (fma.f64 x x -1))
(/.f64 -1 (cbrt.f64 -1/1000))
(-.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (cbrt.f64 -1/1000))) (/.f64 1 (cbrt.f64 -1/1000)))
(-.f64 (neg.f64 (/.f64 (*.f64 x x) (cbrt.f64 -1/1000))) (/.f64 1 (cbrt.f64 -1/1000)))
(fma.f64 -1 (/.f64 x (/.f64 (cbrt.f64 -1/1000) x)) (/.f64 -1 (cbrt.f64 -1/1000)))
(-.f64 (/.f64 -1 (cbrt.f64 -1/1000)) (*.f64 (/.f64 x (cbrt.f64 -1/1000)) x))
(-.f64 (/.f64 -1 (cbrt.f64 -1/1000)) (*.f64 x (/.f64 x (cbrt.f64 -1/1000))))
(*.f64 (/.f64 1 (cbrt.f64 -1/1000)) (-.f64 -1 (*.f64 x x)))
(-.f64 (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 4) (cbrt.f64 -1/1000))) (*.f64 -1 (/.f64 (pow.f64 x 2) (cbrt.f64 -1/1000)))) (/.f64 1 (cbrt.f64 -1/1000)))
(-.f64 (*.f64 -1 (+.f64 (/.f64 (pow.f64 x 4) (cbrt.f64 -1/1000)) (/.f64 (*.f64 x x) (cbrt.f64 -1/1000)))) (/.f64 1 (cbrt.f64 -1/1000)))
(fma.f64 -1 (+.f64 (/.f64 x (/.f64 (cbrt.f64 -1/1000) x)) (/.f64 (pow.f64 x 4) (cbrt.f64 -1/1000))) (/.f64 -1 (cbrt.f64 -1/1000)))
(-.f64 (-.f64 (/.f64 -1 (cbrt.f64 -1/1000)) (*.f64 (/.f64 x (cbrt.f64 -1/1000)) x)) (/.f64 (pow.f64 x 4) (cbrt.f64 -1/1000)))
(+.f64 (*.f64 (*.f64 x (/.f64 x (cbrt.f64 -1/1000))) (-.f64 -1 (*.f64 x x))) (/.f64 -1 (cbrt.f64 -1/1000)))
(-.f64 (/.f64 -1 (cbrt.f64 -1/1000)) (*.f64 (/.f64 x (cbrt.f64 -1/1000)) (+.f64 x (pow.f64 x 3))))
(-.f64 (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 4) (cbrt.f64 -1/1000))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (cbrt.f64 -1/1000))) (*.f64 -1 (/.f64 (pow.f64 x 6) (cbrt.f64 -1/1000))))) (/.f64 1 (cbrt.f64 -1/1000)))
(-.f64 (fma.f64 -1 (/.f64 (pow.f64 x 4) (cbrt.f64 -1/1000)) (*.f64 -1 (+.f64 (/.f64 (*.f64 x x) (cbrt.f64 -1/1000)) (/.f64 (pow.f64 x 6) (cbrt.f64 -1/1000))))) (/.f64 1 (cbrt.f64 -1/1000)))
(+.f64 (-.f64 (-.f64 (/.f64 (neg.f64 (*.f64 x x)) (cbrt.f64 -1/1000)) (/.f64 (pow.f64 x 4) (cbrt.f64 -1/1000))) (/.f64 (pow.f64 x 6) (cbrt.f64 -1/1000))) (/.f64 -1 (cbrt.f64 -1/1000)))
(-.f64 (-.f64 (-.f64 (/.f64 -1 (cbrt.f64 -1/1000)) (*.f64 (/.f64 x (cbrt.f64 -1/1000)) x)) (/.f64 (pow.f64 x 4) (cbrt.f64 -1/1000))) (/.f64 (pow.f64 x 6) (cbrt.f64 -1/1000)))
(-.f64 (*.f64 (/.f64 -1 (cbrt.f64 -1/1000)) (+.f64 (pow.f64 x 4) (pow.f64 x 6))) (fma.f64 (/.f64 x (cbrt.f64 -1/1000)) x (/.f64 1 (cbrt.f64 -1/1000))))
(+.f64 (*.f64 (/.f64 -1 (cbrt.f64 -1/1000)) (+.f64 (pow.f64 x 4) (*.f64 x (+.f64 (pow.f64 x 5) x)))) (/.f64 -1 (cbrt.f64 -1/1000)))
(/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))
(/.f64 1 (*.f64 (*.f64 x x) (cbrt.f64 -1/1000)))
(/.f64 (/.f64 1 (*.f64 x x)) (cbrt.f64 -1/1000))
(/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (*.f64 x x))
(+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 4))) (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2))))
(+.f64 (/.f64 1 (*.f64 (*.f64 x x) (cbrt.f64 -1/1000))) (/.f64 1 (*.f64 (pow.f64 x 4) (cbrt.f64 -1/1000))))
(+.f64 (/.f64 (/.f64 1 (*.f64 x x)) (cbrt.f64 -1/1000)) (/.f64 1 (*.f64 (pow.f64 x 4) (cbrt.f64 -1/1000))))
(+.f64 (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (*.f64 x x)) (/.f64 1 (*.f64 (pow.f64 x 4) (cbrt.f64 -1/1000))))
(+.f64 (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (*.f64 x x)) (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (pow.f64 x 4)))
(+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 4))) (+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 6))) (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))))
(+.f64 (/.f64 1 (*.f64 (pow.f64 x 4) (cbrt.f64 -1/1000))) (+.f64 (/.f64 1 (*.f64 (*.f64 x x) (cbrt.f64 -1/1000))) (/.f64 1 (*.f64 (pow.f64 x 6) (cbrt.f64 -1/1000)))))
(+.f64 (/.f64 (/.f64 1 (*.f64 x x)) (cbrt.f64 -1/1000)) (+.f64 (/.f64 1 (*.f64 (pow.f64 x 4) (cbrt.f64 -1/1000))) (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (pow.f64 x 6))))
(+.f64 (/.f64 1 (*.f64 (pow.f64 x 4) (cbrt.f64 -1/1000))) (+.f64 (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (*.f64 x x)) (/.f64 1 (*.f64 (pow.f64 x 6) (cbrt.f64 -1/1000)))))
(+.f64 (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (*.f64 x x)) (+.f64 (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (pow.f64 x 4)) (/.f64 1 (*.f64 (pow.f64 x 6) (cbrt.f64 -1/1000)))))
(+.f64 (+.f64 (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (*.f64 x x)) (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (pow.f64 x 4))) (/.f64 1 (*.f64 (pow.f64 x 6) (cbrt.f64 -1/1000))))
(+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 4))) (+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 8))) (+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 6))) (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2))))))
(+.f64 (/.f64 1 (*.f64 (pow.f64 x 4) (cbrt.f64 -1/1000))) (+.f64 (+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 8))) (/.f64 1 (*.f64 (pow.f64 x 6) (cbrt.f64 -1/1000)))) (/.f64 1 (*.f64 (*.f64 x x) (cbrt.f64 -1/1000)))))
(+.f64 (+.f64 (/.f64 (/.f64 1 (*.f64 x x)) (cbrt.f64 -1/1000)) (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (pow.f64 x 6))) (+.f64 (/.f64 1 (*.f64 (pow.f64 x 4) (cbrt.f64 -1/1000))) (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 8)))))
(+.f64 (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (*.f64 x x)) (+.f64 (/.f64 1 (*.f64 (pow.f64 x 4) (cbrt.f64 -1/1000))) (+.f64 (/.f64 1 (*.f64 (pow.f64 x 6) (cbrt.f64 -1/1000))) (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 8))))))
(+.f64 (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (*.f64 x x)) (+.f64 (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (pow.f64 x 4)) (+.f64 (/.f64 1 (*.f64 (pow.f64 x 6) (cbrt.f64 -1/1000))) (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 8))))))
(+.f64 (+.f64 (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (*.f64 x x)) (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (pow.f64 x 4))) (+.f64 (/.f64 1 (*.f64 (pow.f64 x 6) (cbrt.f64 -1/1000))) (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (pow.f64 x 8))))
(/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))
(/.f64 1 (*.f64 (*.f64 x x) (cbrt.f64 -1/1000)))
(/.f64 (/.f64 1 (*.f64 x x)) (cbrt.f64 -1/1000))
(/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (*.f64 x x))
(+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 4))) (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2))))
(+.f64 (/.f64 1 (*.f64 (*.f64 x x) (cbrt.f64 -1/1000))) (/.f64 1 (*.f64 (pow.f64 x 4) (cbrt.f64 -1/1000))))
(+.f64 (/.f64 (/.f64 1 (*.f64 x x)) (cbrt.f64 -1/1000)) (/.f64 1 (*.f64 (pow.f64 x 4) (cbrt.f64 -1/1000))))
(+.f64 (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (*.f64 x x)) (/.f64 1 (*.f64 (pow.f64 x 4) (cbrt.f64 -1/1000))))
(+.f64 (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (*.f64 x x)) (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (pow.f64 x 4)))
(+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 4))) (+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 6))) (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2)))))
(+.f64 (/.f64 1 (*.f64 (pow.f64 x 4) (cbrt.f64 -1/1000))) (+.f64 (/.f64 1 (*.f64 (*.f64 x x) (cbrt.f64 -1/1000))) (/.f64 1 (*.f64 (pow.f64 x 6) (cbrt.f64 -1/1000)))))
(+.f64 (/.f64 (/.f64 1 (*.f64 x x)) (cbrt.f64 -1/1000)) (+.f64 (/.f64 1 (*.f64 (pow.f64 x 4) (cbrt.f64 -1/1000))) (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (pow.f64 x 6))))
(+.f64 (/.f64 1 (*.f64 (pow.f64 x 4) (cbrt.f64 -1/1000))) (+.f64 (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (*.f64 x x)) (/.f64 1 (*.f64 (pow.f64 x 6) (cbrt.f64 -1/1000)))))
(+.f64 (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (*.f64 x x)) (+.f64 (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (pow.f64 x 4)) (/.f64 1 (*.f64 (pow.f64 x 6) (cbrt.f64 -1/1000)))))
(+.f64 (+.f64 (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (*.f64 x x)) (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (pow.f64 x 4))) (/.f64 1 (*.f64 (pow.f64 x 6) (cbrt.f64 -1/1000))))
(+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 4))) (+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 8))) (+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 6))) (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 2))))))
(+.f64 (/.f64 1 (*.f64 (pow.f64 x 4) (cbrt.f64 -1/1000))) (+.f64 (+.f64 (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 8))) (/.f64 1 (*.f64 (pow.f64 x 6) (cbrt.f64 -1/1000)))) (/.f64 1 (*.f64 (*.f64 x x) (cbrt.f64 -1/1000)))))
(+.f64 (+.f64 (/.f64 (/.f64 1 (*.f64 x x)) (cbrt.f64 -1/1000)) (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (pow.f64 x 6))) (+.f64 (/.f64 1 (*.f64 (pow.f64 x 4) (cbrt.f64 -1/1000))) (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 8)))))
(+.f64 (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (*.f64 x x)) (+.f64 (/.f64 1 (*.f64 (pow.f64 x 4) (cbrt.f64 -1/1000))) (+.f64 (/.f64 1 (*.f64 (pow.f64 x 6) (cbrt.f64 -1/1000))) (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 8))))))
(+.f64 (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (*.f64 x x)) (+.f64 (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (pow.f64 x 4)) (+.f64 (/.f64 1 (*.f64 (pow.f64 x 6) (cbrt.f64 -1/1000))) (/.f64 1 (*.f64 (cbrt.f64 -1/1000) (pow.f64 x 8))))))
(+.f64 (+.f64 (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (*.f64 x x)) (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (pow.f64 x 4))) (+.f64 (/.f64 1 (*.f64 (pow.f64 x 6) (cbrt.f64 -1/1000))) (/.f64 (/.f64 1 (cbrt.f64 -1/1000)) (pow.f64 x 8))))

eval531.0ms (6.7%)

Compiler

Compiled 6871 to 5408 computations (21.3% saved)

prune197.0ms (2.5%)

Pruning

26 alts after pruning (14 fresh and 12 done)

PrunedKeptTotal
New50710517
Fresh6410
Picked011
Done31114
Total51626542
Error
0b
Counts
542 → 26
Alt Table
Click to see full alt table
StatusErrorProgram
60.4b
(/.f64 (/.f64 -10 x) x)
0.6b
(cbrt.f64 (pow.f64 (/.f64 -10 (fma.f64 x x -1)) 3))
22.7b
(/.f64 1 (cbrt.f64 (pow.f64 (exp.f64 (log.f64 (*.f64 (fma.f64 x x -1) -1/10))) 3)))
60.4b
(/.f64 -10 (*.f64 x x))
7.9b
(/.f64 10 (/.f64 (-.f64 1 (*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x)))) (-.f64 1 (*.f64 x (neg.f64 x)))))
0.4b
(*.f64 (/.f64 1 (fma.f64 x x -1)) -10)
7.8b
(/.f64 10 (-.f64 1 (*.f64 x x)))
21.4b
(sqrt.f64 (/.f64 100 (pow.f64 (fma.f64 x x -1) 2)))
1.3b
(/.f64 (/.f64 1 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 x x -1) -1/10)) 2)) (cbrt.f64 (*.f64 (fma.f64 x x -1) -1/10)))
7.8b
(/.f64 1 (/.f64 (-.f64 1 (*.f64 x x)) 10))
0.5b
(/.f64 (/.f64 1 (fma.f64 x x -1)) -1/10)
6.7b
(*.f64 (/.f64 1 (/.f64 (-.f64 1 (pow.f64 x 4)) (+.f64 1 (*.f64 x x)))) 10)
1.3b
(/.f64 1 (*.f64 (*.f64 -1/10 (pow.f64 (cbrt.f64 (fma.f64 x x -1)) 2)) (cbrt.f64 (fma.f64 x x -1))))
0.4b
(/.f64 1 (/.f64 (fma.f64 x x -1) -10))
57.9b
10
0.6b
(/.f64 1 (cbrt.f64 (pow.f64 (*.f64 (fma.f64 x x -1) -1/10) 3)))
22.6b
(exp.f64 (log.f64 (/.f64 -10 (fma.f64 x x -1))))
1.3b
(pow.f64 (cbrt.f64 (/.f64 -10 (fma.f64 x x -1))) 3)
22.6b
(expm1.f64 (log1p.f64 (/.f64 -10 (fma.f64 x x -1))))
0.6b
(*.f64 (cbrt.f64 (pow.f64 (fma.f64 x x -1) -3)) -10)
0.5b
(/.f64 1 (*.f64 (fma.f64 x x -1) -1/10))
7.9b
(*.f64 (/.f64 1 (/.f64 (-.f64 1 (*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x)))) (-.f64 1 (*.f64 x (neg.f64 x))))) 10)
8.3b
(/.f64 1 (+.f64 (*.f64 (*.f64 x x) -1/10) 1/10))
6.4b
(/.f64 10 (/.f64 (-.f64 1 (pow.f64 x 6)) (+.f64 1 (-.f64 (*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x))) (*.f64 x (neg.f64 x))))))
0.3b
(/.f64 -10 (fma.f64 x x -1))
7.8b
(*.f64 (/.f64 1 (-.f64 1 (*.f64 x x))) 10)
Compiler

Compiled 302 to 222 computations (26.5% saved)

regimes560.0ms (7.1%)

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

7 calls:

203.0ms
(/.f64 10 (-.f64 1 (*.f64 x x)))
57.0ms
(-.f64 1 (*.f64 x x))
28.0ms
(-.f64 1 (*.f64 x x))
27.0ms
(*.f64 x x)
27.0ms
x
Results
ErrorSegmentsBranch
0.3b1x
0.3b1(/.f64 10 (-.f64 1 (*.f64 x x)))
0.3b1(/.f64 10 (-.f64 1 (*.f64 x x)))
0.3b1(-.f64 1 (*.f64 x x))
0.3b1(-.f64 1 (*.f64 x x))
0.3b1(*.f64 x x)
0.3b1(*.f64 x x)
Compiler

Compiled 531 to 367 computations (30.9% saved)

regimes33.0ms (0.4%)

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

4 calls:

8.0ms
(/.f64 10 (-.f64 1 (*.f64 x x)))
7.0ms
x
7.0ms
(*.f64 x x)
7.0ms
(-.f64 1 (*.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 110 to 64 computations (41.8% saved)

regimes31.0ms (0.4%)

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

3 calls:

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

Compiled 24 to 15 computations (37.5% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.9999924604000393
1.0000124583841556
Compiler

Compiled 12 to 9 computations (25% saved)

regimes5.0ms (0.1%)

Accuracy

Total 0.0b remaining (0%)

Threshold costs 0.0b (0%)

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

1 calls:

4.0ms
x
Results
ErrorSegmentsBranch
57.9b1x
Compiler

Compiled 6 to 5 computations (16.7% saved)

simplify6.0ms (0.1%)

Algorithm
egg-herbie
Rules
+-commutative_binary64
sub-neg_binary64
*-commutative_binary64
neg-sub0_binary64
neg-mul-1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01636
12336
22936
33336
43536
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(/.f64 -10 (fma.f64 x x -1))
(/.f64 10 (-.f64 1 (*.f64 x x)))
(if (<=.f64 (*.f64 x x) 1) 10 (/.f64 (/.f64 -10 x) x))
10
Outputs
(/.f64 -10 (fma.f64 x x -1))
(/.f64 10 (-.f64 1 (*.f64 x x)))
(if (<=.f64 (*.f64 x x) 1) 10 (/.f64 (/.f64 -10 x) x))
10
Compiler

Compiled 30 to 22 computations (26.7% saved)

soundness305.0ms (3.9%)

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

Useful iterations: 5 (0.0ms)

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

Compiled 110 to 86 computations (21.8% saved)

end51.0ms (0.6%)

Compiler

Compiled 27 to 18 computations (33.3% saved)

Profiling

Loading profile data...