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

Time bar (total: 11.0s)

analyze1.0ms (0%)

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)

sample10.2s (92.4%)

Results
1.9s8256×0valid-rival
994.0ms8167×0valid-sollya
445.0ms89×0exit-sollya
Bogosity

preprocess723.0ms (6.6%)

Algorithm
egg-herbie
Rules
4823×fma-neg
740×unsub-neg
583×sub-neg
323×associate--r-
299×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 15 to 11 computations (26.7% saved)

eval0.0ms (0%)

Compiler

Compiled 3 to 3 computations (0% saved)

prune1.0ms (0%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
99.8%
(+.f64 (*.f64 x #s(literal 1/2 binary64)) (*.f64 y (+.f64 (-.f64 #s(literal 1 binary64) z) (log.f64 z))))
Compiler

Compiled 30 to 22 computations (26.7% saved)

simplify17.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01847
12947
23347
33547
43647
Stop Event
saturated
Calls
Call 1
Inputs
(+.f64 (*.f64 x #s(literal 1/2 binary64)) (*.f64 y (+.f64 (-.f64 #s(literal 1 binary64) z) (log.f64 z))))
Outputs
(+.f64 (*.f64 x #s(literal 1/2 binary64)) (*.f64 y (+.f64 (-.f64 #s(literal 1 binary64) z) (log.f64 z))))

soundness1.0ms (0%)

Stop Event
fuel
Compiler

Compiled 15 to 11 computations (26.7% saved)

preprocess92.0ms (0.8%)

Compiler

Compiled 90 to 64 computations (28.9% saved)

end0.0ms (0%)

Profiling

Loading profile data...