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

Time bar (total: 2.5s)

start0.0ms (0%)

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

analyze0.0ms (0%)

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

sample1.2s (46.7%)

Memory
6.3MiB live, 1 234.0MiB allocated; 275ms collecting garbage
Samples
791.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 323.0ms
ival-add: 205.0ms (63.5% of total)
ival-mult: 105.0ms (32.5% of total)
ival-true: 7.0ms (2.2% of total)
adjust: 3.0ms (0.9% of total)
ival-assert: 3.0ms (0.9% of total)
Bogosity

explain88.0ms (3.5%)

Memory
4.2MiB live, 181.4MiB allocated; 43ms collecting garbage
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
00-0-(+.f64 (*.f64 x x) y)
00-0-(+.f64 (+.f64 (*.f64 x x) y) y)
00-0-y
00-0-(*.f64 x x)
00-0-x
Confusion
Predicted +Predicted -
+00
-0256
Precision
0/0
Recall
0/0
Confusion?
Predicted +Predicted MaybePredicted -
+000
-00256
Precision?
0/0
Recall?
0/0
Freqs
test
numberfreq
0256
Total Confusion?
Predicted +Predicted MaybePredicted -
+000
-001
Precision?
0/0
Recall?
0/0
Samples
25.0ms512×0valid
Compiler

