System.Random.MWC.Distributions:gamma from mwc-random-0.13.3.2

Time bar (total: 2.1s)

analyze2.0ms (0.1%)

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
100%49.9%0%0.1%0%49.9%0%4
Compiler

Compiled 16 to 12 computations (25% saved)

Precisions
Click to see histograms. Total time spent on operations: 1.0ms
Operation ival-sub, time spent: 0.0ms, 0.0% of total-time
Operation ival-log, time spent: 0.0ms, 0.0% of total-time
Operation ival-add, time spent: 0.0ms, 0.0% of total-time
Operation ival-mult, time spent: 0.0ms, 0.0% of total-time
Operation const, time spent: 0.0ms, 0.0% of total-time

sample1.4s (69.7%)

Results
1.2s7257×256valid
150.0ms998×256infinite
0.0ms256valid
Precisions
Click to see histograms. Total time spent on operations: 629.0ms
Operation ival-add, time spent: 226.0ms, 36.0% of total-time
Operation ival-log, time spent: 173.0ms, 28.0% of total-time
Operation ival-mult, time spent: 154.0ms, 24.0% of total-time
Operation ival-sub, time spent: 57.0ms, 9.0% of total-time
Operation const, time spent: 19.0ms, 3.0% of total-time
Bogosity

preprocess621.0ms (30.2%)

Algorithm
egg-herbie
Rules
9646×fma-neg
1480×unsub-neg
1166×sub-neg
646×associate--r-
598×distribute-lft-in
Iterations

Useful iterations: 17 (1.0ms)

