Details

Time bar (total: 5.5s)

analyze4.0ms (0.1%)

Algorithm
search
Search
TrueOtherFalseIter
0%100%0%0
0%100%0%1
0%100%0%2
0%50%50%3
25%25%50%4
37.5%12.5%50%5
43.7%6.2%50%6
46.9%3.1%50%7
48.4%1.6%50%8
49.2%0.8%50%9
49.6%0.4%50%10
49.8%0.2%50%11
49.9%0.1%50%12
Compiler

Compiled 10 to 8 computations (20% saved)

sample3.3s (60.3%)

Results
2.2s4125×body1024valid
579.0ms2128×body512valid
286.0ms402×body2048valid
218.0ms1601×body256valid
1.0msbody256invalid

preprocess131.0ms (2.4%)

Algorithm
egg-herbie
Rules
1088×fma-neg_binary64
868×fma-def_binary64
737×distribute-rgt-in_binary64
491×distribute-lft-in_binary64
333×sub-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0712
11810
22810
34110
47110
510310
615710
729010
860110
9103210
10143910
11198310
12271510
13380110
14463610
15473410
16476610
17476610
18635210
19670710
20678510
21679310
22680110
23680110
24700110
011
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
Outputs
0
Call 2
Inputs
(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
Outputs
(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))
Compiler

Compiled 10 to 8 computations (20% saved)

simplify118.0ms (2.2%)

Algorithm
egg-herbie
Rules
1088×fma-neg_binary64
868×fma-def_binary64
737×distribute-rgt-in_binary64
491×distribute-lft-in_binary64
333×sub-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0712
11810
22810
34110
47110
510310
615710
729010
860110
9103210
10143910
11198310
12271510
13380110
14463610
15473410
16476610
17476610
18635210
19670710
20678510
21679310
22680110
23680110
24700110
Stop Event
node limit
Counts
1 → 2
Calls
Call 1
Inputs
(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
Outputs
(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))

eval1.0ms (0%)

Compiler

Compiled 15 to 11 computations (26.7% saved)

prune1.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.0b
Counts
3 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))
58.6b
(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
Compiler

Compiled 16 to 12 computations (25% saved)

localize11.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
6.8b
(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
0.0b
(/.f64 (-.f64 1 eps) (+.f64 1 eps))
0.0b
(/.f64 (-.f64 1 eps) (+.f64 1 eps))
6.8b
(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
Compiler

Compiled 24 to 17 computations (29.2% saved)

series4.0ms (0.1%)

Counts
2 → 24
Calls

6 calls:

TimeVariablePointExpression
1.0ms
eps
@0
(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
1.0ms
eps
@inf
(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
1.0ms
eps
@-inf
(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
0.0ms
eps
@inf
(/.f64 (-.f64 1 eps) (+.f64 1 eps))
0.0ms
eps
@0
(/.f64 (-.f64 1 eps) (+.f64 1 eps))

rewrite55.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
884×pow1_binary64
826×log1p-expm1-u_binary64
826×expm1-log1p-u_binary64
825×add-log-exp_binary64
810×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0722
115320
2215420
Stop Event
node limit
Counts
2 → 64
Calls
Call 1
Inputs
(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
(/.f64 (-.f64 1 eps) (+.f64 1 eps))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log1p.f64 (neg.f64 eps)) (neg.f64 (log1p.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))) 2)) (log.f64 (cbrt.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))) (log.f64 (sqrt.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (-.f64 (log1p.f64 eps) (log1p.f64 (neg.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (neg.f64 (-.f64 1 eps))) (log.f64 (neg.f64 (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))) (pow.f64 (cbrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))) 2) (cbrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))) (sqrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (log1p.f64 (neg.f64 eps)) 3) (pow.f64 (log1p.f64 eps) 3)) (+.f64 (*.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 (neg.f64 eps))) (+.f64 (*.f64 (log1p.f64 eps) (log1p.f64 eps)) (*.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 (neg.f64 eps))) (*.f64 (log1p.f64 eps) (log1p.f64 eps))) (+.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 (log1p.f64 eps) (log1p.f64 (neg.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (expm1.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 1 (+.f64 1 eps)) (neg.f64 (/.f64 eps (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 1 (+.f64 1 eps)) (/.f64 eps (+.f64 1 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (/.f64 (-.f64 1 eps) (+.f64 1 eps))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1 eps) (/.f64 1 (+.f64 1 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))) (pow.f64 (cbrt.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))) 2) (cbrt.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 1 eps)) 2) (*.f64 (cbrt.f64 (-.f64 1 eps)) (/.f64 1 (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))) (sqrt.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 1 eps)) (*.f64 (sqrt.f64 (-.f64 1 eps)) (/.f64 1 (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (-.f64 1 eps)) (/.f64 1 (neg.f64 (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 1 eps)) (-.f64 1 eps))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 1 eps)) 2) 1) (/.f64 (cbrt.f64 (-.f64 1 eps)) (+.f64 1 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (-.f64 1 eps)) 1) (/.f64 (sqrt.f64 (-.f64 1 eps)) (+.f64 1 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 (cbrt.f64 (+.f64 1 eps)) 2)) (/.f64 (-.f64 1 eps) (cbrt.f64 (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 1 eps)) 2) (pow.f64 (cbrt.f64 (+.f64 1 eps)) 2)) (cbrt.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (-.f64 1 eps)) (pow.f64 (cbrt.f64 (+.f64 1 eps)) 2)) (/.f64 (sqrt.f64 (-.f64 1 eps)) (cbrt.f64 (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (sqrt.f64 (+.f64 1 eps))) (/.f64 (-.f64 1 eps) (sqrt.f64 (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 1 eps)) 2) (sqrt.f64 (+.f64 1 eps))) (/.f64 (cbrt.f64 (-.f64 1 eps)) (sqrt.f64 (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 1 eps) (-.f64 1 (*.f64 eps eps))) (-.f64 1 eps))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 1 eps) (+.f64 1 (pow.f64 eps 3))) (+.f64 1 (-.f64 (*.f64 eps eps) eps)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (E.f64) (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 1 eps) (-.f64 1 eps)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))) (sqrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))) 2)) (cbrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (-.f64 1 eps) (neg.f64 (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (-.f64 1 eps) 3) (pow.f64 (+.f64 1 eps) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))))))))

simplify34.0ms (0.6%)

Algorithm
egg-herbie
Rules
611×fma-def_binary64
502×times-frac_binary64
462×fma-neg_binary64
434×associate-/l/_binary64
407×associate-*l/_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
057309
1164307
2410307
31135301
43292297
Stop Event
node limit
Counts
88 → 92
Calls
Call 1
Inputs
(*.f64 -2 eps)
(+.f64 (*.f64 -2 eps) (*.f64 -2/3 (pow.f64 eps 3)))
(+.f64 (*.f64 -2 eps) (+.f64 (*.f64 -2/5 (pow.f64 eps 5)) (*.f64 -2/3 (pow.f64 eps 3))))
(+.f64 (*.f64 -2 eps) (+.f64 (*.f64 -2/5 (pow.f64 eps 5)) (+.f64 (*.f64 -2/7 (pow.f64 eps 7)) (*.f64 -2/3 (pow.f64 eps 3)))))
(log.f64 -1)
(-.f64 (log.f64 -1) (*.f64 2 (/.f64 1 eps)))
(-.f64 (log.f64 -1) (+.f64 (*.f64 2/3 (/.f64 1 (pow.f64 eps 3))) (*.f64 2 (/.f64 1 eps))))
(-.f64 (log.f64 -1) (+.f64 (*.f64 2/3 (/.f64 1 (pow.f64 eps 3))) (+.f64 (*.f64 2 (/.f64 1 eps)) (*.f64 2/5 (/.f64 1 (pow.f64 eps 5))))))
(log.f64 -1)
(-.f64 (log.f64 -1) (*.f64 2 (/.f64 1 eps)))
(-.f64 (log.f64 -1) (+.f64 (*.f64 2/3 (/.f64 1 (pow.f64 eps 3))) (*.f64 2 (/.f64 1 eps))))
(-.f64 (log.f64 -1) (+.f64 (*.f64 2/3 (/.f64 1 (pow.f64 eps 3))) (+.f64 (*.f64 2 (/.f64 1 eps)) (*.f64 2/5 (/.f64 1 (pow.f64 eps 5))))))
1
(+.f64 (*.f64 -2 eps) 1)
(+.f64 (*.f64 -2 eps) (+.f64 (*.f64 2 (pow.f64 eps 2)) 1))
(+.f64 (*.f64 -2 eps) (+.f64 (*.f64 2 (pow.f64 eps 2)) (+.f64 1 (*.f64 -2 (pow.f64 eps 3)))))
-1
(-.f64 (*.f64 2 (/.f64 1 eps)) 1)
(-.f64 (*.f64 2 (/.f64 1 eps)) (+.f64 1 (*.f64 2 (/.f64 1 (pow.f64 eps 2)))))
(-.f64 (+.f64 (*.f64 2 (/.f64 1 (pow.f64 eps 3))) (*.f64 2 (/.f64 1 eps))) (+.f64 1 (*.f64 2 (/.f64 1 (pow.f64 eps 2)))))
-1
(-.f64 (*.f64 2 (/.f64 1 eps)) 1)
(-.f64 (*.f64 2 (/.f64 1 eps)) (+.f64 1 (*.f64 2 (/.f64 1 (pow.f64 eps 2)))))
(-.f64 (+.f64 (*.f64 2 (/.f64 1 (pow.f64 eps 3))) (*.f64 2 (/.f64 1 eps))) (+.f64 1 (*.f64 2 (/.f64 1 (pow.f64 eps 2)))))
Outputs
(*.f64 -2 eps)
(+.f64 (*.f64 -2 eps) (*.f64 -2/3 (pow.f64 eps 3)))
(fma.f64 -2 eps (*.f64 -2/3 (pow.f64 eps 3)))
(fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2 eps))
(*.f64 eps (fma.f64 -2/3 (*.f64 eps eps) -2))
(+.f64 (*.f64 -2 eps) (+.f64 (*.f64 -2/5 (pow.f64 eps 5)) (*.f64 -2/3 (pow.f64 eps 3))))
(fma.f64 -2 eps (fma.f64 -2/5 (pow.f64 eps 5) (*.f64 -2/3 (pow.f64 eps 3))))
(fma.f64 -2 eps (fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2/5 (pow.f64 eps 5))))
(fma.f64 eps (fma.f64 -2/3 (*.f64 eps eps) -2) (*.f64 -2/5 (pow.f64 eps 5)))
(+.f64 (*.f64 -2 eps) (+.f64 (*.f64 -2/5 (pow.f64 eps 5)) (+.f64 (*.f64 -2/7 (pow.f64 eps 7)) (*.f64 -2/3 (pow.f64 eps 3)))))
(fma.f64 -2 eps (fma.f64 -2/5 (pow.f64 eps 5) (fma.f64 -2/7 (pow.f64 eps 7) (*.f64 -2/3 (pow.f64 eps 3)))))
(fma.f64 -2 eps (fma.f64 -2/5 (pow.f64 eps 5) (fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2/7 (pow.f64 eps 7)))))
(fma.f64 -2 eps (fma.f64 -2/3 (pow.f64 eps 3) (fma.f64 -2/5 (pow.f64 eps 5) (*.f64 -2/7 (pow.f64 eps 7)))))
(fma.f64 eps (fma.f64 -2/3 (*.f64 eps eps) -2) (fma.f64 -2/5 (pow.f64 eps 5) (*.f64 -2/7 (pow.f64 eps 7))))
(log.f64 -1)
(-.f64 (log.f64 -1) (*.f64 2 (/.f64 1 eps)))
(-.f64 (log.f64 -1) (/.f64 2 eps))
(+.f64 (log.f64 -1) (/.f64 -2 eps))
(-.f64 (log.f64 -1) (+.f64 (*.f64 2/3 (/.f64 1 (pow.f64 eps 3))) (*.f64 2 (/.f64 1 eps))))
(-.f64 (log.f64 -1) (+.f64 (/.f64 2 eps) (/.f64 2/3 (pow.f64 eps 3))))
(-.f64 (+.f64 (log.f64 -1) (/.f64 -2 eps)) (/.f64 2/3 (pow.f64 eps 3)))
(+.f64 (log.f64 -1) (+.f64 (/.f64 -2 eps) (/.f64 -2/3 (pow.f64 eps 3))))
(+.f64 (/.f64 -2 eps) (-.f64 (log.f64 -1) (/.f64 2/3 (pow.f64 eps 3))))
(-.f64 (log.f64 -1) (+.f64 (*.f64 2/3 (/.f64 1 (pow.f64 eps 3))) (+.f64 (*.f64 2 (/.f64 1 eps)) (*.f64 2/5 (/.f64 1 (pow.f64 eps 5))))))
(-.f64 (-.f64 (log.f64 -1) (/.f64 2/3 (pow.f64 eps 3))) (+.f64 (/.f64 2 eps) (/.f64 2/5 (pow.f64 eps 5))))
(-.f64 (-.f64 (+.f64 (log.f64 -1) (/.f64 -2 eps)) (/.f64 2/3 (pow.f64 eps 3))) (/.f64 2/5 (pow.f64 eps 5)))
(+.f64 (log.f64 -1) (+.f64 (/.f64 -2 eps) (+.f64 (/.f64 -2/3 (pow.f64 eps 3)) (/.f64 -2/5 (pow.f64 eps 5)))))
(-.f64 (+.f64 (log.f64 -1) (/.f64 -2 eps)) (+.f64 (/.f64 2/3 (pow.f64 eps 3)) (/.f64 2/5 (pow.f64 eps 5))))
(+.f64 (log.f64 -1) (-.f64 (/.f64 -2 eps) (+.f64 (/.f64 2/3 (pow.f64 eps 3)) (/.f64 2/5 (pow.f64 eps 5)))))
(log.f64 -1)
(-.f64 (log.f64 -1) (*.f64 2 (/.f64 1 eps)))
(-.f64 (log.f64 -1) (/.f64 2 eps))
(+.f64 (log.f64 -1) (/.f64 -2 eps))
(-.f64 (log.f64 -1) (+.f64 (*.f64 2/3 (/.f64 1 (pow.f64 eps 3))) (*.f64 2 (/.f64 1 eps))))
(-.f64 (log.f64 -1) (+.f64 (/.f64 2 eps) (/.f64 2/3 (pow.f64 eps 3))))
(-.f64 (+.f64 (log.f64 -1) (/.f64 -2 eps)) (/.f64 2/3 (pow.f64 eps 3)))
(+.f64 (log.f64 -1) (+.f64 (/.f64 -2 eps) (/.f64 -2/3 (pow.f64 eps 3))))
(+.f64 (/.f64 -2 eps) (-.f64 (log.f64 -1) (/.f64 2/3 (pow.f64 eps 3))))
(-.f64 (log.f64 -1) (+.f64 (*.f64 2/3 (/.f64 1 (pow.f64 eps 3))) (+.f64 (*.f64 2 (/.f64 1 eps)) (*.f64 2/5 (/.f64 1 (pow.f64 eps 5))))))
(-.f64 (-.f64 (log.f64 -1) (/.f64 2/3 (pow.f64 eps 3))) (+.f64 (/.f64 2 eps) (/.f64 2/5 (pow.f64 eps 5))))
(-.f64 (-.f64 (+.f64 (log.f64 -1) (/.f64 -2 eps)) (/.f64 2/3 (pow.f64 eps 3))) (/.f64 2/5 (pow.f64 eps 5)))
(+.f64 (log.f64 -1) (+.f64 (/.f64 -2 eps) (+.f64 (/.f64 -2/3 (pow.f64 eps 3)) (/.f64 -2/5 (pow.f64 eps 5)))))
(-.f64 (+.f64 (log.f64 -1) (/.f64 -2 eps)) (+.f64 (/.f64 2/3 (pow.f64 eps 3)) (/.f64 2/5 (pow.f64 eps 5))))
(+.f64 (log.f64 -1) (-.f64 (/.f64 -2 eps) (+.f64 (/.f64 2/3 (pow.f64 eps 3)) (/.f64 2/5 (pow.f64 eps 5)))))
1
(+.f64 (*.f64 -2 eps) 1)
(fma.f64 -2 eps 1)
(+.f64 (*.f64 -2 eps) (+.f64 (*.f64 2 (pow.f64 eps 2)) 1))
(fma.f64 -2 eps (fma.f64 2 (*.f64 eps eps) 1))
(fma.f64 2 (*.f64 eps eps) (fma.f64 -2 eps 1))
(fma.f64 eps (fma.f64 eps 2 -2) 1)
(+.f64 (*.f64 -2 eps) (+.f64 (*.f64 2 (pow.f64 eps 2)) (+.f64 1 (*.f64 -2 (pow.f64 eps 3)))))
(fma.f64 -2 eps (+.f64 (fma.f64 2 (*.f64 eps eps) 1) (*.f64 -2 (pow.f64 eps 3))))
(fma.f64 -2 eps (fma.f64 2 (*.f64 eps eps) (fma.f64 -2 (pow.f64 eps 3) 1)))
(fma.f64 -2 eps (fma.f64 -2 (pow.f64 eps 3) (fma.f64 2 (*.f64 eps eps) 1)))
(fma.f64 -2 eps (fma.f64 eps (*.f64 eps (fma.f64 -2 eps 2)) 1))
(fma.f64 (*.f64 eps eps) (fma.f64 -2 eps 2) (fma.f64 -2 eps 1))
-1
(-.f64 (*.f64 2 (/.f64 1 eps)) 1)
(+.f64 (/.f64 2 eps) -1)
(+.f64 -1 (/.f64 2 eps))
(-.f64 (*.f64 2 (/.f64 1 eps)) (+.f64 1 (*.f64 2 (/.f64 1 (pow.f64 eps 2)))))
(-.f64 (/.f64 2 eps) (+.f64 1 (/.f64 2 (*.f64 eps eps))))
(+.f64 (/.f64 2 eps) (-.f64 -1 (/.f64 2 (*.f64 eps eps))))
(+.f64 (/.f64 2 eps) (+.f64 -1 (/.f64 -2 (*.f64 eps eps))))
(-.f64 (+.f64 (*.f64 2 (/.f64 1 (pow.f64 eps 3))) (*.f64 2 (/.f64 1 eps))) (+.f64 1 (*.f64 2 (/.f64 1 (pow.f64 eps 2)))))
(+.f64 (/.f64 2 (pow.f64 eps 3)) (-.f64 (/.f64 2 eps) (+.f64 1 (/.f64 2 (*.f64 eps eps)))))
(+.f64 (/.f64 2 (pow.f64 eps 3)) (+.f64 (/.f64 2 eps) (-.f64 -1 (/.f64 2 (*.f64 eps eps)))))
(+.f64 (/.f64 2 (pow.f64 eps 3)) (+.f64 (/.f64 2 eps) (+.f64 -1 (/.f64 -2 (*.f64 eps eps)))))
(+.f64 -1 (-.f64 (/.f64 2 eps) (-.f64 (/.f64 2 (*.f64 eps eps)) (/.f64 2 (pow.f64 eps 3)))))
(+.f64 (/.f64 2 eps) (fma.f64 (/.f64 1 (*.f64 eps eps)) (+.f64 -2 (/.f64 2 eps)) -1))
-1
(-.f64 (*.f64 2 (/.f64 1 eps)) 1)
(+.f64 (/.f64 2 eps) -1)
(+.f64 -1 (/.f64 2 eps))
(-.f64 (*.f64 2 (/.f64 1 eps)) (+.f64 1 (*.f64 2 (/.f64 1 (pow.f64 eps 2)))))
(-.f64 (/.f64 2 eps) (+.f64 1 (/.f64 2 (*.f64 eps eps))))
(+.f64 (/.f64 2 eps) (-.f64 -1 (/.f64 2 (*.f64 eps eps))))
(+.f64 (/.f64 2 eps) (+.f64 -1 (/.f64 -2 (*.f64 eps eps))))
(-.f64 (+.f64 (*.f64 2 (/.f64 1 (pow.f64 eps 3))) (*.f64 2 (/.f64 1 eps))) (+.f64 1 (*.f64 2 (/.f64 1 (pow.f64 eps 2)))))
(+.f64 (/.f64 2 (pow.f64 eps 3)) (-.f64 (/.f64 2 eps) (+.f64 1 (/.f64 2 (*.f64 eps eps)))))
(+.f64 (/.f64 2 (pow.f64 eps 3)) (+.f64 (/.f64 2 eps) (-.f64 -1 (/.f64 2 (*.f64 eps eps)))))
(+.f64 (/.f64 2 (pow.f64 eps 3)) (+.f64 (/.f64 2 eps) (+.f64 -1 (/.f64 -2 (*.f64 eps eps)))))
(+.f64 -1 (-.f64 (/.f64 2 eps) (-.f64 (/.f64 2 (*.f64 eps eps)) (/.f64 2 (pow.f64 eps 3)))))
(+.f64 (/.f64 2 eps) (fma.f64 (/.f64 1 (*.f64 eps eps)) (+.f64 -2 (/.f64 2 eps)) -1))

localize9.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))
0.0b
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))
Compiler

Compiled 15 to 5 computations (66.7% saved)

series2.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
1.0ms
eps
@0
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))
1.0ms
eps
@inf
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))
0.0ms
eps
@-inf
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))

rewrite38.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
519×pow1_binary64
484×add-log-exp_binary64
484×expm1-log1p-u_binary64
482×log1p-expm1-u_binary64
475×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify52.0ms (0.9%)

