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

Time bar (total: 2.2s)

analyze10.0ms (0.5%)

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)

sample1.0s (47.4%)

Results
850.0ms7223×body256valid
183.0ms1033×body256infinite
Bogosity

preprocess121.0ms (5.5%)

Algorithm
egg-herbie
Rules
1932×fma-def
1628×div-sub
1492×fma-neg
668×associate-/r*
662×distribute-rgt-in
Problems
256×No Errors
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
023220
147196
2103196
3289184
41292162
53777151
66395151
77863151
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)))
(neg.f64 (/.f64 (+.f64 (neg.f64 x) y) (+.f64 y y)))
(neg.f64 (/.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 (+.f64 x y) (*.f64 2 y))
(/.f64 (+.f64 x y) (*.f64 y 2))
(-.f64 (*.f64 x (/.f64 1/2 y)) -1/2)
(fma.f64 x (/.f64 1/2 y) 1/2)
(/.f64 (+.f64 x y) (+.f64 y y))
(/.f64 (+.f64 x y) (*.f64 2 y))
(/.f64 (+.f64 x y) (*.f64 y 2))
(-.f64 (*.f64 x (/.f64 1/2 y)) -1/2)
(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 2 y))
(/.f64 (-.f64 y x) (*.f64 y 2))
(-.f64 1/2 (/.f64 x (*.f64 y 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 2 y))
(/.f64 (-.f64 y x) (*.f64 y 2))
(-.f64 1/2 (/.f64 x (*.f64 y 2)))
(fma.f64 x (/.f64 -1/2 y) 1/2)
(neg.f64 (/.f64 (+.f64 (neg.f64 x) y) (+.f64 y y)))
(/.f64 (neg.f64 (+.f64 y (neg.f64 x))) (*.f64 2 y))
(/.f64 (-.f64 x y) (*.f64 y 2))
(+.f64 (/.f64 x (*.f64 y 2)) -1/2)
(fma.f64 1/2 (/.f64 x y) -1/2)
(fma.f64 x (/.f64 1/2 y) -1/2)
(neg.f64 (/.f64 (+.f64 x (neg.f64 y)) (+.f64 (neg.f64 y) (neg.f64 y))))
(/.f64 (neg.f64 (+.f64 y (neg.f64 x))) (*.f64 2 y))
(/.f64 (-.f64 x y) (*.f64 y 2))
(+.f64 (/.f64 x (*.f64 y 2)) -1/2)
(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 2 x))
(/.f64 (+.f64 x y) (*.f64 x 2))
(-.f64 1/2 (/.f64 (/.f64 y x) -2))
(+.f64 1/2 (/.f64 (/.f64 y x) 2))
Compiler

Compiled 27 to 11 computations (59.3% saved)

eval1.0ms (0%)

Compiler

Compiled 29 to 18 computations (37.9% saved)

prune2.0ms (0.1%)

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

Compiled 36 to 24 computations (33.3% saved)

localize46.0ms (2.1%)

Localize:

Found 2 expressions with local error:

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

Compiled 37 to 18 computations (51.4% saved)

series8.0ms (0.3%)

Counts
2 → 48
Calls

12 calls:

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

rewrite126.0ms (5.7%)

