Details

Time bar (total: 4.9s)

analyze4.0ms (0.1%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%100%0%0%0%0%0
0%0%100%0%0%0%0%1
0%0%100%0%0%0%0%2
0%0%50%0%25%25%0%3
50%25%25%0%25%25%0%4
75%37.5%12.5%0%25%25%0%5
87.5%43.7%6.2%0%25%25%0%6
93.8%46.9%3.1%0%25%25%0%7
96.9%48.4%1.6%0%25%25%0%8
98.4%49.2%0.8%0%25%25%0%9
99.2%49.6%0.4%0%25%25%0%10
99.6%49.8%0.2%0%25%25%0%11
99.8%49.9%0.1%0%25%25%0%12
Compiler

Compiled 10 to 8 computations (20% saved)

sample3.4s (69.9%)

Results
2.4s4250×body1024valid
537.0ms2004×body512valid
282.0ms397×body2048valid
207.0ms1605×body256valid
0.0msbody256invalid
Bogosity

preprocess186.0ms (3.8%)

Algorithm
egg-herbie
Rules
1088×fma-neg_binary64
890×fma-def_binary64
719×distribute-rgt-in_binary64
491×distribute-lft-in_binary64
331×sub-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0712
11810
22810
34110
47110
510310
615910
729210
860410
9103710
10144410
11200210
12274010
13383510
14467010
15476810
16480010
17480010
18639310
19674810
20682610
21683410
22684210
23684210
24704210
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)

simplify178.0ms (3.6%)

Algorithm
egg-herbie
Rules
1088×fma-neg_binary64
890×fma-def_binary64
719×distribute-rgt-in_binary64
491×distribute-lft-in_binary64
331×sub-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0712
11810
22810
34110
47110
510310
615910
729210
860410
9103710
10144410
11200210
12274010
13383510
14467010
15476810
16480010
17480010
18639310
19674810
20682610
21683410
22684210
23684210
24704210
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
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.8b
(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
Compiler

Compiled 16 to 12 computations (25% saved)

localize10.0ms (0.2%)

Local error

Found 2 expressions with local error:

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

Compiled 24 to 17 computations (29.2% saved)

series15.0ms (0.3%)

Counts
2 → 16
Calls

6 calls:

TimeVariablePointExpression
1.0ms
eps
@inf
(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
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)))
0.0ms
eps
@inf
(/.f64 (-.f64 1 eps) (+.f64 1 eps))
0.0ms
eps
@-inf
(/.f64 (-.f64 1 eps) (+.f64 1 eps))
Compiler

Compiled 1380 to 1180 computations (14.5% saved)

