logq (problem 3.4.3)

Time bar (total: 4.8s)

analyze3.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%75%0%0%25%0%3
40%25%37.5%0%0%37.5%0%4
66.7%37.5%18.7%0%0%43.7%0%5
82.4%43.7%9.4%0%0%46.9%0%6
90.9%46.9%4.7%0%0%48.4%0%7
95.4%48.4%2.3%0%0%49.2%0%8
97.7%49.2%1.2%0%0%49.6%0%9
98.8%49.6%0.6%0%0%49.8%0%10
99.4%49.8%0.3%0%0%49.9%0%11
99.7%49.9%0.1%0%0%49.9%0%12
Compiler

Compiled 10 to 8 computations (20% saved)

sample2.8s (57%)

Results
1.9s4195×body1024valid
449.0ms2050×body512valid
242.0ms424×body2048valid
178.0ms1587×body256valid
1.0msbody256invalid
Bogosity

preprocess310.0ms (6.4%)

Algorithm
egg-herbie
Rules
8722×fma-def
1220×unsub-neg
1030×fma-neg
668×associate-+r+
656×distribute-rgt-in
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01450
13738
27038
314838
437738
598438
6186138
7253238
8352338
9476638
10532238
11548338
12565838
13610738
14700438
15707238
16710438
17712438
18721638
19735738
20747738
21747738
Stop Event
node limit
Calls
Call 1
Inputs
(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
(log.f64 (/.f64 (-.f64 1 (neg.f64 eps)) (+.f64 1 (neg.f64 eps))))
Outputs
(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))
(log.f64 (/.f64 (-.f64 1 (neg.f64 eps)) (+.f64 1 (neg.f64 eps))))
(log.f64 (/.f64 (-.f64 1 (neg.f64 eps)) (-.f64 1 eps)))
(-.f64 (log1p.f64 eps) (log1p.f64 (neg.f64 eps)))
Compiler

Compiled 10 to 8 computations (20% saved)

simplify330.0ms (6.8%)

Algorithm
egg-herbie
Rules
3044×fma-def
1338×distribute-lft-in
944×fma-neg
932×sub-neg
644×distribute-rgt-in
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0923
12019
23019
34419
47419
510619
616319
729619
860219
9105319
10146219
11203719
12286519
13406619
14490019
15499619
16502819
17502819
18653319
19716519
20724319
21725119
22725919
23725919
24745919
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)

prune2.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Accurracy
100.0%
Counts
3 → 2
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))
7.4%
(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
100.0%
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))
7.4%
(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
Compiler

Compiled 32 to 24 computations (25% saved)

localize197.0ms (4.1%)

Local Accuracy

Found 3 expressions with local accuracy:

NewAccuracyProgram
100.0%
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))
100.0%
(/.f64 (-.f64 1 eps) (+.f64 1 eps))
7.6%
(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
Compiler

Compiled 39 to 22 computations (43.6% saved)

series4.0ms (0.1%)

Counts
3 → 36
Calls

9 calls:

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

rewrite68.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
1534×prod-diff
920×log-prod
676×fma-def
448×pow-prod-up
412×pow-exp
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01357
127949
238053
Stop Event
node limit
Counts
3 → 3
Calls
Call 1
Inputs
(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
(/.f64 (-.f64 1 eps) (+.f64 1 eps))
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))
Outputs
0
1
0

simplify69.0ms (1.4%)