Algorithm
batch-egg-rewrite
Rules
1326×prod-diff
808×log1p-expm1-u
808×expm1-log1p-u
790×log-prod
478×fma-def
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01347
117941
2290641
Stop Event
node limit
Counts
2 → 67
Calls
Call 1
Inputs
(*.f64 x (/.f64 1/2 y))
(/.f64 (+.f64 x y) (+.f64 y y))
Outputs
(+.f64 0 (*.f64 x (/.f64 0 0)))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (/.f64 0 0))) (cbrt.f64 (pow.f64 (exp.f64 x) (/.f64 0 0))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (/.f64 0 0)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (/.f64 0 0)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (/.f64 0 0)))))
(-.f64 (exp.f64 (log1p.f64 (*.f64 x (/.f64 0 0)))) 1)
(/.f64 x (/.f64 0 0))
(/.f64 1 (/.f64 y (*.f64 x 1/2)))
(/.f64 (*.f64 x 1/2) y)
(/.f64 (neg.f64 (*.f64 x 1/2)) (neg.f64 y))
(/.f64 (*.f64 x -1/2) (neg.f64 y))
(/.f64 (*.f64 -1/2 x) (neg.f64 y))
(/.f64 (/.f64 (*.f64 x 1/2) 1) y)
(/.f64 (/.f64 (*.f64 x 1/2) (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y))
(/.f64 (/.f64 (*.f64 x 1/2) (sqrt.f64 y)) (sqrt.f64 y))
(pow.f64 (*.f64 x (/.f64 0 0)) 1)
(pow.f64 (cbrt.f64 (*.f64 x (/.f64 0 0))) 3)
(pow.f64 (pow.f64 (*.f64 x (/.f64 0 0)) 3) 1/3)
(pow.f64 (*.f64 (/.f64 0 0) (sqrt.f64 x)) 2)
(sqrt.f64 (pow.f64 (*.f64 x (/.f64 0 0)) 2))
(log.f64 (pow.f64 (exp.f64 x) (/.f64 0 0)))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 x (/.f64 0 0)))))
(cbrt.f64 (pow.f64 (*.f64 x (/.f64 0 0)) 3))
(cbrt.f64 (*.f64 (pow.f64 x 3) (/.f64 0 0)))
(cbrt.f64 (*.f64 (/.f64 0 0) (pow.f64 x 3)))
(expm1.f64 (log1p.f64 (*.f64 x (/.f64 0 0))))
(exp.f64 (log.f64 (*.f64 x (/.f64 0 0))))
(exp.f64 (*.f64 (log.f64 (*.f64 x (/.f64 0 0))) 1))
(log1p.f64 (expm1.f64 (*.f64 x (/.f64 0 0))))
(+.f64 0 (*.f64 (+.f64 x y) (/.f64 0 0)))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (*.f64 (+.f64 x y) (/.f64 0 0)))) (cbrt.f64 (exp.f64 (*.f64 (+.f64 x y) (/.f64 0 0)))))) (log.f64 (cbrt.f64 (exp.f64 (*.f64 (+.f64 x y) (/.f64 0 0))))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (*.f64 (+.f64 x y) (/.f64 0 0))))) (log.f64 (sqrt.f64 (exp.f64 (*.f64 (+.f64 x y) (/.f64 0 0))))))
(-.f64 (exp.f64 (log1p.f64 (*.f64 (+.f64 x y) (/.f64 0 0)))) 1)
(*.f64 1/2 (/.f64 (+.f64 x y) y))
(*.f64 (+.f64 x y) (/.f64 0 0))
(*.f64 (/.f64 0 0) (+.f64 x y))
(*.f64 (/.f64 0 0) (*.f64 (+.f64 x y) (/.f64 0 0)))
(*.f64 (*.f64 (+.f64 x y) (/.f64 0 0)) 1)
(*.f64 1 (*.f64 (+.f64 x y) (/.f64 0 0)))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 x y)) 2) (cbrt.f64 (*.f64 (+.f64 x y) (/.f64 0 0))))
(*.f64 (cbrt.f64 (*.f64 (+.f64 x y) (/.f64 0 0))) (pow.f64 (cbrt.f64 (*.f64 (+.f64 x y) (/.f64 0 0))) 2))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (+.f64 x y) (/.f64 0 0))) 2) (cbrt.f64 (*.f64 (+.f64 x y) (/.f64 0 0))))
(*.f64 (sqrt.f64 (+.f64 x y)) (sqrt.f64 (*.f64 (+.f64 x y) (/.f64 0 0))))
(*.f64 (sqrt.f64 (*.f64 (+.f64 x y) (/.f64 0 0))) (sqrt.f64 (*.f64 (+.f64 x y) (/.f64 0 0))))
(*.f64 (neg.f64 (+.f64 x y)) (/.f64 0 0))
(*.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 x y)) 2) 1) (cbrt.f64 (*.f64 (+.f64 x y) (/.f64 0 0))))
(*.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 x y)) 2) (/.f64 0 0)) (cbrt.f64 (*.f64 (+.f64 x y) (/.f64 0 0))))
(*.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 x y)) 2) 2) (/.f64 (cbrt.f64 (+.f64 x y)) y))
(*.f64 (/.f64 (sqrt.f64 (+.f64 x y)) 1) (sqrt.f64 (*.f64 (+.f64 x y) (/.f64 0 0))))
(*.f64 (/.f64 (sqrt.f64 (+.f64 x y)) 2) (/.f64 (sqrt.f64 (+.f64 x y)) y))
(*.f64 (/.f64 (+.f64 x y) (*.f64 2 (pow.f64 y 3))) (fma.f64 y y 0))
(*.f64 (/.f64 (+.f64 x y) 0) 0)
(pow.f64 (*.f64 (+.f64 x y) (/.f64 0 0)) 1)
(pow.f64 (cbrt.f64 (*.f64 (+.f64 x y) (/.f64 0 0))) 3)
(pow.f64 (pow.f64 (*.f64 (+.f64 x y) (/.f64 0 0)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 (+.f64 x y) (/.f64 0 0))) 2)
(pow.f64 (/.f64 (/.f64 0 0) (+.f64 x y)) -1)
(neg.f64 (*.f64 (+.f64 x y) (/.f64 0 0)))
(sqrt.f64 (pow.f64 (*.f64 (+.f64 x y) (/.f64 0 0)) 2))
(log.f64 (exp.f64 (*.f64 (+.f64 x y) (/.f64 0 0))))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (+.f64 x y) (/.f64 0 0)))))
(log.f64 (/.f64 1 (exp.f64 (*.f64 (+.f64 x y) (/.f64 0 0)))))
(log.f64 (/.f64 1 (+.f64 1 (expm1.f64 (*.f64 (+.f64 x y) (/.f64 0 0))))))
(cbrt.f64 (pow.f64 (*.f64 (+.f64 x y) (/.f64 0 0)) 3))
(cbrt.f64 (/.f64 (pow.f64 (+.f64 x y) 3) (/.f64 0 0)))
(expm1.f64 (log1p.f64 (*.f64 (+.f64 x y) (/.f64 0 0))))
(exp.f64 (log.f64 (*.f64 (+.f64 x y) (/.f64 0 0))))
(exp.f64 (*.f64 (log.f64 (*.f64 (+.f64 x y) (/.f64 0 0))) 1))
(log1p.f64 (expm1.f64 (*.f64 (+.f64 x y) (/.f64 0 0))))