rewrite52.0ms (1.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
2215620
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 (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 (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 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 (+.f64 (neg.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 (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 expm1.f64 (log1p.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))))))) (#(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 +.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 (+.f64 (neg.f64 eps) -1)))))) (#(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 (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 neg.f64 (/.f64 (-.f64 1 eps) (+.f64 (neg.f64 eps) -1)))))) (#(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 expm1.f64 (log1p.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))))))) (#(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)))))))

simplify41.0ms (0.8%)

Algorithm
egg-herbie
Rules
741×fma-def_binary64
369×distribute-rgt-in_binary64
360×distribute-lft-in_binary64
345×unswap-sqr_binary64
281×associate-/l*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02041087
15541021
218711012
Stop Event
node limit
Counts
80 → 127
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)))))
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 (*.f64 2 (/.f64 1 eps)) (*.f64 -2 (pow.f64 (/.f64 1 eps) 2))) 1)
(-.f64 (+.f64 (*.f64 2 (pow.f64 (/.f64 1 eps) 3)) (+.f64 (*.f64 2 (/.f64 1 eps)) (*.f64 -2 (pow.f64 (/.f64 1 eps) 2)))) 1)
-1
(-.f64 (*.f64 2 (/.f64 1 eps)) 1)
(-.f64 (+.f64 (*.f64 2 (/.f64 1 eps)) (*.f64 -2 (pow.f64 (/.f64 -1 eps) 2))) 1)
(-.f64 (+.f64 (*.f64 2 (/.f64 1 eps)) (+.f64 (*.f64 -2 (pow.f64 (/.f64 -1 eps) 3)) (*.f64 -2 (pow.f64 (/.f64 -1 eps) 2)))) 1)
(+.f64 0 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))
(+.f64 (log1p.f64 (neg.f64 eps)) (neg.f64 (log1p.f64 eps)))
(+.f64 (log.f64 (sqrt.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))) (log.f64 (sqrt.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))))
(+.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)))))
(-.f64 0 (-.f64 (log1p.f64 eps) (log1p.f64 (neg.f64 eps))))
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))
(-.f64 (+.f64 1 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))) 1)
(-.f64 (log.f64 (neg.f64 (-.f64 1 eps))) (log.f64 (+.f64 (neg.f64 eps) -1)))
(*.f64 1 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))
(*.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)) 1)
(*.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))
(*.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))))
(*.f64 (sqrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))) (sqrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))))
(/.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)))))
(/.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)))
(pow.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)) 1)
(pow.f64 (pow.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)) 3) 1/3)
(pow.f64 (cbrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))) 3)
(pow.f64 (sqrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))) 2)
(neg.f64 (-.f64 (log1p.f64 eps) (log1p.f64 (neg.f64 eps))))
(sqrt.f64 (pow.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)) 2))
(cbrt.f64 (pow.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)) 3))
(expm1.f64 (log1p.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))))
(log1p.f64 (expm1.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))))
(exp.f64 (log.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))))
(+.f64 1 (expm1.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))))
(+.f64 (/.f64 1 (+.f64 1 eps)) (neg.f64 (/.f64 eps (+.f64 1 eps))))
(-.f64 (/.f64 1 (+.f64 1 eps)) (/.f64 eps (+.f64 1 eps)))
(-.f64 (+.f64 1 (/.f64 (-.f64 1 eps) (+.f64 1 eps))) 1)
(*.f64 1 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
(*.f64 (-.f64 1 eps) (/.f64 1 (+.f64 1 eps)))
(*.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)) 1)
(*.f64 (cbrt.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))) (pow.f64 (cbrt.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))) 2))
(*.f64 (pow.f64 (cbrt.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))) 2) (cbrt.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))))
(*.f64 (pow.f64 (cbrt.f64 (-.f64 1 eps)) 2) (*.f64 (cbrt.f64 (-.f64 1 eps)) (/.f64 1 (+.f64 1 eps))))
(*.f64 (sqrt.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))) (sqrt.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))))
(*.f64 (sqrt.f64 (-.f64 1 eps)) (*.f64 (sqrt.f64 (-.f64 1 eps)) (/.f64 1 (+.f64 1 eps))))
(*.f64 (neg.f64 (-.f64 1 eps)) (/.f64 1 (+.f64 (neg.f64 eps) -1)))
(*.f64 (/.f64 1 (+.f64 1 eps)) (-.f64 1 eps))
(*.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 1 eps)) 2) 1) (/.f64 (cbrt.f64 (-.f64 1 eps)) (+.f64 1 eps)))
(*.f64 (/.f64 (sqrt.f64 (-.f64 1 eps)) 1) (/.f64 (sqrt.f64 (-.f64 1 eps)) (+.f64 1 eps)))
(*.f64 (/.f64 1 (pow.f64 (cbrt.f64 (+.f64 1 eps)) 2)) (/.f64 (-.f64 1 eps) (cbrt.f64 (+.f64 1 eps))))
(*.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))))
(*.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))))
(*.f64 (/.f64 1 (sqrt.f64 (+.f64 1 eps))) (/.f64 (-.f64 1 eps) (sqrt.f64 (+.f64 1 eps))))
(*.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))))
(*.f64 (/.f64 (-.f64 1 eps) (-.f64 1 (*.f64 eps eps))) (-.f64 1 eps))
(*.f64 (/.f64 (-.f64 1 eps) (+.f64 1 (pow.f64 eps 3))) (+.f64 1 (-.f64 (*.f64 eps eps) eps)))
(pow.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)) 1)
(pow.f64 (E.f64) (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))
(pow.f64 (pow.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)) 3) 1/3)
(pow.f64 (cbrt.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))) 3)
(pow.f64 (sqrt.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))) 2)
(pow.f64 (/.f64 (+.f64 1 eps) (-.f64 1 eps)) -1)
(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))))
(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))))
(neg.f64 (/.f64 (-.f64 1 eps) (+.f64 (neg.f64 eps) -1)))
(sqrt.f64 (pow.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)) 2))
(log.f64 (exp.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))))
(cbrt.f64 (pow.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)) 3))
(cbrt.f64 (/.f64 (pow.f64 (-.f64 1 eps) 3) (pow.f64 (+.f64 1 eps) 3)))
(expm1.f64 (log1p.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))))
(log1p.f64 (expm1.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))))
(exp.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))
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)))
(+.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)))))
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))
(+.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)))
-1
(-.f64 (*.f64 2 (/.f64 1 eps)) 1)
(+.f64 (/.f64 2 eps) -1)
(+.f64 -1 (/.f64 2 eps))
(-.f64 (+.f64 (*.f64 2 (/.f64 1 eps)) (*.f64 -2 (pow.f64 (/.f64 1 eps) 2))) 1)
(+.f64 (/.f64 2 eps) (-.f64 (*.f64 -2 (pow.f64 (/.f64 1 eps) 2)) 1))
(+.f64 -1 (fma.f64 -2 (pow.f64 (/.f64 1 eps) 2) (/.f64 2 eps)))
(+.f64 -1 (+.f64 (/.f64 2 eps) (/.f64 (/.f64 -2 eps) eps)))
(-.f64 (+.f64 (*.f64 2 (pow.f64 (/.f64 1 eps) 3)) (+.f64 (*.f64 2 (/.f64 1 eps)) (*.f64 -2 (pow.f64 (/.f64 1 eps) 2)))) 1)
(+.f64 (fma.f64 2 (/.f64 1 (pow.f64 eps 3)) (+.f64 (/.f64 2 eps) (*.f64 -2 (pow.f64 (/.f64 1 eps) 2)))) -1)
(+.f64 (fma.f64 -2 (pow.f64 (/.f64 1 eps) 2) (/.f64 2 eps)) (-.f64 (/.f64 2 (pow.f64 eps 3)) 1))
(+.f64 (+.f64 -1 (/.f64 2 eps)) (+.f64 (/.f64 (/.f64 -2 eps) eps) (/.f64 2 (pow.f64 eps 3))))
-1
(-.f64 (*.f64 2 (/.f64 1 eps)) 1)
(+.f64 (/.f64 2 eps) -1)
(+.f64 -1 (/.f64 2 eps))
(-.f64 (+.f64 (*.f64 2 (/.f64 1 eps)) (*.f64 -2 (pow.f64 (/.f64 -1 eps) 2))) 1)
(+.f64 (/.f64 2 eps) (-.f64 (*.f64 -2 (pow.f64 (/.f64 1 eps) 2)) 1))
(+.f64 -1 (fma.f64 -2 (pow.f64 (/.f64 1 eps) 2) (/.f64 2 eps)))
(+.f64 -1 (+.f64 (/.f64 2 eps) (/.f64 (/.f64 -2 eps) eps)))
(-.f64 (+.f64 (*.f64 2 (/.f64 1 eps)) (+.f64 (*.f64 -2 (pow.f64 (/.f64 -1 eps) 3)) (*.f64 -2 (pow.f64 (/.f64 -1 eps) 2)))) 1)
(+.f64 (fma.f64 2 (/.f64 1 (pow.f64 eps 3)) (+.f64 (/.f64 2 eps) (*.f64 -2 (pow.f64 (/.f64 1 eps) 2)))) -1)
(+.f64 (fma.f64 -2 (pow.f64 (/.f64 1 eps) 2) (/.f64 2 eps)) (-.f64 (/.f64 2 (pow.f64 eps 3)) 1))
(+.f64 (+.f64 -1 (/.f64 2 eps)) (+.f64 (/.f64 (/.f64 -2 eps) eps) (/.f64 2 (pow.f64 eps 3))))
(+.f64 0 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))
(+.f64 (log1p.f64 (neg.f64 eps)) (neg.f64 (log1p.f64 eps)))
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))
(+.f64 (log.f64 (sqrt.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))) (log.f64 (sqrt.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))))
(*.f64 2 (log.f64 (sqrt.f64 (/.f64 (-.f64 1 eps) (+.f64 eps 1)))))
(+.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)))))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (/.f64 (-.f64 1 eps) (+.f64 eps 1))) 2)) (log.f64 (cbrt.f64 (/.f64 (-.f64 1 eps) (+.f64 eps 1)))))
(*.f64 3 (log.f64 (cbrt.f64 (/.f64 (-.f64 1 eps) (+.f64 eps 1)))))
(-.f64 0 (-.f64 (log1p.f64 eps) (log1p.f64 (neg.f64 eps))))
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))
(-.f64 (+.f64 1 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))) 1)
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))
(-.f64 (log.f64 (neg.f64 (-.f64 1 eps))) (log.f64 (+.f64 (neg.f64 eps) -1)))
(-.f64 (log.f64 (neg.f64 (-.f64 1 eps))) (log.f64 (+.f64 -1 (neg.f64 eps))))
(-.f64 (log.f64 (+.f64 -1 eps)) (log.f64 (-.f64 -1 eps)))
(-.f64 (log.f64 (-.f64 eps 1)) (log.f64 (-.f64 -1 eps)))
(*.f64 1 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))
(*.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)) 1)
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))
(*.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))
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))
(*.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))))
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))
(*.f64 (sqrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))) (sqrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))))
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))
(/.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)))))
(/.f64 (-.f64 (pow.f64 (log1p.f64 (neg.f64 eps)) 3) (pow.f64 (log1p.f64 eps) 3)) (fma.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 (neg.f64 eps)) (*.f64 (log1p.f64 eps) (+.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))))
(/.f64 (-.f64 (pow.f64 (log1p.f64 (neg.f64 eps)) 3) (pow.f64 (log1p.f64 eps) 3)) (fma.f64 (log1p.f64 eps) (log1p.f64 eps) (*.f64 (log1p.f64 (neg.f64 eps)) (+.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))))
(/.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)))
(/.f64 (*.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)) (+.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))) (+.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))
(pow.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)) 1)
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))
(pow.f64 (pow.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)) 3) 1/3)
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))
(pow.f64 (cbrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))) 3)
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))
(pow.f64 (sqrt.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))) 2)
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))
(neg.f64 (-.f64 (log1p.f64 eps) (log1p.f64 (neg.f64 eps))))
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))
(sqrt.f64 (pow.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)) 2))
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))
(cbrt.f64 (pow.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)) 3))
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))
(expm1.f64 (log1p.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))))
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))
(log1p.f64 (expm1.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))))
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))
(exp.f64 (log.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))))
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))
(+.f64 1 (expm1.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))))
(+.f64 (/.f64 1 (+.f64 1 eps)) (neg.f64 (/.f64 eps (+.f64 1 eps))))
(/.f64 (-.f64 1 eps) (+.f64 eps 1))
(-.f64 (/.f64 1 (+.f64 1 eps)) (/.f64 eps (+.f64 1 eps)))
(/.f64 (-.f64 1 eps) (+.f64 eps 1))
(-.f64 (+.f64 1 (/.f64 (-.f64 1 eps) (+.f64 1 eps))) 1)
(/.f64 (-.f64 1 eps) (+.f64 eps 1))
(*.f64 1 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
(/.f64 (-.f64 1 eps) (+.f64 eps 1))
(*.f64 (-.f64 1 eps) (/.f64 1 (+.f64 1 eps)))
(/.f64 (-.f64 1 eps) (+.f64 eps 1))
(*.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)) 1)
(/.f64 (-.f64 1 eps) (+.f64 eps 1))
(*.f64 (cbrt.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))) (pow.f64 (cbrt.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))) 2))
(/.f64 (-.f64 1 eps) (+.f64 eps 1))
(*.f64 (pow.f64 (cbrt.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))) 2) (cbrt.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))))
(/.f64 (-.f64 1 eps) (+.f64 eps 1))
(*.f64 (pow.f64 (cbrt.f64 (-.f64 1 eps)) 2) (*.f64 (cbrt.f64 (-.f64 1 eps)) (/.f64 1 (+.f64 1 eps))))
(/.f64 (-.f64 1 eps) (+.f64 eps 1))
(*.f64 (sqrt.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))) (sqrt.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))))
(/.f64 (-.f64 1 eps) (+.f64 eps 1))
(*.f64 (sqrt.f64 (-.f64 1 eps)) (*.f64 (sqrt.f64 (-.f64 1 eps)) (/.f64 1 (+.f64 1 eps))))
(/.f64 (-.f64 1 eps) (+.f64 eps 1))
(*.f64 (neg.f64 (-.f64 1 eps)) (/.f64 1 (+.f64 (neg.f64 eps) -1)))
(*.f64 (neg.f64 (-.f64 1 eps)) (/.f64 1 (+.f64 -1 (neg.f64 eps))))
(/.f64 (+.f64 -1 eps) (-.f64 -1 eps))
(/.f64 (-.f64 eps 1) (-.f64 -1 eps))
(*.f64 (/.f64 1 (+.f64 1 eps)) (-.f64 1 eps))
(/.f64 (-.f64 1 eps) (+.f64 eps 1))
(*.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 1 eps)) 2) 1) (/.f64 (cbrt.f64 (-.f64 1 eps)) (+.f64 1 eps)))
(/.f64 (-.f64 1 eps) (+.f64 eps 1))
(*.f64 (/.f64 (sqrt.f64 (-.f64 1 eps)) 1) (/.f64 (sqrt.f64 (-.f64 1 eps)) (+.f64 1 eps)))
(/.f64 (-.f64 1 eps) (+.f64 eps 1))
(*.f64 (/.f64 1 (pow.f64 (cbrt.f64 (+.f64 1 eps)) 2)) (/.f64 (-.f64 1 eps) (cbrt.f64 (+.f64 1 eps))))
(*.f64 (/.f64 1 (pow.f64 (cbrt.f64 (+.f64 eps 1)) 2)) (/.f64 (-.f64 1 eps) (cbrt.f64 (+.f64 eps 1))))
(/.f64 (/.f64 (-.f64 1 eps) (cbrt.f64 (+.f64 eps 1))) (pow.f64 (cbrt.f64 (+.f64 eps 1)) 2))
(/.f64 (-.f64 1 eps) (*.f64 (pow.f64 (cbrt.f64 (+.f64 eps 1)) 2) (cbrt.f64 (+.f64 eps 1))))
(*.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))))
(*.f64 (cbrt.f64 (/.f64 (-.f64 1 eps) (+.f64 eps 1))) (/.f64 (pow.f64 (cbrt.f64 (-.f64 1 eps)) 2) (pow.f64 (cbrt.f64 (+.f64 eps 1)) 2)))
(/.f64 (*.f64 (cbrt.f64 (/.f64 (-.f64 1 eps) (+.f64 eps 1))) (pow.f64 (cbrt.f64 (-.f64 1 eps)) 2)) (pow.f64 (cbrt.f64 (+.f64 eps 1)) 2))
(*.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))))
(*.f64 (/.f64 1 (pow.f64 (cbrt.f64 (+.f64 eps 1)) 2)) (/.f64 (-.f64 1 eps) (cbrt.f64 (+.f64 eps 1))))
(/.f64 (/.f64 (-.f64 1 eps) (cbrt.f64 (+.f64 eps 1))) (pow.f64 (cbrt.f64 (+.f64 eps 1)) 2))
(/.f64 (-.f64 1 eps) (*.f64 (pow.f64 (cbrt.f64 (+.f64 eps 1)) 2) (cbrt.f64 (+.f64 eps 1))))
(*.f64 (/.f64 1 (sqrt.f64 (+.f64 1 eps))) (/.f64 (-.f64 1 eps) (sqrt.f64 (+.f64 1 eps))))
(*.f64 (/.f64 1 (sqrt.f64 (+.f64 eps 1))) (/.f64 (-.f64 1 eps) (sqrt.f64 (+.f64 eps 1))))
(/.f64 (/.f64 (-.f64 1 eps) (sqrt.f64 (+.f64 eps 1))) (sqrt.f64 (+.f64 eps 1)))
(/.f64 (-.f64 1 eps) (*.f64 (hypot.f64 1 (sqrt.f64 eps)) (hypot.f64 1 (sqrt.f64 eps))))
(*.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))))
(*.f64 (/.f64 1 (sqrt.f64 (+.f64 eps 1))) (/.f64 (-.f64 1 eps) (sqrt.f64 (+.f64 eps 1))))
(/.f64 (/.f64 (-.f64 1 eps) (sqrt.f64 (+.f64 eps 1))) (sqrt.f64 (+.f64 eps 1)))
(/.f64 (-.f64 1 eps) (*.f64 (hypot.f64 1 (sqrt.f64 eps)) (hypot.f64 1 (sqrt.f64 eps))))
(*.f64 (/.f64 (-.f64 1 eps) (-.f64 1 (*.f64 eps eps))) (-.f64 1 eps))
(*.f64 (-.f64 1 eps) (/.f64 (-.f64 1 eps) (-.f64 1 (*.f64 eps eps))))
(/.f64 (-.f64 1 eps) (/.f64 (-.f64 1 (*.f64 eps eps)) (-.f64 1 eps)))
(/.f64 (pow.f64 (cbrt.f64 (-.f64 1 eps)) 6) (-.f64 1 (*.f64 eps eps)))
(*.f64 (/.f64 (-.f64 1 eps) (+.f64 1 (pow.f64 eps 3))) (+.f64 1 (-.f64 (*.f64 eps eps) eps)))
(*.f64 (/.f64 (-.f64 1 eps) (+.f64 (pow.f64 eps 3) 1)) (+.f64 1 (-.f64 (*.f64 eps eps) eps)))
(/.f64 (*.f64 (-.f64 1 eps) (+.f64 1 (*.f64 eps (+.f64 eps -1)))) (+.f64 (pow.f64 eps 3) 1))
(/.f64 (-.f64 1 eps) (/.f64 (+.f64 (pow.f64 eps 3) 1) (-.f64 (fma.f64 eps eps 1) eps)))
(pow.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)) 1)
(/.f64 (-.f64 1 eps) (+.f64 eps 1))
(pow.f64 (E.f64) (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))
(exp.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))
(pow.f64 (pow.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)) 3) 1/3)
(/.f64 (-.f64 1 eps) (+.f64 eps 1))
(pow.f64 (cbrt.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))) 3)
(/.f64 (-.f64 1 eps) (+.f64 eps 1))
(pow.f64 (sqrt.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))) 2)
(/.f64 (-.f64 1 eps) (+.f64 eps 1))
(pow.f64 (/.f64 (+.f64 1 eps) (-.f64 1 eps)) -1)
(/.f64 (-.f64 1 eps) (+.f64 eps 1))
(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))))
(pow.f64 (E.f64) (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))
(exp.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))
(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))))
(pow.f64 (E.f64) (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))
(exp.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))
(neg.f64 (/.f64 (-.f64 1 eps) (+.f64 (neg.f64 eps) -1)))
(*.f64 (neg.f64 (-.f64 1 eps)) (/.f64 1 (+.f64 -1 (neg.f64 eps))))
(/.f64 (+.f64 -1 eps) (-.f64 -1 eps))
(/.f64 (-.f64 eps 1) (-.f64 -1 eps))
(sqrt.f64 (pow.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)) 2))
(/.f64 (-.f64 1 eps) (+.f64 eps 1))
(log.f64 (exp.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))))
(/.f64 (-.f64 1 eps) (+.f64 eps 1))
(cbrt.f64 (pow.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)) 3))
(/.f64 (-.f64 1 eps) (+.f64 eps 1))
(cbrt.f64 (/.f64 (pow.f64 (-.f64 1 eps) 3) (pow.f64 (+.f64 1 eps) 3)))
(/.f64 (-.f64 1 eps) (+.f64 eps 1))
(expm1.f64 (log1p.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))))
(/.f64 (-.f64 1 eps) (+.f64 eps 1))
(log1p.f64 (expm1.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps))))
(/.f64 (-.f64 1 eps) (+.f64 eps 1))
(exp.f64 (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))
(pow.f64 (E.f64) (-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps)))

