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

Time bar (total: 2.7s)

analyze11.0ms (0.4%)

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)

sample932.0ms (34.7%)

Results
824.0ms7205×body256valid
96.0ms1051×body256infinite
Bogosity

preprocess285.0ms (10.6%)

Algorithm
egg-herbie
Rules
1932×fma-def
1642×div-sub
1492×fma-neg
662×distribute-rgt-in
652×associate-/r*
FPErrors
Click to see full error table
truthopredexupredexsubexpr
2560-0-#f
00-0-x
00-0-(+.f64 x y)
00-0-(+.f64 y y)
00-0-y
00-0-(/.f64 (+.f64 x y) (+.f64 y y))
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
023220
147196
2103196
3289184
41295162
53738151
66374151
77852151
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))
Compiler

Compiled 45 to 17 computations (62.2% 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)

localize80.0ms (3%)

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)

series7.0ms (0.2%)

Counts
2 → 48
Calls

12 calls:

TimeVariablePointExpression
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
x
@0
(*.f64 x (/.f64 1/2 y))
1.0ms
y
@inf
(/.f64 (+.f64 x y) (+.f64 y y))

rewrite218.0ms (8.1%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
01347
117941
2291041
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 (/.f64 0 0)) x)) (cbrt.f64 (pow.f64 (exp.f64 (/.f64 0 0)) x)))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (/.f64 0 0)) x))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (/.f64 0 0)) x))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (/.f64 0 0)) x))))
(-.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 (*.f64 (/.f64 0 0) (cbrt.f64 x)) 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 (*.f64 (/.f64 0 0) (pow.f64 x 2)))
(log.f64 (pow.f64 (exp.f64 (/.f64 0 0)) x))
(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 (pow.f64 (exp.f64 (+.f64 x y)) (/.f64 0 0))) (cbrt.f64 (pow.f64 (exp.f64 (+.f64 x y)) (/.f64 0 0))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 x y)) (/.f64 0 0)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 x y)) (/.f64 0 0)))) (log.f64 (sqrt.f64 (pow.f64 (exp.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 (*.f64 (cbrt.f64 (+.f64 x y)) (/.f64 0 0)) (pow.f64 (*.f64 (cbrt.f64 (+.f64 x y)) (/.f64 0 0)) 2))
(*.f64 (pow.f64 (*.f64 (cbrt.f64 (+.f64 x y)) (/.f64 0 0)) 2) (*.f64 (cbrt.f64 (+.f64 x y)) (/.f64 0 0)))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 x y)) 2) (*.f64 (cbrt.f64 (+.f64 x y)) (/.f64 0 0)))
(*.f64 (*.f64 (sqrt.f64 (+.f64 x y)) (/.f64 0 0)) (*.f64 (sqrt.f64 (+.f64 x y)) (/.f64 0 0)))
(*.f64 (sqrt.f64 (+.f64 x y)) (*.f64 (sqrt.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) (*.f64 (cbrt.f64 (+.f64 x y)) (/.f64 0 0)))
(*.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 x y)) 2) (/.f64 0 0)) (*.f64 (cbrt.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) (*.f64 (sqrt.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 (*.f64 (cbrt.f64 (+.f64 x y)) (/.f64 0 0)) 3)
(pow.f64 (pow.f64 (*.f64 (+.f64 x y) (/.f64 0 0)) 3) 1/3)
(pow.f64 (*.f64 (sqrt.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 (*.f64 (pow.f64 (+.f64 x y) 2) (/.f64 0 0)))
(log.f64 (pow.f64 (exp.f64 (+.f64 x y)) (/.f64 0 0)))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (+.f64 x y) (/.f64 0 0)))))
(log.f64 (/.f64 1 (pow.f64 (exp.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))))

simplify94.0ms (3.5%)

