Data.Random.Distribution.Normal:normalTail from random-fu-0.2.6.2

Time bar (total: 1.6s)

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 10 to 6 computations (40% saved)

sample855.0ms (54.3%)

Results
629.0ms6206×body256valid
214.0ms2050×body256infinite
Bogosity

preprocess46.0ms (2.9%)

Algorithm
egg-herbie
Rules
754×fma-def
136×fma-neg
110×sub-neg
100×distribute-rgt-in
96×associate-+l-
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01879
14875
211175
328475
452975
580475
6108675
7116675
8118075
Stop Event
saturated
Calls
Call 1
Inputs
(+.f64 (+.f64 (*.f64 x x) y) y)
(+.f64 (+.f64 (*.f64 x x) y) y)
(+.f64 (+.f64 (*.f64 (neg.f64 x) (neg.f64 x)) y) y)
(+.f64 (+.f64 (*.f64 x x) (neg.f64 y)) (neg.f64 y))
(+.f64 (+.f64 (*.f64 y y) x) x)
Outputs
(+.f64 (+.f64 (*.f64 x x) y) y)
(+.f64 y (fma.f64 x x y))
(fma.f64 x x (+.f64 y y))
(fma.f64 2 y (*.f64 x x))
(fma.f64 y 2 (*.f64 x x))
(+.f64 (+.f64 (*.f64 x x) y) y)
(+.f64 y (fma.f64 x x y))
(fma.f64 x x (+.f64 y y))
(fma.f64 2 y (*.f64 x x))
(fma.f64 y 2 (*.f64 x x))
(+.f64 (+.f64 (*.f64 (neg.f64 x) (neg.f64 x)) y) y)
(+.f64 y (fma.f64 x x y))
(fma.f64 x x (+.f64 y y))
(fma.f64 2 y (*.f64 x x))
(fma.f64 y 2 (*.f64 x x))
(+.f64 (+.f64 (*.f64 x x) (neg.f64 y)) (neg.f64 y))
(-.f64 (-.f64 (*.f64 x x) y) y)
(fma.f64 x x (*.f64 y -2))
(+.f64 (+.f64 (*.f64 y y) x) x)
(+.f64 x (fma.f64 y y x))
Symmetry

(abs x)

Compiler

Compiled 9 to 5 computations (44.4% saved)

eval1.0ms (0%)

Compiler

Compiled 26 to 11 computations (57.7% saved)

prune2.0ms (0.1%)

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

Compiled 34 to 18 computations (47.1% saved)

localize33.0ms (2.1%)

Localize:

Found 1 expressions with local error:

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

Compiled 31 to 8 computations (74.2% saved)

series3.0ms (0.2%)

Counts
1 → 24
Calls

6 calls:

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

rewrite60.0ms (3.8%)

