Data.Histogram.Bin.BinF:$cfromIndex from histogram-fill-0.8.4.1

Time bar (total: 1.8s)

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 13 to 9 computations (30.8% saved)

sample807.0ms (44.1%)

Results
687.0ms7218×body256valid
110.0ms1038×body256infinite
Bogosity

preprocess194.0ms (10.6%)

Algorithm
egg-herbie
Rules
3066×fma-def
456×distribute-rgt-in
428×fma-neg
338×sub-neg
308×cancel-sign-sub-inv
Iterations

Useful iterations: 12 (0.0ms)

IterNodesCost
033212
179176
2182172
3313164
4578154
5868142
61749136
73171132
83735130
93922130
104001130
114009130
124009124
134328124
144328124
Stop Event
saturated
Calls
Call 1
Inputs
(+.f64 (+.f64 (/.f64 x 2) (*.f64 y x)) z)
(+.f64 (+.f64 (/.f64 x 2) (*.f64 y x)) z)
(+.f64 (+.f64 (/.f64 (neg.f64 x) 2) (*.f64 y (neg.f64 x))) z)
(+.f64 (+.f64 (/.f64 x 2) (*.f64 (neg.f64 y) x)) z)
(+.f64 (+.f64 (/.f64 x 2) (*.f64 y x)) (neg.f64 z))
(+.f64 (+.f64 (/.f64 y 2) (*.f64 x y)) z)
(+.f64 (+.f64 (/.f64 z 2) (*.f64 y z)) x)
(+.f64 (+.f64 (/.f64 x 2) (*.f64 z x)) y)
Outputs
(+.f64 (+.f64 (/.f64 x 2) (*.f64 y x)) z)
(+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))
(+.f64 (/.f64 x 2) (fma.f64 x y z))
(+.f64 (*.f64 x (+.f64 y 1/2)) z)
(fma.f64 x (+.f64 y 1/2) z)
(+.f64 (+.f64 (/.f64 x 2) (*.f64 y x)) z)
(+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))
(+.f64 (/.f64 x 2) (fma.f64 x y z))
(+.f64 (*.f64 x (+.f64 y 1/2)) z)
(fma.f64 x (+.f64 y 1/2) z)
(+.f64 (+.f64 (/.f64 (neg.f64 x) 2) (*.f64 y (neg.f64 x))) z)
(+.f64 z (+.f64 (/.f64 (neg.f64 x) 2) (*.f64 x (neg.f64 y))))
(+.f64 z (neg.f64 (fma.f64 x y (/.f64 x 2))))
(-.f64 z (fma.f64 x y (/.f64 x 2)))
(+.f64 z (*.f64 x (-.f64 -1/2 y)))
(fma.f64 x (-.f64 -1/2 y) z)
(+.f64 (+.f64 (/.f64 x 2) (*.f64 (neg.f64 y) x)) z)
(+.f64 (/.f64 x 2) (+.f64 (*.f64 x (neg.f64 y)) z))
(+.f64 (/.f64 x 2) (fma.f64 y (neg.f64 x) z))
(-.f64 z (fma.f64 x y (*.f64 x -1/2)))
(-.f64 z (*.f64 x (+.f64 y -1/2)))
(+.f64 z (*.f64 x (-.f64 1/2 y)))
(fma.f64 x (-.f64 1/2 y) z)
(+.f64 (+.f64 (/.f64 x 2) (*.f64 y x)) (neg.f64 z))
(-.f64 (+.f64 (/.f64 x 2) (*.f64 x y)) z)
(-.f64 (fma.f64 x y (/.f64 x 2)) z)
(-.f64 (*.f64 x (-.f64 y -1/2)) z)
(fma.f64 x (+.f64 y 1/2) (neg.f64 z))
(+.f64 (+.f64 (/.f64 y 2) (*.f64 x y)) z)
(+.f64 z (+.f64 (*.f64 x y) (/.f64 y 2)))
(+.f64 z (fma.f64 x y (/.f64 y 2)))
(-.f64 (fma.f64 x y z) (/.f64 y -2))
(fma.f64 x y (fma.f64 1/2 y z))
(fma.f64 y (+.f64 x 1/2) z)
(+.f64 (+.f64 (/.f64 z 2) (*.f64 y z)) x)
(+.f64 x (+.f64 (/.f64 z 2) (*.f64 y z)))
(+.f64 x (fma.f64 y z (/.f64 z 2)))
(+.f64 x (fma.f64 y z (*.f64 1/2 z)))
(+.f64 x (*.f64 z (+.f64 y 1/2)))
(fma.f64 z (+.f64 y 1/2) x)
(+.f64 (+.f64 (/.f64 x 2) (*.f64 z x)) y)
(+.f64 (/.f64 x 2) (+.f64 (*.f64 x z) y))
(+.f64 (/.f64 x 2) (fma.f64 x z y))
(+.f64 (*.f64 x 1/2) (fma.f64 x z y))
(fma.f64 x z (fma.f64 x 1/2 y))
(fma.f64 x (+.f64 z 1/2) y)
Compiler