simplify22.0ms (1%)

Algorithm
egg-herbie
Rules
38×*-commutative
36×sqr-pow
20×associate-*l/
16×associate-*r/
16×+-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01641844
14241844
Stop Event
unsound
Counts
115 → 90
Calls
Call 1
Inputs
(*.f64 1/2 (/.f64 x y))
(*.f64 1/2 (/.f64 x y))
(*.f64 1/2 (/.f64 x y))
(*.f64 1/2 (/.f64 x y))
(*.f64 1/2 (/.f64 x y))
(*.f64 1/2 (/.f64 x y))
(*.f64 1/2 (/.f64 x y))
(*.f64 1/2 (/.f64 x y))
(*.f64 1/2 (/.f64 x y))
(*.f64 1/2 (/.f64 x y))
(*.f64 1/2 (/.f64 x y))
(*.f64 1/2 (/.f64 x y))
(*.f64 1/2 (/.f64 x y))
(*.f64 1/2 (/.f64 x y))
(*.f64 1/2 (/.f64 x y))
(*.f64 1/2 (/.f64 x y))
(*.f64 1/2 (/.f64 x y))
(*.f64 1/2 (/.f64 x y))
(*.f64 1/2 (/.f64 x y))
(*.f64 1/2 (/.f64 x y))
(*.f64 1/2 (/.f64 x y))
(*.f64 1/2 (/.f64 x y))
(*.f64 1/2 (/.f64 x y))
(*.f64 1/2 (/.f64 x y))
1/2
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(*.f64 1/2 (/.f64 x y))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(*.f64 1/2 (/.f64 x y))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(*.f64 1/2 (/.f64 x y))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
1/2
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
1/2
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 0 (*.f64 x (/.f64 0 0)))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (/.f64 0 0))) (cbrt.f64 (pow.f64 (exp.f64 x) (/.f64 0 0))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (/.f64 0 0)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (/.f64 0 0)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (/.f64 0 0)))))
(-.f64 (exp.f64 (log1p.f64 (*.f64 x (/.f64 0 0)))) 1)
(/.f64 x (/.f64 0 0))
(/.f64 1 (/.f64 y (*.f64 x 1/2)))
(/.f64 (*.f64 x 1/2) y)
(/.f64 (neg.f64 (*.f64 x 1/2)) (neg.f64 y))
(/.f64 (*.f64 x -1/2) (neg.f64 y))
(/.f64 (*.f64 -1/2 x) (neg.f64 y))
(/.f64 (/.f64 (*.f64 x 1/2) 1) y)
(/.f64 (/.f64 (*.f64 x 1/2) (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y))
(/.f64 (/.f64 (*.f64 x 1/2) (sqrt.f64 y)) (sqrt.f64 y))
(pow.f64 (*.f64 x (/.f64 0 0)) 1)
(pow.f64 (cbrt.f64 (*.f64 x (/.f64 0 0))) 3)
(pow.f64 (pow.f64 (*.f64 x (/.f64 0 0)) 3) 1/3)
(pow.f64 (*.f64 (/.f64 0 0) (sqrt.f64 x)) 2)
(sqrt.f64 (pow.f64 (*.f64 x (/.f64 0 0)) 2))
(log.f64 (pow.f64 (exp.f64 x) (/.f64 0 0)))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 x (/.f64 0 0)))))
(cbrt.f64 (pow.f64 (*.f64 x (/.f64 0 0)) 3))
(cbrt.f64 (*.f64 (pow.f64 x 3) (/.f64 0 0)))
(cbrt.f64 (*.f64 (/.f64 0 0) (pow.f64 x 3)))
(expm1.f64 (log1p.f64 (*.f64 x (/.f64 0 0))))
(exp.f64 (log.f64 (*.f64 x (/.f64 0 0))))
(exp.f64 (*.f64 (log.f64 (*.f64 x (/.f64 0 0))) 1))
(log1p.f64 (expm1.f64 (*.f64 x (/.f64 0 0))))
(+.f64 0 (*.f64 (+.f64 x y) (/.f64 0 0)))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (*.f64 (+.f64 x y) (/.f64 0 0)))) (cbrt.f64 (exp.f64 (*.f64 (+.f64 x y) (/.f64 0 0)))))) (log.f64 (cbrt.f64 (exp.f64 (*.f64 (+.f64 x y) (/.f64 0 0))))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (*.f64 (+.f64 x y) (/.f64 0 0))))) (log.f64 (sqrt.f64 (exp.f64 (*.f64 (+.f64 x y) (/.f64 0 0))))))
(-.f64 (exp.f64 (log1p.f64 (*.f64 (+.f64 x y) (/.f64 0 0)))) 1)
(*.f64 1/2 (/.f64 (+.f64 x y) y))
(*.f64 (+.f64 x y) (/.f64 0 0))
(*.f64 (/.f64 0 0) (+.f64 x y))
(*.f64 (/.f64 0 0) (*.f64 (+.f64 x y) (/.f64 0 0)))
(*.f64 (*.f64 (+.f64 x y) (/.f64 0 0)) 1)
(*.f64 1 (*.f64 (+.f64 x y) (/.f64 0 0)))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 x y)) 2) (cbrt.f64 (*.f64 (+.f64 x y) (/.f64 0 0))))
(*.f64 (cbrt.f64 (*.f64 (+.f64 x y) (/.f64 0 0))) (pow.f64 (cbrt.f64 (*.f64 (+.f64 x y) (/.f64 0 0))) 2))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (+.f64 x y) (/.f64 0 0))) 2) (cbrt.f64 (*.f64 (+.f64 x y) (/.f64 0 0))))
(*.f64 (sqrt.f64 (+.f64 x y)) (sqrt.f64 (*.f64 (+.f64 x y) (/.f64 0 0))))
(*.f64 (sqrt.f64 (*.f64 (+.f64 x y) (/.f64 0 0))) (sqrt.f64 (*.f64 (+.f64 x y) (/.f64 0 0))))
(*.f64 (neg.f64 (+.f64 x y)) (/.f64 0 0))
(*.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 x y)) 2) 1) (cbrt.f64 (*.f64 (+.f64 x y) (/.f64 0 0))))
(*.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 x y)) 2) (/.f64 0 0)) (cbrt.f64 (*.f64 (+.f64 x y) (/.f64 0 0))))
(*.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 x y)) 2) 2) (/.f64 (cbrt.f64 (+.f64 x y)) y))
(*.f64 (/.f64 (sqrt.f64 (+.f64 x y)) 1) (sqrt.f64 (*.f64 (+.f64 x y) (/.f64 0 0))))
(*.f64 (/.f64 (sqrt.f64 (+.f64 x y)) 2) (/.f64 (sqrt.f64 (+.f64 x y)) y))
(*.f64 (/.f64 (+.f64 x y) (*.f64 2 (pow.f64 y 3))) (fma.f64 y y 0))
(*.f64 (/.f64 (+.f64 x y) 0) 0)
(pow.f64 (*.f64 (+.f64 x y) (/.f64 0 0)) 1)
(pow.f64 (cbrt.f64 (*.f64 (+.f64 x y) (/.f64 0 0))) 3)
(pow.f64 (pow.f64 (*.f64 (+.f64 x y) (/.f64 0 0)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 (+.f64 x y) (/.f64 0 0))) 2)
(pow.f64 (/.f64 (/.f64 0 0) (+.f64 x y)) -1)
(neg.f64 (*.f64 (+.f64 x y) (/.f64 0 0)))
(sqrt.f64 (pow.f64 (*.f64 (+.f64 x y) (/.f64 0 0)) 2))
(log.f64 (exp.f64 (*.f64 (+.f64 x y) (/.f64 0 0))))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (+.f64 x y) (/.f64 0 0)))))
(log.f64 (/.f64 1 (exp.f64 (*.f64 (+.f64 x y) (/.f64 0 0)))))
(log.f64 (/.f64 1 (+.f64 1 (expm1.f64 (*.f64 (+.f64 x y) (/.f64 0 0))))))
(cbrt.f64 (pow.f64 (*.f64 (+.f64 x y) (/.f64 0 0)) 3))
(cbrt.f64 (/.f64 (pow.f64 (+.f64 x y) 3) (/.f64 0 0)))
(expm1.f64 (log1p.f64 (*.f64 (+.f64 x y) (/.f64 0 0))))
(exp.f64 (log.f64 (*.f64 (+.f64 x y) (/.f64 0 0))))
(exp.f64 (*.f64 (log.f64 (*.f64 (+.f64 x y) (/.f64 0 0))) 1))
(log1p.f64 (expm1.f64 (*.f64 (+.f64 x y) (/.f64 0 0))))
Outputs
(*.f64 1/2 (/.f64 x y))
(/.f64 (*.f64 -1/2 x) y)
(*.f64 1/2 (/.f64 x y))
(/.f64 (*.f64 -1/2 x) y)
(*.f64 1/2 (/.f64 x y))
(/.f64 (*.f64 -1/2 x) y)
(*.f64 1/2 (/.f64 x y))
(/.f64 (*.f64 -1/2 x) y)
(*.f64 1/2 (/.f64 x y))
(/.f64 (*.f64 -1/2 x) y)
(*.f64 1/2 (/.f64 x y))
(/.f64 (*.f64 -1/2 x) y)
(*.f64 1/2 (/.f64 x y))
(/.f64 (*.f64 -1/2 x) y)
(*.f64 1/2 (/.f64 x y))
(/.f64 (*.f64 -1/2 x) y)
(*.f64 1/2 (/.f64 x y))
(/.f64 (*.f64 -1/2 x) y)
(*.f64 1/2 (/.f64 x y))
(/.f64 (*.f64 -1/2 x) y)
(*.f64 1/2 (/.f64 x y))
(/.f64 (*.f64 -1/2 x) y)
(*.f64 1/2 (/.f64 x y))
(/.f64 (*.f64 -1/2 x) y)
(*.f64 1/2 (/.f64 x y))
(/.f64 (*.f64 -1/2 x) y)
(*.f64 1/2 (/.f64 x y))
(/.f64 (*.f64 -1/2 x) y)
(*.f64 1/2 (/.f64 x y))
(/.f64 (*.f64 -1/2 x) y)
(*.f64 1/2 (/.f64 x y))
(/.f64 (*.f64 -1/2 x) y)
(*.f64 1/2 (/.f64 x y))
(/.f64 (*.f64 -1/2 x) y)
(*.f64 1/2 (/.f64 x y))
(/.f64 (*.f64 -1/2 x) y)
(*.f64 1/2 (/.f64 x y))
(/.f64 (*.f64 -1/2 x) y)
(*.f64 1/2 (/.f64 x y))
(/.f64 (*.f64 -1/2 x) y)
(*.f64 1/2 (/.f64 x y))
(/.f64 (*.f64 -1/2 x) y)
(*.f64 1/2 (/.f64 x y))
(/.f64 (*.f64 -1/2 x) y)
(*.f64 1/2 (/.f64 x y))
(/.f64 (*.f64 -1/2 x) y)
(*.f64 1/2 (/.f64 x y))
(/.f64 (*.f64 -1/2 x) y)
1/2
-1/2
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 -1/2 (/.f64 (*.f64 -1/2 x) y))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 -1/2 (/.f64 (*.f64 -1/2 x) y))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 -1/2 (/.f64 (*.f64 -1/2 x) y))
(*.f64 1/2 (/.f64 x y))
(/.f64 (*.f64 -1/2 x) y)
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 -1/2 (/.f64 (*.f64 -1/2 x) y))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 -1/2 (/.f64 (*.f64 -1/2 x) y))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 -1/2 (/.f64 (*.f64 -1/2 x) y))
(*.f64 1/2 (/.f64 x y))
(/.f64 (*.f64 -1/2 x) y)
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 -1/2 (/.f64 (*.f64 -1/2 x) y))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 -1/2 (/.f64 (*.f64 -1/2 x) y))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 -1/2 (/.f64 (*.f64 -1/2 x) y))
(*.f64 1/2 (/.f64 x y))
(/.f64 (*.f64 -1/2 x) y)
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 -1/2 (/.f64 (*.f64 -1/2 x) y))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 -1/2 (/.f64 (*.f64 -1/2 x) y))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 -1/2 (/.f64 (*.f64 -1/2 x) y))
1/2
-1/2
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 -1/2 (/.f64 (*.f64 -1/2 x) y))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 -1/2 (/.f64 (*.f64 -1/2 x) y))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 -1/2 (/.f64 (*.f64 -1/2 x) y))
1/2
-1/2
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 -1/2 (/.f64 (*.f64 -1/2 x) y))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 -1/2 (/.f64 (*.f64 -1/2 x) y))
(+.f64 1/2 (*.f64 1/2 (/.f64 x y)))
(+.f64 -1/2 (/.f64 (*.f64 -1/2 x) y))
(+.f64 0 (*.f64 x (/.f64 0 0)))
(*.f64 x -1)
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (/.f64 0 0))) (cbrt.f64 (pow.f64 (exp.f64 x) (/.f64 0 0))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (/.f64 0 0)))))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 x) -1)) (cbrt.f64 (pow.f64 (exp.f64 x) -1)))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 x) -1))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (/.f64 0 0)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (/.f64 0 0)))))
(*.f64 2 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) -1))))
(-.f64 (exp.f64 (log1p.f64 (*.f64 x (/.f64 0 0)))) 1)
(*.f64 x -1)
(/.f64 x (/.f64 0 0))
(/.f64 x -1)
(/.f64 1 (/.f64 y (*.f64 x 1/2)))
(*.f64 (/.f64 -1 y) (*.f64 -1/2 x))
(/.f64 (*.f64 x 1/2) y)
(/.f64 (*.f64 -1/2 x) y)
(/.f64 (neg.f64 (*.f64 x 1/2)) (neg.f64 y))
(/.f64 x (/.f64 (neg.f64 y) -1/2))
(/.f64 (*.f64 x -1/2) (neg.f64 y))
(/.f64 x (/.f64 (neg.f64 y) -1/2))
(/.f64 (*.f64 -1/2 x) (neg.f64 y))
(/.f64 x (/.f64 (neg.f64 y) -1/2))
(/.f64 (/.f64 (*.f64 x 1/2) 1) y)
(/.f64 (*.f64 -1/2 x) y)
(/.f64 (/.f64 (*.f64 x 1/2) (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y))
(/.f64 (*.f64 -1/2 x) (*.f64 (cbrt.f64 y) (pow.f64 (cbrt.f64 y) 2)))
(/.f64 (/.f64 (*.f64 x 1/2) (sqrt.f64 y)) (sqrt.f64 y))
(/.f64 (*.f64 -1/2 x) (*.f64 (sqrt.f64 y) (sqrt.f64 y)))
(pow.f64 (*.f64 x (/.f64 0 0)) 1)
(*.f64 x -1)
(pow.f64 (cbrt.f64 (*.f64 x (/.f64 0 0))) 3)
(*.f64 x -1)
(pow.f64 (pow.f64 (*.f64 x (/.f64 0 0)) 3) 1/3)
(*.f64 x -1)
(pow.f64 (*.f64 (/.f64 0 0) (sqrt.f64 x)) 2)
(pow.f64 (*.f64 -1 (sqrt.f64 x)) 2)
(sqrt.f64 (pow.f64 (*.f64 x (/.f64 0 0)) 2))
(sqrt.f64 (pow.f64 (*.f64 x -1) 2))
(log.f64 (pow.f64 (exp.f64 x) (/.f64 0 0)))
(*.f64 -1 (log.f64 (exp.f64 x)))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 x (/.f64 0 0)))))
(*.f64 x -1)
(cbrt.f64 (pow.f64 (*.f64 x (/.f64 0 0)) 3))
(*.f64 x -1)
(cbrt.f64 (*.f64 (pow.f64 x 3) (/.f64 0 0)))
(*.f64 x -1)
(cbrt.f64 (*.f64 (/.f64 0 0) (pow.f64 x 3)))
(*.f64 x -1)
(expm1.f64 (log1p.f64 (*.f64 x (/.f64 0 0))))
(*.f64 x -1)
(exp.f64 (log.f64 (*.f64 x (/.f64 0 0))))
(*.f64 x -1)
(exp.f64 (*.f64 (log.f64 (*.f64 x (/.f64 0 0))) 1))
(*.f64 x -1)
(log1p.f64 (expm1.f64 (*.f64 x (/.f64 0 0))))
(*.f64 x -1)
(+.f64 0 (*.f64 (+.f64 x y) (/.f64 0 0)))
-1
(+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (*.f64 (+.f64 x y) (/.f64 0 0)))) (cbrt.f64 (exp.f64 (*.f64 (+.f64 x y) (/.f64 0 0)))))) (log.f64 (cbrt.f64 (exp.f64 (*.f64 (+.f64 x y) (/.f64 0 0))))))
-1
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (*.f64 (+.f64 x y) (/.f64 0 0))))) (log.f64 (sqrt.f64 (exp.f64 (*.f64 (+.f64 x y) (/.f64 0 0))))))
-1
(-.f64 (exp.f64 (log1p.f64 (*.f64 (+.f64 x y) (/.f64 0 0)))) 1)
-1
(*.f64 1/2 (/.f64 (+.f64 x y) y))
(*.f64 -1/2 (/.f64 (+.f64 x y) y))
(*.f64 (+.f64 x y) (/.f64 0 0))
-1
(*.f64 (/.f64 0 0) (+.f64 x y))
-1
(*.f64 (/.f64 0 0) (*.f64 (+.f64 x y) (/.f64 0 0)))
-1
(*.f64 (*.f64 (+.f64 x y) (/.f64 0 0)) 1)
-1
(*.f64 1 (*.f64 (+.f64 x y) (/.f64 0 0)))
-1
(*.f64 (pow.f64 (cbrt.f64 (+.f64 x y)) 2) (cbrt.f64 (*.f64 (+.f64 x y) (/.f64 0 0))))
(pow.f64 (cbrt.f64 (+.f64 x y)) 2)
(*.f64 (cbrt.f64 (*.f64 (+.f64 x y) (/.f64 0 0))) (pow.f64 (cbrt.f64 (*.f64 (+.f64 x y) (/.f64 0 0))) 2))
-1
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (+.f64 x y) (/.f64 0 0))) 2) (cbrt.f64 (*.f64 (+.f64 x y) (/.f64 0 0))))
-1
(*.f64 (sqrt.f64 (+.f64 x y)) (sqrt.f64 (*.f64 (+.f64 x y) (/.f64 0 0))))
(*.f64 -1 (sqrt.f64 (+.f64 x y)))
(*.f64 (sqrt.f64 (*.f64 (+.f64 x y) (/.f64 0 0))) (sqrt.f64 (*.f64 (+.f64 x y) (/.f64 0 0))))
-1
(*.f64 (neg.f64 (+.f64 x y)) (/.f64 0 0))
-1
(*.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 x y)) 2) 1) (cbrt.f64 (*.f64 (+.f64 x y) (/.f64 0 0))))
(pow.f64 (cbrt.f64 (+.f64 x y)) 2)
(*.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 x y)) 2) (/.f64 0 0)) (cbrt.f64 (*.f64 (+.f64 x y) (/.f64 0 0))))
(pow.f64 (cbrt.f64 (+.f64 x y)) 2)
(*.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 x y)) 2) 2) (/.f64 (cbrt.f64 (+.f64 x y)) y))
(*.f64 (/.f64 (sqrt.f64 (+.f64 x y)) 1) (sqrt.f64 (*.f64 (+.f64 x y) (/.f64 0 0))))
(*.f64 -1 (sqrt.f64 (+.f64 x y)))
(*.f64 (/.f64 (sqrt.f64 (+.f64 x y)) 2) (/.f64 (sqrt.f64 (+.f64 x y)) y))
(*.f64 (/.f64 (+.f64 x y) (*.f64 2 (pow.f64 y 3))) (fma.f64 y y 0))
(*.f64 (/.f64 (/.f64 (+.f64 x y) 2) (pow.f64 y 3)) (fma.f64 y y -1))
(*.f64 (/.f64 (+.f64 x y) 0) 0)
-1
(pow.f64 (*.f64 (+.f64 x y) (/.f64 0 0)) 1)
-1
(pow.f64 (cbrt.f64 (*.f64 (+.f64 x y) (/.f64 0 0))) 3)
-1
(pow.f64 (pow.f64 (*.f64 (+.f64 x y) (/.f64 0 0)) 3) 1/3)
-1
(pow.f64 (sqrt.f64 (*.f64 (+.f64 x y) (/.f64 0 0))) 2)
-1
(pow.f64 (/.f64 (/.f64 0 0) (+.f64 x y)) -1)
-1
(neg.f64 (*.f64 (+.f64 x y) (/.f64 0 0)))
-1
(sqrt.f64 (pow.f64 (*.f64 (+.f64 x y) (/.f64 0 0)) 2))
-1
(log.f64 (exp.f64 (*.f64 (+.f64 x y) (/.f64 0 0))))
-1
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (+.f64 x y) (/.f64 0 0)))))
-1
(log.f64 (/.f64 1 (exp.f64 (*.f64 (+.f64 x y) (/.f64 0 0)))))
-1
(log.f64 (/.f64 1 (+.f64 1 (expm1.f64 (*.f64 (+.f64 x y) (/.f64 0 0))))))
-1
(cbrt.f64 (pow.f64 (*.f64 (+.f64 x y) (/.f64 0 0)) 3))
-1
(cbrt.f64 (/.f64 (pow.f64 (+.f64 x y) 3) (/.f64 0 0)))
(cbrt.f64 (/.f64 (pow.f64 (+.f64 x y) 3) -1))
(expm1.f64 (log1p.f64 (*.f64 (+.f64 x y) (/.f64 0 0))))
-1
(exp.f64 (log.f64 (*.f64 (+.f64 x y) (/.f64 0 0))))
-1
(exp.f64 (*.f64 (log.f64 (*.f64 (+.f64 x y) (/.f64 0 0))) 1))
-1
(log1p.f64 (expm1.f64 (*.f64 (+.f64 x y) (/.f64 0 0))))
-1

