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

Time bar (total: 1.9s)

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)

sample795.0ms (42.8%)

Results
688.0ms7200×body256valid
97.0ms1056×body256infinite
Bogosity

preprocess214.0ms (11.5%)

Algorithm
egg-herbie
Rules
3066×fma-def
456×distribute-rgt-in
428×fma-neg
346×sub-neg
308×cancel-sign-sub-inv
Problems
256×No Errors
Iterations

Useful iterations: 12 (0.0ms)

IterNodesCost
037308
183272
2186268
3317254
4579235
5887222
61768214
73245209
83812204
93999204
104078204
114086204
124086196
134405196
144405196
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 (fma.f64 x y (/.f64 x 2)) 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 (fma.f64 x y (/.f64 x 2)) 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 z (-.f64 (/.f64 x 2) (*.f64 x y)))
(-.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)
(-.f64 (*.f64 x (+.f64 y 1/2)) z)
(neg.f64 (fma.f64 x (-.f64 -1/2 y) 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)))
(fma.f64 x y (+.f64 z (/.f64 y 2)))
(+.f64 z (fma.f64 x y (*.f64 1/2 y)))
(+.f64 z (*.f64 y (+.f64 x 1/2)))
(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))
(+.f64 y (*.f64 x (+.f64 1/2 z)))
(fma.f64 x (+.f64 z 1/2) y)
Compiler

Compiled 42 to 23 computations (45.2% saved)

eval1.0ms (0.1%)

Compiler

Compiled 41 to 23 computations (43.9% saved)

prune2.0ms (0.1%)

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

Compiled 20 to 14 computations (30% saved)

localize29.0ms (1.6%)

Localize:

Found 1 expressions with local error:

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

Compiled 23 to 14 computations (39.1% 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))

rewrite115.0ms (6.2%)