Compiled 12 to 8 computations (33.3% saved)

eval1.0ms (0%)

Compiler

Compiled 33 to 19 computations (42.4% saved)

prune2.0ms (0.1%)

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

Compiled 44 to 30 computations (31.8% saved)

localize58.0ms (3.2%)

Localize:

Found 1 expressions with local error:

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

Compiled 47 to 22 computations (53.2% saved)

series2.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

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

rewrite56.0ms (3%)

Algorithm
batch-egg-rewrite
Rules
1646×pow1
1530×add-exp-log
1530×log1p-expm1-u
1530×expm1-log1p-u
1504×add-log-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
115613
2206013
Stop Event
node limit
Counts
1 → 24
Calls
Call 1
Inputs
(*.f64 x (+.f64 y 1/2))
Outputs
(+.f64 (*.f64 x y) (*.f64 x 1/2))
(+.f64 (*.f64 x 1/2) (*.f64 x y))
(+.f64 (*.f64 (*.f64 x y) 1) (*.f64 (*.f64 x 1/2) 1))
(-.f64 (+.f64 1 (*.f64 x (+.f64 y 1/2))) 1)
(/.f64 (+.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 x 1/2) 3)) (+.f64 (*.f64 (*.f64 x y) (*.f64 x y)) (-.f64 (*.f64 (*.f64 x 1/2) (*.f64 x 1/2)) (*.f64 (*.f64 x y) (*.f64 x 1/2)))))
(/.f64 (-.f64 (*.f64 (*.f64 x y) (*.f64 x y)) (*.f64 (*.f64 x 1/2) (*.f64 x 1/2))) (-.f64 (*.f64 x y) (*.f64 x 1/2)))
(/.f64 (*.f64 x (+.f64 1/8 (pow.f64 y 3))) (fma.f64 y y (-.f64 1/4 (*.f64 y 1/2))))
(/.f64 (*.f64 x (fma.f64 y y -1/4)) (+.f64 y -1/2))
(/.f64 (*.f64 (+.f64 1/8 (pow.f64 y 3)) x) (fma.f64 y y (-.f64 1/4 (*.f64 y 1/2))))
(/.f64 (*.f64 (fma.f64 y y -1/4) x) (+.f64 y -1/2))
(pow.f64 (*.f64 x (+.f64 y 1/2)) 1)
(pow.f64 (cbrt.f64 (*.f64 x (+.f64 y 1/2))) 3)
(pow.f64 (pow.f64 (*.f64 x (+.f64 y 1/2)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 x (+.f64 y 1/2))) 2)
(sqrt.f64 (pow.f64 (*.f64 x (+.f64 y 1/2)) 2))
(log.f64 (pow.f64 (exp.f64 (+.f64 y 1/2)) x))
(cbrt.f64 (pow.f64 (*.f64 x (+.f64 y 1/2)) 3))
(cbrt.f64 (*.f64 (pow.f64 x 3) (pow.f64 (+.f64 y 1/2) 3)))
(cbrt.f64 (*.f64 (pow.f64 (+.f64 y 1/2) 3) (pow.f64 x 3)))
(expm1.f64 (log1p.f64 (*.f64 x (+.f64 y 1/2))))
(exp.f64 (log.f64 (*.f64 x (+.f64 y 1/2))))
(log1p.f64 (expm1.f64 (*.f64 x (+.f64 y 1/2))))
(fma.f64 x y (*.f64 x 1/2))
(fma.f64 y x (*.f64 x 1/2))