Algorithm
egg-herbie
Rules
1482×fma-def
1230×fma-neg
1004×times-frac
874×associate-*r/
848×cancel-sign-sub-inv
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
064945
1182935
2460929
31293917
43996909
Stop Event
node limit
Counts
39 → 66
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)))))
(*.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))))))
0
1
0
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 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))))
(+.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 (+.f64 (log.f64 -1) (/.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 (log.f64 -1) (+.f64 (/.f64 2 eps) (/.f64 2/5 (pow.f64 eps 5)))) (/.f64 2/3 (pow.f64 eps 3)))
(+.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 (+.f64 (log.f64 -1) (/.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 (log.f64 -1) (+.f64 (/.f64 2 eps) (/.f64 2/5 (pow.f64 eps 5)))) (/.f64 2/3 (pow.f64 eps 3)))
(+.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 -2 (pow.f64 eps 3) (fma.f64 eps (fma.f64 eps 2 -2) 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 -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 -1 (+.f64 (/.f64 -2 (*.f64 eps eps)) (+.f64 (/.f64 2 eps) (/.f64 2 (pow.f64 eps 3)))))
(+.f64 -1 (+.f64 (/.f64 2 eps) (*.f64 (/.f64 (/.f64 1 eps) eps) (+.f64 (/.f64 2 eps) -2))))
(+.f64 (/.f64 2 eps) (fma.f64 (/.f64 (/.f64 1 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 -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 -1 (+.f64 (/.f64 -2 (*.f64 eps eps)) (+.f64 (/.f64 2 eps) (/.f64 2 (pow.f64 eps 3)))))
(+.f64 -1 (+.f64 (/.f64 2 eps) (*.f64 (/.f64 (/.f64 1 eps) eps) (+.f64 (/.f64 2 eps) -2))))
(+.f64 (/.f64 2 eps) (fma.f64 (/.f64 (/.f64 1 eps) eps) (+.f64 -2 (/.f64 2 eps)) -1))
(*.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 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))))
(+.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 (+.f64 (log.f64 -1) (/.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 (log.f64 -1) (+.f64 (/.f64 2 eps) (/.f64 2/5 (pow.f64 eps 5)))) (/.f64 2/3 (pow.f64 eps 3)))
(+.f64 (log.f64 -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 (/.f64 -2 eps) (log.f64 -1)) (/.f64 -2/3 (pow.f64 eps 3)))
(-.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 (/.f64 -2 eps) (/.f64 -2/3 (pow.f64 eps 3))) (/.f64 -2/5 (pow.f64 eps 5))) (log.f64 -1))
(+.f64 (+.f64 (-.f64 (/.f64 -2 eps) (log.f64 -1)) (/.f64 -2/3 (pow.f64 eps 3))) (/.f64 -2/5 (pow.f64 eps 5)))
0
1
0

eval16.0ms (0.3%)

Compiler

Compiled 820 to 660 computations (19.5% saved)

prune47.0ms (1%)

Pruning

5 alts after pruning (3 fresh and 2 done)

PrunedKeptTotal
New63366
Fresh000
Picked022
Done000
Total63568
Accurracy
100.0%
Counts
68 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))
100.0%
(+.f64 (*.f64 -2 eps) (+.f64 (*.f64 -2/5 (pow.f64 eps 5)) (*.f64 -2/3 (pow.f64 eps 3))))
99.8%
(*.f64 -2 eps)
7.4%
(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
5.4%
0
100.0%
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))
100.0%
(+.f64 (*.f64 -2 eps) (+.f64 (*.f64 -2/5 (pow.f64 eps 5)) (*.f64 -2/3 (pow.f64 eps 3))))
99.8%
(*.f64 -2 eps)
7.4%
(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
5.4%
0
Compiler

Compiled 76 to 60 computations (21.1% saved)

localize150.0ms (3.1%)

Local Accuracy

Found 3 expressions with local accuracy:

NewAccuracyProgram
100.0%
(pow.f64 eps 3)
99.9%
(*.f64 -2/5 (pow.f64 eps 5))
99.8%
(*.f64 -2/3 (pow.f64 eps 3))
Compiler

Compiled 58 to 45 computations (22.4% saved)

series5.0ms (0.1%)

Counts
3 → 0
Calls

9 calls:

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

rewrite63.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
1892×pow1
1778×add-exp-log
1778×log1p-expm1-u
1778×expm1-log1p-u
218×add-sqr-sqrt
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01133
123633
2247633
Stop Event
node limit
Counts
3 → 44
Calls
Call 1
Inputs
(*.f64 -2/3 (pow.f64 eps 3))
(*.f64 -2/5 (pow.f64 eps 5))
(pow.f64 eps 3)
Outputs
(-.f64 (+.f64 1 (*.f64 -2/3 (pow.f64 eps 3))) 1)
(pow.f64 (*.f64 -2/3 (pow.f64 eps 3)) 1)
(pow.f64 (*.f64 eps (cbrt.f64 -2/3)) 3)
(pow.f64 (pow.f64 (*.f64 -2/3 (pow.f64 eps 3)) 3) 1/3)
(pow.f64 (*.f64 (pow.f64 eps 3/2) (sqrt.f64 -2/3)) 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))))
(exp.f64 (log.f64 (*.f64 -2/3 (pow.f64 eps 3))))
(exp.f64 (*.f64 (log.f64 (*.f64 -2/3 (pow.f64 eps 3))) 1))
(log1p.f64 (expm1.f64 (*.f64 -2/3 (pow.f64 eps 3))))
(-.f64 (+.f64 1 (*.f64 -2/5 (pow.f64 eps 5))) 1)
(pow.f64 (*.f64 -2/5 (pow.f64 eps 5)) 1)
(pow.f64 (cbrt.f64 (*.f64 -2/5 (pow.f64 eps 5))) 3)
(pow.f64 (pow.f64 (*.f64 -2/5 (pow.f64 eps 5)) 3) 1/3)
(pow.f64 (*.f64 (sqrt.f64 -2/5) (pow.f64 eps 5/2)) 2)
(sqrt.f64 (*.f64 4/25 (pow.f64 eps 10)))
(log.f64 (pow.f64 (exp.f64 -2/5) (pow.f64 eps 5)))
(cbrt.f64 (pow.f64 (*.f64 -2/5 (pow.f64 eps 5)) 3))
(expm1.f64 (log1p.f64 (*.f64 -2/5 (pow.f64 eps 5))))
(exp.f64 (log.f64 (*.f64 -2/5 (pow.f64 eps 5))))
(exp.f64 (*.f64 (log.f64 (*.f64 -2/5 (pow.f64 eps 5))) 1))
(log1p.f64 (expm1.f64 (*.f64 -2/5 (pow.f64 eps 5))))
(-.f64 (+.f64 1 (pow.f64 eps 3)) 1)
(*.f64 eps (*.f64 eps eps))
(*.f64 (pow.f64 eps 3) 1)
(*.f64 1 (pow.f64 eps 3))
(*.f64 (pow.f64 (cbrt.f64 eps) 2) (*.f64 (cbrt.f64 eps) (*.f64 eps eps)))
(*.f64 (*.f64 eps eps) eps)
(*.f64 (pow.f64 eps 3/2) (pow.f64 eps 3/2))
(*.f64 (sqrt.f64 eps) (*.f64 (sqrt.f64 eps) (*.f64 eps eps)))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 eps) 2) 3) eps)
(*.f64 (pow.f64 (sqrt.f64 eps) 3) (pow.f64 (sqrt.f64 eps) 3))
(*.f64 (*.f64 (*.f64 eps eps) 1) eps)
(*.f64 (*.f64 (*.f64 eps eps) (pow.f64 (cbrt.f64 eps) 2)) (cbrt.f64 eps))
(*.f64 (*.f64 (*.f64 eps eps) (sqrt.f64 eps)) (sqrt.f64 eps))
(sqrt.f64 (pow.f64 eps 6))
(log.f64 (exp.f64 (pow.f64 eps 3)))
(cbrt.f64 (pow.f64 (pow.f64 eps 3) 3))
(expm1.f64 (log1p.f64 (pow.f64 eps 3)))
(exp.f64 (*.f64 3 (log.f64 eps)))
(exp.f64 (*.f64 (*.f64 3 (log.f64 eps)) 1))
(log1p.f64 (expm1.f64 (pow.f64 eps 3)))

