logq (problem 3.4.3)

Time bar (total: 4.9s)

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)

sample3.0s (60.3%)

Results
1.6s4102×body1024valid
893.0ms2088×body512valid
234.0ms421×body2048valid
215.0ms1645×body256valid
1.0ms16×body256invalid
Bogosity

preprocess313.0ms (6.3%)

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)

simplify255.0ms (5.2%)

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))
6.7%
(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
100.0%
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))
6.7%
(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
Compiler

Compiled 32 to 24 computations (25% saved)

localize142.0ms (2.9%)

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))
6.7%
(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)))

rewrite61.0ms (1.2%)

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

simplify61.0ms (1.2%)

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)

prune16.0ms (0.3%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New62466
Fresh000
Picked112
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))))
100.0%
(*.f64 eps (fma.f64 eps (*.f64 eps -2/3) -2))
99.8%
(*.f64 -2 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))))
100.0%
(*.f64 eps (fma.f64 eps (*.f64 eps -2/3) -2))
99.8%
(*.f64 -2 eps)
5.4%
0
Compiler

Compiled 76 to 58 computations (23.7% saved)

localize99.0ms (2%)

Local Accuracy

Found 3 expressions with local accuracy:

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

Compiled 78 to 58 computations (25.6% saved)

series3.0ms (0.1%)

Counts
3 → 12
Calls

9 calls:

TimeVariablePointExpression
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
(*.f64 -2/5 (pow.f64 eps 5))
0.0ms
eps
@-inf
(*.f64 -2/5 (pow.f64 eps 5))
0.0ms
eps
@0
(*.f64 eps -2/3)

rewrite68.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
1034×cbrt-prod
994×log-prod
772×exp-prod
538×prod-exp
518×pow-prod-down
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01233
125633
2271933
Stop Event
node limit
Counts
3 → 65
Calls
Call 1
Inputs
(*.f64 eps -2/3)
(*.f64 -2/3 (pow.f64 eps 3))
(*.f64 -2/5 (pow.f64 eps 5))
Outputs
(+.f64 0 (*.f64 eps -2/3))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 -2/3) eps)) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 -2/3) eps))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 -2/3) eps))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 -2/3) eps))))
(-.f64 (+.f64 1 (*.f64 eps -2/3)) 1)
(pow.f64 (*.f64 eps -2/3) 1)
(pow.f64 (cbrt.f64 (*.f64 eps -2/3)) 3)
(pow.f64 (*.f64 (*.f64 eps eps) 4/9) 1/2)
(pow.f64 (pow.f64 (*.f64 eps -2/3) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 eps -2/3)) 2)
(pow.f64 (E.f64) (log.f64 (*.f64 eps -2/3)))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 eps -2/3))) 2)) (cbrt.f64 (log.f64 (*.f64 eps -2/3))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 eps -2/3)))) (sqrt.f64 (log.f64 (*.f64 eps -2/3))))
(sqrt.f64 (*.f64 (*.f64 eps eps) 4/9))
(log.f64 (pow.f64 (exp.f64 -2/3) eps))
(cbrt.f64 (pow.f64 (*.f64 eps -2/3) 3))
(expm1.f64 (log1p.f64 (*.f64 eps -2/3)))
(exp.f64 (log.f64 (*.f64 eps -2/3)))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 eps -2/3))) 3))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 eps -2/3))) 1/3))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 eps -2/3))) 2))
(log1p.f64 (expm1.f64 (*.f64 eps -2/3)))
(+.f64 0 (*.f64 -2/3 (pow.f64 eps 3)))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 -2/3) (pow.f64 eps 3))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 -2/3) (pow.f64 eps 3)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 -2/3) (pow.f64 eps 3)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 -2/3) (pow.f64 eps 3)))))
(-.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 (*.f64 (pow.f64 eps 6) 4/9) 1/2)
(pow.f64 (pow.f64 (*.f64 eps (cbrt.f64 -2/3)) 9) 1/3)
(pow.f64 (*.f64 (pow.f64 eps 3/2) (sqrt.f64 -2/3)) 2)
(pow.f64 (E.f64) (fma.f64 3 (log.f64 eps) (log.f64 -2/3)))
(pow.f64 (*.f64 (sqrt.f64 (*.f64 eps -2/3)) eps) 2)
(pow.f64 (*.f64 eps (sqrt.f64 (*.f64 eps -2/3))) 2)
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (fma.f64 3 (log.f64 eps) (log.f64 -2/3))) 2)) (cbrt.f64 (fma.f64 3 (log.f64 eps) (log.f64 -2/3))))
(pow.f64 (exp.f64 (sqrt.f64 (fma.f64 3 (log.f64 eps) (log.f64 -2/3)))) (sqrt.f64 (fma.f64 3 (log.f64 eps) (log.f64 -2/3))))
(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 eps (cbrt.f64 -2/3)) 9))
(expm1.f64 (log1p.f64 (*.f64 -2/3 (pow.f64 eps 3))))
(exp.f64 (fma.f64 3 (log.f64 eps) (log.f64 -2/3)))
(exp.f64 (*.f64 (log.f64 (*.f64 eps (cbrt.f64 -2/3))) 3))
(exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 eps (cbrt.f64 -2/3)) 9)) 1/3))
(exp.f64 (*.f64 (log.f64 (*.f64 (pow.f64 eps 3/2) (sqrt.f64 -2/3))) 2))
(log1p.f64 (expm1.f64 (*.f64 -2/3 (pow.f64 eps 3))))
(+.f64 0 (*.f64 -2/5 (pow.f64 eps 5)))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 -2/5) (pow.f64 eps 5))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 -2/5) (pow.f64 eps 5)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 -2/5) (pow.f64 eps 5)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 -2/5) (pow.f64 eps 5)))))
(-.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 (*.f64 (pow.f64 eps 10) 4/25) 1/2)
(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)
(pow.f64 (E.f64) (log.f64 (*.f64 -2/5 (pow.f64 eps 5))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 -2/5 (pow.f64 eps 5)))) 2)) (cbrt.f64 (log.f64 (*.f64 -2/5 (pow.f64 eps 5)))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 -2/5 (pow.f64 eps 5))))) (sqrt.f64 (log.f64 (*.f64 -2/5 (pow.f64 eps 5)))))
(sqrt.f64 (*.f64 (pow.f64 eps 10) 4/25))
(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 (cbrt.f64 (*.f64 -2/5 (pow.f64 eps 5)))) 3))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 -2/5 (pow.f64 eps 5)))) 1/3))
(exp.f64 (*.f64 (log.f64 (*.f64 (sqrt.f64 -2/5) (pow.f64 eps 5/2))) 2))
(log1p.f64 (expm1.f64 (*.f64 -2/5 (pow.f64 eps 5))))