localize7.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(log1p.f64 eps)
Compiler

Compiled 15 to 5 computations (66.7% saved)

series8.0ms (0.2%)

Counts
1 → 4
Calls

3 calls:

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

Compiled 870 to 720 computations (17.2% saved)

rewrite70.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
383×expm1-udef_binary64
383×log1p-udef_binary64
255×associate-*r*_binary64
250×pow1_binary64
241×add-sqr-sqrt_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
033
1573
26413
369263
Stop Event
node limit
Counts
1 → 48
Calls
Call 1
Inputs
(log1p.f64 eps)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (log1p.f64 eps) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (log1p.f64 eps))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (+.f64 eps 1)) 2)) (log.f64 (cbrt.f64 (+.f64 eps 1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (+.f64 eps 1))) (log.f64 (sqrt.f64 (+.f64 eps 1))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log1p.f64 (pow.f64 eps 3)) (log1p.f64 (-.f64 (*.f64 eps eps) eps)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (log1p.f64 eps) 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (-.f64 1 (*.f64 eps eps))) (log.f64 (-.f64 1 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (log1p.f64 eps) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (log1p.f64 eps))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (log1p.f64 eps)) (pow.f64 (cbrt.f64 (log1p.f64 eps)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (log1p.f64 eps)) 2) (cbrt.f64 (log1p.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (log1p.f64 eps)) (sqrt.f64 (log1p.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (log1p.f64 eps))) 2) (*.f64 (cbrt.f64 (cbrt.f64 (log1p.f64 eps))) (pow.f64 (cbrt.f64 (log1p.f64 eps)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (log1p.f64 eps) 1/6) (*.f64 (pow.f64 (log1p.f64 eps) 1/6) (pow.f64 (cbrt.f64 (log1p.f64 eps)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 eps)) 4)) (*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (log1p.f64 eps))) 2) (cbrt.f64 (log1p.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (log1p.f64 eps) 1/4) (sqrt.f64 (pow.f64 (log1p.f64 eps) 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (log1p.f64 eps) 1/4) (*.f64 (pow.f64 (log1p.f64 eps) 1/4) (sqrt.f64 (log1p.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (log1p.f64 eps)) (pow.f64 (log1p.f64 eps) 1/4)) (pow.f64 (log1p.f64 eps) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (log1p.f64 eps) 5/2)) (pow.f64 (log1p.f64 eps) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (pow.f64 (cbrt.f64 (log1p.f64 eps)) 4) 2)) (cbrt.f64 (cbrt.f64 (log1p.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 eps)) 5)) (pow.f64 (log1p.f64 eps) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (log1p.f64 eps) 3/2)) (pow.f64 (log1p.f64 eps) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (log1p.f64 eps))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (pow.f64 (cbrt.f64 (log1p.f64 eps)) 4) 2) 1/3) (cbrt.f64 (cbrt.f64 (log1p.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (log1p.f64 eps) 5/2) 1/3) (pow.f64 (log1p.f64 eps) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (log1p.f64 eps)) (cbrt.f64 (log1p.f64 eps))) (pow.f64 (log1p.f64 eps) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (log1p.f64 eps)) (cbrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 eps)) 4))) (pow.f64 (cbrt.f64 (cbrt.f64 (log1p.f64 eps))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (log1p.f64 eps)) 2) (pow.f64 (cbrt.f64 (cbrt.f64 (log1p.f64 eps))) 2)) (cbrt.f64 (cbrt.f64 (log1p.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (log1p.f64 eps)) 2) (pow.f64 (log1p.f64 eps) 1/6)) (pow.f64 (log1p.f64 eps) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (+.f64 (log1p.f64 eps) 1) 3) 1) (+.f64 (*.f64 (+.f64 (log1p.f64 eps) 1) (+.f64 (log1p.f64 eps) 1)) (+.f64 1 (+.f64 (log1p.f64 eps) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (+.f64 (log1p.f64 eps) 1) (+.f64 (log1p.f64 eps) 1)) 1) (+.f64 (+.f64 (log1p.f64 eps) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (log1p.f64 eps) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (log1p.f64 eps) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (log1p.f64 eps) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (log1p.f64 eps)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (log1p.f64 eps)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (E.f64) (log.f64 (log1p.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (log1p.f64 eps)))) (sqrt.f64 (log.f64 (log1p.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (log1p.f64 eps))) 2)) (cbrt.f64 (log.f64 (log1p.f64 eps))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (log1p.f64 eps) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (log1p.f64 eps))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 eps 1))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (log1p.f64 eps) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (log1p.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (log1p.f64 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (log1p.f64 eps))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (log1p.f64 eps))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (log1p.f64 eps))) 2))))))

simplify41.0ms (0.8%)

