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

Time bar (total: 2.2s)

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)

sample915.0ms (41.3%)

Results
802.0ms7218×body256valid
101.0ms1038×body256infinite
Bogosity

preprocess267.0ms (12.1%)

Algorithm
egg-herbie
Rules
2916×fma-def
416×distribute-rgt-in
308×sub-neg
280×unsub-neg
262×cancel-sign-sub
Problems
256×No Errors
Iterations

Useful iterations: 10 (0.0ms)

IterNodesCost
040435
199375
2274371
3804323
41692297
52827297
63301292
73465292
83573292
93608292
103616276
114174276
124174276
134174276
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))
(neg.f64 (+.f64 (+.f64 (/.f64 (neg.f64 x) 2) (*.f64 y (neg.f64 x))) z))
(neg.f64 (+.f64 (+.f64 (/.f64 x 2) (*.f64 (neg.f64 y) x)) z))
(neg.f64 (+.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 z (*.f64 x (-.f64 -1/2 y)))
(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 z (*.f64 x (-.f64 -1/2 y)))
(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 (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 (/.f64 x 2) (-.f64 z (*.f64 x y)))
(-.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))
(neg.f64 (+.f64 (+.f64 (/.f64 (neg.f64 x) 2) (*.f64 y (neg.f64 x))) 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))
(neg.f64 (+.f64 (+.f64 (/.f64 x 2) (*.f64 (neg.f64 y) x)) z))
(neg.f64 (+.f64 (/.f64 x 2) (+.f64 (*.f64 x (neg.f64 y)) z)))
(-.f64 (/.f64 (neg.f64 x) 2) (fma.f64 y (neg.f64 x) z))
(+.f64 (*.f64 -1/2 x) (fma.f64 x y (neg.f64 z)))
(-.f64 (*.f64 x (+.f64 y -1/2)) z)
(neg.f64 (+.f64 (+.f64 (/.f64 x 2) (*.f64 y x)) (neg.f64 z)))
(+.f64 z (+.f64 (/.f64 (neg.f64 x) 2) (*.f64 x (neg.f64 y))))
(-.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 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 z (fma.f64 x y (*.f64 1/2 y)))
(+.f64 z (*.f64 y (+.f64 1/2 x)))
(+.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)))
(-.f64 x (*.f64 z (-.f64 -1/2 y)))
(fma.f64 z (+.f64 y 1/2) x)
(+.f64 (+.f64 (/.f64 x 2) (*.f64 z x)) y)
(+.f64 y (+.f64 (/.f64 x 2) (*.f64 x z)))
(+.f64 y (fma.f64 x z (/.f64 x 2)))
(+.f64 (/.f64 x 2) (fma.f64 x z y))
(+.f64 (*.f64 1/2 x) (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%)

Compiler

Compiled 33 to 19 computations (42.4% saved)

prune1.0ms (0.1%)

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

Compiled 20 to 14 computations (30% saved)

localize33.0ms (1.5%)

Localize:

Found 1 expressions with local error:

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

Compiled 23 to 14 computations (39.1% saved)

series3.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

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

rewrite179.0ms (8.1%)

Algorithm
batch-egg-rewrite
Rules
654×unpow-prod-down
482×log1p-expm1-u
482×expm1-log1p-u
470×log-prod
468×cbrt-prod
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01019
110119
2125719
Stop Event
node limit
Counts
1 → 29
Calls
Call 1
Inputs
(*.f64 x (-.f64 -1/2 y))
Outputs
(+.f64 0 (*.f64 x (-.f64 -1/2 y)))
(+.f64 (*.f64 x -1/2) (*.f64 x (neg.f64 y)))
(+.f64 (*.f64 -1/2 x) (*.f64 (neg.f64 y) x))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (-.f64 -1/2 y)) x)) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (-.f64 -1/2 y)) x))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (-.f64 -1/2 y)) x))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (-.f64 -1/2 y)) x))))
(-.f64 (+.f64 1 (*.f64 x (-.f64 -1/2 y))) 1)
(/.f64 (*.f64 x (-.f64 -1/8 (pow.f64 y 3))) (fma.f64 y (+.f64 -1/2 y) 1/4))
(/.f64 (*.f64 x (-.f64 1/4 (pow.f64 y 2))) (+.f64 -1/2 y))
(/.f64 (*.f64 (-.f64 -1/8 (pow.f64 y 3)) x) (fma.f64 y (+.f64 -1/2 y) 1/4))
(/.f64 (*.f64 (-.f64 1/4 (pow.f64 y 2)) x) (+.f64 -1/2 y))
(pow.f64 (*.f64 x (-.f64 -1/2 y)) 1)
(pow.f64 (cbrt.f64 (*.f64 x (-.f64 -1/2 y))) 3)
(pow.f64 (pow.f64 (*.f64 x (-.f64 -1/2 y)) 2) 1/2)
(pow.f64 (pow.f64 (*.f64 x (-.f64 -1/2 y)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 x (-.f64 -1/2 y))) 2)
(pow.f64 (E.f64) (log.f64 (*.f64 x (-.f64 -1/2 y))))
(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 -1/2 y))))) (sqrt.f64 (log.f64 (*.f64 x (-.f64 -1/2 y)))))
(sqrt.f64 (pow.f64 (*.f64 x (-.f64 -1/2 y)) 2))
(log.f64 (pow.f64 (exp.f64 (-.f64 -1/2 y)) x))
(cbrt.f64 (pow.f64 (*.f64 x (-.f64 -1/2 y)) 3))
(expm1.f64 (log1p.f64 (*.f64 x (-.f64 -1/2 y))))
(exp.f64 (log.f64 (*.f64 x (-.f64 -1/2 y))))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 x (-.f64 -1/2 y)))) 3))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 x (-.f64 -1/2 y)))) 1/3))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 x (-.f64 -1/2 y)))) 2))
(log1p.f64 (expm1.f64 (*.f64 x (-.f64 -1/2 y))))
(fma.f64 x -1/2 (*.f64 x (neg.f64 y)))
(fma.f64 -1/2 x (*.f64 (neg.f64 y) x))