simplify84.0ms (1.7%)

Algorithm
egg-herbie
Rules
1316×fma-neg
844×log-prod
810×fma-def
574×unswap-sqr
560×sqr-pow
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01861195
14291111
212251111
342671111
475181111
Stop Event
node limit
Counts
77 → 78
Calls
Call 1
Inputs
(*.f64 -2/3 eps)
(*.f64 -2/3 eps)
(*.f64 -2/3 eps)
(*.f64 -2/3 eps)
(*.f64 -2/3 eps)
(*.f64 -2/3 eps)
(*.f64 -2/3 eps)
(*.f64 -2/3 eps)
(*.f64 -2/3 eps)
(*.f64 -2/3 eps)
(*.f64 -2/3 eps)
(*.f64 -2/3 eps)
(+.f64 0 (*.f64 eps -2/3))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 -2/3) eps)) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 -2/3) eps))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 -2/3) eps))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 -2/3) eps))))
(-.f64 (+.f64 1 (*.f64 eps -2/3)) 1)
(pow.f64 (*.f64 eps -2/3) 1)
(pow.f64 (cbrt.f64 (*.f64 eps -2/3)) 3)
(pow.f64 (*.f64 (*.f64 eps eps) 4/9) 1/2)
(pow.f64 (pow.f64 (*.f64 eps -2/3) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 eps -2/3)) 2)
(pow.f64 (E.f64) (log.f64 (*.f64 eps -2/3)))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 eps -2/3))) 2)) (cbrt.f64 (log.f64 (*.f64 eps -2/3))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 eps -2/3)))) (sqrt.f64 (log.f64 (*.f64 eps -2/3))))
(sqrt.f64 (*.f64 (*.f64 eps eps) 4/9))
(log.f64 (pow.f64 (exp.f64 -2/3) eps))
(cbrt.f64 (pow.f64 (*.f64 eps -2/3) 3))
(expm1.f64 (log1p.f64 (*.f64 eps -2/3)))
(exp.f64 (log.f64 (*.f64 eps -2/3)))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 eps -2/3))) 3))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 eps -2/3))) 1/3))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 eps -2/3))) 2))
(log1p.f64 (expm1.f64 (*.f64 eps -2/3)))
(+.f64 0 (*.f64 -2/3 (pow.f64 eps 3)))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 -2/3) (pow.f64 eps 3))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 -2/3) (pow.f64 eps 3)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 -2/3) (pow.f64 eps 3)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 -2/3) (pow.f64 eps 3)))))
(-.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 (*.f64 (pow.f64 eps 6) 4/9) 1/2)
(pow.f64 (pow.f64 (*.f64 eps (cbrt.f64 -2/3)) 9) 1/3)
(pow.f64 (*.f64 (pow.f64 eps 3/2) (sqrt.f64 -2/3)) 2)
(pow.f64 (E.f64) (fma.f64 3 (log.f64 eps) (log.f64 -2/3)))
(pow.f64 (*.f64 (sqrt.f64 (*.f64 eps -2/3)) eps) 2)
(pow.f64 (*.f64 eps (sqrt.f64 (*.f64 eps -2/3))) 2)
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (fma.f64 3 (log.f64 eps) (log.f64 -2/3))) 2)) (cbrt.f64 (fma.f64 3 (log.f64 eps) (log.f64 -2/3))))
(pow.f64 (exp.f64 (sqrt.f64 (fma.f64 3 (log.f64 eps) (log.f64 -2/3)))) (sqrt.f64 (fma.f64 3 (log.f64 eps) (log.f64 -2/3))))
(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 eps (cbrt.f64 -2/3)) 9))
(expm1.f64 (log1p.f64 (*.f64 -2/3 (pow.f64 eps 3))))
(exp.f64 (fma.f64 3 (log.f64 eps) (log.f64 -2/3)))
(exp.f64 (*.f64 (log.f64 (*.f64 eps (cbrt.f64 -2/3))) 3))
(exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 eps (cbrt.f64 -2/3)) 9)) 1/3))
(exp.f64 (*.f64 (log.f64 (*.f64 (pow.f64 eps 3/2) (sqrt.f64 -2/3))) 2))
(log1p.f64 (expm1.f64 (*.f64 -2/3 (pow.f64 eps 3))))
(+.f64 0 (*.f64 -2/5 (pow.f64 eps 5)))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 -2/5) (pow.f64 eps 5))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 -2/5) (pow.f64 eps 5)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 -2/5) (pow.f64 eps 5)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 -2/5) (pow.f64 eps 5)))))
(-.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 (*.f64 (pow.f64 eps 10) 4/25) 1/2)
(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)
(pow.f64 (E.f64) (log.f64 (*.f64 -2/5 (pow.f64 eps 5))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 -2/5 (pow.f64 eps 5)))) 2)) (cbrt.f64 (log.f64 (*.f64 -2/5 (pow.f64 eps 5)))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 -2/5 (pow.f64 eps 5))))) (sqrt.f64 (log.f64 (*.f64 -2/5 (pow.f64 eps 5)))))
(sqrt.f64 (*.f64 (pow.f64 eps 10) 4/25))
(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 (cbrt.f64 (*.f64 -2/5 (pow.f64 eps 5)))) 3))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 -2/5 (pow.f64 eps 5)))) 1/3))
(exp.f64 (*.f64 (log.f64 (*.f64 (sqrt.f64 -2/5) (pow.f64 eps 5/2))) 2))
(log1p.f64 (expm1.f64 (*.f64 -2/5 (pow.f64 eps 5))))
Outputs
(*.f64 -2/3 eps)
(*.f64 -2/3 eps)
(*.f64 -2/3 eps)
(*.f64 -2/3 eps)
(*.f64 -2/3 eps)
(*.f64 -2/3 eps)
(*.f64 -2/3 eps)
(*.f64 -2/3 eps)
(*.f64 -2/3 eps)
(*.f64 -2/3 eps)
(*.f64 -2/3 eps)
(*.f64 -2/3 eps)
(+.f64 0 (*.f64 eps -2/3))
(*.f64 -2/3 eps)
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 -2/3) eps)) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 -2/3) eps))))
(+.f64 (*.f64 2 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 -2/3) eps)))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 -2/3) eps))))
(*.f64 3 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 -2/3) eps))))
(*.f64 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 -2/3) eps))) 3)
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 -2/3) eps))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 -2/3) eps))))
(*.f64 -2/3 eps)
(-.f64 (+.f64 1 (*.f64 eps -2/3)) 1)
(*.f64 -2/3 eps)
(pow.f64 (*.f64 eps -2/3) 1)
(*.f64 -2/3 eps)
(pow.f64 (cbrt.f64 (*.f64 eps -2/3)) 3)
(*.f64 -2/3 eps)
(pow.f64 (*.f64 (*.f64 eps eps) 4/9) 1/2)
(*.f64 -2/3 eps)
(pow.f64 (pow.f64 (*.f64 eps -2/3) 3) 1/3)
(*.f64 -2/3 eps)
(pow.f64 (sqrt.f64 (*.f64 eps -2/3)) 2)
(*.f64 -2/3 eps)
(pow.f64 (E.f64) (log.f64 (*.f64 eps -2/3)))
(*.f64 -2/3 eps)
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 eps -2/3))) 2)) (cbrt.f64 (log.f64 (*.f64 eps -2/3))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 -2/3 eps))) 2)) (cbrt.f64 (log.f64 (*.f64 -2/3 eps))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 eps -2/3)))) (sqrt.f64 (log.f64 (*.f64 eps -2/3))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 -2/3 eps)))) (sqrt.f64 (log.f64 (*.f64 -2/3 eps))))
(sqrt.f64 (*.f64 (*.f64 eps eps) 4/9))
(*.f64 -2/3 eps)
(log.f64 (pow.f64 (exp.f64 -2/3) eps))
(*.f64 -2/3 eps)
(cbrt.f64 (pow.f64 (*.f64 eps -2/3) 3))
(*.f64 -2/3 eps)
(expm1.f64 (log1p.f64 (*.f64 eps -2/3)))
(*.f64 -2/3 eps)
(exp.f64 (log.f64 (*.f64 eps -2/3)))
(*.f64 -2/3 eps)
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 eps -2/3))) 3))
(*.f64 -2/3 eps)
(exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 eps -2/3))) 1/3))
(*.f64 -2/3 eps)
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 eps -2/3))) 2))
(*.f64 -2/3 eps)
(log1p.f64 (expm1.f64 (*.f64 eps -2/3)))
(*.f64 -2/3 eps)
(+.f64 0 (*.f64 -2/3 (pow.f64 eps 3)))
(*.f64 -2/3 (pow.f64 eps 3))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 -2/3) (pow.f64 eps 3))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 -2/3) (pow.f64 eps 3)))))
(*.f64 3 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 -2/3) (pow.f64 eps 3)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 -2/3) (pow.f64 eps 3)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 -2/3) (pow.f64 eps 3)))))
(*.f64 -2/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 (*.f64 (pow.f64 eps 6) 4/9) 1/2)
(sqrt.f64 (*.f64 4/9 (pow.f64 eps 6)))
(pow.f64 (pow.f64 (*.f64 eps (cbrt.f64 -2/3)) 9) 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))
(pow.f64 (E.f64) (fma.f64 3 (log.f64 eps) (log.f64 -2/3)))
(pow.f64 (*.f64 (sqrt.f64 (*.f64 eps -2/3)) eps) 2)
(*.f64 -2/3 (pow.f64 eps 3))
(pow.f64 (*.f64 eps (sqrt.f64 (*.f64 eps -2/3))) 2)
(*.f64 -2/3 (pow.f64 eps 3))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (fma.f64 3 (log.f64 eps) (log.f64 -2/3))) 2)) (cbrt.f64 (fma.f64 3 (log.f64 eps) (log.f64 -2/3))))
(pow.f64 (exp.f64 (sqrt.f64 (fma.f64 3 (log.f64 eps) (log.f64 -2/3)))) (sqrt.f64 (fma.f64 3 (log.f64 eps) (log.f64 -2/3))))
(sqrt.f64 (*.f64 (pow.f64 eps 6) 4/9))
(sqrt.f64 (*.f64 4/9 (pow.f64 eps 6)))
(log.f64 (pow.f64 (exp.f64 -2/3) (pow.f64 eps 3)))
(*.f64 -2/3 (pow.f64 eps 3))
(cbrt.f64 (pow.f64 (*.f64 eps (cbrt.f64 -2/3)) 9))
(*.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 (fma.f64 3 (log.f64 eps) (log.f64 -2/3)))
(*.f64 -2/3 (pow.f64 eps 3))
(exp.f64 (*.f64 (log.f64 (*.f64 eps (cbrt.f64 -2/3))) 3))
(*.f64 -2/3 (pow.f64 eps 3))
(exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 eps (cbrt.f64 -2/3)) 9)) 1/3))
(*.f64 -2/3 (pow.f64 eps 3))
(exp.f64 (*.f64 (log.f64 (*.f64 (pow.f64 eps 3/2) (sqrt.f64 -2/3))) 2))
(*.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 0 (*.f64 -2/5 (pow.f64 eps 5)))
(*.f64 -2/5 (pow.f64 eps 5))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 -2/5) (pow.f64 eps 5))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 -2/5) (pow.f64 eps 5)))))
(*.f64 3 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 -2/5) (pow.f64 eps 5)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 -2/5) (pow.f64 eps 5)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 -2/5) (pow.f64 eps 5)))))
(*.f64 -2/5 (pow.f64 eps 5))
(-.f64 (+.f64 1 (*.f64 -2/5 (pow.f64 eps 5))) 1)
(*.f64 -2/5 (pow.f64 eps 5))
(pow.f64 (*.f64 -2/5 (pow.f64 eps 5)) 1)
(*.f64 -2/5 (pow.f64 eps 5))
(pow.f64 (cbrt.f64 (*.f64 -2/5 (pow.f64 eps 5))) 3)
(*.f64 -2/5 (pow.f64 eps 5))
(pow.f64 (*.f64 (pow.f64 eps 10) 4/25) 1/2)
(*.f64 -2/5 (pow.f64 eps 5))
(pow.f64 (pow.f64 (*.f64 -2/5 (pow.f64 eps 5)) 3) 1/3)
(*.f64 -2/5 (pow.f64 eps 5))
(pow.f64 (*.f64 (sqrt.f64 -2/5) (pow.f64 eps 5/2)) 2)
(*.f64 -2/5 (pow.f64 eps 5))
(pow.f64 (E.f64) (log.f64 (*.f64 -2/5 (pow.f64 eps 5))))
(*.f64 -2/5 (pow.f64 eps 5))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 -2/5 (pow.f64 eps 5)))) 2)) (cbrt.f64 (log.f64 (*.f64 -2/5 (pow.f64 eps 5)))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (fma.f64 5 (log.f64 eps) (log.f64 -2/5))) 2)) (cbrt.f64 (fma.f64 5 (log.f64 eps) (log.f64 -2/5))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 -2/5 (pow.f64 eps 5))))) (sqrt.f64 (log.f64 (*.f64 -2/5 (pow.f64 eps 5)))))
(pow.f64 (exp.f64 (sqrt.f64 (fma.f64 5 (log.f64 eps) (log.f64 -2/5)))) (sqrt.f64 (fma.f64 5 (log.f64 eps) (log.f64 -2/5))))
(sqrt.f64 (*.f64 (pow.f64 eps 10) 4/25))
(*.f64 -2/5 (pow.f64 eps 5))
(log.f64 (pow.f64 (exp.f64 -2/5) (pow.f64 eps 5)))
(*.f64 -2/5 (pow.f64 eps 5))
(cbrt.f64 (pow.f64 (*.f64 -2/5 (pow.f64 eps 5)) 3))
(*.f64 -2/5 (pow.f64 eps 5))
(expm1.f64 (log1p.f64 (*.f64 -2/5 (pow.f64 eps 5))))
(*.f64 -2/5 (pow.f64 eps 5))
(exp.f64 (log.f64 (*.f64 -2/5 (pow.f64 eps 5))))
(*.f64 -2/5 (pow.f64 eps 5))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 -2/5 (pow.f64 eps 5)))) 3))
(*.f64 -2/5 (pow.f64 eps 5))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 -2/5 (pow.f64 eps 5)))) 1/3))
(*.f64 -2/5 (pow.f64 eps 5))
(exp.f64 (*.f64 (log.f64 (*.f64 (sqrt.f64 -2/5) (pow.f64 eps 5/2))) 2))
(*.f64 -2/5 (pow.f64 eps 5))
(log1p.f64 (expm1.f64 (*.f64 -2/5 (pow.f64 eps 5))))
(*.f64 -2/5 (pow.f64 eps 5))