Algorithm
egg-herbie
Rules
560×fma-def_binary64
304×times-frac_binary64
298×associate--l+_binary64
253×log-prod_binary64
253×fma-neg_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0146458
1342438
2995429
34138413
Stop Event
node limit
Counts
52 → 79
Calls
Call 1
Inputs
eps
(+.f64 (*.f64 -1/2 (pow.f64 eps 2)) eps)
(+.f64 (*.f64 -1/2 (pow.f64 eps 2)) (+.f64 eps (*.f64 1/3 (pow.f64 eps 3))))
(+.f64 (*.f64 -1/2 (pow.f64 eps 2)) (+.f64 eps (+.f64 (*.f64 1/3 (pow.f64 eps 3)) (*.f64 -1/4 (pow.f64 eps 4)))))
(+.f64 (+.f64 (log1p.f64 eps) 1) -1)
(+.f64 0 (log1p.f64 eps))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (+.f64 eps 1)) 2)) (log.f64 (cbrt.f64 (+.f64 eps 1))))
(+.f64 (log.f64 (sqrt.f64 (+.f64 eps 1))) (log.f64 (sqrt.f64 (+.f64 eps 1))))
(-.f64 (log1p.f64 (pow.f64 eps 3)) (log1p.f64 (-.f64 (*.f64 eps eps) eps)))
(-.f64 (+.f64 (log1p.f64 eps) 1) 1)
(-.f64 (log.f64 (-.f64 1 (*.f64 eps eps))) (log.f64 (-.f64 1 eps)))
(*.f64 (log1p.f64 eps) 1)
(*.f64 1 (log1p.f64 eps))
(*.f64 (cbrt.f64 (log1p.f64 eps)) (pow.f64 (cbrt.f64 (log1p.f64 eps)) 2))
(*.f64 (pow.f64 (cbrt.f64 (log1p.f64 eps)) 2) (cbrt.f64 (log1p.f64 eps)))
(*.f64 (sqrt.f64 (log1p.f64 eps)) (sqrt.f64 (log1p.f64 eps)))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (log1p.f64 eps))) 2) (*.f64 (cbrt.f64 (cbrt.f64 (log1p.f64 eps))) (pow.f64 (cbrt.f64 (log1p.f64 eps)) 2)))
(*.f64 (pow.f64 (log1p.f64 eps) 1/6) (*.f64 (pow.f64 (log1p.f64 eps) 1/6) (pow.f64 (cbrt.f64 (log1p.f64 eps)) 2)))
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 eps)) 4)) (*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (log1p.f64 eps))) 2) (cbrt.f64 (log1p.f64 eps))))
(*.f64 (pow.f64 (log1p.f64 eps) 1/4) (sqrt.f64 (pow.f64 (log1p.f64 eps) 3/2)))
(*.f64 (pow.f64 (log1p.f64 eps) 1/4) (*.f64 (pow.f64 (log1p.f64 eps) 1/4) (sqrt.f64 (log1p.f64 eps))))
(*.f64 (*.f64 (sqrt.f64 (log1p.f64 eps)) (pow.f64 (log1p.f64 eps) 1/4)) (pow.f64 (log1p.f64 eps) 1/4))
(*.f64 (cbrt.f64 (pow.f64 (log1p.f64 eps) 5/2)) (pow.f64 (log1p.f64 eps) 1/6))
(*.f64 (cbrt.f64 (pow.f64 (pow.f64 (cbrt.f64 (log1p.f64 eps)) 4) 2)) (cbrt.f64 (cbrt.f64 (log1p.f64 eps))))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 eps)) 5)) (pow.f64 (log1p.f64 eps) 1/6))
(*.f64 (sqrt.f64 (pow.f64 (log1p.f64 eps) 3/2)) (pow.f64 (log1p.f64 eps) 1/4))
(*.f64 (pow.f64 1 1/3) (log1p.f64 eps))
(*.f64 (pow.f64 (pow.f64 (pow.f64 (cbrt.f64 (log1p.f64 eps)) 4) 2) 1/3) (cbrt.f64 (cbrt.f64 (log1p.f64 eps))))
(*.f64 (pow.f64 (pow.f64 (log1p.f64 eps) 5/2) 1/3) (pow.f64 (log1p.f64 eps) 1/6))
(*.f64 (*.f64 (sqrt.f64 (log1p.f64 eps)) (cbrt.f64 (log1p.f64 eps))) (pow.f64 (log1p.f64 eps) 1/6))
(*.f64 (*.f64 (cbrt.f64 (log1p.f64 eps)) (cbrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 eps)) 4))) (pow.f64 (cbrt.f64 (cbrt.f64 (log1p.f64 eps))) 2))
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (log1p.f64 eps)) 2) (pow.f64 (cbrt.f64 (cbrt.f64 (log1p.f64 eps))) 2)) (cbrt.f64 (cbrt.f64 (log1p.f64 eps))))
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (log1p.f64 eps)) 2) (pow.f64 (log1p.f64 eps) 1/6)) (pow.f64 (log1p.f64 eps) 1/6))
(/.f64 (-.f64 (pow.f64 (+.f64 (log1p.f64 eps) 1) 3) 1) (+.f64 (*.f64 (+.f64 (log1p.f64 eps) 1) (+.f64 (log1p.f64 eps) 1)) (+.f64 1 (+.f64 (log1p.f64 eps) 1))))
(/.f64 (-.f64 (*.f64 (+.f64 (log1p.f64 eps) 1) (+.f64 (log1p.f64 eps) 1)) 1) (+.f64 (+.f64 (log1p.f64 eps) 1) 1))
(pow.f64 (log1p.f64 eps) 1)
(pow.f64 (pow.f64 (log1p.f64 eps) 2) 1/2)
(pow.f64 (pow.f64 (log1p.f64 eps) 3) 1/3)
(pow.f64 (cbrt.f64 (log1p.f64 eps)) 3)
(pow.f64 (sqrt.f64 (log1p.f64 eps)) 2)
(pow.f64 (E.f64) (log.f64 (log1p.f64 eps)))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (log1p.f64 eps)))) (sqrt.f64 (log.f64 (log1p.f64 eps))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (log1p.f64 eps))) 2)) (cbrt.f64 (log.f64 (log1p.f64 eps))))
(sqrt.f64 (pow.f64 (log1p.f64 eps) 2))
(fabs.f64 (log1p.f64 eps))
(log.f64 (+.f64 eps 1))
(cbrt.f64 (pow.f64 (log1p.f64 eps) 3))
(expm1.f64 (log1p.f64 (log1p.f64 eps)))
(exp.f64 (log.f64 (log1p.f64 eps)))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (log1p.f64 eps))) 1/3))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (log1p.f64 eps))) 3))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (log1p.f64 eps))) 2))
Outputs
eps
(+.f64 (*.f64 -1/2 (pow.f64 eps 2)) eps)
(fma.f64 -1/2 (*.f64 eps eps) eps)
(fma.f64 eps (*.f64 eps -1/2) eps)
(+.f64 (*.f64 -1/2 (pow.f64 eps 2)) (+.f64 eps (*.f64 1/3 (pow.f64 eps 3))))
(+.f64 (fma.f64 -1/2 (*.f64 eps eps) eps) (*.f64 1/3 (pow.f64 eps 3)))
(fma.f64 -1/2 (*.f64 eps eps) (fma.f64 1/3 (pow.f64 eps 3) eps))
(fma.f64 eps (*.f64 eps -1/2) (fma.f64 1/3 (pow.f64 eps 3) eps))
(+.f64 (*.f64 -1/2 (pow.f64 eps 2)) (+.f64 eps (+.f64 (*.f64 1/3 (pow.f64 eps 3)) (*.f64 -1/4 (pow.f64 eps 4)))))
(+.f64 (fma.f64 -1/2 (*.f64 eps eps) eps) (fma.f64 1/3 (pow.f64 eps 3) (*.f64 -1/4 (pow.f64 eps 4))))
(fma.f64 -1/2 (*.f64 eps eps) (+.f64 eps (fma.f64 -1/4 (pow.f64 eps 4) (*.f64 1/3 (pow.f64 eps 3)))))
(fma.f64 eps (*.f64 eps -1/2) (fma.f64 1/3 (pow.f64 eps 3) (fma.f64 -1/4 (pow.f64 eps 4) eps)))
(+.f64 (+.f64 (log1p.f64 eps) 1) -1)
(log1p.f64 eps)
(+.f64 0 (log1p.f64 eps))
(log1p.f64 eps)
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (+.f64 eps 1)) 2)) (log.f64 (cbrt.f64 (+.f64 eps 1))))
(+.f64 (*.f64 2 (log.f64 (cbrt.f64 (+.f64 eps 1)))) (log.f64 (cbrt.f64 (+.f64 eps 1))))
(*.f64 3 (log.f64 (cbrt.f64 (+.f64 eps 1))))
(+.f64 (log.f64 (sqrt.f64 (+.f64 eps 1))) (log.f64 (sqrt.f64 (+.f64 eps 1))))
(*.f64 2 (log.f64 (sqrt.f64 (+.f64 eps 1))))
(*.f64 2 (log.f64 (hypot.f64 1 (sqrt.f64 eps))))
(-.f64 (log1p.f64 (pow.f64 eps 3)) (log1p.f64 (-.f64 (*.f64 eps eps) eps)))
(-.f64 (log1p.f64 (pow.f64 eps 3)) (log1p.f64 (fma.f64 eps eps (neg.f64 eps))))
(-.f64 (+.f64 (log1p.f64 eps) 1) 1)
(log1p.f64 eps)
(-.f64 (log.f64 (-.f64 1 (*.f64 eps eps))) (log.f64 (-.f64 1 eps)))
(-.f64 (log1p.f64 (*.f64 eps (neg.f64 eps))) (log1p.f64 (neg.f64 eps)))
(*.f64 (log1p.f64 eps) 1)
(log1p.f64 eps)
(*.f64 1 (log1p.f64 eps))
(log1p.f64 eps)
(*.f64 (cbrt.f64 (log1p.f64 eps)) (pow.f64 (cbrt.f64 (log1p.f64 eps)) 2))
(log1p.f64 eps)
(*.f64 (pow.f64 (cbrt.f64 (log1p.f64 eps)) 2) (cbrt.f64 (log1p.f64 eps)))
(log1p.f64 eps)
(*.f64 (sqrt.f64 (log1p.f64 eps)) (sqrt.f64 (log1p.f64 eps)))
(log1p.f64 eps)
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (log1p.f64 eps))) 2) (*.f64 (cbrt.f64 (cbrt.f64 (log1p.f64 eps))) (pow.f64 (cbrt.f64 (log1p.f64 eps)) 2)))
(log1p.f64 eps)
(*.f64 (pow.f64 (log1p.f64 eps) 1/6) (*.f64 (pow.f64 (log1p.f64 eps) 1/6) (pow.f64 (cbrt.f64 (log1p.f64 eps)) 2)))
(log1p.f64 eps)
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 eps)) 4)) (*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (log1p.f64 eps))) 2) (cbrt.f64 (log1p.f64 eps))))
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 eps)) 4)) (*.f64 (cbrt.f64 (log1p.f64 eps)) (pow.f64 (cbrt.f64 (cbrt.f64 (log1p.f64 eps))) 2)))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (log1p.f64 eps))) 2) (*.f64 (cbrt.f64 (log1p.f64 eps)) (cbrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 eps)) 4))))
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 eps)) 4)) (pow.f64 (cbrt.f64 (cbrt.f64 (log1p.f64 eps))) 5))
(*.f64 (pow.f64 (log1p.f64 eps) 1/4) (sqrt.f64 (pow.f64 (log1p.f64 eps) 3/2)))
(log1p.f64 eps)
(*.f64 (pow.f64 (log1p.f64 eps) 1/4) (*.f64 (pow.f64 (log1p.f64 eps) 1/4) (sqrt.f64 (log1p.f64 eps))))
(log1p.f64 eps)
(*.f64 (*.f64 (sqrt.f64 (log1p.f64 eps)) (pow.f64 (log1p.f64 eps) 1/4)) (pow.f64 (log1p.f64 eps) 1/4))
(log1p.f64 eps)
(*.f64 (cbrt.f64 (pow.f64 (log1p.f64 eps) 5/2)) (pow.f64 (log1p.f64 eps) 1/6))
(*.f64 (pow.f64 (log1p.f64 eps) 1/6) (cbrt.f64 (pow.f64 (log1p.f64 eps) 5/2)))
(*.f64 (cbrt.f64 (pow.f64 (pow.f64 (cbrt.f64 (log1p.f64 eps)) 4) 2)) (cbrt.f64 (cbrt.f64 (log1p.f64 eps))))
(*.f64 (cbrt.f64 (cbrt.f64 (log1p.f64 eps))) (cbrt.f64 (pow.f64 (pow.f64 (cbrt.f64 (log1p.f64 eps)) 4) 2)))
(*.f64 (cbrt.f64 (cbrt.f64 (log1p.f64 eps))) (cbrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 eps)) 8)))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 eps)) 5)) (pow.f64 (log1p.f64 eps) 1/6))
(*.f64 (pow.f64 (log1p.f64 eps) 1/6) (sqrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 eps)) 5)))
(*.f64 (pow.f64 (log1p.f64 eps) 1/6) (pow.f64 (cbrt.f64 (log1p.f64 eps)) 5/2))
(*.f64 (sqrt.f64 (pow.f64 (log1p.f64 eps) 3/2)) (pow.f64 (log1p.f64 eps) 1/4))
(log1p.f64 eps)
(*.f64 (pow.f64 1 1/3) (log1p.f64 eps))
(log1p.f64 eps)
(*.f64 (pow.f64 (pow.f64 (pow.f64 (cbrt.f64 (log1p.f64 eps)) 4) 2) 1/3) (cbrt.f64 (cbrt.f64 (log1p.f64 eps))))
(*.f64 (cbrt.f64 (cbrt.f64 (log1p.f64 eps))) (cbrt.f64 (pow.f64 (pow.f64 (cbrt.f64 (log1p.f64 eps)) 4) 2)))
(*.f64 (cbrt.f64 (cbrt.f64 (log1p.f64 eps))) (cbrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 eps)) 8)))
(*.f64 (pow.f64 (pow.f64 (log1p.f64 eps) 5/2) 1/3) (pow.f64 (log1p.f64 eps) 1/6))
(*.f64 (pow.f64 (log1p.f64 eps) 1/6) (cbrt.f64 (pow.f64 (log1p.f64 eps) 5/2)))
(*.f64 (*.f64 (sqrt.f64 (log1p.f64 eps)) (cbrt.f64 (log1p.f64 eps))) (pow.f64 (log1p.f64 eps) 1/6))
(*.f64 (pow.f64 (log1p.f64 eps) 1/6) (sqrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 eps)) 5)))
(*.f64 (pow.f64 (log1p.f64 eps) 1/6) (pow.f64 (cbrt.f64 (log1p.f64 eps)) 5/2))
(*.f64 (*.f64 (cbrt.f64 (log1p.f64 eps)) (cbrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 eps)) 4))) (pow.f64 (cbrt.f64 (cbrt.f64 (log1p.f64 eps))) 2))
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 eps)) 4)) (*.f64 (cbrt.f64 (log1p.f64 eps)) (pow.f64 (cbrt.f64 (cbrt.f64 (log1p.f64 eps))) 2)))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (log1p.f64 eps))) 2) (*.f64 (cbrt.f64 (log1p.f64 eps)) (cbrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 eps)) 4))))
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (log1p.f64 eps)) 4)) (pow.f64 (cbrt.f64 (cbrt.f64 (log1p.f64 eps))) 5))
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (log1p.f64 eps)) 2) (pow.f64 (cbrt.f64 (cbrt.f64 (log1p.f64 eps))) 2)) (cbrt.f64 (cbrt.f64 (log1p.f64 eps))))
(log1p.f64 eps)
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (log1p.f64 eps)) 2) (pow.f64 (log1p.f64 eps) 1/6)) (pow.f64 (log1p.f64 eps) 1/6))
(log1p.f64 eps)
(/.f64 (-.f64 (pow.f64 (+.f64 (log1p.f64 eps) 1) 3) 1) (+.f64 (*.f64 (+.f64 (log1p.f64 eps) 1) (+.f64 (log1p.f64 eps) 1)) (+.f64 1 (+.f64 (log1p.f64 eps) 1))))
(/.f64 (+.f64 (pow.f64 (+.f64 (log1p.f64 eps) 1) 3) -1) (fma.f64 (+.f64 (log1p.f64 eps) 1) (+.f64 (log1p.f64 eps) 1) (+.f64 (log1p.f64 eps) 2)))
(/.f64 (+.f64 -1 (pow.f64 (+.f64 (log1p.f64 eps) 1) 3)) (fma.f64 (+.f64 (log1p.f64 eps) 1) (+.f64 (log1p.f64 eps) 1) (+.f64 2 (log1p.f64 eps))))
(/.f64 (+.f64 -1 (pow.f64 (+.f64 (log1p.f64 eps) 1) 3)) (+.f64 1 (*.f64 (+.f64 (log1p.f64 eps) 1) (+.f64 2 (log1p.f64 eps)))))
(/.f64 (+.f64 -1 (pow.f64 (+.f64 (log1p.f64 eps) 1) 3)) (fma.f64 (+.f64 (log1p.f64 eps) 1) (+.f64 2 (log1p.f64 eps)) 1))
(/.f64 (-.f64 (*.f64 (+.f64 (log1p.f64 eps) 1) (+.f64 (log1p.f64 eps) 1)) 1) (+.f64 (+.f64 (log1p.f64 eps) 1) 1))
(log1p.f64 eps)
(pow.f64 (log1p.f64 eps) 1)
(log1p.f64 eps)
(pow.f64 (pow.f64 (log1p.f64 eps) 2) 1/2)
(log1p.f64 eps)
(pow.f64 (pow.f64 (log1p.f64 eps) 3) 1/3)
(log1p.f64 eps)
(pow.f64 (cbrt.f64 (log1p.f64 eps)) 3)
(log1p.f64 eps)
(pow.f64 (sqrt.f64 (log1p.f64 eps)) 2)
(log1p.f64 eps)
(pow.f64 (E.f64) (log.f64 (log1p.f64 eps)))
(log1p.f64 eps)
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (log1p.f64 eps)))) (sqrt.f64 (log.f64 (log1p.f64 eps))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (log1p.f64 eps))) 2)) (cbrt.f64 (log.f64 (log1p.f64 eps))))
(sqrt.f64 (pow.f64 (log1p.f64 eps) 2))
(log1p.f64 eps)
(fabs.f64 (log1p.f64 eps))
(log1p.f64 eps)
(log.f64 (+.f64 eps 1))
(log1p.f64 eps)
(cbrt.f64 (pow.f64 (log1p.f64 eps) 3))
(log1p.f64 eps)
(expm1.f64 (log1p.f64 (log1p.f64 eps)))
(log1p.f64 eps)
(exp.f64 (log.f64 (log1p.f64 eps)))
(log1p.f64 eps)
(exp.f64 (*.f64 (*.f64 3 (log.f64 (log1p.f64 eps))) 1/3))
(log1p.f64 eps)
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (log1p.f64 eps))) 3))
(log1p.f64 eps)
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (log1p.f64 eps))) 2))
(log1p.f64 eps)