simplify76.0ms (4.1%)

Algorithm
egg-herbie
Rules
1400×fma-neg
1008×associate-/r*
662×fma-def
594×associate-*r/
480×associate-+r+
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
084744
1238732
2912718
33735708
47931708
Stop Event
node limit
Counts
48 → 36
Calls
Call 1
Inputs
(*.f64 x (+.f64 1/2 y))
(*.f64 x (+.f64 1/2 y))
(*.f64 x (+.f64 1/2 y))
(*.f64 x (+.f64 1/2 y))
(*.f64 x (+.f64 1/2 y))
(*.f64 x (+.f64 1/2 y))
(*.f64 x (+.f64 1/2 y))
(*.f64 x (+.f64 1/2 y))
(*.f64 x (+.f64 1/2 y))
(*.f64 x (+.f64 1/2 y))
(*.f64 x (+.f64 1/2 y))
(*.f64 x (+.f64 1/2 y))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x y)
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x y)
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(+.f64 (*.f64 x y) (*.f64 x 1/2))
(+.f64 (*.f64 x 1/2) (*.f64 x y))
(+.f64 (*.f64 (*.f64 x y) 1) (*.f64 (*.f64 x 1/2) 1))
(-.f64 (+.f64 1 (*.f64 x (+.f64 y 1/2))) 1)
(/.f64 (+.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 x 1/2) 3)) (+.f64 (*.f64 (*.f64 x y) (*.f64 x y)) (-.f64 (*.f64 (*.f64 x 1/2) (*.f64 x 1/2)) (*.f64 (*.f64 x y) (*.f64 x 1/2)))))
(/.f64 (-.f64 (*.f64 (*.f64 x y) (*.f64 x y)) (*.f64 (*.f64 x 1/2) (*.f64 x 1/2))) (-.f64 (*.f64 x y) (*.f64 x 1/2)))
(/.f64 (*.f64 x (+.f64 1/8 (pow.f64 y 3))) (fma.f64 y y (-.f64 1/4 (*.f64 y 1/2))))
(/.f64 (*.f64 x (fma.f64 y y -1/4)) (+.f64 y -1/2))
(/.f64 (*.f64 (+.f64 1/8 (pow.f64 y 3)) x) (fma.f64 y y (-.f64 1/4 (*.f64 y 1/2))))
(/.f64 (*.f64 (fma.f64 y y -1/4) x) (+.f64 y -1/2))
(pow.f64 (*.f64 x (+.f64 y 1/2)) 1)
(pow.f64 (cbrt.f64 (*.f64 x (+.f64 y 1/2))) 3)
(pow.f64 (pow.f64 (*.f64 x (+.f64 y 1/2)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 x (+.f64 y 1/2))) 2)
(sqrt.f64 (pow.f64 (*.f64 x (+.f64 y 1/2)) 2))
(log.f64 (pow.f64 (exp.f64 (+.f64 y 1/2)) x))
(cbrt.f64 (pow.f64 (*.f64 x (+.f64 y 1/2)) 3))
(cbrt.f64 (*.f64 (pow.f64 x 3) (pow.f64 (+.f64 y 1/2) 3)))
(cbrt.f64 (*.f64 (pow.f64 (+.f64 y 1/2) 3) (pow.f64 x 3)))
(expm1.f64 (log1p.f64 (*.f64 x (+.f64 y 1/2))))
(exp.f64 (log.f64 (*.f64 x (+.f64 y 1/2))))
(log1p.f64 (expm1.f64 (*.f64 x (+.f64 y 1/2))))
(fma.f64 x y (*.f64 x 1/2))
(fma.f64 y x (*.f64 x 1/2))
Outputs
(*.f64 x (+.f64 1/2 y))
(*.f64 x (+.f64 1/2 y))
(*.f64 x (+.f64 1/2 y))
(*.f64 x (+.f64 1/2 y))
(*.f64 x (+.f64 1/2 y))
(*.f64 x (+.f64 1/2 y))
(*.f64 x (+.f64 1/2 y))
(*.f64 x (+.f64 1/2 y))
(*.f64 x (+.f64 1/2 y))
(*.f64 x (+.f64 1/2 y))
(*.f64 x (+.f64 1/2 y))
(*.f64 x (+.f64 1/2 y))
(*.f64 1/2 x)
(*.f64 x 1/2)
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(*.f64 x y)
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(*.f64 x y)
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 1/2 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 x y) (*.f64 x 1/2))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 x 1/2) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(+.f64 (*.f64 (*.f64 x y) 1) (*.f64 (*.f64 x 1/2) 1))
(*.f64 x (+.f64 1/2 y))
(-.f64 (+.f64 1 (*.f64 x (+.f64 y 1/2))) 1)
(*.f64 x (+.f64 1/2 y))
(/.f64 (+.f64 (pow.f64 (*.f64 x y) 3) (pow.f64 (*.f64 x 1/2) 3)) (+.f64 (*.f64 (*.f64 x y) (*.f64 x y)) (-.f64 (*.f64 (*.f64 x 1/2) (*.f64 x 1/2)) (*.f64 (*.f64 x y) (*.f64 x 1/2)))))
(/.f64 (+.f64 (pow.f64 (*.f64 x y) 3) (*.f64 (pow.f64 x 3) 1/8)) (fma.f64 (*.f64 x y) (*.f64 x y) (*.f64 (*.f64 x 1/2) (-.f64 (*.f64 x 1/2) (*.f64 x y)))))
(/.f64 (*.f64 (pow.f64 x 3) (+.f64 1/8 (pow.f64 y 3))) (fma.f64 x (*.f64 (*.f64 y y) x) (*.f64 (*.f64 x 1/2) (*.f64 x (-.f64 1/2 y)))))
(/.f64 (*.f64 (+.f64 1/8 (pow.f64 y 3)) (pow.f64 x 3)) (*.f64 x (+.f64 (*.f64 x (fma.f64 y -1/2 1/4)) (*.f64 x (*.f64 y y)))))
(/.f64 (/.f64 (*.f64 (+.f64 1/8 (pow.f64 y 3)) (pow.f64 x 3)) x) (*.f64 x (fma.f64 y y (fma.f64 y -1/2 1/4))))
(/.f64 (-.f64 (*.f64 (*.f64 x y) (*.f64 x y)) (*.f64 (*.f64 x 1/2) (*.f64 x 1/2))) (-.f64 (*.f64 x y) (*.f64 x 1/2)))
(*.f64 x (+.f64 1/2 y))
(/.f64 (*.f64 x (+.f64 1/8 (pow.f64 y 3))) (fma.f64 y y (-.f64 1/4 (*.f64 y 1/2))))
(/.f64 (+.f64 1/8 (pow.f64 y 3)) (/.f64 (fma.f64 y y (-.f64 1/4 (*.f64 1/2 y))) x))
(*.f64 (/.f64 x (fma.f64 y y (+.f64 1/4 (*.f64 y -1/2)))) (+.f64 1/8 (pow.f64 y 3)))
(*.f64 x (/.f64 (+.f64 1/8 (pow.f64 y 3)) (fma.f64 y y (fma.f64 y -1/2 1/4))))
(/.f64 (*.f64 x (fma.f64 y y -1/4)) (+.f64 y -1/2))
(*.f64 x (+.f64 1/2 y))
(/.f64 (*.f64 (+.f64 1/8 (pow.f64 y 3)) x) (fma.f64 y y (-.f64 1/4 (*.f64 y 1/2))))
(/.f64 (+.f64 1/8 (pow.f64 y 3)) (/.f64 (fma.f64 y y (-.f64 1/4 (*.f64 1/2 y))) x))
(*.f64 (/.f64 x (fma.f64 y y (+.f64 1/4 (*.f64 y -1/2)))) (+.f64 1/8 (pow.f64 y 3)))
(*.f64 x (/.f64 (+.f64 1/8 (pow.f64 y 3)) (fma.f64 y y (fma.f64 y -1/2 1/4))))
(/.f64 (*.f64 (fma.f64 y y -1/4) x) (+.f64 y -1/2))
(*.f64 x (+.f64 1/2 y))
(pow.f64 (*.f64 x (+.f64 y 1/2)) 1)
(*.f64 x (+.f64 1/2 y))
(pow.f64 (cbrt.f64 (*.f64 x (+.f64 y 1/2))) 3)
(*.f64 x (+.f64 1/2 y))
(pow.f64 (pow.f64 (*.f64 x (+.f64 y 1/2)) 3) 1/3)
(*.f64 x (+.f64 1/2 y))
(pow.f64 (sqrt.f64 (*.f64 x (+.f64 y 1/2))) 2)
(*.f64 x (+.f64 1/2 y))
(sqrt.f64 (pow.f64 (*.f64 x (+.f64 y 1/2)) 2))
(*.f64 x (+.f64 1/2 y))
(log.f64 (pow.f64 (exp.f64 (+.f64 y 1/2)) x))
(*.f64 x (+.f64 1/2 y))
(cbrt.f64 (pow.f64 (*.f64 x (+.f64 y 1/2)) 3))
(*.f64 x (+.f64 1/2 y))
(cbrt.f64 (*.f64 (pow.f64 x 3) (pow.f64 (+.f64 y 1/2) 3)))
(*.f64 x (+.f64 1/2 y))
(cbrt.f64 (*.f64 (pow.f64 (+.f64 y 1/2) 3) (pow.f64 x 3)))
(*.f64 x (+.f64 1/2 y))
(expm1.f64 (log1p.f64 (*.f64 x (+.f64 y 1/2))))
(*.f64 x (+.f64 1/2 y))
(exp.f64 (log.f64 (*.f64 x (+.f64 y 1/2))))
(*.f64 x (+.f64 1/2 y))
(log1p.f64 (expm1.f64 (*.f64 x (+.f64 y 1/2))))
(*.f64 x (+.f64 1/2 y))
(fma.f64 x y (*.f64 x 1/2))
(*.f64 x (+.f64 1/2 y))
(fma.f64 y x (*.f64 x 1/2))
(*.f64 x (+.f64 1/2 y))