Algorithm
egg-herbie
Rules
699×fma-def_binary64
522×associate-/l*_binary64
425×distribute-neg-frac_binary64
399×fma-neg_binary64
366×div-sub_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
044180
1122177
2298174
3806174
42151174
55317174
67858174
Stop Event
node limit
Counts
47 → 57
Calls
Call 1
Inputs
(*.f64 -2 eps)
(+.f64 (*.f64 -2 eps) (*.f64 -2/3 (pow.f64 eps 3)))
(+.f64 (*.f64 -2 eps) (+.f64 (*.f64 -2/5 (pow.f64 eps 5)) (*.f64 -2/3 (pow.f64 eps 3))))
(+.f64 (*.f64 -2 eps) (+.f64 (*.f64 -2/5 (pow.f64 eps 5)) (+.f64 (*.f64 -2/7 (pow.f64 eps 7)) (*.f64 -2/3 (pow.f64 eps 3)))))
(log.f64 -1)
(-.f64 (log.f64 -1) (*.f64 2 (/.f64 1 eps)))
(-.f64 (log.f64 -1) (+.f64 (*.f64 2/3 (/.f64 1 (pow.f64 eps 3))) (*.f64 2 (/.f64 1 eps))))
(-.f64 (log.f64 -1) (+.f64 (*.f64 2/3 (/.f64 1 (pow.f64 eps 3))) (+.f64 (*.f64 2 (/.f64 1 eps)) (*.f64 2/5 (/.f64 1 (pow.f64 eps 5))))))
(*.f64 -1 (log.f64 -1))
(-.f64 (*.f64 -1 (log.f64 -1)) (*.f64 2 (/.f64 1 eps)))
(-.f64 (*.f64 -1 (log.f64 -1)) (+.f64 (*.f64 2/3 (/.f64 1 (pow.f64 eps 3))) (*.f64 2 (/.f64 1 eps))))
(-.f64 (*.f64 -1 (log.f64 -1)) (+.f64 (*.f64 2/3 (/.f64 1 (pow.f64 eps 3))) (+.f64 (*.f64 2 (/.f64 1 eps)) (*.f64 2/5 (/.f64 1 (pow.f64 eps 5))))))
Outputs
(*.f64 -2 eps)
(+.f64 (*.f64 -2 eps) (*.f64 -2/3 (pow.f64 eps 3)))
(fma.f64 -2 eps (*.f64 -2/3 (pow.f64 eps 3)))
(fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2 eps))
(+.f64 (*.f64 -2 eps) (+.f64 (*.f64 -2/5 (pow.f64 eps 5)) (*.f64 -2/3 (pow.f64 eps 3))))
(fma.f64 -2 eps (fma.f64 -2/5 (pow.f64 eps 5) (*.f64 -2/3 (pow.f64 eps 3))))
(fma.f64 -2 eps (fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2/5 (pow.f64 eps 5))))
(fma.f64 -2/3 (pow.f64 eps 3) (fma.f64 -2/5 (pow.f64 eps 5) (*.f64 -2 eps)))
(fma.f64 eps (fma.f64 eps (*.f64 eps -2/3) -2) (*.f64 -2/5 (pow.f64 eps 5)))
(+.f64 (*.f64 -2 eps) (+.f64 (*.f64 -2/5 (pow.f64 eps 5)) (+.f64 (*.f64 -2/7 (pow.f64 eps 7)) (*.f64 -2/3 (pow.f64 eps 3)))))
(fma.f64 -2 eps (fma.f64 -2/5 (pow.f64 eps 5) (fma.f64 -2/7 (pow.f64 eps 7) (*.f64 -2/3 (pow.f64 eps 3)))))
(fma.f64 -2 eps (fma.f64 -2/5 (pow.f64 eps 5) (fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2/7 (pow.f64 eps 7)))))
(fma.f64 -2 eps (fma.f64 -2/3 (pow.f64 eps 3) (fma.f64 -2/5 (pow.f64 eps 5) (*.f64 -2/7 (pow.f64 eps 7)))))
(fma.f64 -2/3 (pow.f64 eps 3) (fma.f64 -2/5 (pow.f64 eps 5) (fma.f64 -2/7 (pow.f64 eps 7) (*.f64 -2 eps))))
(fma.f64 -2/3 (pow.f64 eps 3) (fma.f64 -2/7 (pow.f64 eps 7) (fma.f64 -2/5 (pow.f64 eps 5) (*.f64 -2 eps))))
(log.f64 -1)
(-.f64 (log.f64 -1) (*.f64 2 (/.f64 1 eps)))
(-.f64 (log.f64 -1) (/.f64 2 eps))
(+.f64 (log.f64 -1) (/.f64 -2 eps))
(-.f64 (log.f64 -1) (+.f64 (*.f64 2/3 (/.f64 1 (pow.f64 eps 3))) (*.f64 2 (/.f64 1 eps))))
(-.f64 (-.f64 (log.f64 -1) (/.f64 2/3 (pow.f64 eps 3))) (/.f64 2 eps))
(-.f64 (+.f64 (log.f64 -1) (/.f64 -2 eps)) (/.f64 2/3 (pow.f64 eps 3)))
(+.f64 (/.f64 -2/3 (pow.f64 eps 3)) (+.f64 (log.f64 -1) (/.f64 -2 eps)))
(-.f64 (/.f64 -2 eps) (-.f64 (/.f64 2/3 (pow.f64 eps 3)) (log.f64 -1)))
(+.f64 (log.f64 -1) (-.f64 (/.f64 -2 eps) (/.f64 2/3 (pow.f64 eps 3))))
(-.f64 (log.f64 -1) (+.f64 (*.f64 2/3 (/.f64 1 (pow.f64 eps 3))) (+.f64 (*.f64 2 (/.f64 1 eps)) (*.f64 2/5 (/.f64 1 (pow.f64 eps 5))))))
(-.f64 (log.f64 -1) (+.f64 (/.f64 2/3 (pow.f64 eps 3)) (+.f64 (/.f64 2 eps) (/.f64 2/5 (pow.f64 eps 5)))))
(-.f64 (-.f64 (+.f64 (log.f64 -1) (/.f64 -2 eps)) (/.f64 2/3 (pow.f64 eps 3))) (/.f64 2/5 (pow.f64 eps 5)))
(+.f64 (+.f64 (/.f64 -2 eps) (/.f64 -2/3 (pow.f64 eps 3))) (-.f64 (log.f64 -1) (/.f64 2/5 (pow.f64 eps 5))))
(+.f64 (-.f64 (/.f64 -2 eps) (/.f64 2/3 (pow.f64 eps 3))) (-.f64 (log.f64 -1) (/.f64 2/5 (pow.f64 eps 5))))
(+.f64 (+.f64 (log.f64 -1) (/.f64 -2/3 (pow.f64 eps 3))) (-.f64 (/.f64 -2 eps) (/.f64 2/5 (pow.f64 eps 5))))
(*.f64 -1 (log.f64 -1))
(neg.f64 (log.f64 -1))
(-.f64 (*.f64 -1 (log.f64 -1)) (*.f64 2 (/.f64 1 eps)))
(-.f64 (neg.f64 (log.f64 -1)) (/.f64 2 eps))
(fma.f64 -1 (log.f64 -1) (/.f64 -2 eps))
(-.f64 (/.f64 -2 eps) (log.f64 -1))
(-.f64 (*.f64 -1 (log.f64 -1)) (+.f64 (*.f64 2/3 (/.f64 1 (pow.f64 eps 3))) (*.f64 2 (/.f64 1 eps))))
(-.f64 (neg.f64 (log.f64 -1)) (+.f64 (/.f64 2 eps) (/.f64 2/3 (pow.f64 eps 3))))
(-.f64 (fma.f64 -1 (log.f64 -1) (/.f64 -2 eps)) (/.f64 2/3 (pow.f64 eps 3)))
(+.f64 (/.f64 -2/3 (pow.f64 eps 3)) (-.f64 (/.f64 -2 eps) (log.f64 -1)))
(-.f64 (-.f64 (/.f64 -2 eps) (/.f64 2/3 (pow.f64 eps 3))) (log.f64 -1))
(-.f64 (*.f64 -1 (log.f64 -1)) (+.f64 (*.f64 2/3 (/.f64 1 (pow.f64 eps 3))) (+.f64 (*.f64 2 (/.f64 1 eps)) (*.f64 2/5 (/.f64 1 (pow.f64 eps 5))))))
(-.f64 (neg.f64 (log.f64 -1)) (+.f64 (/.f64 2/3 (pow.f64 eps 3)) (+.f64 (/.f64 2 eps) (/.f64 2/5 (pow.f64 eps 5)))))
(-.f64 (-.f64 (fma.f64 -1 (log.f64 -1) (/.f64 -2 eps)) (/.f64 2/3 (pow.f64 eps 3))) (/.f64 2/5 (pow.f64 eps 5)))
(+.f64 (+.f64 (/.f64 -2/3 (pow.f64 eps 3)) (-.f64 (/.f64 -2 eps) (log.f64 -1))) (/.f64 -2/5 (pow.f64 eps 5)))
(+.f64 (-.f64 (/.f64 -2 eps) (/.f64 2/3 (pow.f64 eps 3))) (-.f64 (/.f64 -2/5 (pow.f64 eps 5)) (log.f64 -1)))
(+.f64 (-.f64 (/.f64 -2/3 (pow.f64 eps 3)) (log.f64 -1)) (-.f64 (/.f64 -2 eps) (/.f64 2/5 (pow.f64 eps 5))))

eval41.0ms (0.8%)

Compiler

Compiled 1882 to 1147 computations (39.1% saved)

prune21.0ms (0.4%)

Pruning

7 alts after pruning (5 fresh and 2 done)

PrunedKeptTotal
New1445149
Fresh000
Picked011
Done011
Total1447151
Error
0b
Counts
151 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
58.6b
(log.f64 (*.f64 (/.f64 1 (+.f64 1 eps)) (-.f64 1 eps)))
0.3b
(*.f64 eps (fma.f64 -2/3 (*.f64 eps eps) -2))
0.0b
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))
0.1b
(+.f64 (*.f64 -2 eps) (+.f64 (*.f64 -2/5 (pow.f64 eps 5)) (*.f64 -2/3 (pow.f64 eps 3))))
0.6b
(*.f64 -2 eps)
58.6b
(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
0.3b
(+.f64 (*.f64 -2 eps) (*.f64 -2/3 (pow.f64 eps 3)))
Compiler

Compiled 116 to 90 computations (22.4% saved)

localize24.0ms (0.4%)

Local error

Found 6 expressions with local error:

NewErrorProgram
0.1b
(*.f64 -2/3 (pow.f64 eps 3))
0.1b
(*.f64 -2/5 (pow.f64 eps 5))
0.0b
(+.f64 (*.f64 -2/5 (pow.f64 eps 5)) (*.f64 -2/3 (pow.f64 eps 3)))
0.0b
(+.f64 (*.f64 -2/5 (pow.f64 eps 5)) (*.f64 -2/3 (pow.f64 eps 3)))
0.1b
(*.f64 -2/5 (pow.f64 eps 5))
0.1b
(*.f64 -2/3 (pow.f64 eps 3))
Compiler

Compiled 52 to 41 computations (21.2% saved)

series5.0ms (0.1%)

Counts
3 → 3
Calls

9 calls:

TimeVariablePointExpression
1.0ms
eps
@-inf
(*.f64 -2/3 (pow.f64 eps 3))
1.0ms
eps
@0
(*.f64 -2/3 (pow.f64 eps 3))
1.0ms
eps
@0
(*.f64 -2/5 (pow.f64 eps 5))
1.0ms
eps
@inf
(+.f64 (*.f64 -2/5 (pow.f64 eps 5)) (*.f64 -2/3 (pow.f64 eps 3)))
1.0ms
eps
@inf
(*.f64 -2/3 (pow.f64 eps 3))

rewrite61.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
476×log-prod_binary64
363×exp-prod_binary64
316×prod-exp_binary64
299×fma-def_binary64
283×pow2_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01128
124728
2286928
Stop Event
node limit
Counts
3 → 119
Calls
Call 1
Inputs
(*.f64 -2/3 (pow.f64 eps 3))
(*.f64 -2/5 (pow.f64 eps 5))
(+.f64 (*.f64 -2/5 (pow.f64 eps 5)) (*.f64 -2/3 (pow.f64 eps 3)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 -2/3 (pow.f64 eps 3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 -2/3) (pow.f64 eps 3))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 -2/3) (pow.f64 eps 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 -2/3) (pow.f64 eps 3)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 -2/3) (pow.f64 eps 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 -2/3 (pow.f64 eps 3)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 -2/3 (pow.f64 eps 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 eps 6) 4/9) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 eps (cbrt.f64 -2/3)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 -2/3) (pow.f64 eps 3/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 eps 9) -8/27) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (fma.f64 3 (log.f64 eps) (log.f64 -2/3)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (fma.f64 3 (log.f64 eps) (log.f64 -2/3))) 2)) (cbrt.f64 (fma.f64 3 (log.f64 eps) (log.f64 -2/3))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (fma.f64 3 (log.f64 eps) (log.f64 -2/3)))) (sqrt.f64 (fma.f64 3 (log.f64 eps) (log.f64 -2/3))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 eps 6) 4/9))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 -2/3) (pow.f64 eps 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 -2/3 (pow.f64 eps 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 eps 9) -8/27))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 -2/3 (pow.f64 eps 3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (fma.f64 3 (log.f64 eps) (log.f64 -2/3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (fma.f64 3 (log.f64 eps) (log.f64 -2/3)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 eps (cbrt.f64 -2/3))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (sqrt.f64 -2/3) (pow.f64 eps 3/2))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (pow.f64 eps 9) -8/27)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (fma.f64 3 (log.f64 eps) (log.f64 -2/3)) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (fma.f64 3 (log.f64 eps) (log.f64 -2/3)) 3) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 -2/3 (pow.f64 eps 3))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 -2/5 (pow.f64 eps 5)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 -2/5) (pow.f64 eps 5))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 -2/5) (pow.f64 eps 5)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 -2/5) (pow.f64 eps 5)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 -2/5) (pow.f64 eps 5)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 -2/5 (pow.f64 eps 5)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 -2/5 (pow.f64 eps 5)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 eps 10) 4/25) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 -2/5 (pow.f64 eps 5))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 -2/5) (pow.f64 eps 5/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 eps 15) -8/125) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (fma.f64 5 (log.f64 eps) (log1p.f64 -7/5)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (fma.f64 5 (log.f64 eps) (log1p.f64 -7/5))) 2)) (cbrt.f64 (fma.f64 5 (log.f64 eps) (log1p.f64 -7/5))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (fma.f64 5 (log.f64 eps) (log1p.f64 -7/5)))) (sqrt.f64 (fma.f64 5 (log.f64 eps) (log1p.f64 -7/5))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 eps 10) 4/25))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 -2/5) (pow.f64 eps 5)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 -2/5 (pow.f64 eps 5)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 eps 15) -8/125))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 -2/5 (pow.f64 eps 5))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (fma.f64 5 (log.f64 eps) (log1p.f64 -7/5)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (fma.f64 5 (log.f64 eps) (log1p.f64 -7/5)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 -2/5 (pow.f64 eps 5)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (sqrt.f64 -2/5) (pow.f64 eps 5/2))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (pow.f64 eps 15) -8/125)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (fma.f64 5 (log.f64 eps) (log1p.f64 -7/5)) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (fma.f64 5 (log.f64 eps) (log1p.f64 -7/5)) 3) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 -2/5 (pow.f64 eps 5))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2/5 (pow.f64 eps 5))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 (pow.f64 eps 10) 4/25) (fma.f64 -2/5 (pow.f64 eps 5) (*.f64 2/3 (pow.f64 eps 3)))) (/.f64 (*.f64 (pow.f64 eps 6) 4/9) (fma.f64 -2/5 (pow.f64 eps 5) (*.f64 2/3 (pow.f64 eps 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2/5 (pow.f64 eps 5))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2/5 (pow.f64 eps 5))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2/5 (pow.f64 eps 5)))) (pow.f64 (cbrt.f64 (fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2/5 (pow.f64 eps 5)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2/5 (pow.f64 eps 5)))) 2) (cbrt.f64 (fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2/5 (pow.f64 eps 5)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2/5 (pow.f64 eps 5)))) (sqrt.f64 (fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2/5 (pow.f64 eps 5)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 (pow.f64 eps 9) -8/27 (*.f64 (pow.f64 eps 15) -8/125)) (/.f64 1 (fma.f64 (*.f64 -2/3 (pow.f64 eps 3)) (-.f64 (*.f64 -2/3 (pow.f64 eps 3)) (*.f64 -2/5 (pow.f64 eps 5))) (*.f64 (pow.f64 eps 10) 4/25))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 (pow.f64 eps 10) 4/25 (neg.f64 (*.f64 (pow.f64 eps 6) 4/9))) (/.f64 1 (fma.f64 -2/5 (pow.f64 eps 5) (*.f64 2/3 (pow.f64 eps 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (*.f64 -2/3 (pow.f64 eps 3)) (-.f64 (*.f64 -2/3 (pow.f64 eps 3)) (*.f64 -2/5 (pow.f64 eps 5))) (*.f64 (pow.f64 eps 10) 4/25)) (fma.f64 (pow.f64 eps 9) -8/27 (*.f64 (pow.f64 eps 15) -8/125))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 -2/5 (pow.f64 eps 5) (*.f64 2/3 (pow.f64 eps 3))) (fma.f64 (pow.f64 eps 10) 4/25 (neg.f64 (*.f64 (pow.f64 eps 6) 4/9)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (pow.f64 eps 9) -8/27 (*.f64 (pow.f64 eps 15) -8/125)) (fma.f64 (*.f64 -2/3 (pow.f64 eps 3)) (-.f64 (*.f64 -2/3 (pow.f64 eps 3)) (*.f64 -2/5 (pow.f64 eps 5))) (*.f64 (pow.f64 eps 10) 4/25)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (pow.f64 eps 9) -8/27 (*.f64 (pow.f64 eps 15) -8/125)) (fma.f64 (pow.f64 eps 6) 4/9 (-.f64 (*.f64 (pow.f64 eps 10) 4/25) (*.f64 (*.f64 -2/3 (pow.f64 eps 3)) (*.f64 -2/5 (pow.f64 eps 5))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (pow.f64 eps 10) 4/25 (neg.f64 (*.f64 (pow.f64 eps 6) 4/9))) (fma.f64 -2/5 (pow.f64 eps 5) (*.f64 2/3 (pow.f64 eps 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (fma.f64 (pow.f64 eps 9) -8/27 (*.f64 (pow.f64 eps 15) -8/125))) (neg.f64 (fma.f64 (*.f64 -2/3 (pow.f64 eps 3)) (-.f64 (*.f64 -2/3 (pow.f64 eps 3)) (*.f64 -2/5 (pow.f64 eps 5))) (*.f64 (pow.f64 eps 10) 4/25))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (fma.f64 (pow.f64 eps 10) 4/25 (neg.f64 (*.f64 (pow.f64 eps 6) 4/9)))) (neg.f64 (fma.f64 -2/5 (pow.f64 eps 5) (*.f64 2/3 (pow.f64 eps 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (pow.f64 eps 6) 4/9) (*.f64 (pow.f64 eps 10) 4/25)) (-.f64 (*.f64 -2/3 (pow.f64 eps 3)) (*.f64 -2/5 (pow.f64 eps 5))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2/5 (pow.f64 eps 5))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2/5 (pow.f64 eps 5))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2/5 (pow.f64 eps 5))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2/5 (pow.f64 eps 5)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2/5 (pow.f64 eps 5)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2/5 (pow.f64 eps 5)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (*.f64 -2/3 (pow.f64 eps 3)) (-.f64 (*.f64 -2/3 (pow.f64 eps 3)) (*.f64 -2/5 (pow.f64 eps 5))) (*.f64 (pow.f64 eps 10) 4/25)) (fma.f64 (pow.f64 eps 9) -8/27 (*.f64 (pow.f64 eps 15) -8/125))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 -2/5 (pow.f64 eps 5) (*.f64 2/3 (pow.f64 eps 3))) (fma.f64 (pow.f64 eps 10) 4/25 (neg.f64 (*.f64 (pow.f64 eps 6) 4/9)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2/5 (pow.f64 eps 5))))) 2)) (cbrt.f64 (log.f64 (fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2/5 (pow.f64 eps 5))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2/5 (pow.f64 eps 5)))))) (sqrt.f64 (log.f64 (fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2/5 (pow.f64 eps 5))))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2/5 (pow.f64 eps 5))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2/5 (pow.f64 eps 5)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2/5 (pow.f64 eps 5))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 -2/3 (pow.f64 eps 3)))) (pow.f64 (exp.f64 -2/5) (pow.f64 eps 5))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 -2/3) (pow.f64 eps 3)) (+.f64 1 (expm1.f64 (*.f64 -2/5 (pow.f64 eps 5))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 -2/3 (pow.f64 eps 3)))) (+.f64 1 (expm1.f64 (*.f64 -2/5 (pow.f64 eps 5))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 -2/5 (pow.f64 eps 5)))) (pow.f64 (exp.f64 -2/3) (pow.f64 eps 3))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 -2/5) (pow.f64 eps 5)) (+.f64 1 (expm1.f64 (*.f64 -2/3 (pow.f64 eps 3))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 -2/5 (pow.f64 eps 5)))) (+.f64 1 (expm1.f64 (*.f64 -2/3 (pow.f64 eps 3))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2/5 (pow.f64 eps 5))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2/5 (pow.f64 eps 5)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2/5 (pow.f64 eps 5)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2/5 (pow.f64 eps 5)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2/5 (pow.f64 eps 5))))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2/5 (pow.f64 eps 5))))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2/5 (pow.f64 eps 5))))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2/5 (pow.f64 eps 5)))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2/5 (pow.f64 eps 5)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 eps (*.f64 (*.f64 eps eps) -2/3) (*.f64 -2/5 (pow.f64 eps 5)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 eps 3) -2/3 (*.f64 -2/5 (pow.f64 eps 5)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -2/3 (pow.f64 eps 3)) 1 (*.f64 -2/5 (pow.f64 eps 5)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -2/5 (pow.f64 eps 5) (*.f64 -2/3 (pow.f64 eps 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 eps 5) -2/5 (*.f64 -2/3 (pow.f64 eps 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -2/5 (pow.f64 eps 5)) 1 (*.f64 -2/3 (pow.f64 eps 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 -2/3 (pow.f64 eps 3)) (*.f64 -2/5 (pow.f64 eps 5)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 -2/5 (pow.f64 eps 5)) (*.f64 -2/3 (pow.f64 eps 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 eps eps) (*.f64 eps -2/3) (*.f64 -2/5 (pow.f64 eps 5)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 eps 10)) (*.f64 (pow.f64 (cbrt.f64 eps) 5) -2/5) (*.f64 -2/3 (pow.f64 eps 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 eps (cbrt.f64 -2/3)) (cbrt.f64 (*.f64 (pow.f64 eps 6) 4/9)) (*.f64 -2/5 (pow.f64 eps 5)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (pow.f64 eps 6) 4/9)) (*.f64 eps (cbrt.f64 -2/3)) (*.f64 -2/5 (pow.f64 eps 5)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 -2/5 (pow.f64 eps 5))) (cbrt.f64 (*.f64 (pow.f64 eps 10) 4/25)) (*.f64 -2/3 (pow.f64 eps 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (pow.f64 eps 10) 4/25)) (cbrt.f64 (*.f64 -2/5 (pow.f64 eps 5))) (*.f64 -2/3 (pow.f64 eps 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 -2/3) (pow.f64 eps 3/2)) (*.f64 (sqrt.f64 -2/3) (pow.f64 eps 3/2)) (*.f64 -2/5 (pow.f64 eps 5)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 -2/5) (pow.f64 eps 5/2)) (*.f64 (sqrt.f64 -2/5) (pow.f64 eps 5/2)) (*.f64 -2/3 (pow.f64 eps 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 eps 3/2) (*.f64 (pow.f64 eps 3/2) -2/3) (*.f64 -2/5 (pow.f64 eps 5)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 eps 5/2) (*.f64 (pow.f64 eps 5/2) -2/5) (*.f64 -2/3 (pow.f64 eps 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -2/3 eps) (*.f64 eps eps) (*.f64 -2/5 (pow.f64 eps 5)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -2/3 (*.f64 eps eps)) eps (*.f64 -2/5 (pow.f64 eps 5)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -2/3 (pow.f64 eps 3/2)) (pow.f64 eps 3/2) (*.f64 -2/5 (pow.f64 eps 5)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -2/5 (cbrt.f64 (pow.f64 eps 10))) (pow.f64 (cbrt.f64 eps) 5) (*.f64 -2/3 (pow.f64 eps 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -2/5 (pow.f64 eps 5/2)) (pow.f64 eps 5/2) (*.f64 -2/3 (pow.f64 eps 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2/5 (pow.f64 eps 5)))))))))

simplify107.0ms (2%)