eval29.0ms (0.6%)

Compiler

Compiled 1357 to 1090 computations (19.7% saved)

prune11.0ms (0.2%)

Pruning

5 alts after pruning (1 fresh and 4 done)

PrunedKeptTotal
New78078
Fresh011
Picked033
Done011
Total78583
Accurracy
100.0%
Counts
83 → 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))))
100.0%
(*.f64 eps (fma.f64 eps (*.f64 eps -2/3) -2))
99.8%
(*.f64 -2 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))))
100.0%
(*.f64 eps (fma.f64 eps (*.f64 eps -2/3) -2))
99.8%
(*.f64 -2 eps)
5.4%
0
Compiler

Compiled 76 to 58 computations (23.7% saved)

localize0.0ms (0%)

eval0.0ms (0%)

Compiler

Compiled 1 to 1 computations (0% saved)

prune4.0ms (0.1%)

Pruning

5 alts after pruning (1 fresh and 4 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done044
Total055
Accurracy
100.0%
Counts
5 → 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))))
100.0%
(*.f64 eps (fma.f64 eps (*.f64 eps -2/3) -2))
99.8%
(*.f64 -2 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))))
100.0%
(*.f64 eps (fma.f64 eps (*.f64 eps -2/3) -2))
99.8%
(*.f64 -2 eps)
5.4%
0
Compiler