eval53.0ms (1.1%)

Compiler

Compiled 2864 to 1699 computations (40.7% saved)

prune27.0ms (0.5%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New2033206
Fresh000
Picked101
Done011
Total2044208
Error
0b
Counts
208 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
1.2b
(-.f64 (log1p.f64 (neg.f64 eps)) eps)
0.2b
(+.f64 (*.f64 -2 eps) (*.f64 -2/3 (pow.f64 eps 3)))
0.5b
(*.f64 -2 eps)
58.8b
(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
Compiler

Compiled 29 to 22 computations (24.1% saved)

localize2.0ms (0%)

Compiler

Compiled 6 to 4 computations (33.3% saved)

localize10.0ms (0.2%)

Local error

Found 1 expressions with local error:

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

Compiled 25 to 19 computations (24% saved)

series6.0ms (0.1%)

Counts
1 → 0
Calls

3 calls:

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

Compiled 290 to 250 computations (13.8% saved)

rewrite36.0ms (0.7%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
067
11297
213247
Stop Event
node limit
Counts
1 → 11
Calls
Call 1
Inputs
(*.f64 -2/3 (pow.f64 eps 3))
Outputs
((#(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 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 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 cbrt.f64 (pow.f64 (*.f64 -2/3 (pow.f64 eps 3)) 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 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))))))))

simplify38.0ms (0.8%)

Algorithm
egg-herbie
Rules
1136×log-prod_binary64
454×exp-sum_binary64
411×distribute-rgt-in_binary64
404×distribute-lft-in_binary64
324×associate-*l*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
037143
196110
231077
3186177
4597377
Stop Event
node limit
Counts
11 → 14
Calls
Call 1
Inputs
(-.f64 (+.f64 1 (*.f64 -2/3 (pow.f64 eps 3))) 1)
(pow.f64 (*.f64 -2/3 (pow.f64 eps 3)) 1)
(pow.f64 (pow.f64 (*.f64 -2/3 (pow.f64 eps 3)) 3) 1/3)
(pow.f64 (*.f64 eps (cbrt.f64 -2/3)) 3)
(pow.f64 (*.f64 (sqrt.f64 -2/3) (pow.f64 eps 3/2)) 2)
(sqrt.f64 (*.f64 (pow.f64 eps 6) 4/9))
(log.f64 (pow.f64 (exp.f64 -2/3) (pow.f64 eps 3)))
(cbrt.f64 (pow.f64 (*.f64 -2/3 (pow.f64 eps 3)) 3))
(expm1.f64 (log1p.f64 (*.f64 -2/3 (pow.f64 eps 3))))
(log1p.f64 (expm1.f64 (*.f64 -2/3 (pow.f64 eps 3))))
(exp.f64 (log.f64 (*.f64 -2/3 (pow.f64 eps 3))))
Outputs
(-.f64 (+.f64 1 (*.f64 -2/3 (pow.f64 eps 3))) 1)
(+.f64 (+.f64 1 (*.f64 -2/3 (pow.f64 eps 3))) -1)
(+.f64 (*.f64 -2/3 (pow.f64 eps 3)) 0)
(*.f64 -2/3 (pow.f64 eps 3))
(pow.f64 (*.f64 -2/3 (pow.f64 eps 3)) 1)
(+.f64 (+.f64 1 (*.f64 -2/3 (pow.f64 eps 3))) -1)
(+.f64 (*.f64 -2/3 (pow.f64 eps 3)) 0)
(*.f64 -2/3 (pow.f64 eps 3))
(pow.f64 (pow.f64 (*.f64 -2/3 (pow.f64 eps 3)) 3) 1/3)
(+.f64 (+.f64 1 (*.f64 -2/3 (pow.f64 eps 3))) -1)
(+.f64 (*.f64 -2/3 (pow.f64 eps 3)) 0)
(*.f64 -2/3 (pow.f64 eps 3))
(pow.f64 (*.f64 eps (cbrt.f64 -2/3)) 3)
(+.f64 (+.f64 1 (*.f64 -2/3 (pow.f64 eps 3))) -1)
(+.f64 (*.f64 -2/3 (pow.f64 eps 3)) 0)
(*.f64 -2/3 (pow.f64 eps 3))
(pow.f64 (*.f64 (sqrt.f64 -2/3) (pow.f64 eps 3/2)) 2)
(+.f64 (+.f64 1 (*.f64 -2/3 (pow.f64 eps 3))) -1)
(+.f64 (*.f64 -2/3 (pow.f64 eps 3)) 0)
(*.f64 -2/3 (pow.f64 eps 3))
(sqrt.f64 (*.f64 (pow.f64 eps 6) 4/9))
(+.f64 (+.f64 1 (*.f64 -2/3 (pow.f64 eps 3))) -1)
(+.f64 (*.f64 -2/3 (pow.f64 eps 3)) 0)
(*.f64 -2/3 (pow.f64 eps 3))
(log.f64 (pow.f64 (exp.f64 -2/3) (pow.f64 eps 3)))
(+.f64 (+.f64 1 (*.f64 -2/3 (pow.f64 eps 3))) -1)
(+.f64 (*.f64 -2/3 (pow.f64 eps 3)) 0)
(*.f64 -2/3 (pow.f64 eps 3))
(cbrt.f64 (pow.f64 (*.f64 -2/3 (pow.f64 eps 3)) 3))
(+.f64 (+.f64 1 (*.f64 -2/3 (pow.f64 eps 3))) -1)
(+.f64 (*.f64 -2/3 (pow.f64 eps 3)) 0)
(*.f64 -2/3 (pow.f64 eps 3))
(expm1.f64 (log1p.f64 (*.f64 -2/3 (pow.f64 eps 3))))
(+.f64 (+.f64 1 (*.f64 -2/3 (pow.f64 eps 3))) -1)
(+.f64 (*.f64 -2/3 (pow.f64 eps 3)) 0)
(*.f64 -2/3 (pow.f64 eps 3))
(log1p.f64 (expm1.f64 (*.f64 -2/3 (pow.f64 eps 3))))
(+.f64 (+.f64 1 (*.f64 -2/3 (pow.f64 eps 3))) -1)
(+.f64 (*.f64 -2/3 (pow.f64 eps 3)) 0)
(*.f64 -2/3 (pow.f64 eps 3))
(exp.f64 (log.f64 (*.f64 -2/3 (pow.f64 eps 3))))
(+.f64 (+.f64 1 (*.f64 -2/3 (pow.f64 eps 3))) -1)
(+.f64 (*.f64 -2/3 (pow.f64 eps 3)) 0)
(*.f64 -2/3 (pow.f64 eps 3))

localize5.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 12 to 4 computations (66.7% saved)

series7.0ms (0.1%)

Counts
1 → 6
Calls

3 calls:

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

Compiled 785 to 635 computations (19.1% saved)

rewrite36.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
491×pow1_binary64
476×add-sqr-sqrt_binary64
459×add-log-exp_binary64
458×expm1-log1p-u_binary64
457×log1p-expm1-u_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify39.0ms (0.8%)

Algorithm
egg-herbie
Rules
492×associate-*l*_binary64
479×fma-neg_binary64
467×associate-*r*_binary64
410×fma-def_binary64
276×log-prod_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
099454
1251431
2897409
35993409
Stop Event
node limit
Counts
39 → 58
Calls
Call 1
Inputs
(*.f64 -2 eps)
(+.f64 (*.f64 -1/2 (pow.f64 eps 2)) (*.f64 -2 eps))
(+.f64 (*.f64 -1/2 (pow.f64 eps 2)) (+.f64 (*.f64 -2 eps) (*.f64 -1/3 (pow.f64 eps 3))))
(+.f64 (*.f64 -1/2 (pow.f64 eps 2)) (+.f64 (*.f64 -2 eps) (+.f64 (*.f64 -1/4 (pow.f64 eps 4)) (*.f64 -1/3 (pow.f64 eps 3)))))
(*.f64 -1 eps)
(*.f64 -1 eps)
(+.f64 eps (log1p.f64 eps))
(+.f64 (log1p.f64 eps) eps)
(+.f64 (+.f64 eps (log1p.f64 eps)) (fma.f64 eps 1 eps))
(+.f64 (+.f64 eps (log1p.f64 eps)) (fma.f64 (neg.f64 (cbrt.f64 eps)) (pow.f64 (cbrt.f64 eps) 2) eps))
(+.f64 (+.f64 eps (log1p.f64 eps)) (fma.f64 (neg.f64 (sqrt.f64 eps)) (sqrt.f64 eps) eps))
(*.f64 (+.f64 eps (log1p.f64 eps)) 1)
(*.f64 1 (+.f64 eps (log1p.f64 eps)))
(*.f64 (pow.f64 (+.f64 eps (log1p.f64 eps)) 2) (/.f64 1 (+.f64 eps (log1p.f64 eps))))
(*.f64 (cbrt.f64 (+.f64 eps (log1p.f64 eps))) (pow.f64 (cbrt.f64 (+.f64 eps (log1p.f64 eps))) 2))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 eps (log1p.f64 eps))) 2) (cbrt.f64 (+.f64 eps (log1p.f64 eps))))
(*.f64 (sqrt.f64 (+.f64 eps (log1p.f64 eps))) (sqrt.f64 (+.f64 eps (log1p.f64 eps))))
(*.f64 (+.f64 (pow.f64 (log1p.f64 eps) 3) (pow.f64 eps 3)) (/.f64 1 (+.f64 (pow.f64 (log1p.f64 eps) 2) (*.f64 eps (+.f64 eps (log1p.f64 eps))))))
(*.f64 (+.f64 (sqrt.f64 (log1p.f64 eps)) (sqrt.f64 eps)) (-.f64 (sqrt.f64 (log1p.f64 eps)) (sqrt.f64 eps)))
(/.f64 1 (/.f64 (+.f64 (pow.f64 (log1p.f64 eps) 2) (*.f64 eps (+.f64 eps (log1p.f64 eps)))) (+.f64 (pow.f64 (log1p.f64 eps) 3) (pow.f64 eps 3))))
(/.f64 1 (/.f64 (+.f64 eps (log1p.f64 eps)) (pow.f64 (+.f64 eps (log1p.f64 eps)) 2)))
(/.f64 (pow.f64 (+.f64 eps (log1p.f64 eps)) 2) (+.f64 eps (log1p.f64 eps)))
(/.f64 (+.f64 (pow.f64 (log1p.f64 eps) 3) (pow.f64 eps 3)) (+.f64 (pow.f64 (log1p.f64 eps) 2) (*.f64 eps (+.f64 eps (log1p.f64 eps)))))
(/.f64 (+.f64 (pow.f64 (log1p.f64 eps) 3) (pow.f64 eps 3)) (+.f64 (pow.f64 (log1p.f64 eps) 2) (-.f64 (*.f64 eps eps) (*.f64 eps (log1p.f64 eps)))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (log1p.f64 eps) 3) (pow.f64 eps 3))) (neg.f64 (+.f64 (pow.f64 (log1p.f64 eps) 2) (*.f64 eps (+.f64 eps (log1p.f64 eps))))))
(/.f64 (neg.f64 (pow.f64 (+.f64 eps (log1p.f64 eps)) 2)) (neg.f64 (+.f64 eps (log1p.f64 eps))))
(pow.f64 (+.f64 eps (log1p.f64 eps)) 1)
(pow.f64 (pow.f64 (+.f64 eps (log1p.f64 eps)) 3) 1/3)
(pow.f64 (cbrt.f64 (+.f64 eps (log1p.f64 eps))) 3)
(pow.f64 (sqrt.f64 (+.f64 eps (log1p.f64 eps))) 2)
(sqrt.f64 (pow.f64 (+.f64 eps (log1p.f64 eps)) 2))
(log.f64 (exp.f64 (+.f64 eps (log1p.f64 eps))))
(cbrt.f64 (pow.f64 (+.f64 eps (log1p.f64 eps)) 3))
(expm1.f64 (log1p.f64 (+.f64 eps (log1p.f64 eps))))
(log1p.f64 (expm1.f64 (+.f64 eps (log1p.f64 eps))))
(exp.f64 (log.f64 (+.f64 eps (log1p.f64 eps))))
(fma.f64 1 (log1p.f64 eps) eps)
(fma.f64 (pow.f64 (cbrt.f64 (log1p.f64 eps)) 2) (cbrt.f64 (log1p.f64 eps)) eps)
(fma.f64 (sqrt.f64 (log1p.f64 eps)) (sqrt.f64 (log1p.f64 eps)) eps)
Outputs
(*.f64 -2 eps)
(+.f64 (*.f64 -1/2 (pow.f64 eps 2)) (*.f64 -2 eps))
(fma.f64 -1/2 (*.f64 eps eps) (*.f64 -2 eps))
(fma.f64 -2 eps (*.f64 -1/2 (*.f64 eps eps)))
(*.f64 eps (+.f64 -2 (*.f64 eps -1/2)))
(+.f64 (*.f64 -1/2 (pow.f64 eps 2)) (+.f64 (*.f64 -2 eps) (*.f64 -1/3 (pow.f64 eps 3))))
(fma.f64 -1/2 (*.f64 eps eps) (fma.f64 -2 eps (*.f64 -1/3 (pow.f64 eps 3))))
(fma.f64 -2 eps (*.f64 (*.f64 eps eps) (+.f64 -1/2 (*.f64 eps -1/3))))
(+.f64 (*.f64 -1/2 (pow.f64 eps 2)) (+.f64 (*.f64 -2 eps) (+.f64 (*.f64 -1/4 (pow.f64 eps 4)) (*.f64 -1/3 (pow.f64 eps 3)))))
(fma.f64 -1/2 (*.f64 eps eps) (fma.f64 -2 eps (fma.f64 -1/4 (pow.f64 eps 4) (*.f64 -1/3 (pow.f64 eps 3)))))
(fma.f64 -1/2 (*.f64 eps eps) (fma.f64 -2 eps (fma.f64 -1/3 (pow.f64 eps 3) (*.f64 -1/4 (pow.f64 eps 4)))))
(fma.f64 eps (*.f64 eps -1/2) (fma.f64 -1/3 (pow.f64 eps 3) (fma.f64 -1/4 (pow.f64 eps 4) (*.f64 -2 eps))))
(*.f64 -1 eps)
(neg.f64 eps)
(*.f64 -1 eps)
(neg.f64 eps)
(+.f64 eps (log1p.f64 eps))
(+.f64 (log1p.f64 eps) eps)
(+.f64 eps (log1p.f64 eps))
(+.f64 (+.f64 eps (log1p.f64 eps)) (fma.f64 eps 1 eps))
(+.f64 eps (+.f64 (log1p.f64 eps) (fma.f64 eps 1 eps)))
(+.f64 (+.f64 eps (log1p.f64 eps)) (+.f64 eps eps))
(+.f64 (log1p.f64 eps) (+.f64 eps (+.f64 eps eps)))
(+.f64 (+.f64 eps (log1p.f64 eps)) (fma.f64 (neg.f64 (cbrt.f64 eps)) (pow.f64 (cbrt.f64 eps) 2) eps))
(+.f64 (log1p.f64 eps) (+.f64 eps (fma.f64 (neg.f64 (cbrt.f64 eps)) (pow.f64 (cbrt.f64 eps) 2) eps)))
(+.f64 (-.f64 (log1p.f64 eps) eps) (+.f64 eps eps))
(+.f64 (+.f64 eps (log1p.f64 eps)) (fma.f64 (neg.f64 (sqrt.f64 eps)) (sqrt.f64 eps) eps))
(+.f64 (+.f64 eps (log1p.f64 eps)) (fma.f64 (neg.f64 (cbrt.f64 eps)) (pow.f64 (cbrt.f64 eps) 2) eps))
(+.f64 (log1p.f64 eps) (+.f64 eps (fma.f64 (neg.f64 (cbrt.f64 eps)) (pow.f64 (cbrt.f64 eps) 2) eps)))
(+.f64 (-.f64 (log1p.f64 eps) eps) (+.f64 eps eps))
(*.f64 (+.f64 eps (log1p.f64 eps)) 1)
(+.f64 eps (log1p.f64 eps))
(*.f64 1 (+.f64 eps (log1p.f64 eps)))
(+.f64 eps (log1p.f64 eps))
(*.f64 (pow.f64 (+.f64 eps (log1p.f64 eps)) 2) (/.f64 1 (+.f64 eps (log1p.f64 eps))))
(+.f64 eps (log1p.f64 eps))
(*.f64 (cbrt.f64 (+.f64 eps (log1p.f64 eps))) (pow.f64 (cbrt.f64 (+.f64 eps (log1p.f64 eps))) 2))
(+.f64 eps (log1p.f64 eps))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 eps (log1p.f64 eps))) 2) (cbrt.f64 (+.f64 eps (log1p.f64 eps))))
(+.f64 eps (log1p.f64 eps))
(*.f64 (sqrt.f64 (+.f64 eps (log1p.f64 eps))) (sqrt.f64 (+.f64 eps (log1p.f64 eps))))
(+.f64 eps (log1p.f64 eps))
(*.f64 (+.f64 (pow.f64 (log1p.f64 eps) 3) (pow.f64 eps 3)) (/.f64 1 (+.f64 (pow.f64 (log1p.f64 eps) 2) (*.f64 eps (+.f64 eps (log1p.f64 eps))))))
(/.f64 1 (/.f64 (+.f64 (pow.f64 (log1p.f64 eps) 2) (*.f64 eps (+.f64 eps (log1p.f64 eps)))) (+.f64 (pow.f64 eps 3) (pow.f64 (log1p.f64 eps) 3))))
(/.f64 (+.f64 (pow.f64 eps 3) (pow.f64 (log1p.f64 eps) 3)) (fma.f64 eps (+.f64 eps (log1p.f64 eps)) (pow.f64 (log1p.f64 eps) 2)))
(*.f64 (+.f64 (sqrt.f64 (log1p.f64 eps)) (sqrt.f64 eps)) (-.f64 (sqrt.f64 (log1p.f64 eps)) (sqrt.f64 eps)))
(*.f64 (+.f64 (sqrt.f64 eps) (sqrt.f64 (log1p.f64 eps))) (-.f64 (sqrt.f64 (log1p.f64 eps)) (sqrt.f64 eps)))
(/.f64 1 (/.f64 (+.f64 (pow.f64 (log1p.f64 eps) 2) (*.f64 eps (+.f64 eps (log1p.f64 eps)))) (+.f64 (pow.f64 (log1p.f64 eps) 3) (pow.f64 eps 3))))
(/.f64 1 (/.f64 (+.f64 (pow.f64 (log1p.f64 eps) 2) (*.f64 eps (+.f64 eps (log1p.f64 eps)))) (+.f64 (pow.f64 eps 3) (pow.f64 (log1p.f64 eps) 3))))
(/.f64 (+.f64 (pow.f64 eps 3) (pow.f64 (log1p.f64 eps) 3)) (fma.f64 eps (+.f64 eps (log1p.f64 eps)) (pow.f64 (log1p.f64 eps) 2)))
(/.f64 1 (/.f64 (+.f64 eps (log1p.f64 eps)) (pow.f64 (+.f64 eps (log1p.f64 eps)) 2)))
(+.f64 eps (log1p.f64 eps))
(/.f64 (pow.f64 (+.f64 eps (log1p.f64 eps)) 2) (+.f64 eps (log1p.f64 eps)))
(+.f64 eps (log1p.f64 eps))
(/.f64 (+.f64 (pow.f64 (log1p.f64 eps) 3) (pow.f64 eps 3)) (+.f64 (pow.f64 (log1p.f64 eps) 2) (*.f64 eps (+.f64 eps (log1p.f64 eps)))))
(/.f64 1 (/.f64 (+.f64 (pow.f64 (log1p.f64 eps) 2) (*.f64 eps (+.f64 eps (log1p.f64 eps)))) (+.f64 (pow.f64 eps 3) (pow.f64 (log1p.f64 eps) 3))))
(/.f64 (+.f64 (pow.f64 eps 3) (pow.f64 (log1p.f64 eps) 3)) (fma.f64 eps (+.f64 eps (log1p.f64 eps)) (pow.f64 (log1p.f64 eps) 2)))
(/.f64 (+.f64 (pow.f64 (log1p.f64 eps) 3) (pow.f64 eps 3)) (+.f64 (pow.f64 (log1p.f64 eps) 2) (-.f64 (*.f64 eps eps) (*.f64 eps (log1p.f64 eps)))))
(/.f64 (+.f64 (pow.f64 eps 3) (pow.f64 (log1p.f64 eps) 3)) (+.f64 (pow.f64 (log1p.f64 eps) 2) (*.f64 eps (-.f64 eps (log1p.f64 eps)))))
(/.f64 (+.f64 (pow.f64 eps 3) (pow.f64 (log1p.f64 eps) 3)) (fma.f64 eps (-.f64 eps (log1p.f64 eps)) (pow.f64 (log1p.f64 eps) 2)))
(/.f64 (+.f64 (pow.f64 eps 3) (pow.f64 (log1p.f64 eps) 3)) (fma.f64 eps eps (*.f64 (log1p.f64 eps) (-.f64 (log1p.f64 eps) eps))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (log1p.f64 eps) 3) (pow.f64 eps 3))) (neg.f64 (+.f64 (pow.f64 (log1p.f64 eps) 2) (*.f64 eps (+.f64 eps (log1p.f64 eps))))))
(/.f64 1 (/.f64 (+.f64 (pow.f64 (log1p.f64 eps) 2) (*.f64 eps (+.f64 eps (log1p.f64 eps)))) (+.f64 (pow.f64 eps 3) (pow.f64 (log1p.f64 eps) 3))))
(/.f64 (+.f64 (pow.f64 eps 3) (pow.f64 (log1p.f64 eps) 3)) (fma.f64 eps (+.f64 eps (log1p.f64 eps)) (pow.f64 (log1p.f64 eps) 2)))
(/.f64 (neg.f64 (pow.f64 (+.f64 eps (log1p.f64 eps)) 2)) (neg.f64 (+.f64 eps (log1p.f64 eps))))
(+.f64 eps (log1p.f64 eps))
(pow.f64 (+.f64 eps (log1p.f64 eps)) 1)
(+.f64 eps (log1p.f64 eps))
(pow.f64 (pow.f64 (+.f64 eps (log1p.f64 eps)) 3) 1/3)
(+.f64 eps (log1p.f64 eps))
(pow.f64 (cbrt.f64 (+.f64 eps (log1p.f64 eps))) 3)
(+.f64 eps (log1p.f64 eps))
(pow.f64 (sqrt.f64 (+.f64 eps (log1p.f64 eps))) 2)
(+.f64 eps (log1p.f64 eps))
(sqrt.f64 (pow.f64 (+.f64 eps (log1p.f64 eps)) 2))
(+.f64 eps (log1p.f64 eps))
(log.f64 (exp.f64 (+.f64 eps (log1p.f64 eps))))
(+.f64 eps (log1p.f64 eps))
(cbrt.f64 (pow.f64 (+.f64 eps (log1p.f64 eps)) 3))
(+.f64 eps (log1p.f64 eps))
(expm1.f64 (log1p.f64 (+.f64 eps (log1p.f64 eps))))
(+.f64 eps (log1p.f64 eps))
(log1p.f64 (expm1.f64 (+.f64 eps (log1p.f64 eps))))
(+.f64 eps (log1p.f64 eps))
(exp.f64 (log.f64 (+.f64 eps (log1p.f64 eps))))
(+.f64 eps (log1p.f64 eps))
(fma.f64 1 (log1p.f64 eps) eps)
(+.f64 eps (log1p.f64 eps))
(fma.f64 (pow.f64 (cbrt.f64 (log1p.f64 eps)) 2) (cbrt.f64 (log1p.f64 eps)) eps)
(+.f64 eps (log1p.f64 eps))
(fma.f64 (sqrt.f64 (log1p.f64 eps)) (sqrt.f64 (log1p.f64 eps)) eps)
(+.f64 eps (log1p.f64 eps))