Algorithm
egg-herbie
Rules
1252×sqr-pow_binary64
710×cube-prod_binary64
698×pow-sqr_binary64
675×fabs-mul_binary64
416×unswap-sqr_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01021
12421
25021
39921
421421
562221
691221
7154821
8165621
9181821
10203521
11236521
12282121
13341821
14416921
15509721
16560121
17608721
18648521
19680921
20696721
Stop Event
node limit
Counts
122 → 121
Calls
Call 1
Inputs
(*.f64 -2/3 (pow.f64 eps 3))
(*.f64 -2/5 (pow.f64 eps 5))
(*.f64 -2/5 (pow.f64 eps 5))
Outputs
(*.f64 -2/3 (pow.f64 eps 3))
(*.f64 -2/5 (pow.f64 eps 5))
(*.f64 -2/5 (pow.f64 eps 5))

localize3.0ms (0%)

Compiler

Compiled 6 to 4 computations (33.3% saved)

localize8.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(*.f64 eps (fma.f64 -2/3 (*.f64 eps eps) -2))
0.0b
(*.f64 eps (fma.f64 -2/3 (*.f64 eps eps) -2))
Compiler

Compiled 21 to 11 computations (47.6% saved)

series2.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
1.0ms
eps
@0
(*.f64 eps (fma.f64 -2/3 (*.f64 eps eps) -2))
1.0ms
eps
@inf
(*.f64 eps (fma.f64 -2/3 (*.f64 eps eps) -2))
0.0ms
eps
@-inf
(*.f64 eps (fma.f64 -2/3 (*.f64 eps eps) -2))

rewrite38.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
612×pow1_binary64
570×add-log-exp_binary64
570×log1p-expm1-u_binary64
570×expm1-log1p-u_binary64
559×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0711
114211
2156911
Stop Event
node limit
Counts
1 → 13
Calls
Call 1
Inputs
(*.f64 eps (fma.f64 -2/3 (*.f64 eps eps) -2))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 -2/3 (*.f64 eps eps)) eps) (*.f64 -2 eps))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 eps (*.f64 -2/3 (*.f64 eps eps))) (*.f64 eps -2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 eps (fma.f64 -2/3 (*.f64 eps eps) -2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 eps (fma.f64 -2/3 (*.f64 eps eps) -2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 eps (fma.f64 -2/3 (*.f64 eps eps) -2)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 eps (fma.f64 -2/3 (*.f64 eps eps) -2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 eps (fma.f64 -2/3 (*.f64 eps eps) -2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 eps (fma.f64 -2/3 (*.f64 eps eps) -2)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (fma.f64 -2/3 (*.f64 eps eps) -2)) eps))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 eps (fma.f64 -2/3 (*.f64 eps eps) -2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 eps (fma.f64 -2/3 (*.f64 eps eps) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 eps (fma.f64 -2/3 (*.f64 eps eps) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 eps (fma.f64 -2/3 (*.f64 eps eps) -2))))))))

simplify131.0ms (2.4%)

Algorithm
egg-herbie
Rules
1332×sqr-pow_binary64
715×pow-sqr_binary64
530×cube-prod_binary64
471×fabs-mul_binary64
441×associate-*l*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
09117
121117
241117
385117
4152117
5377117
61219117
71922117
82009117
92142117
102300117
112532117
122854117
133275117
143775117
154370117
165090117
175411117
185697117
195921117
206099117
216179117
227119117
Stop Event
node limit
Counts
25 → 17
Calls
Call 1
Inputs
(*.f64 -2 eps)
(+.f64 (*.f64 -2 eps) (*.f64 -2/3 (pow.f64 eps 3)))
(+.f64 (*.f64 -2 eps) (*.f64 -2/3 (pow.f64 eps 3)))
(+.f64 (*.f64 -2 eps) (*.f64 -2/3 (pow.f64 eps 3)))
(*.f64 -2/3 (pow.f64 eps 3))
(+.f64 (*.f64 -2 eps) (*.f64 -2/3 (pow.f64 eps 3)))
(+.f64 (*.f64 -2 eps) (*.f64 -2/3 (pow.f64 eps 3)))
(+.f64 (*.f64 -2 eps) (*.f64 -2/3 (pow.f64 eps 3)))
(*.f64 -2/3 (pow.f64 eps 3))
(+.f64 (*.f64 -2 eps) (*.f64 -2/3 (pow.f64 eps 3)))
(+.f64 (*.f64 -2 eps) (*.f64 -2/3 (pow.f64 eps 3)))
(+.f64 (*.f64 -2 eps) (*.f64 -2/3 (pow.f64 eps 3)))
Outputs
(*.f64 -2 eps)
(+.f64 (*.f64 -2 eps) (*.f64 -2/3 (pow.f64 eps 3)))
(fma.f64 -2 eps (*.f64 -2/3 (pow.f64 eps 3)))
(fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2 eps))
(*.f64 eps (fma.f64 eps (*.f64 eps -2/3) -2))
(*.f64 eps (fma.f64 -2/3 (*.f64 eps eps) -2))
(+.f64 (*.f64 -2 eps) (*.f64 -2/3 (pow.f64 eps 3)))
(fma.f64 -2 eps (*.f64 -2/3 (pow.f64 eps 3)))
(fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2 eps))
(*.f64 eps (fma.f64 eps (*.f64 eps -2/3) -2))
(*.f64 eps (fma.f64 -2/3 (*.f64 eps eps) -2))
(+.f64 (*.f64 -2 eps) (*.f64 -2/3 (pow.f64 eps 3)))
(fma.f64 -2 eps (*.f64 -2/3 (pow.f64 eps 3)))
(fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2 eps))
(*.f64 eps (fma.f64 eps (*.f64 eps -2/3) -2))
(*.f64 eps (fma.f64 -2/3 (*.f64 eps eps) -2))
(*.f64 -2/3 (pow.f64 eps 3))
(+.f64 (*.f64 -2 eps) (*.f64 -2/3 (pow.f64 eps 3)))
(fma.f64 -2 eps (*.f64 -2/3 (pow.f64 eps 3)))
(fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2 eps))
(*.f64 eps (fma.f64 eps (*.f64 eps -2/3) -2))
(*.f64 eps (fma.f64 -2/3 (*.f64 eps eps) -2))
(+.f64 (*.f64 -2 eps) (*.f64 -2/3 (pow.f64 eps 3)))
(fma.f64 -2 eps (*.f64 -2/3 (pow.f64 eps 3)))
(fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2 eps))
(*.f64 eps (fma.f64 eps (*.f64 eps -2/3) -2))
(*.f64 eps (fma.f64 -2/3 (*.f64 eps eps) -2))
(+.f64 (*.f64 -2 eps) (*.f64 -2/3 (pow.f64 eps 3)))
(fma.f64 -2 eps (*.f64 -2/3 (pow.f64 eps 3)))
(fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2 eps))
(*.f64 eps (fma.f64 eps (*.f64 eps -2/3) -2))
(*.f64 eps (fma.f64 -2/3 (*.f64 eps eps) -2))
(*.f64 -2/3 (pow.f64 eps 3))
(+.f64 (*.f64 -2 eps) (*.f64 -2/3 (pow.f64 eps 3)))
(fma.f64 -2 eps (*.f64 -2/3 (pow.f64 eps 3)))
(fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2 eps))
(*.f64 eps (fma.f64 eps (*.f64 eps -2/3) -2))
(*.f64 eps (fma.f64 -2/3 (*.f64 eps eps) -2))
(+.f64 (*.f64 -2 eps) (*.f64 -2/3 (pow.f64 eps 3)))
(fma.f64 -2 eps (*.f64 -2/3 (pow.f64 eps 3)))
(fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2 eps))
(*.f64 eps (fma.f64 eps (*.f64 eps -2/3) -2))
(*.f64 eps (fma.f64 -2/3 (*.f64 eps eps) -2))
(+.f64 (*.f64 -2 eps) (*.f64 -2/3 (pow.f64 eps 3)))
(fma.f64 -2 eps (*.f64 -2/3 (pow.f64 eps 3)))
(fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2 eps))
(*.f64 eps (fma.f64 eps (*.f64 eps -2/3) -2))
(*.f64 eps (fma.f64 -2/3 (*.f64 eps eps) -2))

localize13.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.1b
(*.f64 -2/3 (pow.f64 eps 3))
0.1b
(*.f64 -2/3 (pow.f64 eps 3))
Compiler

Compiled 25 to 19 computations (24% saved)

rewrite0.0ms (0%)

Counts
0 → 0

simplify7.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
000
Stop Event
saturated
Counts
0 → 0
Calls
Call 1
Inputs
Outputs

localize15.0ms (0.3%)

Local error

Found 6 expressions with local error:

NewErrorProgram
6.8b
(log.f64 (*.f64 (/.f64 1 (+.f64 1 eps)) (-.f64 1 eps)))
0.0b
(*.f64 (/.f64 1 (+.f64 1 eps)) (-.f64 1 eps))
0.0b
(/.f64 1 (+.f64 1 eps))
0.0b
(/.f64 1 (+.f64 1 eps))
0.0b
(*.f64 (/.f64 1 (+.f64 1 eps)) (-.f64 1 eps))
6.8b
(log.f64 (*.f64 (/.f64 1 (+.f64 1 eps)) (-.f64 1 eps)))
Compiler

Compiled 33 to 25 computations (24.2% saved)

series3.0ms (0.1%)

Counts
3 → 36
Calls

9 calls:

TimeVariablePointExpression
0.0ms
eps
@inf
(/.f64 1 (+.f64 1 eps))
0.0ms
eps
@0
(log.f64 (*.f64 (/.f64 1 (+.f64 1 eps)) (-.f64 1 eps)))
0.0ms
eps
@-inf
(/.f64 1 (+.f64 1 eps))
0.0ms
eps
@0
(/.f64 1 (+.f64 1 eps))
0.0ms
eps
@inf
(log.f64 (*.f64 (/.f64 1 (+.f64 1 eps)) (-.f64 1 eps)))

rewrite59.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
906×pow1_binary64
844×log1p-expm1-u_binary64
844×expm1-log1p-u_binary64
843×add-log-exp_binary64
828×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0829
117227
2230127
Stop Event
node limit
Counts
3 → 87
Calls
Call 1
Inputs
(log.f64 (*.f64 (/.f64 1 (+.f64 1 eps)) (-.f64 1 eps)))
(*.f64 (/.f64 1 (+.f64 1 eps)) (-.f64 1 eps))
(/.f64 1 (+.f64 1 eps))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (log1p.f64 eps)) (log1p.f64 (neg.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log1p.f64 (neg.f64 eps)) (neg.f64 (log1p.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))) 2)) (log.f64 (cbrt.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))) (log.f64 (sqrt.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))) (pow.f64 (cbrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))) 2) (cbrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))) (sqrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (neg.f64 (log1p.f64 eps)) 3) (pow.f64 (log1p.f64 (neg.f64 eps)) 3)) (+.f64 (*.f64 (neg.f64 (log1p.f64 eps)) (neg.f64 (log1p.f64 eps))) (-.f64 (*.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 (neg.f64 eps))) (*.f64 (neg.f64 (log1p.f64 eps)) (log1p.f64 (neg.f64 eps))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (neg.f64 (log1p.f64 eps)) (neg.f64 (log1p.f64 eps))) (*.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 (neg.f64 eps)))) (-.f64 (neg.f64 (log1p.f64 eps)) (log1p.f64 (neg.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (expm1.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 1 (+.f64 1 eps)) (*.f64 (neg.f64 eps) (/.f64 1 (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 1 (+.f64 1 eps)) (*.f64 (/.f64 1 (+.f64 1 eps)) (neg.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 1 (+.f64 1 eps)) (/.f64 eps (+.f64 1 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (/.f64 (-.f64 1 eps) (+.f64 1 eps))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 1 eps) (-.f64 1 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 eps) (+.f64 1 eps))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (cbrt.f64 (-.f64 1 eps)) 2) (/.f64 (+.f64 1 eps) (cbrt.f64 (-.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (-.f64 1 eps)) (/.f64 (+.f64 1 eps) (sqrt.f64 (-.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (pow.f64 eps 3)) (*.f64 (+.f64 1 eps) (+.f64 1 (fma.f64 eps eps eps))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (*.f64 eps eps)) (pow.f64 (+.f64 1 eps) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 1 eps)) (+.f64 -1 (neg.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -1 (-.f64 1 (pow.f64 eps 3))) (*.f64 (+.f64 -1 (neg.f64 eps)) (+.f64 1 (fma.f64 eps eps eps))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -1 (-.f64 1 (*.f64 eps eps))) (*.f64 (+.f64 -1 (neg.f64 eps)) (+.f64 1 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (pow.f64 eps 3)) 1) (*.f64 (+.f64 1 (fma.f64 eps eps eps)) (+.f64 1 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (*.f64 eps eps)) 1) (pow.f64 (+.f64 1 eps) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (pow.f64 eps 3)) -1) (*.f64 (+.f64 1 (fma.f64 eps eps eps)) (+.f64 -1 (neg.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (*.f64 eps eps)) -1) (*.f64 (+.f64 1 eps) (+.f64 -1 (neg.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (-.f64 1 eps) (sqrt.f64 (+.f64 1 eps))) (sqrt.f64 (+.f64 1 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (-.f64 1 eps) 1) (+.f64 1 eps))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (-.f64 1 eps) (pow.f64 (cbrt.f64 (+.f64 1 eps)) 2)) (cbrt.f64 (+.f64 1 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -1 (-.f64 1 eps)) (+.f64 -1 (neg.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (pow.f64 eps 3)) (/.f64 1 (+.f64 1 eps))) (+.f64 1 (fma.f64 eps eps eps)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 1 (+.f64 1 eps)) (-.f64 1 (pow.f64 eps 3))) (+.f64 1 (fma.f64 eps eps eps)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 1 (+.f64 1 eps)) (-.f64 1 (*.f64 eps eps))) (+.f64 1 eps))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 eps) -1) (+.f64 -1 (neg.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (E.f64) (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))) 2)) (cbrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))) (sqrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (-.f64 1 eps) 3) (pow.f64 (+.f64 1 eps) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (/.f64 1 (+.f64 1 eps)) 3) (pow.f64 (-.f64 1 eps) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (-.f64 1 eps) 3) (pow.f64 (/.f64 1 (+.f64 1 eps)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (/.f64 1 (+.f64 1 eps))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 1 (+.f64 1 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 1 eps)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 (+.f64 1 eps))) (cbrt.f64 (pow.f64 (+.f64 1 eps) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (+.f64 1 eps) -2)) (/.f64 1 (cbrt.f64 (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (+.f64 1 eps) -1/2) (pow.f64 (+.f64 1 eps) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (/.f64 1 (+.f64 -1 (neg.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (+.f64 1 eps)) 2) -1) (pow.f64 (cbrt.f64 (+.f64 1 eps)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (+.f64 1 eps)) -1) (pow.f64 (sqrt.f64 (+.f64 1 eps)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 1 (pow.f64 eps 3))) (+.f64 1 (-.f64 (*.f64 eps eps) eps)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps))) (-.f64 1 eps))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 1 eps) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1 (+.f64 1 eps)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 1 (+.f64 1 eps)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1 (cbrt.f64 (+.f64 1 eps))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 1 eps) -1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 1 eps) -2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 1 (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 1 (+.f64 1 eps)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 1 (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (neg.f64 (log1p.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 1 (+.f64 1 eps))))))))

simplify46.0ms (0.8%)

