Numeric.SpecFunctions:logGamma from math-functions-0.1.5.2, A

Time bar (total: 2.1s)

analyze0.0ms (0%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
100%99.9%0%0.1%0%0%0%1
Compiler

Compiled 14 to 11 computations (21.4% saved)

sample772.0ms (37.4%)

Results
663.0ms7246×body256valid
98.0ms1010×body256infinite
Bogosity

preprocess353.0ms (17.1%)

Algorithm
egg-herbie
Rules
4146×fma-def
1176×fma-neg
746×sub-neg
546×unsub-neg
452×associate-+l-
Problems
256×No Errors
Iterations

Useful iterations: 12 (0.0ms)

IterNodesCost
028163
180141
2203119
3606115
41734107
53675107
64448107
74688107
84738107
94742107
104744107
114774107
124774105
136401105
146401105
156401105
Stop Event
saturated
Calls
Call 1
Inputs
(+.f64 (-.f64 (*.f64 x (-.f64 y 1)) (*.f64 y 1/2)) 918938533204673/1000000000000000)
(+.f64 (-.f64 (*.f64 x (-.f64 y 1)) (*.f64 y 1/2)) 918938533204673/1000000000000000)
(+.f64 (-.f64 (*.f64 (neg.f64 x) (-.f64 y 1)) (*.f64 y 1/2)) 918938533204673/1000000000000000)
(+.f64 (-.f64 (*.f64 x (-.f64 (neg.f64 y) 1)) (*.f64 (neg.f64 y) 1/2)) 918938533204673/1000000000000000)
(+.f64 (-.f64 (*.f64 y (-.f64 x 1)) (*.f64 x 1/2)) 918938533204673/1000000000000000)
Outputs
(+.f64 (-.f64 (*.f64 x (-.f64 y 1)) (*.f64 y 1/2)) 918938533204673/1000000000000000)
(-.f64 (*.f64 x (+.f64 y -1)) (-.f64 (*.f64 y 1/2) 918938533204673/1000000000000000))
(+.f64 (fma.f64 x (+.f64 y -1) (*.f64 y -1/2)) 918938533204673/1000000000000000)
(fma.f64 x (+.f64 y -1) (fma.f64 y -1/2 918938533204673/1000000000000000))
(-.f64 918938533204673/1000000000000000 (fma.f64 y (-.f64 1/2 x) x))
(-.f64 (fma.f64 y (-.f64 x 1/2) 918938533204673/1000000000000000) x)
(+.f64 (-.f64 (*.f64 x (-.f64 y 1)) (*.f64 y 1/2)) 918938533204673/1000000000000000)
(-.f64 (*.f64 x (+.f64 y -1)) (-.f64 (*.f64 y 1/2) 918938533204673/1000000000000000))
(+.f64 (fma.f64 x (+.f64 y -1) (*.f64 y -1/2)) 918938533204673/1000000000000000)
(fma.f64 x (+.f64 y -1) (fma.f64 y -1/2 918938533204673/1000000000000000))
(-.f64 918938533204673/1000000000000000 (fma.f64 y (-.f64 1/2 x) x))
(-.f64 (fma.f64 y (-.f64 x 1/2) 918938533204673/1000000000000000) x)
(+.f64 (-.f64 (*.f64 (neg.f64 x) (-.f64 y 1)) (*.f64 y 1/2)) 918938533204673/1000000000000000)
(+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 (+.f64 y -1) (neg.f64 x)) (*.f64 y 1/2)))
(+.f64 918938533204673/1000000000000000 (fma.f64 (+.f64 y -1) (neg.f64 x) (*.f64 y -1/2)))
(-.f64 918938533204673/1000000000000000 (fma.f64 x (+.f64 y -1) (*.f64 y 1/2)))
(fma.f64 x (-.f64 1 y) (fma.f64 y -1/2 918938533204673/1000000000000000))
(+.f64 918938533204673/1000000000000000 (fma.f64 y (-.f64 -1/2 x) x))
(fma.f64 y (-.f64 -1/2 x) (+.f64 x 918938533204673/1000000000000000))
(+.f64 (-.f64 (*.f64 x (-.f64 (neg.f64 y) 1)) (*.f64 (neg.f64 y) 1/2)) 918938533204673/1000000000000000)
(+.f64 918938533204673/1000000000000000 (+.f64 (*.f64 x (+.f64 (neg.f64 y) -1)) (*.f64 y 1/2)))
(+.f64 918938533204673/1000000000000000 (fma.f64 x (fma.f64 -1 y -1) (*.f64 y 1/2)))
(fma.f64 x (-.f64 -1 y) (fma.f64 y 1/2 918938533204673/1000000000000000))
(-.f64 918938533204673/1000000000000000 (fma.f64 y (+.f64 x -1/2) x))
(-.f64 918938533204673/1000000000000000 (fma.f64 y (-.f64 x 1/2) x))
(-.f64 (fma.f64 y (-.f64 1/2 x) 918938533204673/1000000000000000) x)
(+.f64 (-.f64 (*.f64 y (-.f64 x 1)) (*.f64 x 1/2)) 918938533204673/1000000000000000)
(+.f64 918938533204673/1000000000000000 (-.f64 (*.f64 y (+.f64 x -1)) (*.f64 x 1/2)))
(+.f64 918938533204673/1000000000000000 (fma.f64 y (+.f64 x -1) (*.f64 x -1/2)))
(fma.f64 y (+.f64 x -1) (fma.f64 x -1/2 918938533204673/1000000000000000))
(fma.f64 x -1/2 (fma.f64 y (+.f64 x -1) 918938533204673/1000000000000000))
(fma.f64 x y (-.f64 918938533204673/1000000000000000 (fma.f64 x 1/2 y)))
(fma.f64 x (+.f64 y -1/2) (-.f64 918938533204673/1000000000000000 y))
Compiler

