Quotient of sum of exps

Time bar (total: 2.0s)

analyze15.0ms (0.7%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
50%50%50%0.1%0%0%0%2
75%74.9%25%0.1%0%0%0%3
87.5%87.4%12.5%0.1%0%0%0%4
93.8%93.7%6.2%0.1%0%0%0%5
93.8%93.7%6.2%0.1%0%0%0%6
95.2%93.7%4.7%0.1%0%0%1.6%7
96%93.7%3.9%0.1%0%0%2.3%8
97.2%93.7%2.7%0.1%0%0%3.5%9
97.8%93.7%2.1%0.1%0%0%4.1%10
98.5%93.7%1.5%0.1%0%0%4.8%11
98.8%93.7%1.1%0.1%0%0%5.1%12
Compiler

Compiled 11 to 7 computations (36.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 3.0ms
Operation ival-exp, time spent: 2.0ms, 76.0% of total-time
Operation ival-add, time spent: 1.0ms, 38.0% of total-time
Operation ival-div, time spent: 0.0ms, 0.0% of total-time
Operation const, time spent: 0.0ms, 0.0% of total-time

sample1.4s (67.9%)

Results
916.0ms8255×256valid
396.0ms2942×256unsamplable
0.0ms256valid
Precisions
Click to see histograms. Total time spent on operations: 542.0ms
Operation ival-exp, time spent: 356.0ms, 66.0% of total-time
Operation ival-div, time spent: 90.0ms, 17.0% of total-time
Operation ival-add, time spent: 83.0ms, 15.0% of total-time
Operation const, time spent: 13.0ms, 2.0% of total-time
Bogosity

preprocess277.0ms (13.5%)

Algorithm
egg-herbie
Rules
496×fma-define
483×fma-neg
213×div-sub
194×times-frac
152×distribute-lft-in
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
30-0-(/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b)))
00-0-(exp.f64 a)
00-0-(exp.f64 b)
00-0-b
00-0-a
00-0-(+.f64 (exp.f64 a) (exp.f64 b))
Iterations

Useful iterations: 12 (0.0ms)

