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

Time bar (total: 3.2s)

start0.0ms (0%)

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

analyze0.0ms (0%)

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

sample751.0ms (23.2%)

Memory
-2.6MiB live, 1 400.8MiB allocated; 313ms collecting garbage
Samples
499.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 189.0ms
ival-add: 115.0ms (60.7% of total)
ival-mult: 64.0ms (33.8% of total)
ival-true: 5.0ms (2.6% of total)
ival-assert: 3.0ms (1.6% of total)
adjust: 2.0ms (1.1% of total)
Bogosity

explain66.0ms (2%)

Memory
8.5MiB live, 152.3MiB allocated; 10ms 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
22.0ms512×0valid
Compiler

Compiled 45 to 19 computations (57.8% saved)

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

preprocess212.0ms (6.6%)

Memory
32.7MiB live, 218.4MiB allocated; 18ms 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.9MiB live, 0.9MiB 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)

simplify182.0ms (5.6%)

Memory
-7.4MiB live, 164.2MiB allocated; 82ms collecting garbage
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 x x)
cost-diff0
(+.f64 (+.f64 (*.f64 x x) y) y)
cost-diff1
(+.f64 (*.f64 x x) y)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0517
0817
11617
23817
38217
411717
515517
624717
760817
8290017
0827415
Stop Event
iter limit
node limit
iter limit
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 x x) y) y)
(fma.f64 #s(literal 2 binary64) y (*.f64 x x))
(+.f64 (*.f64 x x) y)
(fma.f64 x x y)
(*.f64 x x)
x
y

localize15.0ms (0.5%)

Memory
28.1MiB live, 28.1MiB allocated; 0ms collecting garbage
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 x x)
accuracy0.0078125
(+.f64 (+.f64 (*.f64 x x) y) y)
accuracy0.0078125
(+.f64 (*.f64 x x) y)
Samples
11.0ms256×0valid
Compiler

Compiled 19 to 7 computations (63.2% saved)

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

series3.0ms (0.1%)

Memory
7.9MiB live, 7.9MiB allocated; 0ms collecting garbage
Counts
3 → 13
Calls
Call 1
Inputs
(+.f64 (*.f64 x x) y)
(+.f64 (+.f64 (*.f64 x x) y) y)
(*.f64 x x)
Outputs
#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) #s(hole binary64 (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 (+ (* 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) #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
x
@inf
((+ (* x x) y) (+ (+ (* x x) y) y) (* x x))
1.0ms
x
@0
((+ (* x x) y) (+ (+ (* x x) y) y) (* x x))
1.0ms
y
@-inf
((+ (* x x) y) (+ (+ (* x x) y) y) (* x x))
0.0ms
x
@-inf
((+ (* x x) y) (+ (+ (* x x) y) y) (* x x))
0.0ms
y
@inf
((+ (* x x) y) (+ (+ (* x x) y) y) (* x x))

simplify213.0ms (6.6%)

Memory
-10.6MiB live, 262.2MiB allocated; 131ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
043149
1107149
2345149
31940149
08901129
Stop Event
iter limit
node limit
Counts
13 → 13
Calls
Call 1
Inputs
#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) #s(hole binary64 (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 (+ (* 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) #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) #s(hole binary64 y))
#s(approx (+ (* x x) y) y)
#s(approx (+ (* x x) y) #s(hole binary64 (+ y (pow x 2))))
#s(approx (+ (* x x) y) (fma.f64 x x y))
#s(approx (+ (+ (* x x) y) y) #s(hole binary64 (* 2 y)))
#s(approx (+ (+ (* x x) y) y) (*.f64 #s(literal 2 binary64) y))
#s(approx (+ (+ (* x x) y) y) #s(hole binary64 (+ (* 2 y) (pow x 2))))
#s(approx (+ (+ (* x x) y) y) (fma.f64 #s(literal 2 binary64) y (*.f64 x x)))
#s(approx (* x x) #s(hole binary64 (pow x 2)))
#s(approx (* x x) (*.f64 x x))
#s(approx (+ (* x x) y) #s(hole binary64 (pow x 2)))
#s(approx (+ (* x x) y) (*.f64 x x))
#s(approx (+ (* x x) y) #s(hole binary64 (* (pow x 2) (+ 1 (/ y (pow x 2))))))
#s(approx (+ (* x x) y) (fma.f64 x x y))
#s(approx (+ (+ (* x x) y) y) #s(hole binary64 (pow x 2)))
#s(approx (+ (+ (* x x) y) y) (*.f64 x 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) (fma.f64 #s(literal 2 binary64) y (*.f64 x x)))
#s(approx (+ (* x x) y) #s(hole binary64 (* y (+ 1 (/ (pow x 2) y)))))
#s(approx (+ (* x x) y) (fma.f64 x x y))
#s(approx (+ (+ (* x x) y) y) #s(hole binary64 (* y (+ 2 (/ (pow x 2) y)))))
#s(approx (+ (+ (* x x) y) y) (fma.f64 #s(literal 2 binary64) y (*.f64 x x)))
#s(approx (+ (* x x) y) #s(hole binary64 (* -1 (* y (- (* -1 (/ (pow x 2) y)) 1)))))
#s(approx (+ (* x x) y) (fma.f64 x x y))
#s(approx (+ (+ (* x x) y) y) #s(hole binary64 (* -1 (* y (- (* -1 (/ (pow x 2) y)) 2)))))
#s(approx (+ (+ (* x x) y) y) (fma.f64 #s(literal 2 binary64) y (*.f64 x x)))

rewrite57.0ms (1.8%)

Memory
8.9MiB live, 63.6MiB allocated; 47ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0515
0815
14115
035613
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
3 → 57
Calls
Call 1
Inputs
(+.f64 (*.f64 x x) y)
(+.f64 (+.f64 (*.f64 x x) y) y)
(*.f64 x x)
Outputs
(/.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 (-.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 (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)))

eval14.0ms (0.4%)

Memory
-15.9MiB live, 31.7MiB allocated; 14ms collecting garbage
Compiler

Compiled 819 to 186 computations (77.3% saved)

prune3.0ms (0.1%)

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

5 alts after pruning (5 fresh and 0 done)

