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

Time bar (total: 858.0ms)

start0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated; 0ms collecting garbage

analyze0.0ms (0%)

Memory
0.7MiB live, 0.7MiB allocated; 0ms collecting garbage
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 9 to 7 computations (22.2% saved)

sample534.0ms (62.2%)

Memory
-33.0MiB live, 888.5MiB allocated; 125ms collecting garbage
Samples
292.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 143.0ms
ival-mult!: 79.0ms (55.3% of total)
ival-add!: 62.0ms (43.4% of total)
adjust: 1.0ms (0.7% of total)
Bogosity

preprocess83.0ms (9.7%)

Memory
-13.4MiB live, 34.0MiB allocated; 2ms collecting garbage
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01748
14845
212243
319942
430942
537942
658742
7137842
8610542
Stop Event
node-limit
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(+.f64 (+.f64 (*.f64 x x) y) y)
Symmetry

(abs x)

Compiler

Compiled 10 to 10 computations (0% saved)

series4.0ms (0.5%)

Memory
11.2MiB live, 11.2MiB allocated; 0ms collecting garbage
Counts
5 → 15
Calls
Call 1
Inputs
(+.f64 (+.f64 (*.f64 x x) y) y)
(+.f64 (*.f64 x x) y)
(*.f64 x x)
x
y
Outputs
#s(approx (+ (+ (* x x) y) y) #s(hole binary64 (* 2 y)))
#s(approx (+ (+ (* x x) y) y) #s(hole binary64 (+ (* 2 y) (pow x 2))))
#s(approx (+ (* x x) y) #s(hole binary64 y))
#s(approx (+ (* x x) y) #s(hole binary64 (+ y (pow x 2))))
#s(approx (* x x) #s(hole binary64 (pow x 2)))
#s(approx x #s(hole binary64 x))
#s(approx (+ (+ (* x x) y) y) #s(hole binary64 (pow x 2)))
#s(approx (+ (+ (* x x) y) y) #s(hole binary64 (* (pow x 2) (+ 1 (* 2 (/ y (pow x 2)))))))
#s(approx (+ (* x x) y) #s(hole binary64 (pow x 2)))
#s(approx (+ (* x x) y) #s(hole binary64 (* (pow x 2) (+ 1 (/ y (pow x 2))))))
#s(approx y #s(hole binary64 y))
#s(approx (+ (+ (* x x) y) y) #s(hole binary64 (* y (+ 2 (/ (pow x 2) y)))))
#s(approx (+ (* x x) y) #s(hole binary64 (* y (+ 1 (/ (pow x 2) y)))))
#s(approx (+ (+ (* x x) y) y) #s(hole binary64 (* -1 (* y (- (* -1 (/ (pow x 2) y)) 2)))))
#s(approx (+ (* x x) y) #s(hole binary64 (* -1 (* y (- (* -1 (/ (pow x 2) y)) 1)))))
Calls

6 calls:

TimeVariablePointExpression
1.0ms
x
@inf
((+ (+ (* x x) y) y) (+ (* x x) y) (* x x) x y)
1.0ms
x
@0
((+ (+ (* x x) y) y) (+ (* x x) y) (* x x) x y)
1.0ms
x
@-inf
((+ (+ (* x x) y) y) (+ (* x x) y) (* x x) x y)
1.0ms
y
@0
((+ (+ (* x x) y) y) (+ (* x x) y) (* x x) x y)
1.0ms
y
@-inf
((+ (+ (* x x) y) y) (+ (* x x) y) (* x x) x y)

rewrite81.0ms (9.4%)