Compiled 76 to 58 computations (23.7% saved)

localize0.0ms (0%)

eval0.0ms (0%)

Compiler

Compiled 1 to 1 computations (0% saved)

prune5.0ms (0.1%)

Pruning

5 alts after pruning (1 fresh and 4 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done044
Total055
Accurracy
100.0%
Counts
5 → 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))))
100.0%
(*.f64 eps (fma.f64 eps (*.f64 eps -2/3) -2))
99.8%
(*.f64 -2 eps)
5.4%
0
Compiler

Compiled 80 to 60 computations (25% saved)

regimes10.0ms (0.2%)

Counts
6 → 1
Calls
Call 1
Inputs
0
(*.f64 -2 eps)
(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
(*.f64 eps (fma.f64 eps (*.f64 eps -2/3) -2))
(-.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 (pow.f64 eps 3))))
Calls

3 calls:

4.0ms
eps
2.0ms
(/.f64 (-.f64 1 eps) (+.f64 1 eps))
2.0ms
(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 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 61 to 45 computations (26.2% saved)

regimes9.0ms (0.2%)

Counts
5 → 1
Calls
Call 1
Inputs
0
(*.f64 -2 eps)
(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
(*.f64 eps (fma.f64 eps (*.f64 eps -2/3) -2))
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))
Outputs
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 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
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 46 to 33 computations (28.3% saved)