Compiled 52 to 37 computations (28.8% saved)

eval1.0ms (0.1%)

Compiler

Compiled 48 to 33 computations (31.3% saved)

prune2.0ms (0.1%)

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

Compiled 26 to 20 computations (23.1% saved)

localize40.0ms (1.9%)

Localize:

Found 1 expressions with local error:

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

Compiled 35 to 25 computations (28.6% saved)

series3.0ms (0.2%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
1.0ms
y
@inf
(*.f64 x (+.f64 y -1))
1.0ms
y
@-inf
(*.f64 x (+.f64 y -1))
0.0ms
x
@0
(*.f64 x (+.f64 y -1))
0.0ms
x
@inf
(*.f64 x (+.f64 y -1))
0.0ms
x
@-inf
(*.f64 x (+.f64 y -1))

rewrite56.0ms (2.7%)

Algorithm
batch-egg-rewrite
Rules
1594×pow1
1474×add-exp-log
1474×log1p-expm1-u
1474×expm1-log1p-u
1448×add-log-exp
Iterations

Useful iterations: 0 (0.0ms)

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

simplify59.0ms (2.8%)

Algorithm
egg-herbie
Rules
880×fma-neg
846×div-sub
636×distribute-lft-neg-out
580×associate-+r+
560×fma-def
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
074710
1217688
2792676
33433674
Stop Event
node limit
Counts
46 → 34
Calls
Call 1
Inputs
(*.f64 x (-.f64 y 1))
(*.f64 x (-.f64 y 1))
(*.f64 x (-.f64 y 1))
(*.f64 x (-.f64 y 1))
(*.f64 x (-.f64 y 1))
(*.f64 x (-.f64 y 1))
(*.f64 x (-.f64 y 1))
(*.f64 x (-.f64 y 1))
(*.f64 x (-.f64 y 1))
(*.f64 x (-.f64 y 1))
(*.f64 x (-.f64 y 1))
(*.f64 x (-.f64 y 1))
(*.f64 -1 x)
(+.f64 (*.f64 -1 x) (*.f64 x y))
(+.f64 (*.f64 -1 x) (*.f64 x y))
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x y)
(+.f64 (*.f64 -1 x) (*.f64 x y))
(+.f64 (*.f64 -1 x) (*.f64 x y))
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x y)
(+.f64 (*.f64 -1 x) (*.f64 x y))
(+.f64 (*.f64 -1 x) (*.f64 x y))
(+.f64 (*.f64 -1 x) (*.f64 x y))
(+.f64 (*.f64 x y) (neg.f64 x))
(+.f64 (neg.f64 x) (*.f64 x y))
(+.f64 (*.f64 (*.f64 x y) 1) (*.f64 (neg.f64 x) 1))
(-.f64 (+.f64 1 (*.f64 x (+.f64 y -1))) 1)
(/.f64 (+.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (neg.f64 x) 3)) (+.f64 (*.f64 (*.f64 x y) (*.f64 x y)) (-.f64 (*.f64 (neg.f64 x) (neg.f64 x)) (*.f64 (*.f64 x y) (neg.f64 x)))))
(/.f64 (-.f64 (*.f64 (*.f64 x y) (*.f64 x y)) (*.f64 (neg.f64 x) (neg.f64 x))) (-.f64 (*.f64 x y) (neg.f64 x)))
(/.f64 (*.f64 x (+.f64 -1 (pow.f64 y 3))) (fma.f64 y y (-.f64 1 (*.f64 y -1))))
(/.f64 (*.f64 x (fma.f64 y y -1)) (+.f64 y 1))
(/.f64 (*.f64 (+.f64 -1 (pow.f64 y 3)) x) (fma.f64 y y (-.f64 1 (*.f64 y -1))))
(/.f64 (*.f64 (fma.f64 y y -1) x) (+.f64 y 1))
(pow.f64 (*.f64 x (+.f64 y -1)) 1)
(pow.f64 (cbrt.f64 (*.f64 x (+.f64 y -1))) 3)
(pow.f64 (pow.f64 (*.f64 x (+.f64 y -1)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 x (+.f64 y -1))) 2)
(sqrt.f64 (pow.f64 (*.f64 x (+.f64 y -1)) 2))
(log.f64 (pow.f64 (exp.f64 (+.f64 y -1)) x))
(cbrt.f64 (pow.f64 (*.f64 x (+.f64 y -1)) 3))
(expm1.f64 (log1p.f64 (*.f64 x (+.f64 y -1))))
(exp.f64 (log.f64 (*.f64 x (+.f64 y -1))))
(log1p.f64 (expm1.f64 (*.f64 x (+.f64 y -1))))
(fma.f64 x y (neg.f64 x))
(fma.f64 y x (neg.f64 x))
Outputs
(*.f64 x (-.f64 y 1))
(fma.f64 x y (neg.f64 x))
(*.f64 x (+.f64 y -1))
(*.f64 x (-.f64 y 1))
(fma.f64 x y (neg.f64 x))
(*.f64 x (+.f64 y -1))
(*.f64 x (-.f64 y 1))
(fma.f64 x y (neg.f64 x))
(*.f64 x (+.f64 y -1))
(*.f64 x (-.f64 y 1))
(fma.f64 x y (neg.f64 x))
(*.f64 x (+.f64 y -1))
(*.f64 x (-.f64 y 1))
(fma.f64 x y (neg.f64 x))
(*.f64 x (+.f64 y -1))
(*.f64 x (-.f64 y 1))
(fma.f64 x y (neg.f64 x))
(*.f64 x (+.f64 y -1))
(*.f64 x (-.f64 y 1))
(fma.f64 x y (neg.f64 x))
(*.f64 x (+.f64 y -1))
(*.f64 x (-.f64 y 1))
(fma.f64 x y (neg.f64 x))
(*.f64 x (+.f64 y -1))
(*.f64 x (-.f64 y 1))
(fma.f64 x y (neg.f64 x))
(*.f64 x (+.f64 y -1))
(*.f64 x (-.f64 y 1))
(fma.f64 x y (neg.f64 x))
(*.f64 x (+.f64 y -1))
(*.f64 x (-.f64 y 1))
(fma.f64 x y (neg.f64 x))
(*.f64 x (+.f64 y -1))
(*.f64 x (-.f64 y 1))
(fma.f64 x y (neg.f64 x))
(*.f64 x (+.f64 y -1))
(*.f64 -1 x)
(neg.f64 x)
(+.f64 (*.f64 -1 x) (*.f64 x y))
(fma.f64 x y (neg.f64 x))
(*.f64 x (+.f64 y -1))
(+.f64 (*.f64 -1 x) (*.f64 x y))
(fma.f64 x y (neg.f64 x))
(*.f64 x (+.f64 y -1))
(+.f64 (*.f64 -1 x) (*.f64 x y))
(fma.f64 x y (neg.f64 x))
(*.f64 x (+.f64 y -1))
(*.f64 x y)
(+.f64 (*.f64 -1 x) (*.f64 x y))
(fma.f64 x y (neg.f64 x))
(*.f64 x (+.f64 y -1))
(+.f64 (*.f64 -1 x) (*.f64 x y))
(fma.f64 x y (neg.f64 x))
(*.f64 x (+.f64 y -1))
(+.f64 (*.f64 -1 x) (*.f64 x y))
(fma.f64 x y (neg.f64 x))
(*.f64 x (+.f64 y -1))
(*.f64 x y)
(+.f64 (*.f64 -1 x) (*.f64 x y))
(fma.f64 x y (neg.f64 x))
(*.f64 x (+.f64 y -1))
(+.f64 (*.f64 -1 x) (*.f64 x y))
(fma.f64 x y (neg.f64 x))
(*.f64 x (+.f64 y -1))
(+.f64 (*.f64 -1 x) (*.f64 x y))
(fma.f64 x y (neg.f64 x))
(*.f64 x (+.f64 y -1))
(+.f64 (*.f64 x y) (neg.f64 x))
(fma.f64 x y (neg.f64 x))
(*.f64 x (+.f64 y -1))
(+.f64 (neg.f64 x) (*.f64 x y))
(fma.f64 x y (neg.f64 x))
(*.f64 x (+.f64 y -1))
(+.f64 (*.f64 (*.f64 x y) 1) (*.f64 (neg.f64 x) 1))
(fma.f64 x y (neg.f64 x))
(*.f64 x (+.f64 y -1))
(-.f64 (+.f64 1 (*.f64 x (+.f64 y -1))) 1)
(fma.f64 x y (neg.f64 x))
(*.f64 x (+.f64 y -1))
(/.f64 (+.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (neg.f64 x) 3)) (+.f64 (*.f64 (*.f64 x y) (*.f64 x y)) (-.f64 (*.f64 (neg.f64 x) (neg.f64 x)) (*.f64 (*.f64 x y) (neg.f64 x)))))
(/.f64 (+.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (neg.f64 x) 3)) (fma.f64 (*.f64 x y) (*.f64 x y) (*.f64 (neg.f64 x) (-.f64 (neg.f64 x) (*.f64 x y)))))
(/.f64 (-.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 x 3)) (fma.f64 (*.f64 x y) (*.f64 x y) (fma.f64 x x (*.f64 y (*.f64 x x)))))
(/.f64 (*.f64 (pow.f64 x 3) (+.f64 -1 (pow.f64 y 3))) (fma.f64 x x (*.f64 (*.f64 x y) (fma.f64 x y x))))
(/.f64 (*.f64 (pow.f64 x 3) (-.f64 (pow.f64 y 3) 1)) (*.f64 x (+.f64 (*.f64 y (fma.f64 x y x)) x)))
(/.f64 (-.f64 (*.f64 (*.f64 x y) (*.f64 x y)) (*.f64 (neg.f64 x) (neg.f64 x))) (-.f64 (*.f64 x y) (neg.f64 x)))
(fma.f64 x y (neg.f64 x))
(*.f64 x (+.f64 y -1))
(/.f64 (*.f64 x (+.f64 -1 (pow.f64 y 3))) (fma.f64 y y (-.f64 1 (*.f64 y -1))))
(*.f64 (/.f64 x (fma.f64 y y (+.f64 y 1))) (+.f64 -1 (pow.f64 y 3)))
(*.f64 x (/.f64 (+.f64 -1 (pow.f64 y 3)) (+.f64 y (fma.f64 y y 1))))
(/.f64 (*.f64 x (fma.f64 y y -1)) (+.f64 y 1))
(fma.f64 x y (neg.f64 x))
(*.f64 x (+.f64 y -1))
(/.f64 (*.f64 (+.f64 -1 (pow.f64 y 3)) x) (fma.f64 y y (-.f64 1 (*.f64 y -1))))
(/.f64 (*.f64 x (+.f64 -1 (pow.f64 y 3))) (fma.f64 y y (-.f64 1 (*.f64 y -1))))
(*.f64 (/.f64 x (fma.f64 y y (+.f64 y 1))) (+.f64 -1 (pow.f64 y 3)))
(*.f64 x (/.f64 (+.f64 -1 (pow.f64 y 3)) (+.f64 y (fma.f64 y y 1))))
(/.f64 (*.f64 (fma.f64 y y -1) x) (+.f64 y 1))
(fma.f64 x y (neg.f64 x))
(*.f64 x (+.f64 y -1))
(pow.f64 (*.f64 x (+.f64 y -1)) 1)
(fma.f64 x y (neg.f64 x))
(*.f64 x (+.f64 y -1))
(pow.f64 (cbrt.f64 (*.f64 x (+.f64 y -1))) 3)
(fma.f64 x y (neg.f64 x))
(*.f64 x (+.f64 y -1))
(pow.f64 (pow.f64 (*.f64 x (+.f64 y -1)) 3) 1/3)
(fma.f64 x y (neg.f64 x))
(*.f64 x (+.f64 y -1))
(pow.f64 (sqrt.f64 (*.f64 x (+.f64 y -1))) 2)
(fma.f64 x y (neg.f64 x))
(*.f64 x (+.f64 y -1))
(sqrt.f64 (pow.f64 (*.f64 x (+.f64 y -1)) 2))
(fma.f64 x y (neg.f64 x))
(*.f64 x (+.f64 y -1))
(log.f64 (pow.f64 (exp.f64 (+.f64 y -1)) x))
(fma.f64 x y (neg.f64 x))
(*.f64 x (+.f64 y -1))
(cbrt.f64 (pow.f64 (*.f64 x (+.f64 y -1)) 3))
(fma.f64 x y (neg.f64 x))
(*.f64 x (+.f64 y -1))
(expm1.f64 (log1p.f64 (*.f64 x (+.f64 y -1))))
(fma.f64 x y (neg.f64 x))
(*.f64 x (+.f64 y -1))
(exp.f64 (log.f64 (*.f64 x (+.f64 y -1))))
(fma.f64 x y (neg.f64 x))
(*.f64 x (+.f64 y -1))
(log1p.f64 (expm1.f64 (*.f64 x (+.f64 y -1))))
(fma.f64 x y (neg.f64 x))
(*.f64 x (+.f64 y -1))
(fma.f64 x y (neg.f64 x))
(*.f64 x (+.f64 y -1))
(fma.f64 y x (neg.f64 x))
(fma.f64 x y (neg.f64 x))
(*.f64 x (+.f64 y -1))