Algorithm
egg-herbie
Rules
50×*-commutative
42×sqr-pow
24×associate-*l/
22×associate-*r/
16×+-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01682284
14622284
Stop Event
unsound
Counts
115 → 93
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 (/.f64 0 0)) x)) (cbrt.f64 (pow.f64 (exp.f64 (/.f64 0 0)) x)))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (/.f64 0 0)) x))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (/.f64 0 0)) x))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (/.f64 0 0)) x))))
(-.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 (*.f64 (/.f64 0 0) (cbrt.f64 x)) 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 (*.f64 (/.f64 0 0) (pow.f64 x 2)))
(log.f64 (pow.f64 (exp.f64 (/.f64 0 0)) x))
(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 (pow.f64 (exp.f64 (+.f64 x y)) (/.f64 0 0))) (cbrt.f64 (pow.f64 (exp.f64 (+.f64 x y)) (/.f64 0 0))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 x y)) (/.f64 0 0)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 x y)) (/.f64 0 0)))) (log.f64 (sqrt.f64 (pow.f64 (exp.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 (*.f64 (cbrt.f64 (+.f64 x y)) (/.f64 0 0)) (pow.f64 (*.f64 (cbrt.f64 (+.f64 x y)) (/.f64 0 0)) 2))
(*.f64 (pow.f64 (*.f64 (cbrt.f64 (+.f64 x y)) (/.f64 0 0)) 2) (*.f64 (cbrt.f64 (+.f64 x y)) (/.f64 0 0)))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 x y)) 2) (*.f64 (cbrt.f64 (+.f64 x y)) (/.f64 0 0)))
(*.f64 (*.f64 (sqrt.f64 (+.f64 x y)) (/.f64 0 0)) (*.f64 (sqrt.f64 (+.f64 x y)) (/.f64 0 0)))
(*.f64 (sqrt.f64 (+.f64 x y)) (*.f64 (sqrt.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) (*.f64 (cbrt.f64 (+.f64 x y)) (/.f64 0 0)))
(*.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 x y)) 2) (/.f64 0 0)) (*.f64 (cbrt.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) (*.f64 (sqrt.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 (*.f64 (cbrt.f64 (+.f64 x y)) (/.f64 0 0)) 3)
(pow.f64 (pow.f64 (*.f64 (+.f64 x y) (/.f64 0 0)) 3) 1/3)
(pow.f64 (*.f64 (sqrt.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 (*.f64 (pow.f64 (+.f64 x y) 2) (/.f64 0 0)))
(log.f64 (pow.f64 (exp.f64 (+.f64 x y)) (/.f64 0 0)))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (+.f64 x y) (/.f64 0 0)))))
(log.f64 (/.f64 1 (pow.f64 (exp.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 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 x 0)
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (/.f64 0 0)) x)) (cbrt.f64 (pow.f64 (exp.f64 (/.f64 0 0)) x)))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (/.f64 0 0)) x))))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 0 x)) (cbrt.f64 (pow.f64 0 x)))) (log.f64 (cbrt.f64 (pow.f64 0 x))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (/.f64 0 0)) x))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (/.f64 0 0)) x))))
(*.f64 2 (log.f64 (sqrt.f64 (pow.f64 0 x))))
(-.f64 (exp.f64 (log1p.f64 (*.f64 x (/.f64 0 0)))) 1)
(*.f64 x 0)
(/.f64 x (/.f64 0 0))
(/.f64 x 0)
(/.f64 1 (/.f64 y (*.f64 x 1/2)))
(*.f64 (/.f64 0 y) (*.f64 1/2 x))
(/.f64 (*.f64 x 1/2) y)
(*.f64 1/2 (/.f64 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 1/2 (/.f64 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 0)
(pow.f64 (*.f64 (/.f64 0 0) (cbrt.f64 x)) 3)
(*.f64 0 (pow.f64 (cbrt.f64 x) 3))
(pow.f64 (pow.f64 (*.f64 x (/.f64 0 0)) 3) 1/3)
(*.f64 x 0)
(pow.f64 (*.f64 (/.f64 0 0) (sqrt.f64 x)) 2)
(pow.f64 (*.f64 0 (sqrt.f64 x)) 2)
(sqrt.f64 (*.f64 (/.f64 0 0) (pow.f64 x 2)))
(sqrt.f64 (*.f64 0 (pow.f64 x 2)))
(log.f64 (pow.f64 (exp.f64 (/.f64 0 0)) x))
(*.f64 x 0)
(log.f64 (+.f64 1 (expm1.f64 (*.f64 x (/.f64 0 0)))))
(*.f64 x 0)
(cbrt.f64 (pow.f64 (*.f64 x (/.f64 0 0)) 3))
(*.f64 x 0)
(cbrt.f64 (*.f64 (pow.f64 x 3) (/.f64 0 0)))
(*.f64 x 0)
(cbrt.f64 (*.f64 (/.f64 0 0) (pow.f64 x 3)))
(*.f64 x 0)
(expm1.f64 (log1p.f64 (*.f64 x (/.f64 0 0))))
(*.f64 x 0)
(exp.f64 (log.f64 (*.f64 x (/.f64 0 0))))
(*.f64 x 0)
(exp.f64 (*.f64 (log.f64 (*.f64 x (/.f64 0 0))) 1))
(*.f64 x 0)
(log1p.f64 (expm1.f64 (*.f64 x (/.f64 0 0))))
(*.f64 x 0)
(+.f64 0 (*.f64 (+.f64 x y) (/.f64 0 0)))
0
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 x y)) (/.f64 0 0))) (cbrt.f64 (pow.f64 (exp.f64 (+.f64 x y)) (/.f64 0 0))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 x y)) (/.f64 0 0)))))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 x y)) 0)) (cbrt.f64 (pow.f64 (exp.f64 (+.f64 x y)) 0)))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 x y)) 0))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 x y)) (/.f64 0 0)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 x y)) (/.f64 0 0)))))
(*.f64 2 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 x y)) 0))))
(-.f64 (exp.f64 (log1p.f64 (*.f64 (+.f64 x y) (/.f64 0 0)))) 1)
0
(*.f64 1/2 (/.f64 (+.f64 x y) y))
(*.f64 (+.f64 x y) (/.f64 0 0))
0
(*.f64 (/.f64 0 0) (+.f64 x y))
0
(*.f64 (/.f64 0 0) (*.f64 (+.f64 x y) (/.f64 0 0)))
0
(*.f64 (*.f64 (+.f64 x y) (/.f64 0 0)) 1)
0
(*.f64 1 (*.f64 (+.f64 x y) (/.f64 0 0)))
0
(*.f64 (*.f64 (cbrt.f64 (+.f64 x y)) (/.f64 0 0)) (pow.f64 (*.f64 (cbrt.f64 (+.f64 x y)) (/.f64 0 0)) 2))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 x y)) 3) 0)
(*.f64 (pow.f64 (*.f64 (cbrt.f64 (+.f64 x y)) (/.f64 0 0)) 2) (*.f64 (cbrt.f64 (+.f64 x y)) (/.f64 0 0)))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 x y)) 3) 0)
(*.f64 (pow.f64 (cbrt.f64 (+.f64 x y)) 2) (*.f64 (cbrt.f64 (+.f64 x y)) (/.f64 0 0)))
(*.f64 (*.f64 0 (cbrt.f64 (+.f64 x y))) (pow.f64 (cbrt.f64 (+.f64 x y)) 2))
(*.f64 (*.f64 (sqrt.f64 (+.f64 x y)) (/.f64 0 0)) (*.f64 (sqrt.f64 (+.f64 x y)) (/.f64 0 0)))
(pow.f64 (*.f64 0 (sqrt.f64 (+.f64 x y))) 2)
(*.f64 (sqrt.f64 (+.f64 x y)) (*.f64 (sqrt.f64 (+.f64 x y)) (/.f64 0 0)))
(pow.f64 (*.f64 0 (sqrt.f64 (+.f64 x y))) 2)
(*.f64 (neg.f64 (+.f64 x y)) (/.f64 0 0))
-1
(*.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 x y)) 2) 1) (*.f64 (cbrt.f64 (+.f64 x y)) (/.f64 0 0)))
(*.f64 (*.f64 0 (cbrt.f64 (+.f64 x y))) (pow.f64 (cbrt.f64 (+.f64 x y)) 2))
(*.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 x y)) 2) (/.f64 0 0)) (*.f64 (cbrt.f64 (+.f64 x y)) (/.f64 0 0)))
(*.f64 (*.f64 0 (cbrt.f64 (+.f64 x y))) (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) (*.f64 (sqrt.f64 (+.f64 x y)) (/.f64 0 0)))
(pow.f64 (*.f64 0 (sqrt.f64 (+.f64 x y))) 2)
(*.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) (fma.f64 y y 0)) (*.f64 2 (pow.f64 y 3)))
(*.f64 (/.f64 (+.f64 x y) 0) 0)
0
(pow.f64 (*.f64 (+.f64 x y) (/.f64 0 0)) 1)
0
(pow.f64 (*.f64 (cbrt.f64 (+.f64 x y)) (/.f64 0 0)) 3)
(*.f64 (pow.f64 (cbrt.f64 (+.f64 x y)) 3) 0)
(pow.f64 (pow.f64 (*.f64 (+.f64 x y) (/.f64 0 0)) 3) 1/3)
0
(pow.f64 (*.f64 (sqrt.f64 (+.f64 x y)) (/.f64 0 0)) 2)
(pow.f64 (*.f64 0 (sqrt.f64 (+.f64 x y))) 2)
(pow.f64 (/.f64 (/.f64 0 0) (+.f64 x y)) -1)
0
(neg.f64 (*.f64 (+.f64 x y) (/.f64 0 0)))
-1
(sqrt.f64 (*.f64 (pow.f64 (+.f64 x y) 2) (/.f64 0 0)))
(sqrt.f64 (*.f64 0 (pow.f64 (+.f64 x y) 2)))
(log.f64 (pow.f64 (exp.f64 (+.f64 x y)) (/.f64 0 0)))
(*.f64 0 (log.f64 (exp.f64 (+.f64 x y))))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (+.f64 x y) (/.f64 0 0)))))
0
(log.f64 (/.f64 1 (pow.f64 (exp.f64 (+.f64 x y)) (/.f64 0 0))))
(neg.f64 (*.f64 0 (log.f64 (exp.f64 (+.f64 x y)))))
(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))
0
(cbrt.f64 (/.f64 (pow.f64 (+.f64 x y) 3) (/.f64 0 0)))
(cbrt.f64 (/.f64 (pow.f64 (+.f64 x y) 3) 0))
(expm1.f64 (log1p.f64 (*.f64 (+.f64 x y) (/.f64 0 0))))
0
(exp.f64 (log.f64 (*.f64 (+.f64 x y) (/.f64 0 0))))
0
(exp.f64 (*.f64 (log.f64 (*.f64 (+.f64 x y) (/.f64 0 0))) 1))
0
(log1p.f64 (expm1.f64 (*.f64 (+.f64 x y) (/.f64 0 0))))
0