Algorithm
egg-herbie
Rules
844×fma-def_binary64
720×times-frac_binary64
402×sub-neg_binary64
265×distribute-neg-frac_binary64
240×associate-*l*_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
072487
1210474
2551474
31583468
44890465
Stop Event
node limit
Counts
123 → 128
Calls
Call 1
Inputs
(*.f64 -2 eps)
(+.f64 (*.f64 -2 eps) (*.f64 -2/3 (pow.f64 eps 3)))
(+.f64 (*.f64 -2 eps) (+.f64 (*.f64 -2/5 (pow.f64 eps 5)) (*.f64 -2/3 (pow.f64 eps 3))))
(+.f64 (*.f64 -2 eps) (+.f64 (*.f64 -2/5 (pow.f64 eps 5)) (+.f64 (*.f64 -2/7 (pow.f64 eps 7)) (*.f64 -2/3 (pow.f64 eps 3)))))
(log.f64 -1)
(-.f64 (log.f64 -1) (*.f64 2 (/.f64 1 eps)))
(-.f64 (log.f64 -1) (+.f64 (*.f64 2/3 (/.f64 1 (pow.f64 eps 3))) (*.f64 2 (/.f64 1 eps))))
(-.f64 (log.f64 -1) (+.f64 (*.f64 2/3 (/.f64 1 (pow.f64 eps 3))) (+.f64 (*.f64 2 (/.f64 1 eps)) (*.f64 2/5 (/.f64 1 (pow.f64 eps 5))))))
(log.f64 -1)
(-.f64 (log.f64 -1) (*.f64 2 (/.f64 1 eps)))
(-.f64 (log.f64 -1) (+.f64 (*.f64 2/3 (/.f64 1 (pow.f64 eps 3))) (*.f64 2 (/.f64 1 eps))))
(-.f64 (log.f64 -1) (+.f64 (*.f64 2/3 (/.f64 1 (pow.f64 eps 3))) (+.f64 (*.f64 2 (/.f64 1 eps)) (*.f64 2/5 (/.f64 1 (pow.f64 eps 5))))))
1
(+.f64 (*.f64 -2 eps) 1)
(+.f64 (*.f64 -2 eps) (+.f64 (*.f64 2 (pow.f64 eps 2)) 1))
(+.f64 (*.f64 -2 eps) (+.f64 (*.f64 2 (pow.f64 eps 2)) (+.f64 1 (*.f64 -2 (pow.f64 eps 3)))))
-1
(-.f64 (*.f64 2 (/.f64 1 eps)) 1)
(-.f64 (*.f64 2 (/.f64 1 eps)) (+.f64 1 (*.f64 2 (/.f64 1 (pow.f64 eps 2)))))
(-.f64 (+.f64 (*.f64 2 (/.f64 1 (pow.f64 eps 3))) (*.f64 2 (/.f64 1 eps))) (+.f64 1 (*.f64 2 (/.f64 1 (pow.f64 eps 2)))))
-1
(-.f64 (*.f64 2 (/.f64 1 eps)) 1)
(-.f64 (*.f64 2 (/.f64 1 eps)) (+.f64 1 (*.f64 2 (/.f64 1 (pow.f64 eps 2)))))
(-.f64 (+.f64 (*.f64 2 (/.f64 1 (pow.f64 eps 3))) (*.f64 2 (/.f64 1 eps))) (+.f64 1 (*.f64 2 (/.f64 1 (pow.f64 eps 2)))))
1
(+.f64 1 (*.f64 -1 eps))
(+.f64 (pow.f64 eps 2) (+.f64 1 (*.f64 -1 eps)))
(+.f64 (pow.f64 eps 2) (+.f64 1 (+.f64 (*.f64 -1 eps) (*.f64 -1 (pow.f64 eps 3)))))
(/.f64 1 eps)
(-.f64 (/.f64 1 eps) (/.f64 1 (pow.f64 eps 2)))
(-.f64 (+.f64 (/.f64 1 eps) (/.f64 1 (pow.f64 eps 3))) (/.f64 1 (pow.f64 eps 2)))
(-.f64 (+.f64 (/.f64 1 eps) (/.f64 1 (pow.f64 eps 3))) (+.f64 (/.f64 1 (pow.f64 eps 4)) (/.f64 1 (pow.f64 eps 2))))
(/.f64 1 eps)
(-.f64 (/.f64 1 eps) (/.f64 1 (pow.f64 eps 2)))
(-.f64 (+.f64 (/.f64 1 eps) (/.f64 1 (pow.f64 eps 3))) (/.f64 1 (pow.f64 eps 2)))
(-.f64 (+.f64 (/.f64 1 eps) (/.f64 1 (pow.f64 eps 3))) (+.f64 (/.f64 1 (pow.f64 eps 4)) (/.f64 1 (pow.f64 eps 2))))
Outputs
(*.f64 -2 eps)
(+.f64 (*.f64 -2 eps) (*.f64 -2/3 (pow.f64 eps 3)))
(fma.f64 -2 eps (*.f64 -2/3 (pow.f64 eps 3)))
(fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2 eps))
(*.f64 eps (fma.f64 eps (*.f64 eps -2/3) -2))
(+.f64 (*.f64 -2 eps) (+.f64 (*.f64 -2/5 (pow.f64 eps 5)) (*.f64 -2/3 (pow.f64 eps 3))))
(fma.f64 -2 eps (fma.f64 -2/5 (pow.f64 eps 5) (*.f64 -2/3 (pow.f64 eps 3))))
(fma.f64 -2 eps (fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2/5 (pow.f64 eps 5))))
(fma.f64 eps (fma.f64 eps (*.f64 eps -2/3) -2) (*.f64 -2/5 (pow.f64 eps 5)))
(+.f64 (*.f64 -2 eps) (+.f64 (*.f64 -2/5 (pow.f64 eps 5)) (+.f64 (*.f64 -2/7 (pow.f64 eps 7)) (*.f64 -2/3 (pow.f64 eps 3)))))
(fma.f64 -2 eps (fma.f64 -2/5 (pow.f64 eps 5) (fma.f64 -2/7 (pow.f64 eps 7) (*.f64 -2/3 (pow.f64 eps 3)))))
(fma.f64 -2 eps (fma.f64 -2/5 (pow.f64 eps 5) (fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2/7 (pow.f64 eps 7)))))
(fma.f64 -2 eps (fma.f64 -2/3 (pow.f64 eps 3) (fma.f64 -2/5 (pow.f64 eps 5) (*.f64 -2/7 (pow.f64 eps 7)))))
(log.f64 -1)
(-.f64 (log.f64 -1) (*.f64 2 (/.f64 1 eps)))
(-.f64 (log.f64 -1) (/.f64 2 eps))
(+.f64 (log.f64 -1) (/.f64 -2 eps))
(-.f64 (log.f64 -1) (+.f64 (*.f64 2/3 (/.f64 1 (pow.f64 eps 3))) (*.f64 2 (/.f64 1 eps))))
(-.f64 (log.f64 -1) (+.f64 (/.f64 2 eps) (/.f64 2/3 (pow.f64 eps 3))))
(+.f64 (-.f64 (log.f64 -1) (/.f64 2/3 (pow.f64 eps 3))) (/.f64 -2 eps))
(+.f64 (log.f64 -1) (-.f64 (/.f64 -2 eps) (/.f64 2/3 (pow.f64 eps 3))))
(-.f64 (log.f64 -1) (+.f64 (*.f64 2/3 (/.f64 1 (pow.f64 eps 3))) (+.f64 (*.f64 2 (/.f64 1 eps)) (*.f64 2/5 (/.f64 1 (pow.f64 eps 5))))))
(-.f64 (log.f64 -1) (+.f64 (/.f64 2/3 (pow.f64 eps 3)) (+.f64 (/.f64 2 eps) (/.f64 2/5 (pow.f64 eps 5)))))
(-.f64 (log.f64 -1) (+.f64 (/.f64 2 eps) (+.f64 (/.f64 2/3 (pow.f64 eps 3)) (/.f64 2/5 (pow.f64 eps 5)))))
(+.f64 (log.f64 -1) (+.f64 (-.f64 (/.f64 -2 eps) (/.f64 2/3 (pow.f64 eps 3))) (/.f64 -2/5 (pow.f64 eps 5))))
(log.f64 -1)
(-.f64 (log.f64 -1) (*.f64 2 (/.f64 1 eps)))
(-.f64 (log.f64 -1) (/.f64 2 eps))
(+.f64 (log.f64 -1) (/.f64 -2 eps))
(-.f64 (log.f64 -1) (+.f64 (*.f64 2/3 (/.f64 1 (pow.f64 eps 3))) (*.f64 2 (/.f64 1 eps))))
(-.f64 (log.f64 -1) (+.f64 (/.f64 2 eps) (/.f64 2/3 (pow.f64 eps 3))))
(+.f64 (-.f64 (log.f64 -1) (/.f64 2/3 (pow.f64 eps 3))) (/.f64 -2 eps))
(+.f64 (log.f64 -1) (-.f64 (/.f64 -2 eps) (/.f64 2/3 (pow.f64 eps 3))))
(-.f64 (log.f64 -1) (+.f64 (*.f64 2/3 (/.f64 1 (pow.f64 eps 3))) (+.f64 (*.f64 2 (/.f64 1 eps)) (*.f64 2/5 (/.f64 1 (pow.f64 eps 5))))))
(-.f64 (log.f64 -1) (+.f64 (/.f64 2/3 (pow.f64 eps 3)) (+.f64 (/.f64 2 eps) (/.f64 2/5 (pow.f64 eps 5)))))
(-.f64 (log.f64 -1) (+.f64 (/.f64 2 eps) (+.f64 (/.f64 2/3 (pow.f64 eps 3)) (/.f64 2/5 (pow.f64 eps 5)))))
(+.f64 (log.f64 -1) (+.f64 (-.f64 (/.f64 -2 eps) (/.f64 2/3 (pow.f64 eps 3))) (/.f64 -2/5 (pow.f64 eps 5))))
1
(+.f64 (*.f64 -2 eps) 1)
(fma.f64 -2 eps 1)
(+.f64 (*.f64 -2 eps) (+.f64 (*.f64 2 (pow.f64 eps 2)) 1))
(fma.f64 -2 eps (fma.f64 2 (*.f64 eps eps) 1))
(fma.f64 -2 eps (fma.f64 eps (*.f64 eps 2) 1))
(fma.f64 eps (fma.f64 eps 2 -2) 1)
(+.f64 (*.f64 -2 eps) (+.f64 (*.f64 2 (pow.f64 eps 2)) (+.f64 1 (*.f64 -2 (pow.f64 eps 3)))))
(fma.f64 -2 eps (+.f64 (fma.f64 2 (*.f64 eps eps) 1) (*.f64 -2 (pow.f64 eps 3))))
(fma.f64 -2 eps (fma.f64 2 (*.f64 eps eps) (fma.f64 -2 (pow.f64 eps 3) 1)))
(fma.f64 -2 eps (fma.f64 -2 (pow.f64 eps 3) (fma.f64 eps (*.f64 eps 2) 1)))
(fma.f64 (*.f64 eps eps) (fma.f64 -2 eps 2) (fma.f64 -2 eps 1))
-1
(-.f64 (*.f64 2 (/.f64 1 eps)) 1)
(+.f64 (/.f64 2 eps) -1)
(+.f64 -1 (/.f64 2 eps))
(-.f64 (*.f64 2 (/.f64 1 eps)) (+.f64 1 (*.f64 2 (/.f64 1 (pow.f64 eps 2)))))
(-.f64 (/.f64 2 eps) (+.f64 1 (/.f64 2 (*.f64 eps eps))))
(+.f64 (/.f64 2 eps) (-.f64 -1 (/.f64 2 (*.f64 eps eps))))
(+.f64 (/.f64 2 eps) (+.f64 -1 (/.f64 -2 (*.f64 eps eps))))
(+.f64 -1 (+.f64 (/.f64 2 eps) (/.f64 -2 (*.f64 eps eps))))
(-.f64 (+.f64 (*.f64 2 (/.f64 1 (pow.f64 eps 3))) (*.f64 2 (/.f64 1 eps))) (+.f64 1 (*.f64 2 (/.f64 1 (pow.f64 eps 2)))))
(+.f64 (/.f64 2 (pow.f64 eps 3)) (-.f64 (/.f64 2 eps) (+.f64 1 (/.f64 2 (*.f64 eps eps)))))
(+.f64 (/.f64 2 eps) (-.f64 (/.f64 2 (pow.f64 eps 3)) (+.f64 1 (/.f64 2 (*.f64 eps eps)))))
(+.f64 (/.f64 2 eps) (+.f64 (/.f64 2 (pow.f64 eps 3)) (+.f64 -1 (/.f64 -2 (*.f64 eps eps)))))
(+.f64 (+.f64 (/.f64 2 eps) (/.f64 2 (pow.f64 eps 3))) (+.f64 -1 (/.f64 -2 (*.f64 eps eps))))
-1
(-.f64 (*.f64 2 (/.f64 1 eps)) 1)
(+.f64 (/.f64 2 eps) -1)
(+.f64 -1 (/.f64 2 eps))
(-.f64 (*.f64 2 (/.f64 1 eps)) (+.f64 1 (*.f64 2 (/.f64 1 (pow.f64 eps 2)))))
(-.f64 (/.f64 2 eps) (+.f64 1 (/.f64 2 (*.f64 eps eps))))
(+.f64 (/.f64 2 eps) (-.f64 -1 (/.f64 2 (*.f64 eps eps))))
(+.f64 (/.f64 2 eps) (+.f64 -1 (/.f64 -2 (*.f64 eps eps))))
(+.f64 -1 (+.f64 (/.f64 2 eps) (/.f64 -2 (*.f64 eps eps))))
(-.f64 (+.f64 (*.f64 2 (/.f64 1 (pow.f64 eps 3))) (*.f64 2 (/.f64 1 eps))) (+.f64 1 (*.f64 2 (/.f64 1 (pow.f64 eps 2)))))
(+.f64 (/.f64 2 (pow.f64 eps 3)) (-.f64 (/.f64 2 eps) (+.f64 1 (/.f64 2 (*.f64 eps eps)))))
(+.f64 (/.f64 2 eps) (-.f64 (/.f64 2 (pow.f64 eps 3)) (+.f64 1 (/.f64 2 (*.f64 eps eps)))))
(+.f64 (/.f64 2 eps) (+.f64 (/.f64 2 (pow.f64 eps 3)) (+.f64 -1 (/.f64 -2 (*.f64 eps eps)))))
(+.f64 (+.f64 (/.f64 2 eps) (/.f64 2 (pow.f64 eps 3))) (+.f64 -1 (/.f64 -2 (*.f64 eps eps))))
1
(+.f64 1 (*.f64 -1 eps))
(+.f64 1 (neg.f64 eps))
(-.f64 1 eps)
(+.f64 (pow.f64 eps 2) (+.f64 1 (*.f64 -1 eps)))
(+.f64 (*.f64 eps eps) (+.f64 1 (neg.f64 eps)))
(-.f64 (fma.f64 eps eps 1) eps)
(+.f64 (pow.f64 eps 2) (+.f64 1 (+.f64 (*.f64 -1 eps) (*.f64 -1 (pow.f64 eps 3)))))
(+.f64 (*.f64 eps eps) (+.f64 1 (*.f64 -1 (+.f64 eps (pow.f64 eps 3)))))
(fma.f64 eps eps (-.f64 (-.f64 1 eps) (pow.f64 eps 3)))
(-.f64 (fma.f64 eps eps (-.f64 1 (pow.f64 eps 3))) eps)
(*.f64 (-.f64 1 eps) (fma.f64 eps eps 1))
(/.f64 1 eps)
(-.f64 (/.f64 1 eps) (/.f64 1 (pow.f64 eps 2)))
(-.f64 (/.f64 1 eps) (/.f64 1 (*.f64 eps eps)))
(+.f64 (/.f64 1 eps) (/.f64 -1 (*.f64 eps eps)))
(-.f64 (+.f64 (/.f64 1 eps) (/.f64 1 (pow.f64 eps 3))) (/.f64 1 (pow.f64 eps 2)))
(+.f64 (/.f64 1 eps) (-.f64 (/.f64 1 (pow.f64 eps 3)) (/.f64 1 (*.f64 eps eps))))
(+.f64 (/.f64 1 eps) (+.f64 (/.f64 1 (pow.f64 eps 3)) (/.f64 -1 (*.f64 eps eps))))
(-.f64 (+.f64 (/.f64 1 eps) (/.f64 1 (pow.f64 eps 3))) (+.f64 (/.f64 1 (pow.f64 eps 4)) (/.f64 1 (pow.f64 eps 2))))
(+.f64 (/.f64 1 eps) (-.f64 (/.f64 1 (pow.f64 eps 3)) (+.f64 (/.f64 1 (*.f64 eps eps)) (/.f64 1 (pow.f64 eps 4)))))
(+.f64 (/.f64 1 eps) (+.f64 (/.f64 1 (pow.f64 eps 3)) (+.f64 (/.f64 -1 (*.f64 eps eps)) (/.f64 -1 (pow.f64 eps 4)))))
(/.f64 1 eps)
(-.f64 (/.f64 1 eps) (/.f64 1 (pow.f64 eps 2)))
(-.f64 (/.f64 1 eps) (/.f64 1 (*.f64 eps eps)))
(+.f64 (/.f64 1 eps) (/.f64 -1 (*.f64 eps eps)))
(-.f64 (+.f64 (/.f64 1 eps) (/.f64 1 (pow.f64 eps 3))) (/.f64 1 (pow.f64 eps 2)))
(+.f64 (/.f64 1 eps) (-.f64 (/.f64 1 (pow.f64 eps 3)) (/.f64 1 (*.f64 eps eps))))
(+.f64 (/.f64 1 eps) (+.f64 (/.f64 1 (pow.f64 eps 3)) (/.f64 -1 (*.f64 eps eps))))
(-.f64 (+.f64 (/.f64 1 eps) (/.f64 1 (pow.f64 eps 3))) (+.f64 (/.f64 1 (pow.f64 eps 4)) (/.f64 1 (pow.f64 eps 2))))
(+.f64 (/.f64 1 eps) (-.f64 (/.f64 1 (pow.f64 eps 3)) (+.f64 (/.f64 1 (*.f64 eps eps)) (/.f64 1 (pow.f64 eps 4)))))
(+.f64 (/.f64 1 eps) (+.f64 (/.f64 1 (pow.f64 eps 3)) (+.f64 (/.f64 -1 (*.f64 eps eps)) (/.f64 -1 (pow.f64 eps 4)))))

eval168.0ms (3.1%)

Compiler

Compiled 4671 to 3555 computations (23.9% saved)

prune72.0ms (1.3%)

Pruning

8 alts after pruning (2 fresh and 6 done)

PrunedKeptTotal
New2892291
Fresh000
Picked011
Done156
Total2908298
Error
0b
Counts
298 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))
58.6b
(log.f64 (*.f64 (*.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps))) (-.f64 1 eps)) (-.f64 1 eps)))
58.6b
(log.f64 (*.f64 (/.f64 1 (+.f64 1 eps)) (-.f64 1 eps)))
0.3b
(*.f64 eps (fma.f64 -2/3 (*.f64 eps eps) -2))
0.1b
(+.f64 (*.f64 -2 eps) (+.f64 (*.f64 -2/5 (pow.f64 eps 5)) (*.f64 -2/3 (pow.f64 eps 3))))
0.6b
(*.f64 -2 eps)
58.6b
(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
0.3b
(+.f64 (*.f64 (*.f64 -2/3 (*.f64 eps eps)) eps) (*.f64 -2 eps))
Compiler

Compiled 85 to 64 computations (24.7% saved)

localize16.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 -2/3 (*.f64 eps eps))
0.1b
(*.f64 (*.f64 -2/3 (*.f64 eps eps)) eps)
0.1b
(*.f64 (*.f64 -2/3 (*.f64 eps eps)) eps)
0.2b
(*.f64 -2/3 (*.f64 eps eps))
Compiler

Compiled 33 to 17 computations (48.5% saved)

series2.0ms (0%)

Counts
2 → 24
Calls

6 calls:

TimeVariablePointExpression
1.0ms
eps
@inf
(*.f64 -2/3 (*.f64 eps eps))
0.0ms
eps
@0
(*.f64 -2/3 (*.f64 eps eps))
0.0ms
eps
@-inf
(*.f64 -2/3 (*.f64 eps eps))
0.0ms
eps
@-inf
(*.f64 (*.f64 -2/3 (*.f64 eps eps)) eps)
0.0ms
eps
@0
(*.f64 (*.f64 -2/3 (*.f64 eps eps)) eps)

rewrite43.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
534×pow1_binary64
517×add-sqr-sqrt_binary64
495×add-log-exp_binary64
495×log1p-expm1-u_binary64
495×expm1-log1p-u_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0617
112314
2141914
Stop Event
node limit
Counts
2 → 22
Calls
Call 1
Inputs
(*.f64 -2/3 (*.f64 eps eps))
(*.f64 (*.f64 -2/3 (*.f64 eps eps)) eps)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 -2/3 (*.f64 eps eps))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 -2/3 (*.f64 eps eps)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 -2/3 (*.f64 eps eps)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 -2/3 (*.f64 eps eps))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 eps (sqrt.f64 -2/3)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 4/9 (pow.f64 eps 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 -2/3) (*.f64 eps eps)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 -2/3 (*.f64 eps eps)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 -2/3 (*.f64 eps eps))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 -2/3 (*.f64 eps eps))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 -2/3 (*.f64 eps eps))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 -2/3 (pow.f64 eps 3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 -2/3 (pow.f64 eps 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 -2/3 (pow.f64 eps 3)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (cbrt.f64 -2/3) eps) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 -2/3 (pow.f64 eps 3))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 4/9 (pow.f64 (*.f64 eps eps) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 -2/3) (pow.f64 eps 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 -2/3 (pow.f64 eps 3)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 -2/3 (pow.f64 eps 3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 -2/3 (pow.f64 eps 3))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 -2/3 (pow.f64 eps 3))))))))

simplify132.0ms (2.4%)

Algorithm
egg-herbie
Rules
1272×sqr-pow_binary64
566×pow-sqr_binary64
563×cube-prod_binary64
536×unswap-sqr_binary64
535×fabs-mul_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
09168
123168
248168
3105168
4274168
51141168
62295168
72461168
82711168
92998168
103377168
113871168
124476168
135182168
145653168
155976168
166248168
176418168
186508168
197185168
Stop Event
node limit
Counts
46 → 25
Calls
Call 1
Inputs
(*.f64 -2/3 (pow.f64 eps 2))
(*.f64 -2/3 (pow.f64 eps 2))
(*.f64 -2/3 (pow.f64 eps 2))
(*.f64 -2/3 (pow.f64 eps 2))
(*.f64 -2/3 (pow.f64 eps 2))
(*.f64 -2/3 (pow.f64 eps 2))
(*.f64 -2/3 (pow.f64 eps 2))
(*.f64 -2/3 (pow.f64 eps 2))
(*.f64 -2/3 (pow.f64 eps 2))
(*.f64 -2/3 (pow.f64 eps 2))
(*.f64 -2/3 (pow.f64 eps 2))
(*.f64 -2/3 (pow.f64 eps 2))
(*.f64 -2/3 (pow.f64 eps 3))
(*.f64 -2/3 (pow.f64 eps 3))
(*.f64 -2/3 (pow.f64 eps 3))
(*.f64 -2/3 (pow.f64 eps 3))
(*.f64 -2/3 (pow.f64 eps 3))
(*.f64 -2/3 (pow.f64 eps 3))
(*.f64 -2/3 (pow.f64 eps 3))
(*.f64 -2/3 (pow.f64 eps 3))
(*.f64 -2/3 (pow.f64 eps 3))
(*.f64 -2/3 (pow.f64 eps 3))
(*.f64 -2/3 (pow.f64 eps 3))
(*.f64 -2/3 (pow.f64 eps 3))
Outputs
(*.f64 -2/3 (pow.f64 eps 2))
(*.f64 -2/3 (*.f64 eps eps))
(*.f64 -2/3 (pow.f64 eps 2))
(*.f64 -2/3 (*.f64 eps eps))
(*.f64 -2/3 (pow.f64 eps 2))
(*.f64 -2/3 (*.f64 eps eps))
(*.f64 -2/3 (pow.f64 eps 2))
(*.f64 -2/3 (*.f64 eps eps))
(*.f64 -2/3 (pow.f64 eps 2))
(*.f64 -2/3 (*.f64 eps eps))
(*.f64 -2/3 (pow.f64 eps 2))
(*.f64 -2/3 (*.f64 eps eps))
(*.f64 -2/3 (pow.f64 eps 2))
(*.f64 -2/3 (*.f64 eps eps))
(*.f64 -2/3 (pow.f64 eps 2))
(*.f64 -2/3 (*.f64 eps eps))
(*.f64 -2/3 (pow.f64 eps 2))
(*.f64 -2/3 (*.f64 eps eps))
(*.f64 -2/3 (pow.f64 eps 2))
(*.f64 -2/3 (*.f64 eps eps))
(*.f64 -2/3 (pow.f64 eps 2))
(*.f64 -2/3 (*.f64 eps eps))
(*.f64 -2/3 (pow.f64 eps 2))
(*.f64 -2/3 (*.f64 eps eps))
(*.f64 -2/3 (pow.f64 eps 3))
(*.f64 -2/3 (pow.f64 eps 3))
(*.f64 -2/3 (pow.f64 eps 3))
(*.f64 -2/3 (pow.f64 eps 3))
(*.f64 -2/3 (pow.f64 eps 3))
(*.f64 -2/3 (pow.f64 eps 3))
(*.f64 -2/3 (pow.f64 eps 3))
(*.f64 -2/3 (pow.f64 eps 3))
(*.f64 -2/3 (pow.f64 eps 3))
(*.f64 -2/3 (pow.f64 eps 3))
(*.f64 -2/3 (pow.f64 eps 3))
(*.f64 -2/3 (pow.f64 eps 3))

localize28.0ms (0.5%)

Local error

Found 8 expressions with local error:

NewErrorProgram
6.8b
(log.f64 (*.f64 (*.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps))) (-.f64 1 eps)) (-.f64 1 eps)))
0.0b
(*.f64 (*.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps))) (-.f64 1 eps)) (-.f64 1 eps))
0.0b
(*.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps))) (-.f64 1 eps))
0.0b
(/.f64 1 (-.f64 1 (*.f64 eps eps)))
0.0b
(/.f64 1 (-.f64 1 (*.f64 eps eps)))
0.0b
(*.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps))) (-.f64 1 eps))
0.0b
(*.f64 (*.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps))) (-.f64 1 eps)) (-.f64 1 eps))
6.8b
(log.f64 (*.f64 (*.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps))) (-.f64 1 eps)) (-.f64 1 eps)))
Compiler

Compiled 63 to 39 computations (38.1% saved)

series5.0ms (0.1%)

Counts
4 → 48
Calls

12 calls:

TimeVariablePointExpression
1.0ms
eps
@0
(log.f64 (*.f64 (*.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps))) (-.f64 1 eps)) (-.f64 1 eps)))
1.0ms
eps
@inf
(log.f64 (*.f64 (*.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps))) (-.f64 1 eps)) (-.f64 1 eps)))
1.0ms
eps
@inf
(/.f64 1 (-.f64 1 (*.f64 eps eps)))
0.0ms
eps
@-inf
(log.f64 (*.f64 (*.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps))) (-.f64 1 eps)) (-.f64 1 eps)))
0.0ms
eps
@0
(/.f64 1 (-.f64 1 (*.f64 eps eps)))

rewrite142.0ms (2.6%)