eval10.0ms (0.5%)

Compiler

Compiled 572 to 364 computations (36.4% saved)

prune7.0ms (0.3%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New32234
Fresh000
Picked011
Done000
Total32335
Accuracy
100.0%
Counts
35 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(-.f64 (*.f64 x (+.f64 y -1)) (-.f64 (*.f64 y 1/2) 918938533204673/1000000000000000))
78.0%
(-.f64 (*.f64 x y) (-.f64 (*.f64 y 1/2) 918938533204673/1000000000000000))
76.7%
(-.f64 (neg.f64 x) (-.f64 (*.f64 y 1/2) 918938533204673/1000000000000000))
100.0%
(-.f64 (*.f64 x (+.f64 y -1)) (-.f64 (*.f64 y 1/2) 918938533204673/1000000000000000))
78.0%
(-.f64 (*.f64 x y) (-.f64 (*.f64 y 1/2) 918938533204673/1000000000000000))
76.7%
(-.f64 (neg.f64 x) (-.f64 (*.f64 y 1/2) 918938533204673/1000000000000000))
Compiler

Compiled 68 to 52 computations (23.5% saved)

localize54.0ms (2.6%)

Compiler

Compiled 49 to 31 computations (36.7% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune3.0ms (0.1%)

Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New000
Fresh000
Picked022
Done011
Total033
Accuracy
100.0%
Counts
3 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(-.f64 (*.f64 x (+.f64 y -1)) (-.f64 (*.f64 y 1/2) 918938533204673/1000000000000000))
78.0%
(-.f64 (*.f64 x y) (-.f64 (*.f64 y 1/2) 918938533204673/1000000000000000))
76.7%
(-.f64 (neg.f64 x) (-.f64 (*.f64 y 1/2) 918938533204673/1000000000000000))
Compiler

Compiled 75 to 56 computations (25.3% saved)

regimes16.0ms (0.8%)

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

4 calls:

4.0ms
(+.f64 (-.f64 (*.f64 x (-.f64 y 1)) (*.f64 y 1/2)) 918938533204673/1000000000000000)
4.0ms
(-.f64 (*.f64 x (-.f64 y 1)) (*.f64 y 1/2))
4.0ms
x
4.0ms
y
Results
AccuracySegmentsBranch
100.0%1x
100.0%1y
100.0%1(+.f64 (-.f64 (*.f64 x (-.f64 y 1)) (*.f64 y 1/2)) 918938533204673/1000000000000000)
100.0%1(-.f64 (*.f64 x (-.f64 y 1)) (*.f64 y 1/2))
Compiler

Compiled 71 to 52 computations (26.8% saved)

regimes26.0ms (1.3%)

Counts
2 → 3
Calls
Call 1
Inputs
(-.f64 (neg.f64 x) (-.f64 (*.f64 y 1/2) 918938533204673/1000000000000000))
(-.f64 (*.f64 x y) (-.f64 (*.f64 y 1/2) 918938533204673/1000000000000000))
Outputs
(-.f64 (*.f64 x y) (-.f64 (*.f64 y 1/2) 918938533204673/1000000000000000))
(-.f64 (neg.f64 x) (-.f64 (*.f64 y 1/2) 918938533204673/1000000000000000))
(-.f64 (*.f64 x y) (-.f64 (*.f64 y 1/2) 918938533204673/1000000000000000))
Calls

2 calls:

15.0ms
x
9.0ms
y
Results
AccuracySegmentsBranch
85.7%5x
98.7%3y
Compiler

Compiled 25 to 18 computations (28% saved)

regimes6.0ms (0.3%)

Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

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

2 calls:

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

Compiled 16 to 12 computations (25% saved)

bsearch37.0ms (1.8%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
17.0ms
1.8586943782581508e-15
8.887390747669008e-8
20.0ms
-1.3145021385756196e+21
-0.010080284814533654
Results
32.0ms318×body256valid
0.0msbody256infinite
Compiler

Compiled 478 to 374 computations (21.8% saved)

simplify8.0ms (0.4%)

Algorithm
egg-herbie
Rules
32×+-commutative
28×sub-neg
22×*-commutative
20×neg-mul-1
20×neg-sub0
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
027127
152127
278127
3106119
4119119
5122119
6123119
Stop Event
done
saturated
Calls
Call 1
Inputs
(+.f64 (-.f64 (*.f64 x (-.f64 y 1)) (*.f64 y 1/2)) 918938533204673/1000000000000000)
(if (<=.f64 y -1) (-.f64 (*.f64 x y) (-.f64 (*.f64 y 1/2) 918938533204673/1000000000000000)) (if (<=.f64 y 812247035053579/9444732965739290427392) (-.f64 (neg.f64 x) (-.f64 (*.f64 y 1/2) 918938533204673/1000000000000000)) (-.f64 (*.f64 x y) (-.f64 (*.f64 y 1/2) 918938533204673/1000000000000000))))
(-.f64 (neg.f64 x) (-.f64 (*.f64 y 1/2) 918938533204673/1000000000000000))
Outputs
(+.f64 (-.f64 (*.f64 x (-.f64 y 1)) (*.f64 y 1/2)) 918938533204673/1000000000000000)
(+.f64 (-.f64 (*.f64 x (+.f64 y -1)) (*.f64 y 1/2)) 918938533204673/1000000000000000)
(if (<=.f64 y -1) (-.f64 (*.f64 x y) (-.f64 (*.f64 y 1/2) 918938533204673/1000000000000000)) (if (<=.f64 y 812247035053579/9444732965739290427392) (-.f64 (neg.f64 x) (-.f64 (*.f64 y 1/2) 918938533204673/1000000000000000)) (-.f64 (*.f64 x y) (-.f64 (*.f64 y 1/2) 918938533204673/1000000000000000))))
(if (or (<=.f64 y -1) (not (<=.f64 y 812247035053579/9444732965739290427392))) (-.f64 (*.f64 x y) (-.f64 (*.f64 y 1/2) 918938533204673/1000000000000000)) (-.f64 (neg.f64 x) (-.f64 (*.f64 y 1/2) 918938533204673/1000000000000000)))
(if (or (<=.f64 y -1) (not (<=.f64 y 812247035053579/9444732965739290427392))) (-.f64 (*.f64 x y) (-.f64 (*.f64 y 1/2) 918938533204673/1000000000000000)) (-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y (neg.f64 1/2))) x))
(if (or (<=.f64 y -1) (not (<=.f64 y 812247035053579/9444732965739290427392))) (+.f64 (*.f64 x y) (-.f64 918938533204673/1000000000000000 (*.f64 y 1/2))) (-.f64 (-.f64 918938533204673/1000000000000000 (*.f64 y 1/2)) x))
(-.f64 (neg.f64 x) (-.f64 (*.f64 y 1/2) 918938533204673/1000000000000000))
(-.f64 (+.f64 918938533204673/1000000000000000 (*.f64 y (neg.f64 1/2))) x)
(-.f64 (-.f64 918938533204673/1000000000000000 (*.f64 y 1/2)) x)
Compiler

Compiled 49 to 37 computations (24.5% saved)

soundness566.0ms (27.4%)

Rules
4146×fma-def
1176×fma-neg
880×fma-neg
846×div-sub
746×sub-neg
Iterations

Useful iterations: 12 (0.0ms)

IterNodesCost
028163
180141
2203119
3606115
41734107
53675107
64448107
74688107
84738107
94742107
104744107
114774107
124774105
136401105
146401105
156401105
074710
1217688
2792676
33433674
Stop Event
node limit
saturated
Compiler

Compiled 66 to 50 computations (24.2% saved)

end0.0ms (0%)

preprocess47.0ms (2.3%)

Compiler

Compiled 116 to 86 computations (25.9% saved)

Profiling

Loading profile data...