Memory
21.1MiB live, 119.7MiB allocated; 4ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
048204
051200
1230200
01991181
Stop Event
iter-limit
iter-limit
node-limit
iter-limit
Counts
20 → 133
Calls
Call 1
Inputs
(+.f64 (+.f64 (*.f64 x x) y) y)
(+.f64 (*.f64 x x) y)
(*.f64 x x)
x
y
#s(approx (+ (+ (* x x) y) y) #s(hole binary64 (* 2 y)))
#s(approx (+ (+ (* x x) y) y) #s(hole binary64 (+ (* 2 y) (pow x 2))))
#s(approx (+ (* x x) y) #s(hole binary64 y))
#s(approx (+ (* x x) y) #s(hole binary64 (+ y (pow x 2))))
#s(approx (* x x) #s(hole binary64 (pow x 2)))
#s(approx x #s(hole binary64 x))
#s(approx (+ (+ (* x x) y) y) #s(hole binary64 (pow x 2)))
#s(approx (+ (+ (* x x) y) y) #s(hole binary64 (* (pow x 2) (+ 1 (* 2 (/ y (pow x 2)))))))
#s(approx (+ (* x x) y) #s(hole binary64 (pow x 2)))
#s(approx (+ (* x x) y) #s(hole binary64 (* (pow x 2) (+ 1 (/ y (pow x 2))))))
#s(approx y #s(hole binary64 y))
#s(approx (+ (+ (* x x) y) y) #s(hole binary64 (* y (+ 2 (/ (pow x 2) y)))))
#s(approx (+ (* x x) y) #s(hole binary64 (* y (+ 1 (/ (pow x 2) y)))))
#s(approx (+ (+ (* x x) y) y) #s(hole binary64 (* -1 (* y (- (* -1 (/ (pow x 2) y)) 2)))))
#s(approx (+ (* x x) y) #s(hole binary64 (* -1 (* y (- (* -1 (/ (pow x 2) y)) 1)))))
Outputs
(/.f64 (-.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 (*.f64 y y) #s(literal 4 binary64))) (-.f64 (*.f64 x x) (+.f64 y y)))
(/.f64 (-.f64 (*.f64 y y) (*.f64 (fma.f64 x x y) (fma.f64 x x y))) (-.f64 y (fma.f64 x x y)))
(/.f64 (neg.f64 (-.f64 (*.f64 (*.f64 y y) #s(literal 4 binary64)) (*.f64 (*.f64 (*.f64 x x) x) x))) (neg.f64 (+.f64 y (-.f64 y (*.f64 x x)))))
(/.f64 (neg.f64 (*.f64 (+.f64 (fma.f64 x x y) y) (-.f64 (fma.f64 x x y) y))) (neg.f64 (-.f64 (fma.f64 x x y) y)))
(/.f64 (neg.f64 (fma.f64 (*.f64 (*.f64 y y) y) #s(literal 8 binary64) (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x x)))) (neg.f64 (fma.f64 (*.f64 x x) (-.f64 (*.f64 x x) (+.f64 y y)) (*.f64 (*.f64 y y) #s(literal 4 binary64)))))
(/.f64 (neg.f64 (fma.f64 (*.f64 y y) y (pow.f64 (fma.f64 x x y) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (fma.f64 x x y) (fma.f64 x x y) (*.f64 y (-.f64 y (fma.f64 x x y))))))
(/.f64 (-.f64 (*.f64 (*.f64 y y) #s(literal 4 binary64)) (*.f64 (*.f64 (*.f64 x x) x) x)) (+.f64 y (-.f64 y (*.f64 x x))))
(/.f64 (*.f64 (+.f64 (fma.f64 x x y) y) (-.f64 (fma.f64 x x y) y)) (-.f64 (fma.f64 x x y) y))
(/.f64 (fma.f64 (*.f64 (*.f64 y y) y) #s(literal 8 binary64) (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x x))) (fma.f64 (*.f64 (*.f64 x x) x) x (-.f64 (*.f64 (*.f64 y y) #s(literal 4 binary64)) (*.f64 (*.f64 (+.f64 y y) x) x))))
(/.f64 (fma.f64 (*.f64 (*.f64 y y) y) #s(literal 8 binary64) (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x x))) (fma.f64 (*.f64 x x) (-.f64 (*.f64 x x) (+.f64 y y)) (*.f64 (*.f64 y y) #s(literal 4 binary64))))
(/.f64 (fma.f64 (*.f64 y y) y (pow.f64 (fma.f64 x x y) #s(literal 3 binary64))) (fma.f64 y y (-.f64 (*.f64 (fma.f64 x x y) (fma.f64 x x y)) (*.f64 (fma.f64 x x y) y))))
(/.f64 (fma.f64 (*.f64 y y) y (pow.f64 (fma.f64 x x y) #s(literal 3 binary64))) (fma.f64 (fma.f64 x x y) (fma.f64 x x y) (*.f64 y (-.f64 y (fma.f64 x x y)))))
(fma.f64 (*.f64 (neg.f64 x) #s(literal 1 binary64)) (*.f64 (neg.f64 x) #s(literal 1 binary64)) (+.f64 y y))
(fma.f64 (*.f64 (fabs.f64 x) #s(literal 1 binary64)) (*.f64 (fabs.f64 x) #s(literal 1 binary64)) (+.f64 y y))
(fma.f64 (*.f64 x #s(literal 1 binary64)) (*.f64 x #s(literal 1 binary64)) (+.f64 y y))
(fma.f64 (*.f64 #s(literal 1 binary64) (neg.f64 x)) (*.f64 #s(literal 1 binary64) (neg.f64 x)) (+.f64 y y))
(fma.f64 (*.f64 #s(literal 1 binary64) (neg.f64 x)) (neg.f64 x) (+.f64 y y))
(fma.f64 (*.f64 #s(literal 1 binary64) (fabs.f64 x)) (*.f64 #s(literal 1 binary64) (fabs.f64 x)) (+.f64 y y))
(fma.f64 (*.f64 #s(literal 1 binary64) (fabs.f64 x)) (fabs.f64 x) (+.f64 y y))
(fma.f64 (*.f64 #s(literal 1 binary64) x) (*.f64 #s(literal 1 binary64) x) (+.f64 y y))
(fma.f64 (*.f64 #s(literal 1 binary64) x) x (+.f64 y y))
(fma.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 x)) (+.f64 y y))
(fma.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x)) (+.f64 y y))
(fma.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)) (+.f64 y y))
(fma.f64 (exp.f64 (log.f64 x)) (exp.f64 (log.f64 x)) (+.f64 y y))
(fma.f64 (neg.f64 x) (*.f64 (neg.f64 x) #s(literal 1 binary64)) (+.f64 y y))
(fma.f64 (neg.f64 x) (neg.f64 x) (+.f64 y y))
(fma.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) #s(literal 1 binary64)) (+.f64 y y))
(fma.f64 (fabs.f64 x) (fabs.f64 x) (+.f64 y y))
(fma.f64 #s(literal 1 binary64) (*.f64 x x) (+.f64 y y))
(fma.f64 (*.f64 x x) #s(literal 1 binary64) (+.f64 y y))
(fma.f64 #s(literal 2 binary64) y (*.f64 x x))
(fma.f64 y #s(literal 2 binary64) (*.f64 x x))
(fma.f64 x (*.f64 x #s(literal 1 binary64)) (+.f64 y y))
(fma.f64 x x (+.f64 y y))
(-.f64 (/.f64 (*.f64 (*.f64 y y) #s(literal 4 binary64)) (+.f64 y (-.f64 y (*.f64 x x)))) (/.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (+.f64 y (-.f64 y (*.f64 x x)))))
(-.f64 (/.f64 (*.f64 (fma.f64 x x y) (fma.f64 x x y)) (-.f64 (fma.f64 x x y) y)) (/.f64 (*.f64 y y) (-.f64 (fma.f64 x x y) y)))
(-.f64 (*.f64 x x) (*.f64 #s(literal -2 binary64) y))
(-.f64 (*.f64 x x) (*.f64 (neg.f64 y) #s(literal 2 binary64)))
(-.f64 (+.f64 y y) (*.f64 (neg.f64 x) x))
(+.f64 (/.f64 (*.f64 (*.f64 (*.f64 y y) y) #s(literal 8 binary64)) (fma.f64 (*.f64 x x) (-.f64 (*.f64 x x) (+.f64 y y)) (*.f64 (*.f64 y y) #s(literal 4 binary64)))) (/.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x x)) (fma.f64 (*.f64 x x) (-.f64 (*.f64 x x) (+.f64 y y)) (*.f64 (*.f64 y y) #s(literal 4 binary64)))))
(+.f64 (/.f64 (pow.f64 (fma.f64 x x y) #s(literal 3 binary64)) (fma.f64 (fma.f64 x x y) (fma.f64 x x y) (*.f64 y (-.f64 y (fma.f64 x x y))))) (/.f64 (*.f64 (*.f64 y y) y) (fma.f64 (fma.f64 x x y) (fma.f64 x x y) (*.f64 y (-.f64 y (fma.f64 x x y))))))
(+.f64 (*.f64 x x) (+.f64 y y))
(+.f64 (+.f64 y y) (*.f64 x x))
(+.f64 (fma.f64 x x y) y)
(+.f64 y (fma.f64 x x y))
(/.f64 (neg.f64 (*.f64 (fma.f64 x x y) (-.f64 (*.f64 x x) y))) (neg.f64 (-.f64 (*.f64 x x) y)))
(/.f64 (neg.f64 (*.f64 (fma.f64 x x y) (-.f64 y (*.f64 x x)))) (neg.f64 (-.f64 y (*.f64 x x))))
(/.f64 (neg.f64 (fma.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x x) (*.f64 (*.f64 y y) y))) (neg.f64 (fma.f64 (*.f64 (*.f64 x x) x) x (*.f64 y (-.f64 y (*.f64 x x))))))
(/.f64 (neg.f64 (fma.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x x) (*.f64 (*.f64 y y) y))) (neg.f64 (fma.f64 (*.f64 x x) (-.f64 (*.f64 x x) y) (*.f64 y y))))
(/.f64 (*.f64 (fma.f64 x x y) (-.f64 (*.f64 x x) y)) (-.f64 (*.f64 x x) y))
(/.f64 (*.f64 (fma.f64 x x y) (-.f64 y (*.f64 x x))) (-.f64 y (*.f64 x x)))
(/.f64 (fma.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x x) (*.f64 (*.f64 y y) y)) (fma.f64 (*.f64 (*.f64 x x) x) x (*.f64 y (-.f64 y (*.f64 x x)))))
(/.f64 (fma.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x x) (*.f64 (*.f64 y y) y)) (fma.f64 (*.f64 x x) (-.f64 (*.f64 x x) y) (*.f64 y y)))
(fma.f64 (*.f64 (neg.f64 x) #s(literal 1 binary64)) (*.f64 (neg.f64 x) #s(literal 1 binary64)) y)
(fma.f64 (*.f64 (fabs.f64 x) #s(literal 1 binary64)) (*.f64 (fabs.f64 x) #s(literal 1 binary64)) y)
(fma.f64 (*.f64 x #s(literal 1 binary64)) (*.f64 x #s(literal 1 binary64)) y)
(fma.f64 (*.f64 #s(literal 1 binary64) (neg.f64 x)) (*.f64 #s(literal 1 binary64) (neg.f64 x)) y)
(fma.f64 (*.f64 #s(literal 1 binary64) (neg.f64 x)) (neg.f64 x) y)
(fma.f64 (*.f64 #s(literal 1 binary64) (fabs.f64 x)) (*.f64 #s(literal 1 binary64) (fabs.f64 x)) y)
(fma.f64 (*.f64 #s(literal 1 binary64) (fabs.f64 x)) (fabs.f64 x) y)
(fma.f64 (*.f64 #s(literal 1 binary64) x) (*.f64 #s(literal 1 binary64) x) y)
(fma.f64 (*.f64 #s(literal 1 binary64) x) x y)
(fma.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 x)) y)
(fma.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x)) y)
(fma.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)) y)
(fma.f64 (exp.f64 (log.f64 x)) (exp.f64 (log.f64 x)) y)
(fma.f64 (neg.f64 x) (*.f64 (neg.f64 x) #s(literal 1 binary64)) y)
(fma.f64 (neg.f64 x) (neg.f64 x) y)
(fma.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) #s(literal 1 binary64)) y)
(fma.f64 (fabs.f64 x) (fabs.f64 x) y)
(fma.f64 #s(literal 1 binary64) (*.f64 x x) y)
(fma.f64 (*.f64 x x) #s(literal 1 binary64) y)
(fma.f64 x (*.f64 x #s(literal 1 binary64)) y)
(fma.f64 x x y)
(-.f64 (/.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (-.f64 (*.f64 x x) y)) (/.f64 (*.f64 y y) (-.f64 (*.f64 x x) y)))
(-.f64 (/.f64 (*.f64 y y) (-.f64 y (*.f64 x x))) (/.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (-.f64 y (*.f64 x x))))
(-.f64 y (*.f64 (neg.f64 x) x))
(+.f64 (/.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x x)) (fma.f64 (*.f64 (*.f64 x x) x) x (*.f64 y (-.f64 y (*.f64 x x))))) (/.f64 (*.f64 (*.f64 y y) y) (fma.f64 (*.f64 (*.f64 x x) x) x (*.f64 y (-.f64 y (*.f64 x x))))))
(+.f64 (/.f64 (*.f64 (*.f64 y y) y) (fma.f64 (*.f64 x x) (-.f64 (*.f64 x x) y) (*.f64 y y))) (/.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x x)) (fma.f64 (*.f64 x x) (-.f64 (*.f64 x x) y) (*.f64 y y))))
(+.f64 (*.f64 x x) y)
(+.f64 y (*.f64 x x))
(*.f64 (*.f64 (neg.f64 x) #s(literal 1 binary64)) (*.f64 (neg.f64 x) #s(literal 1 binary64)))
(*.f64 (*.f64 (fabs.f64 x) #s(literal 1 binary64)) (*.f64 (fabs.f64 x) #s(literal 1 binary64)))
(*.f64 (*.f64 x #s(literal 1 binary64)) (*.f64 x #s(literal 1 binary64)))
(*.f64 (*.f64 #s(literal 1 binary64) (neg.f64 x)) (*.f64 #s(literal 1 binary64) (neg.f64 x)))
(*.f64 (*.f64 #s(literal 1 binary64) (neg.f64 x)) (neg.f64 x))
(*.f64 (*.f64 #s(literal 1 binary64) (fabs.f64 x)) (*.f64 #s(literal 1 binary64) (fabs.f64 x)))
(*.f64 (*.f64 #s(literal 1 binary64) (fabs.f64 x)) (fabs.f64 x))
(*.f64 (*.f64 #s(literal 1 binary64) x) (*.f64 #s(literal 1 binary64) x))
(*.f64 (*.f64 #s(literal 1 binary64) x) x)
(*.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 x)))
(*.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x)))
(*.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)))
(*.f64 (exp.f64 (log.f64 x)) (exp.f64 (log.f64 x)))
(*.f64 (neg.f64 x) (*.f64 (neg.f64 x) #s(literal 1 binary64)))
(*.f64 (neg.f64 x) (neg.f64 x))
(*.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) #s(literal 1 binary64)))
(*.f64 (fabs.f64 x) (fabs.f64 x))
(*.f64 #s(literal 1 binary64) (*.f64 x x))
(*.f64 (*.f64 x x) #s(literal 1 binary64))
(*.f64 x (*.f64 x #s(literal 1 binary64)))
(*.f64 x x)
(pow.f64 (exp.f64 (log.f64 x)) #s(literal 2 binary64))
(pow.f64 (neg.f64 x) #s(literal 2 binary64))
(pow.f64 (fabs.f64 x) #s(literal 2 binary64))
(pow.f64 (*.f64 x x) #s(literal 1 binary64))
(pow.f64 x #s(literal 2 binary64))
(/.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)) #s(literal 2 binary64))
(/.f64 (*.f64 #s(literal 2 binary64) (*.f64 x x)) #s(literal 2 binary64))
(neg.f64 (*.f64 (neg.f64 x) x))
(fabs.f64 (*.f64 x x))
(+.f64 (cosh.f64 (*.f64 (log.f64 x) #s(literal 2 binary64))) (sinh.f64 (*.f64 (log.f64 x) #s(literal 2 binary64))))
(exp.f64 (fma.f64 (log.f64 x) #s(literal 2 binary64) #s(literal 0 binary64)))
(exp.f64 (+.f64 #s(literal 0 binary64) (*.f64 (log.f64 x) #s(literal 2 binary64))))
(exp.f64 (*.f64 (log.f64 x) #s(literal 2 binary64)))
x
y
#s(approx (+ (+ (* x x) y) y) (+.f64 y y))
#s(approx (+ (+ (* x x) y) y) (+.f64 (fma.f64 x x y) y))
#s(approx (+ (* x x) y) y)
#s(approx (+ (* x x) y) (fma.f64 x x y))
#s(approx (* x x) (*.f64 x x))
#s(approx x x)
#s(approx (+ (+ (* x x) y) y) (*.f64 x x))
#s(approx (+ (+ (* x x) y) y) (*.f64 (*.f64 (fma.f64 (/.f64 y (*.f64 x x)) #s(literal 2 binary64) #s(literal 1 binary64)) x) x))
#s(approx (+ (* x x) y) (*.f64 x x))
#s(approx (+ (* x x) y) (*.f64 (*.f64 (-.f64 (/.f64 y (*.f64 x x)) #s(literal -1 binary64)) x) x))
#s(approx y y)
#s(approx (+ (+ (* x x) y) y) (*.f64 (fma.f64 x (/.f64 x y) #s(literal 2 binary64)) y))
#s(approx (+ (* x x) y) (fma.f64 (/.f64 (*.f64 x x) y) y y))
#s(approx (+ (+ (* x x) y) y) (*.f64 (neg.f64 y) (-.f64 (/.f64 (*.f64 (neg.f64 x) x) y) #s(literal 2 binary64))))
#s(approx (+ (* x x) y) (*.f64 (neg.f64 y) (-.f64 (/.f64 (*.f64 (neg.f64 x) x) y) #s(literal 1 binary64))))

eval13.0ms (1.5%)

Memory
-12.4MiB live, 34.6MiB allocated; 2ms collecting garbage
Compiler

Compiled 896 to 366 computations (59.2% saved)

prune4.0ms (0.4%)

Memory
11.2MiB live, 11.2MiB allocated; 0ms collecting garbage
Pruning

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New1254129
Fresh000
Picked101
Done000
Total1264130
Accuracy
100.0%
Counts
130 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fma.f64 x x (+.f64 y y))
57.5%
(+.f64 #s(approx (+ (* x x) y) (*.f64 x x)) y)
52.8%
(+.f64 #s(approx (+ (* x x) y) y) y)
49.7%
#s(approx (+ (+ (* x x) y) y) (*.f64 x x))
Compiler

Compiled 24 to 24 computations (0% saved)

series4.0ms (0.5%)

Memory
10.8MiB live, 10.8MiB allocated; 0ms collecting garbage
Counts
10 → 22
Calls
Call 1
Inputs
#s(approx (+ (+ (* x x) y) y) (*.f64 x x))
(*.f64 x x)
x
(+.f64 #s(approx (+ (* x x) y) y) y)
#s(approx (+ (* x x) y) y)
y
(+.f64 #s(approx (+ (* x x) y) (*.f64 x x)) y)
#s(approx (+ (* x x) y) (*.f64 x x))
(fma.f64 x x (+.f64 y y))
(+.f64 y y)
Outputs
#s(approx (+ (+ (* x x) y) y) #s(hole binary64 (* 2 y)))
#s(approx (+ (+ (* x x) y) y) #s(hole binary64 (+ (* 2 y) (pow x 2))))
#s(approx (* x x) #s(hole binary64 (pow x 2)))
#s(approx x #s(hole binary64 x))
#s(approx (+ (* x x) y) #s(hole binary64 y))
#s(approx (+ (* x x) y) #s(hole binary64 (+ y (pow x 2))))
#s(approx (+ (* x x) (+ y y)) #s(hole binary64 (* 2 y)))
#s(approx (+ (* x x) (+ y y)) #s(hole binary64 (+ (* 2 y) (pow x 2))))
#s(approx (+ (+ (* x x) y) y) #s(hole binary64 (pow x 2)))
#s(approx (+ (+ (* x x) y) y) #s(hole binary64 (* (pow x 2) (+ 1 (* 2 (/ y (pow x 2)))))))
#s(approx (+ (* x x) y) #s(hole binary64 (pow x 2)))
#s(approx (+ (* x x) y) #s(hole binary64 (* (pow x 2) (+ 1 (/ y (pow x 2))))))
#s(approx (+ (* x x) (+ y y)) #s(hole binary64 (pow x 2)))
#s(approx (+ (* x x) (+ y y)) #s(hole binary64 (* (pow x 2) (+ 1 (* 2 (/ y (pow x 2)))))))
#s(approx y #s(hole binary64 y))
#s(approx (+ y y) #s(hole binary64 (* 2 y)))
#s(approx (+ (+ (* x x) y) y) #s(hole binary64 (* y (+ 2 (/ (pow x 2) y)))))
#s(approx (+ (* x x) y) #s(hole binary64 (* y (+ 1 (/ (pow x 2) y)))))
#s(approx (+ (* x x) (+ y y)) #s(hole binary64 (* y (+ 2 (/ (pow x 2) y)))))
#s(approx (+ (+ (* x x) y) y) #s(hole binary64 (* -1 (* y (- (* -1 (/ (pow x 2) y)) 2)))))
#s(approx (+ (* x x) y) #s(hole binary64 (* -1 (* y (- (* -1 (/ (pow x 2) y)) 1)))))
#s(approx (+ (* x x) (+ y y)) #s(hole binary64 (* -1 (* y (- (* -1 (/ (pow x 2) y)) 2)))))
Calls

6 calls:

TimeVariablePointExpression
1.0ms
y
@-inf
((+ (+ (* x x) y) y) (* x x) x (+ (+ (* x x) y) y) (+ (* x x) y) y (+ (+ (* x x) y) y) (+ (* x x) y) (+ (* x x) (+ y y)) (+ y y))
1.0ms
x
@inf
((+ (+ (* x x) y) y) (* x x) x (+ (+ (* x x) y) y) (+ (* x x) y) y (+ (+ (* x x) y) y) (+ (* x x) y) (+ (* x x) (+ y y)) (+ y y))
1.0ms
x
@-inf
((+ (+ (* x x) y) y) (* x x) x (+ (+ (* x x) y) y) (+ (* x x) y) y (+ (+ (* x x) y) y) (+ (* x x) y) (+ (* x x) (+ y y)) (+ y y))
1.0ms
y
@inf
((+ (+ (* x x) y) y) (* x x) x (+ (+ (* x x) y) y) (+ (* x x) y) y (+ (+ (* x x) y) y) (+ (* x x) y) (+ (* x x) (+ y y)) (+ y y))
0.0ms
x
@0
((+ (+ (* x x) y) y) (* x x) x (+ (+ (* x x) y) y) (+ (* x x) y) y (+ (+ (* x x) y) y) (+ (* x x) y) (+ (* x x) (+ y y)) (+ y y))

rewrite39.0ms (4.5%)

Memory
-33.3MiB live, 68.9MiB allocated; 6ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
061345
066330
0290317
Stop Event
iter-limit
iter-limit
iter-limit
unsound
iter-limit
Counts
32 → 62
Calls
Call 1
Inputs
#s(approx (+ (+ (* x x) y) y) (*.f64 x x))
(*.f64 x x)
x
(+.f64 #s(approx (+ (* x x) y) y) y)
#s(approx (+ (* x x) y) y)
y
(+.f64 #s(approx (+ (* x x) y) (*.f64 x x)) y)
#s(approx (+ (* x x) y) (*.f64 x x))
(fma.f64 x x (+.f64 y y))
(+.f64 y y)
#s(approx (+ (+ (* x x) y) y) #s(hole binary64 (* 2 y)))
#s(approx (+ (+ (* x x) y) y) #s(hole binary64 (+ (* 2 y) (pow x 2))))
#s(approx (* x x) #s(hole binary64 (pow x 2)))
#s(approx x #s(hole binary64 x))
#s(approx (+ (* x x) y) #s(hole binary64 y))
#s(approx (+ (* x x) y) #s(hole binary64 (+ y (pow x 2))))
#s(approx (+ (* x x) (+ y y)) #s(hole binary64 (* 2 y)))
#s(approx (+ (* x x) (+ y y)) #s(hole binary64 (+ (* 2 y) (pow x 2))))
#s(approx (+ (+ (* x x) y) y) #s(hole binary64 (pow x 2)))
#s(approx (+ (+ (* x x) y) y) #s(hole binary64 (* (pow x 2) (+ 1 (* 2 (/ y (pow x 2)))))))
#s(approx (+ (* x x) y) #s(hole binary64 (pow x 2)))
#s(approx (+ (* x x) y) #s(hole binary64 (* (pow x 2) (+ 1 (/ y (pow x 2))))))
#s(approx (+ (* x x) (+ y y)) #s(hole binary64 (pow x 2)))
#s(approx (+ (* x x) (+ y y)) #s(hole binary64 (* (pow x 2) (+ 1 (* 2 (/ y (pow x 2)))))))
#s(approx y #s(hole binary64 y))
#s(approx (+ y y) #s(hole binary64 (* 2 y)))
#s(approx (+ (+ (* x x) y) y) #s(hole binary64 (* y (+ 2 (/ (pow x 2) y)))))
#s(approx (+ (* x x) y) #s(hole binary64 (* y (+ 1 (/ (pow x 2) y)))))
#s(approx (+ (* x x) (+ y y)) #s(hole binary64 (* y (+ 2 (/ (pow x 2) y)))))
#s(approx (+ (+ (* x x) y) y) #s(hole binary64 (* -1 (* y (- (* -1 (/ (pow x 2) y)) 2)))))
#s(approx (+ (* x x) y) #s(hole binary64 (* -1 (* y (- (* -1 (/ (pow x 2) y)) 1)))))
#s(approx (+ (* x x) (+ y y)) #s(hole binary64 (* -1 (* y (- (* -1 (/ (pow x 2) y)) 2)))))
Outputs
#s(approx (+ (+ (* x x) y) y) (*.f64 x x))
(*.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)))
(*.f64 (neg.f64 x) (neg.f64 x))
(*.f64 (fabs.f64 x) (fabs.f64 x))
(*.f64 x x)
(pow.f64 x #s(literal 2 binary64))
(exp.f64 (*.f64 (log.f64 x) #s(literal 2 binary64)))
x
(/.f64 (-.f64 (*.f64 #s(approx (+ (* x x) y) y) #s(approx (+ (* x x) y) y)) (*.f64 y y)) (-.f64 #s(approx (+ (* x x) y) y) y))
(/.f64 (+.f64 (pow.f64 #s(approx (+ (* x x) y) y) #s(literal 3 binary64)) (pow.f64 y #s(literal 3 binary64))) (fma.f64 #s(approx (+ (* x x) y) y) #s(approx (+ (* x x) y) y) (-.f64 (*.f64 y y) (*.f64 #s(approx (+ (* x x) y) y) y))))
(+.f64 #s(approx (+ (* x x) y) y) y)
(+.f64 y #s(approx (+ (* x x) y) y))
#s(approx (+ (* x x) y) y)
y
(/.f64 (-.f64 (*.f64 #s(approx (+ (* x x) y) (*.f64 x x)) #s(approx (+ (* x x) y) (*.f64 x x))) (*.f64 y y)) (-.f64 #s(approx (+ (* x x) y) (*.f64 x x)) y))
(/.f64 (+.f64 (pow.f64 #s(approx (+ (* x x) y) (*.f64 x x)) #s(literal 3 binary64)) (pow.f64 y #s(literal 3 binary64))) (fma.f64 #s(approx (+ (* x x) y) (*.f64 x x)) #s(approx (+ (* x x) y) (*.f64 x x)) (-.f64 (*.f64 y y) (*.f64 #s(approx (+ (* x x) y) (*.f64 x x)) y))))
(+.f64 #s(approx (+ (* x x) y) (*.f64 x x)) y)
(+.f64 y #s(approx (+ (* x x) y) (*.f64 x x)))
#s(approx (+ (* x x) y) (*.f64 x x))
(/.f64 (-.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 (+.f64 y y) (+.f64 y y))) (-.f64 (*.f64 x x) (+.f64 y y)))
(/.f64 (-.f64 (*.f64 (+.f64 y y) (+.f64 y y)) (*.f64 (*.f64 x x) (*.f64 x x))) (-.f64 (+.f64 y y) (*.f64 x x)))
(/.f64 (-.f64 (*.f64 (fma.f64 x x y) (fma.f64 x x y)) (*.f64 y y)) (-.f64 (fma.f64 x x y) y))
(/.f64 (+.f64 (pow.f64 (*.f64 x x) #s(literal 3 binary64)) (pow.f64 (+.f64 y y) #s(literal 3 binary64))) (fma.f64 (*.f64 x x) (*.f64 x x) (-.f64 (*.f64 (+.f64 y y) (+.f64 y y)) (*.f64 (*.f64 x x) (+.f64 y y)))))
(/.f64 (+.f64 (pow.f64 (+.f64 y y) #s(literal 3 binary64)) (pow.f64 (*.f64 x x) #s(literal 3 binary64))) (fma.f64 (+.f64 y y) (+.f64 y y) (-.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 (+.f64 y y) (*.f64 x x)))))
(/.f64 (+.f64 (pow.f64 (fma.f64 x x y) #s(literal 3 binary64)) (pow.f64 y #s(literal 3 binary64))) (fma.f64 (fma.f64 x x y) (fma.f64 x x y) (-.f64 (*.f64 y y) (*.f64 (fma.f64 x x y) y))))
(fma.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)) (+.f64 y y))
(fma.f64 (neg.f64 x) (neg.f64 x) (+.f64 y y))
(fma.f64 (fabs.f64 x) (fabs.f64 x) (+.f64 y y))
(fma.f64 #s(literal 2 binary64) y (*.f64 x x))
(fma.f64 y #s(literal 2 binary64) (*.f64 x x))
(fma.f64 x x (+.f64 y y))
(+.f64 (*.f64 x x) (+.f64 y y))
(+.f64 (+.f64 y y) (*.f64 x x))
(+.f64 (fma.f64 x x y) y)
(+.f64 y (fma.f64 x x y))
(*.f64 #s(literal 2 binary64) y)
(*.f64 y #s(literal 2 binary64))
(/.f64 (-.f64 (*.f64 y y) (*.f64 y y)) (-.f64 y y))
(/.f64 (+.f64 (pow.f64 y #s(literal 3 binary64)) (pow.f64 y #s(literal 3 binary64))) (fma.f64 y y (-.f64 (*.f64 y y) (*.f64 y y))))
(+.f64 y y)
#s(approx (+ (+ (* x x) y) y) (+.f64 y y))
#s(approx (+ (+ (* x x) y) y) (fma.f64 x x (+.f64 y y)))
#s(approx (* x x) (*.f64 x x))
#s(approx x x)
#s(approx (+ (* x x) y) y)
#s(approx (+ (* x x) y) (fma.f64 x x y))
#s(approx (+ (+ (* x x) y) y) (+.f64 y y))
#s(approx (+ (+ (* x x) y) y) (fma.f64 x x (+.f64 y y)))
#s(approx (+ (+ (* x x) y) y) (*.f64 x x))
#s(approx (+ (+ (* x x) y) y) (*.f64 (fma.f64 (/.f64 y (*.f64 x x)) #s(literal 2 binary64) #s(literal 1 binary64)) (*.f64 x x)))
#s(approx (+ (* x x) y) (*.f64 x x))
#s(approx (+ (* x x) y) (*.f64 (+.f64 (/.f64 y (*.f64 x x)) #s(literal 1 binary64)) (*.f64 x x)))
#s(approx (+ (+ (* x x) y) y) (*.f64 x x))
#s(approx (+ (+ (* x x) y) y) (*.f64 (fma.f64 (/.f64 y (*.f64 x x)) #s(literal 2 binary64) #s(literal 1 binary64)) (*.f64 x x)))
#s(approx y y)
#s(approx (+ y y) (+.f64 y y))
#s(approx (+ (+ (* x x) y) y) (*.f64 (+.f64 (/.f64 (*.f64 x x) y) #s(literal 2 binary64)) y))
#s(approx (+ (* x x) y) (*.f64 (+.f64 (/.f64 (*.f64 x x) y) #s(literal 1 binary64)) y))
#s(approx (+ (+ (* x x) y) y) (*.f64 (+.f64 (/.f64 (*.f64 x x) y) #s(literal 2 binary64)) y))
#s(approx (+ (+ (* x x) y) y) (neg.f64 (*.f64 (-.f64 (neg.f64 (/.f64 (*.f64 x x) y)) #s(literal 2 binary64)) y)))
#s(approx (+ (* x x) y) (neg.f64 (*.f64 (-.f64 (neg.f64 (/.f64 (*.f64 x x) y)) #s(literal 1 binary64)) y)))
#s(approx (+ (+ (* x x) y) y) (neg.f64 (*.f64 (-.f64 (neg.f64 (/.f64 (*.f64 x x) y)) #s(literal 2 binary64)) y)))

eval5.0ms (0.5%)

Memory
13.3MiB live, 13.3MiB allocated; 0ms collecting garbage
Compiler

Compiled 364 to 163 computations (55.2% saved)

prune3.0ms (0.4%)

Memory
9.5MiB live, 9.4MiB allocated; 0ms collecting garbage
Pruning

4 alts after pruning (0 fresh and 4 done)

PrunedKeptTotal
New53053
Fresh000
Picked044
Done000
Total53457
Accuracy
100.0%
Counts
57 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fma.f64 x x (+.f64 y y))
57.5%
(+.f64 #s(approx (+ (* x x) y) (*.f64 x x)) y)
52.8%
(+.f64 #s(approx (+ (* x x) y) y) y)
49.7%
#s(approx (+ (+ (* x x) y) y) (*.f64 x x))
Compiler

Compiled 45 to 39 computations (13.3% saved)

regimes9.0ms (1.1%)

Memory
-23.0MiB live, 24.3MiB allocated; 1ms collecting garbage
Counts
5 → 1
Calls
Call 1
Inputs
(+.f64 #s(approx (+ (* x x) y) y) y)
#s(approx (+ (+ (* x x) y) y) (*.f64 x x))
(+.f64 #s(approx (+ (* x x) y) (*.f64 x x)) y)
(fma.f64 x x (+.f64 y y))
(+.f64 (+.f64 (*.f64 x x) y) y)
Outputs
(fma.f64 x x (+.f64 y y))
Calls

4 calls:

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

Compiled 9 to 12 computations (-33.3% saved)

regimes6.0ms (0.7%)

Memory
19.2MiB live, 19.2MiB allocated; 0ms collecting garbage
Counts
3 → 2
Calls
Call 1
Inputs
(+.f64 #s(approx (+ (* x x) y) y) y)
#s(approx (+ (+ (* x x) y) y) (*.f64 x x))
(+.f64 #s(approx (+ (* x x) y) (*.f64 x x)) y)
Outputs
(+.f64 #s(approx (+ (* x x) y) y) y)
(+.f64 #s(approx (+ (* x x) y) (*.f64 x x)) y)
Calls

4 calls:

2.0ms
y
2.0ms
(+.f64 (+.f64 (*.f64 x x) y) y)
1.0ms
x
1.0ms
(*.f64 x x)
Results
AccuracySegmentsBranch
91.8%2(*.f64 x x)
84.5%2(+.f64 (+.f64 (*.f64 x x) y) y)
91.8%2x
67.2%3y
Compiler

Compiled 9 to 12 computations (-33.3% saved)

regimes3.0ms (0.3%)

Memory
7.8MiB live, 7.8MiB allocated; 0ms collecting garbage
Counts
2 → 2
Calls
Call 1
Inputs
(+.f64 #s(approx (+ (* x x) y) y) y)
#s(approx (+ (+ (* x x) y) y) (*.f64 x x))
Outputs
(+.f64 #s(approx (+ (* x x) y) y) y)
#s(approx (+ (+ (* x x) y) y) (*.f64 x x))
Calls

2 calls:

1.0ms
x
1.0ms
(*.f64 x x)
Results
AccuracySegmentsBranch
91.1%2(*.f64 x x)
91.1%2x
Compiler

Compiled 3 to 5 computations (-66.7% saved)

regimes5.0ms (0.6%)

Memory
-33.6MiB live, 14.1MiB allocated; 1ms collecting garbage
Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

Counts
1 → 1
Calls
Call 1
Inputs
(+.f64 #s(approx (+ (* x x) y) y) y)
Outputs
(+.f64 #s(approx (+ (* x x) y) y) y)
Calls

4 calls:

2.0ms
(*.f64 x x)
1.0ms
y
1.0ms
x
1.0ms
(+.f64 (+.f64 (*.f64 x x) y) y)
Results
AccuracySegmentsBranch
52.8%1y
52.8%1(+.f64 (+.f64 (*.f64 x x) y) y)
52.8%1(*.f64 x x)
52.8%1x
Compiler

Compiled 9 to 12 computations (-33.3% saved)

bsearch6.0ms (0.6%)

Memory
13.1MiB live, 13.1MiB allocated; 0ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
5.0ms
1247878069576.3157
4100984950945.796
Samples
2.0ms80×0valid
Compiler

Compiled 75 to 85 computations (-13.3% saved)

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

bsearch3.0ms (0.4%)

Memory
8.0MiB live, 8.0MiB allocated; 0ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
3.0ms
1247878069576.3157
4100984950945.796
Samples
1.0ms48×0valid
Compiler

Compiled 75 to 85 computations (-13.3% saved)

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

derivations28.0ms (3.2%)

Memory
12.4MiB live, 59.8MiB allocated; 1ms collecting garbage
Stop Event
done
Compiler

Compiled 24 to 19 computations (20.8% saved)

preprocess29.0ms (3.4%)

Memory
-8.0MiB live, 88.6MiB allocated; 3ms collecting garbage
Remove

(abs x)

Compiler

Compiled 105 to 92 computations (12.4% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated; 0ms collecting garbage

Profiling

Loading profile data...