simplify81.0ms (3.6%)

Algorithm
egg-herbie
Rules
1366×log-prod
1356×fma-neg
768×associate-*r*
650×associate-*l*
500×fma-def
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0991420
12291384
26521212
337471212
470431212
Stop Event
node limit
Counts
53 → 47
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 x (+.f64 1/2 y)))
(*.f64 -1 (*.f64 x (+.f64 1/2 y)))
(*.f64 -1 (*.f64 x (+.f64 1/2 y)))
(*.f64 -1 (*.f64 x (+.f64 1/2 y)))
(*.f64 -1 (*.f64 x (+.f64 1/2 y)))
(*.f64 -1 (*.f64 x (+.f64 1/2 y)))
(*.f64 -1 (*.f64 x (+.f64 1/2 y)))
(*.f64 -1 (*.f64 x (+.f64 1/2 y)))
(*.f64 -1 (*.f64 x (+.f64 1/2 y)))
(*.f64 -1 (*.f64 x (+.f64 1/2 y)))
(*.f64 -1 (*.f64 x (+.f64 1/2 y)))
(*.f64 -1 (*.f64 x (+.f64 1/2 y)))
(*.f64 -1/2 x)
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 -1/2 x))
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 -1/2 x))
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 -1/2 x))
(*.f64 -1 (*.f64 x y))
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 -1/2 x))
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 -1/2 x))
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 -1/2 x))
(*.f64 -1 (*.f64 x y))
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 -1/2 x))
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 -1/2 x))
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 -1/2 x))
(+.f64 0 (*.f64 x (-.f64 -1/2 y)))
(+.f64 (*.f64 x -1/2) (*.f64 x (neg.f64 y)))
(+.f64 (*.f64 -1/2 x) (*.f64 (neg.f64 y) x))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (-.f64 -1/2 y)) x)) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (-.f64 -1/2 y)) x))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (-.f64 -1/2 y)) x))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (-.f64 -1/2 y)) x))))
(-.f64 (+.f64 1 (*.f64 x (-.f64 -1/2 y))) 1)
(/.f64 (*.f64 x (-.f64 -1/8 (pow.f64 y 3))) (fma.f64 y (+.f64 -1/2 y) 1/4))
(/.f64 (*.f64 x (-.f64 1/4 (pow.f64 y 2))) (+.f64 -1/2 y))
(/.f64 (*.f64 (-.f64 -1/8 (pow.f64 y 3)) x) (fma.f64 y (+.f64 -1/2 y) 1/4))
(/.f64 (*.f64 (-.f64 1/4 (pow.f64 y 2)) x) (+.f64 -1/2 y))
(pow.f64 (*.f64 x (-.f64 -1/2 y)) 1)
(pow.f64 (cbrt.f64 (*.f64 x (-.f64 -1/2 y))) 3)
(pow.f64 (pow.f64 (*.f64 x (-.f64 -1/2 y)) 2) 1/2)
(pow.f64 (pow.f64 (*.f64 x (-.f64 -1/2 y)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 x (-.f64 -1/2 y))) 2)
(pow.f64 (E.f64) (log.f64 (*.f64 x (-.f64 -1/2 y))))
(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 -1/2 y))))) (sqrt.f64 (log.f64 (*.f64 x (-.f64 -1/2 y)))))
(sqrt.f64 (pow.f64 (*.f64 x (-.f64 -1/2 y)) 2))
(log.f64 (pow.f64 (exp.f64 (-.f64 -1/2 y)) x))
(cbrt.f64 (pow.f64 (*.f64 x (-.f64 -1/2 y)) 3))
(expm1.f64 (log1p.f64 (*.f64 x (-.f64 -1/2 y))))
(exp.f64 (log.f64 (*.f64 x (-.f64 -1/2 y))))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 x (-.f64 -1/2 y)))) 3))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 x (-.f64 -1/2 y)))) 1/3))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 x (-.f64 -1/2 y)))) 2))
(log1p.f64 (expm1.f64 (*.f64 x (-.f64 -1/2 y))))
(fma.f64 x -1/2 (*.f64 x (neg.f64 y)))
(fma.f64 -1/2 x (*.f64 (neg.f64 y) x))
Outputs
(*.f64 -1 (*.f64 x (+.f64 1/2 y)))
(neg.f64 (*.f64 x (+.f64 1/2 y)))
(*.f64 x (-.f64 -1/2 y))
(*.f64 -1 (*.f64 x (+.f64 1/2 y)))
(neg.f64 (*.f64 x (+.f64 1/2 y)))
(*.f64 x (-.f64 -1/2 y))
(*.f64 -1 (*.f64 x (+.f64 1/2 y)))
(neg.f64 (*.f64 x (+.f64 1/2 y)))
(*.f64 x (-.f64 -1/2 y))
(*.f64 -1 (*.f64 x (+.f64 1/2 y)))
(neg.f64 (*.f64 x (+.f64 1/2 y)))
(*.f64 x (-.f64 -1/2 y))
(*.f64 -1 (*.f64 x (+.f64 1/2 y)))
(neg.f64 (*.f64 x (+.f64 1/2 y)))
(*.f64 x (-.f64 -1/2 y))
(*.f64 -1 (*.f64 x (+.f64 1/2 y)))
(neg.f64 (*.f64 x (+.f64 1/2 y)))
(*.f64 x (-.f64 -1/2 y))
(*.f64 -1 (*.f64 x (+.f64 1/2 y)))
(neg.f64 (*.f64 x (+.f64 1/2 y)))
(*.f64 x (-.f64 -1/2 y))
(*.f64 -1 (*.f64 x (+.f64 1/2 y)))
(neg.f64 (*.f64 x (+.f64 1/2 y)))
(*.f64 x (-.f64 -1/2 y))
(*.f64 -1 (*.f64 x (+.f64 1/2 y)))
(neg.f64 (*.f64 x (+.f64 1/2 y)))
(*.f64 x (-.f64 -1/2 y))
(*.f64 -1 (*.f64 x (+.f64 1/2 y)))
(neg.f64 (*.f64 x (+.f64 1/2 y)))
(*.f64 x (-.f64 -1/2 y))
(*.f64 -1 (*.f64 x (+.f64 1/2 y)))
(neg.f64 (*.f64 x (+.f64 1/2 y)))
(*.f64 x (-.f64 -1/2 y))
(*.f64 -1 (*.f64 x (+.f64 1/2 y)))
(neg.f64 (*.f64 x (+.f64 1/2 y)))
(*.f64 x (-.f64 -1/2 y))
(*.f64 -1/2 x)
(*.f64 x -1/2)
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 -1/2 x))
(neg.f64 (*.f64 x (+.f64 1/2 y)))
(*.f64 x (-.f64 -1/2 y))
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 -1/2 x))
(neg.f64 (*.f64 x (+.f64 1/2 y)))
(*.f64 x (-.f64 -1/2 y))
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 -1/2 x))
(neg.f64 (*.f64 x (+.f64 1/2 y)))
(*.f64 x (-.f64 -1/2 y))
(*.f64 -1 (*.f64 x y))
(*.f64 x (neg.f64 y))
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 -1/2 x))
(neg.f64 (*.f64 x (+.f64 1/2 y)))
(*.f64 x (-.f64 -1/2 y))
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 -1/2 x))
(neg.f64 (*.f64 x (+.f64 1/2 y)))
(*.f64 x (-.f64 -1/2 y))
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 -1/2 x))
(neg.f64 (*.f64 x (+.f64 1/2 y)))
(*.f64 x (-.f64 -1/2 y))
(*.f64 -1 (*.f64 x y))
(*.f64 x (neg.f64 y))
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 -1/2 x))
(neg.f64 (*.f64 x (+.f64 1/2 y)))
(*.f64 x (-.f64 -1/2 y))
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 -1/2 x))
(neg.f64 (*.f64 x (+.f64 1/2 y)))
(*.f64 x (-.f64 -1/2 y))
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 -1/2 x))
(neg.f64 (*.f64 x (+.f64 1/2 y)))
(*.f64 x (-.f64 -1/2 y))
(+.f64 0 (*.f64 x (-.f64 -1/2 y)))
(neg.f64 (*.f64 x (+.f64 1/2 y)))
(*.f64 x (-.f64 -1/2 y))
(+.f64 (*.f64 x -1/2) (*.f64 x (neg.f64 y)))
(neg.f64 (*.f64 x (+.f64 1/2 y)))
(*.f64 x (-.f64 -1/2 y))
(+.f64 (*.f64 -1/2 x) (*.f64 (neg.f64 y) x))
(neg.f64 (*.f64 x (+.f64 1/2 y)))
(*.f64 x (-.f64 -1/2 y))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (-.f64 -1/2 y)) x)) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (-.f64 -1/2 y)) 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 -1/2 y)) x))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (-.f64 -1/2 y)) x))))
(neg.f64 (*.f64 x (+.f64 1/2 y)))
(*.f64 x (-.f64 -1/2 y))
(-.f64 (+.f64 1 (*.f64 x (-.f64 -1/2 y))) 1)
(neg.f64 (*.f64 x (+.f64 1/2 y)))
(*.f64 x (-.f64 -1/2 y))
(/.f64 (*.f64 x (-.f64 -1/8 (pow.f64 y 3))) (fma.f64 y (+.f64 -1/2 y) 1/4))
(/.f64 (-.f64 -1/8 (pow.f64 y 3)) (/.f64 (fma.f64 y (+.f64 y -1/2) 1/4) x))
(*.f64 (/.f64 (-.f64 -1/8 (pow.f64 y 3)) (fma.f64 y (+.f64 y -1/2) 1/4)) x)
(*.f64 x (/.f64 (-.f64 -1/8 (pow.f64 y 3)) (fma.f64 y (+.f64 y -1/2) 1/4)))
(/.f64 (*.f64 x (-.f64 1/4 (pow.f64 y 2))) (+.f64 -1/2 y))
(/.f64 (-.f64 1/4 (pow.f64 y 2)) (/.f64 (+.f64 y -1/2) x))
(*.f64 (/.f64 x (+.f64 y -1/2)) (-.f64 1/4 (pow.f64 y 2)))
(*.f64 x (/.f64 (-.f64 1/4 (pow.f64 y 2)) (+.f64 y -1/2)))
(*.f64 (-.f64 1/4 (pow.f64 y 2)) (/.f64 x (+.f64 y -1/2)))
(/.f64 (*.f64 (-.f64 -1/8 (pow.f64 y 3)) x) (fma.f64 y (+.f64 -1/2 y) 1/4))
(/.f64 (-.f64 -1/8 (pow.f64 y 3)) (/.f64 (fma.f64 y (+.f64 y -1/2) 1/4) x))
(*.f64 (/.f64 (-.f64 -1/8 (pow.f64 y 3)) (fma.f64 y (+.f64 y -1/2) 1/4)) x)
(*.f64 x (/.f64 (-.f64 -1/8 (pow.f64 y 3)) (fma.f64 y (+.f64 y -1/2) 1/4)))
(/.f64 (*.f64 (-.f64 1/4 (pow.f64 y 2)) x) (+.f64 -1/2 y))
(/.f64 (-.f64 1/4 (pow.f64 y 2)) (/.f64 (+.f64 y -1/2) x))
(*.f64 (/.f64 x (+.f64 y -1/2)) (-.f64 1/4 (pow.f64 y 2)))
(*.f64 x (/.f64 (-.f64 1/4 (pow.f64 y 2)) (+.f64 y -1/2)))
(*.f64 (-.f64 1/4 (pow.f64 y 2)) (/.f64 x (+.f64 y -1/2)))
(pow.f64 (*.f64 x (-.f64 -1/2 y)) 1)
(neg.f64 (*.f64 x (+.f64 1/2 y)))
(*.f64 x (-.f64 -1/2 y))
(pow.f64 (cbrt.f64 (*.f64 x (-.f64 -1/2 y))) 3)
(neg.f64 (*.f64 x (+.f64 1/2 y)))
(*.f64 x (-.f64 -1/2 y))
(pow.f64 (pow.f64 (*.f64 x (-.f64 -1/2 y)) 2) 1/2)
(neg.f64 (*.f64 x (+.f64 1/2 y)))
(*.f64 x (-.f64 -1/2 y))
(pow.f64 (pow.f64 (*.f64 x (-.f64 -1/2 y)) 3) 1/3)
(neg.f64 (*.f64 x (+.f64 1/2 y)))
(*.f64 x (-.f64 -1/2 y))
(pow.f64 (sqrt.f64 (*.f64 x (-.f64 -1/2 y))) 2)
(neg.f64 (*.f64 x (+.f64 1/2 y)))
(*.f64 x (-.f64 -1/2 y))
(pow.f64 (E.f64) (log.f64 (*.f64 x (-.f64 -1/2 y))))
(neg.f64 (*.f64 x (+.f64 1/2 y)))
(*.f64 x (-.f64 -1/2 y))
(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 -1/2 y))))) (sqrt.f64 (log.f64 (*.f64 x (-.f64 -1/2 y)))))
(sqrt.f64 (pow.f64 (*.f64 x (-.f64 -1/2 y)) 2))
(neg.f64 (*.f64 x (+.f64 1/2 y)))
(*.f64 x (-.f64 -1/2 y))
(log.f64 (pow.f64 (exp.f64 (-.f64 -1/2 y)) x))
(neg.f64 (*.f64 x (+.f64 1/2 y)))
(*.f64 x (-.f64 -1/2 y))
(cbrt.f64 (pow.f64 (*.f64 x (-.f64 -1/2 y)) 3))
(neg.f64 (*.f64 x (+.f64 1/2 y)))
(*.f64 x (-.f64 -1/2 y))
(expm1.f64 (log1p.f64 (*.f64 x (-.f64 -1/2 y))))
(neg.f64 (*.f64 x (+.f64 1/2 y)))
(*.f64 x (-.f64 -1/2 y))
(exp.f64 (log.f64 (*.f64 x (-.f64 -1/2 y))))
(neg.f64 (*.f64 x (+.f64 1/2 y)))
(*.f64 x (-.f64 -1/2 y))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 x (-.f64 -1/2 y)))) 3))
(neg.f64 (*.f64 x (+.f64 1/2 y)))
(*.f64 x (-.f64 -1/2 y))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 x (-.f64 -1/2 y)))) 1/3))
(neg.f64 (*.f64 x (+.f64 1/2 y)))
(*.f64 x (-.f64 -1/2 y))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 x (-.f64 -1/2 y)))) 2))
(neg.f64 (*.f64 x (+.f64 1/2 y)))
(*.f64 x (-.f64 -1/2 y))
(log1p.f64 (expm1.f64 (*.f64 x (-.f64 -1/2 y))))
(neg.f64 (*.f64 x (+.f64 1/2 y)))
(*.f64 x (-.f64 -1/2 y))
(fma.f64 x -1/2 (*.f64 x (neg.f64 y)))
(neg.f64 (*.f64 x (+.f64 1/2 y)))
(*.f64 x (-.f64 -1/2 y))
(fma.f64 -1/2 x (*.f64 (neg.f64 y) x))
(neg.f64 (*.f64 x (+.f64 1/2 y)))
(*.f64 x (-.f64 -1/2 y))

