Compound Interest

Time bar (total: 5.8s)

analyze252.0ms (4.3%)

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
0%0%99.9%0.1%0%0%0%2
0%0%99.9%0.1%0%0%0%3
12.5%12.5%87.4%0.1%0%0%0%4
25%25%74.9%0.1%0%0%0%5
25%25%74.9%0.1%0%0%0%6
39.1%39%60.9%0.1%0%0%0%7
44.5%44.5%55.4%0.1%0%0%0%8
55.3%55%44.5%0.1%0%0%0.4%9
59.3%58.7%40.4%0.1%0%0%0.8%10
65.5%64.5%34%0.1%0%0%1.5%11
67.8%66.6%31.6%0.1%0%0%1.8%12
Compiler

Compiled 18 to 11 computations (38.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 160.0ms
ival-pow: 95.0ms (59.3% of total)
ival-div: 31.0ms (19.4% of total)
ival-add: 11.0ms (6.9% of total)
ival-mult: 11.0ms (6.9% of total)
ival-sub: 9.0ms (5.6% of total)
const: 3.0ms (1.9% of total)

sample5.1s (87.5%)

Results
1.9s1621×2048valid
1.4s2499×1024valid
687.0ms2875×256valid
519.0ms1230×512valid
135.0ms2080×256invalid
74.0ms31×4096valid
Precisions
Click to see histograms. Total time spent on operations: 3.8s
ival-pow: 2.9s (77.3% of total)
ival-div: 387.0ms (10.3% of total)
ival-mult: 158.0ms (4.2% of total)
ival-sub: 137.0ms (3.6% of total)
ival-add: 133.0ms (3.5% of total)
const: 36.0ms (1% of total)
Bogosity

preprocess109.0ms (1.9%)

Algorithm
egg-herbie
Rules
788×div-sub
373×fma-neg
353×associate-*r*
308×distribute-lft-neg-in
246×distribute-frac-neg2
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
038446
1106430
2286394
31033386
44346386
57495386
Stop Event
node limit
Calls
Call 1
Inputs
(*.f64 #s(literal 100 binary64) (/.f64 (-.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (/.f64 i n)) n) #s(literal 1 binary64)) (/.f64 i n)))
(*.f64 #s(literal 100 binary64) (/.f64 (-.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (/.f64 i n)) n) #s(literal 1 binary64)) (/.f64 i n)))
(*.f64 #s(literal 100 binary64) (/.f64 (-.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (/.f64 (neg.f64 i) n)) n) #s(literal 1 binary64)) (/.f64 (neg.f64 i) n)))
(*.f64 #s(literal 100 binary64) (/.f64 (-.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (/.f64 i (neg.f64 n))) (neg.f64 n)) #s(literal 1 binary64)) (/.f64 i (neg.f64 n))))
(neg.f64 (*.f64 #s(literal 100 binary64) (/.f64 (-.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (/.f64 (neg.f64 i) n)) n) #s(literal 1 binary64)) (/.f64 (neg.f64 i) n))))
(neg.f64 (*.f64 #s(literal 100 binary64) (/.f64 (-.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (/.f64 i (neg.f64 n))) (neg.f64 n)) #s(literal 1 binary64)) (/.f64 i (neg.f64 n)))))
(*.f64 #s(literal 100 binary64) (/.f64 (-.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (/.f64 n i)) i) #s(literal 1 binary64)) (/.f64 n i)))
Outputs
(*.f64 #s(literal 100 binary64) (/.f64 (-.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (/.f64 i n)) n) #s(literal 1 binary64)) (/.f64 i n)))
(*.f64 #s(literal 100 binary64) (/.f64 (+.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (/.f64 i n)) n) #s(literal -1 binary64)) (/.f64 i n)))
(/.f64 (+.f64 (*.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (/.f64 i n)) n) #s(literal 100 binary64)) #s(literal -100 binary64)) (/.f64 i n))
(*.f64 n (/.f64 (fma.f64 #s(literal 100 binary64) (pow.f64 (+.f64 #s(literal 1 binary64) (/.f64 i n)) n) #s(literal -100 binary64)) i))
(*.f64 #s(literal 100 binary64) (/.f64 (-.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (/.f64 i n)) n) #s(literal 1 binary64)) (/.f64 i n)))
(*.f64 #s(literal 100 binary64) (/.f64 (+.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (/.f64 i n)) n) #s(literal -1 binary64)) (/.f64 i n)))
(/.f64 (+.f64 (*.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (/.f64 i n)) n) #s(literal 100 binary64)) #s(literal -100 binary64)) (/.f64 i n))
(*.f64 n (/.f64 (fma.f64 #s(literal 100 binary64) (pow.f64 (+.f64 #s(literal 1 binary64) (/.f64 i n)) n) #s(literal -100 binary64)) i))
(*.f64 #s(literal 100 binary64) (/.f64 (-.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (/.f64 (neg.f64 i) n)) n) #s(literal 1 binary64)) (/.f64 (neg.f64 i) n)))
(*.f64 #s(literal 100 binary64) (/.f64 (+.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (/.f64 i (neg.f64 n))) n) #s(literal -1 binary64)) (/.f64 i (neg.f64 n))))
(*.f64 #s(literal 100 binary64) (/.f64 (+.f64 (pow.f64 (-.f64 #s(literal 1 binary64) (/.f64 i n)) n) #s(literal -1 binary64)) (/.f64 i (neg.f64 n))))
(*.f64 #s(literal -100 binary64) (/.f64 (+.f64 (pow.f64 (-.f64 #s(literal 1 binary64) (/.f64 i n)) n) #s(literal -1 binary64)) (/.f64 i n)))
(*.f64 n (/.f64 (fma.f64 (pow.f64 (-.f64 #s(literal 1 binary64) (/.f64 i n)) n) #s(literal -100 binary64) #s(literal 100 binary64)) i))
(*.f64 #s(literal 100 binary64) (/.f64 (-.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (/.f64 i (neg.f64 n))) (neg.f64 n)) #s(literal 1 binary64)) (/.f64 i (neg.f64 n))))
(*.f64 #s(literal 100 binary64) (/.f64 (+.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (/.f64 i (neg.f64 n))) (neg.f64 n)) #s(literal -1 binary64)) (/.f64 i (neg.f64 n))))
(*.f64 #s(literal 100 binary64) (*.f64 (/.f64 (+.f64 (pow.f64 (-.f64 #s(literal 1 binary64) (/.f64 i n)) (neg.f64 n)) #s(literal -1 binary64)) (neg.f64 i)) n))
(*.f64 #s(literal -100 binary64) (/.f64 (+.f64 (pow.f64 (-.f64 #s(literal 1 binary64) (/.f64 i n)) (neg.f64 n)) #s(literal -1 binary64)) (/.f64 i n)))
(*.f64 n (/.f64 (fma.f64 (pow.f64 (-.f64 #s(literal 1 binary64) (/.f64 i n)) (neg.f64 n)) #s(literal -100 binary64) #s(literal 100 binary64)) i))
(neg.f64 (*.f64 #s(literal 100 binary64) (/.f64 (-.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (/.f64 (neg.f64 i) n)) n) #s(literal 1 binary64)) (/.f64 (neg.f64 i) n))))
(*.f64 #s(literal -100 binary64) (/.f64 (+.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (/.f64 i (neg.f64 n))) n) #s(literal -1 binary64)) (/.f64 i (neg.f64 n))))
(*.f64 (/.f64 (+.f64 (pow.f64 (-.f64 #s(literal 1 binary64) (/.f64 i n)) n) #s(literal -1 binary64)) (/.f64 i (neg.f64 n))) #s(literal -100 binary64))
(/.f64 (fma.f64 #s(literal 100 binary64) (pow.f64 (-.f64 #s(literal 1 binary64) (/.f64 i n)) n) #s(literal -100 binary64)) (/.f64 i n))
(*.f64 (fma.f64 #s(literal 100 binary64) (pow.f64 (-.f64 #s(literal 1 binary64) (/.f64 i n)) n) #s(literal -100 binary64)) (/.f64 n i))
(neg.f64 (*.f64 #s(literal 100 binary64) (/.f64 (-.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (/.f64 i (neg.f64 n))) (neg.f64 n)) #s(literal 1 binary64)) (/.f64 i (neg.f64 n)))))
(*.f64 #s(literal -100 binary64) (/.f64 (+.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (/.f64 i (neg.f64 n))) (neg.f64 n)) #s(literal -1 binary64)) (/.f64 i (neg.f64 n))))
(*.f64 (*.f64 (/.f64 (+.f64 (pow.f64 (-.f64 #s(literal 1 binary64) (/.f64 i n)) (neg.f64 n)) #s(literal -1 binary64)) (neg.f64 i)) n) #s(literal -100 binary64))
(/.f64 (fma.f64 #s(literal 100 binary64) (pow.f64 (-.f64 #s(literal 1 binary64) (/.f64 i n)) (neg.f64 n)) #s(literal -100 binary64)) (/.f64 i n))
(*.f64 n (/.f64 (fma.f64 #s(literal 100 binary64) (pow.f64 (-.f64 #s(literal 1 binary64) (/.f64 i n)) (neg.f64 n)) #s(literal -100 binary64)) i))
(*.f64 #s(literal 100 binary64) (/.f64 (-.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (/.f64 n i)) i) #s(literal 1 binary64)) (/.f64 n i)))
(*.f64 #s(literal 100 binary64) (*.f64 (/.f64 (+.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (/.f64 n i)) i) #s(literal -1 binary64)) n) i))
(*.f64 (/.f64 (+.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (/.f64 n i)) i) #s(literal -1 binary64)) n) (*.f64 i #s(literal 100 binary64)))
(*.f64 i (/.f64 (fma.f64 #s(literal 100 binary64) (pow.f64 (+.f64 #s(literal 1 binary64) (/.f64 n i)) i) #s(literal -100 binary64)) n))

explain341.0ms (5.8%)

FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
1750-0-(-.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (/.f64 i n)) n) #s(literal 1 binary64))
7297(2.6967122005016944e+307 -3.487928166412431e+137)0-(pow.f64 (+.f64 #s(literal 1 binary64) (/.f64 i n)) n)
380-1(-2.6146055354382895e-143 -1.2371191492628244e+176)(/.f64 (-.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (/.f64 i n)) n) #s(literal 1 binary64)) (/.f64 i n))
21(-1.166397286420875e+72 -2.2612160345730294e-128)2(-4.0501115757611733e-73 -1.2871915498055842e-194)(*.f64 #s(literal 100 binary64) (/.f64 (-.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (/.f64 i n)) n) #s(literal 1 binary64)) (/.f64 i n)))
00-0-#s(literal 100 binary64)
00-0-(/.f64 i n)
00-0-i
00-0-#s(literal 1 binary64)
00-0-(+.f64 #s(literal 1 binary64) (/.f64 i n))
00-0-n
Results
134.0ms104×2048valid
99.0ms186×1024valid
23.0ms80×512valid
20.0ms140×256valid
5.0ms4096valid
Compiler

Compiled 135 to 32 computations (76.3% saved)

Precisions
Click to see histograms. Total time spent on operations: 218.0ms
ival-pow: 172.0ms (79% of total)
ival-div: 20.0ms (9.2% of total)
ival-sub: 8.0ms (3.7% of total)
ival-mult: 8.0ms (3.7% of total)
ival-add: 7.0ms (3.2% of total)
const: 2.0ms (0.9% of total)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune1.0ms (0%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
30.5%
(*.f64 #s(literal 100 binary64) (/.f64 (-.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (/.f64 i n)) n) #s(literal 1 binary64)) (/.f64 i n)))
Compiler

Compiled 34 to 20 computations (41.2% saved)

simplify2.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01558
12558
22958
33258
43558
53858
Stop Event
saturated
Calls
Call 1
Inputs
(*.f64 #s(literal 100 binary64) (/.f64 (-.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (/.f64 i n)) n) #s(literal 1 binary64)) (/.f64 i n)))
Outputs
(*.f64 #s(literal 100 binary64) (/.f64 (-.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (/.f64 i n)) n) #s(literal 1 binary64)) (/.f64 i n)))
(*.f64 #s(literal 100 binary64) (/.f64 (+.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (/.f64 i n)) n) #s(literal -1 binary64)) (/.f64 i n)))

soundness0.0ms (0%)

Stop Event
fuel
Compiler

Compiled 17 to 11 computations (35.3% saved)

preprocess27.0ms (0.5%)

Compiler

Compiled 152 to 78 computations (48.7% saved)

end0.0ms (0%)

Profiling

Loading profile data...