eval10.0ms (0.6%)

Compiler

Compiled 496 to 304 computations (38.7% saved)

prune8.0ms (0.4%)

Pruning

4 alts after pruning (2 fresh and 2 done)

PrunedKeptTotal
New34236
Fresh000
Picked022
Done000
Total34438
Accuracy
100.0%
Counts
38 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))
100.0%
(+.f64 (*.f64 x (+.f64 y 1/2)) z)
75.8%
(+.f64 (*.f64 x y) z)
65.8%
(+.f64 (*.f64 x 1/2) z)
100.0%
(+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))
100.0%
(+.f64 (*.f64 x (+.f64 y 1/2)) z)
75.8%
(+.f64 (*.f64 x y) z)
65.8%
(+.f64 (*.f64 x 1/2) z)
Compiler

Compiled 76 to 52 computations (31.6% saved)

localize39.0ms (2.1%)

Compiler

Compiled 26 to 12 computations (53.8% saved)

eval0.0ms (0%)

Compiler

Compiled 3 to 3 computations (0% saved)

prune3.0ms (0.1%)

Pruning

4 alts after pruning (0 fresh and 4 done)

PrunedKeptTotal
New000
Fresh000
Picked022
Done022
Total044
Accuracy
100.0%
Counts
4 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(+.f64 (/.f64 x 2) (+.f64 (*.f64 x y) z))
100.0%
(+.f64 (*.f64 x (+.f64 y 1/2)) z)
75.8%
(+.f64 (*.f64 x y) z)
65.8%
(+.f64 (*.f64 x 1/2) z)
Compiler