eval12.0ms (0.6%)

Compiler

Compiled 554 to 376 computations (32.1% saved)

prune9.0ms (0.4%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New45247
Fresh000
Picked011
Done000
Total45348
Accuracy
100.0%
Counts
48 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(-.f64 z (*.f64 x (-.f64 -1/2 y)))
71.8%
(-.f64 z (*.f64 x (neg.f64 y)))
67.8%
(-.f64 z (*.f64 x -1/2))
100.0%
(-.f64 z (*.f64 x (-.f64 -1/2 y)))
71.8%
(-.f64 z (*.f64 x (neg.f64 y)))
67.8%
(-.f64 z (*.f64 x -1/2))
Compiler

Compiled 54 to 38 computations (29.6% saved)

localize40.0ms (1.8%)

Compiler

Compiled 30 to 13 computations (56.7% 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 z (*.f64 x (-.f64 -1/2 y)))
71.8%
(-.f64 z (*.f64 x (neg.f64 y)))
67.8%
(-.f64 z (*.f64 x -1/2))
Compiler

Compiled 57 to 37 computations (35.1% saved)

regimes19.0ms (0.8%)

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

5 calls:

4.0ms
z
3.0ms
y
3.0ms
(+.f64 (/.f64 x 2) (*.f64 y x))
3.0ms
x
3.0ms
(+.f64 (+.f64 (/.f64 x 2) (*.f64 y x)) z)
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 64 to 42 computations (34.4% saved)

regimes38.0ms (1.7%)

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

3 calls:

17.0ms
z
11.0ms
x
9.0ms
y
Results
AccuracySegmentsBranch
79.0%4x
98.7%3y
78.2%6z
Compiler

Compiled 26 to 18 computations (30.8% saved)

regimes8.0ms (0.4%)

Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

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

3 calls:

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

Compiled 20 to 15 computations (25% saved)

bsearch30.0ms (1.4%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
12.0ms
0.0015990686336764114
0.008706397093523855
19.0ms
-31195179757.638313
-1.1824352152427229e-8
Results
27.0ms256×body256valid
Compiler

Compiled 322 to 237 computations (26.4% saved)

simplify12.0ms (0.5%)

Algorithm
egg-herbie
Rules
86×unsub-neg
82×distribute-lft-neg-in
60×neg-mul-1
42×distribute-rgt-neg-in
40×cancel-sign-sub-inv
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
027123
155119
291119
3130119
4176119
5211119
6276119
7324119
8325119
Stop Event
done
saturated
Calls
Call 1
Inputs
(-.f64 z (*.f64 x (-.f64 -1/2 y)))
(if (<=.f64 y -1/2) (-.f64 z (*.f64 x (neg.f64 y))) (if (<=.f64 y 1224979098644775/144115188075855872) (-.f64 z (*.f64 x -1/2)) (-.f64 z (*.f64 x (neg.f64 y)))))
(-.f64 z (*.f64 x -1/2))
Outputs
(-.f64 z (*.f64 x (-.f64 -1/2 y)))
(+.f64 z (*.f64 x (-.f64 y -1/2)))
(if (<=.f64 y -1/2) (-.f64 z (*.f64 x (neg.f64 y))) (if (<=.f64 y 1224979098644775/144115188075855872) (-.f64 z (*.f64 x -1/2)) (-.f64 z (*.f64 x (neg.f64 y)))))
(if (or (<=.f64 y -1/2) (not (<=.f64 y 1224979098644775/144115188075855872))) (-.f64 z (*.f64 x (neg.f64 y))) (-.f64 z (*.f64 x -1/2)))
(if (or (<=.f64 y -1/2) (not (<=.f64 y 1224979098644775/144115188075855872))) (+.f64 z (*.f64 x y)) (-.f64 z (*.f64 x -1/2)))
(-.f64 z (*.f64 x -1/2))
Compiler

Compiled 40 to 28 computations (30% saved)

soundness530.0ms (23.9%)

Rules
2916×fma-def
1366×log-prod
1366×log-prod
1356×fma-neg
1356×fma-neg
Iterations

Useful iterations: 10 (0.0ms)

IterNodesCost
040435
199375
2274371
3804323
41692297
52827297
63301292
73465292
83573292
93608292
103616276
114174276
124174276
134174276
0991420
12291384
26521212
337471212
470431212
0991420
12291384
26521212
337471212
470431212
Stop Event
node limit
node limit
saturated
Compiler

Compiled 184 to 98 computations (46.7% saved)

end0.0ms (0%)

preprocess33.0ms (1.5%)

Compiler

Compiled 92 to 60 computations (34.8% saved)

Profiling

Loading profile data...