eval22.0ms (0.8%)

Compiler

Compiled 997 to 679 computations (31.9% saved)

prune49.0ms (1.8%)

Pruning

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New89493
Fresh000
Picked202
Done000
Total91495
Accuracy
100.0%
Counts
95 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(-.f64 (/.f64 (*.f64 x 1/2) y) -1/2)
9.5%
(-.f64 (/.f64 x 0) -1/2)
51.6%
1/2
2.1%
-1
100.0%
(-.f64 (/.f64 (*.f64 x 1/2) y) -1/2)
9.5%
(-.f64 (/.f64 x 0) -1/2)
51.6%
1/2
2.1%
-1
Compiler

Compiled 44 to 38 computations (13.6% saved)

localize54.0ms (2%)

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)
9.5%
(-.f64 (/.f64 x 0) -1/2)
51.6%
1/2
2.1%
-1
100.0%
(-.f64 (/.f64 (*.f64 x 1/2) y) -1/2)
9.5%
(-.f64 (/.f64 x 0) -1/2)
51.6%
1/2
2.1%
-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)
9.5%
(-.f64 (/.f64 x 0) -1/2)
51.6%
1/2
2.1%
-1
100.0%
(-.f64 (/.f64 (*.f64 x 1/2) y) -1/2)
9.5%
(-.f64 (/.f64 x 0) -1/2)
51.6%
1/2
2.1%
-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)
9.5%
(-.f64 (/.f64 x 0) -1/2)
51.6%
1/2
2.1%
-1
Compiler