IterNodesCost
047509
1151493
2445485
31512481
44428481
56213481
66792481
76978481
87084481
97125481
107664481
117827481
127834481
137834481
147834481
157912481
167928481
177928473
Stop Event
node limit
Calls
Call 1
Inputs
(+.f64 (*.f64 x #s(literal 1/2 binary64)) (*.f64 y (+.f64 (-.f64 #s(literal 1 binary64) z) (log.f64 z))))
(+.f64 (*.f64 x #s(literal 1/2 binary64)) (*.f64 y (+.f64 (-.f64 #s(literal 1 binary64) z) (log.f64 z))))
(+.f64 (*.f64 (neg.f64 x) #s(literal 1/2 binary64)) (*.f64 y (+.f64 (-.f64 #s(literal 1 binary64) z) (log.f64 z))))
(+.f64 (*.f64 x #s(literal 1/2 binary64)) (*.f64 (neg.f64 y) (+.f64 (-.f64 #s(literal 1 binary64) z) (log.f64 z))))
(+.f64 (*.f64 x #s(literal 1/2 binary64)) (*.f64 y (+.f64 (-.f64 #s(literal 1 binary64) (neg.f64 z)) (log.f64 (neg.f64 z)))))
(neg.f64 (+.f64 (*.f64 (neg.f64 x) #s(literal 1/2 binary64)) (*.f64 y (+.f64 (-.f64 #s(literal 1 binary64) z) (log.f64 z)))))
(neg.f64 (+.f64 (*.f64 x #s(literal 1/2 binary64)) (*.f64 (neg.f64 y) (+.f64 (-.f64 #s(literal 1 binary64) z) (log.f64 z)))))
(neg.f64 (+.f64 (*.f64 x #s(literal 1/2 binary64)) (*.f64 y (+.f64 (-.f64 #s(literal 1 binary64) (neg.f64 z)) (log.f64 (neg.f64 z))))))
(+.f64 (*.f64 y #s(literal 1/2 binary64)) (*.f64 x (+.f64 (-.f64 #s(literal 1 binary64) z) (log.f64 z))))
(+.f64 (*.f64 z #s(literal 1/2 binary64)) (*.f64 y (+.f64 (-.f64 #s(literal 1 binary64) x) (log.f64 x))))
(+.f64 (*.f64 x #s(literal 1/2 binary64)) (*.f64 z (+.f64 (-.f64 #s(literal 1 binary64) y) (log.f64 y))))
Outputs
(+.f64 (*.f64 x #s(literal 1/2 binary64)) (*.f64 y (+.f64 (-.f64 #s(literal 1 binary64) z) (log.f64 z))))
(fma.f64 x #s(literal 1/2 binary64) (*.f64 y (+.f64 (-.f64 #s(literal 1 binary64) z) (log.f64 z))))
(fma.f64 y (+.f64 (-.f64 #s(literal 1 binary64) z) (log.f64 z)) (*.f64 x #s(literal 1/2 binary64)))
(fma.f64 x #s(literal 1/2 binary64) (*.f64 y (+.f64 #s(literal 1 binary64) (-.f64 (log.f64 z) z))))
(fma.f64 x #s(literal 1/2 binary64) (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 x #s(literal 1/2 binary64)) (*.f64 y (+.f64 (-.f64 #s(literal 1 binary64) z) (log.f64 z))))
(fma.f64 x #s(literal 1/2 binary64) (*.f64 y (+.f64 (-.f64 #s(literal 1 binary64) z) (log.f64 z))))
(fma.f64 y (+.f64 (-.f64 #s(literal 1 binary64) z) (log.f64 z)) (*.f64 x #s(literal 1/2 binary64)))
(fma.f64 x #s(literal 1/2 binary64) (*.f64 y (+.f64 #s(literal 1 binary64) (-.f64 (log.f64 z) z))))
(fma.f64 x #s(literal 1/2 binary64) (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 (neg.f64 x) #s(literal 1/2 binary64)) (*.f64 y (+.f64 (-.f64 #s(literal 1 binary64) z) (log.f64 z))))
(fma.f64 (neg.f64 x) #s(literal 1/2 binary64) (*.f64 y (+.f64 (-.f64 #s(literal 1 binary64) z) (log.f64 z))))
(fma.f64 y (+.f64 (-.f64 #s(literal 1 binary64) z) (log.f64 z)) (*.f64 x #s(literal -1/2 binary64)))
(fma.f64 x #s(literal -1/2 binary64) (*.f64 y (+.f64 (-.f64 #s(literal 1 binary64) z) (log.f64 z))))
(fma.f64 y (+.f64 #s(literal 1 binary64) (-.f64 (log.f64 z) z)) (*.f64 x #s(literal -1/2 binary64)))
(fma.f64 y (-.f64 (log.f64 z) z) (fma.f64 x #s(literal -1/2 binary64) y))
(+.f64 (*.f64 x #s(literal 1/2 binary64)) (*.f64 (neg.f64 y) (+.f64 (-.f64 #s(literal 1 binary64) z) (log.f64 z))))
(fma.f64 x #s(literal 1/2 binary64) (*.f64 (+.f64 (-.f64 #s(literal 1 binary64) z) (log.f64 z)) (neg.f64 y)))
(-.f64 (*.f64 x #s(literal 1/2 binary64)) (*.f64 y (+.f64 (-.f64 #s(literal 1 binary64) z) (log.f64 z))))
(fma.f64 y (+.f64 #s(literal -1 binary64) (-.f64 z (log.f64 z))) (*.f64 x #s(literal 1/2 binary64)))
(fma.f64 y (+.f64 z (-.f64 #s(literal -1 binary64) (log.f64 z))) (*.f64 x #s(literal 1/2 binary64)))
(+.f64 (*.f64 x #s(literal 1/2 binary64)) (*.f64 y (+.f64 (-.f64 #s(literal 1 binary64) (neg.f64 z)) (log.f64 (neg.f64 z)))))
(fma.f64 x #s(literal 1/2 binary64) (*.f64 y (+.f64 (-.f64 #s(literal 1 binary64) (neg.f64 z)) (log.f64 (neg.f64 z)))))
(fma.f64 y (+.f64 #s(literal 1 binary64) (+.f64 z (log.f64 (neg.f64 z)))) (*.f64 x #s(literal 1/2 binary64)))
(fma.f64 x #s(literal 1/2 binary64) (*.f64 y (+.f64 (+.f64 #s(literal 1 binary64) z) (log.f64 (neg.f64 z)))))
(fma.f64 y (+.f64 (+.f64 #s(literal 1 binary64) z) (log.f64 (neg.f64 z))) (*.f64 x #s(literal 1/2 binary64)))
(fma.f64 y (+.f64 z (log.f64 (neg.f64 z))) (fma.f64 x #s(literal 1/2 binary64) y))
(neg.f64 (+.f64 (*.f64 (neg.f64 x) #s(literal 1/2 binary64)) (*.f64 y (+.f64 (-.f64 #s(literal 1 binary64) z) (log.f64 z)))))
(fma.f64 x #s(literal 1/2 binary64) (*.f64 (+.f64 (-.f64 #s(literal 1 binary64) z) (log.f64 z)) (neg.f64 y)))
(-.f64 (*.f64 x #s(literal 1/2 binary64)) (*.f64 y (+.f64 (-.f64 #s(literal 1 binary64) z) (log.f64 z))))
(fma.f64 y (+.f64 #s(literal -1 binary64) (-.f64 z (log.f64 z))) (*.f64 x #s(literal 1/2 binary64)))
(fma.f64 y (+.f64 z (-.f64 #s(literal -1 binary64) (log.f64 z))) (*.f64 x #s(literal 1/2 binary64)))
(neg.f64 (+.f64 (*.f64 x #s(literal 1/2 binary64)) (*.f64 (neg.f64 y) (+.f64 (-.f64 #s(literal 1 binary64) z) (log.f64 z)))))
(fma.f64 (neg.f64 x) #s(literal 1/2 binary64) (*.f64 y (+.f64 (-.f64 #s(literal 1 binary64) z) (log.f64 z))))
(fma.f64 y (+.f64 (-.f64 #s(literal 1 binary64) z) (log.f64 z)) (*.f64 x #s(literal -1/2 binary64)))
(fma.f64 x #s(literal -1/2 binary64) (*.f64 y (+.f64 (-.f64 #s(literal 1 binary64) z) (log.f64 z))))
(fma.f64 y (+.f64 #s(literal 1 binary64) (-.f64 (log.f64 z) z)) (*.f64 x #s(literal -1/2 binary64)))
(fma.f64 y (-.f64 (log.f64 z) z) (fma.f64 x #s(literal -1/2 binary64) y))
(neg.f64 (+.f64 (*.f64 x #s(literal 1/2 binary64)) (*.f64 y (+.f64 (-.f64 #s(literal 1 binary64) (neg.f64 z)) (log.f64 (neg.f64 z))))))
(neg.f64 (fma.f64 x #s(literal 1/2 binary64) (*.f64 y (+.f64 (-.f64 #s(literal 1 binary64) (neg.f64 z)) (log.f64 (neg.f64 z))))))
(-.f64 (*.f64 x #s(literal -1/2 binary64)) (*.f64 y (+.f64 #s(literal 1 binary64) (+.f64 z (log.f64 (neg.f64 z))))))
(-.f64 (*.f64 x #s(literal -1/2 binary64)) (*.f64 y (+.f64 (+.f64 #s(literal 1 binary64) z) (log.f64 (neg.f64 z)))))
(fma.f64 x #s(literal -1/2 binary64) (*.f64 y (-.f64 #s(literal -1 binary64) (+.f64 z (log.f64 (neg.f64 z))))))
(fma.f64 x #s(literal -1/2 binary64) (*.f64 y (-.f64 (-.f64 #s(literal -1 binary64) z) (log.f64 (neg.f64 z)))))
(+.f64 (*.f64 y #s(literal 1/2 binary64)) (*.f64 x (+.f64 (-.f64 #s(literal 1 binary64) z) (log.f64 z))))
(fma.f64 y #s(literal 1/2 binary64) (*.f64 x (+.f64 (-.f64 #s(literal 1 binary64) z) (log.f64 z))))
(fma.f64 x (+.f64 (-.f64 #s(literal 1 binary64) z) (log.f64 z)) (*.f64 #s(literal 1/2 binary64) y))
(fma.f64 x (+.f64 #s(literal 1 binary64) (-.f64 (log.f64 z) z)) (*.f64 #s(literal 1/2 binary64) y))
(fma.f64 x (-.f64 (log.f64 z) z) (fma.f64 #s(literal 1/2 binary64) y x))
(+.f64 (*.f64 z #s(literal 1/2 binary64)) (*.f64 y (+.f64 (-.f64 #s(literal 1 binary64) x) (log.f64 x))))
(fma.f64 z #s(literal 1/2 binary64) (*.f64 y (+.f64 (-.f64 #s(literal 1 binary64) x) (log.f64 x))))
(fma.f64 y (+.f64 (-.f64 #s(literal 1 binary64) x) (log.f64 x)) (*.f64 #s(literal 1/2 binary64) z))
(fma.f64 #s(literal 1/2 binary64) z (*.f64 y (+.f64 (-.f64 #s(literal 1 binary64) x) (log.f64 x))))
(fma.f64 y (+.f64 #s(literal 1 binary64) (-.f64 (log.f64 x) x)) (*.f64 #s(literal 1/2 binary64) z))
(fma.f64 #s(literal 1/2 binary64) z (fma.f64 y (-.f64 (log.f64 x) x) y))
(+.f64 (*.f64 x #s(literal 1/2 binary64)) (*.f64 z (+.f64 (-.f64 #s(literal 1 binary64) y) (log.f64 y))))
(fma.f64 x #s(literal 1/2 binary64) (*.f64 z (+.f64 (-.f64 #s(literal 1 binary64) y) (log.f64 y))))
(fma.f64 z (+.f64 (-.f64 #s(literal 1 binary64) y) (log.f64 y)) (*.f64 x #s(literal 1/2 binary64)))
(fma.f64 x #s(literal 1/2 binary64) (fma.f64 z (-.f64 (log.f64 y) y) z))
Compiler

Compiled 44 to 25 computations (43.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 25.0ms
Operation ival-mult, time spent: 8.0ms, 32.0% of total-time
Operation ival-sub, time spent: 6.0ms, 24.0% of total-time
Operation ival-add, time spent: 5.0ms, 20.0% of total-time
Operation ival-log, time spent: 5.0ms, 20.0% of total-time
Operation const, time spent: 1.0ms, 4.0% of total-time

end0.0ms (0%)

Profiling

Loading profile data...