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)

Precisions
Click to see histograms. Total time spent on operations: 0.0ms
ival-div: 0.0ms (0% of total)
ival-add: 0.0ms (0% of total)
ival-mult: 0.0ms (0% of total)
const: 0.0ms (0% of total)

sample856.0ms (39.3%)

Results
547.0ms8255×0valid
0.0ms1valid
Precisions
Click to see histograms. Total time spent on operations: 253.0ms
ival-add: 92.0ms (36.3% of total)
ival-mult: 80.0ms (31.6% of total)
ival-div: 66.0ms (26% of total)
const: 12.0ms (4.7% of total)
backward-pass: 4.0ms (1.6% of total)
Bogosity

preprocess207.0ms (9.5%)

Algorithm
egg-herbie
Rules
1010×fma-neg
531×fma-define
206×distribute-rgt-in
150×sub-neg
138×unsub-neg
Iterations

Useful iterations: 10 (0.0ms)

IterNodesCost
040435
199371
2275371
3801323
41690297
52822292
63298292
73484292
83535292
93543292
103543276
114081276
124081276
Stop Event
saturated
Calls
Call 1
Inputs
(+.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) z)
(+.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) z)
(+.f64 (+.f64 (/.f64 (neg.f64 x) #s(literal 2 binary64)) (*.f64 y (neg.f64 x))) z)
(+.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 (neg.f64 y) x)) z)
(+.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) (neg.f64 z))
(neg.f64 (+.f64 (+.f64 (/.f64 (neg.f64 x) #s(literal 2 binary64)) (*.f64 y (neg.f64 x))) z))
(neg.f64 (+.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 (neg.f64 y) x)) z))
(neg.f64 (+.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) (neg.f64 z)))
(+.f64 (+.f64 (/.f64 y #s(literal 2 binary64)) (*.f64 x y)) z)
(+.f64 (+.f64 (/.f64 z #s(literal 2 binary64)) (*.f64 y z)) x)
(+.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 z x)) y)
Outputs
(+.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) z)
(+.f64 (/.f64 x #s(literal 2 binary64)) (+.f64 (*.f64 x y) z))
(+.f64 (/.f64 x #s(literal 2 binary64)) (fma.f64 x y z))
(+.f64 (*.f64 x (-.f64 y #s(literal -1/2 binary64))) z)
(fma.f64 x (+.f64 y #s(literal 1/2 binary64)) z)
(+.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) z)
(+.f64 (/.f64 x #s(literal 2 binary64)) (+.f64 (*.f64 x y) z))
(+.f64 (/.f64 x #s(literal 2 binary64)) (fma.f64 x y z))
(+.f64 (*.f64 x (-.f64 y #s(literal -1/2 binary64))) z)
(fma.f64 x (+.f64 y #s(literal 1/2 binary64)) z)
(+.f64 (+.f64 (/.f64 (neg.f64 x) #s(literal 2 binary64)) (*.f64 y (neg.f64 x))) z)
(+.f64 z (+.f64 (/.f64 (neg.f64 x) #s(literal 2 binary64)) (*.f64 x (neg.f64 y))))
(-.f64 z (fma.f64 x y (/.f64 x #s(literal 2 binary64))))
(+.f64 z (*.f64 x (-.f64 #s(literal -1/2 binary64) y)))
(fma.f64 x (-.f64 #s(literal -1/2 binary64) y) z)
(+.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 (neg.f64 y) x)) z)
(+.f64 (/.f64 x #s(literal 2 binary64)) (+.f64 (*.f64 x (neg.f64 y)) z))
(+.f64 (/.f64 x #s(literal 2 binary64)) (fma.f64 y (neg.f64 x) z))
(+.f64 (/.f64 x #s(literal 2 binary64)) (-.f64 z (*.f64 x y)))
(-.f64 z (*.f64 x (+.f64 y #s(literal -1/2 binary64))))
(+.f64 z (*.f64 x (-.f64 #s(literal 1/2 binary64) y)))
(fma.f64 x (-.f64 #s(literal 1/2 binary64) y) z)
(+.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) (neg.f64 z))
(-.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 x y)) z)
(-.f64 (fma.f64 x y (/.f64 x #s(literal 2 binary64))) z)
(-.f64 (*.f64 x (-.f64 y #s(literal -1/2 binary64))) z)
(-.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64))) z)
(neg.f64 (+.f64 (+.f64 (/.f64 (neg.f64 x) #s(literal 2 binary64)) (*.f64 y (neg.f64 x))) z))
(-.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 x y)) z)
(-.f64 (fma.f64 x y (/.f64 x #s(literal 2 binary64))) z)
(-.f64 (*.f64 x (-.f64 y #s(literal -1/2 binary64))) z)
(-.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64))) z)
(neg.f64 (+.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 (neg.f64 y) x)) z))
(neg.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (+.f64 (*.f64 x (neg.f64 y)) z)))
(-.f64 (/.f64 x #s(literal -2 binary64)) (fma.f64 y (neg.f64 x) z))
(+.f64 (*.f64 x y) (-.f64 (*.f64 x #s(literal -1/2 binary64)) z))
(-.f64 (*.f64 x (+.f64 y #s(literal -1/2 binary64))) z)
(neg.f64 (fma.f64 x (-.f64 #s(literal 1/2 binary64) y) z))
(neg.f64 (+.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) (neg.f64 z)))
(+.f64 z (+.f64 (/.f64 (neg.f64 x) #s(literal 2 binary64)) (*.f64 x (neg.f64 y))))
(-.f64 z (fma.f64 x y (/.f64 x #s(literal 2 binary64))))
(+.f64 z (*.f64 x (-.f64 #s(literal -1/2 binary64) y)))
(fma.f64 x (-.f64 #s(literal -1/2 binary64) y) z)
(+.f64 (+.f64 (/.f64 y #s(literal 2 binary64)) (*.f64 x y)) z)
(+.f64 z (+.f64 (*.f64 x y) (/.f64 y #s(literal 2 binary64))))
(+.f64 z (fma.f64 x y (/.f64 y #s(literal 2 binary64))))
(+.f64 z (fma.f64 x y (*.f64 y #s(literal 1/2 binary64))))
(+.f64 z (*.f64 y (+.f64 x #s(literal 1/2 binary64))))
(fma.f64 y (+.f64 x #s(literal 1/2 binary64)) z)
(+.f64 (+.f64 (/.f64 z #s(literal 2 binary64)) (*.f64 y z)) x)
(+.f64 x (+.f64 (/.f64 z #s(literal 2 binary64)) (*.f64 y z)))
(+.f64 x (fma.f64 y z (/.f64 z #s(literal 2 binary64))))
(+.f64 x (fma.f64 y z (*.f64 z #s(literal 1/2 binary64))))
(+.f64 x (*.f64 z (+.f64 y #s(literal 1/2 binary64))))
(fma.f64 z (+.f64 y #s(literal 1/2 binary64)) x)
(+.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 z x)) y)
(+.f64 y (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 x z)))
(+.f64 y (fma.f64 x z (/.f64 x #s(literal 2 binary64))))
(+.f64 (/.f64 x #s(literal 2 binary64)) (fma.f64 x z y))
(+.f64 (*.f64 x #s(literal 1/2 binary64)) (fma.f64 x z y))
(+.f64 y (*.f64 x (+.f64 #s(literal 1/2 binary64) z)))
(+.f64 y (*.f64 x (+.f64 z #s(literal 1/2 binary64))))
(fma.f64 x (+.f64 z #s(literal 1/2 binary64)) y)

explain144.0ms (6.6%)

FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
00-0-x
00-0-(*.f64 y x)
00-0-(+.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) z)
00-0-(/.f64 x #s(literal 2 binary64))
00-0-z
00-0-(+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x))
00-0-#s(literal 2 binary64)
00-0-y
Results
113.0ms512×256valid
Compiler

Compiled 72 to 38 computations (47.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 85.0ms
ival-mult: 66.0ms (77.6% of total)
ival-div: 10.0ms (11.8% of total)
ival-add: 7.0ms (8.2% of total)
const: 1.0ms (1.2% of total)

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 (/.f64 x #s(literal 2 binary64)) (+.f64 (*.f64 x y) z))
100.0%
(+.f64 (*.f64 x (-.f64 y #s(literal -1/2 binary64))) z)
Compiler

Compiled 22 to 15 computations (31.8% saved)

localize102.0ms (4.7%)

Localize:

Found 1 expressions with local error:

NewAccuracyProgram
100.0%
(*.f64 x (-.f64 y #s(literal -1/2 binary64)))
Results
78.0ms256×256valid
Compiler

Compiled 47 to 22 computations (53.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 59.0ms
ival-mult: 46.0ms (78.4% of total)
ival-sub: 4.0ms (6.8% of total)
ival-add: 4.0ms (6.8% of total)
ival-div: 3.0ms (5.1% of total)
const: 1.0ms (1.7% of total)

series4.0ms (0.2%)

Counts
1 → 24
Calls
Call 1
Inputs
#<alt (*.f64 x (-.f64 y #s(literal -1/2 binary64)))>
Outputs
#<alt (*.f64 x (+.f64 #s(literal 1/2 binary64) y))>
#<alt (*.f64 x (+.f64 #s(literal 1/2 binary64) y))>
#<alt (*.f64 x (+.f64 #s(literal 1/2 binary64) y))>
#<alt (*.f64 x (+.f64 #s(literal 1/2 binary64) y))>
#<alt (*.f64 x (+.f64 #s(literal 1/2 binary64) y))>
#<alt (*.f64 x (+.f64 #s(literal 1/2 binary64) y))>
#<alt (*.f64 x (+.f64 #s(literal 1/2 binary64) y))>
#<alt (*.f64 x (+.f64 #s(literal 1/2 binary64) y))>
#<alt (*.f64 x (+.f64 #s(literal 1/2 binary64) y))>
#<alt (*.f64 x (+.f64 #s(literal 1/2 binary64) y))>
#<alt (*.f64 x (+.f64 #s(literal 1/2 binary64) y))>
#<alt (*.f64 x (+.f64 #s(literal 1/2 binary64) y))>
#<alt (*.f64 #s(literal 1/2 binary64) x)>
#<alt (+.f64 (*.f64 #s(literal 1/2 binary64) x) (*.f64 x y))>
#<alt (+.f64 (*.f64 #s(literal 1/2 binary64) x) (*.f64 x y))>
#<alt (+.f64 (*.f64 #s(literal 1/2 binary64) x) (*.f64 x y))>
#<alt (*.f64 x y)>
#<alt (*.f64 y (+.f64 x (*.f64 #s(literal 1/2 binary64) (/.f64 x y))))>
#<alt (*.f64 y (+.f64 x (*.f64 #s(literal 1/2 binary64) (/.f64 x y))))>
#<alt (*.f64 y (+.f64 x (*.f64 #s(literal 1/2 binary64) (/.f64 x y))))>
#<alt (*.f64 x y)>
#<alt (*.f64 #s(literal -1 binary64) (*.f64 y (+.f64 (*.f64 #s(literal -1 binary64) x) (*.f64 #s(literal -1/2 binary64) (/.f64 x y)))))>
#<alt (*.f64 #s(literal -1 binary64) (*.f64 y (+.f64 (*.f64 #s(literal -1 binary64) x) (*.f64 #s(literal -1/2 binary64) (/.f64 x y)))))>
#<alt (*.f64 #s(literal -1 binary64) (*.f64 y (+.f64 (*.f64 #s(literal -1 binary64) x) (*.f64 #s(literal -1/2 binary64) (/.f64 x y)))))>
Calls

6 calls:

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

rewrite192.0ms (8.8%)

Algorithm
batch-egg-rewrite
Rules
463×log1p-expm1-u
463×expm1-log1p-u
441×add-exp-log
427×add-log-exp
395×pow1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01019
110219
2123419
Stop Event
node limit
Counts
1 → 29
Calls
Call 1
Inputs
(*.f64 x (-.f64 y #s(literal -1/2 binary64)))
Outputs
(+.f64 #s(literal 0 binary64) (*.f64 x (+.f64 y #s(literal 1/2 binary64))))
(+.f64 (*.f64 x y) (*.f64 x #s(literal 1/2 binary64)))
(+.f64 (*.f64 y x) (*.f64 #s(literal 1/2 binary64) x))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 y #s(literal 1/2 binary64))) x)) #s(literal 2 binary64))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 y #s(literal 1/2 binary64))) x))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 y #s(literal 1/2 binary64))) x))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 y #s(literal 1/2 binary64))) x))))
(-.f64 (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 y #s(literal 1/2 binary64)))) #s(literal 1 binary64))
(/.f64 (*.f64 x (+.f64 (pow.f64 y #s(literal 3 binary64)) #s(literal 1/8 binary64))) (fma.f64 y y (fma.f64 y #s(literal -1/2 binary64) #s(literal 1/4 binary64))))
(/.f64 (*.f64 x (fma.f64 y y #s(literal -1/4 binary64))) (+.f64 y #s(literal -1/2 binary64)))
(/.f64 (*.f64 (+.f64 (pow.f64 y #s(literal 3 binary64)) #s(literal 1/8 binary64)) x) (fma.f64 y y (fma.f64 y #s(literal -1/2 binary64) #s(literal 1/4 binary64))))
(/.f64 (*.f64 (fma.f64 y y #s(literal -1/4 binary64)) x) (+.f64 y #s(literal -1/2 binary64)))
(pow.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64))) #s(literal 1 binary64))
(pow.f64 (cbrt.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64)))) #s(literal 3 binary64))
(pow.f64 (pow.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64))) #s(literal 2 binary64)) #s(literal 1/2 binary64))
(pow.f64 (pow.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64))) #s(literal 3 binary64)) #s(literal 1/3 binary64))
(pow.f64 (sqrt.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64)))) #s(literal 2 binary64))
(pow.f64 (E.f64) (log.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64)))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64))))) #s(literal 2 binary64))) (cbrt.f64 (log.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64))))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64)))))) (sqrt.f64 (log.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64))))))
(sqrt.f64 (pow.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64))) #s(literal 2 binary64)))
(log.f64 (pow.f64 (exp.f64 (+.f64 y #s(literal 1/2 binary64))) x))
(cbrt.f64 (pow.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64))) #s(literal 3 binary64)))
(expm1.f64 (log1p.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64)))))
(log1p.f64 (expm1.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64)))))
(exp.f64 (log.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64)))))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64))))) #s(literal 3 binary64)))
(exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64))) #s(literal 3 binary64))) #s(literal 1/3 binary64)))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64))))) #s(literal 2 binary64)))
(fma.f64 x y (*.f64 x #s(literal 1/2 binary64)))
(fma.f64 y x (*.f64 #s(literal 1/2 binary64) x))

simplify70.0ms (3.2%)

Algorithm
egg-herbie
Rules
528×fma-neg
421×times-frac
256×associate-+r+
249×prod-exp
245×*-commutative
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01051278
12061278
25051276
319691276
439181276
Stop Event
node limit
Counts
53 → 51
Calls
Call 1
Inputs
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 #s(literal 1/2 binary64) x)
(+.f64 (*.f64 #s(literal 1/2 binary64) x) (*.f64 x y))
(+.f64 (*.f64 #s(literal 1/2 binary64) x) (*.f64 x y))
(+.f64 (*.f64 #s(literal 1/2 binary64) x) (*.f64 x y))
(*.f64 x y)
(*.f64 y (+.f64 x (*.f64 #s(literal 1/2 binary64) (/.f64 x y))))
(*.f64 y (+.f64 x (*.f64 #s(literal 1/2 binary64) (/.f64 x y))))
(*.f64 y (+.f64 x (*.f64 #s(literal 1/2 binary64) (/.f64 x y))))
(*.f64 x y)
(*.f64 #s(literal -1 binary64) (*.f64 y (+.f64 (*.f64 #s(literal -1 binary64) x) (*.f64 #s(literal -1/2 binary64) (/.f64 x y)))))
(*.f64 #s(literal -1 binary64) (*.f64 y (+.f64 (*.f64 #s(literal -1 binary64) x) (*.f64 #s(literal -1/2 binary64) (/.f64 x y)))))
(*.f64 #s(literal -1 binary64) (*.f64 y (+.f64 (*.f64 #s(literal -1 binary64) x) (*.f64 #s(literal -1/2 binary64) (/.f64 x y)))))
(+.f64 #s(literal 0 binary64) (*.f64 x (+.f64 y #s(literal 1/2 binary64))))
(+.f64 (*.f64 x y) (*.f64 x #s(literal 1/2 binary64)))
(+.f64 (*.f64 y x) (*.f64 #s(literal 1/2 binary64) x))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 y #s(literal 1/2 binary64))) x)) #s(literal 2 binary64))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 y #s(literal 1/2 binary64))) x))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 y #s(literal 1/2 binary64))) x))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 y #s(literal 1/2 binary64))) x))))
(-.f64 (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 y #s(literal 1/2 binary64)))) #s(literal 1 binary64))
(/.f64 (*.f64 x (+.f64 (pow.f64 y #s(literal 3 binary64)) #s(literal 1/8 binary64))) (fma.f64 y y (fma.f64 y #s(literal -1/2 binary64) #s(literal 1/4 binary64))))
(/.f64 (*.f64 x (fma.f64 y y #s(literal -1/4 binary64))) (+.f64 y #s(literal -1/2 binary64)))
(/.f64 (*.f64 (+.f64 (pow.f64 y #s(literal 3 binary64)) #s(literal 1/8 binary64)) x) (fma.f64 y y (fma.f64 y #s(literal -1/2 binary64) #s(literal 1/4 binary64))))
(/.f64 (*.f64 (fma.f64 y y #s(literal -1/4 binary64)) x) (+.f64 y #s(literal -1/2 binary64)))
(pow.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64))) #s(literal 1 binary64))
(pow.f64 (cbrt.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64)))) #s(literal 3 binary64))
(pow.f64 (pow.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64))) #s(literal 2 binary64)) #s(literal 1/2 binary64))
(pow.f64 (pow.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64))) #s(literal 3 binary64)) #s(literal 1/3 binary64))
(pow.f64 (sqrt.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64)))) #s(literal 2 binary64))
(pow.f64 (E.f64) (log.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64)))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64))))) #s(literal 2 binary64))) (cbrt.f64 (log.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64))))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64)))))) (sqrt.f64 (log.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64))))))
(sqrt.f64 (pow.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64))) #s(literal 2 binary64)))
(log.f64 (pow.f64 (exp.f64 (+.f64 y #s(literal 1/2 binary64))) x))
(cbrt.f64 (pow.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64))) #s(literal 3 binary64)))
(expm1.f64 (log1p.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64)))))
(log1p.f64 (expm1.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64)))))
(exp.f64 (log.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64)))))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64))))) #s(literal 3 binary64)))
(exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64))) #s(literal 3 binary64))) #s(literal 1/3 binary64)))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64))))) #s(literal 2 binary64)))
(fma.f64 x y (*.f64 x #s(literal 1/2 binary64)))
(fma.f64 y x (*.f64 #s(literal 1/2 binary64) x))
Outputs
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (-.f64 y #s(literal -1/2 binary64)))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (-.f64 y #s(literal -1/2 binary64)))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (-.f64 y #s(literal -1/2 binary64)))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (-.f64 y #s(literal -1/2 binary64)))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (-.f64 y #s(literal -1/2 binary64)))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (-.f64 y #s(literal -1/2 binary64)))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (-.f64 y #s(literal -1/2 binary64)))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (-.f64 y #s(literal -1/2 binary64)))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (-.f64 y #s(literal -1/2 binary64)))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (-.f64 y #s(literal -1/2 binary64)))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (-.f64 y #s(literal -1/2 binary64)))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (-.f64 y #s(literal -1/2 binary64)))
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 x #s(literal 1/2 binary64))
(+.f64 (*.f64 #s(literal 1/2 binary64) x) (*.f64 x y))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (-.f64 y #s(literal -1/2 binary64)))
(+.f64 (*.f64 #s(literal 1/2 binary64) x) (*.f64 x y))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (-.f64 y #s(literal -1/2 binary64)))
(+.f64 (*.f64 #s(literal 1/2 binary64) x) (*.f64 x y))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (-.f64 y #s(literal -1/2 binary64)))
(*.f64 x y)
(*.f64 y (+.f64 x (*.f64 #s(literal 1/2 binary64) (/.f64 x y))))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (-.f64 y #s(literal -1/2 binary64)))
(*.f64 y (+.f64 x (*.f64 #s(literal 1/2 binary64) (/.f64 x y))))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (-.f64 y #s(literal -1/2 binary64)))
(*.f64 y (+.f64 x (*.f64 #s(literal 1/2 binary64) (/.f64 x y))))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (-.f64 y #s(literal -1/2 binary64)))
(*.f64 x y)
(*.f64 #s(literal -1 binary64) (*.f64 y (+.f64 (*.f64 #s(literal -1 binary64) x) (*.f64 #s(literal -1/2 binary64) (/.f64 x y)))))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (-.f64 y #s(literal -1/2 binary64)))
(*.f64 #s(literal -1 binary64) (*.f64 y (+.f64 (*.f64 #s(literal -1 binary64) x) (*.f64 #s(literal -1/2 binary64) (/.f64 x y)))))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (-.f64 y #s(literal -1/2 binary64)))
(*.f64 #s(literal -1 binary64) (*.f64 y (+.f64 (*.f64 #s(literal -1 binary64) x) (*.f64 #s(literal -1/2 binary64) (/.f64 x y)))))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (-.f64 y #s(literal -1/2 binary64)))
(+.f64 #s(literal 0 binary64) (*.f64 x (+.f64 y #s(literal 1/2 binary64))))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (-.f64 y #s(literal -1/2 binary64)))
(+.f64 (*.f64 x y) (*.f64 x #s(literal 1/2 binary64)))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (-.f64 y #s(literal -1/2 binary64)))
(+.f64 (*.f64 y x) (*.f64 #s(literal 1/2 binary64) x))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (-.f64 y #s(literal -1/2 binary64)))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 y #s(literal 1/2 binary64))) x)) #s(literal 2 binary64))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 y #s(literal 1/2 binary64))) x))))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 #s(literal 1/2 binary64) y)) x)) #s(literal 2 binary64))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 #s(literal 1/2 binary64) y)) x))))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (*.f64 x (-.f64 y #s(literal -1/2 binary64))))) #s(literal 2 binary64))) (log.f64 (cbrt.f64 (exp.f64 (*.f64 x (-.f64 y #s(literal -1/2 binary64)))))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 y #s(literal 1/2 binary64))) x))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 y #s(literal 1/2 binary64))) x))))
(*.f64 #s(literal 2 binary64) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 #s(literal 1/2 binary64) y)) x))))
(*.f64 #s(literal 2 binary64) (log.f64 (sqrt.f64 (exp.f64 (*.f64 x (-.f64 y #s(literal -1/2 binary64)))))))
(-.f64 (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 y #s(literal 1/2 binary64)))) #s(literal 1 binary64))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (-.f64 y #s(literal -1/2 binary64)))
(/.f64 (*.f64 x (+.f64 (pow.f64 y #s(literal 3 binary64)) #s(literal 1/8 binary64))) (fma.f64 y y (fma.f64 y #s(literal -1/2 binary64) #s(literal 1/4 binary64))))
(*.f64 x (/.f64 (+.f64 (pow.f64 y #s(literal 3 binary64)) #s(literal 1/8 binary64)) (fma.f64 y y (fma.f64 y #s(literal -1/2 binary64) #s(literal 1/4 binary64)))))
(*.f64 x (/.f64 (+.f64 (pow.f64 y #s(literal 3 binary64)) #s(literal 1/8 binary64)) (+.f64 #s(literal 1/4 binary64) (*.f64 y (+.f64 y #s(literal -1/2 binary64))))))
(/.f64 (*.f64 x (fma.f64 y y #s(literal -1/4 binary64))) (+.f64 y #s(literal -1/2 binary64)))
(*.f64 x (/.f64 (fma.f64 y y #s(literal -1/4 binary64)) (+.f64 y #s(literal -1/2 binary64))))
(*.f64 (fma.f64 y y #s(literal -1/4 binary64)) (/.f64 x (+.f64 y #s(literal -1/2 binary64))))
(/.f64 (*.f64 (+.f64 (pow.f64 y #s(literal 3 binary64)) #s(literal 1/8 binary64)) x) (fma.f64 y y (fma.f64 y #s(literal -1/2 binary64) #s(literal 1/4 binary64))))
(*.f64 x (/.f64 (+.f64 (pow.f64 y #s(literal 3 binary64)) #s(literal 1/8 binary64)) (fma.f64 y y (fma.f64 y #s(literal -1/2 binary64) #s(literal 1/4 binary64)))))
(*.f64 x (/.f64 (+.f64 (pow.f64 y #s(literal 3 binary64)) #s(literal 1/8 binary64)) (+.f64 #s(literal 1/4 binary64) (*.f64 y (+.f64 y #s(literal -1/2 binary64))))))
(/.f64 (*.f64 (fma.f64 y y #s(literal -1/4 binary64)) x) (+.f64 y #s(literal -1/2 binary64)))
(*.f64 x (/.f64 (fma.f64 y y #s(literal -1/4 binary64)) (+.f64 y #s(literal -1/2 binary64))))
(*.f64 (fma.f64 y y #s(literal -1/4 binary64)) (/.f64 x (+.f64 y #s(literal -1/2 binary64))))
(pow.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64))) #s(literal 1 binary64))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (-.f64 y #s(literal -1/2 binary64)))
(pow.f64 (cbrt.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64)))) #s(literal 3 binary64))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (-.f64 y #s(literal -1/2 binary64)))
(pow.f64 (pow.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64))) #s(literal 2 binary64)) #s(literal 1/2 binary64))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (-.f64 y #s(literal -1/2 binary64)))
(pow.f64 (pow.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64))) #s(literal 3 binary64)) #s(literal 1/3 binary64))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (-.f64 y #s(literal -1/2 binary64)))
(pow.f64 (sqrt.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64)))) #s(literal 2 binary64))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (-.f64 y #s(literal -1/2 binary64)))
(pow.f64 (E.f64) (log.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64)))))
(pow.f64 (E.f64) (log.f64 (*.f64 x (+.f64 #s(literal 1/2 binary64) y))))
(pow.f64 (E.f64) (log.f64 (*.f64 x (-.f64 y #s(literal -1/2 binary64)))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64))))) #s(literal 2 binary64))) (cbrt.f64 (log.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64))))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 x (+.f64 #s(literal 1/2 binary64) y)))) #s(literal 2 binary64))) (cbrt.f64 (log.f64 (*.f64 x (+.f64 #s(literal 1/2 binary64) y)))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 x (-.f64 y #s(literal -1/2 binary64))))) #s(literal 2 binary64))) (cbrt.f64 (log.f64 (*.f64 x (-.f64 y #s(literal -1/2 binary64))))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64)))))) (sqrt.f64 (log.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64))))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 x (+.f64 #s(literal 1/2 binary64) y))))) (sqrt.f64 (log.f64 (*.f64 x (+.f64 #s(literal 1/2 binary64) y)))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 x (-.f64 y #s(literal -1/2 binary64)))))) (sqrt.f64 (log.f64 (*.f64 x (-.f64 y #s(literal -1/2 binary64))))))
(sqrt.f64 (pow.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64))) #s(literal 2 binary64)))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (-.f64 y #s(literal -1/2 binary64)))
(log.f64 (pow.f64 (exp.f64 (+.f64 y #s(literal 1/2 binary64))) x))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (-.f64 y #s(literal -1/2 binary64)))
(cbrt.f64 (pow.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64))) #s(literal 3 binary64)))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (-.f64 y #s(literal -1/2 binary64)))
(expm1.f64 (log1p.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64)))))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (-.f64 y #s(literal -1/2 binary64)))
(log1p.f64 (expm1.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64)))))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (-.f64 y #s(literal -1/2 binary64)))
(exp.f64 (log.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64)))))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (-.f64 y #s(literal -1/2 binary64)))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64))))) #s(literal 3 binary64)))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (-.f64 y #s(literal -1/2 binary64)))
(exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64))) #s(literal 3 binary64))) #s(literal 1/3 binary64)))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (-.f64 y #s(literal -1/2 binary64)))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 x (+.f64 y #s(literal 1/2 binary64))))) #s(literal 2 binary64)))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (-.f64 y #s(literal -1/2 binary64)))
(fma.f64 x y (*.f64 x #s(literal 1/2 binary64)))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (-.f64 y #s(literal -1/2 binary64)))
(fma.f64 y x (*.f64 #s(literal 1/2 binary64) x))
(*.f64 x (+.f64 #s(literal 1/2 binary64) y))
(*.f64 x (-.f64 y #s(literal -1/2 binary64)))

eval16.0ms (0.7%)

Compiler

Compiled 631 to 427 computations (32.3% saved)

prune8.0ms (0.4%)

Pruning

4 alts after pruning (2 fresh and 2 done)

PrunedKeptTotal
New49251
Fresh000
Picked022
Done000
Total49453
Accuracy
100.0%
Counts
53 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(+.f64 (/.f64 x #s(literal 2 binary64)) (+.f64 (*.f64 x y) z))
100.0%
(+.f64 (*.f64 x (-.f64 y #s(literal -1/2 binary64))) z)
77.8%
(+.f64 (*.f64 x y) z)
60.1%
(+.f64 (*.f64 x #s(literal 1/2 binary64)) z)
Compiler

Compiled 38 to 26 computations (31.6% saved)

localize79.0ms (3.6%)

Results
70.0ms256×256valid
Compiler

Compiled 26 to 12 computations (53.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 55.0ms
ival-mult: 52.0ms (93.7% of total)
ival-add: 3.0ms (5.4% of total)
const: 1.0ms (1.8% of total)

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 #s(literal 2 binary64)) (+.f64 (*.f64 x y) z))
100.0%
(+.f64 (*.f64 x (-.f64 y #s(literal -1/2 binary64))) z)
77.8%
(+.f64 (*.f64 x y) z)
60.1%
(+.f64 (*.f64 x #s(literal 1/2 binary64)) z)
Compiler

Compiled 76 to 46 computations (39.5% saved)

regimes12.0ms (0.6%)

Counts
5 → 1
Calls
Call 1
Inputs
(+.f64 (*.f64 x #s(literal 1/2 binary64)) z)
(+.f64 (*.f64 x y) z)
(+.f64 (*.f64 x (-.f64 y #s(literal -1/2 binary64))) z)
(+.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) z)
(+.f64 (/.f64 x #s(literal 2 binary64)) (+.f64 (*.f64 x y) z))
Outputs
(+.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) z)
Calls

5 calls:

3.0ms
(+.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) z)
2.0ms
x
2.0ms
y
2.0ms
z
2.0ms
(+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x))
Results
AccuracySegmentsBranch
100.0%1x
100.0%1y
100.0%1z
100.0%1(+.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) z)
100.0%1(+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x))
Compiler

Compiled 34 to 24 computations (29.4% saved)

regimes6.0ms (0.3%)

Counts
3 → 1
Calls
Call 1
Inputs
(+.f64 (*.f64 x #s(literal 1/2 binary64)) z)
(+.f64 (*.f64 x y) z)
(+.f64 (*.f64 x (-.f64 y #s(literal -1/2 binary64))) z)
Outputs
(+.f64 (*.f64 x (-.f64 y #s(literal -1/2 binary64))) z)
Calls

3 calls:

2.0ms
z
2.0ms
y
2.0ms
x
Results
AccuracySegmentsBranch
100.0%1x
100.0%1y
100.0%1z
Compiler

Compiled 12 to 9 computations (25% saved)

regimes8.0ms (0.4%)

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

3 calls:

4.0ms
y
2.0ms
x
2.0ms
z
Results
AccuracySegmentsBranch
80.8%3x
98.3%3y
79.7%3z
Compiler

Compiled 12 to 9 computations (25% saved)

regimes2.0ms (0.1%)

Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

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

3 calls:

0.0ms
z
0.0ms
y
0.0ms
x
Results
AccuracySegmentsBranch
60.1%1z
60.1%1x
60.1%1y
Compiler

Compiled 12 to 9 computations (25% saved)

bsearch35.0ms (1.6%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
19.0ms
0.014624873479263362
7.672387161358499
13.0ms
-5.567282645909579
-3.890238971348031e-5
Results
19.0ms272×0valid
Compiler

Compiled 324 to 234 computations (27.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 11.0ms
ival-div: 5.0ms (47.4% of total)
ival-add: 3.0ms (28.4% of total)
ival-mult: 2.0ms (19% of total)
const: 0.0ms (0% of total)
backward-pass: 0.0ms (0% of total)

simplify5.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
030156
147156
252156
354156
455156
Stop Event
saturated
Calls
Call 1
Inputs
(+.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) z)
(+.f64 (*.f64 x (-.f64 y #s(literal -1/2 binary64))) z)
(if (<=.f64 y #s(literal -1/2 binary64)) (+.f64 (*.f64 x y) z) (if (<=.f64 y #s(literal 1/2 binary64)) (+.f64 (*.f64 x #s(literal 1/2 binary64)) z) (+.f64 (*.f64 x y) z)))
(+.f64 (*.f64 x #s(literal 1/2 binary64)) z)
Outputs
(+.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) z)
(+.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 x y)) z)
(+.f64 (*.f64 x (-.f64 y #s(literal -1/2 binary64))) z)
(+.f64 z (*.f64 x (-.f64 y #s(literal -1/2 binary64))))
(if (<=.f64 y #s(literal -1/2 binary64)) (+.f64 (*.f64 x y) z) (if (<=.f64 y #s(literal 1/2 binary64)) (+.f64 (*.f64 x #s(literal 1/2 binary64)) z) (+.f64 (*.f64 x y) z)))
(if (or (<=.f64 y #s(literal -1/2 binary64)) (not (<=.f64 y #s(literal 1/2 binary64)))) (+.f64 (*.f64 x y) z) (+.f64 z (*.f64 x #s(literal 1/2 binary64))))
(+.f64 (*.f64 x #s(literal 1/2 binary64)) z)
(+.f64 z (*.f64 x #s(literal 1/2 binary64)))

soundness381.0ms (17.5%)

Rules
1010×fma-neg
531×fma-define
528×fma-neg
421×times-frac
256×associate-+r+
Iterations

Useful iterations: 10 (0.0ms)

IterNodesCost
01051278
12061278
25051276
319691276
439181276
040435
199371
2275371
3801323
41690297
52822292
63298292
73484292
83535292
93543292
103543276
114081276
124081276
Stop Event
done
saturated
node limit
Compiler

Compiled 169 to 97 computations (42.6% saved)

preprocess46.0ms (2.1%)

Compiler

Compiled 110 to 68 computations (38.2% saved)

end0.0ms (0%)

Profiling

Loading profile data...