simplify51.0ms (1%)

Algorithm
egg-herbie
Rules
1654×fma-def
1326×log-prod
1304×distribute-rgt-in
1294×distribute-lft-in
728×unswap-sqr
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0113980
1272716
2886452
33106452
Stop Event
node limit
Counts
44 → 53
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 (*.f64 eps (cbrt.f64 -2/3)) 3)
(pow.f64 (pow.f64 (*.f64 -2/3 (pow.f64 eps 3)) 3) 1/3)
(pow.f64 (*.f64 (pow.f64 eps 3/2) (sqrt.f64 -2/3)) 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))))
(exp.f64 (log.f64 (*.f64 -2/3 (pow.f64 eps 3))))
(exp.f64 (*.f64 (log.f64 (*.f64 -2/3 (pow.f64 eps 3))) 1))
(log1p.f64 (expm1.f64 (*.f64 -2/3 (pow.f64 eps 3))))
(-.f64 (+.f64 1 (*.f64 -2/5 (pow.f64 eps 5))) 1)
(pow.f64 (*.f64 -2/5 (pow.f64 eps 5)) 1)
(pow.f64 (cbrt.f64 (*.f64 -2/5 (pow.f64 eps 5))) 3)
(pow.f64 (pow.f64 (*.f64 -2/5 (pow.f64 eps 5)) 3) 1/3)
(pow.f64 (*.f64 (sqrt.f64 -2/5) (pow.f64 eps 5/2)) 2)
(sqrt.f64 (*.f64 4/25 (pow.f64 eps 10)))
(log.f64 (pow.f64 (exp.f64 -2/5) (pow.f64 eps 5)))
(cbrt.f64 (pow.f64 (*.f64 -2/5 (pow.f64 eps 5)) 3))
(expm1.f64 (log1p.f64 (*.f64 -2/5 (pow.f64 eps 5))))
(exp.f64 (log.f64 (*.f64 -2/5 (pow.f64 eps 5))))
(exp.f64 (*.f64 (log.f64 (*.f64 -2/5 (pow.f64 eps 5))) 1))
(log1p.f64 (expm1.f64 (*.f64 -2/5 (pow.f64 eps 5))))
(-.f64 (+.f64 1 (pow.f64 eps 3)) 1)
(*.f64 eps (*.f64 eps eps))
(*.f64 (pow.f64 eps 3) 1)
(*.f64 1 (pow.f64 eps 3))
(*.f64 (pow.f64 (cbrt.f64 eps) 2) (*.f64 (cbrt.f64 eps) (*.f64 eps eps)))
(*.f64 (*.f64 eps eps) eps)
(*.f64 (pow.f64 eps 3/2) (pow.f64 eps 3/2))
(*.f64 (sqrt.f64 eps) (*.f64 (sqrt.f64 eps) (*.f64 eps eps)))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 eps) 2) 3) eps)
(*.f64 (pow.f64 (sqrt.f64 eps) 3) (pow.f64 (sqrt.f64 eps) 3))
(*.f64 (*.f64 (*.f64 eps eps) 1) eps)
(*.f64 (*.f64 (*.f64 eps eps) (pow.f64 (cbrt.f64 eps) 2)) (cbrt.f64 eps))
(*.f64 (*.f64 (*.f64 eps eps) (sqrt.f64 eps)) (sqrt.f64 eps))
(sqrt.f64 (pow.f64 eps 6))
(log.f64 (exp.f64 (pow.f64 eps 3)))
(cbrt.f64 (pow.f64 (pow.f64 eps 3) 3))
(expm1.f64 (log1p.f64 (pow.f64 eps 3)))
(exp.f64 (*.f64 3 (log.f64 eps)))
(exp.f64 (*.f64 (*.f64 3 (log.f64 eps)) 1))
(log1p.f64 (expm1.f64 (pow.f64 eps 3)))
Outputs
(-.f64 (+.f64 1 (*.f64 -2/3 (pow.f64 eps 3))) 1)
(+.f64 1 (-.f64 (*.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 1 (-.f64 (*.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 1 (-.f64 (*.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 1 (-.f64 (*.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 (pow.f64 eps 3/2) (sqrt.f64 -2/3)) 2)
(+.f64 1 (-.f64 (*.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 1 (-.f64 (*.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 1 (-.f64 (*.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 1 (-.f64 (*.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 1 (-.f64 (*.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 1 (-.f64 (*.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 (*.f64 (log.f64 (*.f64 -2/3 (pow.f64 eps 3))) 1))
(+.f64 1 (-.f64 (*.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 1 (-.f64 (*.f64 -2/3 (pow.f64 eps 3)) 1))
(+.f64 (*.f64 -2/3 (pow.f64 eps 3)) 0)
(*.f64 -2/3 (pow.f64 eps 3))
(-.f64 (+.f64 1 (*.f64 -2/5 (pow.f64 eps 5))) 1)
(+.f64 1 (-.f64 (*.f64 -2/5 (pow.f64 eps 5)) 1))
(+.f64 (*.f64 -2/5 (pow.f64 eps 5)) 0)
(*.f64 -2/5 (pow.f64 eps 5))
(pow.f64 (*.f64 -2/5 (pow.f64 eps 5)) 1)
(+.f64 1 (-.f64 (*.f64 -2/5 (pow.f64 eps 5)) 1))
(+.f64 (*.f64 -2/5 (pow.f64 eps 5)) 0)
(*.f64 -2/5 (pow.f64 eps 5))
(pow.f64 (cbrt.f64 (*.f64 -2/5 (pow.f64 eps 5))) 3)
(+.f64 1 (-.f64 (*.f64 -2/5 (pow.f64 eps 5)) 1))
(+.f64 (*.f64 -2/5 (pow.f64 eps 5)) 0)
(*.f64 -2/5 (pow.f64 eps 5))
(pow.f64 (pow.f64 (*.f64 -2/5 (pow.f64 eps 5)) 3) 1/3)
(+.f64 1 (-.f64 (*.f64 -2/5 (pow.f64 eps 5)) 1))
(+.f64 (*.f64 -2/5 (pow.f64 eps 5)) 0)
(*.f64 -2/5 (pow.f64 eps 5))
(pow.f64 (*.f64 (sqrt.f64 -2/5) (pow.f64 eps 5/2)) 2)
(+.f64 1 (-.f64 (*.f64 -2/5 (pow.f64 eps 5)) 1))
(+.f64 (*.f64 -2/5 (pow.f64 eps 5)) 0)
(*.f64 -2/5 (pow.f64 eps 5))
(sqrt.f64 (*.f64 4/25 (pow.f64 eps 10)))
(+.f64 1 (-.f64 (*.f64 -2/5 (pow.f64 eps 5)) 1))
(+.f64 (*.f64 -2/5 (pow.f64 eps 5)) 0)
(*.f64 -2/5 (pow.f64 eps 5))
(log.f64 (pow.f64 (exp.f64 -2/5) (pow.f64 eps 5)))
(+.f64 1 (-.f64 (*.f64 -2/5 (pow.f64 eps 5)) 1))
(+.f64 (*.f64 -2/5 (pow.f64 eps 5)) 0)
(*.f64 -2/5 (pow.f64 eps 5))
(cbrt.f64 (pow.f64 (*.f64 -2/5 (pow.f64 eps 5)) 3))
(+.f64 1 (-.f64 (*.f64 -2/5 (pow.f64 eps 5)) 1))
(+.f64 (*.f64 -2/5 (pow.f64 eps 5)) 0)
(*.f64 -2/5 (pow.f64 eps 5))
(expm1.f64 (log1p.f64 (*.f64 -2/5 (pow.f64 eps 5))))
(+.f64 1 (-.f64 (*.f64 -2/5 (pow.f64 eps 5)) 1))
(+.f64 (*.f64 -2/5 (pow.f64 eps 5)) 0)
(*.f64 -2/5 (pow.f64 eps 5))
(exp.f64 (log.f64 (*.f64 -2/5 (pow.f64 eps 5))))
(+.f64 1 (-.f64 (*.f64 -2/5 (pow.f64 eps 5)) 1))
(+.f64 (*.f64 -2/5 (pow.f64 eps 5)) 0)
(*.f64 -2/5 (pow.f64 eps 5))
(exp.f64 (*.f64 (log.f64 (*.f64 -2/5 (pow.f64 eps 5))) 1))
(+.f64 1 (-.f64 (*.f64 -2/5 (pow.f64 eps 5)) 1))
(+.f64 (*.f64 -2/5 (pow.f64 eps 5)) 0)
(*.f64 -2/5 (pow.f64 eps 5))
(log1p.f64 (expm1.f64 (*.f64 -2/5 (pow.f64 eps 5))))
(+.f64 1 (-.f64 (*.f64 -2/5 (pow.f64 eps 5)) 1))
(+.f64 (*.f64 -2/5 (pow.f64 eps 5)) 0)
(*.f64 -2/5 (pow.f64 eps 5))
(-.f64 (+.f64 1 (pow.f64 eps 3)) 1)
(+.f64 1 (-.f64 (pow.f64 eps 3) 1))
(+.f64 (pow.f64 eps 3) 0)
(pow.f64 eps 3)
(*.f64 eps (*.f64 eps eps))
(+.f64 1 (-.f64 (pow.f64 eps 3) 1))
(+.f64 (pow.f64 eps 3) 0)
(pow.f64 eps 3)
(*.f64 (pow.f64 eps 3) 1)
(+.f64 1 (-.f64 (pow.f64 eps 3) 1))
(+.f64 (pow.f64 eps 3) 0)
(pow.f64 eps 3)
(*.f64 1 (pow.f64 eps 3))
(+.f64 1 (-.f64 (pow.f64 eps 3) 1))
(+.f64 (pow.f64 eps 3) 0)
(pow.f64 eps 3)
(*.f64 (pow.f64 (cbrt.f64 eps) 2) (*.f64 (cbrt.f64 eps) (*.f64 eps eps)))
(+.f64 1 (-.f64 (pow.f64 eps 3) 1))
(+.f64 (pow.f64 eps 3) 0)
(pow.f64 eps 3)
(*.f64 (*.f64 eps eps) eps)
(+.f64 1 (-.f64 (pow.f64 eps 3) 1))
(+.f64 (pow.f64 eps 3) 0)
(pow.f64 eps 3)
(*.f64 (pow.f64 eps 3/2) (pow.f64 eps 3/2))
(+.f64 1 (-.f64 (pow.f64 eps 3) 1))
(+.f64 (pow.f64 eps 3) 0)
(pow.f64 eps 3)
(*.f64 (sqrt.f64 eps) (*.f64 (sqrt.f64 eps) (*.f64 eps eps)))
(+.f64 1 (-.f64 (pow.f64 eps 3) 1))
(+.f64 (pow.f64 eps 3) 0)
(pow.f64 eps 3)
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 eps) 2) 3) eps)
(+.f64 1 (-.f64 (pow.f64 eps 3) 1))
(+.f64 (pow.f64 eps 3) 0)
(pow.f64 eps 3)
(*.f64 (pow.f64 (sqrt.f64 eps) 3) (pow.f64 (sqrt.f64 eps) 3))
(+.f64 1 (-.f64 (pow.f64 eps 3) 1))
(+.f64 (pow.f64 eps 3) 0)
(pow.f64 eps 3)
(*.f64 (*.f64 (*.f64 eps eps) 1) eps)
(+.f64 1 (-.f64 (pow.f64 eps 3) 1))
(+.f64 (pow.f64 eps 3) 0)
(pow.f64 eps 3)
(*.f64 (*.f64 (*.f64 eps eps) (pow.f64 (cbrt.f64 eps) 2)) (cbrt.f64 eps))
(+.f64 1 (-.f64 (pow.f64 eps 3) 1))
(+.f64 (pow.f64 eps 3) 0)
(pow.f64 eps 3)
(*.f64 (*.f64 (*.f64 eps eps) (sqrt.f64 eps)) (sqrt.f64 eps))
(+.f64 1 (-.f64 (pow.f64 eps 3) 1))
(+.f64 (pow.f64 eps 3) 0)
(pow.f64 eps 3)
(sqrt.f64 (pow.f64 eps 6))
(+.f64 1 (-.f64 (pow.f64 eps 3) 1))
(+.f64 (pow.f64 eps 3) 0)
(pow.f64 eps 3)
(log.f64 (exp.f64 (pow.f64 eps 3)))
(+.f64 1 (-.f64 (pow.f64 eps 3) 1))
(+.f64 (pow.f64 eps 3) 0)
(pow.f64 eps 3)
(cbrt.f64 (pow.f64 (pow.f64 eps 3) 3))
(+.f64 1 (-.f64 (pow.f64 eps 3) 1))
(+.f64 (pow.f64 eps 3) 0)
(pow.f64 eps 3)
(expm1.f64 (log1p.f64 (pow.f64 eps 3)))
(+.f64 1 (-.f64 (pow.f64 eps 3) 1))
(+.f64 (pow.f64 eps 3) 0)
(pow.f64 eps 3)
(exp.f64 (*.f64 3 (log.f64 eps)))
(+.f64 1 (-.f64 (pow.f64 eps 3) 1))
(+.f64 (pow.f64 eps 3) 0)
(pow.f64 eps 3)
(exp.f64 (*.f64 (*.f64 3 (log.f64 eps)) 1))
(+.f64 1 (-.f64 (pow.f64 eps 3) 1))
(+.f64 (pow.f64 eps 3) 0)
(pow.f64 eps 3)
(log1p.f64 (expm1.f64 (pow.f64 eps 3)))
(+.f64 1 (-.f64 (pow.f64 eps 3) 1))
(+.f64 (pow.f64 eps 3) 0)
(pow.f64 eps 3)

eval29.0ms (0.6%)

Compiler

Compiled 951 to 755 computations (20.6% saved)

prune9.0ms (0.2%)

Pruning

4 alts after pruning (2 fresh and 2 done)

PrunedKeptTotal
New52153
Fresh011
Picked112
Done112
Total54458
Accurracy
100.0%
Counts
58 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(+.f64 (*.f64 -2 eps) (+.f64 (*.f64 -2/5 (pow.f64 eps 5)) (*.f64 -2/3 (*.f64 (*.f64 eps eps) eps))))
99.8%
(*.f64 -2 eps)
7.4%
(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
5.4%
0
100.0%
(+.f64 (*.f64 -2 eps) (+.f64 (*.f64 -2/5 (pow.f64 eps 5)) (*.f64 -2/3 (*.f64 (*.f64 eps eps) eps))))
99.8%
(*.f64 -2 eps)
7.4%
(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
5.4%
0
Compiler

Compiled 66 to 50 computations (24.2% saved)

localize70.0ms (1.5%)

Local Accuracy

Found 3 expressions with local accuracy:

NewAccuracyProgram
99.9%
(*.f64 (*.f64 eps eps) eps)
99.9%
(*.f64 -2/5 (pow.f64 eps 5))
99.8%
(*.f64 -2/3 (*.f64 (*.f64 eps eps) eps))
Compiler

Compiled 63 to 35 computations (44.4% saved)

series2.0ms (0%)

Counts
2 → 24
Calls

6 calls:

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

rewrite59.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
1190×pow1
1106×add-exp-log
1106×log1p-expm1-u
1106×expm1-log1p-u
1080×add-log-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0720
114320
2159420
Stop Event
node limit
Counts
2 → 22
Calls
Call 1
Inputs
(*.f64 -2/3 (*.f64 (*.f64 eps eps) eps))
(*.f64 (*.f64 eps eps) eps)
Outputs
(-.f64 (+.f64 1 (*.f64 -2/3 (pow.f64 eps 3))) 1)
(pow.f64 (*.f64 -2/3 (pow.f64 eps 3)) 1)
(pow.f64 (*.f64 eps (cbrt.f64 -2/3)) 3)
(pow.f64 (pow.f64 (*.f64 -2/3 (pow.f64 eps 3)) 3) 1/3)
(pow.f64 (*.f64 (pow.f64 eps 3/2) (sqrt.f64 -2/3)) 2)
(sqrt.f64 (*.f64 4/9 (pow.f64 eps 6)))
(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))))
(exp.f64 (log.f64 (*.f64 -2/3 (pow.f64 eps 3))))
(log1p.f64 (expm1.f64 (*.f64 -2/3 (pow.f64 eps 3))))
(-.f64 (+.f64 1 (pow.f64 eps 3)) 1)
(pow.f64 eps 3)
(pow.f64 (pow.f64 eps 3) 1)
(pow.f64 (pow.f64 (pow.f64 eps 3) 3) 1/3)
(pow.f64 (pow.f64 eps 3/2) 2)
(sqrt.f64 (pow.f64 eps 6))
(log.f64 (exp.f64 (pow.f64 eps 3)))
(cbrt.f64 (pow.f64 (pow.f64 eps 3) 3))
(expm1.f64 (log1p.f64 (pow.f64 eps 3)))
(exp.f64 (*.f64 (log.f64 eps) 3))
(log1p.f64 (expm1.f64 (pow.f64 eps 3)))

simplify47.0ms (1%)

Algorithm
egg-herbie
Rules
1966×log-prod
1256×fma-def
1214×associate-*r*
968×associate-*l*
634×associate-+r+
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
056460
1133460
2481460
33551460
Stop Event
node limit
Counts
46 → 23
Calls
Call 1
Inputs
(*.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))
(pow.f64 eps 3)
(pow.f64 eps 3)
(pow.f64 eps 3)
(pow.f64 eps 3)
(pow.f64 eps 3)
(pow.f64 eps 3)
(pow.f64 eps 3)
(pow.f64 eps 3)
(pow.f64 eps 3)
(pow.f64 eps 3)
(pow.f64 eps 3)
(pow.f64 eps 3)
(-.f64 (+.f64 1 (*.f64 -2/3 (pow.f64 eps 3))) 1)
(pow.f64 (*.f64 -2/3 (pow.f64 eps 3)) 1)
(pow.f64 (*.f64 eps (cbrt.f64 -2/3)) 3)
(pow.f64 (pow.f64 (*.f64 -2/3 (pow.f64 eps 3)) 3) 1/3)
(pow.f64 (*.f64 (pow.f64 eps 3/2) (sqrt.f64 -2/3)) 2)
(sqrt.f64 (*.f64 4/9 (pow.f64 eps 6)))
(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))))
(exp.f64 (log.f64 (*.f64 -2/3 (pow.f64 eps 3))))
(log1p.f64 (expm1.f64 (*.f64 -2/3 (pow.f64 eps 3))))
(-.f64 (+.f64 1 (pow.f64 eps 3)) 1)
(pow.f64 eps 3)
(pow.f64 (pow.f64 eps 3) 1)
(pow.f64 (pow.f64 (pow.f64 eps 3) 3) 1/3)
(pow.f64 (pow.f64 eps 3/2) 2)
(sqrt.f64 (pow.f64 eps 6))
(log.f64 (exp.f64 (pow.f64 eps 3)))
(cbrt.f64 (pow.f64 (pow.f64 eps 3) 3))
(expm1.f64 (log1p.f64 (pow.f64 eps 3)))
(exp.f64 (*.f64 (log.f64 eps) 3))
(log1p.f64 (expm1.f64 (pow.f64 eps 3)))
Outputs
(*.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))
(pow.f64 eps 3)
(pow.f64 eps 3)
(pow.f64 eps 3)
(pow.f64 eps 3)
(pow.f64 eps 3)
(pow.f64 eps 3)
(pow.f64 eps 3)
(pow.f64 eps 3)
(pow.f64 eps 3)
(pow.f64 eps 3)
(pow.f64 eps 3)
(pow.f64 eps 3)
(-.f64 (+.f64 1 (*.f64 -2/3 (pow.f64 eps 3))) 1)
(*.f64 -2/3 (pow.f64 eps 3))
(pow.f64 (*.f64 -2/3 (pow.f64 eps 3)) 1)
(*.f64 -2/3 (pow.f64 eps 3))
(pow.f64 (*.f64 eps (cbrt.f64 -2/3)) 3)
(*.f64 -2/3 (pow.f64 eps 3))
(pow.f64 (pow.f64 (*.f64 -2/3 (pow.f64 eps 3)) 3) 1/3)
(*.f64 -2/3 (pow.f64 eps 3))
(pow.f64 (*.f64 (pow.f64 eps 3/2) (sqrt.f64 -2/3)) 2)
(*.f64 -2/3 (pow.f64 eps 3))
(sqrt.f64 (*.f64 4/9 (pow.f64 eps 6)))
(*.f64 -2/3 (pow.f64 eps 3))
(log.f64 (pow.f64 (exp.f64 -2/3) (pow.f64 eps 3)))
(*.f64 -2/3 (pow.f64 eps 3))
(cbrt.f64 (pow.f64 (*.f64 -2/3 (pow.f64 eps 3)) 3))
(*.f64 -2/3 (pow.f64 eps 3))
(expm1.f64 (log1p.f64 (*.f64 -2/3 (pow.f64 eps 3))))
(*.f64 -2/3 (pow.f64 eps 3))
(exp.f64 (log.f64 (*.f64 -2/3 (pow.f64 eps 3))))
(*.f64 -2/3 (pow.f64 eps 3))
(log1p.f64 (expm1.f64 (*.f64 -2/3 (pow.f64 eps 3))))
(*.f64 -2/3 (pow.f64 eps 3))
(-.f64 (+.f64 1 (pow.f64 eps 3)) 1)
(pow.f64 eps 3)
(pow.f64 eps 3)
(pow.f64 (pow.f64 eps 3) 1)
(pow.f64 eps 3)
(pow.f64 (pow.f64 (pow.f64 eps 3) 3) 1/3)
(pow.f64 eps 3)
(pow.f64 (pow.f64 eps 3/2) 2)
(pow.f64 eps 3)
(sqrt.f64 (pow.f64 eps 6))
(pow.f64 eps 3)
(log.f64 (exp.f64 (pow.f64 eps 3)))
(pow.f64 eps 3)
(cbrt.f64 (pow.f64 (pow.f64 eps 3) 3))
(pow.f64 eps 3)
(expm1.f64 (log1p.f64 (pow.f64 eps 3)))
(pow.f64 eps 3)
(exp.f64 (*.f64 (log.f64 eps) 3))
(pow.f64 eps 3)
(log1p.f64 (expm1.f64 (pow.f64 eps 3)))
(pow.f64 eps 3)

eval14.0ms (0.3%)

Compiler

Compiled 689 to 517 computations (25% saved)

prune7.0ms (0.1%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New38038
Fresh011
Picked011
Done022
Total38442
Accurracy
100.0%
Counts
42 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(+.f64 (*.f64 -2 eps) (+.f64 (*.f64 -2/5 (pow.f64 eps 5)) (*.f64 -2/3 (*.f64 (*.f64 eps eps) eps))))
99.8%
(*.f64 -2 eps)
7.4%
(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
5.4%
0
100.0%
(+.f64 (*.f64 -2 eps) (+.f64 (*.f64 -2/5 (pow.f64 eps 5)) (*.f64 -2/3 (*.f64 (*.f64 eps eps) eps))))
99.8%
(*.f64 -2 eps)
7.4%
(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
5.4%
0
Compiler

Compiled 66 to 50 computations (24.2% saved)

localize0.0ms (0%)

eval0.0ms (0%)

Compiler

Compiled 1 to 1 computations (0% saved)

prune3.0ms (0.1%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done033
Total044
Accurracy
100.0%
Counts
4 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(+.f64 (*.f64 -2 eps) (+.f64 (*.f64 -2/5 (pow.f64 eps 5)) (*.f64 -2/3 (*.f64 (*.f64 eps eps) eps))))
99.8%
(*.f64 -2 eps)
7.4%
(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
5.4%
0
Compiler

Compiled 84 to 63 computations (25% saved)

regimes18.0ms (0.4%)

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

3 calls:

6.0ms
(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
5.0ms
(/.f64 (-.f64 1 eps) (+.f64 1 eps))
5.0ms
eps
Results
AccuracySegmentsBranch
100.0%1eps
100.0%1(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
100.0%1(/.f64 (-.f64 1 eps) (+.f64 1 eps))
Compiler

Compiled 70 to 52 computations (25.7% saved)

regimes9.0ms (0.2%)

Counts
3 → 1
Calls
Call 1
Inputs
0
(*.f64 -2 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
AccuracySegmentsBranch
99.8%1eps
99.8%1(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
99.8%1(/.f64 (-.f64 1 eps) (+.f64 1 eps))
Compiler

Compiled 32 to 24 computations (25% saved)

regimes3.0ms (0.1%)

Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

Counts
1 → 1
Calls
Call 1
Inputs
0
Outputs
0
Calls

1 calls:

3.0ms
eps
Results
AccuracySegmentsBranch
5.4%1eps
Compiler

Compiled 4 to 3 computations (25% saved)

simplify5.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative
+-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01657
12257
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(+.f64 (*.f64 -2 eps) (+.f64 (*.f64 -2/5 (pow.f64 eps 5)) (*.f64 -2/3 (*.f64 (*.f64 eps eps) eps))))
(*.f64 -2 eps)
0
Outputs
(+.f64 (*.f64 -2 eps) (+.f64 (*.f64 -2/5 (pow.f64 eps 5)) (*.f64 -2/3 (*.f64 (*.f64 eps eps) eps))))
(+.f64 (*.f64 -2 eps) (+.f64 (*.f64 -2/5 (pow.f64 eps 5)) (*.f64 -2/3 (*.f64 eps (*.f64 eps eps)))))
(*.f64 -2 eps)
0
Compiler

Compiled 24 to 18 computations (25% saved)

soundness167.0ms (3.5%)

Rules
1892×pow1
1778×add-exp-log
1778×log1p-expm1-u
1778×expm1-log1p-u
1534×prod-diff
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01133
123633
2247633
01357
127949
238053
Stop Event
node limit
node limit
Compiler

Compiled 172 to 132 computations (23.3% saved)

end0.0ms (0%)

preprocess320.0ms (6.6%)

Compiler

Compiled 94 to 72 computations (23.4% saved)

Profiling

Loading profile data...