Algorithm
batch-egg-rewrite
Rules
522×log-prod_binary64
374×pow-prod-down_binary64
342×prod-diff_binary64
270×pow2_binary64
266×fma-def_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01063
121939
2296837
Stop Event
node limit
Counts
4 → 261
Calls
Call 1
Inputs
(log.f64 (*.f64 (*.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps))) (-.f64 1 eps)) (-.f64 1 eps)))
(*.f64 (*.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps))) (-.f64 1 eps)) (-.f64 1 eps))
(*.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps))) (-.f64 1 eps))
(/.f64 1 (-.f64 1 (*.f64 eps eps)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (log1p.f64 eps)) (log1p.f64 (neg.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (log1p.f64 (*.f64 eps (neg.f64 eps)))) (*.f64 2 (log1p.f64 (neg.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log1p.f64 (neg.f64 eps)) (neg.f64 (log1p.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/3 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))) (*.f64 2 (*.f64 1/3 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 2 (*.f64 1/3 (neg.f64 (log1p.f64 eps)))) (log.f64 (*.f64 (cbrt.f64 (/.f64 1 (+.f64 1 eps))) (-.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/2 (log1p.f64 (neg.f64 eps))) (log.f64 (*.f64 (sqrt.f64 (-.f64 1 eps)) (/.f64 1 (+.f64 1 eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 2 (log1p.f64 (neg.f64 eps))) (neg.f64 (log1p.f64 (*.f64 eps (neg.f64 eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (cbrt.f64 (pow.f64 (-.f64 1 (*.f64 eps eps)) -2))) (log.f64 (*.f64 (/.f64 1 (cbrt.f64 (-.f64 1 (*.f64 eps eps)))) (pow.f64 (-.f64 1 eps) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/2 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))) (*.f64 1/2 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 2 (*.f64 1/3 (log1p.f64 (neg.f64 eps)))) (log.f64 (*.f64 (cbrt.f64 (-.f64 1 eps)) (/.f64 1 (+.f64 1 eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 2 (*.f64 1/3 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))) (*.f64 1/3 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/2 (neg.f64 (log1p.f64 eps))) (log.f64 (*.f64 (sqrt.f64 (/.f64 1 (+.f64 1 eps))) (-.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 -1/2 (log1p.f64 (*.f64 eps (neg.f64 eps)))) (log.f64 (*.f64 (pow.f64 (-.f64 1 (*.f64 eps eps)) -1/2) (pow.f64 (-.f64 1 eps) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (neg.f64 (log1p.f64 eps)) 1) (*.f64 (log1p.f64 (neg.f64 eps)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (-.f64 1 eps) (pow.f64 (cbrt.f64 (/.f64 1 (+.f64 1 eps))) 2))) (*.f64 1/3 (neg.f64 (log1p.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (-.f64 1 eps) (sqrt.f64 (/.f64 1 (+.f64 1 eps))))) (*.f64 1/2 (neg.f64 (log1p.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (/.f64 1 (+.f64 1 eps)) (cbrt.f64 (pow.f64 (-.f64 1 eps) 2)))) (*.f64 1/3 (log1p.f64 (neg.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (/.f64 1 (+.f64 1 eps)) (sqrt.f64 (-.f64 1 eps)))) (*.f64 1/2 (log1p.f64 (neg.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 2 (log1p.f64 (neg.f64 eps))) (log1p.f64 (*.f64 eps (neg.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (*.f64 (-.f64 1 (*.f64 eps eps)) (-.f64 1 eps))) (log.f64 (*.f64 (+.f64 1 eps) (-.f64 1 (*.f64 eps eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (*.f64 (-.f64 1 (pow.f64 eps 3)) (-.f64 1 eps))) (log.f64 (*.f64 (+.f64 1 (fma.f64 eps eps eps)) (-.f64 1 (*.f64 eps eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (*.f64 (-.f64 1 eps) (-.f64 1 (*.f64 eps eps)))) (log.f64 (*.f64 (-.f64 1 (*.f64 eps eps)) (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (*.f64 (-.f64 1 eps) (-.f64 1 (pow.f64 eps 3)))) (log.f64 (*.f64 (-.f64 1 (*.f64 eps eps)) (+.f64 1 (fma.f64 eps eps eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (*.f64 -1 (pow.f64 (-.f64 1 eps) 2))) (log.f64 (neg.f64 (-.f64 1 (*.f64 eps eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (*.f64 (-.f64 1 (pow.f64 eps 3)) (/.f64 1 (+.f64 1 eps)))) (log1p.f64 (fma.f64 eps eps eps)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (*.f64 (/.f64 1 (+.f64 1 eps)) (-.f64 1 (*.f64 eps eps)))) (log1p.f64 eps))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (*.f64 (/.f64 1 (+.f64 1 eps)) (-.f64 1 (pow.f64 eps 3)))) (log1p.f64 (fma.f64 eps eps eps)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))) (cbrt.f64 (pow.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)) 2)) (cbrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))) (sqrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 1/2 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 3 (*.f64 1/3 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/3 (*.f64 3 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (neg.f64 (log1p.f64 eps)) 3) (pow.f64 (log1p.f64 (neg.f64 eps)) 3)) (+.f64 (pow.f64 (neg.f64 (log1p.f64 eps)) 2) (-.f64 (pow.f64 (log1p.f64 (neg.f64 eps)) 2) (*.f64 (neg.f64 (log1p.f64 eps)) (log1p.f64 (neg.f64 eps))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (neg.f64 (log1p.f64 eps)) 2) (pow.f64 (log1p.f64 (neg.f64 eps)) 2)) (-.f64 (neg.f64 (log1p.f64 eps)) (log1p.f64 (neg.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (neg.f64 (log1p.f64 eps)) (log1p.f64 (neg.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (neg.f64 (log1p.f64 (*.f64 eps (neg.f64 eps)))) (*.f64 2 (log1p.f64 (neg.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (log1p.f64 (neg.f64 eps)) (neg.f64 (log1p.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (log1p.f64 eps)) 1 (*.f64 (log1p.f64 (neg.f64 eps)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (log1p.f64 (*.f64 eps (neg.f64 eps))) (*.f64 2 (log1p.f64 (neg.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (log1p.f64 (neg.f64 eps))) 2) (cbrt.f64 (log1p.f64 (neg.f64 eps))) (neg.f64 (log1p.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (neg.f64 (log1p.f64 eps))) 2) (cbrt.f64 (neg.f64 (log1p.f64 eps))) (log1p.f64 (neg.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (neg.f64 (log1p.f64 (*.f64 eps (neg.f64 eps))))) 2) (cbrt.f64 (neg.f64 (log1p.f64 (*.f64 eps (neg.f64 eps))))) (*.f64 2 (log1p.f64 (neg.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (log1p.f64 (neg.f64 eps))) (sqrt.f64 (log1p.f64 (neg.f64 eps))) (neg.f64 (log1p.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (neg.f64 (log1p.f64 eps))) (sqrt.f64 (neg.f64 (log1p.f64 eps))) (log1p.f64 (neg.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (neg.f64 (log1p.f64 (*.f64 eps (neg.f64 eps))))) (sqrt.f64 (neg.f64 (log1p.f64 (*.f64 eps (neg.f64 eps))))) (*.f64 2 (log1p.f64 (neg.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 1 (+.f64 1 eps)) (*.f64 (neg.f64 eps) (/.f64 1 (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 1 (+.f64 1 eps)) (*.f64 (/.f64 1 (+.f64 1 eps)) (neg.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 eps) (+.f64 1 eps))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (-.f64 1 eps) 2) (-.f64 1 (*.f64 eps eps)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (*.f64 eps eps)) (-.f64 1 eps)) (*.f64 (+.f64 1 eps) (-.f64 1 (*.f64 eps eps))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (pow.f64 eps 3)) (-.f64 1 eps)) (*.f64 (+.f64 1 (fma.f64 eps eps eps)) (-.f64 1 (*.f64 eps eps))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 eps) (-.f64 1 (*.f64 eps eps))) (*.f64 (-.f64 1 (*.f64 eps eps)) (+.f64 1 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 eps) (-.f64 1 (pow.f64 eps 3))) (*.f64 (-.f64 1 (*.f64 eps eps)) (+.f64 1 (fma.f64 eps eps eps))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -1 (pow.f64 (-.f64 1 eps) 2)) (neg.f64 (-.f64 1 (*.f64 eps eps))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (pow.f64 eps 3)) (/.f64 1 (+.f64 1 eps))) (+.f64 1 (fma.f64 eps eps eps)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 1 (+.f64 1 eps)) (-.f64 1 (*.f64 eps eps))) (+.f64 1 eps))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 1 (+.f64 1 eps)) (-.f64 1 (pow.f64 eps 3))) (+.f64 1 (fma.f64 eps eps eps)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (E.f64) (exp.f64 (log1p.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))))) (E.f64))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (E.f64) (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))) (sqrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))) (*.f64 (sqrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (cbrt.f64 (pow.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)) 2))) (cbrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (cbrt.f64 (pow.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)) 2))) (*.f64 (cbrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (-.f64 1 eps) (pow.f64 (-.f64 1 (*.f64 eps eps)) -1/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (E.f64) (cbrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))) (cbrt.f64 (pow.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (E.f64) (cbrt.f64 (pow.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)) 2))) (cbrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (E.f64) (sqrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))) (sqrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 (sqrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))) 1) (sqrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 (sqrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))) (cbrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))) (cbrt.f64 (sqrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 (sqrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))) (sqrt.f64 (sqrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))))) (sqrt.f64 (sqrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 (sqrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))) (sqrt.f64 (cbrt.f64 (pow.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)) 2)))) (sqrt.f64 (cbrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 (cbrt.f64 (pow.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)) 2))) 1) (cbrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 (cbrt.f64 (pow.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)) 2))) (cbrt.f64 (sqrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))))) (cbrt.f64 (sqrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 (cbrt.f64 (pow.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)) 2))) (pow.f64 (cbrt.f64 (cbrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))) 2)) (cbrt.f64 (cbrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 (cbrt.f64 (pow.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)) 2))) (cbrt.f64 (cbrt.f64 (pow.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)) 2)))) (cbrt.f64 (cbrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 (cbrt.f64 (pow.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)) 2))) (sqrt.f64 (cbrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))))) (sqrt.f64 (cbrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (/.f64 1 (+.f64 1 eps)) (*.f64 (neg.f64 eps) (/.f64 1 (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (/.f64 1 (+.f64 1 eps)) (*.f64 (/.f64 1 (+.f64 1 eps)) (neg.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps))) (-.f64 1 eps) (*.f64 (neg.f64 eps) (/.f64 1 (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps))) (-.f64 1 eps) (*.f64 (/.f64 1 (+.f64 1 eps)) (neg.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 1 eps) (/.f64 1 (-.f64 1 (*.f64 eps eps))) (*.f64 (neg.f64 eps) (/.f64 1 (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 1 eps) (/.f64 1 (-.f64 1 (*.f64 eps eps))) (*.f64 (/.f64 1 (+.f64 1 eps)) (neg.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (+.f64 1 eps)) 1 (*.f64 (neg.f64 eps) (/.f64 1 (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (+.f64 1 eps)) 1 (*.f64 (/.f64 1 (+.f64 1 eps)) (neg.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (/.f64 1 (+.f64 1 eps))) (pow.f64 (cbrt.f64 (/.f64 1 (+.f64 1 eps))) 2) (*.f64 (neg.f64 eps) (/.f64 1 (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (/.f64 1 (+.f64 1 eps))) (pow.f64 (cbrt.f64 (/.f64 1 (+.f64 1 eps))) 2) (*.f64 (/.f64 1 (+.f64 1 eps)) (neg.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (/.f64 1 (+.f64 1 eps))) 2) (cbrt.f64 (/.f64 1 (+.f64 1 eps))) (*.f64 (neg.f64 eps) (/.f64 1 (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (/.f64 1 (+.f64 1 eps))) 2) (cbrt.f64 (/.f64 1 (+.f64 1 eps))) (*.f64 (/.f64 1 (+.f64 1 eps)) (neg.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (-.f64 1 (*.f64 eps eps)) -2)) (*.f64 (/.f64 1 (cbrt.f64 (-.f64 1 (*.f64 eps eps)))) (-.f64 1 eps)) (*.f64 (neg.f64 eps) (/.f64 1 (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (-.f64 1 (*.f64 eps eps)) -2)) (*.f64 (/.f64 1 (cbrt.f64 (-.f64 1 (*.f64 eps eps)))) (-.f64 1 eps)) (*.f64 (/.f64 1 (+.f64 1 eps)) (neg.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (-.f64 1 eps) 2)) (*.f64 (cbrt.f64 (-.f64 1 eps)) (/.f64 1 (-.f64 1 (*.f64 eps eps)))) (*.f64 (neg.f64 eps) (/.f64 1 (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (-.f64 1 eps) 2)) (*.f64 (cbrt.f64 (-.f64 1 eps)) (/.f64 1 (-.f64 1 (*.f64 eps eps)))) (*.f64 (/.f64 1 (+.f64 1 eps)) (neg.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (/.f64 1 (+.f64 1 eps))) (sqrt.f64 (/.f64 1 (+.f64 1 eps))) (*.f64 (neg.f64 eps) (/.f64 1 (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (/.f64 1 (+.f64 1 eps))) (sqrt.f64 (/.f64 1 (+.f64 1 eps))) (*.f64 (/.f64 1 (+.f64 1 eps)) (neg.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (-.f64 1 (*.f64 eps eps)) -1/2) (sqrt.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))) (*.f64 (neg.f64 eps) (/.f64 1 (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (-.f64 1 (*.f64 eps eps)) -1/2) (sqrt.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))) (*.f64 (/.f64 1 (+.f64 1 eps)) (neg.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (-.f64 1 (*.f64 eps eps)) -1/2) (/.f64 (-.f64 1 eps) (sqrt.f64 (-.f64 1 (*.f64 eps eps)))) (*.f64 (neg.f64 eps) (/.f64 1 (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (-.f64 1 (*.f64 eps eps)) -1/2) (/.f64 (-.f64 1 eps) (sqrt.f64 (-.f64 1 (*.f64 eps eps)))) (*.f64 (/.f64 1 (+.f64 1 eps)) (neg.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 1 eps)) (*.f64 (sqrt.f64 (-.f64 1 eps)) (/.f64 1 (-.f64 1 (*.f64 eps eps)))) (*.f64 (neg.f64 eps) (/.f64 1 (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 1 eps)) (*.f64 (sqrt.f64 (-.f64 1 eps)) (/.f64 1 (-.f64 1 (*.f64 eps eps)))) (*.f64 (/.f64 1 (+.f64 1 eps)) (neg.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (cbrt.f64 (pow.f64 (-.f64 1 eps) 2)) 1) (/.f64 (cbrt.f64 (-.f64 1 eps)) (-.f64 1 (*.f64 eps eps))) (*.f64 (neg.f64 eps) (/.f64 1 (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (cbrt.f64 (pow.f64 (-.f64 1 eps) 2)) 1) (/.f64 (cbrt.f64 (-.f64 1 eps)) (-.f64 1 (*.f64 eps eps))) (*.f64 (/.f64 1 (+.f64 1 eps)) (neg.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (sqrt.f64 (-.f64 1 eps)) 1) (/.f64 (sqrt.f64 (-.f64 1 eps)) (-.f64 1 (*.f64 eps eps))) (*.f64 (neg.f64 eps) (/.f64 1 (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (sqrt.f64 (-.f64 1 eps)) 1) (/.f64 (sqrt.f64 (-.f64 1 eps)) (-.f64 1 (*.f64 eps eps))) (*.f64 (/.f64 1 (+.f64 1 eps)) (neg.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 eps eps))) -2) (/.f64 (-.f64 1 eps) (cbrt.f64 (-.f64 1 (*.f64 eps eps)))) (*.f64 (neg.f64 eps) (/.f64 1 (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 eps eps))) -2) (/.f64 (-.f64 1 eps) (cbrt.f64 (-.f64 1 (*.f64 eps eps)))) (*.f64 (/.f64 1 (+.f64 1 eps)) (neg.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (cbrt.f64 (pow.f64 (-.f64 1 eps) 2)) (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 eps eps))) 2)) (cbrt.f64 (/.f64 1 (+.f64 1 eps))) (*.f64 (neg.f64 eps) (/.f64 1 (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (cbrt.f64 (pow.f64 (-.f64 1 eps) 2)) (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 eps eps))) 2)) (cbrt.f64 (/.f64 1 (+.f64 1 eps))) (*.f64 (/.f64 1 (+.f64 1 eps)) (neg.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (sqrt.f64 (-.f64 1 eps)) (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 eps eps))) 2)) (/.f64 (sqrt.f64 (-.f64 1 eps)) (cbrt.f64 (-.f64 1 (*.f64 eps eps)))) (*.f64 (neg.f64 eps) (/.f64 1 (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (sqrt.f64 (-.f64 1 eps)) (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 eps eps))) 2)) (/.f64 (sqrt.f64 (-.f64 1 eps)) (cbrt.f64 (-.f64 1 (*.f64 eps eps)))) (*.f64 (/.f64 1 (+.f64 1 eps)) (neg.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (cbrt.f64 (pow.f64 (-.f64 1 eps) 2)) (sqrt.f64 (-.f64 1 (*.f64 eps eps)))) (/.f64 (cbrt.f64 (-.f64 1 eps)) (sqrt.f64 (-.f64 1 (*.f64 eps eps)))) (*.f64 (neg.f64 eps) (/.f64 1 (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (cbrt.f64 (pow.f64 (-.f64 1 eps) 2)) (sqrt.f64 (-.f64 1 (*.f64 eps eps)))) (/.f64 (cbrt.f64 (-.f64 1 eps)) (sqrt.f64 (-.f64 1 (*.f64 eps eps)))) (*.f64 (/.f64 1 (+.f64 1 eps)) (neg.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (-.f64 1 eps) (-.f64 1 (pow.f64 eps 6))) (+.f64 1 (fma.f64 eps eps (pow.f64 eps 4))) (*.f64 (neg.f64 eps) (/.f64 1 (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (-.f64 1 eps) (-.f64 1 (pow.f64 eps 6))) (+.f64 1 (fma.f64 eps eps (pow.f64 eps 4))) (*.f64 (/.f64 1 (+.f64 1 eps)) (neg.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (-.f64 1 eps) (-.f64 1 (pow.f64 eps 4))) (fma.f64 eps eps 1) (*.f64 (neg.f64 eps) (/.f64 1 (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (-.f64 1 eps) (-.f64 1 (pow.f64 eps 4))) (fma.f64 eps eps 1) (*.f64 (/.f64 1 (+.f64 1 eps)) (neg.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps))) (cbrt.f64 (pow.f64 (-.f64 1 eps) 2))) (cbrt.f64 (-.f64 1 eps)) (*.f64 (neg.f64 eps) (/.f64 1 (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps))) (cbrt.f64 (pow.f64 (-.f64 1 eps) 2))) (cbrt.f64 (-.f64 1 eps)) (*.f64 (/.f64 1 (+.f64 1 eps)) (neg.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps))) (sqrt.f64 (-.f64 1 eps))) (sqrt.f64 (-.f64 1 eps)) (*.f64 (neg.f64 eps) (/.f64 1 (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps))) (sqrt.f64 (-.f64 1 eps))) (sqrt.f64 (-.f64 1 eps)) (*.f64 (/.f64 1 (+.f64 1 eps)) (neg.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 1 eps) (cbrt.f64 (pow.f64 (-.f64 1 (*.f64 eps eps)) -2))) (/.f64 1 (cbrt.f64 (-.f64 1 (*.f64 eps eps)))) (*.f64 (neg.f64 eps) (/.f64 1 (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 1 eps) (cbrt.f64 (pow.f64 (-.f64 1 (*.f64 eps eps)) -2))) (/.f64 1 (cbrt.f64 (-.f64 1 (*.f64 eps eps)))) (*.f64 (/.f64 1 (+.f64 1 eps)) (neg.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 1 eps) (pow.f64 (-.f64 1 (*.f64 eps eps)) -1/2)) (pow.f64 (-.f64 1 (*.f64 eps eps)) -1/2) (*.f64 (neg.f64 eps) (/.f64 1 (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 1 eps) (pow.f64 (-.f64 1 (*.f64 eps eps)) -1/2)) (pow.f64 (-.f64 1 (*.f64 eps eps)) -1/2) (*.f64 (/.f64 1 (+.f64 1 eps)) (neg.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps))) (*.f64 (neg.f64 eps) (/.f64 1 (-.f64 1 (*.f64 eps eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps))) (*.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps))) (neg.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 1 (+.f64 1 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (/.f64 1 (+.f64 1 eps)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (/.f64 1 (+.f64 1 eps))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 1 (+.f64 1 eps))))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 1 (+.f64 1 eps))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps))) (/.f64 eps (-.f64 1 (*.f64 eps eps))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 1 (+.f64 1 eps)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (+.f64 1 eps))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (*.f64 eps eps)) (*.f64 (-.f64 1 (*.f64 eps eps)) (+.f64 1 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (*.f64 eps eps)) (*.f64 (+.f64 1 eps) (-.f64 1 (*.f64 eps eps))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 eps) (-.f64 1 (*.f64 eps eps)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (cbrt.f64 (pow.f64 (-.f64 1 eps) 2)) (/.f64 (-.f64 1 (*.f64 eps eps)) (cbrt.f64 (-.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (-.f64 1 eps)) (/.f64 (-.f64 1 (*.f64 eps eps)) (sqrt.f64 (-.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 1 (*.f64 eps eps))) (*.f64 (neg.f64 (-.f64 1 (*.f64 eps eps))) (+.f64 1 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (pow.f64 eps 3)) (*.f64 (-.f64 1 (*.f64 eps eps)) (+.f64 1 (fma.f64 eps eps eps))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 1 eps)) (neg.f64 (-.f64 1 (*.f64 eps eps))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -1 (-.f64 1 (pow.f64 eps 3))) (*.f64 (neg.f64 (-.f64 1 (*.f64 eps eps))) (+.f64 1 (fma.f64 eps eps eps))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (pow.f64 eps 3)) 1) (*.f64 (+.f64 1 (fma.f64 eps eps eps)) (-.f64 1 (*.f64 eps eps))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (*.f64 eps eps)) -1) (*.f64 (+.f64 1 eps) (neg.f64 (-.f64 1 (*.f64 eps eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (pow.f64 eps 3)) -1) (*.f64 (+.f64 1 (fma.f64 eps eps eps)) (neg.f64 (-.f64 1 (*.f64 eps eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (-.f64 1 eps) (sqrt.f64 (-.f64 1 (*.f64 eps eps)))) (sqrt.f64 (-.f64 1 (*.f64 eps eps))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (-.f64 1 eps) 1) (-.f64 1 (*.f64 eps eps)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (-.f64 1 eps) (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 eps eps))) 2)) (cbrt.f64 (-.f64 1 (*.f64 eps eps))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -1 (-.f64 1 eps)) (neg.f64 (-.f64 1 (*.f64 eps eps))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (pow.f64 eps 3)) (/.f64 1 (-.f64 1 (*.f64 eps eps)))) (+.f64 1 (fma.f64 eps eps eps)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps))) (-.f64 1 (pow.f64 eps 3))) (+.f64 1 (fma.f64 eps eps eps)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 eps) -1) (neg.f64 (-.f64 1 (*.f64 eps eps))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1 (+.f64 1 eps)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 1 (+.f64 1 eps)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 1 (+.f64 1 eps)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 1 (+.f64 1 eps))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 1 (+.f64 1 eps))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 1 eps) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (-.f64 1 eps) 3) (pow.f64 (-.f64 1 (*.f64 eps eps)) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 1 (+.f64 1 eps)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 1 (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 1 (+.f64 1 eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 1 (+.f64 1 eps)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (-.f64 1 eps) 3) (pow.f64 (-.f64 1 (*.f64 eps eps)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 1 (+.f64 1 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (neg.f64 (log1p.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (neg.f64 (log1p.f64 eps)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (/.f64 1 (-.f64 1 (*.f64 eps eps))) (*.f64 (neg.f64 eps) (/.f64 1 (-.f64 1 (*.f64 eps eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (/.f64 1 (-.f64 1 (*.f64 eps eps))) (*.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps))) (neg.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (/.f64 1 (-.f64 1 (*.f64 eps eps))) (neg.f64 (/.f64 eps (-.f64 1 (*.f64 eps eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps))) 1 (*.f64 (neg.f64 eps) (/.f64 1 (-.f64 1 (*.f64 eps eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps))) 1 (*.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps))) (neg.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps))) 1 (neg.f64 (/.f64 eps (-.f64 1 (*.f64 eps eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (cbrt.f64 (-.f64 1 (*.f64 eps eps)))) (cbrt.f64 (pow.f64 (-.f64 1 (*.f64 eps eps)) -2)) (*.f64 (neg.f64 eps) (/.f64 1 (-.f64 1 (*.f64 eps eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (cbrt.f64 (-.f64 1 (*.f64 eps eps)))) (cbrt.f64 (pow.f64 (-.f64 1 (*.f64 eps eps)) -2)) (*.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps))) (neg.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (cbrt.f64 (-.f64 1 (*.f64 eps eps)))) (cbrt.f64 (pow.f64 (-.f64 1 (*.f64 eps eps)) -2)) (neg.f64 (/.f64 eps (-.f64 1 (*.f64 eps eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (-.f64 1 (*.f64 eps eps)) -2)) (/.f64 1 (cbrt.f64 (-.f64 1 (*.f64 eps eps)))) (*.f64 (neg.f64 eps) (/.f64 1 (-.f64 1 (*.f64 eps eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (-.f64 1 (*.f64 eps eps)) -2)) (/.f64 1 (cbrt.f64 (-.f64 1 (*.f64 eps eps)))) (*.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps))) (neg.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (-.f64 1 (*.f64 eps eps)) -2)) (/.f64 1 (cbrt.f64 (-.f64 1 (*.f64 eps eps)))) (neg.f64 (/.f64 eps (-.f64 1 (*.f64 eps eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (-.f64 1 (*.f64 eps eps)) -1/2) (pow.f64 (-.f64 1 (*.f64 eps eps)) -1/2) (*.f64 (neg.f64 eps) (/.f64 1 (-.f64 1 (*.f64 eps eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (-.f64 1 (*.f64 eps eps)) -1/2) (pow.f64 (-.f64 1 (*.f64 eps eps)) -1/2) (*.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps))) (neg.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (-.f64 1 (*.f64 eps eps)) -1/2) (pow.f64 (-.f64 1 (*.f64 eps eps)) -1/2) (neg.f64 (/.f64 eps (-.f64 1 (*.f64 eps eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (/.f64 1 (neg.f64 (-.f64 1 (*.f64 eps eps)))) (*.f64 (neg.f64 eps) (/.f64 1 (-.f64 1 (*.f64 eps eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (/.f64 1 (neg.f64 (-.f64 1 (*.f64 eps eps)))) (*.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps))) (neg.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (/.f64 1 (neg.f64 (-.f64 1 (*.f64 eps eps)))) (neg.f64 (/.f64 eps (-.f64 1 (*.f64 eps eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 eps eps))) -2) (/.f64 1 (cbrt.f64 (-.f64 1 (*.f64 eps eps)))) (*.f64 (neg.f64 eps) (/.f64 1 (-.f64 1 (*.f64 eps eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 eps eps))) -2) (/.f64 1 (cbrt.f64 (-.f64 1 (*.f64 eps eps)))) (*.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps))) (neg.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 eps eps))) -2) (/.f64 1 (cbrt.f64 (-.f64 1 (*.f64 eps eps)))) (neg.f64 (/.f64 eps (-.f64 1 (*.f64 eps eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (-.f64 1 (pow.f64 eps 6))) (+.f64 1 (fma.f64 eps eps (pow.f64 eps 4))) (*.f64 (neg.f64 eps) (/.f64 1 (-.f64 1 (*.f64 eps eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (-.f64 1 (pow.f64 eps 6))) (+.f64 1 (fma.f64 eps eps (pow.f64 eps 4))) (*.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps))) (neg.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (-.f64 1 (pow.f64 eps 6))) (+.f64 1 (fma.f64 eps eps (pow.f64 eps 4))) (neg.f64 (/.f64 eps (-.f64 1 (*.f64 eps eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (-.f64 1 (pow.f64 eps 4))) (fma.f64 eps eps 1) (*.f64 (neg.f64 eps) (/.f64 1 (-.f64 1 (*.f64 eps eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (-.f64 1 (pow.f64 eps 4))) (fma.f64 eps eps 1) (*.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps))) (neg.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (-.f64 1 (pow.f64 eps 4))) (fma.f64 eps eps 1) (neg.f64 (/.f64 eps (-.f64 1 (*.f64 eps eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 1 (+.f64 1 eps))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 1 (-.f64 1 (*.f64 eps eps))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps))))) 2)) (log.f64 (cbrt.f64 (exp.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps)))))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps)))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 1 (-.f64 1 (*.f64 eps eps))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 (-.f64 1 (*.f64 eps eps)))) (cbrt.f64 (pow.f64 (-.f64 1 (*.f64 eps eps)) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (-.f64 1 (*.f64 eps eps)) -2)) (/.f64 1 (cbrt.f64 (-.f64 1 (*.f64 eps eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (-.f64 1 (*.f64 eps eps)) -1/2) (pow.f64 (-.f64 1 (*.f64 eps eps)) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (/.f64 1 (neg.f64 (-.f64 1 (*.f64 eps eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 eps eps))) -2) (/.f64 1 (cbrt.f64 (-.f64 1 (*.f64 eps eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (-.f64 1 (pow.f64 eps 6))) (+.f64 1 (fma.f64 eps eps (pow.f64 eps 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (-.f64 1 (pow.f64 eps 4))) (fma.f64 eps eps 1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 1 (*.f64 eps eps)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 1 (*.f64 eps eps)) 2) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 1 (*.f64 eps eps)) 3) -1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 1 (*.f64 eps eps)) -2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 1 (*.f64 eps eps)) -3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (-.f64 1 (*.f64 eps eps))) -3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1 (cbrt.f64 (-.f64 1 (*.f64 eps eps)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (-.f64 1 (*.f64 eps eps))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 1 (*.f64 eps eps)) -1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (neg.f64 (neg.f64 (-.f64 1 (*.f64 eps eps)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (-.f64 1 (*.f64 eps eps)) -2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 1 (*.f64 eps eps)) -3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (neg.f64 (log1p.f64 (*.f64 eps (neg.f64 eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log1p.f64 (*.f64 eps (neg.f64 eps))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (neg.f64 (log1p.f64 (*.f64 eps (neg.f64 eps)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps)))))))))

simplify81.0ms (1.5%)

Algorithm
egg-herbie
Rules
610×sub-neg_binary64
426×associate-*l*_binary64
386×distribute-neg-frac_binary64
341×fma-def_binary64
318×associate-*r*_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
093703
1264672
2724672
32151672
46183672
Stop Event
node limit
Counts
309 → 316
Calls
Call 1
Inputs
(*.f64 -2 eps)
(+.f64 (*.f64 -2 eps) (*.f64 -2/3 (pow.f64 eps 3)))
(+.f64 (*.f64 -2 eps) (+.f64 (*.f64 -2/5 (pow.f64 eps 5)) (*.f64 -2/3 (pow.f64 eps 3))))
(+.f64 (*.f64 -2 eps) (+.f64 (*.f64 -2/5 (pow.f64 eps 5)) (+.f64 (*.f64 -2/7 (pow.f64 eps 7)) (*.f64 -2/3 (pow.f64 eps 3)))))
(log.f64 -1)
(-.f64 (log.f64 -1) (*.f64 2 (/.f64 1 eps)))
(-.f64 (log.f64 -1) (+.f64 (*.f64 2/3 (/.f64 1 (pow.f64 eps 3))) (*.f64 2 (/.f64 1 eps))))
(-.f64 (log.f64 -1) (+.f64 (*.f64 2/3 (/.f64 1 (pow.f64 eps 3))) (+.f64 (*.f64 2 (/.f64 1 eps)) (*.f64 2/5 (/.f64 1 (pow.f64 eps 5))))))
(log.f64 -1)
(-.f64 (log.f64 -1) (*.f64 2 (/.f64 1 eps)))
(-.f64 (log.f64 -1) (+.f64 (*.f64 2/3 (/.f64 1 (pow.f64 eps 3))) (*.f64 2 (/.f64 1 eps))))
(-.f64 (log.f64 -1) (+.f64 (*.f64 2/3 (/.f64 1 (pow.f64 eps 3))) (+.f64 (*.f64 2 (/.f64 1 eps)) (*.f64 2/5 (/.f64 1 (pow.f64 eps 5))))))
1
(+.f64 (*.f64 -2 eps) 1)
(+.f64 (*.f64 -2 eps) (+.f64 (*.f64 2 (pow.f64 eps 2)) 1))
(+.f64 (*.f64 -2 eps) (+.f64 (*.f64 2 (pow.f64 eps 2)) (+.f64 1 (*.f64 -2 (pow.f64 eps 3)))))
-1
(-.f64 (*.f64 2 (/.f64 1 eps)) 1)
(-.f64 (*.f64 2 (/.f64 1 eps)) (+.f64 1 (*.f64 2 (/.f64 1 (pow.f64 eps 2)))))
(-.f64 (+.f64 (*.f64 2 (/.f64 1 (pow.f64 eps 3))) (*.f64 2 (/.f64 1 eps))) (+.f64 1 (*.f64 2 (/.f64 1 (pow.f64 eps 2)))))
-1
(-.f64 (*.f64 2 (/.f64 1 eps)) 1)
(-.f64 (*.f64 2 (/.f64 1 eps)) (+.f64 1 (*.f64 2 (/.f64 1 (pow.f64 eps 2)))))
(-.f64 (+.f64 (*.f64 2 (/.f64 1 (pow.f64 eps 3))) (*.f64 2 (/.f64 1 eps))) (+.f64 1 (*.f64 2 (/.f64 1 (pow.f64 eps 2)))))
1
(+.f64 1 (*.f64 -1 eps))
(+.f64 (pow.f64 eps 2) (+.f64 1 (*.f64 -1 eps)))
(+.f64 (pow.f64 eps 2) (+.f64 1 (+.f64 (*.f64 -1 eps) (*.f64 -1 (pow.f64 eps 3)))))
(/.f64 1 eps)
(-.f64 (/.f64 1 eps) (/.f64 1 (pow.f64 eps 2)))
(-.f64 (+.f64 (/.f64 1 eps) (/.f64 1 (pow.f64 eps 3))) (/.f64 1 (pow.f64 eps 2)))
(-.f64 (+.f64 (/.f64 1 eps) (/.f64 1 (pow.f64 eps 3))) (+.f64 (/.f64 1 (pow.f64 eps 4)) (/.f64 1 (pow.f64 eps 2))))
(/.f64 1 eps)
(-.f64 (/.f64 1 eps) (/.f64 1 (pow.f64 eps 2)))
(-.f64 (+.f64 (/.f64 1 eps) (/.f64 1 (pow.f64 eps 3))) (/.f64 1 (pow.f64 eps 2)))
(-.f64 (+.f64 (/.f64 1 eps) (/.f64 1 (pow.f64 eps 3))) (+.f64 (/.f64 1 (pow.f64 eps 4)) (/.f64 1 (pow.f64 eps 2))))
1
(+.f64 (pow.f64 eps 2) 1)
(+.f64 (pow.f64 eps 2) (+.f64 1 (pow.f64 eps 4)))
(+.f64 (pow.f64 eps 2) (+.f64 1 (+.f64 (pow.f64 eps 4) (pow.f64 eps 6))))
(/.f64 -1 (pow.f64 eps 2))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 eps 4)) (/.f64 1 (pow.f64 eps 2))))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 eps 4)) (+.f64 (/.f64 1 (pow.f64 eps 6)) (/.f64 1 (pow.f64 eps 2)))))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 eps 4)) (+.f64 (/.f64 1 (pow.f64 eps 6)) (+.f64 (/.f64 1 (pow.f64 eps 8)) (/.f64 1 (pow.f64 eps 2))))))
(/.f64 -1 (pow.f64 eps 2))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 eps 4)) (/.f64 1 (pow.f64 eps 2))))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 eps 4)) (+.f64 (/.f64 1 (pow.f64 eps 6)) (/.f64 1 (pow.f64 eps 2)))))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 eps 4)) (+.f64 (/.f64 1 (pow.f64 eps 6)) (+.f64 (/.f64 1 (pow.f64 eps 8)) (/.f64 1 (pow.f64 eps 2))))))
Outputs
(*.f64 -2 eps)
(+.f64 (*.f64 -2 eps) (*.f64 -2/3 (pow.f64 eps 3)))
(fma.f64 -2 eps (*.f64 -2/3 (pow.f64 eps 3)))
(+.f64 (*.f64 -2 eps) (+.f64 (*.f64 -2/5 (pow.f64 eps 5)) (*.f64 -2/3 (pow.f64 eps 3))))
(fma.f64 -2 eps (fma.f64 -2/5 (pow.f64 eps 5) (*.f64 -2/3 (pow.f64 eps 3))))
(fma.f64 -2 eps (fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2/5 (pow.f64 eps 5))))
(fma.f64 -2/3 (pow.f64 eps 3) (fma.f64 -2/5 (pow.f64 eps 5) (*.f64 -2 eps)))
(+.f64 (*.f64 -2 eps) (+.f64 (*.f64 -2/5 (pow.f64 eps 5)) (+.f64 (*.f64 -2/7 (pow.f64 eps 7)) (*.f64 -2/3 (pow.f64 eps 3)))))
(fma.f64 -2 eps (fma.f64 -2/5 (pow.f64 eps 5) (fma.f64 -2/7 (pow.f64 eps 7) (*.f64 -2/3 (pow.f64 eps 3)))))
(fma.f64 -2 eps (fma.f64 -2/5 (pow.f64 eps 5) (fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2/7 (pow.f64 eps 7)))))
(fma.f64 -2 eps (fma.f64 -2/3 (pow.f64 eps 3) (fma.f64 -2/5 (pow.f64 eps 5) (*.f64 -2/7 (pow.f64 eps 7)))))
(log.f64 -1)
(-.f64 (log.f64 -1) (*.f64 2 (/.f64 1 eps)))
(-.f64 (log.f64 -1) (/.f64 2 eps))
(+.f64 (log.f64 -1) (/.f64 -2 eps))
(-.f64 (log.f64 -1) (+.f64 (*.f64 2/3 (/.f64 1 (pow.f64 eps 3))) (*.f64 2 (/.f64 1 eps))))
(-.f64 (-.f64 (log.f64 -1) (/.f64 2/3 (pow.f64 eps 3))) (/.f64 2 eps))
(+.f64 (-.f64 (log.f64 -1) (/.f64 2/3 (pow.f64 eps 3))) (/.f64 -2 eps))
(+.f64 (/.f64 -2 eps) (-.f64 (log.f64 -1) (/.f64 2/3 (pow.f64 eps 3))))
(-.f64 (log.f64 -1) (+.f64 (*.f64 2/3 (/.f64 1 (pow.f64 eps 3))) (+.f64 (*.f64 2 (/.f64 1 eps)) (*.f64 2/5 (/.f64 1 (pow.f64 eps 5))))))
(-.f64 (-.f64 (log.f64 -1) (/.f64 2/3 (pow.f64 eps 3))) (+.f64 (/.f64 2 eps) (/.f64 2/5 (pow.f64 eps 5))))
(-.f64 (log.f64 -1) (+.f64 (/.f64 2 eps) (+.f64 (/.f64 2/3 (pow.f64 eps 3)) (/.f64 2/5 (pow.f64 eps 5)))))
(+.f64 (-.f64 (log.f64 -1) (/.f64 2/3 (pow.f64 eps 3))) (-.f64 (/.f64 -2 eps) (/.f64 2/5 (pow.f64 eps 5))))
(+.f64 (+.f64 (/.f64 -2 eps) (/.f64 -2/3 (pow.f64 eps 3))) (-.f64 (log.f64 -1) (/.f64 2/5 (pow.f64 eps 5))))
(log.f64 -1)
(-.f64 (log.f64 -1) (*.f64 2 (/.f64 1 eps)))
(-.f64 (log.f64 -1) (/.f64 2 eps))
(+.f64 (log.f64 -1) (/.f64 -2 eps))
(-.f64 (log.f64 -1) (+.f64 (*.f64 2/3 (/.f64 1 (pow.f64 eps 3))) (*.f64 2 (/.f64 1 eps))))
(-.f64 (-.f64 (log.f64 -1) (/.f64 2/3 (pow.f64 eps 3))) (/.f64 2 eps))
(+.f64 (-.f64 (log.f64 -1) (/.f64 2/3 (pow.f64 eps 3))) (/.f64 -2 eps))
(+.f64 (/.f64 -2 eps) (-.f64 (log.f64 -1) (/.f64 2/3 (pow.f64 eps 3))))
(-.f64 (log.f64 -1) (+.f64 (*.f64 2/3 (/.f64 1 (pow.f64 eps 3))) (+.f64 (*.f64 2 (/.f64 1 eps)) (*.f64 2/5 (/.f64 1 (pow.f64 eps 5))))))
(-.f64 (-.f64 (log.f64 -1) (/.f64 2/3 (pow.f64 eps 3))) (+.f64 (/.f64 2 eps) (/.f64 2/5 (pow.f64 eps 5))))
(-.f64 (log.f64 -1) (+.f64 (/.f64 2 eps) (+.f64 (/.f64 2/3 (pow.f64 eps 3)) (/.f64 2/5 (pow.f64 eps 5)))))
(+.f64 (-.f64 (log.f64 -1) (/.f64 2/3 (pow.f64 eps 3))) (-.f64 (/.f64 -2 eps) (/.f64 2/5 (pow.f64 eps 5))))
(+.f64 (+.f64 (/.f64 -2 eps) (/.f64 -2/3 (pow.f64 eps 3))) (-.f64 (log.f64 -1) (/.f64 2/5 (pow.f64 eps 5))))
1
(+.f64 (*.f64 -2 eps) 1)
(fma.f64 -2 eps 1)
(+.f64 (*.f64 -2 eps) (+.f64 (*.f64 2 (pow.f64 eps 2)) 1))
(fma.f64 -2 eps (fma.f64 2 (*.f64 eps eps) 1))
(fma.f64 -2 eps (fma.f64 eps (*.f64 eps 2) 1))
(+.f64 (*.f64 -2 eps) (+.f64 (*.f64 2 (pow.f64 eps 2)) (+.f64 1 (*.f64 -2 (pow.f64 eps 3)))))
(fma.f64 -2 eps (+.f64 (fma.f64 2 (*.f64 eps eps) 1) (*.f64 -2 (pow.f64 eps 3))))
(fma.f64 -2 eps (fma.f64 2 (*.f64 eps eps) (fma.f64 -2 (pow.f64 eps 3) 1)))
(fma.f64 -2 eps (fma.f64 -2 (pow.f64 eps 3) (fma.f64 2 (*.f64 eps eps) 1)))
(+.f64 1 (*.f64 eps (+.f64 (*.f64 eps (+.f64 (*.f64 -2 eps) 2)) -2)))
-1
(-.f64 (*.f64 2 (/.f64 1 eps)) 1)
(+.f64 (/.f64 2 eps) -1)
(+.f64 -1 (/.f64 2 eps))
(-.f64 (*.f64 2 (/.f64 1 eps)) (+.f64 1 (*.f64 2 (/.f64 1 (pow.f64 eps 2)))))
(-.f64 (/.f64 2 eps) (+.f64 1 (/.f64 2 (*.f64 eps eps))))
(+.f64 (/.f64 2 eps) (-.f64 -1 (/.f64 2 (*.f64 eps eps))))
(+.f64 -1 (+.f64 (/.f64 2 eps) (/.f64 -2 (*.f64 eps eps))))
(+.f64 (/.f64 2 eps) (+.f64 -1 (/.f64 -2 (*.f64 eps eps))))
(-.f64 (+.f64 (*.f64 2 (/.f64 1 (pow.f64 eps 3))) (*.f64 2 (/.f64 1 eps))) (+.f64 1 (*.f64 2 (/.f64 1 (pow.f64 eps 2)))))
(+.f64 (/.f64 2 (pow.f64 eps 3)) (-.f64 (/.f64 2 eps) (+.f64 1 (/.f64 2 (*.f64 eps eps)))))
(-.f64 (+.f64 (/.f64 2 eps) (/.f64 2 (pow.f64 eps 3))) (+.f64 1 (/.f64 2 (*.f64 eps eps))))
(+.f64 (/.f64 2 (pow.f64 eps 3)) (+.f64 -1 (+.f64 (/.f64 2 eps) (/.f64 -2 (*.f64 eps eps)))))
(+.f64 (+.f64 (/.f64 2 eps) (/.f64 2 (pow.f64 eps 3))) (+.f64 -1 (/.f64 -2 (*.f64 eps eps))))
(+.f64 -1 (+.f64 (/.f64 2 eps) (+.f64 (/.f64 2 (pow.f64 eps 3)) (/.f64 -2 (*.f64 eps eps)))))
-1
(-.f64 (*.f64 2 (/.f64 1 eps)) 1)
(+.f64 (/.f64 2 eps) -1)
(+.f64 -1 (/.f64 2 eps))
(-.f64 (*.f64 2 (/.f64 1 eps)) (+.f64 1 (*.f64 2 (/.f64 1 (pow.f64 eps 2)))))
(-.f64 (/.f64 2 eps) (+.f64 1 (/.f64 2 (*.f64 eps eps))))
(+.f64 (/.f64 2 eps) (-.f64 -1 (/.f64 2 (*.f64 eps eps))))
(+.f64 -1 (+.f64 (/.f64 2 eps) (/.f64 -2 (*.f64 eps eps))))
(+.f64 (/.f64 2 eps) (+.f64 -1 (/.f64 -2 (*.f64 eps eps))))
(-.f64 (+.f64 (*.f64 2 (/.f64 1 (pow.f64 eps 3))) (*.f64 2 (/.f64 1 eps))) (+.f64 1 (*.f64 2 (/.f64 1 (pow.f64 eps 2)))))
(+.f64 (/.f64 2 (pow.f64 eps 3)) (-.f64 (/.f64 2 eps) (+.f64 1 (/.f64 2 (*.f64 eps eps)))))
(-.f64 (+.f64 (/.f64 2 eps) (/.f64 2 (pow.f64 eps 3))) (+.f64 1 (/.f64 2 (*.f64 eps eps))))
(+.f64 (/.f64 2 (pow.f64 eps 3)) (+.f64 -1 (+.f64 (/.f64 2 eps) (/.f64 -2 (*.f64 eps eps)))))
(+.f64 (+.f64 (/.f64 2 eps) (/.f64 2 (pow.f64 eps 3))) (+.f64 -1 (/.f64 -2 (*.f64 eps eps))))
(+.f64 -1 (+.f64 (/.f64 2 eps) (+.f64 (/.f64 2 (pow.f64 eps 3)) (/.f64 -2 (*.f64 eps eps)))))
1
(+.f64 1 (*.f64 -1 eps))
(+.f64 1 (neg.f64 eps))
(-.f64 1 eps)
(+.f64 (pow.f64 eps 2) (+.f64 1 (*.f64 -1 eps)))
(+.f64 (*.f64 eps eps) (+.f64 1 (neg.f64 eps)))
(-.f64 (fma.f64 eps eps 1) eps)
(fma.f64 eps eps (-.f64 1 eps))
(+.f64 (pow.f64 eps 2) (+.f64 1 (+.f64 (*.f64 -1 eps) (*.f64 -1 (pow.f64 eps 3)))))
(+.f64 (*.f64 eps eps) (+.f64 1 (*.f64 -1 (+.f64 eps (pow.f64 eps 3)))))
(fma.f64 eps eps (-.f64 (-.f64 1 eps) (pow.f64 eps 3)))
(-.f64 (fma.f64 eps eps 1) (+.f64 eps (pow.f64 eps 3)))
(-.f64 (-.f64 (fma.f64 eps eps 1) (pow.f64 eps 3)) eps)
(/.f64 1 eps)
(-.f64 (/.f64 1 eps) (/.f64 1 (pow.f64 eps 2)))
(-.f64 (/.f64 1 eps) (/.f64 1 (*.f64 eps eps)))
(+.f64 (/.f64 1 eps) (/.f64 -1 (*.f64 eps eps)))
(+.f64 (/.f64 1 eps) (/.f64 (/.f64 -1 eps) eps))
(-.f64 (+.f64 (/.f64 1 eps) (/.f64 1 (pow.f64 eps 3))) (/.f64 1 (pow.f64 eps 2)))
(+.f64 (/.f64 1 eps) (-.f64 (/.f64 1 (pow.f64 eps 3)) (/.f64 1 (*.f64 eps eps))))
(+.f64 (+.f64 (/.f64 1 eps) (/.f64 1 (pow.f64 eps 3))) (/.f64 -1 (*.f64 eps eps)))
(+.f64 (/.f64 1 eps) (+.f64 (/.f64 1 (pow.f64 eps 3)) (/.f64 -1 (*.f64 eps eps))))
(+.f64 (+.f64 (/.f64 1 eps) (/.f64 1 (pow.f64 eps 3))) (/.f64 (/.f64 -1 eps) eps))
(-.f64 (+.f64 (/.f64 1 eps) (/.f64 1 (pow.f64 eps 3))) (+.f64 (/.f64 1 (pow.f64 eps 4)) (/.f64 1 (pow.f64 eps 2))))
(-.f64 (+.f64 (/.f64 1 eps) (/.f64 1 (pow.f64 eps 3))) (+.f64 (/.f64 1 (*.f64 eps eps)) (/.f64 1 (pow.f64 eps 4))))
(+.f64 (/.f64 1 eps) (+.f64 (/.f64 1 (pow.f64 eps 3)) (+.f64 (/.f64 -1 (*.f64 eps eps)) (/.f64 -1 (pow.f64 eps 4)))))
(-.f64 (+.f64 (/.f64 1 (pow.f64 eps 3)) (/.f64 -1 (pow.f64 eps 4))) (-.f64 (/.f64 1 (*.f64 eps eps)) (/.f64 1 eps)))
(+.f64 (/.f64 1 (pow.f64 eps 3)) (+.f64 (/.f64 1 eps) (-.f64 (/.f64 (/.f64 -1 eps) eps) (/.f64 1 (pow.f64 eps 4)))))
(/.f64 1 eps)
(-.f64 (/.f64 1 eps) (/.f64 1 (pow.f64 eps 2)))
(-.f64 (/.f64 1 eps) (/.f64 1 (*.f64 eps eps)))
(+.f64 (/.f64 1 eps) (/.f64 -1 (*.f64 eps eps)))
(+.f64 (/.f64 1 eps) (/.f64 (/.f64 -1 eps) eps))
(-.f64 (+.f64 (/.f64 1 eps) (/.f64 1 (pow.f64 eps 3))) (/.f64 1 (pow.f64 eps 2)))
(+.f64 (/.f64 1 eps) (-.f64 (/.f64 1 (pow.f64 eps 3)) (/.f64 1 (*.f64 eps eps))))
(+.f64 (+.f64 (/.f64 1 eps) (/.f64 1 (pow.f64 eps 3))) (/.f64 -1 (*.f64 eps eps)))
(+.f64 (/.f64 1 eps) (+.f64 (/.f64 1 (pow.f64 eps 3)) (/.f64 -1 (*.f64 eps eps))))
(+.f64 (+.f64 (/.f64 1 eps) (/.f64 1 (pow.f64 eps 3))) (/.f64 (/.f64 -1 eps) eps))
(-.f64 (+.f64 (/.f64 1 eps) (/.f64 1 (pow.f64 eps 3))) (+.f64 (/.f64 1 (pow.f64 eps 4)) (/.f64 1 (pow.f64 eps 2))))
(-.f64 (+.f64 (/.f64 1 eps) (/.f64 1 (pow.f64 eps 3))) (+.f64 (/.f64 1 (*.f64 eps eps)) (/.f64 1 (pow.f64 eps 4))))
(+.f64 (/.f64 1 eps) (+.f64 (/.f64 1 (pow.f64 eps 3)) (+.f64 (/.f64 -1 (*.f64 eps eps)) (/.f64 -1 (pow.f64 eps 4)))))
(-.f64 (+.f64 (/.f64 1 (pow.f64 eps 3)) (/.f64 -1 (pow.f64 eps 4))) (-.f64 (/.f64 1 (*.f64 eps eps)) (/.f64 1 eps)))
(+.f64 (/.f64 1 (pow.f64 eps 3)) (+.f64 (/.f64 1 eps) (-.f64 (/.f64 (/.f64 -1 eps) eps) (/.f64 1 (pow.f64 eps 4)))))
1
(+.f64 (pow.f64 eps 2) 1)
(+.f64 1 (*.f64 eps eps))
(fma.f64 eps eps 1)
(+.f64 (pow.f64 eps 2) (+.f64 1 (pow.f64 eps 4)))
(+.f64 (+.f64 1 (*.f64 eps eps)) (pow.f64 eps 4))
(+.f64 (pow.f64 eps 4) (fma.f64 eps eps 1))
(+.f64 1 (fma.f64 eps eps (pow.f64 eps 4)))
(+.f64 (pow.f64 eps 2) (+.f64 1 (+.f64 (pow.f64 eps 4) (pow.f64 eps 6))))
(+.f64 (*.f64 eps eps) (+.f64 1 (+.f64 (pow.f64 eps 4) (pow.f64 eps 6))))
(+.f64 (fma.f64 eps eps 1) (+.f64 (pow.f64 eps 4) (pow.f64 eps 6)))
(+.f64 (pow.f64 eps 4) (+.f64 (fma.f64 eps eps 1) (pow.f64 eps 6)))
(/.f64 -1 (pow.f64 eps 2))
(/.f64 -1 (*.f64 eps eps))
(/.f64 (/.f64 -1 eps) eps)
(neg.f64 (+.f64 (/.f64 1 (pow.f64 eps 4)) (/.f64 1 (pow.f64 eps 2))))
(neg.f64 (+.f64 (/.f64 1 (*.f64 eps eps)) (/.f64 1 (pow.f64 eps 4))))
(+.f64 (/.f64 -1 (*.f64 eps eps)) (/.f64 -1 (pow.f64 eps 4)))
(-.f64 (/.f64 (/.f64 -1 eps) eps) (/.f64 1 (pow.f64 eps 4)))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 eps 4)) (+.f64 (/.f64 1 (pow.f64 eps 6)) (/.f64 1 (pow.f64 eps 2)))))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 eps 4)) (+.f64 (/.f64 1 (*.f64 eps eps)) (/.f64 1 (pow.f64 eps 6)))))
(-.f64 (/.f64 -1 (pow.f64 eps 4)) (+.f64 (/.f64 1 (*.f64 eps eps)) (/.f64 1 (pow.f64 eps 6))))
(+.f64 (/.f64 -1 (*.f64 eps eps)) (+.f64 (/.f64 -1 (pow.f64 eps 4)) (/.f64 -1 (pow.f64 eps 6))))
(+.f64 (-.f64 (/.f64 (/.f64 -1 eps) eps) (/.f64 1 (pow.f64 eps 4))) (/.f64 -1 (pow.f64 eps 6)))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 eps 4)) (+.f64 (/.f64 1 (pow.f64 eps 6)) (+.f64 (/.f64 1 (pow.f64 eps 8)) (/.f64 1 (pow.f64 eps 2))))))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 eps 4)) (+.f64 (/.f64 1 (pow.f64 eps 6)) (+.f64 (/.f64 1 (*.f64 eps eps)) (/.f64 1 (pow.f64 eps 8))))))
(-.f64 (/.f64 -1 (pow.f64 eps 4)) (+.f64 (/.f64 1 (pow.f64 eps 6)) (+.f64 (/.f64 1 (*.f64 eps eps)) (/.f64 1 (pow.f64 eps 8)))))
(+.f64 (/.f64 -1 (pow.f64 eps 4)) (-.f64 (+.f64 (/.f64 -1 (*.f64 eps eps)) (/.f64 -1 (pow.f64 eps 6))) (/.f64 1 (pow.f64 eps 8))))
(+.f64 (-.f64 (/.f64 (/.f64 -1 eps) eps) (/.f64 1 (pow.f64 eps 4))) (+.f64 (/.f64 -1 (pow.f64 eps 6)) (/.f64 -1 (pow.f64 eps 8))))
(/.f64 -1 (pow.f64 eps 2))
(/.f64 -1 (*.f64 eps eps))
(/.f64 (/.f64 -1 eps) eps)
(neg.f64 (+.f64 (/.f64 1 (pow.f64 eps 4)) (/.f64 1 (pow.f64 eps 2))))
(neg.f64 (+.f64 (/.f64 1 (*.f64 eps eps)) (/.f64 1 (pow.f64 eps 4))))
(+.f64 (/.f64 -1 (*.f64 eps eps)) (/.f64 -1 (pow.f64 eps 4)))
(-.f64 (/.f64 (/.f64 -1 eps) eps) (/.f64 1 (pow.f64 eps 4)))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 eps 4)) (+.f64 (/.f64 1 (pow.f64 eps 6)) (/.f64 1 (pow.f64 eps 2)))))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 eps 4)) (+.f64 (/.f64 1 (*.f64 eps eps)) (/.f64 1 (pow.f64 eps 6)))))
(-.f64 (/.f64 -1 (pow.f64 eps 4)) (+.f64 (/.f64 1 (*.f64 eps eps)) (/.f64 1 (pow.f64 eps 6))))
(+.f64 (/.f64 -1 (*.f64 eps eps)) (+.f64 (/.f64 -1 (pow.f64 eps 4)) (/.f64 -1 (pow.f64 eps 6))))
(+.f64 (-.f64 (/.f64 (/.f64 -1 eps) eps) (/.f64 1 (pow.f64 eps 4))) (/.f64 -1 (pow.f64 eps 6)))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 eps 4)) (+.f64 (/.f64 1 (pow.f64 eps 6)) (+.f64 (/.f64 1 (pow.f64 eps 8)) (/.f64 1 (pow.f64 eps 2))))))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 eps 4)) (+.f64 (/.f64 1 (pow.f64 eps 6)) (+.f64 (/.f64 1 (*.f64 eps eps)) (/.f64 1 (pow.f64 eps 8))))))
(-.f64 (/.f64 -1 (pow.f64 eps 4)) (+.f64 (/.f64 1 (pow.f64 eps 6)) (+.f64 (/.f64 1 (*.f64 eps eps)) (/.f64 1 (pow.f64 eps 8)))))
(+.f64 (/.f64 -1 (pow.f64 eps 4)) (-.f64 (+.f64 (/.f64 -1 (*.f64 eps eps)) (/.f64 -1 (pow.f64 eps 6))) (/.f64 1 (pow.f64 eps 8))))
(+.f64 (-.f64 (/.f64 (/.f64 -1 eps) eps) (/.f64 1 (pow.f64 eps 4))) (+.f64 (/.f64 -1 (pow.f64 eps 6)) (/.f64 -1 (pow.f64 eps 8))))

