Diagrams.Solve.Polynomial:quartForm from diagrams-solve-0.1, D

Time bar (total: 3.3s)

start0.0ms (0%)

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

analyze0.0ms (0%)

Memory
0.8MiB live, 0.8MiB 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 11 computations (0% saved)

sample1.1s (32.7%)

Memory
43.9MiB live, 1 315.4MiB allocated; 289ms collecting garbage
Samples
685.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 406.0ms
ival-div: 212.0ms (52.2% of total)
ival-mult: 103.0ms (25.4% of total)
ival-sub: 70.0ms (17.2% of total)
exact: 9.0ms (2.2% of total)
ival-true: 6.0ms (1.5% of total)
ival-assert: 4.0ms (1% of total)
adjust: 2.0ms (0.5% of total)
Bogosity

explain92.0ms (2.8%)

Memory
-1.6MiB live, 186.8MiB allocated; 25ms collecting garbage
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
00-0-#s(literal 8 binary64)
00-0-(/.f64 (*.f64 x y) #s(literal 2 binary64))
00-0-z
00-0-(*.f64 x y)
00-0-(-.f64 (/.f64 (*.f64 x y) #s(literal 2 binary64)) (/.f64 z #s(literal 8 binary64)))
00-0-(/.f64 z #s(literal 8 binary64))
00-0-#s(literal 2 binary64)
00-0-y
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
36.0ms512×0valid
Compiler

Compiled 63 to 31 computations (50.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 17.0ms
ival-div: 10.0ms (57.3% of total)
ival-mult: 4.0ms (22.9% of total)
ival-sub: 2.0ms (11.5% of total)
exact: 1.0ms (5.7% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess261.0ms (7.9%)

Memory
1.9MiB live, 260.7MiB allocated; 56ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03390
15288
27184
311184
417784
536784
6172584
7587884
099
0139
1189
2249
3379
4659
51689
610479
755219
084259
Stop Event
iter limit
node limit
iter limit
node limit
Calls
Call 1
Inputs
(-.f64 (/.f64 (*.f64 x y) #s(literal 2 binary64)) (/.f64 z #s(literal 8 binary64)))
Outputs
(-.f64 (/.f64 (*.f64 x y) #s(literal 2 binary64)) (/.f64 z #s(literal 8 binary64)))
(-.f64 (/.f64 (*.f64 y x) #s(literal 2 binary64)) (/.f64 z #s(literal 8 binary64)))
Symmetry

(sort x y)

Compiler

Compiled 9 to 9 computations (0% saved)

eval0.0ms (0%)

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

Compiled 0 to 3 computations (-∞% saved)

prune0.0ms (0%)

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

Compiled 9 to 9 computations (0% saved)

simplify223.0ms (6.7%)

Memory
8.6MiB live, 165.7MiB allocated; 49ms collecting garbage
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(/.f64 z #s(literal 8 binary64))
cost-diff0
(*.f64 x y)
cost-diff0
(/.f64 (*.f64 x y) #s(literal 2 binary64))
cost-diff0
(-.f64 (/.f64 (*.f64 x y) #s(literal 2 binary64)) (/.f64 z #s(literal 8 binary64)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0925
01325
11825
22425
33725
46525
516825
6104725
7552125
0842525
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
(-.f64 (/.f64 (*.f64 x y) #s(literal 2 binary64)) (/.f64 z #s(literal 8 binary64)))
(/.f64 (*.f64 x y) #s(literal 2 binary64))
(*.f64 x y)
x
y
#s(literal 2 binary64)
(/.f64 z #s(literal 8 binary64))
z
#s(literal 8 binary64)
Outputs
(-.f64 (/.f64 (*.f64 x y) #s(literal 2 binary64)) (/.f64 z #s(literal 8 binary64)))
(-.f64 (/.f64 (*.f64 y x) #s(literal 2 binary64)) (/.f64 z #s(literal 8 binary64)))
(/.f64 (*.f64 x y) #s(literal 2 binary64))
(/.f64 (*.f64 y x) #s(literal 2 binary64))
(*.f64 x y)
(*.f64 y x)
x
y
#s(literal 2 binary64)
(/.f64 z #s(literal 8 binary64))
z
#s(literal 8 binary64)

localize24.0ms (0.7%)

Memory
-3.6MiB live, 41.2MiB allocated; 4ms collecting garbage
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(/.f64 z #s(literal 8 binary64))
accuracy0.0
(*.f64 x y)
accuracy0.00390625
(/.f64 (*.f64 x y) #s(literal 2 binary64))
accuracy0.01171875
(-.f64 (/.f64 (*.f64 x y) #s(literal 2 binary64)) (/.f64 z #s(literal 8 binary64)))
Samples
18.0ms256×0valid
Compiler

Compiled 27 to 11 computations (59.3% saved)

Precisions
Click to see histograms. Total time spent on operations: 10.0ms
ival-mult: 5.0ms (51.9% of total)
ival-div: 3.0ms (31.1% of total)
ival-sub: 1.0ms (10.4% 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)

series7.0ms (0.2%)

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

9 calls:

TimeVariablePointExpression
1.0ms
z
@0
((- (/ (* x y) 2) (/ z 8)) (/ (* x y) 2) (* x y) (/ z 8))
1.0ms
x
@-inf
((- (/ (* x y) 2) (/ z 8)) (/ (* x y) 2) (* x y) (/ z 8))
1.0ms
x
@0
((- (/ (* x y) 2) (/ z 8)) (/ (* x y) 2) (* x y) (/ z 8))
1.0ms
y
@-inf
((- (/ (* x y) 2) (/ z 8)) (/ (* x y) 2) (* x y) (/ z 8))
1.0ms
z
@inf
((- (/ (* x y) 2) (/ z 8)) (/ (* x y) 2) (* x y) (/ z 8))

simplify332.0ms (10%)

Memory
-13.5MiB live, 238.4MiB allocated; 175ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
04286
112886
244486
3111786
4331186
5655886
0859078
Stop Event
iter limit
node limit
Counts
12 → 12
Calls
Call 1
Inputs
(* -1/8 z)
(- (* 1/2 (* x y)) (* 1/8 z))
(* 1/2 (* x y))
(* x y)
(* x (+ (* -1/8 (/ z x)) (* 1/2 y)))
(* -1 (* x (+ (* -1/2 y) (* 1/8 (/ z x)))))
(* y (+ (* -1/8 (/ z y)) (* 1/2 x)))
(* -1 (* y (+ (* -1/2 x) (* 1/8 (/ z y)))))
(+ (* -1/8 z) (* 1/2 (* x y)))
(* 1/8 z)
(* z (- (* 1/2 (/ (* x y) z)) 1/8))
(* -1 (* z (+ 1/8 (* -1/2 (/ (* x y) z)))))
Outputs
(* -1/8 z)
(*.f64 #s(literal -1/8 binary64) z)
(- (* 1/2 (* x y)) (* 1/8 z))
(fma.f64 (*.f64 #s(literal 1/2 binary64) x) y (*.f64 #s(literal -1/8 binary64) z))
(* 1/2 (* x y))
(*.f64 (*.f64 y x) #s(literal 1/2 binary64))
(* x y)
(*.f64 y x)
(* x (+ (* -1/8 (/ z x)) (* 1/2 y)))
(fma.f64 (*.f64 #s(literal 1/2 binary64) x) y (*.f64 #s(literal -1/8 binary64) z))
(* -1 (* x (+ (* -1/2 y) (* 1/8 (/ z x)))))
(fma.f64 (*.f64 #s(literal 1/2 binary64) x) y (*.f64 #s(literal -1/8 binary64) z))
(* y (+ (* -1/8 (/ z y)) (* 1/2 x)))
(fma.f64 (*.f64 #s(literal 1/2 binary64) x) y (*.f64 #s(literal -1/8 binary64) z))
(* -1 (* y (+ (* -1/2 x) (* 1/8 (/ z y)))))
(fma.f64 (*.f64 #s(literal 1/2 binary64) x) y (*.f64 #s(literal -1/8 binary64) z))
(+ (* -1/8 z) (* 1/2 (* x y)))
(fma.f64 (*.f64 #s(literal 1/2 binary64) x) y (*.f64 #s(literal -1/8 binary64) z))
(* 1/8 z)
(*.f64 #s(literal 1/8 binary64) z)
(* z (- (* 1/2 (/ (* x y) z)) 1/8))
(fma.f64 (*.f64 #s(literal 1/2 binary64) x) y (*.f64 #s(literal -1/8 binary64) z))
(* -1 (* z (+ 1/8 (* -1/2 (/ (* x y) z)))))
(fma.f64 (*.f64 #s(literal 1/2 binary64) x) y (*.f64 #s(literal -1/8 binary64) z))

rewrite56.0ms (1.7%)

Memory
-1.8MiB live, 147.7MiB allocated; 14ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0920
01320
14520
031920
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
4 → 29
Calls
Call 1
Inputs
(-.f64 (/.f64 (*.f64 x y) #s(literal 2 binary64)) (/.f64 z #s(literal 8 binary64)))
(/.f64 (*.f64 x y) #s(literal 2 binary64))
(*.f64 x y)
(/.f64 z #s(literal 8 binary64))
Outputs
(/.f64 (/.f64 (fma.f64 #s(literal 8 binary64) (*.f64 y x) (*.f64 #s(literal -2 binary64) z)) #s(literal 2 binary64)) #s(literal 8 binary64))
(/.f64 (neg.f64 (-.f64 (pow.f64 (/.f64 (*.f64 y x) #s(literal 2 binary64)) #s(literal 2 binary64)) (pow.f64 (/.f64 z #s(literal 8 binary64)) #s(literal 2 binary64)))) (neg.f64 (fma.f64 (/.f64 y #s(literal 2 binary64)) x (/.f64 z #s(literal 8 binary64)))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (/.f64 (*.f64 y x) #s(literal 2 binary64)) #s(literal 3 binary64)) (pow.f64 (/.f64 z #s(literal 8 binary64)) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (/.f64 z #s(literal 8 binary64)) (fma.f64 (/.f64 y #s(literal 2 binary64)) x (/.f64 z #s(literal 8 binary64))) (pow.f64 (/.f64 (*.f64 y x) #s(literal 2 binary64)) #s(literal 2 binary64)))))
(/.f64 (neg.f64 (fma.f64 #s(literal 8 binary64) (*.f64 y x) (*.f64 #s(literal -2 binary64) z))) #s(literal -16 binary64))
(/.f64 (-.f64 (*.f64 (*.f64 (neg.f64 x) y) #s(literal -8 binary64)) (*.f64 #s(literal -2 binary64) (neg.f64 z))) #s(literal 16 binary64))
(/.f64 (-.f64 (*.f64 (*.f64 (neg.f64 x) y) #s(literal 8 binary64)) (*.f64 #s(literal -2 binary64) z)) #s(literal -16 binary64))
(/.f64 (-.f64 (*.f64 (*.f64 y x) #s(literal -8 binary64)) (*.f64 #s(literal 2 binary64) (neg.f64 z))) #s(literal -16 binary64))
(/.f64 (-.f64 (pow.f64 (/.f64 (*.f64 y x) #s(literal 2 binary64)) #s(literal 2 binary64)) (pow.f64 (/.f64 z #s(literal 8 binary64)) #s(literal 2 binary64))) (fma.f64 (/.f64 y #s(literal 2 binary64)) x (/.f64 z #s(literal 8 binary64))))
(/.f64 (-.f64 (pow.f64 (/.f64 (*.f64 y x) #s(literal 2 binary64)) #s(literal 3 binary64)) (pow.f64 (/.f64 z #s(literal 8 binary64)) #s(literal 3 binary64))) (fma.f64 (/.f64 z #s(literal 8 binary64)) (fma.f64 (/.f64 y #s(literal 2 binary64)) x (/.f64 z #s(literal 8 binary64))) (pow.f64 (/.f64 (*.f64 y x) #s(literal 2 binary64)) #s(literal 2 binary64))))
(/.f64 (fma.f64 #s(literal 8 binary64) (*.f64 y x) (*.f64 #s(literal -2 binary64) z)) #s(literal 16 binary64))
(-.f64 (/.f64 (pow.f64 (/.f64 (*.f64 y x) #s(literal 2 binary64)) #s(literal 2 binary64)) (fma.f64 (/.f64 y #s(literal 2 binary64)) x (/.f64 z #s(literal 8 binary64)))) (/.f64 (pow.f64 (/.f64 z #s(literal 8 binary64)) #s(literal 2 binary64)) (fma.f64 (/.f64 y #s(literal 2 binary64)) x (/.f64 z #s(literal 8 binary64)))))
(-.f64 (/.f64 (pow.f64 (/.f64 (*.f64 y x) #s(literal 2 binary64)) #s(literal 3 binary64)) (fma.f64 (/.f64 z #s(literal 8 binary64)) (fma.f64 (/.f64 y #s(literal 2 binary64)) x (/.f64 z #s(literal 8 binary64))) (pow.f64 (/.f64 (*.f64 y x) #s(literal 2 binary64)) #s(literal 2 binary64)))) (/.f64 (pow.f64 (/.f64 z #s(literal 8 binary64)) #s(literal 3 binary64)) (fma.f64 (/.f64 z #s(literal 8 binary64)) (fma.f64 (/.f64 y #s(literal 2 binary64)) x (/.f64 z #s(literal 8 binary64))) (pow.f64 (/.f64 (*.f64 y x) #s(literal 2 binary64)) #s(literal 2 binary64)))))
(-.f64 (/.f64 (*.f64 #s(literal 8 binary64) (*.f64 y x)) #s(literal 16 binary64)) (/.f64 (*.f64 z #s(literal 2 binary64)) #s(literal 16 binary64)))
(-.f64 (/.f64 (*.f64 y x) #s(literal 2 binary64)) (/.f64 z #s(literal 8 binary64)))
(*.f64 (/.f64 y #s(literal 2 binary64)) x)
(*.f64 y (/.f64 x #s(literal 2 binary64)))
(*.f64 x (/.f64 y #s(literal 2 binary64)))
(/.f64 (neg.f64 (*.f64 (neg.f64 x) y)) #s(literal 2 binary64))
(/.f64 (*.f64 (neg.f64 x) y) #s(literal -2 binary64))
(/.f64 (*.f64 y x) #s(literal 2 binary64))
(neg.f64 (/.f64 (*.f64 (neg.f64 x) y) #s(literal 2 binary64)))
(neg.f64 (/.f64 (*.f64 y x) #s(literal -2 binary64)))
(*.f64 y x)
(*.f64 x y)
(/.f64 (neg.f64 (neg.f64 z)) #s(literal 8 binary64))
(/.f64 (neg.f64 z) #s(literal -8 binary64))
(/.f64 z #s(literal 8 binary64))
(neg.f64 (/.f64 (neg.f64 z) #s(literal 8 binary64)))
(neg.f64 (/.f64 z #s(literal -8 binary64)))

eval6.0ms (0.2%)

Memory
-30.2MiB live, 16.1MiB allocated; 3ms collecting garbage
Compiler

Compiled 509 to 118 computations (76.8% saved)

prune1.0ms (0%)

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

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New32234
Fresh000
Picked101
Done000
Total33235
Accuracy
100.0%
Counts
35 → 2
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
#s(approx (- (/ (* x y) 2) (/ z 8)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) y (*.f64 #s(literal -1/8 binary64) z)))
47.7%
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 #s(literal -1/8 binary64) z))
Compiler

Compiled 31 to 27 computations (12.9% saved)

simplify139.0ms (4.2%)

Memory
21.5MiB live, 166.3MiB allocated; 15ms collecting garbage
Localize:

Found 6 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 #s(literal -1/8 binary64) z)
cost-diff0
(*.f64 #s(literal 1/2 binary64) x)
cost-diff0
(fma.f64 (*.f64 #s(literal 1/2 binary64) x) y (*.f64 #s(literal -1/8 binary64) z))
cost-diff0
#s(approx (- (/ (* x y) 2) (/ z 8)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) y (*.f64 #s(literal -1/8 binary64) z)))
cost-diff0
(*.f64 #s(literal -1/8 binary64) z)
cost-diff0
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 #s(literal -1/8 binary64) z))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01655
02055
13455
26255
311755
419955
535455
6147955
7558155
0805655
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 #s(literal -1/8 binary64) z))
(*.f64 #s(literal -1/8 binary64) z)
#s(literal -1/8 binary64)
z
#s(approx (- (/ (* x y) 2) (/ z 8)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) y (*.f64 #s(literal -1/8 binary64) z)))
(fma.f64 (*.f64 #s(literal 1/2 binary64) x) y (*.f64 #s(literal -1/8 binary64) z))
(*.f64 #s(literal 1/2 binary64) x)
#s(literal 1/2 binary64)
x
y
(*.f64 #s(literal -1/8 binary64) z)
#s(literal -1/8 binary64)
z
Outputs
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 #s(literal -1/8 binary64) z))
(*.f64 #s(literal -1/8 binary64) z)
#s(literal -1/8 binary64)
z
#s(approx (- (/ (* x y) 2) (/ z 8)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) y (*.f64 #s(literal -1/8 binary64) z)))
#s(approx (- (/ (* x y) 2) (/ z 8)) (fma.f64 #s(literal 1/2 binary64) (*.f64 y x) (*.f64 #s(literal -1/8 binary64) z)))
(fma.f64 (*.f64 #s(literal 1/2 binary64) x) y (*.f64 #s(literal -1/8 binary64) z))
(fma.f64 #s(literal 1/2 binary64) (*.f64 y x) (*.f64 #s(literal -1/8 binary64) z))
(*.f64 #s(literal 1/2 binary64) x)
#s(literal 1/2 binary64)
x
y
(*.f64 #s(literal -1/8 binary64) z)
#s(literal -1/8 binary64)
z

localize32.0ms (1%)

Memory
13.8MiB live, 60.1MiB allocated; 3ms collecting garbage
Localize:

Found 6 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(fma.f64 (*.f64 #s(literal 1/2 binary64) x) y (*.f64 #s(literal -1/8 binary64) z))
accuracy0.0
(*.f64 #s(literal 1/2 binary64) x)
accuracy0.0
(*.f64 #s(literal -1/8 binary64) z)
accuracy0.0
#s(approx (- (/ (* x y) 2) (/ z 8)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) y (*.f64 #s(literal -1/8 binary64) z)))
accuracy0.0
(*.f64 #s(literal -1/8 binary64) z)
accuracy33.498499927066725
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 #s(literal -1/8 binary64) z))
Samples
24.0ms256×0valid
Compiler

Compiled 45 to 17 computations (62.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 13.0ms
ival-mult: 7.0ms (52.9% of total)
ival-div: 3.0ms (22.7% of total)
ival-sub: 1.0ms (7.6% of total)
ival-add: 1.0ms (7.6% 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)

series21.0ms (0.6%)

Memory
-24.2MiB live, 24.9MiB allocated; 13ms collecting garbage
Counts
5 → 11
Calls
Call 1
Inputs
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 #s(literal -1/8 binary64) z))
(*.f64 #s(literal -1/8 binary64) z)
#s(approx (- (/ (* x y) 2) (/ z 8)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) y (*.f64 #s(literal -1/8 binary64) z)))
(fma.f64 (*.f64 #s(literal 1/2 binary64) x) y (*.f64 #s(literal -1/8 binary64) z))
(*.f64 #s(literal 1/2 binary64) x)
Outputs
(* -1/8 z)
(- (* 1/2 (* x y)) (* 1/8 z))
(+ (* -1/8 z) (* 1/2 (* x y)))
(* 1/2 x)
(* 1/2 (* x y))
(* x (+ (* -1/8 (/ z x)) (* 1/2 y)))
(* -1 (* x (+ (* -1/2 y) (* 1/8 (/ z x)))))
(* y (+ (* -1/8 (/ z y)) (* 1/2 x)))
(* -1 (* y (+ (* -1/2 x) (* 1/8 (/ z y)))))
(* z (- (* 1/2 (/ (* x y) z)) 1/8))
(* -1 (* z (+ 1/8 (* -1/2 (/ (* x y) z)))))
Calls

9 calls:

TimeVariablePointExpression
16.0ms
x
@inf
((- (/ (* x y) 2) (/ z 8)) (* -1/8 z) (- (/ (* x y) 2) (/ z 8)) (+ (* (* 1/2 x) y) (* -1/8 z)) (* 1/2 x))
1.0ms
x
@-inf
((- (/ (* x y) 2) (/ z 8)) (* -1/8 z) (- (/ (* x y) 2) (/ z 8)) (+ (* (* 1/2 x) y) (* -1/8 z)) (* 1/2 x))
1.0ms
x
@0
((- (/ (* x y) 2) (/ z 8)) (* -1/8 z) (- (/ (* x y) 2) (/ z 8)) (+ (* (* 1/2 x) y) (* -1/8 z)) (* 1/2 x))
1.0ms
z
@inf
((- (/ (* x y) 2) (/ z 8)) (* -1/8 z) (- (/ (* x y) 2) (/ z 8)) (+ (* (* 1/2 x) y) (* -1/8 z)) (* 1/2 x))
0.0ms
z
@-inf
((- (/ (* x y) 2) (/ z 8)) (* -1/8 z) (- (/ (* x y) 2) (/ z 8)) (+ (* (* 1/2 x) y) (* -1/8 z)) (* 1/2 x))

simplify193.0ms (5.8%)

Memory
12.0MiB live, 333.1MiB allocated; 42ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
04283
112883
244583
3111983
4333983
5660583
0863475
Stop Event
iter limit
node limit
Counts
11 → 11
Calls
Call 1
Inputs
(* -1/8 z)
(- (* 1/2 (* x y)) (* 1/8 z))
(+ (* -1/8 z) (* 1/2 (* x y)))
(* 1/2 x)
(* 1/2 (* x y))
(* x (+ (* -1/8 (/ z x)) (* 1/2 y)))
(* -1 (* x (+ (* -1/2 y) (* 1/8 (/ z x)))))
(* y (+ (* -1/8 (/ z y)) (* 1/2 x)))
(* -1 (* y (+ (* -1/2 x) (* 1/8 (/ z y)))))
(* z (- (* 1/2 (/ (* x y) z)) 1/8))
(* -1 (* z (+ 1/8 (* -1/2 (/ (* x y) z)))))
Outputs
(* -1/8 z)
(*.f64 #s(literal -1/8 binary64) z)
(- (* 1/2 (* x y)) (* 1/8 z))
(fma.f64 #s(literal 1/2 binary64) (*.f64 y x) (*.f64 #s(literal -1/8 binary64) z))
(+ (* -1/8 z) (* 1/2 (* x y)))
(fma.f64 #s(literal 1/2 binary64) (*.f64 y x) (*.f64 #s(literal -1/8 binary64) z))
(* 1/2 x)
(*.f64 #s(literal 1/2 binary64) x)
(* 1/2 (* x y))
(*.f64 #s(literal 1/2 binary64) (*.f64 y x))
(* x (+ (* -1/8 (/ z x)) (* 1/2 y)))
(fma.f64 #s(literal 1/2 binary64) (*.f64 y x) (*.f64 #s(literal -1/8 binary64) z))
(* -1 (* x (+ (* -1/2 y) (* 1/8 (/ z x)))))
(fma.f64 #s(literal 1/2 binary64) (*.f64 y x) (*.f64 #s(literal -1/8 binary64) z))
(* y (+ (* -1/8 (/ z y)) (* 1/2 x)))
(fma.f64 #s(literal 1/2 binary64) (*.f64 y x) (*.f64 #s(literal -1/8 binary64) z))
(* -1 (* y (+ (* -1/2 x) (* 1/8 (/ z y)))))
(fma.f64 #s(literal 1/2 binary64) (*.f64 y x) (*.f64 #s(literal -1/8 binary64) z))
(* z (- (* 1/2 (/ (* x y) z)) 1/8))
(fma.f64 #s(literal 1/2 binary64) (*.f64 y x) (*.f64 #s(literal -1/8 binary64) z))
(* -1 (* z (+ 1/8 (* -1/2 (/ (* x y) z)))))
(fma.f64 #s(literal 1/2 binary64) (*.f64 y x) (*.f64 #s(literal -1/8 binary64) z))

rewrite40.0ms (1.2%)

Memory
1.3MiB live, 59.0MiB allocated; 5ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01645
02045
17345
053345
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
5 → 31
Calls
Call 1
Inputs
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 #s(literal -1/8 binary64) z))
(*.f64 #s(literal -1/8 binary64) z)
#s(approx (- (/ (* x y) 2) (/ z 8)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) y (*.f64 #s(literal -1/8 binary64) z)))
(fma.f64 (*.f64 #s(literal 1/2 binary64) x) y (*.f64 #s(literal -1/8 binary64) z))
(*.f64 #s(literal 1/2 binary64) x)
Outputs
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 #s(literal -1/8 binary64) z))
(*.f64 #s(literal -1/8 binary64) z)
(*.f64 z #s(literal -1/8 binary64))
#s(approx (- (/ (* x y) 2) (/ z 8)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) y (*.f64 #s(literal -1/8 binary64) z)))
(/.f64 (-.f64 (pow.f64 (*.f64 #s(literal -1/8 binary64) z) #s(literal 2 binary64)) (pow.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) x) y) #s(literal 2 binary64))) (-.f64 (*.f64 #s(literal -1/8 binary64) z) (*.f64 (*.f64 #s(literal 1/2 binary64) x) y)))
(/.f64 (-.f64 (pow.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) x) y) #s(literal 3 binary64)) (pow.f64 (*.f64 #s(literal 1/8 binary64) z) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) x) y) #s(literal 2 binary64)) (fma.f64 #s(literal 1/64 binary64) (*.f64 z z) (*.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) x) y) (*.f64 #s(literal 1/8 binary64) z)))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) x) y) #s(literal 2 binary64)) (pow.f64 (*.f64 #s(literal -1/8 binary64) z) #s(literal 2 binary64)))) (neg.f64 (fma.f64 (*.f64 #s(literal 1/2 binary64) y) x (*.f64 #s(literal 1/8 binary64) z))))
(/.f64 (neg.f64 (fma.f64 #s(literal -1/512 binary64) (pow.f64 z #s(literal 3 binary64)) (pow.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) x) y) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (*.f64 #s(literal -1/8 binary64) z) (-.f64 (*.f64 #s(literal -1/8 binary64) z) (*.f64 (*.f64 #s(literal 1/2 binary64) x) y)) (pow.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) x) y) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) x) y) #s(literal 2 binary64)) (pow.f64 (*.f64 #s(literal -1/8 binary64) z) #s(literal 2 binary64))) (fma.f64 (*.f64 #s(literal 1/2 binary64) y) x (*.f64 #s(literal 1/8 binary64) z)))
(/.f64 (fma.f64 #s(literal -1/512 binary64) (pow.f64 z #s(literal 3 binary64)) (pow.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) x) y) #s(literal 3 binary64))) (fma.f64 #s(literal 1/64 binary64) (*.f64 z z) (-.f64 (pow.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) x) y) #s(literal 2 binary64)) (*.f64 (*.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) x) y) #s(literal -1/8 binary64)) z))))
(/.f64 (fma.f64 #s(literal -1/512 binary64) (pow.f64 z #s(literal 3 binary64)) (pow.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) x) y) #s(literal 3 binary64))) (fma.f64 (*.f64 #s(literal -1/8 binary64) z) (-.f64 (*.f64 #s(literal -1/8 binary64) z) (*.f64 (*.f64 #s(literal 1/2 binary64) x) y)) (pow.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) x) y) #s(literal 2 binary64))))
(fma.f64 (*.f64 #s(literal 1/2 binary64) y) x (*.f64 #s(literal -1/8 binary64) z))
(fma.f64 (*.f64 y #s(literal 1/2 binary64)) x (*.f64 #s(literal -1/8 binary64) z))
(fma.f64 (*.f64 #s(literal 1/2 binary64) x) y (*.f64 #s(literal -1/8 binary64) z))
(fma.f64 #s(literal 1/2 binary64) (*.f64 y x) (*.f64 #s(literal -1/8 binary64) z))
(fma.f64 #s(literal -1/8 binary64) z (*.f64 (*.f64 #s(literal 1/2 binary64) x) y))
(fma.f64 z #s(literal -1/8 binary64) (*.f64 (*.f64 #s(literal 1/2 binary64) x) y))
(fma.f64 (*.f64 y x) #s(literal 1/2 binary64) (*.f64 #s(literal -1/8 binary64) z))
(fma.f64 y (*.f64 #s(literal 1/2 binary64) x) (*.f64 #s(literal -1/8 binary64) z))
(fma.f64 x (*.f64 #s(literal 1/2 binary64) y) (*.f64 #s(literal -1/8 binary64) z))
(-.f64 (/.f64 (pow.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) x) y) #s(literal 2 binary64)) (fma.f64 (*.f64 #s(literal 1/2 binary64) y) x (*.f64 #s(literal 1/8 binary64) z))) (/.f64 (pow.f64 (*.f64 #s(literal -1/8 binary64) z) #s(literal 2 binary64)) (fma.f64 (*.f64 #s(literal 1/2 binary64) y) x (*.f64 #s(literal 1/8 binary64) z))))
(-.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) x) y) (*.f64 (neg.f64 z) #s(literal -1/8 binary64)))
(-.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) x) y) (*.f64 #s(literal 1/8 binary64) z))
(-.f64 (*.f64 #s(literal -1/8 binary64) z) (*.f64 (neg.f64 (*.f64 #s(literal 1/2 binary64) x)) y))
(-.f64 (*.f64 #s(literal -1/8 binary64) z) (*.f64 #s(literal -1/2 binary64) (*.f64 y x)))
(-.f64 (*.f64 #s(literal -1/8 binary64) z) (*.f64 (neg.f64 y) (*.f64 #s(literal 1/2 binary64) x)))
(+.f64 (/.f64 (pow.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) x) y) #s(literal 3 binary64)) (fma.f64 (*.f64 #s(literal -1/8 binary64) z) (-.f64 (*.f64 #s(literal -1/8 binary64) z) (*.f64 (*.f64 #s(literal 1/2 binary64) x) y)) (pow.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) x) y) #s(literal 2 binary64)))) (/.f64 (pow.f64 (*.f64 #s(literal -1/8 binary64) z) #s(literal 3 binary64)) (fma.f64 (*.f64 #s(literal -1/8 binary64) z) (-.f64 (*.f64 #s(literal -1/8 binary64) z) (*.f64 (*.f64 #s(literal 1/2 binary64) x) y)) (pow.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) x) y) #s(literal 2 binary64)))))
(+.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) x) y) (*.f64 #s(literal -1/8 binary64) z))
(+.f64 (*.f64 #s(literal -1/8 binary64) z) (*.f64 (*.f64 #s(literal 1/2 binary64) x) y))
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 x #s(literal 1/2 binary64))

eval4.0ms (0.1%)

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

Compiled 894 to 131 computations (85.3% saved)

prune3.0ms (0.1%)

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

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New36137
Fresh000
Picked022
Done000
Total36339
Accuracy
100.0%
Counts
39 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
#s(approx (- (/ (* x y) 2) (/ z 8)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) y (*.f64 #s(literal -1/8 binary64) z)))
53.9%
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 #s(literal 1/2 binary64) (*.f64 y x)))
47.7%
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 #s(literal -1/8 binary64) z))
Compiler

Compiled 46 to 40 computations (13% saved)

simplify130.0ms (3.9%)

Memory
-5.2MiB live, 130.7MiB allocated; 12ms collecting garbage
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 y x)
cost-diff0
(*.f64 #s(literal 1/2 binary64) (*.f64 y x))
cost-diff0
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 #s(literal 1/2 binary64) (*.f64 y x)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01326
01526
12326
23626
35126
47926
518426
6111926
7533226
0804726
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 #s(literal 1/2 binary64) (*.f64 y x)))
(*.f64 #s(literal 1/2 binary64) (*.f64 y x))
#s(literal 1/2 binary64)
(*.f64 y x)
y
x
Outputs
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 #s(literal 1/2 binary64) (*.f64 y x)))
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 (*.f64 #s(literal 1/2 binary64) x) y))
(*.f64 #s(literal 1/2 binary64) (*.f64 y x))
(*.f64 (*.f64 #s(literal 1/2 binary64) x) y)
#s(literal 1/2 binary64)
(*.f64 y x)
y
x

localize49.0ms (1.5%)

Memory
-19.1MiB live, 73.3MiB allocated; 19ms collecting garbage
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 y x)
accuracy0.00390625
(*.f64 #s(literal 1/2 binary64) (*.f64 y x))
accuracy29.496641305400054
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 #s(literal 1/2 binary64) (*.f64 y x)))
Samples
39.0ms256×0valid
Compiler

Compiled 22 to 14 computations (36.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 16.0ms
ival-div: 9.0ms (54.7% of total)
ival-mult: 5.0ms (30.4% 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)

series4.0ms (0.1%)

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

9 calls:

TimeVariablePointExpression
1.0ms
x
@-inf
((- (/ (* x y) 2) (/ z 8)) (* 1/2 (* y x)) (* y x))
1.0ms
y
@-inf
((- (/ (* x y) 2) (/ z 8)) (* 1/2 (* y x)) (* y x))
0.0ms
x
@0
((- (/ (* x y) 2) (/ z 8)) (* 1/2 (* y x)) (* y x))
0.0ms
x
@inf
((- (/ (* x y) 2) (/ z 8)) (* 1/2 (* y x)) (* y x))
0.0ms
y
@inf
((- (/ (* x y) 2) (/ z 8)) (* 1/2 (* y x)) (* y x))

simplify210.0ms (6.3%)

Memory
2.7MiB live, 277.2MiB allocated; 84ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
04283
112883
244483
3111583
4332083
5655683
0858775
Stop Event
iter limit
node limit
Counts
11 → 11
Calls
Call 1
Inputs
(* -1/8 z)
(- (* 1/2 (* x y)) (* 1/8 z))
(* 1/2 (* x y))
(* x y)
(* x (+ (* -1/8 (/ z x)) (* 1/2 y)))
(* -1 (* x (+ (* -1/2 y) (* 1/8 (/ z x)))))
(* y (+ (* -1/8 (/ z y)) (* 1/2 x)))
(* -1 (* y (+ (* -1/2 x) (* 1/8 (/ z y)))))
(+ (* -1/8 z) (* 1/2 (* x y)))
(* z (- (* 1/2 (/ (* x y) z)) 1/8))
(* -1 (* z (+ 1/8 (* -1/2 (/ (* x y) z)))))
Outputs
(* -1/8 z)
(*.f64 #s(literal -1/8 binary64) z)
(- (* 1/2 (* x y)) (* 1/8 z))
(fma.f64 (*.f64 #s(literal 1/2 binary64) x) y (*.f64 #s(literal -1/8 binary64) z))
(* 1/2 (* x y))
(*.f64 #s(literal 1/2 binary64) (*.f64 y x))
(* x y)
(*.f64 y x)
(* x (+ (* -1/8 (/ z x)) (* 1/2 y)))
(fma.f64 (*.f64 #s(literal 1/2 binary64) x) y (*.f64 #s(literal -1/8 binary64) z))
(* -1 (* x (+ (* -1/2 y) (* 1/8 (/ z x)))))
(fma.f64 (*.f64 #s(literal 1/2 binary64) x) y (*.f64 #s(literal -1/8 binary64) z))
(* y (+ (* -1/8 (/ z y)) (* 1/2 x)))
(fma.f64 (*.f64 #s(literal 1/2 binary64) x) y (*.f64 #s(literal -1/8 binary64) z))
(* -1 (* y (+ (* -1/2 x) (* 1/8 (/ z y)))))
(fma.f64 (*.f64 #s(literal 1/2 binary64) x) y (*.f64 #s(literal -1/8 binary64) z))
(+ (* -1/8 z) (* 1/2 (* x y)))
(fma.f64 (*.f64 #s(literal 1/2 binary64) x) y (*.f64 #s(literal -1/8 binary64) z))
(* z (- (* 1/2 (/ (* x y) z)) 1/8))
(fma.f64 (*.f64 #s(literal 1/2 binary64) x) y (*.f64 #s(literal -1/8 binary64) z))
(* -1 (* z (+ 1/8 (* -1/2 (/ (* x y) z)))))
(fma.f64 (*.f64 #s(literal 1/2 binary64) x) y (*.f64 #s(literal -1/8 binary64) z))

rewrite54.0ms (1.6%)

Memory
14.4MiB live, 84.9MiB allocated; 18ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01323
01523
15123
033223
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
3 → 9
Calls
Call 1
Inputs
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 #s(literal 1/2 binary64) (*.f64 y x)))
(*.f64 #s(literal 1/2 binary64) (*.f64 y x))
(*.f64 y x)
Outputs
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 #s(literal 1/2 binary64) (*.f64 y x)))
(*.f64 (*.f64 #s(literal 1/2 binary64) x) y)
(*.f64 (*.f64 #s(literal 1/2 binary64) y) x)
(*.f64 #s(literal 1/2 binary64) (*.f64 y x))
(*.f64 (*.f64 y x) #s(literal 1/2 binary64))
(*.f64 y (*.f64 x #s(literal 1/2 binary64)))
(*.f64 x (*.f64 #s(literal 1/2 binary64) y))
(*.f64 y x)
(*.f64 x y)

eval10.0ms (0.3%)

Memory
-35.9MiB live, 9.5MiB allocated; 12ms collecting garbage
Compiler

Compiled 206 to 42 computations (79.6% saved)

prune3.0ms (0.1%)

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

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New13013
Fresh000
Picked011
Done022
Total13316
Accuracy
100.0%
Counts
16 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
#s(approx (- (/ (* x y) 2) (/ z 8)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) y (*.f64 #s(literal -1/8 binary64) z)))
53.9%
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 #s(literal 1/2 binary64) (*.f64 y x)))
47.7%
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 #s(literal -1/8 binary64) z))
Compiler

Compiled 101 to 65 computations (35.6% saved)

regimes14.0ms (0.4%)

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

7 calls:

3.0ms
(*.f64 x y)
2.0ms
z
2.0ms
(/.f64 z #s(literal 8 binary64))
2.0ms
(-.f64 (/.f64 (*.f64 x y) #s(literal 2 binary64)) (/.f64 z #s(literal 8 binary64)))
2.0ms
y
Results
AccuracySegmentsBranch
100.0%1(/.f64 z #s(literal 8 binary64))
100.0%1(*.f64 x y)
100.0%1(/.f64 (*.f64 x y) #s(literal 2 binary64))
100.0%1(-.f64 (/.f64 (*.f64 x y) #s(literal 2 binary64)) (/.f64 z #s(literal 8 binary64)))
100.0%1x
100.0%1y
100.0%1z
Compiler

Compiled 23 to 33 computations (-43.5% saved)

regimes10.0ms (0.3%)

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

7 calls:

2.0ms
(/.f64 z #s(literal 8 binary64))
1.0ms
z
1.0ms
x
1.0ms
(-.f64 (/.f64 (*.f64 x y) #s(literal 2 binary64)) (/.f64 z #s(literal 8 binary64)))
1.0ms
y
Results
AccuracySegmentsBranch
73.7%3(/.f64 z #s(literal 8 binary64))
80.3%3(*.f64 x y)
80.3%3(/.f64 (*.f64 x y) #s(literal 2 binary64))
64.1%3(-.f64 (/.f64 (*.f64 x y) #s(literal 2 binary64)) (/.f64 z #s(literal 8 binary64)))
73.5%3x
76.1%3y
73.7%3z
Compiler

Compiled 23 to 33 computations (-43.5% saved)

regimes8.0ms (0.2%)

Memory
32.0MiB live, 32.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 y) 2) (/ z 8)) (*.f64 #s(literal -1/8 binary64) z))
Outputs
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 #s(literal -1/8 binary64) z))
Calls

7 calls:

1.0ms
(-.f64 (/.f64 (*.f64 x y) #s(literal 2 binary64)) (/.f64 z #s(literal 8 binary64)))
1.0ms
(/.f64 z #s(literal 8 binary64))
1.0ms
z
1.0ms
(/.f64 (*.f64 x y) #s(literal 2 binary64))
1.0ms
y
Results
AccuracySegmentsBranch
47.7%1(-.f64 (/.f64 (*.f64 x y) #s(literal 2 binary64)) (/.f64 z #s(literal 8 binary64)))
47.7%1x
47.7%1(/.f64 z #s(literal 8 binary64))
47.7%1z
47.7%1y
47.7%1(*.f64 x y)
47.7%1(/.f64 (*.f64 x y) #s(literal 2 binary64))
Compiler

Compiled 23 to 33 computations (-43.5% saved)

bsearch1.0ms (0%)

Memory
2.0MiB live, 2.0MiB allocated; 0ms collecting garbage
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
6.1879898127231734e-27
2.3135639230619627e-24
0.0ms
-8.131752698737649e-49
-6.602433656074378e-53
Compiler

Compiled 12 to 15 computations (-25% saved)

simplify45.0ms (1.4%)

Memory
-23.8MiB live, 76.1MiB allocated; 5ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02776
13576
24176
35576
49576
543376
6363976
Stop Event
node limit
Calls
Call 1
Inputs
#s(approx (- (/ (* x y) 2) (/ z 8)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) y (*.f64 #s(literal -1/8 binary64) z)))
(if (<=.f64 (/.f64 (*.f64 x y) #s(literal 2 binary64)) #s(literal -822752278660603/1645504557321206042154969182557350504982735865633579863348609024 binary64)) #s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 #s(literal 1/2 binary64) (*.f64 y x))) (if (<=.f64 (/.f64 (*.f64 x y) #s(literal 2 binary64)) #s(literal 1742245718635205/174224571863520493293247799005065324265472 binary64)) #s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 #s(literal -1/8 binary64) z)) #s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 #s(literal 1/2 binary64) (*.f64 y x)))))
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 #s(literal -1/8 binary64) z))
Outputs
#s(approx (- (/ (* x y) 2) (/ z 8)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) y (*.f64 #s(literal -1/8 binary64) z)))
(if (<=.f64 (/.f64 (*.f64 x y) #s(literal 2 binary64)) #s(literal -822752278660603/1645504557321206042154969182557350504982735865633579863348609024 binary64)) #s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 #s(literal 1/2 binary64) (*.f64 y x))) (if (<=.f64 (/.f64 (*.f64 x y) #s(literal 2 binary64)) #s(literal 1742245718635205/174224571863520493293247799005065324265472 binary64)) #s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 #s(literal -1/8 binary64) z)) #s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 #s(literal 1/2 binary64) (*.f64 y x)))))
(if (or (<=.f64 (/.f64 (*.f64 x y) #s(literal 2 binary64)) #s(literal -822752278660603/1645504557321206042154969182557350504982735865633579863348609024 binary64)) (not (<=.f64 (/.f64 (*.f64 x y) #s(literal 2 binary64)) #s(literal 1742245718635205/174224571863520493293247799005065324265472 binary64)))) #s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 #s(literal 1/2 binary64) (*.f64 y x))) #s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 #s(literal -1/8 binary64) z)))
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 #s(literal -1/8 binary64) z))

derivations212.0ms (6.4%)

Memory
-5.1MiB live, 138.6MiB allocated; 12ms collecting garbage
Stop Event
done
Compiler

Compiled 76 to 29 computations (61.8% saved)

preprocess47.0ms (1.4%)

Memory
-5.2MiB live, 41.1MiB allocated; 8ms collecting garbage
Remove

(sort x y)

Compiler

Compiled 206 to 106 computations (48.5% saved)

end0.0ms (0%)

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

Profiling

Loading profile data...