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

Time bar (total: 1.2s)

start0.0ms (0%)

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

analyze0.0ms (0%)

Memory
0.2MiB live, 0.2MiB 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)

sample791.0ms (63.5%)

Memory
21.6MiB live, 809.9MiB allocated; 240ms collecting garbage
Samples
528.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 191.0ms
ival-mult!: 135.0ms (70.7% of total)
ival-add!: 55.0ms (28.8% of total)
adjust: 2.0ms (1% of total)
Bogosity

preprocess48.0ms (3.9%)

Memory
0.9MiB live, 45.3MiB allocated; 9ms collecting garbage
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01748
15245
214043
324842
455742
5238242
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 14 to 10 computations (28.6% saved)

series4.0ms (0.3%)

Memory
13.1MiB live, 13.1MiB allocated; 0ms collecting garbage
Counts
5 → 12
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) (+ 1 (* 2 (/ y (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 (* 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
@-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
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)

rewrite176.0ms (14.1%)

Memory
-4.1MiB live, 143.2MiB allocated; 156ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
045181
048177
1227177
01978160
Stop Event
iter-limit
iter-limit
node-limit
iter-limit
Counts
17 → 130
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) (+ 1 (* 2 (/ y (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 (* 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 #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) (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) x) (*.f64 #s(literal 1 binary64) x) (+.f64 y y))
(fma.f64 (*.f64 #s(literal 1 binary64) x) x (+.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 (neg.f64 x) #s(literal 1 binary64)) (*.f64 (neg.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 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)) (+.f64 y y))
(fma.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x)) (+.f64 y y))
(fma.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 x)) (+.f64 y y))
(fma.f64 (exp.f64 (log.f64 x)) (exp.f64 (log.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 (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 #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 #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) (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) x) (*.f64 #s(literal 1 binary64) x) y)
(fma.f64 (*.f64 #s(literal 1 binary64) x) x y)
(fma.f64 (*.f64 (fabs.f64 x) #s(literal 1 binary64)) (*.f64 (fabs.f64 x) #s(literal 1 binary64)) y)
(fma.f64 (*.f64 (neg.f64 x) #s(literal 1 binary64)) (*.f64 (neg.f64 x) #s(literal 1 binary64)) y)
(fma.f64 (*.f64 x #s(literal 1 binary64)) (*.f64 x #s(literal 1 binary64)) y)
(fma.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)) y)
(fma.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x)) y)
(fma.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 x)) y)
(fma.f64 (exp.f64 (log.f64 x)) (exp.f64 (log.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 (neg.f64 x) (*.f64 (neg.f64 x) #s(literal 1 binary64)) y)
(fma.f64 (neg.f64 x) (neg.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 #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) (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) x) (*.f64 #s(literal 1 binary64) x))
(*.f64 (*.f64 #s(literal 1 binary64) x) x)
(*.f64 (*.f64 (fabs.f64 x) #s(literal 1 binary64)) (*.f64 (fabs.f64 x) #s(literal 1 binary64)))
(*.f64 (*.f64 (neg.f64 x) #s(literal 1 binary64)) (*.f64 (neg.f64 x) #s(literal 1 binary64)))
(*.f64 (*.f64 x #s(literal 1 binary64)) (*.f64 x #s(literal 1 binary64)))
(*.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)))
(*.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x)))
(*.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 x)))
(*.f64 (exp.f64 (log.f64 x)) (exp.f64 (log.f64 x)))
(*.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) #s(literal 1 binary64)))
(*.f64 (fabs.f64 x) (fabs.f64 x))
(*.f64 (neg.f64 x) (*.f64 (neg.f64 x) #s(literal 1 binary64)))
(*.f64 (neg.f64 x) (neg.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 (fabs.f64 x) #s(literal 2 binary64))
(pow.f64 (neg.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))
(exp.f64 (+.f64 #s(literal 0 binary64) (*.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 (log.f64 x) #s(literal 2 binary64)))
(+.f64 (cosh.f64 (*.f64 (log.f64 x) #s(literal 2 binary64))) (sinh.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 (*.f64 (fma.f64 (/.f64 y (*.f64 x x)) #s(literal 2 binary64) #s(literal 1 binary64)) x) x))
#s(approx (+ (* x x) y) (*.f64 (*.f64 (-.f64 (/.f64 y (*.f64 x x)) #s(literal -1 binary64)) x) x))
#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))))

eval11.0ms (0.9%)

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

Compiled 1 836 to 360 computations (80.4% saved)

prune20.0ms (1.6%)

Memory
-37.5MiB live, 7.3MiB allocated; 7ms collecting garbage
Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New1242126
Fresh000
Picked101
Done000
Total1252127
Accuracy
100.0%
Counts
127 → 2
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fma.f64 x x (+.f64 y y))
54.4%
(+.f64 #s(approx (+ (* x x) y) y) y)
Compiler

Compiled 15 to 10 computations (33.3% saved)

series3.0ms (0.2%)

Memory
8.4MiB live, 8.4MiB allocated; 0ms collecting garbage
Counts
6 → 12
Calls
Call 1
Inputs
(+.f64 #s(approx (+ (* x x) y) y) y)
#s(approx (+ (* x x) y) y)
y
(fma.f64 x x (+.f64 y y))
x
(+.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) y) #s(hole binary64 y))
#s(approx (+ (* x x) y) #s(hole binary64 (+ y (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) (+ 1 (/ y (pow x 2))))))
#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
y
@-inf
((+ (+ (* x x) y) y) (+ (* x x) y) y (+ (* x x) (+ y y)) x (+ y y))
0.0ms
x
@-inf
((+ (+ (* x x) y) y) (+ (* x x) y) y (+ (* x x) (+ y y)) x (+ y y))
0.0ms
x
@inf
((+ (+ (* x x) y) y) (+ (* x x) y) y (+ (* x x) (+ y y)) x (+ y y))
0.0ms
y
@inf
((+ (+ (* x x) y) y) (+ (* x x) y) y (+ (* x x) (+ y y)) x (+ y y))
0.0ms
y
@0
((+ (+ (* x x) y) y) (+ (* x x) y) y (+ (* x x) (+ y y)) x (+ y y))

rewrite46.0ms (3.7%)

Memory
14.0MiB live, 60.9MiB allocated; 2ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
045195
048184
0258175
Stop Event
iter-limit
iter-limit
iter-limit
unsound
iter-limit
Counts
18 → 40
Calls
Call 1
Inputs
(+.f64 #s(approx (+ (* x x) y) y) y)
#s(approx (+ (* x x) y) y)
y
(fma.f64 x x (+.f64 y y))
x
(+.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) y) #s(hole binary64 y))
#s(approx (+ (* x x) y) #s(hole binary64 (+ y (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) (+ 1 (/ y (pow x 2))))))
#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 #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 (fma.f64 x x y) (fma.f64 x x y)) (*.f64 y y)) (-.f64 (fma.f64 x x y) y))
(/.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 (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))))
(/.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)))))
(fma.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)) (+.f64 y y))
(fma.f64 (fabs.f64 x) (fabs.f64 x) (+.f64 y y))
(fma.f64 (neg.f64 x) (neg.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))
x
(*.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) (+.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)
#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 (+.f64 (/.f64 y (*.f64 x x)) #s(literal 1 binary64)) (*.f64 x x)))
#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) (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)))

eval3.0ms (0.3%)

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

Compiled 524 to 112 computations (78.6% saved)

prune2.0ms (0.1%)

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

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New32133
Fresh000
Picked022
Done000
Total32335
Accuracy
100.0%
Counts
35 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fma.f64 x x (+.f64 y y))
54.4%
(+.f64 #s(approx (+ (* x x) y) y) y)
48.1%
#s(approx (+ (+ (* x x) y) y) (*.f64 x x))
Compiler

Compiled 26 to 17 computations (34.6% saved)

series6.0ms (0.5%)

Memory
-44.6MiB live, 7.1MiB allocated; 10ms collecting garbage
Counts
3 → 7
Calls
Call 1
Inputs
#s(approx (+ (+ (* x x) y) y) (*.f64 x x))
(*.f64 x x)
x
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) y) #s(hole binary64 (* (pow x 2) (+ 1 (* 2 (/ y (pow x 2)))))))
#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)))))
Calls

6 calls:

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

rewrite59.0ms (4.8%)

Memory
24.6MiB live, 114.3MiB allocated; 8ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
031110
032108
1160108
0132199
Stop Event
iter-limit
iter-limit
node-limit
iter-limit
Counts
10 → 43
Calls
Call 1
Inputs
#s(approx (+ (+ (* x x) y) y) (*.f64 x x))
(*.f64 x x)
x
#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) y) #s(hole binary64 (* (pow x 2) (+ 1 (* 2 (/ y (pow x 2)))))))
#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)))))
Outputs
#s(approx (+ (+ (* x x) y) y) (*.f64 x 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) (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) x) (*.f64 #s(literal 1 binary64) x))
(*.f64 (*.f64 #s(literal 1 binary64) x) x)
(*.f64 (*.f64 (fabs.f64 x) #s(literal 1 binary64)) (*.f64 (fabs.f64 x) #s(literal 1 binary64)))
(*.f64 (*.f64 (neg.f64 x) #s(literal 1 binary64)) (*.f64 (neg.f64 x) #s(literal 1 binary64)))
(*.f64 (*.f64 x #s(literal 1 binary64)) (*.f64 x #s(literal 1 binary64)))
(*.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)))
(*.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x)))
(*.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 x)))
(*.f64 (exp.f64 (log.f64 x)) (exp.f64 (log.f64 x)))
(*.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) #s(literal 1 binary64)))
(*.f64 (fabs.f64 x) (fabs.f64 x))
(*.f64 (neg.f64 x) (*.f64 (neg.f64 x) #s(literal 1 binary64)))
(*.f64 (neg.f64 x) (neg.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 (fabs.f64 x) #s(literal 2 binary64))
(pow.f64 (neg.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))
(exp.f64 (+.f64 #s(literal 0 binary64) (*.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 (log.f64 x) #s(literal 2 binary64)))
(+.f64 (cosh.f64 (*.f64 (log.f64 x) #s(literal 2 binary64))) (sinh.f64 (*.f64 (log.f64 x) #s(literal 2 binary64))))
x
#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) (*.f64 x x))
#s(approx 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) y) (*.f64 (fma.f64 x (/.f64 x y) #s(literal 2 binary64)) y))
#s(approx (+ (+ (* x x) y) y) (*.f64 (neg.f64 y) (-.f64 (/.f64 (*.f64 (neg.f64 x) x) y) #s(literal 2 binary64))))

eval4.0ms (0.3%)

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

Compiled 583 to 120 computations (79.4% saved)

prune2.0ms (0.2%)

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

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New40040
Fresh000
Picked011
Done022
Total40343
Accuracy
100.0%
Counts
43 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fma.f64 x x (+.f64 y y))
54.4%
(+.f64 #s(approx (+ (* x x) y) y) y)
48.1%
#s(approx (+ (+ (* x x) y) y) (*.f64 x x))
Compiler

Compiled 59 to 30 computations (49.2% saved)

regimes9.0ms (0.7%)

Memory
-16.6MiB live, 29.4MiB allocated; 3ms collecting garbage
Counts
4 → 1
Calls
Call 1
Inputs
(+.f64 #s(approx (+ (* x x) y) y) y)
#s(approx (+ (+ (* x x) y) y) (*.f64 x x))
(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 12 to 12 computations (0% saved)

regimes5.0ms (0.4%)

Memory
21.1MiB live, 21.1MiB 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

4 calls:

1.0ms
(+.f64 (+.f64 (*.f64 x x) y) y)
1.0ms
y
1.0ms
x
1.0ms
(*.f64 x x)
Results
AccuracySegmentsBranch
92.1%2(*.f64 x x)
83.5%2(+.f64 (+.f64 (*.f64 x x) y) y)
92.1%2x
65.4%3y
Compiler

Compiled 12 to 12 computations (0% saved)

regimes9.0ms (0.7%)

Memory
-33.6MiB live, 23.6MiB allocated; 4ms 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:

6.0ms
(*.f64 x x)
1.0ms
x
1.0ms
(+.f64 (+.f64 (*.f64 x x) y) y)
1.0ms
y
Results
AccuracySegmentsBranch
54.4%1y
54.4%1(+.f64 (+.f64 (*.f64 x x) y) y)
54.4%1(*.f64 x x)
54.4%1x
Compiler

Compiled 12 to 12 computations (0% saved)

bsearch5.0ms (0.4%)

Memory
11.8MiB live, 11.8MiB allocated; 0ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
4.0ms
0.053080322929135136
0.09461340589839463
Samples
2.0ms64×0valid
Compiler

Compiled 90 to 70 computations (22.2% 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)

derivations18.0ms (1.5%)

Memory
0.1MiB live, 45.6MiB allocated; 4ms collecting garbage
Stop Event
done
Compiler

Compiled 39 to 14 computations (64.1% saved)

preprocess24.0ms (1.9%)

Memory
-11.9MiB live, 80.5MiB allocated; 6ms collecting garbage
Remove

(abs x)

Compiler

Compiled 124 to 63 computations (49.2% saved)

end0.0ms (0%)

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

Profiling

Loading profile data...