regimes12.0ms (0.2%)

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

3 calls:

6.0ms
eps
2.0ms
(log.f64 (/.f64 (-.f64 1 eps) (+.f64 1 eps)))
2.0ms
(/.f64 (-.f64 1 eps) (+.f64 1 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 40 to 29 computations (27.5% saved)

regimes8.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:

3.0ms
eps
2.0ms
(/.f64 (-.f64 1 eps) (+.f64 1 eps))
2.0ms
(log.f64 (/.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:

2.0ms
eps
Results
AccuracySegmentsBranch
5.4%1eps
Compiler

Compiled 4 to 3 computations (25% saved)

simplify6.0ms (0.1%)

Algorithm
egg-herbie
Rules
14×*-commutative
10×+-commutative
sub-neg
neg-mul-1
neg-sub0
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02591
13791
24291
34591
44691
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(+.f64 (*.f64 -2 eps) (+.f64 (*.f64 -2/5 (pow.f64 eps 5)) (*.f64 -2/3 (pow.f64 eps 3))))
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))
(*.f64 eps (fma.f64 eps (*.f64 eps -2/3) -2))
(*.f64 -2 eps)
0
Outputs
(+.f64 (*.f64 -2 eps) (+.f64 (*.f64 -2/5 (pow.f64 eps 5)) (*.f64 -2/3 (pow.f64 eps 3))))
(-.f64 (log1p.f64 (neg.f64 eps)) (log1p.f64 eps))
(*.f64 eps (fma.f64 eps (*.f64 eps -2/3) -2))
(*.f64 -2 eps)
0
Compiler

Compiled 38 to 29 computations (23.7% saved)

soundness668.0ms (13.5%)

Rules
3044×fma-def
1534×prod-diff
1482×fma-def
1338×distribute-lft-in
1230×fma-neg
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01357
127949
238053
064945
1182935
2460929
31293917
43996909
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
node limit
node limit
Compiler

Compiled 277 to 204 computations (26.4% saved)

end0.0ms (0%)

preprocess69.0ms (1.4%)

Compiler

Compiled 118 to 90 computations (23.7% saved)

Profiling

Loading profile data...