Algorithm
batch-egg-rewrite
Rules
1914×pow1
1784×add-exp-log
1784×log1p-expm1-u
1784×expm1-log1p-u
178×add-sqr-sqrt
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0715
116215
2242815
Stop Event
node limit
Counts
1 → 39
Calls
Call 1
Inputs
(+.f64 (+.f64 (*.f64 x x) y) y)
Outputs
(-.f64 (+.f64 1 (+.f64 y (fma.f64 x x y))) 1)
(-.f64 (/.f64 (pow.f64 (fma.f64 x x y) 2) (-.f64 (fma.f64 x x y) y)) (/.f64 (*.f64 y y) (-.f64 (fma.f64 x x y) y)))
(*.f64 (+.f64 y (fma.f64 x x y)) 1)
(*.f64 1 (+.f64 y (fma.f64 x x y)))
(*.f64 (cbrt.f64 (+.f64 y (fma.f64 x x y))) (pow.f64 (cbrt.f64 (+.f64 y (fma.f64 x x y))) 2))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 y (fma.f64 x x y))) 2) (cbrt.f64 (+.f64 y (fma.f64 x x y))))
(*.f64 (sqrt.f64 (+.f64 y (fma.f64 x x y))) (sqrt.f64 (+.f64 y (fma.f64 x x y))))
(*.f64 (+.f64 (pow.f64 (fma.f64 x x y) 3) (pow.f64 y 3)) (/.f64 1 (+.f64 (pow.f64 (fma.f64 x x y) 2) (*.f64 y (-.f64 y (fma.f64 x x y))))))
(*.f64 (-.f64 (pow.f64 (fma.f64 x x y) 2) (*.f64 y y)) (/.f64 1 (-.f64 (fma.f64 x x y) y)))
(/.f64 1 (/.f64 (+.f64 (pow.f64 (fma.f64 x x y) 2) (*.f64 y (-.f64 y (fma.f64 x x y)))) (+.f64 (pow.f64 (fma.f64 x x y) 3) (pow.f64 y 3))))
(/.f64 1 (/.f64 (-.f64 (fma.f64 x x y) y) (-.f64 (pow.f64 (fma.f64 x x y) 2) (*.f64 y y))))
(/.f64 (+.f64 (pow.f64 (fma.f64 x x y) 3) (pow.f64 y 3)) (+.f64 (pow.f64 (fma.f64 x x y) 2) (*.f64 y (-.f64 y (fma.f64 x x y)))))
(/.f64 (+.f64 (pow.f64 (fma.f64 x x y) 3) (pow.f64 y 3)) (+.f64 (*.f64 y y) (-.f64 (pow.f64 (fma.f64 x x y) 2) (*.f64 y (fma.f64 x x y)))))
(/.f64 (-.f64 (pow.f64 (fma.f64 x x y) 2) (*.f64 y y)) (-.f64 (fma.f64 x x y) y))
(/.f64 (neg.f64 (+.f64 (pow.f64 (fma.f64 x x y) 3) (pow.f64 y 3))) (neg.f64 (+.f64 (pow.f64 (fma.f64 x x y) 2) (*.f64 y (-.f64 y (fma.f64 x x y))))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (fma.f64 x x y) 2) (*.f64 y y))) (neg.f64 (-.f64 (fma.f64 x x y) y)))
(/.f64 (+.f64 (pow.f64 x 6) (pow.f64 (+.f64 y y) 3)) (+.f64 (pow.f64 x 4) (-.f64 (*.f64 (+.f64 y y) (+.f64 y y)) (*.f64 (*.f64 x x) (+.f64 y y)))))
(/.f64 (-.f64 (pow.f64 x 4) (*.f64 (+.f64 y y) (+.f64 y y))) (-.f64 (*.f64 x x) (+.f64 y y)))
(/.f64 (-.f64 (*.f64 y y) (pow.f64 (fma.f64 x x y) 2)) (-.f64 y (fma.f64 x x y)))
(pow.f64 (+.f64 y (fma.f64 x x y)) 1)
(pow.f64 (cbrt.f64 (+.f64 y (fma.f64 x x y))) 3)
(pow.f64 (pow.f64 (+.f64 y (fma.f64 x x y)) 3) 1/3)
(pow.f64 (sqrt.f64 (+.f64 y (fma.f64 x x y))) 2)
(sqrt.f64 (pow.f64 (+.f64 y (fma.f64 x x y)) 2))
(log.f64 (exp.f64 (+.f64 y (fma.f64 x x y))))
(cbrt.f64 (pow.f64 (+.f64 y (fma.f64 x x y)) 3))
(expm1.f64 (log1p.f64 (+.f64 y (fma.f64 x x y))))
(exp.f64 (log.f64 (+.f64 y (fma.f64 x x y))))
(exp.f64 (*.f64 (log.f64 (+.f64 y (fma.f64 x x y))) 1))
(log1p.f64 (expm1.f64 (+.f64 y (fma.f64 x x y))))
(fma.f64 x x (+.f64 y y))
(fma.f64 1 (*.f64 x x) (+.f64 y y))
(fma.f64 1 y (fma.f64 x x y))
(fma.f64 1 (fma.f64 x x y) y)
(fma.f64 (pow.f64 (cbrt.f64 (fma.f64 x x y)) 2) (cbrt.f64 (fma.f64 x x y)) y)
(fma.f64 (cbrt.f64 (*.f64 y y)) (cbrt.f64 y) (fma.f64 x x y))
(fma.f64 (cbrt.f64 (pow.f64 x 4)) (cbrt.f64 (*.f64 x x)) (+.f64 y y))
(fma.f64 (hypot.f64 x (sqrt.f64 y)) (hypot.f64 x (sqrt.f64 y)) y)
(fma.f64 (sqrt.f64 y) (sqrt.f64 y) (fma.f64 x x y))

simplify66.0ms (4.2%)

