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

Time bar (total: 3.2s)

start0.0ms (0%)

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

analyze0.0ms (0%)

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

sample970.0ms (30.4%)

Memory
55.0MiB live, 1 681.7MiB allocated; 318ms collecting garbage
Samples
659.0ms8 255×0valid
0.0ms1valid
Precisions
Click to see histograms. Total time spent on operations: 304.0ms
ival-div: 160.0ms (52.7% of total)
ival-mult: 72.0ms (23.7% of total)
ival-sub: 52.0ms (17.1% of total)
exact: 8.0ms (2.6% of total)
ival-true: 5.0ms (1.6% of total)
ival-assert: 3.0ms (1% of total)
adjust: 2.0ms (0.7% of total)
Bogosity

explain123.0ms (3.9%)

Memory
-11.6MiB live, 235.1MiB allocated; 69ms 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
65.0ms512×0valid
Compiler

Compiled 63 to 31 computations (50.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 16.0ms
ival-div: 9.0ms (55.6% of total)
ival-mult: 4.0ms (24.7% of total)
ival-sub: 2.0ms (12.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)

preprocess234.0ms (7.4%)

Memory
-6.8MiB live, 232.3MiB allocated; 21ms 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.1MiB live, 0.1MiB allocated; 0ms collecting garbage
Compiler

Compiled 0 to 3 computations (-∞% saved)

prune0.0ms (0%)

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

simplify134.0ms (4.2%)

Memory
12.0MiB live, 100.1MiB allocated; 13ms 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)

localize43.0ms (1.3%)

Memory
6.8MiB live, 58.8MiB allocated; 11ms 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 (*.f64 x y) #s(literal 2 binary64)) (/.f64 z #s(literal 8 binary64)))
accuracy0.0078125
(/.f64 (*.f64 x y) #s(literal 2 binary64))
Samples
37.0ms256×0valid
Compiler

Compiled 27 to 11 computations (59.3% saved)

Precisions
Click to see histograms. Total time spent on operations: 24.0ms
ival-div: 20.0ms (83% of total)
ival-mult: 2.0ms (8.3% of total)
ival-sub: 1.0ms (4.2% 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)

series12.0ms (0.4%)

Memory
-30.1MiB live, 14.2MiB allocated; 7ms 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
5.0ms
y
@-inf
((- (/ (* x y) 2) (/ z 8)) (/ (* x y) 2) (* x y) (/ z 8))
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
z
@inf
((- (/ (* x y) 2) (/ z 8)) (/ (* x y) 2) (* x y) (/ z 8))

simplify193.0ms (6.1%)

Memory
24.2MiB live, 246.1MiB allocated; 52ms 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))

rewrite119.0ms (3.7%)

Memory
-4.7MiB live, 115.6MiB allocated; 116ms 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)))

eval4.0ms (0.1%)

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

Compiled 509 to 118 computations (76.8% saved)

prune8.0ms (0.3%)

Memory
-44.3MiB live, 6.2MiB allocated; 11ms 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)))
48.5%
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 #s(literal -1/8 binary64) z))
Compiler

Compiled 31 to 27 computations (12.9% saved)

simplify146.0ms (4.6%)

Memory
41.4MiB live, 229.4MiB allocated; 13ms 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
-7.8MiB live, 86.0MiB allocated; 4ms 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)
accuracy32.92879058225625
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 #s(literal -1/8 binary64) z))
Samples
23.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: 6.0ms (44.9% of total)
ival-div: 4.0ms (29.9% of total)
ival-sub: 1.0ms (7.5% of total)
ival-add: 1.0ms (7.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)

series5.0ms (0.2%)

Memory
13.3MiB live, 13.3MiB allocated; 0ms 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
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
@-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))

simplify262.0ms (8.2%)

Memory
-36.9MiB live, 294.6MiB allocated; 52ms 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))

rewrite41.0ms (1.3%)