eval17.0ms (0.3%)

Compiler

Compiled 825 to 439 computations (46.8% saved)

prune12.0ms (0.3%)

Pruning

5 alts after pruning (2 fresh and 3 done)

PrunedKeptTotal
New70272
Fresh000
Picked101
Done033
Total71576
Error
0b
Counts
76 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
0.2b
(+.f64 (*.f64 -2 eps) (*.f64 -2/3 (pow.f64 eps 3)))
1.2b
(*.f64 eps (+.f64 -2 (*.f64 eps -1/2)))
0.5b
(*.f64 -2 eps)
52.0b
(neg.f64 eps)
58.8b
(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
Compiler

Compiled 34 to 26 computations (23.5% saved)

localize2.0ms (0%)

Compiler

Compiled 4 to 2 computations (50% saved)

localize7.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 19 to 14 computations (26.3% saved)

series8.0ms (0.2%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
1.0ms
eps
@inf
(*.f64 eps (+.f64 -2 (*.f64 eps -1/2)))
1.0ms
eps
@0
(*.f64 eps (+.f64 -2 (*.f64 eps -1/2)))
1.0ms
eps
@-inf
(*.f64 eps (+.f64 -2 (*.f64 eps -1/2)))
Compiler

Compiled 560 to 455 computations (18.8% saved)

rewrite39.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
803×pow1_binary64
753×add-log-exp_binary64
753×log1p-expm1-u_binary64
753×expm1-log1p-u_binary64
740×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify37.0ms (0.8%)

Algorithm
egg-herbie
Rules
670×distribute-rgt-in_binary64
600×distribute-lft-in_binary64
329×fma-neg_binary64
270×fma-def_binary64
239×associate-/l/_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
093462
1266355
2971339
33380339
Stop Event
node limit
Counts
36 → 40
Calls
Call 1
Inputs
(*.f64 -2 eps)
(+.f64 (*.f64 -1/2 (pow.f64 eps 2)) (*.f64 -2 eps))
(+.f64 (*.f64 -1/2 (pow.f64 eps 2)) (*.f64 -2 eps))
(+.f64 (*.f64 -1/2 (pow.f64 eps 2)) (*.f64 -2 eps))
(*.f64 -1/2 (pow.f64 (/.f64 1 eps) -2))
(+.f64 (*.f64 -2 eps) (*.f64 -1/2 (pow.f64 (/.f64 1 eps) -2)))
(+.f64 (*.f64 -2 eps) (*.f64 -1/2 (pow.f64 (/.f64 1 eps) -2)))
(+.f64 (*.f64 -2 eps) (*.f64 -1/2 (pow.f64 (/.f64 1 eps) -2)))
(*.f64 -1/2 (pow.f64 (/.f64 -1 eps) -2))
(+.f64 (*.f64 -2 eps) (*.f64 -1/2 (pow.f64 (/.f64 -1 eps) -2)))
(+.f64 (*.f64 -2 eps) (*.f64 -1/2 (pow.f64 (/.f64 -1 eps) -2)))
(+.f64 (*.f64 -2 eps) (*.f64 -1/2 (pow.f64 (/.f64 -1 eps) -2)))
(+.f64 (*.f64 eps -2) (*.f64 -1/2 (*.f64 eps eps)))
(+.f64 (*.f64 -1/2 (*.f64 eps eps)) (*.f64 eps -2))
(+.f64 (*.f64 (*.f64 eps -2) 1) (*.f64 (*.f64 -1/2 (*.f64 eps eps)) 1))
(-.f64 (+.f64 1 (*.f64 eps (fma.f64 eps -1/2 -2))) 1)
(/.f64 (+.f64 (pow.f64 (*.f64 eps -2) 3) (pow.f64 (*.f64 -1/2 (*.f64 eps eps)) 3)) (+.f64 (*.f64 (*.f64 eps -2) (*.f64 eps -2)) (-.f64 (*.f64 (*.f64 -1/2 (*.f64 eps eps)) (*.f64 -1/2 (*.f64 eps eps))) (*.f64 (*.f64 eps -2) (*.f64 -1/2 (*.f64 eps eps))))))
(/.f64 (-.f64 (*.f64 (*.f64 eps -2) (*.f64 eps -2)) (*.f64 (*.f64 -1/2 (*.f64 eps eps)) (*.f64 -1/2 (*.f64 eps eps)))) (-.f64 (*.f64 eps -2) (*.f64 -1/2 (*.f64 eps eps))))
(/.f64 (*.f64 (+.f64 -8 (*.f64 (pow.f64 eps 3) -1/8)) eps) (+.f64 4 (-.f64 (*.f64 (*.f64 eps eps) 1/4) eps)))
(/.f64 (*.f64 (-.f64 4 (*.f64 (*.f64 eps eps) 1/4)) eps) (+.f64 -2 (*.f64 1/2 eps)))
(/.f64 (*.f64 eps (+.f64 -8 (*.f64 (pow.f64 eps 3) -1/8))) (+.f64 4 (-.f64 (*.f64 (*.f64 eps eps) 1/4) eps)))
(/.f64 (*.f64 eps (-.f64 4 (*.f64 (*.f64 eps eps) 1/4))) (+.f64 -2 (*.f64 1/2 eps)))
(pow.f64 (*.f64 eps (fma.f64 eps -1/2 -2)) 1)
(pow.f64 (pow.f64 (*.f64 eps (fma.f64 eps -1/2 -2)) 3) 1/3)
(pow.f64 (cbrt.f64 (*.f64 eps (fma.f64 eps -1/2 -2))) 3)
(pow.f64 (sqrt.f64 (*.f64 eps (fma.f64 eps -1/2 -2))) 2)
(sqrt.f64 (pow.f64 (*.f64 eps (fma.f64 eps -1/2 -2)) 2))
(log.f64 (pow.f64 (exp.f64 (fma.f64 eps -1/2 -2)) eps))
(cbrt.f64 (pow.f64 (*.f64 eps (fma.f64 eps -1/2 -2)) 3))
(cbrt.f64 (*.f64 (pow.f64 eps 3) (pow.f64 (fma.f64 eps -1/2 -2) 3)))
(cbrt.f64 (*.f64 (pow.f64 (fma.f64 eps -1/2 -2) 3) (pow.f64 eps 3)))
(expm1.f64 (log1p.f64 (*.f64 eps (fma.f64 eps -1/2 -2))))
(log1p.f64 (expm1.f64 (*.f64 eps (fma.f64 eps -1/2 -2))))
(exp.f64 (log.f64 (*.f64 eps (fma.f64 eps -1/2 -2))))
(fma.f64 eps -2 (*.f64 -1/2 (*.f64 eps eps)))
(fma.f64 -2 eps (*.f64 -1/2 (*.f64 eps eps)))
Outputs
(*.f64 -2 eps)
(+.f64 (*.f64 -1/2 (pow.f64 eps 2)) (*.f64 -2 eps))
(fma.f64 -2 eps (*.f64 -1/2 (*.f64 eps eps)))
(*.f64 eps (fma.f64 eps -1/2 -2))
(+.f64 (*.f64 -1/2 (pow.f64 eps 2)) (*.f64 -2 eps))
(fma.f64 -2 eps (*.f64 -1/2 (*.f64 eps eps)))
(*.f64 eps (fma.f64 eps -1/2 -2))
(+.f64 (*.f64 -1/2 (pow.f64 eps 2)) (*.f64 -2 eps))
(fma.f64 -2 eps (*.f64 -1/2 (*.f64 eps eps)))
(*.f64 eps (fma.f64 eps -1/2 -2))
(*.f64 -1/2 (pow.f64 (/.f64 1 eps) -2))
(*.f64 eps (*.f64 eps -1/2))
(+.f64 (*.f64 -2 eps) (*.f64 -1/2 (pow.f64 (/.f64 1 eps) -2)))
(fma.f64 -2 eps (*.f64 -1/2 (*.f64 eps eps)))
(*.f64 eps (fma.f64 eps -1/2 -2))
(+.f64 (*.f64 -2 eps) (*.f64 -1/2 (pow.f64 (/.f64 1 eps) -2)))
(fma.f64 -2 eps (*.f64 -1/2 (*.f64 eps eps)))
(*.f64 eps (fma.f64 eps -1/2 -2))
(+.f64 (*.f64 -2 eps) (*.f64 -1/2 (pow.f64 (/.f64 1 eps) -2)))
(fma.f64 -2 eps (*.f64 -1/2 (*.f64 eps eps)))
(*.f64 eps (fma.f64 eps -1/2 -2))
(*.f64 -1/2 (pow.f64 (/.f64 -1 eps) -2))
(*.f64 -1/2 (pow.f64 (/.f64 1 eps) -2))
(*.f64 eps (*.f64 eps -1/2))
(+.f64 (*.f64 -2 eps) (*.f64 -1/2 (pow.f64 (/.f64 -1 eps) -2)))
(fma.f64 -2 eps (*.f64 -1/2 (*.f64 eps eps)))
(*.f64 eps (fma.f64 eps -1/2 -2))
(+.f64 (*.f64 -2 eps) (*.f64 -1/2 (pow.f64 (/.f64 -1 eps) -2)))
(fma.f64 -2 eps (*.f64 -1/2 (*.f64 eps eps)))
(*.f64 eps (fma.f64 eps -1/2 -2))
(+.f64 (*.f64 -2 eps) (*.f64 -1/2 (pow.f64 (/.f64 -1 eps) -2)))
(fma.f64 -2 eps (*.f64 -1/2 (*.f64 eps eps)))
(*.f64 eps (fma.f64 eps -1/2 -2))
(+.f64 (*.f64 eps -2) (*.f64 -1/2 (*.f64 eps eps)))
(fma.f64 -2 eps (*.f64 -1/2 (*.f64 eps eps)))
(*.f64 eps (fma.f64 eps -1/2 -2))
(+.f64 (*.f64 -1/2 (*.f64 eps eps)) (*.f64 eps -2))
(fma.f64 -2 eps (*.f64 -1/2 (*.f64 eps eps)))
(*.f64 eps (fma.f64 eps -1/2 -2))
(+.f64 (*.f64 (*.f64 eps -2) 1) (*.f64 (*.f64 -1/2 (*.f64 eps eps)) 1))
(fma.f64 -2 eps (*.f64 -1/2 (*.f64 eps eps)))
(*.f64 eps (fma.f64 eps -1/2 -2))
(-.f64 (+.f64 1 (*.f64 eps (fma.f64 eps -1/2 -2))) 1)
(fma.f64 -2 eps (*.f64 -1/2 (*.f64 eps eps)))
(*.f64 eps (fma.f64 eps -1/2 -2))
(/.f64 (+.f64 (pow.f64 (*.f64 eps -2) 3) (pow.f64 (*.f64 -1/2 (*.f64 eps eps)) 3)) (+.f64 (*.f64 (*.f64 eps -2) (*.f64 eps -2)) (-.f64 (*.f64 (*.f64 -1/2 (*.f64 eps eps)) (*.f64 -1/2 (*.f64 eps eps))) (*.f64 (*.f64 eps -2) (*.f64 -1/2 (*.f64 eps eps))))))
(/.f64 (+.f64 (*.f64 (pow.f64 eps 3) -8) (*.f64 -1/8 (pow.f64 (*.f64 eps eps) 3))) (+.f64 (*.f64 (*.f64 eps eps) 4) (*.f64 (*.f64 -1/2 (*.f64 eps eps)) (-.f64 (*.f64 -1/2 (*.f64 eps eps)) (*.f64 -2 eps)))))
(/.f64 (fma.f64 (pow.f64 eps 3) -8 (*.f64 -1/8 (pow.f64 (*.f64 eps eps) 3))) (-.f64 (fma.f64 eps (*.f64 4 eps) (*.f64 1/4 (pow.f64 eps 4))) (pow.f64 eps 3)))
(/.f64 (fma.f64 -8 (pow.f64 eps 3) (*.f64 -1/8 (pow.f64 eps 6))) (*.f64 (*.f64 eps eps) (-.f64 (fma.f64 eps (*.f64 eps 1/4) 4) eps)))
(/.f64 (fma.f64 -1/8 (pow.f64 eps 6) (*.f64 -8 (pow.f64 eps 3))) (*.f64 (*.f64 eps eps) (fma.f64 eps (*.f64 eps 1/4) (-.f64 4 eps))))
(/.f64 (-.f64 (*.f64 (*.f64 eps -2) (*.f64 eps -2)) (*.f64 (*.f64 -1/2 (*.f64 eps eps)) (*.f64 -1/2 (*.f64 eps eps)))) (-.f64 (*.f64 eps -2) (*.f64 -1/2 (*.f64 eps eps))))
(fma.f64 -2 eps (*.f64 -1/2 (*.f64 eps eps)))
(*.f64 eps (fma.f64 eps -1/2 -2))
(/.f64 (*.f64 (+.f64 -8 (*.f64 (pow.f64 eps 3) -1/8)) eps) (+.f64 4 (-.f64 (*.f64 (*.f64 eps eps) 1/4) eps)))
(/.f64 (+.f64 -8 (*.f64 (pow.f64 eps 3) -1/8)) (/.f64 (+.f64 4 (-.f64 (*.f64 (*.f64 eps eps) 1/4) eps)) eps))
(/.f64 (fma.f64 (pow.f64 eps 3) -1/8 -8) (/.f64 (+.f64 4 (fma.f64 (*.f64 eps eps) 1/4 (neg.f64 eps))) eps))
(*.f64 (fma.f64 (pow.f64 eps 3) -1/8 -8) (/.f64 eps (-.f64 (fma.f64 eps (*.f64 eps 1/4) 4) eps)))
(*.f64 (fma.f64 (pow.f64 eps 3) -1/8 -8) (/.f64 eps (fma.f64 eps (*.f64 eps 1/4) (-.f64 4 eps))))
(/.f64 (*.f64 (-.f64 4 (*.f64 (*.f64 eps eps) 1/4)) eps) (+.f64 -2 (*.f64 1/2 eps)))
(fma.f64 -2 eps (*.f64 -1/2 (*.f64 eps eps)))
(*.f64 eps (fma.f64 eps -1/2 -2))
(/.f64 (*.f64 eps (+.f64 -8 (*.f64 (pow.f64 eps 3) -1/8))) (+.f64 4 (-.f64 (*.f64 (*.f64 eps eps) 1/4) eps)))
(/.f64 (+.f64 -8 (*.f64 (pow.f64 eps 3) -1/8)) (/.f64 (+.f64 4 (-.f64 (*.f64 (*.f64 eps eps) 1/4) eps)) eps))
(/.f64 (fma.f64 (pow.f64 eps 3) -1/8 -8) (/.f64 (+.f64 4 (fma.f64 (*.f64 eps eps) 1/4 (neg.f64 eps))) eps))
(*.f64 (fma.f64 (pow.f64 eps 3) -1/8 -8) (/.f64 eps (-.f64 (fma.f64 eps (*.f64 eps 1/4) 4) eps)))
(*.f64 (fma.f64 (pow.f64 eps 3) -1/8 -8) (/.f64 eps (fma.f64 eps (*.f64 eps 1/4) (-.f64 4 eps))))
(/.f64 (*.f64 eps (-.f64 4 (*.f64 (*.f64 eps eps) 1/4))) (+.f64 -2 (*.f64 1/2 eps)))
(fma.f64 -2 eps (*.f64 -1/2 (*.f64 eps eps)))
(*.f64 eps (fma.f64 eps -1/2 -2))
(pow.f64 (*.f64 eps (fma.f64 eps -1/2 -2)) 1)
(fma.f64 -2 eps (*.f64 -1/2 (*.f64 eps eps)))
(*.f64 eps (fma.f64 eps -1/2 -2))
(pow.f64 (pow.f64 (*.f64 eps (fma.f64 eps -1/2 -2)) 3) 1/3)
(fma.f64 -2 eps (*.f64 -1/2 (*.f64 eps eps)))
(*.f64 eps (fma.f64 eps -1/2 -2))
(pow.f64 (cbrt.f64 (*.f64 eps (fma.f64 eps -1/2 -2))) 3)
(fma.f64 -2 eps (*.f64 -1/2 (*.f64 eps eps)))
(*.f64 eps (fma.f64 eps -1/2 -2))
(pow.f64 (sqrt.f64 (*.f64 eps (fma.f64 eps -1/2 -2))) 2)
(fma.f64 -2 eps (*.f64 -1/2 (*.f64 eps eps)))
(*.f64 eps (fma.f64 eps -1/2 -2))
(sqrt.f64 (pow.f64 (*.f64 eps (fma.f64 eps -1/2 -2)) 2))
(fma.f64 -2 eps (*.f64 -1/2 (*.f64 eps eps)))
(*.f64 eps (fma.f64 eps -1/2 -2))
(log.f64 (pow.f64 (exp.f64 (fma.f64 eps -1/2 -2)) eps))
(fma.f64 -2 eps (*.f64 -1/2 (*.f64 eps eps)))
(*.f64 eps (fma.f64 eps -1/2 -2))
(cbrt.f64 (pow.f64 (*.f64 eps (fma.f64 eps -1/2 -2)) 3))
(fma.f64 -2 eps (*.f64 -1/2 (*.f64 eps eps)))
(*.f64 eps (fma.f64 eps -1/2 -2))
(cbrt.f64 (*.f64 (pow.f64 eps 3) (pow.f64 (fma.f64 eps -1/2 -2) 3)))
(fma.f64 -2 eps (*.f64 -1/2 (*.f64 eps eps)))
(*.f64 eps (fma.f64 eps -1/2 -2))
(cbrt.f64 (*.f64 (pow.f64 (fma.f64 eps -1/2 -2) 3) (pow.f64 eps 3)))
(fma.f64 -2 eps (*.f64 -1/2 (*.f64 eps eps)))
(*.f64 eps (fma.f64 eps -1/2 -2))
(expm1.f64 (log1p.f64 (*.f64 eps (fma.f64 eps -1/2 -2))))
(fma.f64 -2 eps (*.f64 -1/2 (*.f64 eps eps)))
(*.f64 eps (fma.f64 eps -1/2 -2))
(log1p.f64 (expm1.f64 (*.f64 eps (fma.f64 eps -1/2 -2))))
(fma.f64 -2 eps (*.f64 -1/2 (*.f64 eps eps)))
(*.f64 eps (fma.f64 eps -1/2 -2))
(exp.f64 (log.f64 (*.f64 eps (fma.f64 eps -1/2 -2))))
(fma.f64 -2 eps (*.f64 -1/2 (*.f64 eps eps)))
(*.f64 eps (fma.f64 eps -1/2 -2))
(fma.f64 eps -2 (*.f64 -1/2 (*.f64 eps eps)))
(fma.f64 -2 eps (*.f64 -1/2 (*.f64 eps eps)))
(*.f64 eps (fma.f64 eps -1/2 -2))
(fma.f64 -2 eps (*.f64 -1/2 (*.f64 eps eps)))
(*.f64 eps (fma.f64 eps -1/2 -2))

eval12.0ms (0.2%)

Compiler

Compiled 544 to 376 computations (30.9% saved)

prune6.0ms (0.1%)

Pruning

5 alts after pruning (0 fresh and 5 done)

PrunedKeptTotal
New40040
Fresh000
Picked011
Done044
Total40545
Error
0b
Counts
45 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
0.2b
(+.f64 (*.f64 -2 eps) (*.f64 -2/3 (pow.f64 eps 3)))
1.2b
(*.f64 eps (+.f64 -2 (*.f64 eps -1/2)))
0.5b
(*.f64 -2 eps)
52.0b
(neg.f64 eps)
58.8b
(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
Compiler

Compiled 34 to 26 computations (23.5% saved)

regimes11.0ms (0.2%)

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

3 calls:

5.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.0b1eps
0.0b1(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
0.0b1(/.f64 (-.f64 1 eps) (+.f64 1 eps))
Compiler

Compiled 60 to 40 computations (33.3% saved)

regimes12.0ms (0.2%)

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

3 calls:

4.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.2b1eps
0.2b1(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
0.2b1(/.f64 (-.f64 1 eps) (+.f64 1 eps))
Compiler

Compiled 54 to 38 computations (29.6% saved)

regimes9.0ms (0.2%)

Accuracy

Total -59.7b remaining (-12844.4%)

Threshold costs -59.7b (-12844.4%)

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

3 calls:

4.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.5b1eps
0.5b1(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
0.5b1(/.f64 (-.f64 1 eps) (+.f64 1 eps))
Compiler

Compiled 45 to 31 computations (31.1% 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
12230
22730
33030
43130
Stop Event
done
saturated
Calls
Call 1
Inputs
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))
(+.f64 (*.f64 -2 eps) (*.f64 -2/3 (pow.f64 eps 3)))
(*.f64 -2 eps)
(neg.f64 eps)
Outputs
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))
(+.f64 (*.f64 -2 eps) (*.f64 -2/3 (pow.f64 eps 3)))
(+.f64 (*.f64 eps -2) (*.f64 -2/3 (pow.f64 eps 3)))
(*.f64 -2 eps)
(*.f64 eps -2)
(neg.f64 eps)
Compiler

Compiled 24 to 18 computations (25% saved)

soundness401.0ms (8.2%)

Algorithm
egg-herbie
Rules
1088×fma-neg_binary64
890×fma-def_binary64
719×distribute-rgt-in_binary64
491×distribute-lft-in_binary64
331×sub-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0712
11810
22810
34110
47110
510310
615910
729210
860410
9103710
10144410
11200210
12274010
13383510
14467010
15476810
16480010
17480010
18639310
19674810
20682610
21683410
22684210
23684210
24704210
Stop Event
node limit
Compiler

Compiled 43 to 33 computations (23.3% saved)

end25.0ms (0.5%)

Compiler

Compiled 21 to 14 computations (33.3% saved)

Profiling

Loading profile data...