Graphics.Rasterific.QuadraticFormula:discriminant from Rasterific-0.6.1

Time bar (total: 2.5s)

start0.0ms (0%)

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

analyze0.0ms (0%)

Memory
0.3MiB live, 0.3MiB 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 11 to 10 computations (9.1% saved)

sample1.1s (45.3%)

Memory
-13.7MiB live, 1 569.9MiB allocated; 360ms collecting garbage
Samples
811.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 278.0ms
ival-mult: 225.0ms (80.9% of total)
ival-sub: 36.0ms (12.9% of total)
ival-true: 6.0ms (2.2% of total)
exact: 6.0ms (2.2% of total)
ival-assert: 3.0ms (1.1% of total)
adjust: 2.0ms (0.7% of total)
Bogosity

explain136.0ms (5.4%)

Memory
-33.0MiB live, 212.0MiB allocated; 59ms collecting garbage
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
40-0-(-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) z))
10-0-(*.f64 (*.f64 y #s(literal 4 binary64)) z)
00-0-y
00-0-(*.f64 y #s(literal 4 binary64))
00-0-#s(literal 4 binary64)
00-0-z
00-0-(*.f64 x x)
00-0-x
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
-.f64(-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) z))nan-rescue40
(*.f64 x x)overflow71
(*.f64 y #s(literal 4 binary64))overflow1
(*.f64 (*.f64 y #s(literal 4 binary64)) z)overflow31
*.f64(*.f64 (*.f64 y #s(literal 4 binary64)) z)n*o10
Confusion
Predicted +Predicted -
+50
-0251
Precision
1.0
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+500
-00251
Precision?
1.0
Recall?
1.0
Freqs
test
numberfreq
0251
15
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
43.0ms512×0valid
Compiler

Compiled 61 to 28 computations (54.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 13.0ms
ival-mult: 10.0ms (78.4% of total)
ival-sub: 2.0ms (15.7% 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)

preprocess38.0ms (1.5%)

Memory
37.4MiB live, 76.2MiB allocated; 22ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03197
18893
222793
349890
463290
089
0129
1239
2619
31439
42279
52539
02538
Stop Event
iter limit
saturated
iter limit
saturated
Calls
Call 1
Inputs
(-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) z))
Outputs
(-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) z))
(fma.f64 (*.f64 z y) #s(literal -4 binary64) (*.f64 x x))
Symmetry

(abs x)

(sort y z)

Compiler

Compiled 9 to 8 computations (11.1% saved)

eval0.0ms (0%)

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

Compiled 0 to 3 computations (-∞% saved)

prune0.0ms (0%)

Memory
1.3MiB live, 1.3MiB allocated; 0ms collecting garbage
Alt Table
Click to see full alt table
StatusAccuracyProgram
98.1%
(-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) z))
Compiler

Compiled 9 to 8 computations (11.1% saved)

simplify7.0ms (0.3%)

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

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 y #s(literal 4 binary64))
cost-diff0
(*.f64 (*.f64 y #s(literal 4 binary64)) z)
cost-diff0
(*.f64 x x)
cost-diff1
(-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) z))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0824
01224
12324
26124
314324
422724
525324
025323
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
(-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) z))
(*.f64 x x)
x
(*.f64 (*.f64 y #s(literal 4 binary64)) z)
(*.f64 y #s(literal 4 binary64))
y
#s(literal 4 binary64)
z
Outputs
(-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) z))
(fma.f64 (*.f64 z y) #s(literal -4 binary64) (*.f64 x x))
(*.f64 x x)
x
(*.f64 (*.f64 y #s(literal 4 binary64)) z)
(*.f64 z (*.f64 #s(literal 4 binary64) y))
(*.f64 y #s(literal 4 binary64))
(*.f64 #s(literal 4 binary64) y)
y
#s(literal 4 binary64)
z

localize31.0ms (1.2%)

Memory
-8.0MiB live, 35.4MiB allocated; 13ms collecting garbage
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 y #s(literal 4 binary64))
accuracy0.0
(*.f64 x x)
accuracy0.23966004503963415
(*.f64 (*.f64 y #s(literal 4 binary64)) z)
accuracy0.8984333716604117
(-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) z))
Samples
25.0ms256×0valid
Compiler

Compiled 26 to 10 computations (61.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 16.0ms
ival-mult: 15.0ms (91.8% of total)
ival-sub: 1.0ms (6.1% 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)

series8.0ms (0.3%)

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

9 calls:

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

simplify203.0ms (8.1%)

Memory
-11.6MiB live, 134.7MiB allocated; 55ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
052194
1118194
2393194
32324194
08364178
Stop Event
iter limit
node limit
Counts
12 → 12
Calls
Call 1
Inputs
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -4 (* y z))))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (- (pow x 2) (* 4 (* y z)))))
#s(approx (* x x) #s(hole binary64 (pow x 2)))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (pow x 2)))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* (pow x 2) (+ 1 (* -4 (/ (* y z) (pow x 2)))))))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (+ (* -4 (* y z)) (pow x 2))))
#s(approx (* (* y 4) z) #s(hole binary64 (* 4 (* y z))))
#s(approx (* y 4) #s(hole binary64 (* 4 y)))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* y (- (/ (pow x 2) y) (* 4 z)))))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -1 (* y (- (* -1 (/ (pow x 2) y)) (* -4 z))))))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* z (- (/ (pow x 2) z) (* 4 y)))))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -1 (* z (- (* -1 (/ (pow x 2) z)) (* -4 y))))))
Outputs
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -4 (* y z))))
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z y) #s(literal -4 binary64)))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (- (pow x 2) (* 4 (* y z)))))
#s(approx (- (* x x) (* (* y 4) z)) (fma.f64 (*.f64 z y) #s(literal -4 binary64) (*.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 4) z)) #s(hole binary64 (pow x 2)))
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 x x))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* (pow x 2) (+ 1 (* -4 (/ (* y z) (pow x 2)))))))
#s(approx (- (* x x) (* (* y 4) z)) (fma.f64 (*.f64 z y) #s(literal -4 binary64) (*.f64 x x)))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (+ (* -4 (* y z)) (pow x 2))))
#s(approx (- (* x x) (* (* y 4) z)) (fma.f64 (*.f64 z y) #s(literal -4 binary64) (*.f64 x x)))
#s(approx (* (* y 4) z) #s(hole binary64 (* 4 (* y z))))
#s(approx (* (* y 4) z) (*.f64 (*.f64 #s(literal 4 binary64) z) y))
#s(approx (* y 4) #s(hole binary64 (* 4 y)))
#s(approx (* y 4) (*.f64 #s(literal 4 binary64) y))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* y (- (/ (pow x 2) y) (* 4 z)))))
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (fma.f64 #s(literal -4 binary64) z (/.f64 (*.f64 x x) y)) y))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -1 (* y (- (* -1 (/ (pow x 2) y)) (* -4 z))))))
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (fma.f64 #s(literal -4 binary64) z (/.f64 (*.f64 x x) y)) y))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* z (- (/ (pow x 2) z) (* 4 y)))))
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (fma.f64 #s(literal -4 binary64) y (/.f64 (*.f64 x x) z)) z))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -1 (* z (- (* -1 (/ (pow x 2) z)) (* -4 y))))))
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (fma.f64 #s(literal -4 binary64) y (/.f64 (*.f64 x x) z)) z))

rewrite49.0ms (1.9%)

Memory
5.7MiB live, 93.0MiB allocated; 14ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0820
01220
13820
026819
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
4 → 58
Calls
Call 1
Inputs
(-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) z))
(*.f64 x x)
(*.f64 (*.f64 y #s(literal 4 binary64)) z)
(*.f64 y #s(literal 4 binary64))
Outputs
(/.f64 (+.f64 (pow.f64 x #s(literal 6 binary64)) (pow.f64 (*.f64 (*.f64 #s(literal -4 binary64) y) z) #s(literal 3 binary64))) (+.f64 (pow.f64 x #s(literal 4 binary64)) (-.f64 (pow.f64 (*.f64 z (*.f64 #s(literal 4 binary64) y)) #s(literal 2 binary64)) (*.f64 (*.f64 x x) (*.f64 (*.f64 #s(literal -4 binary64) y) z)))))
(/.f64 (neg.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) (pow.f64 (*.f64 z (*.f64 #s(literal 4 binary64) y)) #s(literal 2 binary64)))) (neg.f64 (fma.f64 z (*.f64 #s(literal 4 binary64) y) (*.f64 x x))))
(/.f64 (neg.f64 (-.f64 (pow.f64 x #s(literal 6 binary64)) (pow.f64 (*.f64 z (*.f64 #s(literal 4 binary64) y)) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (*.f64 z (*.f64 #s(literal 4 binary64) y)) (fma.f64 z (*.f64 #s(literal 4 binary64) y) (*.f64 x x)) (pow.f64 x #s(literal 4 binary64)))))
(/.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) (pow.f64 (*.f64 z (*.f64 #s(literal 4 binary64) y)) #s(literal 2 binary64))) (fma.f64 z (*.f64 #s(literal 4 binary64) y) (*.f64 x x)))
(/.f64 (-.f64 (pow.f64 x #s(literal 6 binary64)) (pow.f64 (*.f64 z (*.f64 #s(literal 4 binary64) y)) #s(literal 3 binary64))) (fma.f64 (*.f64 z (*.f64 #s(literal 4 binary64) y)) (fma.f64 z (*.f64 #s(literal 4 binary64) 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)) (*.f64 (neg.f64 z) (*.f64 #s(literal 4 binary64) y)))
(fma.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)) (*.f64 (neg.f64 y) (*.f64 z #s(literal 4 binary64))))
(fma.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)) (*.f64 (*.f64 #s(literal -4 binary64) y) z))
(fma.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 x)) (*.f64 (neg.f64 z) (*.f64 #s(literal 4 binary64) y)))
(fma.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 x)) (*.f64 (neg.f64 y) (*.f64 z #s(literal 4 binary64))))
(fma.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 x)) (*.f64 (*.f64 #s(literal -4 binary64) y) z))
(fma.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x)) (*.f64 (neg.f64 z) (*.f64 #s(literal 4 binary64) y)))
(fma.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x)) (*.f64 (neg.f64 y) (*.f64 z #s(literal 4 binary64))))
(fma.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x)) (*.f64 (*.f64 #s(literal -4 binary64) y) z))
(fma.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)) (*.f64 (neg.f64 z) (*.f64 #s(literal 4 binary64) y)))
(fma.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)) (*.f64 (neg.f64 y) (*.f64 z #s(literal 4 binary64))))
(fma.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)) (*.f64 (*.f64 #s(literal -4 binary64) y) z))
(fma.f64 (*.f64 #s(literal -4 binary64) y) z (*.f64 x x))
(fma.f64 (neg.f64 x) (neg.f64 x) (*.f64 (neg.f64 z) (*.f64 #s(literal 4 binary64) y)))
(fma.f64 (neg.f64 x) (neg.f64 x) (*.f64 (neg.f64 y) (*.f64 z #s(literal 4 binary64))))
(fma.f64 (neg.f64 x) (neg.f64 x) (*.f64 (*.f64 #s(literal -4 binary64) y) z))
(fma.f64 (fabs.f64 x) (fabs.f64 x) (*.f64 (neg.f64 z) (*.f64 #s(literal 4 binary64) y)))
(fma.f64 (fabs.f64 x) (fabs.f64 x) (*.f64 (neg.f64 y) (*.f64 z #s(literal 4 binary64))))
(fma.f64 (fabs.f64 x) (fabs.f64 x) (*.f64 (*.f64 #s(literal -4 binary64) y) z))
(fma.f64 z (*.f64 #s(literal -4 binary64) y) (*.f64 x x))
(fma.f64 x x (*.f64 (neg.f64 z) (*.f64 #s(literal 4 binary64) y)))
(fma.f64 x x (*.f64 (neg.f64 y) (*.f64 z #s(literal 4 binary64))))
(fma.f64 x x (*.f64 (*.f64 #s(literal -4 binary64) y) z))
(-.f64 (/.f64 (pow.f64 x #s(literal 4 binary64)) (fma.f64 z (*.f64 #s(literal 4 binary64) y) (*.f64 x x))) (/.f64 (pow.f64 (*.f64 z (*.f64 #s(literal 4 binary64) y)) #s(literal 2 binary64)) (fma.f64 z (*.f64 #s(literal 4 binary64) y) (*.f64 x x))))
(-.f64 (/.f64 (pow.f64 x #s(literal 6 binary64)) (fma.f64 (*.f64 z (*.f64 #s(literal 4 binary64) y)) (fma.f64 z (*.f64 #s(literal 4 binary64) y) (*.f64 x x)) (pow.f64 x #s(literal 4 binary64)))) (/.f64 (pow.f64 (*.f64 z (*.f64 #s(literal 4 binary64) y)) #s(literal 3 binary64)) (fma.f64 (*.f64 z (*.f64 #s(literal 4 binary64) y)) (fma.f64 z (*.f64 #s(literal 4 binary64) y) (*.f64 x x)) (pow.f64 x #s(literal 4 binary64)))))
(-.f64 (*.f64 x x) (*.f64 (neg.f64 (*.f64 #s(literal -4 binary64) y)) z))
(-.f64 (*.f64 x x) (*.f64 z (*.f64 #s(literal 4 binary64) y)))
(+.f64 (*.f64 (*.f64 #s(literal -4 binary64) y) z) (*.f64 x x))
(+.f64 (*.f64 x x) (*.f64 (neg.f64 z) (*.f64 #s(literal 4 binary64) y)))
(+.f64 (*.f64 x x) (*.f64 (neg.f64 y) (*.f64 z #s(literal 4 binary64))))
(+.f64 (*.f64 x x) (*.f64 (*.f64 #s(literal -4 binary64) y) z))
(*.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)))
(*.f64 (*.f64 z y) #s(literal 4 binary64))
(*.f64 (*.f64 z #s(literal 4 binary64)) y)
(*.f64 z (*.f64 #s(literal 4 binary64) y))
(*.f64 (*.f64 #s(literal 4 binary64) y) z)
(*.f64 #s(literal 4 binary64) (*.f64 y z))
(*.f64 y (*.f64 z #s(literal 4 binary64)))
(*.f64 #s(literal 4 binary64) y)
(*.f64 y #s(literal 4 binary64))

eval22.0ms (0.9%)

Memory
-37.6MiB live, 23.0MiB allocated; 10ms collecting garbage
Compiler

Compiled 880 to 156 computations (82.3% saved)

prune2.0ms (0.1%)

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

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New63366
Fresh000
Picked101
Done000
Total64367
Accuracy
100.0%
Counts
67 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
98.8%
(fma.f64 (*.f64 #s(literal -4 binary64) y) z (*.f64 x x))
52.4%
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z y) #s(literal -4 binary64)))
56.0%
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 x x))
Compiler

Compiled 36 to 29 computations (19.4% saved)

simplify7.0ms (0.3%)

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

Found 8 expressions of interest:

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

Useful iterations: 1 (0.0ms)

IterNodesCost
01661
02261
14359
29859
317959
425559
025559
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 x x))
(*.f64 x x)
x
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z y) #s(literal -4 binary64)))
(*.f64 (*.f64 z y) #s(literal -4 binary64))
(*.f64 z y)
z
y
#s(literal -4 binary64)
(fma.f64 (*.f64 #s(literal -4 binary64) y) z (*.f64 x x))
(*.f64 #s(literal -4 binary64) y)
#s(literal -4 binary64)
y
z
(*.f64 x x)
x
Outputs
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 x x))
(*.f64 x x)
x
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z y) #s(literal -4 binary64)))
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 #s(literal -4 binary64) y) z))
(*.f64 (*.f64 z y) #s(literal -4 binary64))
(*.f64 (*.f64 #s(literal -4 binary64) y) z)
(*.f64 z y)
z
y
#s(literal -4 binary64)
(fma.f64 (*.f64 #s(literal -4 binary64) y) z (*.f64 x x))
(fma.f64 (*.f64 z y) #s(literal -4 binary64) (*.f64 x x))
(*.f64 #s(literal -4 binary64) y)
#s(literal -4 binary64)
y
z
(*.f64 x x)
x

localize41.0ms (1.6%)

Memory
19.4MiB live, 66.0MiB allocated; 2ms collecting garbage
Localize:

Found 8 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 x x)
accuracy0.0
(*.f64 #s(literal -4 binary64) y)
accuracy0.7396545402507546
(fma.f64 (*.f64 #s(literal -4 binary64) y) z (*.f64 x x))
accuracy0.0
(*.f64 z y)
accuracy0.01953125
(*.f64 (*.f64 z y) #s(literal -4 binary64))
accuracy30.435358540081353
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z y) #s(literal -4 binary64)))
accuracy0.0
(*.f64 x x)
accuracy28.16744290505805
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 x x))
Samples
32.0ms256×0valid
Compiler

Compiled 54 to 16 computations (70.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 22.0ms
ival-mult: 20.0ms (89.5% of total)
ival-sub: 1.0ms (4.5% of total)
ival-add: 1.0ms (4.5% 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)

series29.0ms (1.2%)

Memory
-14.7MiB live, 32.0MiB allocated; 3ms collecting garbage
Counts
7 → 21
Calls
Call 1
Inputs
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 x x))
(*.f64 x x)
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z y) #s(literal -4 binary64)))
(*.f64 (*.f64 z y) #s(literal -4 binary64))
(*.f64 z y)
(fma.f64 (*.f64 #s(literal -4 binary64) y) z (*.f64 x x))
(*.f64 #s(literal -4 binary64) y)
Outputs
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -4 (* y z))))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (- (pow x 2) (* 4 (* y z)))))
#s(approx (* x x) #s(hole binary64 (pow x 2)))
#s(approx (+ (* (* -4 y) z) (* x x)) #s(hole binary64 (* -4 (* y z))))
#s(approx (+ (* (* -4 y) z) (* x x)) #s(hole binary64 (+ (* -4 (* y z)) (pow x 2))))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (pow x 2)))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* (pow x 2) (+ 1 (* -4 (/ (* y z) (pow x 2)))))))
#s(approx (+ (* (* -4 y) z) (* x x)) #s(hole binary64 (pow x 2)))
#s(approx (+ (* (* -4 y) z) (* x x)) #s(hole binary64 (* (pow x 2) (+ 1 (* -4 (/ (* y z) (pow x 2)))))))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (+ (* -4 (* y z)) (pow x 2))))
#s(approx (* (* z y) -4) #s(hole binary64 (* -4 (* y z))))
#s(approx (* z y) #s(hole binary64 (* y z)))
#s(approx (* -4 y) #s(hole binary64 (* -4 y)))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* y (- (/ (pow x 2) y) (* 4 z)))))
#s(approx (+ (* (* -4 y) z) (* x x)) #s(hole binary64 (* y (+ (* -4 z) (/ (pow x 2) y)))))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -1 (* y (- (* -1 (/ (pow x 2) y)) (* -4 z))))))
#s(approx (+ (* (* -4 y) z) (* x x)) #s(hole binary64 (* -1 (* y (+ (* -1 (/ (pow x 2) y)) (* 4 z))))))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* z (- (/ (pow x 2) z) (* 4 y)))))
#s(approx (+ (* (* -4 y) z) (* x x)) #s(hole binary64 (* z (+ (* -4 y) (/ (pow x 2) z)))))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -1 (* z (- (* -1 (/ (pow x 2) z)) (* -4 y))))))
#s(approx (+ (* (* -4 y) z) (* x x)) #s(hole binary64 (* -1 (* z (+ (* -1 (/ (pow x 2) z)) (* 4 y))))))
Calls

9 calls:

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

simplify210.0ms (8.4%)

Memory
-13.6MiB live, 321.4MiB allocated; 71ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
075363
1178363
2549363
32789363
08871333
Stop Event
iter limit
node limit
Counts
21 → 21
Calls
Call 1
Inputs
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -4 (* y z))))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (- (pow x 2) (* 4 (* y z)))))
#s(approx (* x x) #s(hole binary64 (pow x 2)))
#s(approx (+ (* (* -4 y) z) (* x x)) #s(hole binary64 (* -4 (* y z))))
#s(approx (+ (* (* -4 y) z) (* x x)) #s(hole binary64 (+ (* -4 (* y z)) (pow x 2))))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (pow x 2)))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* (pow x 2) (+ 1 (* -4 (/ (* y z) (pow x 2)))))))
#s(approx (+ (* (* -4 y) z) (* x x)) #s(hole binary64 (pow x 2)))
#s(approx (+ (* (* -4 y) z) (* x x)) #s(hole binary64 (* (pow x 2) (+ 1 (* -4 (/ (* y z) (pow x 2)))))))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (+ (* -4 (* y z)) (pow x 2))))
#s(approx (* (* z y) -4) #s(hole binary64 (* -4 (* y z))))
#s(approx (* z y) #s(hole binary64 (* y z)))
#s(approx (* -4 y) #s(hole binary64 (* -4 y)))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* y (- (/ (pow x 2) y) (* 4 z)))))
#s(approx (+ (* (* -4 y) z) (* x x)) #s(hole binary64 (* y (+ (* -4 z) (/ (pow x 2) y)))))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -1 (* y (- (* -1 (/ (pow x 2) y)) (* -4 z))))))
#s(approx (+ (* (* -4 y) z) (* x x)) #s(hole binary64 (* -1 (* y (+ (* -1 (/ (pow x 2) y)) (* 4 z))))))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* z (- (/ (pow x 2) z) (* 4 y)))))
#s(approx (+ (* (* -4 y) z) (* x x)) #s(hole binary64 (* z (+ (* -4 y) (/ (pow x 2) z)))))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -1 (* z (- (* -1 (/ (pow x 2) z)) (* -4 y))))))
#s(approx (+ (* (* -4 y) z) (* x x)) #s(hole binary64 (* -1 (* z (+ (* -1 (/ (pow x 2) z)) (* 4 y))))))
Outputs
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -4 (* y z))))
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z y) #s(literal -4 binary64)))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (- (pow x 2) (* 4 (* y z)))))
#s(approx (- (* x x) (* (* y 4) z)) (fma.f64 (*.f64 #s(literal -4 binary64) z) y (*.f64 x x)))
#s(approx (* x x) #s(hole binary64 (pow x 2)))
#s(approx (* x x) (*.f64 x x))
#s(approx (+ (* (* -4 y) z) (* x x)) #s(hole binary64 (* -4 (* y z))))
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z y) #s(literal -4 binary64)))
#s(approx (+ (* (* -4 y) z) (* x x)) #s(hole binary64 (+ (* -4 (* y z)) (pow x 2))))
#s(approx (- (* x x) (* (* y 4) z)) (fma.f64 (*.f64 #s(literal -4 binary64) z) y (*.f64 x x)))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (pow x 2)))
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 x x))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* (pow x 2) (+ 1 (* -4 (/ (* y z) (pow x 2)))))))
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (fma.f64 (*.f64 #s(literal -4 binary64) (/.f64 z x)) (/.f64 y x) #s(literal 1 binary64)) (*.f64 x x)))
#s(approx (+ (* (* -4 y) z) (* x x)) #s(hole binary64 (pow x 2)))
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 x x))
#s(approx (+ (* (* -4 y) z) (* x x)) #s(hole binary64 (* (pow x 2) (+ 1 (* -4 (/ (* y z) (pow x 2)))))))
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (fma.f64 (*.f64 #s(literal -4 binary64) (/.f64 z x)) (/.f64 y x) #s(literal 1 binary64)) (*.f64 x x)))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (+ (* -4 (* y z)) (pow x 2))))
#s(approx (- (* x x) (* (* y 4) z)) (fma.f64 (*.f64 #s(literal -4 binary64) z) y (*.f64 x x)))
#s(approx (* (* z y) -4) #s(hole binary64 (* -4 (* y z))))
#s(approx (* (* z y) -4) (*.f64 (*.f64 z y) #s(literal -4 binary64)))
#s(approx (* z y) #s(hole binary64 (* y z)))
#s(approx (* z y) (*.f64 z y))
#s(approx (* -4 y) #s(hole binary64 (* -4 y)))
#s(approx (* -4 y) (*.f64 #s(literal -4 binary64) y))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* y (- (/ (pow x 2) y) (* 4 z)))))
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (fma.f64 #s(literal -4 binary64) z (/.f64 (*.f64 x x) y)) y))
#s(approx (+ (* (* -4 y) z) (* x x)) #s(hole binary64 (* y (+ (* -4 z) (/ (pow x 2) y)))))
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (fma.f64 #s(literal -4 binary64) z (/.f64 (*.f64 x x) y)) y))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -1 (* y (- (* -1 (/ (pow x 2) y)) (* -4 z))))))
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (fma.f64 #s(literal -4 binary64) z (/.f64 (*.f64 x x) y)) y))
#s(approx (+ (* (* -4 y) z) (* x x)) #s(hole binary64 (* -1 (* y (+ (* -1 (/ (pow x 2) y)) (* 4 z))))))
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (fma.f64 #s(literal -4 binary64) z (/.f64 (*.f64 x x) y)) y))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* z (- (/ (pow x 2) z) (* 4 y)))))
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (fma.f64 #s(literal -4 binary64) y (/.f64 (*.f64 x x) z)) z))
#s(approx (+ (* (* -4 y) z) (* x x)) #s(hole binary64 (* z (+ (* -4 y) (/ (pow x 2) z)))))
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (fma.f64 #s(literal -4 binary64) y (/.f64 (*.f64 x x) z)) z))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -1 (* z (- (* -1 (/ (pow x 2) z)) (* -4 y))))))
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (fma.f64 #s(literal -4 binary64) y (/.f64 (*.f64 x x) z)) z))
#s(approx (+ (* (* -4 y) z) (* x x)) #s(hole binary64 (* -1 (* z (+ (* -1 (/ (pow x 2) z)) (* 4 y))))))
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (fma.f64 #s(literal -4 binary64) y (/.f64 (*.f64 x x) z)) z))

rewrite55.0ms (2.2%)

Memory
-4.5MiB live, 87.5MiB allocated; 8ms collecting garbage
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01650
02250
16848
048748
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
7 → 94
Calls
Call 1
Inputs
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 x x))
(*.f64 x x)
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z y) #s(literal -4 binary64)))
(*.f64 (*.f64 z y) #s(literal -4 binary64))
(*.f64 z y)
(fma.f64 (*.f64 #s(literal -4 binary64) y) z (*.f64 x x))
(*.f64 #s(literal -4 binary64) y)
Outputs
#s(approx (- (* x x) (* (* y 4) z)) (*.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))
(fabs.f64 (*.f64 x x))
(exp.f64 (*.f64 (log.f64 x) #s(literal 2 binary64)))
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 #s(literal -4 binary64) y) z))
(*.f64 (*.f64 #s(literal -4 binary64) z) y)
(*.f64 (*.f64 z #s(literal -4 binary64)) y)
(*.f64 (*.f64 #s(literal -4 binary64) y) z)
(*.f64 #s(literal -4 binary64) (*.f64 z y))
(*.f64 (*.f64 z y) #s(literal -4 binary64))
(*.f64 z (*.f64 #s(literal -4 binary64) y))
(*.f64 y (*.f64 #s(literal -4 binary64) z))
(*.f64 y (*.f64 z #s(literal -4 binary64)))
(neg.f64 (*.f64 z (*.f64 #s(literal 4 binary64) y)))
(*.f64 z y)
(*.f64 y z)
(/.f64 (-.f64 (pow.f64 (*.f64 (*.f64 #s(literal -4 binary64) y) z) #s(literal 3 binary64)) (pow.f64 (*.f64 (neg.f64 x) x) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 (*.f64 #s(literal -4 binary64) y) z) #s(literal 2 binary64)) (+.f64 (pow.f64 x #s(literal 4 binary64)) (*.f64 (*.f64 (*.f64 #s(literal -4 binary64) y) z) (*.f64 (neg.f64 x) x)))))
(/.f64 (neg.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) (pow.f64 (*.f64 (*.f64 #s(literal -4 binary64) y) z) #s(literal 2 binary64)))) (neg.f64 (fma.f64 (*.f64 z y) #s(literal 4 binary64) (*.f64 x x))))
(/.f64 (neg.f64 (-.f64 (pow.f64 x #s(literal 6 binary64)) (pow.f64 (*.f64 z (*.f64 #s(literal 4 binary64) y)) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (*.f64 z (*.f64 #s(literal 4 binary64) y)) (fma.f64 (*.f64 z y) #s(literal 4 binary64) (*.f64 x x)) (pow.f64 x #s(literal 4 binary64)))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (*.f64 #s(literal -4 binary64) y) z) #s(literal 2 binary64)) (pow.f64 x #s(literal 4 binary64)))) (neg.f64 (fma.f64 (*.f64 #s(literal -4 binary64) z) y (*.f64 (neg.f64 x) x))))
(/.f64 (neg.f64 (fma.f64 #s(literal -64 binary64) (pow.f64 (*.f64 z y) #s(literal 3 binary64)) (pow.f64 x #s(literal 6 binary64)))) (neg.f64 (fma.f64 (*.f64 x x) (fma.f64 (*.f64 z y) #s(literal 4 binary64) (*.f64 x x)) (pow.f64 (*.f64 (*.f64 #s(literal -4 binary64) y) z) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) (pow.f64 (*.f64 (*.f64 #s(literal -4 binary64) y) z) #s(literal 2 binary64))) (fma.f64 (*.f64 z y) #s(literal 4 binary64) (*.f64 x x)))
(/.f64 (-.f64 (pow.f64 (*.f64 (*.f64 #s(literal -4 binary64) y) z) #s(literal 2 binary64)) (pow.f64 x #s(literal 4 binary64))) (fma.f64 (*.f64 #s(literal -4 binary64) z) y (*.f64 (neg.f64 x) x)))
(/.f64 (-.f64 (pow.f64 x #s(literal 6 binary64)) (pow.f64 (*.f64 z (*.f64 #s(literal 4 binary64) y)) #s(literal 3 binary64))) (fma.f64 (*.f64 z (*.f64 #s(literal 4 binary64) y)) (fma.f64 (*.f64 z y) #s(literal 4 binary64) (*.f64 x x)) (pow.f64 x #s(literal 4 binary64))))
(/.f64 (fma.f64 #s(literal -64 binary64) (pow.f64 (*.f64 z y) #s(literal 3 binary64)) (pow.f64 x #s(literal 6 binary64))) (+.f64 (pow.f64 x #s(literal 4 binary64)) (-.f64 (pow.f64 (*.f64 (*.f64 #s(literal -4 binary64) y) z) #s(literal 2 binary64)) (*.f64 (*.f64 (*.f64 (*.f64 #s(literal -4 binary64) y) z) x) x))))
(/.f64 (fma.f64 #s(literal -64 binary64) (pow.f64 (*.f64 z y) #s(literal 3 binary64)) (pow.f64 x #s(literal 6 binary64))) (fma.f64 (*.f64 x x) (fma.f64 (*.f64 z y) #s(literal 4 binary64) (*.f64 x x)) (pow.f64 (*.f64 (*.f64 #s(literal -4 binary64) y) z) #s(literal 2 binary64))))
(fma.f64 (*.f64 #s(literal -4 binary64) z) y (*.f64 (neg.f64 (neg.f64 x)) x))
(fma.f64 (*.f64 #s(literal -4 binary64) z) y (*.f64 x x))
(fma.f64 (*.f64 z #s(literal -4 binary64)) y (*.f64 (neg.f64 (neg.f64 x)) x))
(fma.f64 (*.f64 z #s(literal -4 binary64)) y (*.f64 x x))
(fma.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)) (*.f64 (neg.f64 z) (*.f64 #s(literal 4 binary64) y)))
(fma.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)) (*.f64 (neg.f64 y) (*.f64 z #s(literal 4 binary64))))
(fma.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)) (*.f64 (*.f64 #s(literal -4 binary64) y) z))
(fma.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 x)) (*.f64 (neg.f64 z) (*.f64 #s(literal 4 binary64) y)))
(fma.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 x)) (*.f64 (neg.f64 y) (*.f64 z #s(literal 4 binary64))))
(fma.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 x)) (*.f64 (*.f64 #s(literal -4 binary64) y) z))
(fma.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x)) (*.f64 (neg.f64 z) (*.f64 #s(literal 4 binary64) y)))
(fma.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x)) (*.f64 (neg.f64 y) (*.f64 z #s(literal 4 binary64))))
(fma.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x)) (*.f64 (*.f64 #s(literal -4 binary64) y) z))
(fma.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)) (*.f64 (neg.f64 z) (*.f64 #s(literal 4 binary64) y)))
(fma.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)) (*.f64 (neg.f64 y) (*.f64 z #s(literal 4 binary64))))
(fma.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)) (*.f64 (*.f64 #s(literal -4 binary64) y) z))
(fma.f64 (neg.f64 x) (neg.f64 x) (*.f64 (neg.f64 z) (*.f64 #s(literal 4 binary64) y)))
(fma.f64 (neg.f64 x) (neg.f64 x) (*.f64 (neg.f64 y) (*.f64 z #s(literal 4 binary64))))
(fma.f64 (neg.f64 x) (neg.f64 x) (*.f64 (*.f64 #s(literal -4 binary64) y) z))
(fma.f64 (fabs.f64 x) (fabs.f64 x) (*.f64 (neg.f64 z) (*.f64 #s(literal 4 binary64) y)))
(fma.f64 (fabs.f64 x) (fabs.f64 x) (*.f64 (neg.f64 y) (*.f64 z #s(literal 4 binary64))))
(fma.f64 (fabs.f64 x) (fabs.f64 x) (*.f64 (*.f64 #s(literal -4 binary64) y) z))
(fma.f64 (*.f64 #s(literal -4 binary64) y) z (*.f64 (neg.f64 (neg.f64 x)) x))
(fma.f64 (*.f64 #s(literal -4 binary64) y) z (*.f64 x x))
(fma.f64 #s(literal -4 binary64) (*.f64 z y) (*.f64 (neg.f64 (neg.f64 x)) x))
(fma.f64 #s(literal -4 binary64) (*.f64 z y) (*.f64 x x))
(fma.f64 (*.f64 z y) #s(literal -4 binary64) (*.f64 (neg.f64 (neg.f64 x)) x))
(fma.f64 (*.f64 z y) #s(literal -4 binary64) (*.f64 x x))
(fma.f64 z (*.f64 #s(literal -4 binary64) y) (*.f64 (neg.f64 (neg.f64 x)) x))
(fma.f64 z (*.f64 #s(literal -4 binary64) y) (*.f64 x x))
(fma.f64 y (*.f64 #s(literal -4 binary64) z) (*.f64 (neg.f64 (neg.f64 x)) x))
(fma.f64 y (*.f64 #s(literal -4 binary64) z) (*.f64 x x))
(fma.f64 y (*.f64 z #s(literal -4 binary64)) (*.f64 (neg.f64 (neg.f64 x)) x))
(fma.f64 y (*.f64 z #s(literal -4 binary64)) (*.f64 x x))
(fma.f64 x x (*.f64 (neg.f64 z) (*.f64 #s(literal 4 binary64) y)))
(fma.f64 x x (*.f64 (neg.f64 y) (*.f64 z #s(literal 4 binary64))))
(fma.f64 x x (*.f64 (*.f64 #s(literal -4 binary64) y) z))
(-.f64 (/.f64 (pow.f64 x #s(literal 4 binary64)) (fma.f64 (*.f64 z y) #s(literal 4 binary64) (*.f64 x x))) (/.f64 (pow.f64 (*.f64 (*.f64 #s(literal -4 binary64) y) z) #s(literal 2 binary64)) (fma.f64 (*.f64 z y) #s(literal 4 binary64) (*.f64 x x))))
(-.f64 (/.f64 (pow.f64 x #s(literal 6 binary64)) (fma.f64 (*.f64 z (*.f64 #s(literal 4 binary64) y)) (fma.f64 (*.f64 z y) #s(literal 4 binary64) (*.f64 x x)) (pow.f64 x #s(literal 4 binary64)))) (/.f64 (pow.f64 (*.f64 z (*.f64 #s(literal 4 binary64) y)) #s(literal 3 binary64)) (fma.f64 (*.f64 z (*.f64 #s(literal 4 binary64) y)) (fma.f64 (*.f64 z y) #s(literal 4 binary64) (*.f64 x x)) (pow.f64 x #s(literal 4 binary64)))))
(-.f64 (/.f64 (pow.f64 (*.f64 (*.f64 #s(literal -4 binary64) y) z) #s(literal 2 binary64)) (fma.f64 (*.f64 #s(literal -4 binary64) z) y (*.f64 (neg.f64 x) x))) (/.f64 (pow.f64 x #s(literal 4 binary64)) (fma.f64 (*.f64 #s(literal -4 binary64) z) y (*.f64 (neg.f64 x) x))))
(-.f64 (*.f64 (*.f64 #s(literal -4 binary64) y) z) (*.f64 (neg.f64 (neg.f64 x)) (neg.f64 x)))
(-.f64 (*.f64 (*.f64 #s(literal -4 binary64) y) z) (*.f64 (neg.f64 (fabs.f64 x)) (fabs.f64 x)))
(-.f64 (*.f64 (*.f64 #s(literal -4 binary64) y) z) (*.f64 (neg.f64 x) x))
(-.f64 (*.f64 x x) (*.f64 (neg.f64 (*.f64 #s(literal -4 binary64) y)) z))
(-.f64 (*.f64 x x) (*.f64 (neg.f64 (*.f64 z y)) #s(literal -4 binary64)))
(-.f64 (*.f64 x x) (*.f64 (neg.f64 z) (*.f64 #s(literal -4 binary64) y)))
(-.f64 (*.f64 x x) (*.f64 z (*.f64 #s(literal 4 binary64) y)))
(+.f64 (/.f64 (pow.f64 (*.f64 (*.f64 #s(literal -4 binary64) y) z) #s(literal 3 binary64)) (fma.f64 (*.f64 x x) (fma.f64 (*.f64 z y) #s(literal 4 binary64) (*.f64 x x)) (pow.f64 (*.f64 (*.f64 #s(literal -4 binary64) y) z) #s(literal 2 binary64)))) (/.f64 (pow.f64 x #s(literal 6 binary64)) (fma.f64 (*.f64 x x) (fma.f64 (*.f64 z y) #s(literal 4 binary64) (*.f64 x x)) (pow.f64 (*.f64 (*.f64 #s(literal -4 binary64) y) z) #s(literal 2 binary64)))))
(+.f64 (*.f64 (*.f64 #s(literal -4 binary64) y) z) (*.f64 (neg.f64 (neg.f64 x)) x))
(+.f64 (*.f64 (*.f64 #s(literal -4 binary64) y) z) (*.f64 x x))
(+.f64 (*.f64 x x) (*.f64 (neg.f64 z) (*.f64 #s(literal 4 binary64) y)))
(+.f64 (*.f64 x x) (*.f64 (neg.f64 y) (*.f64 z #s(literal 4 binary64))))
(+.f64 (*.f64 x x) (*.f64 (*.f64 #s(literal -4 binary64) y) z))
(*.f64 (neg.f64 y) #s(literal 4 binary64))
(*.f64 #s(literal -4 binary64) y)
(*.f64 #s(literal 4 binary64) (neg.f64 y))
(*.f64 y #s(literal -4 binary64))
(neg.f64 (*.f64 #s(literal 4 binary64) y))

eval12.0ms (0.5%)

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

Compiled 1 685 to 241 computations (85.7% saved)

prune33.0ms (1.3%)

Memory
-34.6MiB live, 19.7MiB allocated; 6ms collecting garbage
Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New1161117
Fresh000
Picked123
Done000
Total1173120
Accuracy
100.0%
Counts
120 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
98.8%
(fma.f64 (*.f64 #s(literal -4 binary64) y) z (*.f64 x x))
52.4%
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z #s(literal -4 binary64)) y))
56.0%
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 x x))
Compiler

Compiled 36 to 29 computations (19.4% saved)

simplify8.0ms (0.3%)

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

Found 3 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 z #s(literal -4 binary64))
cost-diff0
(*.f64 (*.f64 z #s(literal -4 binary64)) y)
cost-diff0
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z #s(literal -4 binary64)) y))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01226
01426
12926
26826
315426
422926
525126
025125
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z #s(literal -4 binary64)) y))
(*.f64 (*.f64 z #s(literal -4 binary64)) y)
(*.f64 z #s(literal -4 binary64))
z
#s(literal -4 binary64)
y
Outputs
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z #s(literal -4 binary64)) y))
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 #s(literal -4 binary64) z) y))
(*.f64 (*.f64 z #s(literal -4 binary64)) y)
(*.f64 (*.f64 #s(literal -4 binary64) z) y)
(*.f64 z #s(literal -4 binary64))
(*.f64 #s(literal -4 binary64) z)
z
#s(literal -4 binary64)
y

localize27.0ms (1.1%)

Memory
11.2MiB live, 56.7MiB allocated; 5ms collecting garbage
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 (*.f64 z #s(literal -4 binary64)) y)
accuracy0.0
(*.f64 z #s(literal -4 binary64))
accuracy30.435358540081353
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z #s(literal -4 binary64)) y))
Samples
21.0ms256×0valid
Compiler

Compiled 22 to 13 computations (40.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 13.0ms
ival-mult: 11.0ms (85.4% of total)
ival-sub: 1.0ms (7.8% 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)

series16.0ms (0.6%)

Memory
-29.5MiB live, 15.3MiB allocated; 12ms collecting garbage
Counts
3 → 11
Calls
Call 1
Inputs
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z #s(literal -4 binary64)) y))
(*.f64 (*.f64 z #s(literal -4 binary64)) y)
(*.f64 z #s(literal -4 binary64))
Outputs
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -4 (* y z))))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (- (pow x 2) (* 4 (* y z)))))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (pow x 2)))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* (pow x 2) (+ 1 (* -4 (/ (* y z) (pow x 2)))))))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (+ (* -4 (* y z)) (pow x 2))))
#s(approx (* (* z -4) y) #s(hole binary64 (* -4 (* y z))))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* y (- (/ (pow x 2) y) (* 4 z)))))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -1 (* y (- (* -1 (/ (pow x 2) y)) (* -4 z))))))
#s(approx (* z -4) #s(hole binary64 (* -4 z)))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* z (- (/ (pow x 2) z) (* 4 y)))))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -1 (* z (- (* -1 (/ (pow x 2) z)) (* -4 y))))))
Calls

9 calls:

TimeVariablePointExpression
12.0ms
z
@inf
((- (* x x) (* (* y 4) z)) (* (* z -4) y) (* z -4))
1.0ms
z
@-inf
((- (* x x) (* (* y 4) z)) (* (* z -4) y) (* z -4))
1.0ms
z
@0
((- (* x x) (* (* y 4) z)) (* (* z -4) y) (* z -4))
1.0ms
y
@inf
((- (* x x) (* (* y 4) z)) (* (* z -4) y) (* z -4))
1.0ms
y
@-inf
((- (* x x) (* (* y 4) z)) (* (* z -4) y) (* z -4))

simplify124.0ms (4.9%)

Memory
8.4MiB live, 193.7MiB allocated; 42ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
053187
1120187
2393187
32316187
08372171
Stop Event
iter limit
node limit
Counts
11 → 11
Calls
Call 1
Inputs
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -4 (* y z))))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (- (pow x 2) (* 4 (* y z)))))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (pow x 2)))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* (pow x 2) (+ 1 (* -4 (/ (* y z) (pow x 2)))))))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (+ (* -4 (* y z)) (pow x 2))))
#s(approx (* (* z -4) y) #s(hole binary64 (* -4 (* y z))))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* y (- (/ (pow x 2) y) (* 4 z)))))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -1 (* y (- (* -1 (/ (pow x 2) y)) (* -4 z))))))
#s(approx (* z -4) #s(hole binary64 (* -4 z)))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* z (- (/ (pow x 2) z) (* 4 y)))))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -1 (* z (- (* -1 (/ (pow x 2) z)) (* -4 y))))))
Outputs
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -4 (* y z))))
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z y) #s(literal -4 binary64)))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (- (pow x 2) (* 4 (* y z)))))
#s(approx (- (* x x) (* (* y 4) z)) (fma.f64 (*.f64 z y) #s(literal -4 binary64) (*.f64 x x)))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (pow x 2)))
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 x x))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* (pow x 2) (+ 1 (* -4 (/ (* y z) (pow x 2)))))))
#s(approx (- (* x x) (* (* y 4) z)) (fma.f64 (*.f64 z y) #s(literal -4 binary64) (*.f64 x x)))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (+ (* -4 (* y z)) (pow x 2))))
#s(approx (- (* x x) (* (* y 4) z)) (fma.f64 (*.f64 z y) #s(literal -4 binary64) (*.f64 x x)))
#s(approx (* (* z -4) y) #s(hole binary64 (* -4 (* y z))))
#s(approx (* (* z -4) y) (*.f64 (*.f64 z y) #s(literal -4 binary64)))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* y (- (/ (pow x 2) y) (* 4 z)))))
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (fma.f64 #s(literal -4 binary64) z (/.f64 (*.f64 x x) y)) y))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -1 (* y (- (* -1 (/ (pow x 2) y)) (* -4 z))))))
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (fma.f64 #s(literal -4 binary64) z (/.f64 (*.f64 x x) y)) y))
#s(approx (* z -4) #s(hole binary64 (* -4 z)))
#s(approx (* z -4) (*.f64 #s(literal -4 binary64) z))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* z (- (/ (pow x 2) z) (* 4 y)))))
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (fma.f64 #s(literal -4 binary64) y (/.f64 (*.f64 x x) z)) z))
#s(approx (- (* x x) (* (* y 4) z)) #s(hole binary64 (* -1 (* z (- (* -1 (/ (pow x 2) z)) (* -4 y))))))
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (fma.f64 #s(literal -4 binary64) y (/.f64 (*.f64 x x) z)) z))

rewrite65.0ms (2.6%)

Memory
-3.2MiB live, 40.8MiB allocated; 10ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01223
01423
14423
027522
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
3 → 10
Calls
Call 1
Inputs
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z #s(literal -4 binary64)) y))
(*.f64 (*.f64 z #s(literal -4 binary64)) y)
(*.f64 z #s(literal -4 binary64))
Outputs
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 #s(literal -4 binary64) y) z))
(*.f64 (*.f64 y z) #s(literal -4 binary64))
(*.f64 (*.f64 #s(literal -4 binary64) y) z)
(*.f64 (*.f64 #s(literal -4 binary64) z) y)
(*.f64 #s(literal -4 binary64) (*.f64 z y))
(*.f64 z (*.f64 #s(literal -4 binary64) y))
(*.f64 y (*.f64 #s(literal -4 binary64) z))
(neg.f64 (*.f64 z (*.f64 #s(literal 4 binary64) y)))
(*.f64 #s(literal -4 binary64) z)
(*.f64 z #s(literal -4 binary64))

eval4.0ms (0.2%)

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

Compiled 277 to 55 computations (80.1% saved)

prune4.0ms (0.1%)

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

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New17017
Fresh000
Picked011
Done022
Total17320
Accuracy
100.0%
Counts
20 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
98.8%
(fma.f64 (*.f64 #s(literal -4 binary64) y) z (*.f64 x x))
52.4%
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z #s(literal -4 binary64)) y))
56.0%
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 x x))
Compiler

Compiled 96 to 52 computations (45.8% saved)

regimes14.0ms (0.6%)

Memory
20.7MiB live, 20.7MiB allocated; 0ms collecting garbage
Counts
5 → 1
Calls
Call 1
Inputs
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 x x))
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z #s(literal -4 binary64)) y))
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z y) #s(literal -4 binary64)))
(fma.f64 (*.f64 #s(literal -4 binary64) y) z (*.f64 x x))
(-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) z))
Outputs
(fma.f64 (*.f64 #s(literal -4 binary64) y) z (*.f64 x x))
Calls

7 calls:

2.0ms
(*.f64 y #s(literal 4 binary64))
2.0ms
y
2.0ms
z
2.0ms
x
2.0ms
(-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) z))
Results
AccuracySegmentsBranch
98.8%1(*.f64 y #s(literal 4 binary64))
98.8%1(*.f64 (*.f64 y #s(literal 4 binary64)) z)
98.8%1(*.f64 x x)
98.8%1(-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) z))
98.8%1x
98.8%1y
98.8%1z
Compiler

Compiled 23 to 32 computations (-39.1% saved)

regimes96.0ms (3.9%)

Memory
-37.0MiB live, 18.4MiB allocated; 10ms collecting garbage
Counts
3 → 2
Calls
Call 1
Inputs
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 x x))
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z #s(literal -4 binary64)) y))
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z y) #s(literal -4 binary64)))
Outputs
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z #s(literal -4 binary64)) y))
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 x x))
Calls

7 calls:

87.0ms
(*.f64 y #s(literal 4 binary64))
1.0ms
z
1.0ms
x
1.0ms
y
1.0ms
(-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) z))
Results
AccuracySegmentsBranch
69.7%3(*.f64 y #s(literal 4 binary64))
74.9%3(*.f64 (*.f64 y #s(literal 4 binary64)) z)
86.5%2(*.f64 x x)
79.7%2(-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) z))
86.5%2x
69.7%3y
69.0%3z
Compiler

Compiled 23 to 32 computations (-39.1% saved)

regimes7.0ms (0.3%)

Memory
18.1MiB live, 18.1MiB allocated; 0ms collecting garbage
Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

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

7 calls:

1.0ms
x
1.0ms
(*.f64 y #s(literal 4 binary64))
1.0ms
y
1.0ms
(-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) z))
1.0ms
z
Results
AccuracySegmentsBranch
56.0%1z
56.0%1(*.f64 y #s(literal 4 binary64))
56.0%1y
56.0%1(*.f64 (*.f64 y #s(literal 4 binary64)) z)
56.0%1(-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) z))
56.0%1(*.f64 x x)
56.0%1x
Compiler

Compiled 23 to 32 computations (-39.1% saved)

bsearch11.0ms (0.4%)

Memory
16.7MiB live, 16.7MiB allocated; 0ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
9.0ms
8191.509523022472
194251.57476272885
Samples
5.0ms112×0valid
Compiler

Compiled 208 to 182 computations (12.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 3.0ms
ival-mult: 2.0ms (74.4% of total)
ival-sub: 0.0ms (0% 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)

simplify16.0ms (0.6%)

Memory
-19.3MiB live, 24.1MiB allocated; 9ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01953
13053
26753
315153
424253
528853
Stop Event
saturated
Calls
Call 1
Inputs
(fma.f64 (*.f64 #s(literal -4 binary64) y) z (*.f64 x x))
(if (<=.f64 x #s(literal 130000 binary64)) #s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z #s(literal -4 binary64)) y)) #s(approx (- (* x x) (* (* y 4) z)) (*.f64 x x)))
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 x x))
Outputs
(fma.f64 (*.f64 #s(literal -4 binary64) y) z (*.f64 x x))
(if (<=.f64 x #s(literal 130000 binary64)) #s(approx (- (* x x) (* (* y 4) z)) (*.f64 (*.f64 z #s(literal -4 binary64)) y)) #s(approx (- (* x x) (* (* y 4) z)) (*.f64 x x)))
#s(approx (- (* x x) (* (* y 4) z)) (*.f64 x x))

derivations71.0ms (2.8%)

Memory
36.3MiB live, 79.3MiB allocated; 10ms collecting garbage
Stop Event
done
Compiler

Compiled 53 to 19 computations (64.2% saved)

preprocess22.0ms (0.9%)

Memory
-10.8MiB live, 33.7MiB allocated; 7ms collecting garbage
Remove

(sort y z)

(abs x)

Compiler

Compiled 156 to 82 computations (47.4% saved)

end0.0ms (0%)

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

Profiling

Loading profile data...