Compiled 76 to 46 computations (39.5% saved)

regimes23.0ms (1.2%)

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

5 calls:

5.0ms
z
4.0ms
x
4.0ms
(+.f64 (+.f64 (/.f64 x 2) (*.f64 y x)) z)
4.0ms
(+.f64 (/.f64 x 2) (*.f64 y x))
4.0ms
y
Results
AccuracySegmentsBranch
100.0%1x
100.0%1y
100.0%1z
100.0%1(+.f64 (+.f64 (/.f64 x 2) (*.f64 y x)) z)
100.0%1(+.f64 (/.f64 x 2) (*.f64 y x))
Compiler

Compiled 72 to 44 computations (38.9% saved)

regimes13.0ms (0.7%)

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

3 calls:

5.0ms
x
4.0ms
z
4.0ms
y
Results
AccuracySegmentsBranch
100.0%1x
100.0%1y
100.0%1z
Compiler

Compiled 32 to 21 computations (34.4% saved)

regimes36.0ms (2%)

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

3 calls:

17.0ms
x
10.0ms
y
9.0ms
z
Results
AccuracySegmentsBranch
81.4%6x
98.4%3y
79.6%3z
Compiler

Compiled 25 to 17 computations (32% saved)

regimes9.0ms (0.5%)

Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

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

