Data.Random.Distribution.T:$ccdf from random-fu-0.2.6.2

Time bar (total: 1.5s)

analyze11.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
0%0%99.9%0.1%0%0%0%2
50%50%50%0.1%0%0%0%3
50%50%50%0.1%0%0%0%4
75%74.9%25%0.1%0%0%0%5
75%74.9%25%0.1%0%0%0%6
87.5%87.4%12.5%0.1%0%0%0%7
87.5%87.4%12.5%0.1%0%0%0%8
93.8%93.7%6.2%0.1%0%0%0%9
93.8%93.7%6.2%0.1%0%0%0%10
96.9%96.8%3.1%0.1%0%0%0%11
96.9%96.8%3.1%0.1%0%0%0%12
Compiler

Compiled 10 to 6 computations (40% saved)

sample882.0ms (57.3%)

Results
756.0ms7257×body256valid
114.0ms999×body256infinite
Bogosity

preprocess146.0ms (9.5%)

Algorithm
egg-herbie
Rules
2102×div-sub
2076×fma-def
1234×fma-neg
946×sub-neg
756×times-frac
Iterations

Useful iterations: 6 (0.0ms)

IterNodesCost
018103
13495
27495
318095
441095
5102387
6297179
7522279
8624679
9685579
10734979
11766579
Stop Event
node limit
Calls
Call 1
Inputs
(/.f64 (+.f64 x y) (+.f64 y y))
(/.f64 (+.f64 x y) (+.f64 y y))
(/.f64 (+.f64 (neg.f64 x) y) (+.f64 y y))
(/.f64 (+.f64 x (neg.f64 y)) (+.f64 (neg.f64 y) (neg.f64 y)))
(/.f64 (+.f64 y x) (+.f64 x x))
Outputs
(/.f64 (+.f64 x y) (+.f64 y y))
(-.f64 1/2 (*.f64 -1/2 (/.f64 x y)))
(fma.f64 x (/.f64 1/2 y) 1/2)
(/.f64 (+.f64 x y) (+.f64 y y))
(-.f64 1/2 (*.f64 -1/2 (/.f64 x y)))
(fma.f64 x (/.f64 1/2 y) 1/2)
(/.f64 (+.f64 (neg.f64 x) y) (+.f64 y y))
(/.f64 (+.f64 y (neg.f64 x)) (+.f64 y y))
(/.f64 (-.f64 y x) (+.f64 y y))
(-.f64 1/2 (/.f64 x (+.f64 y y)))
(+.f64 1/2 (*.f64 -1/2 (/.f64 x y)))
(fma.f64 -1/2 (/.f64 x y) 1/2)
(fma.f64 x (/.f64 -1/2 y) 1/2)
(/.f64 (+.f64 x (neg.f64 y)) (+.f64 (neg.f64 y) (neg.f64 y)))
(/.f64 (+.f64 y (neg.f64 x)) (+.f64 y y))
(/.f64 (-.f64 y x) (+.f64 y y))
(-.f64 1/2 (/.f64 x (+.f64 y y)))
(+.f64 1/2 (*.f64 -1/2 (/.f64 x y)))
(fma.f64 -1/2 (/.f64 x y) 1/2)
(fma.f64 x (/.f64 -1/2 y) 1/2)
(/.f64 (+.f64 y x) (+.f64 x x))
(/.f64 (+.f64 x y) (+.f64 x x))
(-.f64 (/.f64 (/.f64 y x) 2) -1/2)
(+.f64 1/2 (/.f64 (/.f64 y x) 2))
Compiler

Compiled 9 to 5 computations (44.4% saved)

eval1.0ms (0%)

Compiler

Compiled 15 to 11 computations (26.7% saved)