IterNodesCost
024270
148268
286266
3158266
4297238
5554238
6833238
71242238
81672238
92171238
102423224
112826216
123137211
133471211
143543211
153555211
163559211
Stop Event
saturated
Calls
Call 1
Inputs
(/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b)))
(/.f64 (exp.f64 (neg.f64 a)) (+.f64 (exp.f64 (neg.f64 a)) (exp.f64 b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 (neg.f64 b))))
(neg.f64 (/.f64 (exp.f64 (neg.f64 a)) (+.f64 (exp.f64 (neg.f64 a)) (exp.f64 b))))
(neg.f64 (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 (neg.f64 b)))))
(/.f64 (exp.f64 b) (+.f64 (exp.f64 b) (exp.f64 a)))
Outputs
(/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b)))
(/.f64 #s(literal 1 binary64) (-.f64 (/.f64 (exp.f64 b) (exp.f64 a)) #s(literal -1 binary64)))
(/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 (-.f64 b a))))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b)))
(/.f64 #s(literal 1 binary64) (-.f64 (/.f64 (exp.f64 b) (exp.f64 a)) #s(literal -1 binary64)))
(/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 (-.f64 b a))))
(/.f64 (exp.f64 (neg.f64 a)) (+.f64 (exp.f64 (neg.f64 a)) (exp.f64 b)))
(/.f64 (exp.f64 (neg.f64 a)) (+.f64 (exp.f64 b) (exp.f64 (neg.f64 a))))
(/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 (+.f64 a b))))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 (neg.f64 b))))
(/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 (-.f64 (neg.f64 a) b))))
(neg.f64 (/.f64 (exp.f64 (neg.f64 a)) (+.f64 (exp.f64 (neg.f64 a)) (exp.f64 b))))
(/.f64 (exp.f64 (neg.f64 a)) (neg.f64 (+.f64 (exp.f64 b) (exp.f64 (neg.f64 a)))))
(/.f64 (/.f64 #s(literal -1 binary64) (exp.f64 a)) (+.f64 (exp.f64 b) (exp.f64 (neg.f64 a))))
(/.f64 (exp.f64 (neg.f64 a)) (-.f64 (/.f64 #s(literal -1 binary64) (exp.f64 a)) (exp.f64 b)))
(/.f64 #s(literal 1 binary64) (-.f64 #s(literal -1 binary64) (exp.f64 (+.f64 a b))))
(neg.f64 (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 (neg.f64 b)))))
(/.f64 (exp.f64 a) (neg.f64 (+.f64 (exp.f64 a) (exp.f64 (neg.f64 b)))))
(/.f64 (exp.f64 a) (-.f64 (/.f64 #s(literal -1 binary64) (exp.f64 b)) (exp.f64 a)))
(/.f64 #s(literal 1 binary64) (-.f64 #s(literal -1 binary64) (exp.f64 (-.f64 (neg.f64 a) b))))
(/.f64 (exp.f64 b) (+.f64 (exp.f64 b) (exp.f64 a)))
(/.f64 (exp.f64 b) (+.f64 (exp.f64 a) (exp.f64 b)))
(/.f64 #s(literal -1 binary64) (-.f64 #s(literal -1 binary64) (exp.f64 (-.f64 a b))))
Compiler

Compiled 54 to 20 computations (63% saved)

Precisions
Click to see histograms. Total time spent on operations: 17.0ms
Operation ival-exp, time spent: 9.0ms, 53.0% of total-time
Operation ival-div, time spent: 4.0ms, 24.0% of total-time
Operation ival-add, time spent: 3.0ms, 18.0% of total-time
Operation const, time spent: 1.0ms, 6.0% of total-time

eval1.0ms (0%)

Compiler

Compiled 19 to 15 computations (21.1% saved)

prune1.0ms (0%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 (-.f64 b a))))
Compiler

Compiled 10 to 8 computations (20% saved)

localize40.0ms (1.9%)

Compiler

Compiled 27 to 12 computations (55.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 11.0ms
Operation ival-add, time spent: 5.0ms, 44.0% of total-time
Operation ival-div, time spent: 2.0ms, 18.0% of total-time
Operation ival-exp, time spent: 2.0ms, 18.0% of total-time
Operation ival-sub, time spent: 2.0ms, 18.0% of total-time
Operation const, time spent: 1.0ms, 9.0% of total-time

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune1.0ms (0.1%)

Pruning

1 alts after pruning (0 fresh and 1 done)

PrunedKeptTotal
New000
Fresh000
Picked011
Done000
Total011
Accuracy
100.0%
Counts
1 → 1
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 (-.f64 b a))))
Compiler

Compiled 28 to 20 computations (28.6% saved)

regimes5.0ms (0.2%)

Accuracy

Total -0.8b remaining (-∞%)

Threshold costs -0.8b (-∞%)

Counts
2 → 1
Calls
Call 1
Inputs
(/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 (-.f64 b a))))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b)))
Outputs
(/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 (-.f64 b a))))
Calls

5 calls:

1.0ms
b
1.0ms
a
1.0ms
(/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b)))
1.0ms
(exp.f64 b)
1.0ms
(exp.f64 a)
Results
AccuracySegmentsBranch
100.0%1a
100.0%1b
100.0%1(/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b)))
100.0%1(exp.f64 a)
100.0%1(exp.f64 b)
Compiler

Compiled 24 to 16 computations (33.3% saved)

simplify3.0ms (0.1%)

Algorithm
egg-herbie
Rules
1-exp
+-commutative
sub-neg
*-commutative
neg-sub0
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01329
12129
22529
32729
42829
Stop Event
done
saturated
Calls
Call 1
Inputs
(/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 (-.f64 b a))))
Outputs
(/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 (-.f64 b a))))
Compiler

Compiled 10 to 8 computations (20% saved)

soundness282.0ms (13.8%)

Rules
496×fma-define
483×fma-neg
213×div-sub
194×times-frac
152×distribute-lft-in
Iterations

Useful iterations: 12 (0.0ms)

IterNodesCost
024270
148268
286266
3158266
4297238
5554238
6833238
71242238
81672238
92171238
102423224
112826216
123137211
133471211
143543211
153555211
163559211
Stop Event
saturated
Compiler

Compiled 158 to 67 computations (57.6% saved)

end0.0ms (0%)

preprocess32.0ms (1.6%)

Compiler

Compiled 60 to 44 computations (26.7% saved)

Profiling

Loading profile data...