Compiled 52 to 40 computations (23.1% saved)

regimes17.0ms (0.6%)

Counts
6 → 1
Calls
Call 1
Inputs
-1
1/2
(-.f64 (/.f64 x 0) -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:

7.0ms
x
5.0ms
y
4.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.3%)

Counts
4 → 1
Calls
Call 1
Inputs
-1
1/2
(-.f64 (/.f64 x 0) -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)

regimes23.0ms (0.8%)

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

2 calls:

11.0ms
x
9.0ms
y
Results
AccuracySegmentsBranch
55.5%3x
58.3%3y
Compiler

Compiled 15 to 12 computations (20% saved)

regimes7.0ms (0.3%)

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

2 calls:

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

Compiled 10 to 8 computations (20% saved)

regimes8.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:

4.0ms
y
3.0ms
x
Results
AccuracySegmentsBranch
2.1%1x
2.1%1y
Compiler

Compiled 9 to 7 computations (22.2% saved)

bsearch31.0ms (1.2%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
12.0ms
1.0309914639421339e-158
3.857463719957446e-157
19.0ms
-1.649358842632514e-296
3.499983683166187e-300
Results
16.0ms169×body256valid
11.0ms119×body256infinite
Compiler

Compiled 230 to 207 computations (10% saved)

simplify7.0ms (0.3%)

Algorithm
egg-herbie
Rules
sub-neg
+-commutative
*-commutative
neg-mul-1
if-if-or-not
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02894
14094
24594
34794
44894
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)
(if (<=.f64 y -101201126653655/202402253307310618352495346718917307049556649764142118356901358027430339567995346891960383701437124495187077864316811911389808737385793476867013399940738509921517424276566361364466907742093216341239767678472745068562007483424692698618103355649159556340810056512358769552333414615230502532186327508646006263307707741093494784) 1/2 (if (<=.f64 y 5935929635354509/247330401473104534060502521019647190035131349101211839914063056092897225106531867170316401061243044989597671426016139339351365034306751209967546155101893167916606772148699136) (-.f64 (/.f64 x 0) -1/2) 1/2))
1/2
-1
Outputs
(-.f64 (/.f64 (*.f64 x 1/2) y) -1/2)
(-.f64 (*.f64 x (/.f64 1/2 y)) -1/2)
(if (<=.f64 y -101201126653655/202402253307310618352495346718917307049556649764142118356901358027430339567995346891960383701437124495187077864316811911389808737385793476867013399940738509921517424276566361364466907742093216341239767678472745068562007483424692698618103355649159556340810056512358769552333414615230502532186327508646006263307707741093494784) 1/2 (if (<=.f64 y 5935929635354509/247330401473104534060502521019647190035131349101211839914063056092897225106531867170316401061243044989597671426016139339351365034306751209967546155101893167916606772148699136) (-.f64 (/.f64 x 0) -1/2) 1/2))
1/2
-1
Compiler

Compiled 41 to 34 computations (17.1% saved)

soundness762.0ms (28.4%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
023220
147196
2103196
3289184
41295162
53738151
66374151
77852151
01347
117941
2291041
01347
117941
2291041
01682284
14622284
01347
117941
2291041
01682284
14622284
Stop Event
unsound
node limit
unsound
node limit
node limit
node limit
Compiler

Compiled 426 to 159 computations (62.7% saved)

end0.0ms (0%)

preprocess60.0ms (2.2%)

Compiler

Compiled 102 to 76 computations (25.5% saved)

Profiling

Loading profile data...