eval21.0ms (0.9%)

Compiler

Compiled 946 to 665 computations (29.7% saved)

prune57.0ms (2.6%)

Pruning

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New86490
Fresh000
Picked202
Done000
Total88492
Accuracy
100.0%
Counts
92 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(-.f64 (/.f64 (*.f64 x 1/2) y) -1/2)
36.1%
(-.f64 (/.f64 x -1) -1/2)
50.4%
1/2
2.2%
-1
100.0%
(-.f64 (/.f64 (*.f64 x 1/2) y) -1/2)
36.1%
(-.f64 (/.f64 x -1) -1/2)
50.4%
1/2
2.2%
-1
Compiler

Compiled 44 to 38 computations (13.6% saved)

localize47.0ms (2.1%)

Compiler

Compiled 33 to 23 computations (30.3% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune3.0ms (0.1%)

Pruning

4 alts after pruning (2 fresh and 2 done)

PrunedKeptTotal
New000
Fresh022
Picked022
Done000
Total044
Accuracy
100.0%
Counts
4 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(-.f64 (/.f64 (*.f64 x 1/2) y) -1/2)
36.1%
(-.f64 (/.f64 x -1) -1/2)
50.4%
1/2
2.2%
-1
100.0%
(-.f64 (/.f64 (*.f64 x 1/2) y) -1/2)
36.1%
(-.f64 (/.f64 x -1) -1/2)
50.4%
1/2
2.2%
-1
Compiler

Compiled 44 to 38 computations (13.6% saved)

localize0.0ms (0%)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune3.0ms (0.1%)

Pruning

4 alts after pruning (2 fresh and 2 done)

PrunedKeptTotal
New000
Fresh022
Picked000
Done022
Total044
Accuracy
100.0%
Counts
4 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(-.f64 (/.f64 (*.f64 x 1/2) y) -1/2)
36.1%
(-.f64 (/.f64 x -1) -1/2)
50.4%
1/2
2.2%
-1
100.0%
(-.f64 (/.f64 (*.f64 x 1/2) y) -1/2)
36.1%
(-.f64 (/.f64 x -1) -1/2)
50.4%
1/2
2.2%
-1
Compiler

Compiled 44 to 38 computations (13.6% saved)

localize0.0ms (0%)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune3.0ms (0.1%)

Pruning

4 alts after pruning (2 fresh and 2 done)

PrunedKeptTotal
New000
Fresh022
Picked000
Done022
Total044
Accuracy
100.0%
Counts
4 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(-.f64 (/.f64 (*.f64 x 1/2) y) -1/2)
36.1%
(-.f64 (/.f64 x -1) -1/2)
50.4%
1/2
2.2%
-1
Compiler

Compiled 52 to 40 computations (23.1% saved)

regimes15.0ms (0.7%)

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

3 calls:

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

Compiled 45 to 30 computations (33.3% saved)

regimes9.0ms (0.4%)

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

2 calls:

4.0ms
y
4.0ms
x
Results
AccuracySegmentsBranch
99.9%1x
99.9%1y
Compiler

Compiled 22 to 17 computations (22.7% saved)

regimes9.0ms (0.4%)

Counts
3 → 1
Calls
Call 1
Inputs
-1
1/2
(-.f64 (/.f64 x -1) -1/2)
Outputs
1/2
Calls

2 calls:

4.0ms
y
4.0ms
x
Results
AccuracySegmentsBranch
50.4%1x
50.4%1y
Compiler

Compiled 15 to 12 computations (20% saved)

regimes6.0ms (0.3%)

Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

Counts
1 → 1
Calls
Call 1
Inputs
-1
Outputs
-1
Calls

2 calls:

3.0ms
x
3.0ms
y
Results
AccuracySegmentsBranch
2.2%1x
2.2%1y
Compiler

Compiled 9 to 7 computations (22.2% saved)

simplify4.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01652
12252
22752
32952
43052
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(-.f64 (/.f64 (*.f64 x 1/2) y) -1/2)
(-.f64 (*.f64 x (/.f64 1/2 y)) -1/2)
1/2
-1
Outputs
(-.f64 (/.f64 (*.f64 x 1/2) y) -1/2)
(-.f64 (*.f64 x (/.f64 1/2 y)) -1/2)
1/2
-1
Compiler

Compiled 24 to 20 computations (16.7% saved)

soundness564.0ms (25.6%)

Rules
1932×fma-def
1628×div-sub
1492×fma-neg
1326×prod-diff
1326×prod-diff
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
023220
147196
2103196
3289184
41292162
53777151
66395151
77863151
01347
117941
2290641
01347
117941
2290641
01641844
14241844
Stop Event
unsound
node limit
node limit
node limit
Compiler

Compiled 204 to 83 computations (59.3% saved)

end0.0ms (0%)

preprocess84.0ms (3.8%)

Compiler

Compiled 72 to 52 computations (27.8% saved)

Profiling

Loading profile data...