eval132.0ms (2.4%)

Compiler

Compiled 6240 to 4031 computations (35.4% saved)

prune49.0ms (0.9%)

Pruning

8 alts after pruning (1 fresh and 7 done)

PrunedKeptTotal
New3401341
Fresh000
Picked011
Done167
Total3418349
Error
0b
Counts
349 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))
58.6b
(log.f64 (*.f64 (*.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps))) (-.f64 1 eps)) (-.f64 1 eps)))
58.6b
(log.f64 (*.f64 (/.f64 1 (+.f64 1 eps)) (-.f64 1 eps)))
0.3b
(*.f64 eps (fma.f64 -2/3 (*.f64 eps eps) -2))
0.0b
(-.f64 (*.f64 2 (log1p.f64 (neg.f64 eps))) (log1p.f64 (*.f64 eps (neg.f64 eps))))
0.6b
(*.f64 -2 eps)
58.6b
(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
0.3b
(+.f64 (*.f64 (*.f64 -2/3 (*.f64 eps eps)) eps) (*.f64 -2 eps))
Compiler

Compiled 81 to 59 computations (27.2% saved)

localize11.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(-.f64 (*.f64 2 (log1p.f64 (neg.f64 eps))) (log1p.f64 (*.f64 eps (neg.f64 eps))))
0.0b
(log1p.f64 (*.f64 eps (neg.f64 eps)))
0.0b
(log1p.f64 (*.f64 eps (neg.f64 eps)))
0.0b
(-.f64 (*.f64 2 (log1p.f64 (neg.f64 eps))) (log1p.f64 (*.f64 eps (neg.f64 eps))))
Compiler

Compiled 33 to 11 computations (66.7% saved)

series4.0ms (0.1%)

Counts
2 → 24
Calls

6 calls:

TimeVariablePointExpression
1.0ms
eps
@0
(-.f64 (*.f64 2 (log1p.f64 (neg.f64 eps))) (log1p.f64 (*.f64 eps (neg.f64 eps))))
1.0ms
eps
@inf
(-.f64 (*.f64 2 (log1p.f64 (neg.f64 eps))) (log1p.f64 (*.f64 eps (neg.f64 eps))))
1.0ms
eps
@inf
(log1p.f64 (*.f64 eps (neg.f64 eps)))
1.0ms
eps
@0
(log1p.f64 (*.f64 eps (neg.f64 eps)))
0.0ms
eps
@-inf
(log1p.f64 (*.f64 eps (neg.f64 eps)))

rewrite52.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
841×pow1_binary64
781×add-log-exp_binary64
779×expm1-log1p-u_binary64
777×log1p-expm1-u_binary64
765×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0926
119320
2252720
Stop Event
node limit
Counts
2 → 52
Calls
Call 1
Inputs
(-.f64 (*.f64 2 (log1p.f64 (neg.f64 eps))) (log1p.f64 (*.f64 eps (neg.f64 eps))))
(log1p.f64 (*.f64 eps (neg.f64 eps)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 2 (log1p.f64 eps)) (neg.f64 (log1p.f64 (*.f64 eps eps))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 2 (log1p.f64 eps)) (*.f64 (neg.f64 (log1p.f64 (*.f64 eps eps))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 2 (log1p.f64 eps)) (log1p.f64 (*.f64 eps eps))) (fma.f64 (neg.f64 (log1p.f64 (*.f64 eps eps))) 1 (log1p.f64 (*.f64 eps eps))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 2 (log1p.f64 eps)) (log1p.f64 (*.f64 eps eps))) (fma.f64 (neg.f64 (cbrt.f64 (log1p.f64 (*.f64 eps eps)))) (pow.f64 (cbrt.f64 (log1p.f64 (*.f64 eps eps))) 2) (log1p.f64 (*.f64 eps eps))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 2 (log1p.f64 eps)) (log1p.f64 (*.f64 eps eps))) (fma.f64 (neg.f64 (sqrt.f64 (log1p.f64 (*.f64 eps eps)))) (sqrt.f64 (log1p.f64 (*.f64 eps eps))) (log1p.f64 (*.f64 eps eps))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (log1p.f64 (*.f64 eps eps))) (*.f64 2 (log1p.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 2 (log1p.f64 eps)) (log1p.f64 (*.f64 eps eps))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (*.f64 2 (log1p.f64 eps)) (log1p.f64 (*.f64 eps eps))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 (*.f64 2 (log1p.f64 eps)) (log1p.f64 (*.f64 eps eps)))) (pow.f64 (cbrt.f64 (-.f64 (*.f64 2 (log1p.f64 eps)) (log1p.f64 (*.f64 eps eps)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 2 (log1p.f64 eps)) (log1p.f64 (*.f64 eps eps)))) 2) (cbrt.f64 (-.f64 (*.f64 2 (log1p.f64 eps)) (log1p.f64 (*.f64 eps eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 (*.f64 2 (log1p.f64 eps)) (log1p.f64 (*.f64 eps eps)))) (sqrt.f64 (-.f64 (*.f64 2 (log1p.f64 eps)) (log1p.f64 (*.f64 eps eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 (pow.f64 (log1p.f64 eps) 3) 8) (pow.f64 (log1p.f64 (*.f64 eps eps)) 3)) (/.f64 1 (+.f64 (pow.f64 (*.f64 2 (log1p.f64 eps)) 2) (*.f64 (log1p.f64 (*.f64 eps eps)) (fma.f64 2 (log1p.f64 eps) (log1p.f64 (*.f64 eps eps)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 2 (log1p.f64 eps)) 2) (pow.f64 (log1p.f64 (*.f64 eps eps)) 2)) (/.f64 1 (fma.f64 2 (log1p.f64 eps) (log1p.f64 (*.f64 eps eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (*.f64 2 (log1p.f64 eps))) (sqrt.f64 (log1p.f64 (*.f64 eps eps)))) (-.f64 (sqrt.f64 (*.f64 2 (log1p.f64 eps))) (sqrt.f64 (log1p.f64 (*.f64 eps eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (*.f64 2 (log1p.f64 eps)) 2) (*.f64 (log1p.f64 (*.f64 eps eps)) (fma.f64 2 (log1p.f64 eps) (log1p.f64 (*.f64 eps eps))))) (-.f64 (*.f64 (pow.f64 (log1p.f64 eps) 3) 8) (pow.f64 (log1p.f64 (*.f64 eps eps)) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 2 (log1p.f64 eps) (log1p.f64 (*.f64 eps eps))) (-.f64 (pow.f64 (*.f64 2 (log1p.f64 eps)) 2) (pow.f64 (log1p.f64 (*.f64 eps eps)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (pow.f64 (log1p.f64 eps) 3) 8) (pow.f64 (log1p.f64 (*.f64 eps eps)) 3)) (+.f64 (pow.f64 (*.f64 2 (log1p.f64 eps)) 2) (*.f64 (log1p.f64 (*.f64 eps eps)) (fma.f64 2 (log1p.f64 eps) (log1p.f64 (*.f64 eps eps))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 2 (log1p.f64 eps)) 2) (pow.f64 (log1p.f64 (*.f64 eps eps)) 2)) (fma.f64 2 (log1p.f64 eps) (log1p.f64 (*.f64 eps eps))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 (pow.f64 (log1p.f64 eps) 3) 8) (pow.f64 (log1p.f64 (*.f64 eps eps)) 3))) (neg.f64 (+.f64 (pow.f64 (*.f64 2 (log1p.f64 eps)) 2) (*.f64 (log1p.f64 (*.f64 eps eps)) (fma.f64 2 (log1p.f64 eps) (log1p.f64 (*.f64 eps eps)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 2 (log1p.f64 eps)) 2) (pow.f64 (log1p.f64 (*.f64 eps eps)) 2))) (neg.f64 (fma.f64 2 (log1p.f64 eps) (log1p.f64 (*.f64 eps eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (pow.f64 (log1p.f64 eps) 3) 8) (pow.f64 (neg.f64 (log1p.f64 (*.f64 eps eps))) 3)) (+.f64 (pow.f64 (*.f64 2 (log1p.f64 eps)) 2) (-.f64 (*.f64 (neg.f64 (log1p.f64 (*.f64 eps eps))) (neg.f64 (log1p.f64 (*.f64 eps eps)))) (*.f64 (*.f64 2 (log1p.f64 eps)) (neg.f64 (log1p.f64 (*.f64 eps eps)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 2 (log1p.f64 eps)) 2) (*.f64 (neg.f64 (log1p.f64 (*.f64 eps eps))) (neg.f64 (log1p.f64 (*.f64 eps eps))))) (-.f64 (*.f64 2 (log1p.f64 eps)) (neg.f64 (log1p.f64 (*.f64 eps eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 (*.f64 2 (log1p.f64 eps)) (log1p.f64 (*.f64 eps eps))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 (*.f64 2 (log1p.f64 eps)) (log1p.f64 (*.f64 eps eps))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (-.f64 (*.f64 2 (log1p.f64 eps)) (log1p.f64 (*.f64 eps eps)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (-.f64 (*.f64 2 (log1p.f64 eps)) (log1p.f64 (*.f64 eps eps)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (-.f64 (*.f64 2 (log1p.f64 eps)) (log1p.f64 (*.f64 eps eps))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (pow.f64 (+.f64 eps 1) 2) (+.f64 1 (*.f64 eps eps))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 (*.f64 2 (log1p.f64 eps)) (log1p.f64 (*.f64 eps eps))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 (*.f64 2 (log1p.f64 eps)) (log1p.f64 (*.f64 eps eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (-.f64 (*.f64 2 (log1p.f64 eps)) (log1p.f64 (*.f64 eps eps)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 2 (log1p.f64 eps) (neg.f64 (log1p.f64 (*.f64 eps eps))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (log1p.f64 eps) 2 (neg.f64 (log1p.f64 (*.f64 eps eps))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 2 (log1p.f64 eps)) (neg.f64 (log1p.f64 (*.f64 eps eps))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 2 (log1p.f64 eps))) 2) (cbrt.f64 (*.f64 2 (log1p.f64 eps))) (neg.f64 (log1p.f64 (*.f64 eps eps))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 2 (log1p.f64 eps))) (sqrt.f64 (*.f64 2 (log1p.f64 eps))) (neg.f64 (log1p.f64 (*.f64 eps eps))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 (*.f64 2 (log1p.f64 eps)) (log1p.f64 (*.f64 eps eps)))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (log1p.f64 (*.f64 eps eps))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (log1p.f64 (*.f64 eps eps)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (log1p.f64 (*.f64 eps eps)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (log1p.f64 (*.f64 eps eps))) (pow.f64 (cbrt.f64 (log1p.f64 (*.f64 eps eps))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (log1p.f64 (*.f64 eps eps))) 2) (cbrt.f64 (log1p.f64 (*.f64 eps eps))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (log1p.f64 (*.f64 eps eps))) (sqrt.f64 (log1p.f64 (*.f64 eps eps))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (log1p.f64 (*.f64 eps eps)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (log1p.f64 (*.f64 eps eps))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (log1p.f64 (*.f64 eps eps))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (log1p.f64 (*.f64 eps eps)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (log1p.f64 (*.f64 eps eps)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (*.f64 eps eps)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (log1p.f64 (*.f64 eps eps)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (log1p.f64 (*.f64 eps eps))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (log1p.f64 (*.f64 eps eps))))))))

simplify45.0ms (0.8%)

Algorithm
egg-herbie
Rules
624×associate-*l*_binary64
610×fma-neg_binary64
453×sub-neg_binary64
431×associate-*r*_binary64
431×fma-def_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
099549
1303523
2905458
33343444
Stop Event
node limit
Counts
76 → 99
Calls
Call 1
Inputs
(*.f64 -2 eps)
(+.f64 (*.f64 -2 eps) (*.f64 -2/3 (pow.f64 eps 3)))
(+.f64 (*.f64 -2 eps) (+.f64 (*.f64 -2/5 (pow.f64 eps 5)) (*.f64 -2/3 (pow.f64 eps 3))))
(+.f64 (*.f64 -2 eps) (+.f64 (*.f64 -2/5 (pow.f64 eps 5)) (+.f64 (*.f64 -2/7 (pow.f64 eps 7)) (*.f64 -2/3 (pow.f64 eps 3)))))
(-.f64 (*.f64 2 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 eps))))) (+.f64 (*.f64 -2 (log.f64 (/.f64 1 eps))) (log.f64 -1)))
(-.f64 (*.f64 2 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 eps))))) (+.f64 (*.f64 2 (/.f64 1 eps)) (+.f64 (log.f64 -1) (*.f64 -2 (log.f64 (/.f64 1 eps))))))
(-.f64 (*.f64 2 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 eps))))) (+.f64 (*.f64 2/3 (/.f64 1 (pow.f64 eps 3))) (+.f64 (log.f64 -1) (+.f64 (*.f64 -2 (log.f64 (/.f64 1 eps))) (*.f64 2 (/.f64 1 eps))))))
(-.f64 (*.f64 2 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 eps))))) (+.f64 (*.f64 2/3 (/.f64 1 (pow.f64 eps 3))) (+.f64 (log.f64 -1) (+.f64 (*.f64 -2 (log.f64 (/.f64 1 eps))) (+.f64 (*.f64 2 (/.f64 1 eps)) (*.f64 2/5 (/.f64 1 (pow.f64 eps 5))))))))
(*.f64 -1 (log.f64 -1))
(-.f64 (*.f64 -1 (log.f64 -1)) (*.f64 2 (/.f64 1 eps)))
(-.f64 (*.f64 -1 (log.f64 -1)) (+.f64 (*.f64 2/3 (/.f64 1 (pow.f64 eps 3))) (*.f64 2 (/.f64 1 eps))))
(-.f64 (*.f64 -1 (log.f64 -1)) (+.f64 (*.f64 2/3 (/.f64 1 (pow.f64 eps 3))) (+.f64 (*.f64 2 (/.f64 1 eps)) (*.f64 2/5 (/.f64 1 (pow.f64 eps 5))))))
(*.f64 -1 (pow.f64 eps 2))
(+.f64 (*.f64 -1 (pow.f64 eps 2)) (*.f64 -1/2 (pow.f64 eps 4)))
(+.f64 (*.f64 -1 (pow.f64 eps 2)) (+.f64 (*.f64 -1/3 (pow.f64 eps 6)) (*.f64 -1/2 (pow.f64 eps 4))))
(+.f64 (*.f64 -1 (pow.f64 eps 2)) (+.f64 (*.f64 -1/4 (pow.f64 eps 8)) (+.f64 (*.f64 -1/3 (pow.f64 eps 6)) (*.f64 -1/2 (pow.f64 eps 4)))))
(+.f64 (*.f64 -2 (log.f64 (/.f64 1 eps))) (log.f64 -1))
(-.f64 (+.f64 (log.f64 -1) (*.f64 -2 (log.f64 (/.f64 1 eps)))) (/.f64 1 (pow.f64 eps 2)))
(-.f64 (+.f64 (log.f64 -1) (*.f64 -2 (log.f64 (/.f64 1 eps)))) (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 eps 4))) (/.f64 1 (pow.f64 eps 2))))
(-.f64 (+.f64 (log.f64 -1) (*.f64 -2 (log.f64 (/.f64 1 eps)))) (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 eps 4))) (+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 eps 6))) (/.f64 1 (pow.f64 eps 2)))))
(+.f64 (*.f64 -2 (log.f64 (/.f64 -1 eps))) (log.f64 -1))
(-.f64 (+.f64 (log.f64 -1) (*.f64 -2 (log.f64 (/.f64 -1 eps)))) (/.f64 1 (pow.f64 eps 2)))
(-.f64 (+.f64 (log.f64 -1) (*.f64 -2 (log.f64 (/.f64 -1 eps)))) (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 eps 4))) (/.f64 1 (pow.f64 eps 2))))
(-.f64 (+.f64 (log.f64 -1) (*.f64 -2 (log.f64 (/.f64 -1 eps)))) (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 eps 4))) (+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 eps 6))) (/.f64 1 (pow.f64 eps 2)))))
Outputs
(*.f64 -2 eps)
(+.f64 (*.f64 -2 eps) (*.f64 -2/3 (pow.f64 eps 3)))
(fma.f64 -2 eps (*.f64 -2/3 (pow.f64 eps 3)))
(fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2 eps))
(+.f64 (*.f64 -2 eps) (+.f64 (*.f64 -2/5 (pow.f64 eps 5)) (*.f64 -2/3 (pow.f64 eps 3))))
(fma.f64 -2 eps (fma.f64 -2/5 (pow.f64 eps 5) (*.f64 -2/3 (pow.f64 eps 3))))
(fma.f64 -2 eps (fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2/5 (pow.f64 eps 5))))
(fma.f64 -2/5 (pow.f64 eps 5) (fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2 eps)))
(fma.f64 -2/3 (pow.f64 eps 3) (fma.f64 -2/5 (pow.f64 eps 5) (*.f64 -2 eps)))
(+.f64 (*.f64 -2 eps) (+.f64 (*.f64 -2/5 (pow.f64 eps 5)) (+.f64 (*.f64 -2/7 (pow.f64 eps 7)) (*.f64 -2/3 (pow.f64 eps 3)))))
(fma.f64 -2 eps (fma.f64 -2/5 (pow.f64 eps 5) (fma.f64 -2/7 (pow.f64 eps 7) (*.f64 -2/3 (pow.f64 eps 3)))))
(fma.f64 -2 eps (fma.f64 -2/5 (pow.f64 eps 5) (fma.f64 -2/3 (pow.f64 eps 3) (*.f64 -2/7 (pow.f64 eps 7)))))
(fma.f64 -2 eps (fma.f64 -2/3 (pow.f64 eps 3) (fma.f64 -2/5 (pow.f64 eps 5) (*.f64 -2/7 (pow.f64 eps 7)))))
(-.f64 (*.f64 2 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 eps))))) (+.f64 (*.f64 -2 (log.f64 (/.f64 1 eps))) (log.f64 -1)))
(fma.f64 2 (+.f64 (log.f64 -1) (neg.f64 (neg.f64 (log.f64 eps)))) (neg.f64 (fma.f64 -2 (neg.f64 (log.f64 eps)) (log.f64 -1))))
(-.f64 (*.f64 2 (+.f64 (log.f64 -1) (log.f64 eps))) (+.f64 (log.f64 -1) (*.f64 2 (log.f64 eps))))
(fma.f64 2 (log.f64 -1) (neg.f64 (log.f64 -1)))
(*.f64 (log.f64 -1) 1)
(-.f64 (*.f64 2 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 eps))))) (+.f64 (*.f64 2 (/.f64 1 eps)) (+.f64 (log.f64 -1) (*.f64 -2 (log.f64 (/.f64 1 eps))))))
(fma.f64 2 (+.f64 (log.f64 -1) (neg.f64 (neg.f64 (log.f64 eps)))) (neg.f64 (+.f64 (log.f64 -1) (fma.f64 -2 (neg.f64 (log.f64 eps)) (/.f64 2 eps)))))
(-.f64 (fma.f64 2 (+.f64 (log.f64 -1) (log.f64 eps)) (/.f64 -2 eps)) (+.f64 (log.f64 -1) (*.f64 2 (log.f64 eps))))
(fma.f64 2 (log.f64 -1) (-.f64 (/.f64 -2 eps) (log.f64 -1)))
(+.f64 (/.f64 -2 eps) (*.f64 (log.f64 -1) 1))
(-.f64 (*.f64 2 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 eps))))) (+.f64 (*.f64 2/3 (/.f64 1 (pow.f64 eps 3))) (+.f64 (log.f64 -1) (+.f64 (*.f64 -2 (log.f64 (/.f64 1 eps))) (*.f64 2 (/.f64 1 eps))))))
(-.f64 (*.f64 2 (+.f64 (log.f64 -1) (neg.f64 (neg.f64 (log.f64 eps))))) (+.f64 (/.f64 2/3 (pow.f64 eps 3)) (+.f64 (log.f64 -1) (fma.f64 -2 (neg.f64 (log.f64 eps)) (/.f64 2 eps)))))
(-.f64 (-.f64 (fma.f64 2 (+.f64 (log.f64 -1) (log.f64 eps)) (/.f64 -2 eps)) (+.f64 (log.f64 -1) (*.f64 2 (log.f64 eps)))) (/.f64 2/3 (pow.f64 eps 3)))
(+.f64 (/.f64 -2/3 (pow.f64 eps 3)) (fma.f64 2 (log.f64 -1) (-.f64 (/.f64 -2 eps) (log.f64 -1))))
(+.f64 (/.f64 -2/3 (pow.f64 eps 3)) (+.f64 (/.f64 -2 eps) (*.f64 (log.f64 -1) 1)))
(-.f64 (*.f64 2 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 eps))))) (+.f64 (*.f64 2/3 (/.f64 1 (pow.f64 eps 3))) (+.f64 (log.f64 -1) (+.f64 (*.f64 -2 (log.f64 (/.f64 1 eps))) (+.f64 (*.f64 2 (/.f64 1 eps)) (*.f64 2/5 (/.f64 1 (pow.f64 eps 5))))))))
(-.f64 (*.f64 2 (+.f64 (log.f64 -1) (neg.f64 (neg.f64 (log.f64 eps))))) (+.f64 (/.f64 2/3 (pow.f64 eps 3)) (+.f64 (log.f64 -1) (+.f64 (fma.f64 -2 (neg.f64 (log.f64 eps)) (/.f64 2 eps)) (/.f64 2/5 (pow.f64 eps 5))))))
(-.f64 (*.f64 2 (+.f64 (log.f64 -1) (log.f64 eps))) (+.f64 (log.f64 -1) (+.f64 (+.f64 (*.f64 2 (log.f64 eps)) (+.f64 (/.f64 2 eps) (/.f64 2/5 (pow.f64 eps 5)))) (/.f64 2/3 (pow.f64 eps 3)))))
(-.f64 (+.f64 (/.f64 -2/3 (pow.f64 eps 3)) (fma.f64 2 (log.f64 -1) (-.f64 (/.f64 -2 eps) (log.f64 -1)))) (/.f64 2/5 (pow.f64 eps 5)))
(+.f64 (*.f64 (log.f64 -1) 1) (+.f64 (+.f64 (/.f64 -2 eps) (/.f64 -2/3 (pow.f64 eps 3))) (/.f64 -2/5 (pow.f64 eps 5))))
(*.f64 -1 (log.f64 -1))
(neg.f64 (log.f64 -1))
(-.f64 (*.f64 -1 (log.f64 -1)) (*.f64 2 (/.f64 1 eps)))
(-.f64 (neg.f64 (log.f64 -1)) (/.f64 2 eps))
(fma.f64 -1 (log.f64 -1) (/.f64 -2 eps))
(-.f64 (/.f64 -2 eps) (log.f64 -1))
(-.f64 (*.f64 -1 (log.f64 -1)) (+.f64 (*.f64 2/3 (/.f64 1 (pow.f64 eps 3))) (*.f64 2 (/.f64 1 eps))))
(-.f64 (neg.f64 (log.f64 -1)) (+.f64 (/.f64 2 eps) (/.f64 2/3 (pow.f64 eps 3))))
(-.f64 (fma.f64 -1 (log.f64 -1) (/.f64 -2 eps)) (/.f64 2/3 (pow.f64 eps 3)))
(+.f64 (/.f64 -2/3 (pow.f64 eps 3)) (-.f64 (/.f64 -2 eps) (log.f64 -1)))
(-.f64 (*.f64 -1 (log.f64 -1)) (+.f64 (*.f64 2/3 (/.f64 1 (pow.f64 eps 3))) (+.f64 (*.f64 2 (/.f64 1 eps)) (*.f64 2/5 (/.f64 1 (pow.f64 eps 5))))))
(-.f64 (neg.f64 (log.f64 -1)) (+.f64 (/.f64 2/3 (pow.f64 eps 3)) (+.f64 (/.f64 2 eps) (/.f64 2/5 (pow.f64 eps 5)))))
(-.f64 (-.f64 (fma.f64 -1 (log.f64 -1) (/.f64 -2 eps)) (/.f64 2/3 (pow.f64 eps 3))) (/.f64 2/5 (pow.f64 eps 5)))
(+.f64 (+.f64 (/.f64 -2/3 (pow.f64 eps 3)) (-.f64 (/.f64 -2 eps) (log.f64 -1))) (/.f64 -2/5 (pow.f64 eps 5)))
(+.f64 (+.f64 (/.f64 -2 eps) (/.f64 -2/3 (pow.f64 eps 3))) (-.f64 (/.f64 -2/5 (pow.f64 eps 5)) (log.f64 -1)))
(*.f64 -1 (pow.f64 eps 2))
(neg.f64 (*.f64 eps eps))
(*.f64 eps (neg.f64 eps))
(+.f64 (*.f64 -1 (pow.f64 eps 2)) (*.f64 -1/2 (pow.f64 eps 4)))
(fma.f64 -1 (*.f64 eps eps) (*.f64 -1/2 (pow.f64 eps 4)))
(-.f64 (*.f64 -1/2 (pow.f64 eps 4)) (*.f64 eps eps))
(fma.f64 -1/2 (pow.f64 eps 4) (*.f64 eps (neg.f64 eps)))
(+.f64 (*.f64 -1 (pow.f64 eps 2)) (+.f64 (*.f64 -1/3 (pow.f64 eps 6)) (*.f64 -1/2 (pow.f64 eps 4))))
(fma.f64 -1 (*.f64 eps eps) (fma.f64 -1/3 (pow.f64 eps 6) (*.f64 -1/2 (pow.f64 eps 4))))
(-.f64 (fma.f64 -1/2 (pow.f64 eps 4) (*.f64 -1/3 (pow.f64 eps 6))) (*.f64 eps eps))
(fma.f64 -1/2 (pow.f64 eps 4) (-.f64 (*.f64 -1/3 (pow.f64 eps 6)) (*.f64 eps eps)))
(+.f64 (*.f64 -1 (pow.f64 eps 2)) (+.f64 (*.f64 -1/4 (pow.f64 eps 8)) (+.f64 (*.f64 -1/3 (pow.f64 eps 6)) (*.f64 -1/2 (pow.f64 eps 4)))))
(fma.f64 -1 (*.f64 eps eps) (fma.f64 -1/4 (pow.f64 eps 8) (fma.f64 -1/3 (pow.f64 eps 6) (*.f64 -1/2 (pow.f64 eps 4)))))
(-.f64 (fma.f64 -1/4 (pow.f64 eps 8) (fma.f64 -1/2 (pow.f64 eps 4) (*.f64 -1/3 (pow.f64 eps 6)))) (*.f64 eps eps))
(fma.f64 -1/4 (pow.f64 eps 8) (fma.f64 -1/2 (pow.f64 eps 4) (-.f64 (*.f64 -1/3 (pow.f64 eps 6)) (*.f64 eps eps))))
(-.f64 (fma.f64 -1/2 (pow.f64 eps 4) (fma.f64 -1/3 (pow.f64 eps 6) (*.f64 -1/4 (pow.f64 eps 8)))) (*.f64 eps eps))
(+.f64 (*.f64 -2 (log.f64 (/.f64 1 eps))) (log.f64 -1))
(fma.f64 -2 (neg.f64 (log.f64 eps)) (log.f64 -1))
(+.f64 (log.f64 -1) (*.f64 2 (log.f64 eps)))
(fma.f64 2 (log.f64 eps) (log.f64 -1))
(-.f64 (+.f64 (log.f64 -1) (*.f64 -2 (log.f64 (/.f64 1 eps)))) (/.f64 1 (pow.f64 eps 2)))
(-.f64 (fma.f64 -2 (neg.f64 (log.f64 eps)) (log.f64 -1)) (/.f64 1 (*.f64 eps eps)))
(+.f64 (log.f64 -1) (+.f64 (*.f64 2 (log.f64 eps)) (/.f64 -1 (*.f64 eps eps))))
(-.f64 (fma.f64 2 (log.f64 eps) (log.f64 -1)) (/.f64 1 (*.f64 eps eps)))
(+.f64 (log.f64 -1) (fma.f64 2 (log.f64 eps) (/.f64 -1 (*.f64 eps eps))))
(-.f64 (+.f64 (log.f64 -1) (*.f64 -2 (log.f64 (/.f64 1 eps)))) (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 eps 4))) (/.f64 1 (pow.f64 eps 2))))
(-.f64 (fma.f64 -2 (neg.f64 (log.f64 eps)) (log.f64 -1)) (+.f64 (/.f64 1 (*.f64 eps eps)) (/.f64 1/2 (pow.f64 eps 4))))
(+.f64 (log.f64 -1) (-.f64 (+.f64 (*.f64 2 (log.f64 eps)) (/.f64 -1 (*.f64 eps eps))) (/.f64 1/2 (pow.f64 eps 4))))
(+.f64 (log.f64 -1) (fma.f64 2 (log.f64 eps) (-.f64 (/.f64 -1/2 (pow.f64 eps 4)) (/.f64 1 (*.f64 eps eps)))))
(+.f64 (log.f64 -1) (+.f64 (fma.f64 2 (log.f64 eps) (/.f64 -1 (*.f64 eps eps))) (/.f64 -1/2 (pow.f64 eps 4))))
(-.f64 (+.f64 (log.f64 -1) (*.f64 -2 (log.f64 (/.f64 1 eps)))) (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 eps 4))) (+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 eps 6))) (/.f64 1 (pow.f64 eps 2)))))
(-.f64 (fma.f64 -2 (neg.f64 (log.f64 eps)) (log.f64 -1)) (+.f64 (/.f64 1/2 (pow.f64 eps 4)) (+.f64 (/.f64 1 (*.f64 eps eps)) (/.f64 1/3 (pow.f64 eps 6)))))
(-.f64 (-.f64 (+.f64 (log.f64 -1) (*.f64 2 (log.f64 eps))) (+.f64 (/.f64 1/2 (pow.f64 eps 4)) (/.f64 1/3 (pow.f64 eps 6)))) (/.f64 1 (*.f64 eps eps)))
(+.f64 (log.f64 -1) (+.f64 (-.f64 (fma.f64 2 (log.f64 eps) (/.f64 -1/2 (pow.f64 eps 4))) (/.f64 1/3 (pow.f64 eps 6))) (/.f64 -1 (*.f64 eps eps))))
(+.f64 (fma.f64 2 (log.f64 eps) (log.f64 -1)) (+.f64 (/.f64 -1 (*.f64 eps eps)) (+.f64 (/.f64 -1/2 (pow.f64 eps 4)) (/.f64 -1/3 (pow.f64 eps 6)))))
(+.f64 (*.f64 -2 (log.f64 (/.f64 -1 eps))) (log.f64 -1))
(fma.f64 -2 (log.f64 (/.f64 -1 eps)) (log.f64 -1))
(-.f64 (+.f64 (log.f64 -1) (*.f64 -2 (log.f64 (/.f64 -1 eps)))) (/.f64 1 (pow.f64 eps 2)))
(-.f64 (fma.f64 -2 (log.f64 (/.f64 -1 eps)) (log.f64 -1)) (/.f64 1 (*.f64 eps eps)))
(+.f64 (log.f64 -1) (fma.f64 -2 (log.f64 (/.f64 -1 eps)) (/.f64 -1 (*.f64 eps eps))))
(-.f64 (+.f64 (log.f64 -1) (*.f64 -2 (log.f64 (/.f64 -1 eps)))) (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 eps 4))) (/.f64 1 (pow.f64 eps 2))))
(-.f64 (fma.f64 -2 (log.f64 (/.f64 -1 eps)) (log.f64 -1)) (+.f64 (/.f64 1 (*.f64 eps eps)) (/.f64 1/2 (pow.f64 eps 4))))
(+.f64 (log.f64 -1) (-.f64 (fma.f64 -2 (log.f64 (/.f64 -1 eps)) (/.f64 -1 (*.f64 eps eps))) (/.f64 1/2 (pow.f64 eps 4))))
(+.f64 (log.f64 -1) (-.f64 (fma.f64 -2 (log.f64 (/.f64 -1 eps)) (/.f64 -1/2 (pow.f64 eps 4))) (/.f64 1 (*.f64 eps eps))))
(+.f64 (/.f64 -1 (*.f64 eps eps)) (+.f64 (log.f64 -1) (fma.f64 -2 (log.f64 (/.f64 -1 eps)) (/.f64 -1/2 (pow.f64 eps 4)))))
(-.f64 (+.f64 (log.f64 -1) (*.f64 -2 (log.f64 (/.f64 -1 eps)))) (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 eps 4))) (+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 eps 6))) (/.f64 1 (pow.f64 eps 2)))))
(-.f64 (fma.f64 -2 (log.f64 (/.f64 -1 eps)) (log.f64 -1)) (+.f64 (/.f64 1/2 (pow.f64 eps 4)) (+.f64 (/.f64 1 (*.f64 eps eps)) (/.f64 1/3 (pow.f64 eps 6)))))
(-.f64 (+.f64 (log.f64 -1) (-.f64 (fma.f64 -2 (log.f64 (/.f64 -1 eps)) (/.f64 -1 (*.f64 eps eps))) (/.f64 1/2 (pow.f64 eps 4)))) (/.f64 1/3 (pow.f64 eps 6)))
(+.f64 (log.f64 -1) (+.f64 (-.f64 (fma.f64 -2 (log.f64 (/.f64 -1 eps)) (/.f64 -1 (*.f64 eps eps))) (/.f64 1/3 (pow.f64 eps 6))) (/.f64 -1/2 (pow.f64 eps 4))))
(+.f64 (log.f64 -1) (+.f64 (fma.f64 -2 (log.f64 (/.f64 -1 eps)) (/.f64 -1 (*.f64 eps eps))) (+.f64 (/.f64 -1/2 (pow.f64 eps 4)) (/.f64 -1/3 (pow.f64 eps 6)))))