Memory
21.2MiB live, 66.8MiB allocated; 4ms 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.7MiB live, 9.7MiB allocated; 0ms collecting garbage
Compiler

Compiled 894 to 131 computations (85.3% saved)

prune3.0ms (0.1%)

Memory
6.5MiB live, 6.5MiB 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.5%
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 #s(literal 1/2 binary64) (*.f64 y x)))
48.5%
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 #s(literal -1/8 binary64) z))
Compiler

Compiled 46 to 40 computations (13% saved)

simplify151.0ms (4.7%)

Memory
-18.6MiB live, 89.5MiB allocated; 23ms 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

localize61.0ms (1.9%)

Memory
-5.1MiB live, 39.6MiB allocated; 9ms collecting garbage
Localize:

Found 3 expressions of interest:

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

Compiled 22 to 14 computations (36.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 47.0ms
ival-div: 41.0ms (86.3% of total)
ival-mult: 5.0ms (10.5% of total)
ival-sub: 1.0ms (2.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
6.8MiB live, 6.8MiB 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
y
@inf
((- (/ (* 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))

simplify276.0ms (8.7%)

Memory
17.5MiB live, 201.7MiB allocated; 48ms 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))

rewrite45.0ms (1.4%)

Memory
5.5MiB live, 48.9MiB allocated; 10ms 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)

eval1.0ms (0%)

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

Compiled 206 to 42 computations (79.6% saved)

prune16.0ms (0.5%)

Memory
-45.5MiB live, 13.1MiB allocated; 15ms 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.5%
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 #s(literal 1/2 binary64) (*.f64 y x)))
48.5%
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 #s(literal -1/8 binary64) z))
Compiler

Compiled 101 to 65 computations (35.6% saved)

regimes13.0ms (0.4%)

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

2.0ms
z
2.0ms
(/.f64 z #s(literal 8 binary64))
2.0ms
x
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)

regimes13.0ms (0.4%)

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

5.0ms
y
2.0ms
x
1.0ms
(/.f64 z #s(literal 8 binary64))
1.0ms
(-.f64 (/.f64 (*.f64 x y) #s(literal 2 binary64)) (/.f64 z #s(literal 8 binary64)))
1.0ms
z
Results
AccuracySegmentsBranch
70.8%3(/.f64 z #s(literal 8 binary64))
83.5%3(*.f64 x y)
83.5%3(/.f64 (*.f64 x y) #s(literal 2 binary64))
65.6%5(-.f64 (/.f64 (*.f64 x y) #s(literal 2 binary64)) (/.f64 z #s(literal 8 binary64)))
72.6%3x
78.0%3y
70.8%3z
Compiler

Compiled 23 to 33 computations (-43.5% saved)

regimes9.0ms (0.3%)

Memory
-16.5MiB live, 30.0MiB allocated; 2ms 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:

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

Compiled 23 to 33 computations (-43.5% saved)

bsearch1.0ms (0%)

Memory
1.9MiB live, 1.9MiB allocated; 0ms collecting garbage
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
3.719180459022832e+40
3.113075149530941e+41
0.0ms
-1.4149522515810855e+32
-3.0333067866602534e+29
Compiler

Compiled 12 to 15 computations (-25% saved)

simplify40.0ms (1.3%)

Memory
11.9MiB live, 57.8MiB 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 -100000000000000005366162204393472 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 50000000000000000310004322520389159747584 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 -100000000000000005366162204393472 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 50000000000000000310004322520389159747584 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 -100000000000000005366162204393472 binary64)) (not (<=.f64 (/.f64 (*.f64 x y) #s(literal 2 binary64)) #s(literal 50000000000000000310004322520389159747584 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))

derivations185.0ms (5.8%)

Memory
-10.4MiB live, 138.5MiB allocated; 12ms collecting garbage
Stop Event
done
Compiler

Compiled 76 to 29 computations (61.8% saved)

preprocess37.0ms (1.2%)

Memory
27.3MiB live, 73.6MiB allocated; 4ms 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...