prune1.0ms (0.1%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(-.f64 1/2 (*.f64 -1/2 (/.f64 x y)))
100.0%
(-.f64 1/2 (*.f64 -1/2 (/.f64 x y)))
Compiler

Compiled 18 to 14 computations (22.2% saved)

localize29.0ms (1.9%)

Localize:

Found 1 expressions with local error:

NewAccuracyProgram
100.0%
(*.f64 -1/2 (/.f64 x y))
Compiler

Compiled 22 to 12 computations (45.5% saved)

series10.0ms (0.6%)

Counts
1 → 0
Calls

6 calls:

TimeVariablePointExpression
4.0ms
y
@0
(*.f64 -1/2 (/.f64 x y))
2.0ms
x
@inf
(*.f64 -1/2 (/.f64 x y))
2.0ms
x
@0
(*.f64 -1/2 (/.f64 x y))
1.0ms
x
@-inf
(*.f64 -1/2 (/.f64 x y))
1.0ms
y
@inf
(*.f64 -1/2 (/.f64 x y))

rewrite65.0ms (4.2%)

Algorithm
batch-egg-rewrite
Rules
1500×pow1
1386×add-exp-log
1386×log1p-expm1-u
1386×expm1-log1p-u
1356×add-log-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
114713
2184913
Stop Event
node limit
Counts
1 → 20
Calls
Call 1
Inputs
(*.f64 -1/2 (/.f64 x y))
Outputs
(-.f64 (+.f64 1 (*.f64 -1/2 (/.f64 x y))) 1)
(/.f64 -1/2 (/.f64 y x))
(/.f64 1 (/.f64 y (*.f64 -1/2 x)))
(/.f64 (*.f64 -1/2 x) y)
(/.f64 (neg.f64 (*.f64 -1/2 x)) (neg.f64 y))
(/.f64 (*.f64 -1/2 (neg.f64 x)) (neg.f64 y))
(/.f64 (*.f64 (neg.f64 x) -1/2) (neg.f64 y))
(/.f64 (/.f64 (*.f64 -1/2 x) 1) y)
(/.f64 (/.f64 (*.f64 -1/2 x) (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y))
(/.f64 (/.f64 (*.f64 -1/2 x) (sqrt.f64 y)) (sqrt.f64 y))
(pow.f64 (*.f64 -1/2 (/.f64 x y)) 1)
(pow.f64 (cbrt.f64 (*.f64 -1/2 (/.f64 x y))) 3)
(pow.f64 (pow.f64 (*.f64 -1/2 (/.f64 x y)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 x y))) 2)
(sqrt.f64 (*.f64 (pow.f64 (/.f64 x y) 2) 1/4))
(log.f64 (pow.f64 (exp.f64 (/.f64 x y)) -1/2))
(cbrt.f64 (pow.f64 (*.f64 -1/2 (/.f64 x y)) 3))
(expm1.f64 (log1p.f64 (*.f64 -1/2 (/.f64 x y))))
(exp.f64 (log.f64 (*.f64 -1/2 (/.f64 x y))))
(log1p.f64 (expm1.f64 (*.f64 -1/2 (/.f64 x y))))

simplify61.0ms (3.9%)

Algorithm
egg-herbie
Rules
1400×log-prod
916×associate-*r*
904×distribute-lft-neg-out
882×fma-def
824×associate-*l*
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
058500
1145380
2513260
33929260
Stop Event
node limit
Counts
20 → 23
Calls
Call 1
Inputs
(-.f64 (+.f64 1 (*.f64 -1/2 (/.f64 x y))) 1)
(/.f64 -1/2 (/.f64 y x))
(/.f64 1 (/.f64 y (*.f64 -1/2 x)))
(/.f64 (*.f64 -1/2 x) y)
(/.f64 (neg.f64 (*.f64 -1/2 x)) (neg.f64 y))
(/.f64 (*.f64 -1/2 (neg.f64 x)) (neg.f64 y))
(/.f64 (*.f64 (neg.f64 x) -1/2) (neg.f64 y))
(/.f64 (/.f64 (*.f64 -1/2 x) 1) y)
(/.f64 (/.f64 (*.f64 -1/2 x) (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y))
(/.f64 (/.f64 (*.f64 -1/2 x) (sqrt.f64 y)) (sqrt.f64 y))
(pow.f64 (*.f64 -1/2 (/.f64 x y)) 1)
(pow.f64 (cbrt.f64 (*.f64 -1/2 (/.f64 x y))) 3)
(pow.f64 (pow.f64 (*.f64 -1/2 (/.f64 x y)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 x y))) 2)
(sqrt.f64 (*.f64 (pow.f64 (/.f64 x y) 2) 1/4))
(log.f64 (pow.f64 (exp.f64 (/.f64 x y)) -1/2))
(cbrt.f64 (pow.f64 (*.f64 -1/2 (/.f64 x y)) 3))
(expm1.f64 (log1p.f64 (*.f64 -1/2 (/.f64 x y))))
(exp.f64 (log.f64 (*.f64 -1/2 (/.f64 x y))))
(log1p.f64 (expm1.f64 (*.f64 -1/2 (/.f64 x y))))
Outputs
(-.f64 (+.f64 1 (*.f64 -1/2 (/.f64 x y))) 1)
(+.f64 1 (-.f64 (*.f64 -1/2 (/.f64 x y)) 1))
(+.f64 (*.f64 x (/.f64 -1/2 y)) 0)
(*.f64 -1/2 (/.f64 x y))
(/.f64 -1/2 (/.f64 y x))
(+.f64 1 (-.f64 (*.f64 -1/2 (/.f64 x y)) 1))
(+.f64 (*.f64 x (/.f64 -1/2 y)) 0)
(*.f64 -1/2 (/.f64 x y))
(/.f64 1 (/.f64 y (*.f64 -1/2 x)))
(+.f64 1 (-.f64 (*.f64 -1/2 (/.f64 x y)) 1))
(+.f64 (*.f64 x (/.f64 -1/2 y)) 0)
(*.f64 -1/2 (/.f64 x y))
(/.f64 (*.f64 -1/2 x) y)
(+.f64 1 (-.f64 (*.f64 -1/2 (/.f64 x y)) 1))
(+.f64 (*.f64 x (/.f64 -1/2 y)) 0)
(*.f64 -1/2 (/.f64 x y))
(/.f64 (neg.f64 (*.f64 -1/2 x)) (neg.f64 y))
(+.f64 1 (-.f64 (*.f64 -1/2 (/.f64 x y)) 1))
(+.f64 (*.f64 x (/.f64 -1/2 y)) 0)
(*.f64 -1/2 (/.f64 x y))
(/.f64 (*.f64 -1/2 (neg.f64 x)) (neg.f64 y))
(+.f64 1 (-.f64 (*.f64 -1/2 (/.f64 x y)) 1))
(+.f64 (*.f64 x (/.f64 -1/2 y)) 0)
(*.f64 -1/2 (/.f64 x y))
(/.f64 (*.f64 (neg.f64 x) -1/2) (neg.f64 y))
(+.f64 1 (-.f64 (*.f64 -1/2 (/.f64 x y)) 1))
(+.f64 (*.f64 x (/.f64 -1/2 y)) 0)
(*.f64 -1/2 (/.f64 x y))
(/.f64 (/.f64 (*.f64 -1/2 x) 1) y)
(+.f64 1 (-.f64 (*.f64 -1/2 (/.f64 x y)) 1))
(+.f64 (*.f64 x (/.f64 -1/2 y)) 0)
(*.f64 -1/2 (/.f64 x y))
(/.f64 (/.f64 (*.f64 -1/2 x) (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y))
(+.f64 1 (-.f64 (*.f64 -1/2 (/.f64 x y)) 1))
(+.f64 (*.f64 x (/.f64 -1/2 y)) 0)
(*.f64 -1/2 (/.f64 x y))
(/.f64 (/.f64 (*.f64 -1/2 x) (sqrt.f64 y)) (sqrt.f64 y))
(+.f64 1 (-.f64 (*.f64 -1/2 (/.f64 x y)) 1))
(+.f64 (*.f64 x (/.f64 -1/2 y)) 0)
(*.f64 -1/2 (/.f64 x y))
(pow.f64 (*.f64 -1/2 (/.f64 x y)) 1)
(+.f64 1 (-.f64 (*.f64 -1/2 (/.f64 x y)) 1))
(+.f64 (*.f64 x (/.f64 -1/2 y)) 0)
(*.f64 -1/2 (/.f64 x y))
(pow.f64 (cbrt.f64 (*.f64 -1/2 (/.f64 x y))) 3)
(+.f64 1 (-.f64 (*.f64 -1/2 (/.f64 x y)) 1))
(+.f64 (*.f64 x (/.f64 -1/2 y)) 0)
(*.f64 -1/2 (/.f64 x y))
(pow.f64 (pow.f64 (*.f64 -1/2 (/.f64 x y)) 3) 1/3)
(+.f64 1 (-.f64 (*.f64 -1/2 (/.f64 x y)) 1))
(+.f64 (*.f64 x (/.f64 -1/2 y)) 0)
(*.f64 -1/2 (/.f64 x y))
(pow.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 x y))) 2)
(+.f64 1 (-.f64 (*.f64 -1/2 (/.f64 x y)) 1))
(+.f64 (*.f64 x (/.f64 -1/2 y)) 0)
(*.f64 -1/2 (/.f64 x y))
(sqrt.f64 (*.f64 (pow.f64 (/.f64 x y) 2) 1/4))
(+.f64 1 (-.f64 (*.f64 -1/2 (/.f64 x y)) 1))
(+.f64 (*.f64 x (/.f64 -1/2 y)) 0)
(*.f64 -1/2 (/.f64 x y))
(log.f64 (pow.f64 (exp.f64 (/.f64 x y)) -1/2))
(+.f64 1 (-.f64 (*.f64 -1/2 (/.f64 x y)) 1))
(+.f64 (*.f64 x (/.f64 -1/2 y)) 0)
(*.f64 -1/2 (/.f64 x y))
(cbrt.f64 (pow.f64 (*.f64 -1/2 (/.f64 x y)) 3))
(+.f64 1 (-.f64 (*.f64 -1/2 (/.f64 x y)) 1))
(+.f64 (*.f64 x (/.f64 -1/2 y)) 0)
(*.f64 -1/2 (/.f64 x y))
(expm1.f64 (log1p.f64 (*.f64 -1/2 (/.f64 x y))))
(+.f64 1 (-.f64 (*.f64 -1/2 (/.f64 x y)) 1))
(+.f64 (*.f64 x (/.f64 -1/2 y)) 0)
(*.f64 -1/2 (/.f64 x y))
(exp.f64 (log.f64 (*.f64 -1/2 (/.f64 x y))))
(+.f64 1 (-.f64 (*.f64 -1/2 (/.f64 x y)) 1))
(+.f64 (*.f64 x (/.f64 -1/2 y)) 0)
(*.f64 -1/2 (/.f64 x y))
(log1p.f64 (expm1.f64 (*.f64 -1/2 (/.f64 x y))))
(+.f64 1 (-.f64 (*.f64 -1/2 (/.f64 x y)) 1))
(+.f64 (*.f64 x (/.f64 -1/2 y)) 0)
(*.f64 -1/2 (/.f64 x y))