Algorithm
egg-herbie
Rules
1706×fma-neg
1006×div-sub
926×associate-*r*
880×associate-*l*
762×fma-def
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01111543
12931479
29861405
355631405
Stop Event
node limit
Counts
63 → 56
Calls
Call 1
Inputs
(*.f64 2 y)
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(*.f64 2 y)
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(*.f64 2 y)
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(-.f64 (+.f64 1 (+.f64 y (fma.f64 x x y))) 1)
(-.f64 (/.f64 (pow.f64 (fma.f64 x x y) 2) (-.f64 (fma.f64 x x y) y)) (/.f64 (*.f64 y y) (-.f64 (fma.f64 x x y) y)))
(*.f64 (+.f64 y (fma.f64 x x y)) 1)
(*.f64 1 (+.f64 y (fma.f64 x x y)))
(*.f64 (cbrt.f64 (+.f64 y (fma.f64 x x y))) (pow.f64 (cbrt.f64 (+.f64 y (fma.f64 x x y))) 2))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 y (fma.f64 x x y))) 2) (cbrt.f64 (+.f64 y (fma.f64 x x y))))
(*.f64 (sqrt.f64 (+.f64 y (fma.f64 x x y))) (sqrt.f64 (+.f64 y (fma.f64 x x y))))
(*.f64 (+.f64 (pow.f64 (fma.f64 x x y) 3) (pow.f64 y 3)) (/.f64 1 (+.f64 (pow.f64 (fma.f64 x x y) 2) (*.f64 y (-.f64 y (fma.f64 x x y))))))
(*.f64 (-.f64 (pow.f64 (fma.f64 x x y) 2) (*.f64 y y)) (/.f64 1 (-.f64 (fma.f64 x x y) y)))
(/.f64 1 (/.f64 (+.f64 (pow.f64 (fma.f64 x x y) 2) (*.f64 y (-.f64 y (fma.f64 x x y)))) (+.f64 (pow.f64 (fma.f64 x x y) 3) (pow.f64 y 3))))
(/.f64 1 (/.f64 (-.f64 (fma.f64 x x y) y) (-.f64 (pow.f64 (fma.f64 x x y) 2) (*.f64 y y))))
(/.f64 (+.f64 (pow.f64 (fma.f64 x x y) 3) (pow.f64 y 3)) (+.f64 (pow.f64 (fma.f64 x x y) 2) (*.f64 y (-.f64 y (fma.f64 x x y)))))
(/.f64 (+.f64 (pow.f64 (fma.f64 x x y) 3) (pow.f64 y 3)) (+.f64 (*.f64 y y) (-.f64 (pow.f64 (fma.f64 x x y) 2) (*.f64 y (fma.f64 x x y)))))
(/.f64 (-.f64 (pow.f64 (fma.f64 x x y) 2) (*.f64 y y)) (-.f64 (fma.f64 x x y) y))
(/.f64 (neg.f64 (+.f64 (pow.f64 (fma.f64 x x y) 3) (pow.f64 y 3))) (neg.f64 (+.f64 (pow.f64 (fma.f64 x x y) 2) (*.f64 y (-.f64 y (fma.f64 x x y))))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (fma.f64 x x y) 2) (*.f64 y y))) (neg.f64 (-.f64 (fma.f64 x x y) y)))
(/.f64 (+.f64 (pow.f64 x 6) (pow.f64 (+.f64 y y) 3)) (+.f64 (pow.f64 x 4) (-.f64 (*.f64 (+.f64 y y) (+.f64 y y)) (*.f64 (*.f64 x x) (+.f64 y y)))))
(/.f64 (-.f64 (pow.f64 x 4) (*.f64 (+.f64 y y) (+.f64 y y))) (-.f64 (*.f64 x x) (+.f64 y y)))
(/.f64 (-.f64 (*.f64 y y) (pow.f64 (fma.f64 x x y) 2)) (-.f64 y (fma.f64 x x y)))
(pow.f64 (+.f64 y (fma.f64 x x y)) 1)
(pow.f64 (cbrt.f64 (+.f64 y (fma.f64 x x y))) 3)
(pow.f64 (pow.f64 (+.f64 y (fma.f64 x x y)) 3) 1/3)
(pow.f64 (sqrt.f64 (+.f64 y (fma.f64 x x y))) 2)
(sqrt.f64 (pow.f64 (+.f64 y (fma.f64 x x y)) 2))
(log.f64 (exp.f64 (+.f64 y (fma.f64 x x y))))
(cbrt.f64 (pow.f64 (+.f64 y (fma.f64 x x y)) 3))
(expm1.f64 (log1p.f64 (+.f64 y (fma.f64 x x y))))
(exp.f64 (log.f64 (+.f64 y (fma.f64 x x y))))
(exp.f64 (*.f64 (log.f64 (+.f64 y (fma.f64 x x y))) 1))
(log1p.f64 (expm1.f64 (+.f64 y (fma.f64 x x y))))
(fma.f64 x x (+.f64 y y))
(fma.f64 1 (*.f64 x x) (+.f64 y y))
(fma.f64 1 y (fma.f64 x x y))
(fma.f64 1 (fma.f64 x x y) y)
(fma.f64 (pow.f64 (cbrt.f64 (fma.f64 x x y)) 2) (cbrt.f64 (fma.f64 x x y)) y)
(fma.f64 (cbrt.f64 (*.f64 y y)) (cbrt.f64 y) (fma.f64 x x y))
(fma.f64 (cbrt.f64 (pow.f64 x 4)) (cbrt.f64 (*.f64 x x)) (+.f64 y y))
(fma.f64 (hypot.f64 x (sqrt.f64 y)) (hypot.f64 x (sqrt.f64 y)) y)
(fma.f64 (sqrt.f64 y) (sqrt.f64 y) (fma.f64 x x y))
Outputs
(*.f64 2 y)
(+.f64 y y)
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(fma.f64 x x (+.f64 y y))
(+.f64 y (fma.f64 x x y))
(fma.f64 2 y (*.f64 x x))
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(fma.f64 x x (+.f64 y y))
(+.f64 y (fma.f64 x x y))
(fma.f64 2 y (*.f64 x x))
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(fma.f64 x x (+.f64 y y))
(+.f64 y (fma.f64 x x y))
(fma.f64 2 y (*.f64 x x))
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(fma.f64 x x (+.f64 y y))
(+.f64 y (fma.f64 x x y))
(fma.f64 2 y (*.f64 x x))
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(fma.f64 x x (+.f64 y y))
(+.f64 y (fma.f64 x x y))
(fma.f64 2 y (*.f64 x x))
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(fma.f64 x x (+.f64 y y))
(+.f64 y (fma.f64 x x y))
(fma.f64 2 y (*.f64 x x))
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(fma.f64 x x (+.f64 y y))
(+.f64 y (fma.f64 x x y))
(fma.f64 2 y (*.f64 x x))
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(fma.f64 x x (+.f64 y y))
(+.f64 y (fma.f64 x x y))
(fma.f64 2 y (*.f64 x x))
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(fma.f64 x x (+.f64 y y))
(+.f64 y (fma.f64 x x y))
(fma.f64 2 y (*.f64 x x))
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(fma.f64 x x (+.f64 y y))
(+.f64 y (fma.f64 x x y))
(fma.f64 2 y (*.f64 x x))
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(fma.f64 x x (+.f64 y y))
(+.f64 y (fma.f64 x x y))
(fma.f64 2 y (*.f64 x x))
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(fma.f64 x x (+.f64 y y))
(+.f64 y (fma.f64 x x y))
(fma.f64 2 y (*.f64 x x))
(*.f64 2 y)
(+.f64 y y)
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(fma.f64 x x (+.f64 y y))
(+.f64 y (fma.f64 x x y))
(fma.f64 2 y (*.f64 x x))
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(fma.f64 x x (+.f64 y y))
(+.f64 y (fma.f64 x x y))
(fma.f64 2 y (*.f64 x x))
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(fma.f64 x x (+.f64 y y))
(+.f64 y (fma.f64 x x y))
(fma.f64 2 y (*.f64 x x))
(*.f64 2 y)
(+.f64 y y)
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(fma.f64 x x (+.f64 y y))
(+.f64 y (fma.f64 x x y))
(fma.f64 2 y (*.f64 x x))
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(fma.f64 x x (+.f64 y y))
(+.f64 y (fma.f64 x x y))
(fma.f64 2 y (*.f64 x x))
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(fma.f64 x x (+.f64 y y))
(+.f64 y (fma.f64 x x y))
(fma.f64 2 y (*.f64 x x))
(-.f64 (+.f64 1 (+.f64 y (fma.f64 x x y))) 1)
(fma.f64 x x (+.f64 y y))
(+.f64 y (fma.f64 x x y))
(fma.f64 2 y (*.f64 x x))
(-.f64 (/.f64 (pow.f64 (fma.f64 x x y) 2) (-.f64 (fma.f64 x x y) y)) (/.f64 (*.f64 y y) (-.f64 (fma.f64 x x y) y)))
(/.f64 (-.f64 (pow.f64 (fma.f64 x x y) 2) (*.f64 y y)) (-.f64 (fma.f64 x x y) y))
(/.f64 (-.f64 (pow.f64 (fma.f64 x x y) 2) (*.f64 y y)) (fma.f64 x x 0))
(*.f64 (+.f64 y (fma.f64 x x y)) 1)
(fma.f64 x x (+.f64 y y))
(+.f64 y (fma.f64 x x y))
(fma.f64 2 y (*.f64 x x))
(*.f64 1 (+.f64 y (fma.f64 x x y)))
(fma.f64 x x (+.f64 y y))
(+.f64 y (fma.f64 x x y))
(fma.f64 2 y (*.f64 x x))
(*.f64 (cbrt.f64 (+.f64 y (fma.f64 x x y))) (pow.f64 (cbrt.f64 (+.f64 y (fma.f64 x x y))) 2))
(fma.f64 x x (+.f64 y y))
(+.f64 y (fma.f64 x x y))
(fma.f64 2 y (*.f64 x x))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 y (fma.f64 x x y))) 2) (cbrt.f64 (+.f64 y (fma.f64 x x y))))
(fma.f64 x x (+.f64 y y))
(+.f64 y (fma.f64 x x y))
(fma.f64 2 y (*.f64 x x))
(*.f64 (sqrt.f64 (+.f64 y (fma.f64 x x y))) (sqrt.f64 (+.f64 y (fma.f64 x x y))))
(fma.f64 x x (+.f64 y y))
(+.f64 y (fma.f64 x x y))
(fma.f64 2 y (*.f64 x x))
(*.f64 (+.f64 (pow.f64 (fma.f64 x x y) 3) (pow.f64 y 3)) (/.f64 1 (+.f64 (pow.f64 (fma.f64 x x y) 2) (*.f64 y (-.f64 y (fma.f64 x x y))))))
(/.f64 (*.f64 (+.f64 (pow.f64 (fma.f64 x x y) 3) (pow.f64 y 3)) 1) (+.f64 (pow.f64 (fma.f64 x x y) 2) (*.f64 y (-.f64 y (fma.f64 x x y)))))
(/.f64 (+.f64 (pow.f64 (fma.f64 x x y) 3) (pow.f64 y 3)) (fma.f64 y (-.f64 y (fma.f64 x x y)) (pow.f64 (fma.f64 x x y) 2)))
(/.f64 (+.f64 (pow.f64 (fma.f64 x x y) 3) (pow.f64 y 3)) (fma.f64 y y (*.f64 (fma.f64 x x y) (fma.f64 x x 0))))
(*.f64 (-.f64 (pow.f64 (fma.f64 x x y) 2) (*.f64 y y)) (/.f64 1 (-.f64 (fma.f64 x x y) y)))
(/.f64 (-.f64 (pow.f64 (fma.f64 x x y) 2) (*.f64 y y)) (-.f64 (fma.f64 x x y) y))
(/.f64 (-.f64 (pow.f64 (fma.f64 x x y) 2) (*.f64 y y)) (fma.f64 x x 0))
(/.f64 1 (/.f64 (+.f64 (pow.f64 (fma.f64 x x y) 2) (*.f64 y (-.f64 y (fma.f64 x x y)))) (+.f64 (pow.f64 (fma.f64 x x y) 3) (pow.f64 y 3))))
(/.f64 (*.f64 (+.f64 (pow.f64 (fma.f64 x x y) 3) (pow.f64 y 3)) 1) (+.f64 (pow.f64 (fma.f64 x x y) 2) (*.f64 y (-.f64 y (fma.f64 x x y)))))
(/.f64 (+.f64 (pow.f64 (fma.f64 x x y) 3) (pow.f64 y 3)) (fma.f64 y (-.f64 y (fma.f64 x x y)) (pow.f64 (fma.f64 x x y) 2)))
(/.f64 (+.f64 (pow.f64 (fma.f64 x x y) 3) (pow.f64 y 3)) (fma.f64 y y (*.f64 (fma.f64 x x y) (fma.f64 x x 0))))
(/.f64 1 (/.f64 (-.f64 (fma.f64 x x y) y) (-.f64 (pow.f64 (fma.f64 x x y) 2) (*.f64 y y))))
(/.f64 (-.f64 (pow.f64 (fma.f64 x x y) 2) (*.f64 y y)) (-.f64 (fma.f64 x x y) y))
(/.f64 (-.f64 (pow.f64 (fma.f64 x x y) 2) (*.f64 y y)) (fma.f64 x x 0))
(/.f64 (+.f64 (pow.f64 (fma.f64 x x y) 3) (pow.f64 y 3)) (+.f64 (pow.f64 (fma.f64 x x y) 2) (*.f64 y (-.f64 y (fma.f64 x x y)))))
(/.f64 (*.f64 (+.f64 (pow.f64 (fma.f64 x x y) 3) (pow.f64 y 3)) 1) (+.f64 (pow.f64 (fma.f64 x x y) 2) (*.f64 y (-.f64 y (fma.f64 x x y)))))
(/.f64 (+.f64 (pow.f64 (fma.f64 x x y) 3) (pow.f64 y 3)) (fma.f64 y (-.f64 y (fma.f64 x x y)) (pow.f64 (fma.f64 x x y) 2)))
(/.f64 (+.f64 (pow.f64 (fma.f64 x x y) 3) (pow.f64 y 3)) (fma.f64 y y (*.f64 (fma.f64 x x y) (fma.f64 x x 0))))
(/.f64 (+.f64 (pow.f64 (fma.f64 x x y) 3) (pow.f64 y 3)) (+.f64 (*.f64 y y) (-.f64 (pow.f64 (fma.f64 x x y) 2) (*.f64 y (fma.f64 x x y)))))
(/.f64 (*.f64 (+.f64 (pow.f64 (fma.f64 x x y) 3) (pow.f64 y 3)) 1) (+.f64 (pow.f64 (fma.f64 x x y) 2) (*.f64 y (-.f64 y (fma.f64 x x y)))))
(/.f64 (+.f64 (pow.f64 (fma.f64 x x y) 3) (pow.f64 y 3)) (fma.f64 y (-.f64 y (fma.f64 x x y)) (pow.f64 (fma.f64 x x y) 2)))
(/.f64 (+.f64 (pow.f64 (fma.f64 x x y) 3) (pow.f64 y 3)) (fma.f64 y y (*.f64 (fma.f64 x x y) (fma.f64 x x 0))))
(/.f64 (-.f64 (pow.f64 (fma.f64 x x y) 2) (*.f64 y y)) (-.f64 (fma.f64 x x y) y))
(/.f64 (-.f64 (pow.f64 (fma.f64 x x y) 2) (*.f64 y y)) (fma.f64 x x 0))
(/.f64 (neg.f64 (+.f64 (pow.f64 (fma.f64 x x y) 3) (pow.f64 y 3))) (neg.f64 (+.f64 (pow.f64 (fma.f64 x x y) 2) (*.f64 y (-.f64 y (fma.f64 x x y))))))
(/.f64 (*.f64 (+.f64 (pow.f64 (fma.f64 x x y) 3) (pow.f64 y 3)) 1) (+.f64 (pow.f64 (fma.f64 x x y) 2) (*.f64 y (-.f64 y (fma.f64 x x y)))))
(/.f64 (+.f64 (pow.f64 (fma.f64 x x y) 3) (pow.f64 y 3)) (fma.f64 y (-.f64 y (fma.f64 x x y)) (pow.f64 (fma.f64 x x y) 2)))
(/.f64 (+.f64 (pow.f64 (fma.f64 x x y) 3) (pow.f64 y 3)) (fma.f64 y y (*.f64 (fma.f64 x x y) (fma.f64 x x 0))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (fma.f64 x x y) 2) (*.f64 y y))) (neg.f64 (-.f64 (fma.f64 x x y) y)))
(/.f64 (-.f64 (pow.f64 (fma.f64 x x y) 2) (*.f64 y y)) (-.f64 (fma.f64 x x y) y))
(/.f64 (-.f64 (pow.f64 (fma.f64 x x y) 2) (*.f64 y y)) (fma.f64 x x 0))
(/.f64 (+.f64 (pow.f64 x 6) (pow.f64 (+.f64 y y) 3)) (+.f64 (pow.f64 x 4) (-.f64 (*.f64 (+.f64 y y) (+.f64 y y)) (*.f64 (*.f64 x x) (+.f64 y y)))))
(/.f64 (+.f64 (pow.f64 x 6) (pow.f64 (+.f64 y y) 3)) (+.f64 (pow.f64 x 4) (*.f64 (+.f64 y y) (-.f64 (+.f64 y y) (*.f64 x x)))))
(/.f64 (+.f64 (pow.f64 x 6) (*.f64 (pow.f64 y 3) 8)) (fma.f64 (+.f64 y y) (+.f64 y (-.f64 y (*.f64 x x))) (pow.f64 x 4)))
(/.f64 (fma.f64 (pow.f64 y 3) 8 (pow.f64 x 6)) (fma.f64 (+.f64 y y) (+.f64 y (-.f64 y (*.f64 x x))) (pow.f64 x 4)))
(/.f64 (-.f64 (pow.f64 x 4) (*.f64 (+.f64 y y) (+.f64 y y))) (-.f64 (*.f64 x x) (+.f64 y y)))
(/.f64 (-.f64 (pow.f64 x 4) (*.f64 (*.f64 y y) 4)) (fma.f64 x x (*.f64 y -2)))
(/.f64 (fma.f64 (*.f64 y -4) y (pow.f64 x 4)) (fma.f64 y -2 (*.f64 x x)))
(/.f64 (-.f64 (*.f64 y y) (pow.f64 (fma.f64 x x y) 2)) (-.f64 y (fma.f64 x x y)))
(/.f64 (-.f64 (pow.f64 (fma.f64 x x y) 2) (*.f64 y y)) (-.f64 (fma.f64 x x y) y))
(/.f64 (-.f64 (pow.f64 (fma.f64 x x y) 2) (*.f64 y y)) (fma.f64 x x 0))
(pow.f64 (+.f64 y (fma.f64 x x y)) 1)
(fma.f64 x x (+.f64 y y))
(+.f64 y (fma.f64 x x y))
(fma.f64 2 y (*.f64 x x))
(pow.f64 (cbrt.f64 (+.f64 y (fma.f64 x x y))) 3)
(fma.f64 x x (+.f64 y y))
(+.f64 y (fma.f64 x x y))
(fma.f64 2 y (*.f64 x x))
(pow.f64 (pow.f64 (+.f64 y (fma.f64 x x y)) 3) 1/3)
(fma.f64 x x (+.f64 y y))
(+.f64 y (fma.f64 x x y))
(fma.f64 2 y (*.f64 x x))
(pow.f64 (sqrt.f64 (+.f64 y (fma.f64 x x y))) 2)
(fma.f64 x x (+.f64 y y))
(+.f64 y (fma.f64 x x y))
(fma.f64 2 y (*.f64 x x))
(sqrt.f64 (pow.f64 (+.f64 y (fma.f64 x x y)) 2))
(fma.f64 x x (+.f64 y y))
(+.f64 y (fma.f64 x x y))
(fma.f64 2 y (*.f64 x x))
(log.f64 (exp.f64 (+.f64 y (fma.f64 x x y))))
(fma.f64 x x (+.f64 y y))
(+.f64 y (fma.f64 x x y))
(fma.f64 2 y (*.f64 x x))
(cbrt.f64 (pow.f64 (+.f64 y (fma.f64 x x y)) 3))
(fma.f64 x x (+.f64 y y))
(+.f64 y (fma.f64 x x y))
(fma.f64 2 y (*.f64 x x))
(expm1.f64 (log1p.f64 (+.f64 y (fma.f64 x x y))))
(fma.f64 x x (+.f64 y y))
(+.f64 y (fma.f64 x x y))
(fma.f64 2 y (*.f64 x x))
(exp.f64 (log.f64 (+.f64 y (fma.f64 x x y))))
(fma.f64 x x (+.f64 y y))
(+.f64 y (fma.f64 x x y))
(fma.f64 2 y (*.f64 x x))
(exp.f64 (*.f64 (log.f64 (+.f64 y (fma.f64 x x y))) 1))
(fma.f64 x x (+.f64 y y))
(+.f64 y (fma.f64 x x y))
(fma.f64 2 y (*.f64 x x))
(log1p.f64 (expm1.f64 (+.f64 y (fma.f64 x x y))))
(fma.f64 x x (+.f64 y y))
(+.f64 y (fma.f64 x x y))
(fma.f64 2 y (*.f64 x x))
(fma.f64 x x (+.f64 y y))
(+.f64 y (fma.f64 x x y))
(fma.f64 2 y (*.f64 x x))
(fma.f64 1 (*.f64 x x) (+.f64 y y))
(fma.f64 x x (+.f64 y y))
(+.f64 y (fma.f64 x x y))
(fma.f64 2 y (*.f64 x x))
(fma.f64 1 y (fma.f64 x x y))
(fma.f64 x x (+.f64 y y))
(+.f64 y (fma.f64 x x y))
(fma.f64 2 y (*.f64 x x))
(fma.f64 1 (fma.f64 x x y) y)
(fma.f64 x x (+.f64 y y))
(+.f64 y (fma.f64 x x y))
(fma.f64 2 y (*.f64 x x))
(fma.f64 (pow.f64 (cbrt.f64 (fma.f64 x x y)) 2) (cbrt.f64 (fma.f64 x x y)) y)
(fma.f64 x x (+.f64 y y))
(+.f64 y (fma.f64 x x y))
(fma.f64 2 y (*.f64 x x))
(fma.f64 (cbrt.f64 (*.f64 y y)) (cbrt.f64 y) (fma.f64 x x y))
(fma.f64 (cbrt.f64 (pow.f64 x 4)) (cbrt.f64 (*.f64 x x)) (+.f64 y y))
(+.f64 y (fma.f64 (cbrt.f64 (pow.f64 x 4)) (cbrt.f64 (*.f64 x x)) y))
(fma.f64 (hypot.f64 x (sqrt.f64 y)) (hypot.f64 x (sqrt.f64 y)) y)
(fma.f64 x x (+.f64 y y))
(+.f64 y (fma.f64 x x y))
(fma.f64 2 y (*.f64 x x))
(fma.f64 (sqrt.f64 y) (sqrt.f64 y) (fma.f64 x x y))
(fma.f64 x x (+.f64 y y))
(+.f64 y (fma.f64 x x y))
(fma.f64 2 y (*.f64 x x))