Compiled 45 to 19 computations (57.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 13.0ms
ival-add: 9.0ms (67.7% of total)
ival-mult: 4.0ms (30.1% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess233.0ms (9.3%)

Memory
34.2MiB live, 220.3MiB allocated; 61ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01541
14738
212136
319835
431235
538235
659035
7138235
8612735
057
087
1167
2387
3827
41177
51557
62477
76087
829007
082746
Stop Event
iter limit
node limit
iter limit
node limit
Calls
Call 1
Inputs
(+.f64 (+.f64 (*.f64 x x) y) y)
Outputs
(+.f64 (+.f64 (*.f64 x x) y) y)
(fma.f64 #s(literal 2 binary64) y (*.f64 x x))
Symmetry

(abs x)

Compiler

Compiled 7 to 5 computations (28.6% saved)

eval0.0ms (0%)

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

Compiled 0 to 2 computations (-∞% saved)

prune0.0ms (0%)

Memory
0.8MiB live, 0.8MiB allocated; 0ms collecting garbage
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(+.f64 (+.f64 (*.f64 x x) y) y)
Compiler

Compiled 7 to 5 computations (28.6% saved)

series4.0ms (0.2%)

Memory
8.3MiB live, 8.3MiB 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
(* 2 y)
(+ (* 2 y) (pow x 2))
y
(+ y (pow x 2))
(pow x 2)
x
(* (pow x 2) (+ 1 (* 2 (/ y (pow x 2)))))
(* (pow x 2) (+ 1 (/ y (pow x 2))))
(* y (+ 2 (/ (pow x 2) y)))
(* y (+ 1 (/ (pow x 2) y)))
(* -1 (* y (- (* -1 (/ (pow x 2) y)) 2)))
(* -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)

simplify227.0ms (9%)

Memory
-17.8MiB live, 270.8MiB allocated; 120ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02756
18256
224356
3110156
4605356
0821348
Stop Event
iter limit
node limit
Counts
12 → 10
Calls
Call 1
Inputs
(* 2 y)
(+ (* 2 y) (pow x 2))
y
(+ y (pow x 2))
(pow x 2)
x
(* (pow x 2) (+ 1 (* 2 (/ y (pow x 2)))))
(* (pow x 2) (+ 1 (/ y (pow x 2))))
(* y (+ 2 (/ (pow x 2) y)))
(* y (+ 1 (/ (pow x 2) y)))
(* -1 (* y (- (* -1 (/ (pow x 2) y)) 2)))
(* -1 (* y (- (* -1 (/ (pow x 2) y)) 1)))
Outputs
(* 2 y)
(*.f64 #s(literal 2 binary64) y)
(+ (* 2 y) (pow x 2))
(fma.f64 #s(literal 2 binary64) y (*.f64 x x))
y
(+ y (pow x 2))
(fma.f64 x x y)
(pow x 2)
(*.f64 x x)
x
(* (pow x 2) (+ 1 (* 2 (/ y (pow x 2)))))
(fma.f64 #s(literal 2 binary64) y (*.f64 x x))
(* (pow x 2) (+ 1 (/ y (pow x 2))))
(fma.f64 x x y)
(* y (+ 2 (/ (pow x 2) y)))
(fma.f64 #s(literal 2 binary64) y (*.f64 x x))
(* y (+ 1 (/ (pow x 2) y)))
(fma.f64 x x y)
(* -1 (* y (- (* -1 (/ (pow x 2) y)) 2)))
(fma.f64 #s(literal 2 binary64) y (*.f64 x x))
(* -1 (* y (- (* -1 (/ (pow x 2) y)) 1)))
(fma.f64 x x y)

rewrite41.0ms (1.6%)

Memory
26.7MiB live, 117.9MiB allocated; 7ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0517
0817
14117
035615
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
5 → 59
Calls
Call 1
Inputs
(+.f64 (+.f64 (*.f64 x x) y) y)
(+.f64 (*.f64 x x) y)
(*.f64 x x)
x
y
Outputs
(/.f64 (-.f64 (*.f64 y y) (pow.f64 (fma.f64 x x y) #s(literal 2 binary64))) (-.f64 y (fma.f64 x x y)))
(/.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) (*.f64 (*.f64 #s(literal 2 binary64) y) (*.f64 #s(literal 2 binary64) y))) (-.f64 (*.f64 x x) (*.f64 #s(literal 2 binary64) y)))
(/.f64 (+.f64 (pow.f64 x #s(literal 6 binary64)) (pow.f64 (*.f64 #s(literal 2 binary64) y) #s(literal 3 binary64))) (+.f64 (pow.f64 x #s(literal 4 binary64)) (-.f64 (*.f64 (*.f64 #s(literal 2 binary64) y) (*.f64 #s(literal 2 binary64) y)) (*.f64 (*.f64 x x) (*.f64 #s(literal 2 binary64) y)))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (fma.f64 x x y) #s(literal 2 binary64)) (*.f64 y y))) (neg.f64 (-.f64 (fma.f64 x x y) y)))
(/.f64 (neg.f64 (+.f64 (pow.f64 y #s(literal 3 binary64)) (pow.f64 (fma.f64 x x y) #s(literal 3 binary64)))) (neg.f64 (fma.f64 y (-.f64 y (fma.f64 x x y)) (pow.f64 (fma.f64 x x y) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (fma.f64 x x y) #s(literal 2 binary64)) (*.f64 y y)) (-.f64 (fma.f64 x x y) y))
(/.f64 (+.f64 (pow.f64 y #s(literal 3 binary64)) (pow.f64 (fma.f64 x x y) #s(literal 3 binary64))) (fma.f64 y y (-.f64 (pow.f64 (fma.f64 x x y) #s(literal 2 binary64)) (*.f64 (fma.f64 x x y) y))))
(/.f64 (+.f64 (pow.f64 y #s(literal 3 binary64)) (pow.f64 (fma.f64 x x y) #s(literal 3 binary64))) (fma.f64 y (-.f64 y (fma.f64 x x y)) (pow.f64 (fma.f64 x x y) #s(literal 2 binary64))))
(fma.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)) (*.f64 #s(literal 2 binary64) y))
(fma.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 x)) (*.f64 #s(literal 2 binary64) y))
(fma.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x)) (*.f64 #s(literal 2 binary64) y))
(fma.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)) (*.f64 #s(literal 2 binary64) y))
(fma.f64 (neg.f64 x) (neg.f64 x) (*.f64 #s(literal 2 binary64) y))
(fma.f64 (fabs.f64 x) (fabs.f64 x) (*.f64 #s(literal 2 binary64) y))
(fma.f64 #s(literal 2 binary64) y (*.f64 x x))
(fma.f64 x x (*.f64 #s(literal 2 binary64) y))
(-.f64 (/.f64 (pow.f64 (fma.f64 x x y) #s(literal 2 binary64)) (-.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) #s(literal 3 binary64)) (fma.f64 y (-.f64 y (fma.f64 x x y)) (pow.f64 (fma.f64 x x y) #s(literal 2 binary64)))) (/.f64 (pow.f64 y #s(literal 3 binary64)) (fma.f64 y (-.f64 y (fma.f64 x x y)) (pow.f64 (fma.f64 x x y) #s(literal 2 binary64)))))
(+.f64 (*.f64 #s(literal 2 binary64) y) (*.f64 x x))
(+.f64 (fma.f64 x x y) y)
(+.f64 y (fma.f64 x x y))
(+.f64 (*.f64 x x) (*.f64 #s(literal 2 binary64) y))
(/.f64 (-.f64 (*.f64 y y) (pow.f64 x #s(literal 4 binary64))) (-.f64 y (*.f64 x x)))
(/.f64 (neg.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) (*.f64 y y))) (neg.f64 (-.f64 (*.f64 x x) y)))
(/.f64 (neg.f64 (+.f64 (pow.f64 x #s(literal 6 binary64)) (pow.f64 y #s(literal 3 binary64)))) (neg.f64 (fma.f64 y (-.f64 y (*.f64 x x)) (pow.f64 x #s(literal 4 binary64)))))
(/.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) (*.f64 y y)) (-.f64 (*.f64 x x) y))
(/.f64 (+.f64 (pow.f64 x #s(literal 6 binary64)) (pow.f64 y #s(literal 3 binary64))) (fma.f64 y y (-.f64 (pow.f64 x #s(literal 4 binary64)) (*.f64 y (*.f64 x x)))))
(/.f64 (+.f64 (pow.f64 x #s(literal 6 binary64)) (pow.f64 y #s(literal 3 binary64))) (fma.f64 y (-.f64 y (*.f64 x x)) (pow.f64 x #s(literal 4 binary64))))
(fma.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)) 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 (neg.f64 x) (neg.f64 x) y)
(fma.f64 (fabs.f64 x) (fabs.f64 x) y)
(fma.f64 x x y)
(-.f64 (/.f64 (pow.f64 x #s(literal 4 binary64)) (-.f64 (*.f64 x x) y)) (/.f64 (*.f64 y y) (-.f64 (*.f64 x x) y)))
(-.f64 y (*.f64 (neg.f64 (neg.f64 x)) (neg.f64 x)))
(-.f64 y (*.f64 (neg.f64 (fabs.f64 x)) (fabs.f64 x)))
(-.f64 y (*.f64 (neg.f64 x) x))
(-.f64 y (*.f64 x (neg.f64 x)))
(+.f64 (/.f64 (pow.f64 x #s(literal 6 binary64)) (fma.f64 y (-.f64 y (*.f64 x x)) (pow.f64 x #s(literal 4 binary64)))) (/.f64 (pow.f64 y #s(literal 3 binary64)) (fma.f64 y (-.f64 y (*.f64 x x)) (pow.f64 x #s(literal 4 binary64)))))
(+.f64 y (*.f64 x x))
(+.f64 (*.f64 x x) y)
(*.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)))
(*.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 (neg.f64 x) (neg.f64 x))
(*.f64 (fabs.f64 x) (fabs.f64 x))
(*.f64 x x)
(pow.f64 (neg.f64 x) #s(literal 2 binary64))
(pow.f64 (fabs.f64 x) #s(literal 2 binary64))
(pow.f64 x #s(literal 2 binary64))
(neg.f64 (*.f64 (neg.f64 x) x))
(neg.f64 (*.f64 x (neg.f64 x)))
(fabs.f64 (*.f64 x x))
(exp.f64 (*.f64 (log.f64 x) #s(literal 2 binary64)))
x
y

eval12.0ms (0.5%)

Memory
-28.4MiB live, 25.0MiB allocated; 4ms collecting garbage
Compiler

Compiled 816 to 181 computations (77.8% saved)

prune2.0ms (0.1%)

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

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New63265
Fresh000
Picked101
Done000
Total64266
Accuracy
100.0%
Counts
66 → 2
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(+.f64 (fma.f64 x x y) y)
51.2%
#s(approx (+ (+ (* x x) y) y) (*.f64 #s(literal 2 binary64) y))
Compiler

Compiled 17 to 12 computations (29.4% saved)

series3.0ms (0.1%)

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

6 calls:

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

simplify162.0ms (6.4%)

Memory
-3.0MiB live, 223.0MiB allocated; 41ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02756
18256
224356
3110156
4605356
0821348
Stop Event
iter limit
node limit
Counts
12 → 10
Calls
Call 1
Inputs
(* 2 y)
(+ (* 2 y) (pow x 2))
y
(+ y (pow x 2))
x
(pow x 2)
(* (pow x 2) (+ 1 (* 2 (/ y (pow x 2)))))
(* (pow x 2) (+ 1 (/ y (pow x 2))))
(* y (+ 2 (/ (pow x 2) y)))
(* y (+ 1 (/ (pow x 2) y)))
(* -1 (* y (- (* -1 (/ (pow x 2) y)) 2)))
(* -1 (* y (- (* -1 (/ (pow x 2) y)) 1)))
Outputs
(* 2 y)
(*.f64 #s(literal 2 binary64) y)
(+ (* 2 y) (pow x 2))
(fma.f64 #s(literal 2 binary64) y (*.f64 x x))
y
(+ y (pow x 2))
(fma.f64 x x y)
x
(pow x 2)
(*.f64 x x)
(* (pow x 2) (+ 1 (* 2 (/ y (pow x 2)))))
(fma.f64 #s(literal 2 binary64) y (*.f64 x x))
(* (pow x 2) (+ 1 (/ y (pow x 2))))
(fma.f64 x x y)
(* y (+ 2 (/ (pow x 2) y)))
(fma.f64 #s(literal 2 binary64) y (*.f64 x x))
(* y (+ 1 (/ (pow x 2) y)))
(fma.f64 x x y)
(* -1 (* y (- (* -1 (/ (pow x 2) y)) 2)))
(fma.f64 #s(literal 2 binary64) y (*.f64 x x))
(* -1 (* y (- (* -1 (/ (pow x 2) y)) 1)))
(fma.f64 x x y)

rewrite40.0ms (1.6%)

Memory
10.9MiB live, 56.1MiB allocated; 8ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01026
01226
14726
038026
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
7 → 61
Calls
Call 1
Inputs
#s(approx (+ (+ (* x x) y) y) (*.f64 #s(literal 2 binary64) y))
(*.f64 #s(literal 2 binary64) y)
#s(literal 2 binary64)
y
(+.f64 (fma.f64 x x y) y)
(fma.f64 x x y)
x
Outputs
#s(approx (+ (+ (* x x) y) y) (*.f64 #s(literal 2 binary64) 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))))
(fma.f64 #s(literal 1 binary64) y (*.f64 #s(literal 1 binary64) y))
(fma.f64 y #s(literal 1 binary64) (*.f64 y #s(literal 1 binary64)))
(+.f64 (*.f64 #s(literal 1 binary64) y) (*.f64 #s(literal 1 binary64) y))
(+.f64 (*.f64 y #s(literal 1 binary64)) (*.f64 y #s(literal 1 binary64)))
(+.f64 y y)
#s(literal 2 binary64)
y
(/.f64 (-.f64 (*.f64 y y) (pow.f64 (fma.f64 x x y) #s(literal 2 binary64))) (-.f64 y (fma.f64 x x y)))
(/.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) (*.f64 (*.f64 #s(literal 2 binary64) y) (*.f64 #s(literal 2 binary64) y))) (-.f64 (*.f64 x x) (*.f64 #s(literal 2 binary64) y)))
(/.f64 (+.f64 (pow.f64 x #s(literal 6 binary64)) (pow.f64 (*.f64 #s(literal 2 binary64) y) #s(literal 3 binary64))) (+.f64 (pow.f64 x #s(literal 4 binary64)) (-.f64 (*.f64 (*.f64 #s(literal 2 binary64) y) (*.f64 #s(literal 2 binary64) y)) (*.f64 (*.f64 x x) (*.f64 #s(literal 2 binary64) y)))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (fma.f64 x x y) #s(literal 2 binary64)) (*.f64 y y))) (neg.f64 (-.f64 (fma.f64 x x y) y)))
(/.f64 (neg.f64 (+.f64 (pow.f64 y #s(literal 3 binary64)) (pow.f64 (fma.f64 x x y) #s(literal 3 binary64)))) (neg.f64 (fma.f64 y (-.f64 y (fma.f64 x x y)) (pow.f64 (fma.f64 x x y) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (fma.f64 x x y) #s(literal 2 binary64)) (*.f64 y y)) (-.f64 (fma.f64 x x y) y))
(/.f64 (+.f64 (pow.f64 y #s(literal 3 binary64)) (pow.f64 (fma.f64 x x y) #s(literal 3 binary64))) (fma.f64 y y (-.f64 (pow.f64 (fma.f64 x x y) #s(literal 2 binary64)) (*.f64 (fma.f64 x x y) y))))
(/.f64 (+.f64 (pow.f64 y #s(literal 3 binary64)) (pow.f64 (fma.f64 x x y) #s(literal 3 binary64))) (fma.f64 y (-.f64 y (fma.f64 x x y)) (pow.f64 (fma.f64 x x y) #s(literal 2 binary64))))
(fma.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 x)) (*.f64 #s(literal 2 binary64) y))
(fma.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x)) (*.f64 #s(literal 2 binary64) y))
(fma.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)) (*.f64 #s(literal 2 binary64) y))
(fma.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)) (*.f64 #s(literal 2 binary64) y))
(fma.f64 (pow.f64 x #s(literal 1 binary64)) x (*.f64 #s(literal 2 binary64) y))
(fma.f64 (neg.f64 x) (neg.f64 x) (*.f64 #s(literal 2 binary64) y))
(fma.f64 (fabs.f64 x) (fabs.f64 x) (*.f64 #s(literal 2 binary64) 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 #s(literal 2 binary64) y))
(-.f64 (/.f64 (pow.f64 (fma.f64 x x y) #s(literal 2 binary64)) (-.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 (pow.f64 (fma.f64 x x y) #s(literal 3 binary64)) (fma.f64 y (-.f64 y (fma.f64 x x y)) (pow.f64 (fma.f64 x x y) #s(literal 2 binary64)))) (/.f64 (pow.f64 y #s(literal 3 binary64)) (fma.f64 y (-.f64 y (fma.f64 x x y)) (pow.f64 (fma.f64 x x y) #s(literal 2 binary64)))))
(+.f64 (fma.f64 x x y) y)
(+.f64 (*.f64 #s(literal 2 binary64) y) (*.f64 x x))
(+.f64 y (fma.f64 x x y))
(+.f64 (*.f64 x x) (*.f64 #s(literal 2 binary64) y))
(/.f64 (-.f64 (*.f64 y y) (pow.f64 x #s(literal 4 binary64))) (-.f64 y (*.f64 x x)))
(/.f64 (neg.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) (*.f64 y y))) (neg.f64 (-.f64 (*.f64 x x) y)))
(/.f64 (neg.f64 (+.f64 (pow.f64 x #s(literal 6 binary64)) (pow.f64 y #s(literal 3 binary64)))) (neg.f64 (fma.f64 y (-.f64 y (*.f64 x x)) (pow.f64 x #s(literal 4 binary64)))))
(/.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) (*.f64 y y)) (-.f64 (*.f64 x x) y))
(/.f64 (+.f64 (pow.f64 x #s(literal 6 binary64)) (pow.f64 y #s(literal 3 binary64))) (fma.f64 y y (-.f64 (pow.f64 x #s(literal 4 binary64)) (*.f64 y (*.f64 x x)))))
(/.f64 (+.f64 (pow.f64 x #s(literal 6 binary64)) (pow.f64 y #s(literal 3 binary64))) (fma.f64 y (-.f64 y (*.f64 x x)) (pow.f64 x #s(literal 4 binary64))))
(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 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)) y)
(fma.f64 (pow.f64 x #s(literal 1 binary64)) x y)
(fma.f64 (neg.f64 x) (neg.f64 x) y)
(fma.f64 (fabs.f64 x) (fabs.f64 x) y)
(fma.f64 x x y)
(-.f64 (/.f64 (pow.f64 x #s(literal 4 binary64)) (-.f64 (*.f64 x x) y)) (/.f64 (*.f64 y y) (-.f64 (*.f64 x x) y)))
(-.f64 y (*.f64 (neg.f64 (neg.f64 x)) (neg.f64 x)))
(-.f64 y (*.f64 (neg.f64 (fabs.f64 x)) (fabs.f64 x)))
(-.f64 y (*.f64 (neg.f64 x) x))
(-.f64 y (*.f64 x (neg.f64 x)))
(+.f64 (/.f64 (pow.f64 x #s(literal 6 binary64)) (fma.f64 y (-.f64 y (*.f64 x x)) (pow.f64 x #s(literal 4 binary64)))) (/.f64 (pow.f64 y #s(literal 3 binary64)) (fma.f64 y (-.f64 y (*.f64 x x)) (pow.f64 x #s(literal 4 binary64)))))
(+.f64 y (*.f64 x x))
(+.f64 (*.f64 x x) y)
x

eval6.0ms (0.2%)

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

Compiled 880 to 170 computations (80.7% saved)

prune6.0ms (0.2%)

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

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New65267
Fresh000
Picked112
Done000
Total66369
Accuracy
100.0%
Counts
69 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(+.f64 (fma.f64 x x y) y)
51.2%
#s(approx (+ (+ (* x x) y) y) (+.f64 y y))
51.3%
#s(approx (+ (+ (* x x) y) y) (*.f64 x x))
Compiler

Compiled 28 to 18 computations (35.7% saved)

series3.0ms (0.1%)

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

simplify145.0ms (5.8%)

Memory
11.6MiB live, 200.1MiB allocated; 44ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01936
15736
218736
392436
4495736
0813332
Stop Event
iter limit
node limit
Counts
8 → 6
Calls
Call 1
Inputs
(* 2 y)
(+ (* 2 y) (pow x 2))
(pow x 2)
x
(* (pow x 2) (+ 1 (* 2 (/ y (pow x 2)))))
y
(* y (+ 2 (/ (pow x 2) y)))
(* -1 (* y (- (* -1 (/ (pow x 2) y)) 2)))
Outputs
(* 2 y)
(*.f64 #s(literal 2 binary64) y)
(+ (* 2 y) (pow x 2))
(fma.f64 #s(literal 2 binary64) y (*.f64 x x))
(pow x 2)
(*.f64 x x)
x
(* (pow x 2) (+ 1 (* 2 (/ y (pow x 2)))))
(fma.f64 #s(literal 2 binary64) y (*.f64 x x))
y
(* y (+ 2 (/ (pow x 2) y)))
(fma.f64 #s(literal 2 binary64) y (*.f64 x x))
(* -1 (* y (- (* -1 (/ (pow x 2) y)) 2)))
(fma.f64 #s(literal 2 binary64) y (*.f64 x x))

rewrite52.0ms (2.1%)

Memory
-17.5MiB live, 57.8MiB allocated; 13ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0930
01130
15030
041528
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
6 → 26
Calls
Call 1
Inputs
#s(approx (+ (+ (* x x) y) y) (*.f64 x x))
(*.f64 x x)
x
#s(approx (+ (+ (* x x) y) y) (+.f64 y y))
(+.f64 y y)
y
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 (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 (neg.f64 x) (neg.f64 x))
(*.f64 (fabs.f64 x) (fabs.f64 x))
(*.f64 x x)
(pow.f64 (neg.f64 x) #s(literal 2 binary64))
(pow.f64 (fabs.f64 x) #s(literal 2 binary64))
(pow.f64 x #s(literal 2 binary64))
(neg.f64 (*.f64 (neg.f64 x) x))
(neg.f64 (*.f64 x (neg.f64 x)))
(fabs.f64 (*.f64 x x))
(exp.f64 (*.f64 (log.f64 x) #s(literal 2 binary64)))
x
#s(approx (+ (+ (* x x) y) y) (*.f64 #s(literal 2 binary64) y))
(*.f64 #s(literal 2 binary64) y)
(*.f64 y #s(literal 2 binary64))
(/.f64 (neg.f64 (*.f64 #s(literal 2 binary64) (pow.f64 y #s(literal 3 binary64)))) (neg.f64 (fma.f64 y y #s(literal 0 binary64))))
(/.f64 #s(literal 0 binary64) #s(literal 0 binary64))
(/.f64 (*.f64 #s(literal 2 binary64) (pow.f64 y #s(literal 3 binary64))) (fma.f64 y y #s(literal 0 binary64)))
(-.f64 (/.f64 (*.f64 y y) #s(literal 0 binary64)) (/.f64 (*.f64 y y) #s(literal 0 binary64)))
(+.f64 (/.f64 (pow.f64 y #s(literal 3 binary64)) (fma.f64 y y #s(literal 0 binary64))) (/.f64 (pow.f64 y #s(literal 3 binary64)) (fma.f64 y y #s(literal 0 binary64))))
(+.f64 y y)
y

eval3.0ms (0.1%)

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

Compiled 404 to 75 computations (81.4% saved)

prune2.0ms (0.1%)

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

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New30030
Fresh000
Picked022
Done011
Total30333
Accuracy
100.0%
Counts
33 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(+.f64 (fma.f64 x x y) y)
51.2%
#s(approx (+ (+ (* x x) y) y) (+.f64 y y))
51.3%
#s(approx (+ (+ (* x x) y) y) (*.f64 x x))
Compiler

Compiled 74 to 34 computations (54.1% saved)

regimes71.0ms (2.8%)

Memory
-21.6MiB live, 23.1MiB allocated; 9ms collecting garbage
Counts
5 → 1
Calls
Call 1
Inputs
#s(approx (+ (+ (* x x) y) y) (+.f64 y y))
#s(approx (+ (+ (* x x) y) y) (*.f64 #s(literal 2 binary64) y))
#s(approx (+ (+ (* x x) y) y) (*.f64 x x))
(+.f64 (fma.f64 x x y) y)
(+.f64 (+.f64 (*.f64 x x) y) y)
Outputs
(+.f64 (fma.f64 x x y) y)
Calls

4 calls:

65.0ms
y
2.0ms
x
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)

regimes6.0ms (0.2%)

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

4 calls:

2.0ms
y
1.0ms
x
1.0ms
(+.f64 (+.f64 (*.f64 x x) y) y)
1.0ms
(*.f64 x x)
Results
AccuracySegmentsBranch
89.8%2(*.f64 x x)
78.2%2(+.f64 (+.f64 (*.f64 x x) y) y)
89.8%2x
70.3%3y
Compiler

Compiled 12 to 12 computations (0% saved)

regimes51.0ms (2%)

Memory
-30.9MiB live, 14.3MiB allocated; 6ms collecting garbage
Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

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

4 calls:

47.0ms
y
1.0ms
x
1.0ms
(+.f64 (+.f64 (*.f64 x x) y) y)
1.0ms
(*.f64 x x)
Results
AccuracySegmentsBranch
51.2%1y
51.2%1(+.f64 (+.f64 (*.f64 x x) y) y)
51.2%1(*.f64 x x)
51.2%1x
Compiler

Compiled 12 to 12 computations (0% saved)

bsearch7.0ms (0.3%)

Memory
16.9MiB live, 16.9MiB allocated; 0ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
6.0ms
1328152486.0624638
3801676012.908379
Samples
3.0ms80×0valid
Compiler

Compiled 120 to 90 computations (25% saved)

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

simplify53.0ms (2.1%)

Memory
2.7MiB live, 48.8MiB allocated; 6ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01443
12243
24443
38843
412443
516743
631743
7150343
8586943
Stop Event
node limit
Calls
Call 1
Inputs
(+.f64 (fma.f64 x x y) y)
(if (<=.f64 x #s(literal 1650000000 binary64)) #s(approx (+ (+ (* x x) y) y) (+.f64 y y)) #s(approx (+ (+ (* x x) y) y) (*.f64 x x)))
#s(approx (+ (+ (* x x) y) y) (+.f64 y y))
Outputs
(+.f64 (fma.f64 x x y) y)
(if (<=.f64 x #s(literal 1650000000 binary64)) #s(approx (+ (+ (* x x) y) y) (+.f64 y y)) #s(approx (+ (+ (* x x) y) y) (*.f64 x x)))
#s(approx (+ (+ (* x x) y) y) (+.f64 y y))

derivations101.0ms (4%)

Memory
-1.5MiB live, 98.3MiB allocated; 11ms collecting garbage
Stop Event
done
Compiler

Compiled 43 to 14 computations (67.4% saved)

preprocess22.0ms (0.9%)

Memory
17.2MiB live, 62.9MiB allocated; 3ms collecting garbage
Remove

(abs x)

Compiler

Compiled 126 to 56 computations (55.6% saved)

end0.0ms (0%)

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

Profiling

Loading profile data...