Algorithm
batch-egg-rewrite
Rules
682×unpow-prod-down
517×log1p-expm1-u
517×expm1-log1p-u
498×log-prod
450×prod-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01019
110619
2141419
Stop Event
node limit
Counts
1 → 53
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 0 (*.f64 x (+.f64 y 1/2)))
(+.f64 (*.f64 (*.f64 x y) 1) (*.f64 (*.f64 x 1/2) 1))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 y 1/2)) x)) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 y 1/2)) x))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 y 1/2)) x))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 y 1/2)) x))))
(-.f64 (+.f64 1 (*.f64 x (+.f64 y 1/2))) 1)
(/.f64 (+.f64 (pow.f64 (*.f64 x y) 3) (*.f64 (pow.f64 x 3) 1/8)) (+.f64 (pow.f64 (*.f64 x y) 2) (-.f64 (pow.f64 (*.f64 x 1/2) 2) (*.f64 (*.f64 x y) (*.f64 x 1/2)))))
(/.f64 (-.f64 (pow.f64 (*.f64 x y) 2) (pow.f64 (*.f64 x 1/2) 2)) (-.f64 (*.f64 x y) (*.f64 x 1/2)))
(/.f64 (*.f64 x (+.f64 (pow.f64 y 3) 1/8)) (-.f64 (fma.f64 y y 1/4) (*.f64 y 1/2)))
(/.f64 (*.f64 x (fma.f64 y y -1/4)) (+.f64 y -1/2))
(/.f64 (*.f64 (+.f64 (pow.f64 y 3) 1/8) x) (-.f64 (fma.f64 y y 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)) 2) 1/2)
(pow.f64 (pow.f64 (*.f64 x (+.f64 y 1/2)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 x (+.f64 y 1/2))) 2)
(pow.f64 (E.f64) (log.f64 (*.f64 x (+.f64 y 1/2))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 x (+.f64 y 1/2)))) 2)) (cbrt.f64 (log.f64 (*.f64 x (+.f64 y 1/2)))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 x (+.f64 y 1/2))))) (sqrt.f64 (log.f64 (*.f64 x (+.f64 y 1/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))
(expm1.f64 (log1p.f64 (*.f64 x (+.f64 y 1/2))))
(exp.f64 (log.f64 (*.f64 x (+.f64 y 1/2))))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 x (+.f64 y 1/2)))) 3))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 x (+.f64 y 1/2)))) 1/3))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 x (+.f64 y 1/2)))) 2))
(log1p.f64 (expm1.f64 (*.f64 x (+.f64 y 1/2))))
(fma.f64 x y (*.f64 x 1/2))
(fma.f64 x 1/2 (*.f64 x y))
(fma.f64 y x (*.f64 x 1/2))
(fma.f64 1/2 x (*.f64 x y))
(fma.f64 1 (*.f64 x y) (*.f64 x 1/2))
(fma.f64 1 (*.f64 x 1/2) (*.f64 x y))
(fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) y) (*.f64 x 1/2))
(fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) 1/2) (*.f64 x y))
(fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) x) (*.f64 x 1/2))
(fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) y) (*.f64 x 1/2))
(fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) 1/2) (*.f64 x y))
(fma.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) x) (*.f64 x 1/2))
(fma.f64 (*.f64 x y) 1 (*.f64 (*.f64 x 1/2) 1))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 x 1/2)) 2) (cbrt.f64 (*.f64 x 1/2)) (*.f64 x y))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 x y)) 2) (cbrt.f64 (*.f64 x y)) (*.f64 x 1/2))
(fma.f64 (sqrt.f64 (*.f64 x 1/2)) (sqrt.f64 (*.f64 x 1/2)) (*.f64 x y))
(fma.f64 (sqrt.f64 (*.f64 x y)) (sqrt.f64 (*.f64 x y)) (*.f64 x 1/2))
(fma.f64 (*.f64 1/2 (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (*.f64 x y))
(fma.f64 (*.f64 1/2 (sqrt.f64 x)) (sqrt.f64 x) (*.f64 x y))
(fma.f64 (*.f64 x (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y) (*.f64 x 1/2))
(fma.f64 (*.f64 x (sqrt.f64 y)) (sqrt.f64 y) (*.f64 x 1/2))
(fma.f64 (*.f64 y (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (*.f64 x 1/2))
(fma.f64 (*.f64 y (sqrt.f64 x)) (sqrt.f64 x) (*.f64 x 1/2))

simplify56.0ms (3%)

Algorithm
egg-herbie
Rules
1288×associate-/r*
1128×fma-def
558×fma-neg
446×cancel-sign-sub-inv
418×associate-*r/
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01561811
13791760
210391739
341891735
Stop Event
node limit
Counts
77 → 75
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 0 (*.f64 x (+.f64 y 1/2)))
(+.f64 (*.f64 (*.f64 x y) 1) (*.f64 (*.f64 x 1/2) 1))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 y 1/2)) x)) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 y 1/2)) x))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 y 1/2)) x))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 y 1/2)) x))))
(-.f64 (+.f64 1 (*.f64 x (+.f64 y 1/2))) 1)
(/.f64 (+.f64 (pow.f64 (*.f64 x y) 3) (*.f64 (pow.f64 x 3) 1/8)) (+.f64 (pow.f64 (*.f64 x y) 2) (-.f64 (pow.f64 (*.f64 x 1/2) 2) (*.f64 (*.f64 x y) (*.f64 x 1/2)))))
(/.f64 (-.f64 (pow.f64 (*.f64 x y) 2) (pow.f64 (*.f64 x 1/2) 2)) (-.f64 (*.f64 x y) (*.f64 x 1/2)))
(/.f64 (*.f64 x (+.f64 (pow.f64 y 3) 1/8)) (-.f64 (fma.f64 y y 1/4) (*.f64 y 1/2)))
(/.f64 (*.f64 x (fma.f64 y y -1/4)) (+.f64 y -1/2))
(/.f64 (*.f64 (+.f64 (pow.f64 y 3) 1/8) x) (-.f64 (fma.f64 y y 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)) 2) 1/2)
(pow.f64 (pow.f64 (*.f64 x (+.f64 y 1/2)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 x (+.f64 y 1/2))) 2)
(pow.f64 (E.f64) (log.f64 (*.f64 x (+.f64 y 1/2))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 x (+.f64 y 1/2)))) 2)) (cbrt.f64 (log.f64 (*.f64 x (+.f64 y 1/2)))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 x (+.f64 y 1/2))))) (sqrt.f64 (log.f64 (*.f64 x (+.f64 y 1/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))
(expm1.f64 (log1p.f64 (*.f64 x (+.f64 y 1/2))))
(exp.f64 (log.f64 (*.f64 x (+.f64 y 1/2))))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 x (+.f64 y 1/2)))) 3))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 x (+.f64 y 1/2)))) 1/3))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 x (+.f64 y 1/2)))) 2))
(log1p.f64 (expm1.f64 (*.f64 x (+.f64 y 1/2))))
(fma.f64 x y (*.f64 x 1/2))
(fma.f64 x 1/2 (*.f64 x y))
(fma.f64 y x (*.f64 x 1/2))
(fma.f64 1/2 x (*.f64 x y))
(fma.f64 1 (*.f64 x y) (*.f64 x 1/2))
(fma.f64 1 (*.f64 x 1/2) (*.f64 x y))
(fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) y) (*.f64 x 1/2))
(fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) 1/2) (*.f64 x y))
(fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) x) (*.f64 x 1/2))
(fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) y) (*.f64 x 1/2))
(fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) 1/2) (*.f64 x y))
(fma.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) x) (*.f64 x 1/2))
(fma.f64 (*.f64 x y) 1 (*.f64 (*.f64 x 1/2) 1))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 x 1/2)) 2) (cbrt.f64 (*.f64 x 1/2)) (*.f64 x y))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 x y)) 2) (cbrt.f64 (*.f64 x y)) (*.f64 x 1/2))
(fma.f64 (sqrt.f64 (*.f64 x 1/2)) (sqrt.f64 (*.f64 x 1/2)) (*.f64 x y))
(fma.f64 (sqrt.f64 (*.f64 x y)) (sqrt.f64 (*.f64 x y)) (*.f64 x 1/2))
(fma.f64 (*.f64 1/2 (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (*.f64 x y))
(fma.f64 (*.f64 1/2 (sqrt.f64 x)) (sqrt.f64 x) (*.f64 x y))
(fma.f64 (*.f64 x (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y) (*.f64 x 1/2))
(fma.f64 (*.f64 x (sqrt.f64 y)) (sqrt.f64 y) (*.f64 x 1/2))
(fma.f64 (*.f64 y (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (*.f64 x 1/2))
(fma.f64 (*.f64 y (sqrt.f64 x)) (sqrt.f64 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 0 (*.f64 x (+.f64 y 1/2)))
(*.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 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 y 1/2)) x)) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 y 1/2)) x))))
(+.f64 (*.f64 2 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 1/2 y)) x)))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 1/2 y)) x))))
(*.f64 3 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 1/2 y)) x))))
(*.f64 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 1/2 y)) x))) 3)
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 y 1/2)) x))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 y 1/2)) x))))
(*.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) (*.f64 (pow.f64 x 3) 1/8)) (+.f64 (pow.f64 (*.f64 x y) 2) (-.f64 (pow.f64 (*.f64 x 1/2) 2) (*.f64 (*.f64 x y) (*.f64 x 1/2)))))
(/.f64 (+.f64 (pow.f64 (*.f64 x y) 3) (*.f64 (pow.f64 x 3) 1/8)) (+.f64 (pow.f64 (*.f64 x y) 2) (-.f64 (pow.f64 (*.f64 x 1/2) 2) (*.f64 x (*.f64 y (*.f64 x 1/2))))))
(/.f64 (*.f64 (pow.f64 x 3) (+.f64 1/8 (pow.f64 y 3))) (+.f64 (pow.f64 (*.f64 x y) 2) (*.f64 (*.f64 x 1/2) (-.f64 (*.f64 x 1/2) (*.f64 x y)))))
(/.f64 (pow.f64 x 3) (/.f64 (fma.f64 (*.f64 x 1/2) (*.f64 x (-.f64 1/2 y)) (pow.f64 (*.f64 x y) 2)) (+.f64 1/8 (pow.f64 y 3))))
(/.f64 (pow.f64 x 3) (/.f64 (*.f64 x (+.f64 (*.f64 y (*.f64 x (+.f64 y -1/2))) (/.f64 x 4))) (+.f64 1/8 (pow.f64 y 3))))
(/.f64 (-.f64 (pow.f64 (*.f64 x y) 2) (pow.f64 (*.f64 x 1/2) 2)) (-.f64 (*.f64 x y) (*.f64 x 1/2)))
(*.f64 x (+.f64 1/2 y))
(/.f64 (*.f64 x (+.f64 (pow.f64 y 3) 1/8)) (-.f64 (fma.f64 y y 1/4) (*.f64 y 1/2)))
(/.f64 (*.f64 x (+.f64 1/8 (pow.f64 y 3))) (-.f64 (fma.f64 y y 1/4) (*.f64 1/2 y)))
(*.f64 (/.f64 (+.f64 1/8 (pow.f64 y 3)) (+.f64 (fma.f64 y y 1/4) (*.f64 y -1/2))) x)
(*.f64 x (/.f64 (+.f64 1/8 (pow.f64 y 3)) (fma.f64 y -1/2 (fma.f64 y y 1/4))))
(*.f64 x (/.f64 (+.f64 1/8 (pow.f64 y 3)) (+.f64 1/4 (*.f64 y (+.f64 y -1/2)))))
(/.f64 (*.f64 x (fma.f64 y y -1/4)) (+.f64 y -1/2))
(/.f64 x (/.f64 (+.f64 y -1/2) (fma.f64 y y -1/4)))
(*.f64 (/.f64 x (+.f64 y -1/2)) (fma.f64 y y -1/4))
(*.f64 (fma.f64 y y -1/4) (/.f64 x (+.f64 y -1/2)))
(*.f64 x (/.f64 (fma.f64 y y -1/4) (+.f64 y -1/2)))
(/.f64 (*.f64 (+.f64 (pow.f64 y 3) 1/8) x) (-.f64 (fma.f64 y y 1/4) (*.f64 y 1/2)))
(/.f64 (*.f64 x (+.f64 1/8 (pow.f64 y 3))) (-.f64 (fma.f64 y y 1/4) (*.f64 1/2 y)))
(*.f64 (/.f64 (+.f64 1/8 (pow.f64 y 3)) (+.f64 (fma.f64 y y 1/4) (*.f64 y -1/2))) x)
(*.f64 x (/.f64 (+.f64 1/8 (pow.f64 y 3)) (fma.f64 y -1/2 (fma.f64 y y 1/4))))
(*.f64 x (/.f64 (+.f64 1/8 (pow.f64 y 3)) (+.f64 1/4 (*.f64 y (+.f64 y -1/2)))))
(/.f64 (*.f64 (fma.f64 y y -1/4) x) (+.f64 y -1/2))
(/.f64 x (/.f64 (+.f64 y -1/2) (fma.f64 y y -1/4)))
(*.f64 (/.f64 x (+.f64 y -1/2)) (fma.f64 y y -1/4))
(*.f64 (fma.f64 y y -1/4) (/.f64 x (+.f64 y -1/2)))
(*.f64 x (/.f64 (fma.f64 y y -1/4) (+.f64 y -1/2)))
(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)) 2) 1/2)
(*.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))
(pow.f64 (E.f64) (log.f64 (*.f64 x (+.f64 y 1/2))))
(*.f64 x (+.f64 1/2 y))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 x (+.f64 y 1/2)))) 2)) (cbrt.f64 (log.f64 (*.f64 x (+.f64 y 1/2)))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 x (+.f64 1/2 y)))) 2)) (cbrt.f64 (log.f64 (*.f64 x (+.f64 1/2 y)))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 x (+.f64 y 1/2))))) (sqrt.f64 (log.f64 (*.f64 x (+.f64 y 1/2)))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 x (+.f64 1/2 y))))) (sqrt.f64 (log.f64 (*.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))
(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))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 x (+.f64 y 1/2)))) 3))
(*.f64 x (+.f64 1/2 y))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 x (+.f64 y 1/2)))) 1/3))
(*.f64 x (+.f64 1/2 y))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 x (+.f64 y 1/2)))) 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 x 1/2 (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(fma.f64 y x (*.f64 x 1/2))
(*.f64 x (+.f64 1/2 y))
(fma.f64 1/2 x (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(fma.f64 1 (*.f64 x y) (*.f64 x 1/2))
(*.f64 x (+.f64 1/2 y))
(fma.f64 1 (*.f64 x 1/2) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) y) (*.f64 x 1/2))
(*.f64 x (+.f64 1/2 y))
(fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) 1/2) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) x) (*.f64 x 1/2))
(*.f64 x (+.f64 1/2 y))
(fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) y) (*.f64 x 1/2))
(*.f64 x (+.f64 1/2 y))
(fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) 1/2) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(fma.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) x) (*.f64 x 1/2))
(*.f64 x (+.f64 1/2 y))
(fma.f64 (*.f64 x y) 1 (*.f64 (*.f64 x 1/2) 1))
(*.f64 x (+.f64 1/2 y))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 x 1/2)) 2) (cbrt.f64 (*.f64 x 1/2)) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 x y)) 2) (cbrt.f64 (*.f64 x y)) (*.f64 x 1/2))
(*.f64 x (+.f64 1/2 y))
(fma.f64 (sqrt.f64 (*.f64 x 1/2)) (sqrt.f64 (*.f64 x 1/2)) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(fma.f64 (sqrt.f64 (*.f64 x y)) (sqrt.f64 (*.f64 x y)) (*.f64 x 1/2))
(*.f64 x (+.f64 1/2 y))
(fma.f64 (*.f64 1/2 (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(fma.f64 (*.f64 1/2 (sqrt.f64 x)) (sqrt.f64 x) (*.f64 x y))
(*.f64 x (+.f64 1/2 y))
(fma.f64 (*.f64 x (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y) (*.f64 x 1/2))
(*.f64 x (+.f64 1/2 y))
(fma.f64 (*.f64 x (sqrt.f64 y)) (sqrt.f64 y) (*.f64 x 1/2))
(*.f64 x (+.f64 1/2 y))
(fma.f64 (*.f64 y (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (*.f64 x 1/2))
(*.f64 x (+.f64 1/2 y))
(fma.f64 (*.f64 y (sqrt.f64 x)) (sqrt.f64 x) (*.f64 x 1/2))
(*.f64 x (+.f64 1/2 y))

eval25.0ms (1.4%)

Compiler

Compiled 1025 to 629 computations (38.6% saved)

prune13.0ms (0.7%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New73275
Fresh000
Picked011
Done000
Total73376
Accuracy
100.0%
Counts
76 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(+.f64 (*.f64 x (+.f64 y 1/2)) z)
75.7%
(+.f64 (*.f64 x y) z)
65.8%
(+.f64 (*.f64 x 1/2) z)
100.0%
(+.f64 (*.f64 x (+.f64 y 1/2)) z)
75.7%
(+.f64 (*.f64 x y) z)
65.8%
(+.f64 (*.f64 x 1/2) z)
Compiler

Compiled 52 to 36 computations (30.8% saved)

localize32.0ms (1.7%)

Compiler

Compiled 26 to 12 computations (53.8% saved)

eval0.0ms (0%)

Compiler

Compiled 3 to 3 computations (0% saved)

prune2.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/2)) z)
75.7%
(+.f64 (*.f64 x y) z)
65.8%
(+.f64 (*.f64 x 1/2) z)
Compiler

Compiled 55 to 35 computations (36.4% saved)

regimes62.0ms (3.4%)

Counts
4 → 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)
Outputs
(+.f64 (*.f64 x (+.f64 y 1/2)) z)
Calls

5 calls:

48.0ms
(+.f64 (+.f64 (/.f64 x 2) (*.f64 y x)) z)
3.0ms
y
3.0ms
z
3.0ms
x
3.0ms
(+.f64 (/.f64 x 2) (*.f64 y x))
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 63 to 41 computations (34.9% saved)

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

14.0ms
z
14.0ms
x
8.0ms
y
Results
AccuracySegmentsBranch
80.3%4x
99.6%3y
81.2%5z
Compiler

Compiled 25 to 17 computations (32% saved)

regimes40.0ms (2.2%)

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:

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

Compiled 20 to 15 computations (25% saved)

bsearch27.0ms (1.4%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
16.0ms
4.479331575206975e-13
2.86939590396998e-5
10.0ms
-8.20314880224947e+25
-1.6333546562244386e+25
Results
23.0ms233×body256valid
1.0msbody256infinite
Compiler

Compiled 288 to 208 computations (27.8% saved)

simplify4.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
026119
138119
Stop Event
done
saturated
Calls
Call 1
Inputs
(+.f64 (*.f64 x (+.f64 y 1/2)) z)
(if (<=.f64 y -16500000000000000528482304) (+.f64 (*.f64 x y) z) (if (<=.f64 y 8264141345021879/295147905179352825856) (+.f64 (*.f64 x 1/2) z) (+.f64 (*.f64 x y) z)))
(+.f64 (*.f64 x 1/2) z)
Outputs
(+.f64 (*.f64 x (+.f64 y 1/2)) z)
(if (<=.f64 y -16500000000000000528482304) (+.f64 (*.f64 x y) z) (if (<=.f64 y 8264141345021879/295147905179352825856) (+.f64 (*.f64 x 1/2) z) (+.f64 (*.f64 x y) z)))
(if (or (<=.f64 y -16500000000000000528482304) (not (<=.f64 y 8264141345021879/295147905179352825856))) (+.f64 z (*.f64 x y)) (+.f64 z (*.f64 x 1/2)))
(+.f64 (*.f64 x 1/2) z)
(+.f64 z (*.f64 x 1/2))
Compiler

Compiled 40 to 28 computations (30% saved)

soundness362.0ms (19.5%)

Rules
3066×fma-def
1288×associate-/r*
1128×fma-def
558×fma-neg
456×distribute-rgt-in
Iterations

Useful iterations: 12 (0.0ms)

IterNodesCost
037308
183272
2186268
3317254
4579235
5887222
61768214
73245209
83812204
93999204
104078204
114086204
124086196
134405196
144405196
01561811
13791760
210391739
341891735
Stop Event
node limit
saturated
Compiler

Compiled 189 to 118 computations (37.6% saved)

end0.0ms (0%)

preprocess39.0ms (2.1%)

Compiler

Compiled 92 to 60 computations (34.8% saved)

Profiling

Loading profile data...