eval11.0ms (0.7%)

Compiler

Compiled 795 to 281 computations (64.7% saved)

prune18.0ms (1.1%)

Pruning

4 alts after pruning (2 fresh and 2 done)

PrunedKeptTotal
New54256
Fresh000
Picked022
Done000
Total54458
Accuracy
100.0%
Counts
58 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fma.f64 x x (+.f64 y y))
100.0%
(+.f64 (+.f64 (*.f64 x x) y) y)
53.4%
(+.f64 y y)
48.9%
(*.f64 x x)
100.0%
(fma.f64 x x (+.f64 y y))
100.0%
(+.f64 (+.f64 (*.f64 x x) y) y)
53.4%
(+.f64 y y)
48.9%
(*.f64 x x)
Compiler

Compiled 54 to 30 computations (44.4% saved)

localize21.0ms (1.3%)

Compiler

Compiled 11 to 5 computations (54.5% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune2.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%
(fma.f64 x x (+.f64 y y))
100.0%
(+.f64 (+.f64 (*.f64 x x) y) y)
53.4%
(+.f64 y y)
48.9%
(*.f64 x x)
Compiler

Compiled 48 to 22 computations (54.2% saved)

regimes18.0ms (1.2%)

Counts
4 → 1
Calls
Call 1
Inputs
(*.f64 x x)
(+.f64 y y)
(+.f64 (+.f64 (*.f64 x x) y) y)
(fma.f64 x x (+.f64 y y))
Outputs
(fma.f64 x x (+.f64 y y))
Calls

4 calls:

6.0ms
x
4.0ms
(+.f64 (+.f64 (*.f64 x x) y) y)
4.0ms
y
3.0ms
(*.f64 x x)
Results
AccuracySegmentsBranch
100.0%1x
100.0%1y
100.0%1(+.f64 (+.f64 (*.f64 x x) y) y)
100.0%1(*.f64 x x)
Compiler

Compiled 41 to 19 computations (53.7% saved)

regimes15.0ms (0.9%)

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

4 calls:

4.0ms
(+.f64 (+.f64 (*.f64 x x) y) y)
4.0ms
x
4.0ms
y
3.0ms
(*.f64 x x)
Results
AccuracySegmentsBranch
100.0%1x
100.0%1y
100.0%1(+.f64 (+.f64 (*.f64 x x) y) y)
100.0%1(*.f64 x x)
Compiler

Compiled 35 to 18 computations (48.6% saved)

regimes50.0ms (3.1%)

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

3 calls:

21.0ms
(*.f64 x x)
14.0ms
y
14.0ms
x
Results
AccuracySegmentsBranch
89.4%2x
69.9%5y
89.4%2(*.f64 x x)
Compiler

Compiled 19 to 11 computations (42.1% saved)

regimes8.0ms (0.5%)

Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

Counts
1 → 1
Calls
Call 1
Inputs
(*.f64 x x)
Outputs
(*.f64 x x)
Calls

3 calls:

3.0ms
y
3.0ms
x
2.0ms
(*.f64 x x)
Results
AccuracySegmentsBranch
48.9%1y
48.9%1x
48.9%1(*.f64 x x)
Compiler

Compiled 16 to 10 computations (37.5% saved)

bsearch12.0ms (0.8%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
12.0ms
2.227328214259617e-21
7.552195389141701e-18
Results
11.0ms128×body256valid
Compiler

Compiled 94 to 65 computations (30.9% saved)

simplify6.0ms (0.4%)

Algorithm
egg-herbie
Rules
+-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01670
11870
Stop Event
done
saturated
Calls
Call 1
Inputs
(fma.f64 x x (+.f64 y y))
(+.f64 (+.f64 (*.f64 x x) y) y)
(if (<=.f64 (*.f64 x x) 8772904772180445/664613997892457936451903530140172288) (+.f64 y y) (*.f64 x x))
(*.f64 x x)
Outputs
(fma.f64 x x (+.f64 y y))
(+.f64 (+.f64 (*.f64 x x) y) y)
(+.f64 y (+.f64 y (*.f64 x x)))
(if (<=.f64 (*.f64 x x) 8772904772180445/664613997892457936451903530140172288) (+.f64 y y) (*.f64 x x))
(*.f64 x x)
Compiler

Compiled 36 to 19 computations (47.2% saved)

soundness295.0ms (18.7%)

Rules
1706×fma-neg
1706×fma-neg
1006×div-sub
1006×div-sub
926×associate-*r*
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01879
14875
211175
328475
452975
580475
6108675
7116675
8118075
01111543
12931479
29861405
355631405
01111543
12931479
29861405
355631405
Stop Event
node limit
node limit
saturated
Compiler

Compiled 38 to 18 computations (52.6% saved)

end0.0ms (0%)

preprocess52.0ms (3.3%)

Remove

(abs x)

Compiler

Compiled 112 to 48 computations (57.1% saved)

Profiling

Loading profile data...