3 calls:

3.0ms
x
3.0ms
y
3.0ms
z
Results
AccuracySegmentsBranch
65.8%1x
65.8%1z
65.8%1y
Compiler

Compiled 20 to 15 computations (25% saved)

bsearch32.0ms (1.8%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
16.0ms
1.3857278407673467e-8
0.0031128813873126764
16.0ms
-5.094770667686635e+19
-562614304041.0994
Results
28.0ms280×body256valid
1.0msbody256infinite
Compiler

Compiled 342 to 247 computations (27.8% saved)

simplify6.0ms (0.3%)

Algorithm
egg-herbie
Rules
12×+-commutative
*-commutative
if-if-or-not
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
027108
142108
Stop Event
done
saturated
Calls
Call 1
Inputs
(+.f64 (+.f64 (/.f64 x 2) (*.f64 y x)) z)
(+.f64 (*.f64 x (+.f64 y 1/2)) z)
(if (<=.f64 y -580000000000) (+.f64 (*.f64 x y) z) (if (<=.f64 y 7148113328562451/2305843009213693952) (+.f64 (*.f64 x 1/2) z) (+.f64 (*.f64 x y) z)))
(+.f64 (*.f64 x 1/2) z)
Outputs
(+.f64 (+.f64 (/.f64 x 2) (*.f64 y x)) z)
(+.f64 (+.f64 (/.f64 x 2) (*.f64 x y)) z)
(+.f64 (*.f64 x (+.f64 y 1/2)) z)
(+.f64 z (*.f64 x (+.f64 y 1/2)))
(if (<=.f64 y -580000000000) (+.f64 (*.f64 x y) z) (if (<=.f64 y 7148113328562451/2305843009213693952) (+.f64 (*.f64 x 1/2) z) (+.f64 (*.f64 x y) z)))
(if (or (<=.f64 y -580000000000) (not (<=.f64 y 7148113328562451/2305843009213693952))) (+.f64 (*.f64 x y) z) (+.f64 z (*.f64 x 1/2)))
(+.f64 (*.f64 x 1/2) z)
(+.f64 z (*.f64 x 1/2))
Compiler

Compiled 52 to 36 computations (30.8% saved)

soundness417.0ms (22.8%)

Rules
3066×fma-def
1400×fma-neg
1008×associate-/r*
662×fma-def
594×associate-*r/
Iterations

Useful iterations: 12 (0.0ms)

IterNodesCost
033212
179176
2182172
3313164
4578154
5868142
61749136
73171132
83735130
93922130
104001130
114009130
124009124
134328124
144328124
084744
1238732
2912718
33735708
47931708
Stop Event
node limit
saturated
Compiler

Compiled 189 to 118 computations (37.6% saved)

end0.0ms (0%)

preprocess38.0ms (2.1%)

Compiler

Compiled 110 to 68 computations (38.2% saved)

Profiling

Loading profile data...