eval5.0ms (0.3%)

Compiler

Compiled 219 to 154 computations (29.7% saved)

prune4.0ms (0.2%)

Pruning

1 alts after pruning (0 fresh and 1 done)

PrunedKeptTotal
New23023
Fresh000
Picked011
Done000
Total23124
Accuracy
100.0%
Counts
24 → 1
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(-.f64 1/2 (*.f64 -1/2 (/.f64 x y)))
Compiler

Compiled 25 to 17 computations (32% saved)

regimes9.0ms (0.6%)

Accuracy

Total -0.0b remaining (-∞%)

Threshold costs -0b (-∞%)

Counts
2 → 1
Calls
Call 1
Inputs
(-.f64 1/2 (*.f64 -1/2 (/.f64 x y)))
(/.f64 (+.f64 x y) (+.f64 y y))
Outputs
(-.f64 1/2 (*.f64 -1/2 (/.f64 x y)))
Calls

3 calls:

3.0ms
(/.f64 (+.f64 x y) (+.f64 y y))
3.0ms
y
3.0ms
x
Results
AccuracySegmentsBranch
100.0%1x
100.0%1y
100.0%1(/.f64 (+.f64 x y) (+.f64 y y))
Compiler

Compiled 31 to 19 computations (38.7% saved)

simplify7.0ms (0.5%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0919
11619
22819
33619
44219
54519
64619
Stop Event
done
saturated
Calls
Call 1
Inputs
(-.f64 1/2 (*.f64 -1/2 (/.f64 x y)))
Outputs
(-.f64 1/2 (*.f64 -1/2 (/.f64 x y)))
Compiler

Compiled 9 to 7 computations (22.2% saved)

soundness277.0ms (18%)

Rules
2102×div-sub
2076×fma-def
1234×fma-neg
946×sub-neg
756×times-frac
Iterations

Useful iterations: 6 (0.0ms)

IterNodesCost
018103
13495
27495
318095
441095
5102387
6297179
7522279
8624679
9685579
10734979
11766579
Stop Event
node limit
Compiler

Compiled 162 to 67 computations (58.6% saved)

end0.0ms (0%)

preprocess32.0ms (2.1%)

Compiler

Compiled 54 to 38 computations (29.6% saved)

Profiling

Loading profile data...