eval36.0ms (0.7%)

Compiler

Compiled 1802 to 1078 computations (40.2% saved)

prune16.0ms (0.3%)

Pruning

8 alts after pruning (0 fresh and 8 done)

PrunedKeptTotal
New99099
Fresh000
Picked011
Done077
Total998107
Error
0b
Counts
107 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))
58.6b
(log.f64 (*.f64 (*.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps))) (-.f64 1 eps)) (-.f64 1 eps)))
58.6b
(log.f64 (*.f64 (/.f64 1 (+.f64 1 eps)) (-.f64 1 eps)))
0.3b
(*.f64 eps (fma.f64 -2/3 (*.f64 eps eps) -2))
0.0b
(-.f64 (*.f64 2 (log1p.f64 (neg.f64 eps))) (log1p.f64 (*.f64 eps (neg.f64 eps))))
0.6b
(*.f64 -2 eps)
58.6b
(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
0.3b
(+.f64 (*.f64 (*.f64 -2/3 (*.f64 eps eps)) eps) (*.f64 -2 eps))
Compiler

Compiled 81 to 59 computations (27.2% saved)

regimes35.0ms (0.6%)

Counts
8 → 1
Calls
Call 1
Inputs
(*.f64 -2 eps)
(+.f64 (*.f64 (*.f64 -2/3 (*.f64 eps eps)) eps) (*.f64 -2 eps))
(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
(*.f64 eps (fma.f64 -2/3 (*.f64 eps eps) -2))
(log.f64 (*.f64 (/.f64 1 (+.f64 1 eps)) (-.f64 1 eps)))
(log.f64 (*.f64 (*.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps))) (-.f64 1 eps)) (-.f64 1 eps)))
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))
(-.f64 (*.f64 2 (log1p.f64 (neg.f64 eps))) (log1p.f64 (*.f64 eps (neg.f64 eps))))
Outputs
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))
Calls