PrunedKeptTotal
New59564
Fresh000
Picked101
Done000
Total60565
Accuracy
100.0%
Counts
65 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fma.f64 x x (*.f64 #s(literal 2 binary64) y))
100.0%
(+.f64 (fma.f64 x x y) y)
63.2%
(+.f64 #s(approx (+ (* x x) y) (*.f64 x x)) y)
45.4%
(+.f64 #s(approx (+ (* x x) y) y) y)
56.4%
#s(approx (+ (+ (* x x) y) y) (*.f64 x x))
Compiler

Compiled 86 to 58 computations (32.6% saved)

simplify123.0ms (3.8%)

Memory
-21.1MiB live, 213.6MiB allocated; 23ms collecting garbage
Localize:

Found 11 expressions of interest:

NewMetricScoreProgram
cost-diff0
(fma.f64 x x y)
cost-diff0
(+.f64 (fma.f64 x x y) y)
cost-diff0
(*.f64 x x)
cost-diff0
#s(approx (+ (* x x) y) (*.f64 x x))
cost-diff0
(+.f64 #s(approx (+ (* x x) y) (*.f64 x x)) y)
cost-diff0
(*.f64 x x)
cost-diff0
#s(approx (+ (+ (* x x) y) y) (*.f64 x x))
cost-diff0
#s(approx (+ (* x x) y) y)
cost-diff0
(+.f64 #s(approx (+ (* x x) y) y) y)
cost-diff0
(*.f64 #s(literal 2 binary64) y)
cost-diff0
(fma.f64 x x (*.f64 #s(literal 2 binary64) y))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01676
02376
14076
27976
315476
427176
568476
6309676
0847076
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
(fma.f64 x x (*.f64 #s(literal 2 binary64) y))
x
(*.f64 #s(literal 2 binary64) y)
#s(literal 2 binary64)
y
(+.f64 #s(approx (+ (* x x) y) y) y)
#s(approx (+ (* x x) y) y)
y
#s(approx (+ (+ (* x x) y) y) (*.f64 x x))
(*.f64 x x)
x
(+.f64 #s(approx (+ (* x x) y) (*.f64 x x)) y)
#s(approx (+ (* x x) y) (*.f64 x x))
(*.f64 x x)
x
y
(+.f64 (fma.f64 x x y) y)
(fma.f64 x x y)
x
y
Outputs
(fma.f64 x x (*.f64 #s(literal 2 binary64) y))
(fma.f64 x x (*.f64 y #s(literal 2 binary64)))
x
(*.f64 #s(literal 2 binary64) y)
(*.f64 y #s(literal 2 binary64))
#s(literal 2 binary64)
y
(+.f64 #s(approx (+ (* x x) y) y) y)
#s(approx (+ (* x x) y) y)
y
#s(approx (+ (+ (* x x) y) y) (*.f64 x x))
(*.f64 x x)
x
(+.f64 #s(approx (+ (* x x) y) (*.f64 x x)) y)
#s(approx (+ (* x x) y) (*.f64 x x))
(*.f64 x x)
x
y
(+.f64 (fma.f64 x x y) y)
(fma.f64 x x (*.f64 y #s(literal 2 binary64)))
(fma.f64 x x y)
x
y

localize95.0ms (2.9%)

Memory
26.2MiB live, 72.9MiB allocated; 4ms collecting garbage
Localize:

Found 11 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(fma.f64 x x y)
accuracy0.0078125
(+.f64 (fma.f64 x x y) y)
accuracy0.0
(*.f64 x x)
accuracy0.0078125
(+.f64 #s(approx (+ (* x x) y) (*.f64 x x)) y)
accuracy27.892453315972816
#s(approx (+ (* x x) y) (*.f64 x x))
accuracy0.0
(*.f64 x x)
accuracy27.90609101974888
#s(approx (+ (+ (* x x) y) y) (*.f64 x x))
accuracy0.0078125
(+.f64 #s(approx (+ (* x x) y) y) y)
accuracy34.98751740086854
#s(approx (+ (* x x) y) y)
accuracy0.0
(fma.f64 x x (*.f64 #s(literal 2 binary64) y))
accuracy0.0
(*.f64 #s(literal 2 binary64) y)
Samples
87.0ms256×0valid
Compiler

Compiled 70 to 10 computations (85.7% saved)

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

series4.0ms (0.1%)

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

simplify287.0ms (8.9%)

Memory
-39.2MiB live, 217.7MiB allocated; 82ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
051238
1118238
2356238
31962238
08893208
Stop Event
iter limit
node limit
Counts
20 → 20
Calls
Call 1
Inputs
#s(approx (+ (* x x) (* 2 y)) #s(hole binary64 (* 2 y)))
#s(approx (+ (* x x) (* 2 y)) #s(hole binary64 (+ (* 2 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) #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 x) (* 2 y)) #s(hole binary64 (pow x 2)))
#s(approx (+ (* x x) (* 2 y)) #s(hole binary64 (* (pow x 2) (+ 1 (* 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 (* 2 y) #s(hole binary64 (* 2 y)))
#s(approx (+ (* x x) (* 2 y)) #s(hole binary64 (* y (+ 2 (/ (pow x 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) (* 2 y)) #s(hole binary64 (* -1 (* y (- (* -1 (/ (pow x 2) y)) 2)))))
#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
#s(approx (+ (* x x) (* 2 y)) #s(hole binary64 (* 2 y)))
#s(approx (+ (* x x) (* 2 y)) (*.f64 #s(literal 2 binary64) y))
#s(approx (+ (* x x) (* 2 y)) #s(hole binary64 (+ (* 2 y) (pow x 2))))
#s(approx (+ (* x x) (* 2 y)) (fma.f64 #s(literal 2 binary64) y (*.f64 x x)))
#s(approx (+ (+ (* x x) y) y) #s(hole binary64 (* 2 y)))
#s(approx (+ (* x x) (* 2 y)) (*.f64 #s(literal 2 binary64) y))
#s(approx (+ (+ (* x x) y) y) #s(hole binary64 (+ (* 2 y) (pow x 2))))
#s(approx (+ (* x x) (* 2 y)) (fma.f64 #s(literal 2 binary64) y (*.f64 x x)))
#s(approx (+ (* x x) y) #s(hole binary64 y))
#s(approx (+ (* x x) y) y)
#s(approx (+ (* x x) y) #s(hole binary64 (+ y (pow x 2))))
#s(approx (+ (* x x) y) (fma.f64 x x y))
#s(approx (* x x) #s(hole binary64 (pow x 2)))
#s(approx (* x x) (*.f64 x x))
#s(approx (+ (* x x) (* 2 y)) #s(hole binary64 (pow x 2)))
#s(approx (+ (* x x) (* 2 y)) (*.f64 x x))
#s(approx (+ (* x x) (* 2 y)) #s(hole binary64 (* (pow x 2) (+ 1 (* 2 (/ y (pow x 2)))))))
#s(approx (+ (* x x) (* 2 y)) (fma.f64 #s(literal 2 binary64) y (*.f64 x x)))
#s(approx (+ (+ (* x x) y) y) #s(hole binary64 (pow x 2)))
#s(approx (+ (* x x) (* 2 y)) (*.f64 x x))
#s(approx (+ (+ (* x x) y) y) #s(hole binary64 (* (pow x 2) (+ 1 (* 2 (/ y (pow x 2)))))))
#s(approx (+ (* x x) (* 2 y)) (fma.f64 #s(literal 2 binary64) y (*.f64 x x)))
#s(approx (+ (* x x) y) #s(hole binary64 (pow x 2)))
#s(approx (+ (* x x) y) (*.f64 x x))
#s(approx (+ (* x x) y) #s(hole binary64 (* (pow x 2) (+ 1 (/ y (pow x 2))))))
#s(approx (+ (* x x) y) (fma.f64 x x y))
#s(approx (* 2 y) #s(hole binary64 (* 2 y)))
#s(approx (* 2 y) (*.f64 #s(literal 2 binary64) y))
#s(approx (+ (* x x) (* 2 y)) #s(hole binary64 (* y (+ 2 (/ (pow x 2) y)))))
#s(approx (+ (* x x) (* 2 y)) (fma.f64 #s(literal 2 binary64) y (*.f64 x x)))
#s(approx (+ (+ (* x x) y) y) #s(hole binary64 (* y (+ 2 (/ (pow x 2) y)))))
#s(approx (+ (* x x) (* 2 y)) (fma.f64 #s(literal 2 binary64) y (*.f64 x x)))
#s(approx (+ (* x x) y) #s(hole binary64 (* y (+ 1 (/ (pow x 2) y)))))
#s(approx (+ (* x x) y) (fma.f64 x x y))
#s(approx (+ (* x x) (* 2 y)) #s(hole binary64 (* -1 (* y (- (* -1 (/ (pow x 2) y)) 2)))))
#s(approx (+ (* x x) (* 2 y)) (fma.f64 #s(literal 2 binary64) y (*.f64 x x)))
#s(approx (+ (+ (* x x) y) y) #s(hole binary64 (* -1 (* y (- (* -1 (/ (pow x 2) y)) 2)))))
#s(approx (+ (* x x) (* 2 y)) (fma.f64 #s(literal 2 binary64) y (*.f64 x x)))
#s(approx (+ (* x x) y) #s(hole binary64 (* -1 (* y (- (* -1 (/ (pow x 2) y)) 1)))))
#s(approx (+ (* x x) y) (fma.f64 x x y))

rewrite57.0ms (1.8%)

Memory
9.5MiB live, 56.4MiB allocated; 2ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01664
02364
19464
071964
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
10 → 143
Calls
Call 1
Inputs
(fma.f64 x x (*.f64 #s(literal 2 binary64) y))
(*.f64 #s(literal 2 binary64) y)
(+.f64 #s(approx (+ (* x x) y) y) y)
#s(approx (+ (* x x) y) y)
#s(approx (+ (+ (* x x) y) y) (*.f64 x x))
(*.f64 x x)
(+.f64 #s(approx (+ (* x x) y) (*.f64 x x)) y)
#s(approx (+ (* x x) y) (*.f64 x x))
(+.f64 (fma.f64 x x y) y)
(fma.f64 x x y)
Outputs
(/.f64 (-.f64 (*.f64 #s(literal 4 binary64) (*.f64 y y)) (pow.f64 x #s(literal 4 binary64))) (-.f64 (*.f64 y #s(literal 2 binary64)) (*.f64 x x)))
(/.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 6 binary64)) (pow.f64 (*.f64 #s(literal -2 binary64) y) #s(literal 3 binary64))) (+.f64 (pow.f64 x #s(literal 4 binary64)) (fma.f64 #s(literal 4 binary64) (*.f64 y 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 x #s(literal 4 binary64)) (*.f64 #s(literal 4 binary64) (*.f64 y y)))) (neg.f64 (fma.f64 x x (*.f64 #s(literal -2 binary64) y))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (fma.f64 x x y) #s(literal 3 binary64)) (pow.f64 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 (neg.f64 (fma.f64 #s(literal 8 binary64) (pow.f64 y #s(literal 3 binary64)) (pow.f64 x #s(literal 6 binary64)))) (neg.f64 (fma.f64 (*.f64 y #s(literal 2 binary64)) (-.f64 (*.f64 y #s(literal 2 binary64)) (*.f64 x x)) (pow.f64 x #s(literal 4 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 x #s(literal 4 binary64)) (*.f64 #s(literal 4 binary64) (*.f64 y y))) (fma.f64 x x (*.f64 #s(literal -2 binary64) y)))
(/.f64 (+.f64 (pow.f64 (fma.f64 x x y) #s(literal 3 binary64)) (pow.f64 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 (fma.f64 x x y) #s(literal 3 binary64)) (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 #s(literal 8 binary64) (pow.f64 y #s(literal 3 binary64)) (pow.f64 x #s(literal 6 binary64))) (fma.f64 #s(literal 4 binary64) (*.f64 y y) (-.f64 (pow.f64 x #s(literal 4 binary64)) (*.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)) y))))
(/.f64 (fma.f64 #s(literal 8 binary64) (pow.f64 y #s(literal 3 binary64)) (pow.f64 x #s(literal 6 binary64))) (fma.f64 (*.f64 y #s(literal 2 binary64)) (-.f64 (*.f64 y #s(literal 2 binary64)) (*.f64 x x)) (pow.f64 x #s(literal 4 binary64))))
(fma.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 x)) (*.f64 y #s(literal 2 binary64)))
(fma.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x)) (*.f64 y #s(literal 2 binary64)))
(fma.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)) (*.f64 y #s(literal 2 binary64)))
(fma.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)) (*.f64 y #s(literal 2 binary64)))
(fma.f64 (pow.f64 x #s(literal 1 binary64)) x (*.f64 y #s(literal 2 binary64)))
(fma.f64 (neg.f64 x) (neg.f64 x) (*.f64 y #s(literal 2 binary64)))
(fma.f64 (fabs.f64 x) (fabs.f64 x) (*.f64 y #s(literal 2 binary64)))
(fma.f64 y #s(literal 2 binary64) (*.f64 x x))
(fma.f64 #s(literal 2 binary64) y (*.f64 x x))
(fma.f64 x x (*.f64 y #s(literal 2 binary64)))
(-.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 x #s(literal 4 binary64)) (fma.f64 x x (*.f64 #s(literal -2 binary64) y))) (/.f64 (*.f64 #s(literal 4 binary64) (*.f64 y y)) (fma.f64 x x (*.f64 #s(literal -2 binary64) y))))
(-.f64 (*.f64 x x) (*.f64 (neg.f64 y) #s(literal 2 binary64)))
(-.f64 (*.f64 x x) (*.f64 #s(literal -2 binary64) y))
(-.f64 (*.f64 y #s(literal 2 binary64)) (*.f64 (neg.f64 (neg.f64 x)) (neg.f64 x)))
(-.f64 (*.f64 y #s(literal 2 binary64)) (*.f64 (neg.f64 (fabs.f64 x)) (fabs.f64 x)))
(-.f64 (*.f64 y #s(literal 2 binary64)) (*.f64 (neg.f64 x) x))
(-.f64 (*.f64 y #s(literal 2 binary64)) (*.f64 x (neg.f64 x)))
(+.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 (pow.f64 x #s(literal 6 binary64)) (fma.f64 (*.f64 y #s(literal 2 binary64)) (-.f64 (*.f64 y #s(literal 2 binary64)) (*.f64 x x)) (pow.f64 x #s(literal 4 binary64)))) (/.f64 (*.f64 #s(literal 8 binary64) (pow.f64 y #s(literal 3 binary64))) (fma.f64 (*.f64 y #s(literal 2 binary64)) (-.f64 (*.f64 y #s(literal 2 binary64)) (*.f64 x x)) (pow.f64 x #s(literal 4 binary64)))))
(+.f64 (*.f64 x x) (*.f64 y #s(literal 2 binary64)))
(+.f64 (fma.f64 x x y) y)
(+.f64 (*.f64 y #s(literal 2 binary64)) (*.f64 x x))
(+.f64 y (fma.f64 x x y))
(*.f64 y #s(literal 2 binary64))
(*.f64 #s(literal 2 binary64) y)
(/.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)
(/.f64 (-.f64 (*.f64 y y) (pow.f64 #s(approx (+ (* x x) y) y) #s(literal 2 binary64))) (-.f64 y #s(approx (+ (* x x) y) y)))
(/.f64 (neg.f64 (*.f64 (+.f64 #s(approx (+ (* x x) y) y) y) (-.f64 #s(approx (+ (* x x) y) y) y))) (neg.f64 (-.f64 #s(approx (+ (* x x) y) y) y)))
(/.f64 (neg.f64 (+.f64 (pow.f64 y #s(literal 3 binary64)) (pow.f64 #s(approx (+ (* x x) y) y) #s(literal 3 binary64)))) (neg.f64 (fma.f64 #s(approx (+ (* x x) y) y) #s(approx (+ (* x x) y) y) (*.f64 y (-.f64 y #s(approx (+ (* x x) y) y))))))
(/.f64 (*.f64 (+.f64 #s(approx (+ (* x x) y) y) y) (-.f64 #s(approx (+ (* x x) y) y) y)) (-.f64 #s(approx (+ (* x x) y) y) y))
(/.f64 (+.f64 (pow.f64 y #s(literal 3 binary64)) (pow.f64 #s(approx (+ (* x x) y) y) #s(literal 3 binary64))) (fma.f64 y y (-.f64 (pow.f64 #s(approx (+ (* x x) y) y) #s(literal 2 binary64)) (*.f64 #s(approx (+ (* x x) y) y) y))))
(/.f64 (+.f64 (pow.f64 y #s(literal 3 binary64)) (pow.f64 #s(approx (+ (* x x) y) y) #s(literal 3 binary64))) (fma.f64 #s(approx (+ (* x x) y) y) #s(approx (+ (* x x) y) y) (*.f64 y (-.f64 y #s(approx (+ (* x x) y) y)))))
(-.f64 (/.f64 (pow.f64 #s(approx (+ (* x x) y) y) #s(literal 2 binary64)) (-.f64 #s(approx (+ (* x x) y) y) y)) (/.f64 (*.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)) (fma.f64 #s(approx (+ (* x x) y) y) #s(approx (+ (* x x) y) y) (*.f64 y (-.f64 y #s(approx (+ (* x x) y) y))))) (/.f64 (pow.f64 y #s(literal 3 binary64)) (fma.f64 #s(approx (+ (* x x) y) y) #s(approx (+ (* x x) y) y) (*.f64 y (-.f64 y #s(approx (+ (* x x) y) y))))))
(+.f64 #s(approx (+ (* x x) y) y) y)
(+.f64 y #s(approx (+ (* x x) y) y))
#s(approx (+ (* x x) y) y)
#s(approx (+ (+ (* x x) y) y) (*.f64 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 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)))
(*.f64 (pow.f64 x #s(literal 1 binary64)) 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)))
(/.f64 (-.f64 (*.f64 y y) (pow.f64 #s(approx (+ (* x x) y) (*.f64 x x)) #s(literal 2 binary64))) (-.f64 y #s(approx (+ (* x x) y) (*.f64 x x))))
(/.f64 (neg.f64 (-.f64 (pow.f64 #s(approx (+ (* x x) y) (*.f64 x x)) #s(literal 2 binary64)) (*.f64 y y))) (neg.f64 (-.f64 #s(approx (+ (* x x) y) (*.f64 x x)) y)))
(/.f64 (neg.f64 (+.f64 (pow.f64 #s(approx (+ (* x x) y) (*.f64 x x)) #s(literal 3 binary64)) (pow.f64 y #s(literal 3 binary64)))) (neg.f64 (fma.f64 y (-.f64 y #s(approx (+ (* x x) y) (*.f64 x x))) (pow.f64 #s(approx (+ (* x x) y) (*.f64 x x)) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 #s(approx (+ (* x x) y) (*.f64 x x)) #s(literal 2 binary64)) (*.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 y y (-.f64 (pow.f64 #s(approx (+ (* x x) y) (*.f64 x x)) #s(literal 2 binary64)) (*.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 y (-.f64 y #s(approx (+ (* x x) y) (*.f64 x x))) (pow.f64 #s(approx (+ (* x x) y) (*.f64 x x)) #s(literal 2 binary64))))
(-.f64 (/.f64 (pow.f64 #s(approx (+ (* x x) y) (*.f64 x x)) #s(literal 2 binary64)) (-.f64 #s(approx (+ (* x x) y) (*.f64 x x)) y)) (/.f64 (*.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)) (fma.f64 y (-.f64 y #s(approx (+ (* x x) y) (*.f64 x x))) (pow.f64 #s(approx (+ (* x x) y) (*.f64 x x)) #s(literal 2 binary64)))) (/.f64 (pow.f64 y #s(literal 3 binary64)) (fma.f64 y (-.f64 y #s(approx (+ (* x x) y) (*.f64 x x))) (pow.f64 #s(approx (+ (* x x) y) (*.f64 x x)) #s(literal 2 binary64)))))
(+.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 #s(literal 4 binary64) (*.f64 y y)) (pow.f64 x #s(literal 4 binary64))) (-.f64 (*.f64 y #s(literal 2 binary64)) (*.f64 x x)))
(/.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 6 binary64)) (pow.f64 (*.f64 #s(literal -2 binary64) y) #s(literal 3 binary64))) (+.f64 (pow.f64 x #s(literal 4 binary64)) (fma.f64 #s(literal 4 binary64) (*.f64 y 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 x #s(literal 4 binary64)) (*.f64 #s(literal 4 binary64) (*.f64 y y)))) (neg.f64 (fma.f64 x x (*.f64 #s(literal -2 binary64) y))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (fma.f64 x x y) #s(literal 3 binary64)) (pow.f64 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 (neg.f64 (fma.f64 #s(literal 8 binary64) (pow.f64 y #s(literal 3 binary64)) (pow.f64 x #s(literal 6 binary64)))) (neg.f64 (fma.f64 (*.f64 y #s(literal 2 binary64)) (-.f64 (*.f64 y #s(literal 2 binary64)) (*.f64 x x)) (pow.f64 x #s(literal 4 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 x #s(literal 4 binary64)) (*.f64 #s(literal 4 binary64) (*.f64 y y))) (fma.f64 x x (*.f64 #s(literal -2 binary64) y)))
(/.f64 (+.f64 (pow.f64 (fma.f64 x x y) #s(literal 3 binary64)) (pow.f64 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 (fma.f64 x x y) #s(literal 3 binary64)) (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 #s(literal 8 binary64) (pow.f64 y #s(literal 3 binary64)) (pow.f64 x #s(literal 6 binary64))) (fma.f64 #s(literal 4 binary64) (*.f64 y y) (-.f64 (pow.f64 x #s(literal 4 binary64)) (*.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)) y))))
(/.f64 (fma.f64 #s(literal 8 binary64) (pow.f64 y #s(literal 3 binary64)) (pow.f64 x #s(literal 6 binary64))) (fma.f64 (*.f64 y #s(literal 2 binary64)) (-.f64 (*.f64 y #s(literal 2 binary64)) (*.f64 x x)) (pow.f64 x #s(literal 4 binary64))))
(fma.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 x)) (*.f64 y #s(literal 2 binary64)))
(fma.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x)) (*.f64 y #s(literal 2 binary64)))
(fma.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)) (*.f64 y #s(literal 2 binary64)))
(fma.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)) (*.f64 y #s(literal 2 binary64)))
(fma.f64 (pow.f64 x #s(literal 1 binary64)) x (*.f64 y #s(literal 2 binary64)))
(fma.f64 (neg.f64 x) (neg.f64 x) (*.f64 y #s(literal 2 binary64)))
(fma.f64 (fabs.f64 x) (fabs.f64 x) (*.f64 y #s(literal 2 binary64)))
(fma.f64 y #s(literal 2 binary64) (*.f64 x x))
(fma.f64 #s(literal 2 binary64) y (*.f64 x x))
(fma.f64 x x (*.f64 y #s(literal 2 binary64)))
(-.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 x #s(literal 4 binary64)) (fma.f64 x x (*.f64 #s(literal -2 binary64) y))) (/.f64 (*.f64 #s(literal 4 binary64) (*.f64 y y)) (fma.f64 x x (*.f64 #s(literal -2 binary64) y))))
(-.f64 (*.f64 x x) (*.f64 (neg.f64 y) #s(literal 2 binary64)))
(-.f64 (*.f64 x x) (*.f64 #s(literal -2 binary64) y))
(-.f64 (*.f64 y #s(literal 2 binary64)) (*.f64 (neg.f64 (neg.f64 x)) (neg.f64 x)))
(-.f64 (*.f64 y #s(literal 2 binary64)) (*.f64 (neg.f64 (fabs.f64 x)) (fabs.f64 x)))
(-.f64 (*.f64 y #s(literal 2 binary64)) (*.f64 (neg.f64 x) x))
(-.f64 (*.f64 y #s(literal 2 binary64)) (*.f64 x (neg.f64 x)))
(+.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 (pow.f64 x #s(literal 6 binary64)) (fma.f64 (*.f64 y #s(literal 2 binary64)) (-.f64 (*.f64 y #s(literal 2 binary64)) (*.f64 x x)) (pow.f64 x #s(literal 4 binary64)))) (/.f64 (*.f64 #s(literal 8 binary64) (pow.f64 y #s(literal 3 binary64))) (fma.f64 (*.f64 y #s(literal 2 binary64)) (-.f64 (*.f64 y #s(literal 2 binary64)) (*.f64 x x)) (pow.f64 x #s(literal 4 binary64)))))
(+.f64 (*.f64 x x) (*.f64 y #s(literal 2 binary64)))
(+.f64 (fma.f64 x x y) y)
(+.f64 (*.f64 y #s(literal 2 binary64)) (*.f64 x x))
(+.f64 y (fma.f64 x x 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 (*.f64 x x) y))))
(/.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 (*.f64 x x) y)
(+.f64 y (*.f64 x x))

eval14.0ms (0.4%)

Memory
-9.5MiB live, 35.5MiB allocated; 4ms collecting garbage
Compiler

Compiled 2 104 to 328 computations (84.4% saved)

prune4.0ms (0.1%)

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

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New1271128
Fresh000
Picked235
Done000
Total1294133
Accuracy
100.0%
Counts
133 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fma.f64 x x (+.f64 y y))
63.2%
(+.f64 #s(approx (+ (* x x) y) (*.f64 x x)) y)
45.4%
(+.f64 #s(approx (+ (* x x) y) y) y)
56.4%
#s(approx (+ (+ (* x x) y) y) (*.f64 x x))
Compiler

Compiled 37 to 24 computations (35.1% saved)

simplify203.0ms (6.3%)

Memory
5.2MiB live, 148.2MiB allocated; 16ms collecting garbage
Localize:

Found 2 expressions of interest:

NewMetricScoreProgram
cost-diff0
(+.f64 y y)
cost-diff0
(fma.f64 x x (+.f64 y y))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0411
0711
11611
24511
39711
415611
524811
661911
7290911
0828311
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
(fma.f64 x x (+.f64 y y))
x
(+.f64 y y)
y
Outputs
(fma.f64 x x (+.f64 y y))
(fma.f64 x x (*.f64 #s(literal 2 binary64) y))
x
(+.f64 y y)
(*.f64 #s(literal 2 binary64) y)
y

localize45.0ms (1.4%)

Memory
-5.6MiB live, 38.7MiB allocated; 8ms collecting garbage
Localize:

Found 2 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(fma.f64 x x (+.f64 y y))
accuracy0.0
(+.f64 y y)
Samples
38.0ms256×0valid
Compiler

Compiled 14 to 7 computations (50% saved)

Precisions
Click to see histograms. Total time spent on operations: 7.0ms
ival-add: 4.0ms (54.6% of total)
ival-mult: 3.0ms (40.9% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series3.0ms (0.1%)

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

6 calls:

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

simplify204.0ms (6.3%)

Memory
-9.3MiB live, 181.2MiB allocated; 25ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02989
17389
226189
3157889
0843579
Stop Event
iter limit
node limit
Counts
7 → 7
Calls
Call 1
Inputs
#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 (+ 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 y)) #s(hole binary64 (* -1 (* y (- (* -1 (/ (pow x 2) y)) 2)))))
Outputs
#s(approx (+ (* x x) (+ y y)) #s(hole binary64 (* 2 y)))
#s(approx (+ (* x x) (+ y y)) (*.f64 #s(literal 2 binary64) y))
#s(approx (+ (* x x) (+ y y)) #s(hole binary64 (+ (* 2 y) (pow x 2))))
#s(approx (+ (* x x) (+ y y)) (fma.f64 #s(literal 2 binary64) y (*.f64 x x)))
#s(approx (+ (* x x) (+ y y)) #s(hole binary64 (pow x 2)))
#s(approx (+ (* x x) (+ y y)) (*.f64 x 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)) (fma.f64 #s(literal 2 binary64) y (*.f64 x x)))
#s(approx (+ y y) #s(hole binary64 (* 2 y)))
#s(approx (+ y y) (*.f64 #s(literal 2 binary64) y))
#s(approx (+ (* x x) (+ y y)) #s(hole binary64 (* y (+ 2 (/ (pow x 2) y)))))
#s(approx (+ (* x x) (+ y y)) (fma.f64 #s(literal 2 binary64) y (*.f64 x x)))
#s(approx (+ (* x x) (+ y y)) #s(hole binary64 (* -1 (* y (- (* -1 (/ (pow x 2) y)) 2)))))
#s(approx (+ (* x x) (+ y y)) (fma.f64 #s(literal 2 binary64) y (*.f64 x x)))

rewrite71.0ms (2.2%)

Memory
-2.5MiB live, 43.7MiB allocated; 3ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
049
079
1389
03839
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
2 → 66
Calls
Call 1
Inputs
(fma.f64 x x (+.f64 y y))
(+.f64 y y)
Outputs
(/.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 #s(literal 2 binary64) y) (pow.f64 x #s(literal 4 binary64))) (-.f64 (*.f64 #s(literal 2 binary64) 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 (neg.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) (*.f64 #s(literal 2 binary64) y))) (neg.f64 (fma.f64 x x (*.f64 #s(literal -2 binary64) y))))
(/.f64 (neg.f64 (fma.f64 #s(literal 2 binary64) y (pow.f64 x #s(literal 6 binary64)))) (neg.f64 (fma.f64 (*.f64 #s(literal 2 binary64) y) (-.f64 (*.f64 #s(literal 2 binary64) y) (*.f64 x x)) (pow.f64 x #s(literal 4 binary64)))))
(/.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) (*.f64 #s(literal 2 binary64) y)) (fma.f64 x x (*.f64 #s(literal -2 binary64) y)))
(/.f64 (fma.f64 #s(literal 2 binary64) y (pow.f64 x #s(literal 6 binary64))) (fma.f64 #s(literal 2 binary64) y (-.f64 (pow.f64 x #s(literal 4 binary64)) (*.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)) y))))
(/.f64 (fma.f64 #s(literal 2 binary64) y (pow.f64 x #s(literal 6 binary64))) (fma.f64 (*.f64 #s(literal 2 binary64) y) (-.f64 (*.f64 #s(literal 2 binary64) y) (*.f64 x x)) (pow.f64 x #s(literal 4 binary64))))
(fma.f64 (*.f64 (*.f64 #s(literal 2 binary64) y) #s(literal 2 binary64)) y (*.f64 x x))
(fma.f64 (pow.f64 (*.f64 #s(literal 2 binary64) y) #s(literal 3/2 binary64)) (pow.f64 (*.f64 #s(literal 2 binary64) y) #s(literal 3/2 binary64)) (*.f64 x x))
(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 (*.f64 #s(literal 2 binary64) y)) (neg.f64 (*.f64 #s(literal 2 binary64) y)) (*.f64 x x))
(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 (*.f64 #s(literal 2 binary64) y)) (fabs.f64 (*.f64 #s(literal 2 binary64) y)) (*.f64 x x))
(fma.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)) (*.f64 #s(literal 2 binary64) y))
(fma.f64 #s(literal 4 binary64) (*.f64 y y) (*.f64 x x))
(fma.f64 #s(literal 8 binary64) (pow.f64 y #s(literal 3 binary64)) (*.f64 x x))
(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) (*.f64 y (*.f64 #s(literal 2 binary64) y)) (*.f64 x x))
(fma.f64 #s(literal 2 binary64) y (*.f64 x x))
(fma.f64 (*.f64 #s(literal 2 binary64) y) (*.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 x #s(literal 4 binary64)) (fma.f64 x x (*.f64 #s(literal -2 binary64) y))) (/.f64 (*.f64 #s(literal 2 binary64) y) (fma.f64 x x (*.f64 #s(literal -2 binary64) y))))
(-.f64 (*.f64 x x) (*.f64 #s(literal -2 binary64) y))
(-.f64 (*.f64 #s(literal 2 binary64) y) (*.f64 (neg.f64 (neg.f64 x)) (neg.f64 x)))
(-.f64 (*.f64 #s(literal 2 binary64) y) (*.f64 (neg.f64 (fabs.f64 x)) (fabs.f64 x)))
(-.f64 (*.f64 #s(literal 2 binary64) y) (*.f64 (neg.f64 x) x))
(-.f64 (*.f64 #s(literal 2 binary64) y) (*.f64 x (neg.f64 x)))
(+.f64 (/.f64 (pow.f64 x #s(literal 6 binary64)) (fma.f64 (*.f64 #s(literal 2 binary64) y) (-.f64 (*.f64 #s(literal 2 binary64) y) (*.f64 x x)) (pow.f64 x #s(literal 4 binary64)))) (/.f64 (*.f64 #s(literal 2 binary64) y) (fma.f64 (*.f64 #s(literal 2 binary64) y) (-.f64 (*.f64 #s(literal 2 binary64) y) (*.f64 x x)) (pow.f64 x #s(literal 4 binary64)))))
(+.f64 (fma.f64 x x y) y)
(+.f64 (*.f64 x x) (*.f64 #s(literal 2 binary64) y))
(+.f64 (*.f64 #s(literal 2 binary64) y) (*.f64 x x))
(+.f64 y (fma.f64 x x y))
(*.f64 (*.f64 (*.f64 #s(literal 2 binary64) y) #s(literal 2 binary64)) y)
(*.f64 (pow.f64 (*.f64 #s(literal 2 binary64) y) #s(literal 3/2 binary64)) (pow.f64 (*.f64 #s(literal 2 binary64) y) #s(literal 3/2 binary64)))
(*.f64 (neg.f64 (*.f64 #s(literal 2 binary64) y)) (neg.f64 (*.f64 #s(literal 2 binary64) y)))
(*.f64 (fabs.f64 (*.f64 #s(literal 2 binary64) y)) (fabs.f64 (*.f64 #s(literal 2 binary64) y)))
(*.f64 #s(literal 4 binary64) (*.f64 y y))
(*.f64 #s(literal 8 binary64) (pow.f64 y #s(literal 3 binary64)))
(*.f64 #s(literal 2 binary64) (*.f64 y (*.f64 #s(literal 2 binary64) y)))
(*.f64 #s(literal 2 binary64) y)
(*.f64 (*.f64 #s(literal 2 binary64) y) (*.f64 #s(literal 2 binary64) y))
(*.f64 y #s(literal 2 binary64))
(pow.f64 (*.f64 #s(literal 2 binary64) y) #s(literal 3 binary64))
(pow.f64 (*.f64 #s(literal 2 binary64) y) #s(literal 2 binary64))
(/.f64 (*.f64 #s(literal 0 binary64) (*.f64 #s(literal 2 binary64) y)) #s(literal 0 binary64))
(/.f64 (*.f64 (*.f64 #s(literal 2 binary64) (pow.f64 y #s(literal 3 binary64))) (*.f64 #s(literal 2 binary64) y)) (fma.f64 y y #s(literal 0 binary64)))
(/.f64 (*.f64 (*.f64 #s(literal 2 binary64) y) (*.f64 #s(literal 2 binary64) (pow.f64 y #s(literal 3 binary64)))) (fma.f64 y y #s(literal 0 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 (*.f64 #s(literal 0 binary64) (*.f64 #s(literal 2 binary64) (pow.f64 y #s(literal 3 binary64)))) (*.f64 #s(literal 0 binary64) (fma.f64 y y #s(literal 0 binary64))))
(/.f64 (*.f64 (*.f64 #s(literal 2 binary64) (pow.f64 y #s(literal 3 binary64))) #s(literal 0 binary64)) (*.f64 (fma.f64 y y #s(literal 0 binary64)) #s(literal 0 binary64)))
(/.f64 (*.f64 (*.f64 #s(literal 2 binary64) (pow.f64 y #s(literal 3 binary64))) (*.f64 #s(literal 2 binary64) (pow.f64 y #s(literal 3 binary64)))) (*.f64 (fma.f64 y y #s(literal 0 binary64)) (fma.f64 y y #s(literal 0 binary64))))
(/.f64 (pow.f64 (*.f64 #s(literal 2 binary64) (pow.f64 y #s(literal 3 binary64))) #s(literal 3 binary64)) (pow.f64 (fma.f64 y y #s(literal 0 binary64)) #s(literal 3 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)))
(fma.f64 (*.f64 #s(literal 2 binary64) y) y (*.f64 (*.f64 #s(literal 2 binary64) y) y))
(fma.f64 y (*.f64 #s(literal 2 binary64) y) (*.f64 y (*.f64 #s(literal 2 binary64) y)))
(-.f64 (/.f64 (*.f64 y y) #s(literal 0 binary64)) (/.f64 (*.f64 y y) #s(literal 0 binary64)))
(exp.f64 (*.f64 (log.f64 (*.f64 #s(literal 2 binary64) y)) #s(literal 3 binary64)))
(+.f64 (*.f64 y (*.f64 #s(literal 2 binary64) y)) (*.f64 y (*.f64 #s(literal 2 binary64) y)))
(+.f64 (*.f64 (*.f64 #s(literal 2 binary64) y) y) (*.f64 (*.f64 #s(literal 2 binary64) y) y))
(+.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)

eval7.0ms (0.2%)

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

Compiled 860 to 182 computations (78.8% saved)

prune4.0ms (0.1%)

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

4 alts after pruning (0 fresh and 4 done)

PrunedKeptTotal
New70070
Fresh000
Picked011
Done033
Total70474
Accuracy
100.0%
Counts
74 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fma.f64 x x (+.f64 y y))
63.2%
(+.f64 #s(approx (+ (* x x) y) (*.f64 x x)) y)
45.4%
(+.f64 #s(approx (+ (* x x) y) y) y)
56.4%
#s(approx (+ (+ (* x x) y) y) (*.f64 x x))
Compiler

Compiled 93 to 44 computations (52.7% saved)

regimes131.0ms (4%)

Memory
-44.4MiB live, 23.2MiB allocated; 135ms collecting garbage
Counts
7 → 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)
(+.f64 (fma.f64 x x y) y)
(fma.f64 x x (+.f64 y y))
(+.f64 (+.f64 (*.f64 x x) y) y)
(fma.f64 x x (*.f64 #s(literal 2 binary64) y))
Outputs
(fma.f64 x x (+.f64 y y))
Calls

4 calls:

123.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)

regimes7.0ms (0.2%)

Memory
15.7MiB live, 15.7MiB allocated; 0ms 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))
(+.f64 #s(approx (+ (* x x) y) (*.f64 x x)) y)
(+.f64 (fma.f64 x x y) y)
Outputs
(+.f64 (fma.f64 x x y) y)
Calls

4 calls:

2.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)

regimes99.0ms (3.1%)

Memory
-39.6MiB live, 13.3MiB allocated; 19ms 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:

94.0ms
(*.f64 x x)
2.0ms
y
2.0ms
(+.f64 (+.f64 (*.f64 x x) y) y)
2.0ms
x
Results
AccuracySegmentsBranch
90.9%2(*.f64 x x)
80.8%2(+.f64 (+.f64 (*.f64 x x) y) y)
90.9%2x
71.5%3y
Compiler

Compiled 12 to 12 computations (0% saved)

regimes3.0ms (0.1%)

Memory
6.8MiB live, 6.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
89.9%2(*.f64 x x)
89.9%2x
Compiler

Compiled 4 to 5 computations (-25% saved)

regimes4.0ms (0.1%)

Memory
8.1MiB live, 8.1MiB allocated; 0ms 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:

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

Compiled 12 to 12 computations (0% saved)

bsearch9.0ms (0.3%)

Memory
5.5MiB live, 5.5MiB allocated; 0ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
8.0ms
2.312319214002237e-34
1.1319310204202939e-32
Samples
4.0ms112×0valid
Compiler

Compiled 150 to 115 computations (23.3% saved)

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

bsearch8.0ms (0.2%)

Memory
4.8MiB live, 4.8MiB allocated; 0ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
7.0ms
2.312319214002237e-34
1.1319310204202939e-32
Samples
3.0ms96×0valid
Compiler

Compiled 150 to 115 computations (23.3% saved)

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

simplify63.0ms (1.9%)

Memory
-9.2MiB live, 33.9MiB allocated; 10ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02169
12969
25169
39469
413069
517369
632369
7150669
8587169
Stop Event
node limit
Calls
Call 1
Inputs
(fma.f64 x x (+.f64 y y))
(+.f64 (fma.f64 x x y) y)
(if (<=.f64 x #s(literal 63940696633227/45671926166590716193865151022383844364247891968 binary64)) (+.f64 #s(approx (+ (* x x) y) y) y) (+.f64 #s(approx (+ (* x x) y) (*.f64 x x)) y))
(if (<=.f64 x #s(literal 6284457040522883/1461501637330902918203684832716283019655932542976 binary64)) (+.f64 #s(approx (+ (* x x) y) y) y) #s(approx (+ (+ (* x x) y) y) (*.f64 x x)))
(+.f64 #s(approx (+ (* x x) y) y) y)
Outputs
(fma.f64 x x (+.f64 y y))
(+.f64 (fma.f64 x x y) y)
(if (<=.f64 x #s(literal 63940696633227/45671926166590716193865151022383844364247891968 binary64)) (+.f64 #s(approx (+ (* x x) y) y) y) (+.f64 #s(approx (+ (* x x) y) (*.f64 x x)) y))
(if (<=.f64 x #s(literal 6284457040522883/1461501637330902918203684832716283019655932542976 binary64)) (+.f64 #s(approx (+ (* x x) y) y) y) #s(approx (+ (+ (* x x) y) y) (*.f64 x x)))
(+.f64 #s(approx (+ (* x x) y) y) y)

derivations185.0ms (5.7%)

Memory
9.4MiB live, 111.4MiB allocated; 18ms collecting garbage
Stop Event
done
Compiler

Compiled 69 to 21 computations (69.6% saved)

preprocess82.0ms (2.5%)

Memory
1.5MiB live, 44.1MiB allocated; 16ms collecting garbage
Remove

(abs x)

Compiler

Compiled 178 to 70 computations (60.7% saved)

end0.0ms (0%)

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

Profiling

Loading profile data...