3 calls:

5.0ms
eps
2.0ms
(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
2.0ms
(/.f64 (-.f64 1 eps) (+.f64 1 eps))
Results
ErrorSegmentsBranch
0.0b1eps
0.0b1(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
0.0b1(/.f64 (-.f64 1 eps) (+.f64 1 eps))
Compiler

Compiled 93 to 62 computations (33.3% saved)

regimes13.0ms (0.2%)

Accuracy

Total -58.8b remaining (-23086.2%)

Threshold costs -58.8b (-23086.2%)

Counts
6 → 1
Calls
Call 1
Inputs
(*.f64 -2 eps)
(+.f64 (*.f64 (*.f64 -2/3 (*.f64 eps eps)) eps) (*.f64 -2 eps))
(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
(*.f64 eps (fma.f64 -2/3 (*.f64 eps eps) -2))
(log.f64 (*.f64 (/.f64 1 (+.f64 1 eps)) (-.f64 1 eps)))
(log.f64 (*.f64 (*.f64 (/.f64 1 (-.f64 1 (*.f64 eps eps))) (-.f64 1 eps)) (-.f64 1 eps)))
Outputs
(+.f64 (*.f64 (*.f64 -2/3 (*.f64 eps eps)) eps) (*.f64 -2 eps))
Calls

3 calls:

6.0ms
eps
2.0ms
(/.f64 (-.f64 1 eps) (+.f64 1 eps))
2.0ms
(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
Results
ErrorSegmentsBranch
0.3b1eps
0.3b1(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
0.3b1(/.f64 (-.f64 1 eps) (+.f64 1 eps))
Compiler

Compiled 76 to 53 computations (30.3% saved)

simplify3.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01330
12330
22830
33130
43230
Stop Event
saturated
Calls
Call 1
Inputs
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))
(+.f64 (*.f64 (*.f64 -2/3 (*.f64 eps eps)) eps) (*.f64 -2 eps))
(*.f64 -2 eps)
Outputs
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))
(+.f64 (*.f64 (*.f64 -2/3 (*.f64 eps eps)) eps) (*.f64 -2 eps))
(+.f64 (*.f64 eps (*.f64 -2/3 (*.f64 eps eps))) (*.f64 eps -2))
(*.f64 -2 eps)
(*.f64 eps -2)

end36.0ms (0.7%)

Stop Event
done
Compiler

Compiled 44 to 30 computations (31.8% saved)

Profiling

Loading profile data...