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

Time bar (total: 1.7s)

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)

sample738.0ms (42.4%)

Memory
28.8MiB live, 1 010.0MiB allocated; 237ms collecting garbage
Samples
477.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 205.0ms
ival-div!: 126.0ms (61.5% of total)
ival-mult!: 57.0ms (27.8% of total)
ival-sub!: 20.0ms (9.8% of total)
adjust: 2.0ms (1% of total)
Bogosity

explain158.0ms (9.1%)

Memory
-7.2MiB live, 96.3MiB allocated; 13ms collecting garbage
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
10-0-(/.f64 (*.f64 x y) #s(literal 2 binary64))
00-0-#s(literal 8 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
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
/.f64(/.f64 (*.f64 x y) #s(literal 2 binary64))o/n10
(*.f64 x y)overflow29
Confusion
Predicted +Predicted -
+10
-0255
Precision
1.0
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+100
-00255
Precision?
1.0
Recall?
1.0
Freqs
test
numberfreq
0255
11
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
87.0ms512×0valid
Compiler

Compiled 63 to 31 computations (50.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 9.0ms
ival-div!: 4.0ms (46.9% of total)
ival-mult!: 3.0ms (35.2% of total)
ival-sub!: 1.0ms (11.7% of total)
adjust: 0.0ms (0% of total)

preprocess238.0ms (13.6%)

Memory
10.2MiB live, 198.1MiB allocated; 17ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03499
15297
27193
311193
417793
536893
6173093
7588793
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)

prune2.0ms (0.1%)

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

Compiled 9 to 9 computations (0% saved)

series9.0ms (0.5%)

Memory
10.4MiB live, 10.4MiB allocated; 0ms collecting garbage
Counts
9 → 16
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
#s(approx (- (/ (* x y) 2) (/ z 8)) #s(hole binary64 (* -1/8 z)))
#s(approx (- (/ (* x y) 2) (/ z 8)) #s(hole binary64 (- (* 1/2 (* x y)) (* 1/8 z))))
#s(approx (/ (* x y) 2) #s(hole binary64 (* 1/2 (* x y))))
#s(approx (* x y) #s(hole binary64 (* x y)))
#s(approx x #s(hole binary64 x))
#s(approx (- (/ (* x y) 2) (/ z 8)) #s(hole binary64 (* 1/2 (* x y))))
#s(approx (- (/ (* x y) 2) (/ z 8)) #s(hole binary64 (* x (+ (* -1/8 (/ z x)) (* 1/2 y)))))
#s(approx (- (/ (* x y) 2) (/ z 8)) #s(hole binary64 (* -1 (* x (+ (* -1/2 y) (* 1/8 (/ z x)))))))
#s(approx y #s(hole binary64 y))
#s(approx (- (/ (* x y) 2) (/ z 8)) #s(hole binary64 (* y (+ (* -1/8 (/ z y)) (* 1/2 x)))))
#s(approx (- (/ (* x y) 2) (/ z 8)) #s(hole binary64 (* -1 (* y (+ (* -1/2 x) (* 1/8 (/ z y)))))))
#s(approx (- (/ (* x y) 2) (/ z 8)) #s(hole binary64 (+ (* -1/8 z) (* 1/2 (* x y)))))
#s(approx (/ z 8) #s(hole binary64 (* 1/8 z)))
#s(approx z #s(hole binary64 z))
#s(approx (- (/ (* x y) 2) (/ z 8)) #s(hole binary64 (* z (- (* 1/2 (/ (* x y) z)) 1/8))))
#s(approx (- (/ (* x y) 2) (/ z 8)) #s(hole binary64 (* -1 (* z (+ 1/8 (* -1/2 (/ (* x y) z)))))))
Calls

9 calls:

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

rewrite88.0ms (5%)

Memory
5.6MiB live, 95.7MiB allocated; 7ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
067257
072254
1288254
02376247
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
25 → 50
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)
#s(approx (- (/ (* x y) 2) (/ z 8)) #s(hole binary64 (* -1/8 z)))
#s(approx (- (/ (* x y) 2) (/ z 8)) #s(hole binary64 (- (* 1/2 (* x y)) (* 1/8 z))))
#s(approx (/ (* x y) 2) #s(hole binary64 (* 1/2 (* x y))))
#s(approx (* x y) #s(hole binary64 (* x y)))
#s(approx x #s(hole binary64 x))
#s(approx (- (/ (* x y) 2) (/ z 8)) #s(hole binary64 (* 1/2 (* x y))))
#s(approx (- (/ (* x y) 2) (/ z 8)) #s(hole binary64 (* x (+ (* -1/8 (/ z x)) (* 1/2 y)))))
#s(approx (- (/ (* x y) 2) (/ z 8)) #s(hole binary64 (* -1 (* x (+ (* -1/2 y) (* 1/8 (/ z x)))))))
#s(approx y #s(hole binary64 y))
#s(approx (- (/ (* x y) 2) (/ z 8)) #s(hole binary64 (* y (+ (* -1/8 (/ z y)) (* 1/2 x)))))
#s(approx (- (/ (* x y) 2) (/ z 8)) #s(hole binary64 (* -1 (* y (+ (* -1/2 x) (* 1/8 (/ z y)))))))
#s(approx (- (/ (* x y) 2) (/ z 8)) #s(hole binary64 (+ (* -1/8 z) (* 1/2 (* x y)))))
#s(approx (/ z 8) #s(hole binary64 (* 1/8 z)))
#s(approx z #s(hole binary64 z))
#s(approx (- (/ (* x y) 2) (/ z 8)) #s(hole binary64 (* z (- (* 1/2 (/ (* x y) z)) 1/8))))
#s(approx (- (/ (* x y) 2) (/ z 8)) #s(hole binary64 (* -1 (* z (+ 1/8 (* -1/2 (/ (* x y) z)))))))
Outputs
(/.f64 (/.f64 (fma.f64 (*.f64 y x) #s(literal 8 binary64) (*.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 (*.f64 y x) #s(literal 8 binary64) (*.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 (*.f64 y x) #s(literal 8 binary64) (*.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 (*.f64 y x) #s(literal 8 binary64)) #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)
x
y
#s(literal 2 binary64)
(/.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)))
z
#s(literal 8 binary64)
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.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)))
#s(approx (/ (* x y) 2) (*.f64 #s(literal 1/2 binary64) (*.f64 y x)))
#s(approx (* x y) (*.f64 y x))
#s(approx x x)
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 #s(literal 1/2 binary64) (*.f64 y x)))
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 (fma.f64 (/.f64 z x) #s(literal -1/8 binary64) (*.f64 #s(literal 1/2 binary64) y)) x))
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 (neg.f64 x) (fma.f64 #s(literal -1/2 binary64) y (*.f64 (/.f64 z x) #s(literal 1/8 binary64)))))
#s(approx y y)
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 (fma.f64 (/.f64 z y) #s(literal -1/8 binary64) (*.f64 #s(literal 1/2 binary64) x)) y))
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 (neg.f64 y) (fma.f64 (/.f64 z y) #s(literal 1/8 binary64) (*.f64 #s(literal -1/2 binary64) 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)))
#s(approx (/ z 8) (*.f64 #s(literal 1/8 binary64) z))
#s(approx z z)
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 (-.f64 (*.f64 (/.f64 (*.f64 y x) z) #s(literal 1/2 binary64)) #s(literal 1/8 binary64)) z))
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 (neg.f64 z) (fma.f64 (/.f64 (*.f64 y x) z) #s(literal -1/2 binary64) #s(literal 1/8 binary64))))

eval5.0ms (0.3%)

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

Compiled 726 to 157 computations (78.4% saved)

prune2.0ms (0.1%)

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

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New46349
Fresh000
Picked101
Done000
Total47350
Accuracy
100.0%
Counts
50 → 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)))
50.4%
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 #s(literal 1/2 binary64) (*.f64 y x)))
49.7%
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 #s(literal -1/8 binary64) z))
Compiler

Compiled 46 to 40 computations (13% saved)

series17.0ms (1%)

Memory
-17.3MiB live, 36.0MiB allocated; 5ms collecting garbage
Counts
13 → 26
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)) (*.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
#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)) #s(hole binary64 (* -1/8 z)))
#s(approx (- (/ (* x y) 2) (/ z 8)) #s(hole binary64 (- (* 1/2 (* x y)) (* 1/8 z))))
#s(approx (* 1/2 (* y x)) #s(hole binary64 (* 1/2 (* x y))))
#s(approx (* y x) #s(hole binary64 (* x y)))
#s(approx x #s(hole binary64 x))
#s(approx (+ (* (* 1/2 x) y) (* -1/8 z)) #s(hole binary64 (* -1/8 z)))
#s(approx (+ (* (* 1/2 x) y) (* -1/8 z)) #s(hole binary64 (+ (* -1/8 z) (* 1/2 (* x y)))))
#s(approx (* 1/2 x) #s(hole binary64 (* 1/2 x)))
#s(approx (- (/ (* x y) 2) (/ z 8)) #s(hole binary64 (* 1/2 (* x y))))
#s(approx (- (/ (* x y) 2) (/ z 8)) #s(hole binary64 (* x (+ (* -1/8 (/ z x)) (* 1/2 y)))))
#s(approx (+ (* (* 1/2 x) y) (* -1/8 z)) #s(hole binary64 (* 1/2 (* x y))))
#s(approx (+ (* (* 1/2 x) y) (* -1/8 z)) #s(hole binary64 (* x (+ (* -1/8 (/ z x)) (* 1/2 y)))))
#s(approx (- (/ (* x y) 2) (/ z 8)) #s(hole binary64 (* -1 (* x (+ (* -1/2 y) (* 1/8 (/ z x)))))))
#s(approx (+ (* (* 1/2 x) y) (* -1/8 z)) #s(hole binary64 (* -1 (* x (+ (* -1/2 y) (* 1/8 (/ z x)))))))
#s(approx y #s(hole binary64 y))
#s(approx (- (/ (* x y) 2) (/ z 8)) #s(hole binary64 (* y (+ (* -1/8 (/ z y)) (* 1/2 x)))))
#s(approx (+ (* (* 1/2 x) y) (* -1/8 z)) #s(hole binary64 (* y (+ (* -1/8 (/ z y)) (* 1/2 x)))))
#s(approx (- (/ (* x y) 2) (/ z 8)) #s(hole binary64 (* -1 (* y (+ (* -1/2 x) (* 1/8 (/ z y)))))))
#s(approx (+ (* (* 1/2 x) y) (* -1/8 z)) #s(hole binary64 (* -1 (* y (+ (* -1/2 x) (* 1/8 (/ z y)))))))
#s(approx (- (/ (* x y) 2) (/ z 8)) #s(hole binary64 (+ (* -1/8 z) (* 1/2 (* x y)))))
#s(approx (* -1/8 z) #s(hole binary64 (* -1/8 z)))
#s(approx z #s(hole binary64 z))
#s(approx (- (/ (* x y) 2) (/ z 8)) #s(hole binary64 (* z (- (* 1/2 (/ (* x y) z)) 1/8))))
#s(approx (+ (* (* 1/2 x) y) (* -1/8 z)) #s(hole binary64 (* z (- (* 1/2 (/ (* x y) z)) 1/8))))
#s(approx (- (/ (* x y) 2) (/ z 8)) #s(hole binary64 (* -1 (* z (+ 1/8 (* -1/2 (/ (* x y) z)))))))
#s(approx (+ (* (* 1/2 x) y) (* -1/8 z)) #s(hole binary64 (* -1 (* z (+ 1/8 (* -1/2 (/ (* x y) z)))))))
Calls

9 calls:

TimeVariablePointExpression
10.0ms
z
@-inf
((- (/ (* x y) 2) (/ z 8)) (* -1/8 z) -1/8 z (- (/ (* x y) 2) (/ z 8)) (* 1/2 (* y x)) 1/2 (* y x) y x (- (/ (* 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) -1/8 z (- (/ (* x y) 2) (/ z 8)) (* 1/2 (* y x)) 1/2 (* y x) y x (- (/ (* 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) -1/8 z (- (/ (* x y) 2) (/ z 8)) (* 1/2 (* y x)) 1/2 (* y x) y x (- (/ (* x y) 2) (/ z 8)) (+ (* (* 1/2 x) y) (* -1/8 z)) (* 1/2 x))
1.0ms
y
@-inf
((- (/ (* x y) 2) (/ z 8)) (* -1/8 z) -1/8 z (- (/ (* x y) 2) (/ z 8)) (* 1/2 (* y x)) 1/2 (* y x) y x (- (/ (* 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) -1/8 z (- (/ (* x y) 2) (/ z 8)) (* 1/2 (* y x)) 1/2 (* y x) y x (- (/ (* x y) 2) (/ z 8)) (+ (* (* 1/2 x) y) (* -1/8 z)) (* 1/2 x))

rewrite85.0ms (4.9%)

Memory
-0.9MiB live, 88.5MiB allocated; 7ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
085482
089473
1326473
02518463
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
39 → 87
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)) (*.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
#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(approx (- (/ (* x y) 2) (/ z 8)) #s(hole binary64 (* -1/8 z)))
#s(approx (- (/ (* x y) 2) (/ z 8)) #s(hole binary64 (- (* 1/2 (* x y)) (* 1/8 z))))
#s(approx (* 1/2 (* y x)) #s(hole binary64 (* 1/2 (* x y))))
#s(approx (* y x) #s(hole binary64 (* x y)))
#s(approx x #s(hole binary64 x))
#s(approx (+ (* (* 1/2 x) y) (* -1/8 z)) #s(hole binary64 (* -1/8 z)))
#s(approx (+ (* (* 1/2 x) y) (* -1/8 z)) #s(hole binary64 (+ (* -1/8 z) (* 1/2 (* x y)))))
#s(approx (* 1/2 x) #s(hole binary64 (* 1/2 x)))
#s(approx (- (/ (* x y) 2) (/ z 8)) #s(hole binary64 (* 1/2 (* x y))))
#s(approx (- (/ (* x y) 2) (/ z 8)) #s(hole binary64 (* x (+ (* -1/8 (/ z x)) (* 1/2 y)))))
#s(approx (+ (* (* 1/2 x) y) (* -1/8 z)) #s(hole binary64 (* 1/2 (* x y))))
#s(approx (+ (* (* 1/2 x) y) (* -1/8 z)) #s(hole binary64 (* x (+ (* -1/8 (/ z x)) (* 1/2 y)))))
#s(approx (- (/ (* x y) 2) (/ z 8)) #s(hole binary64 (* -1 (* x (+ (* -1/2 y) (* 1/8 (/ z x)))))))
#s(approx (+ (* (* 1/2 x) y) (* -1/8 z)) #s(hole binary64 (* -1 (* x (+ (* -1/2 y) (* 1/8 (/ z x)))))))
#s(approx y #s(hole binary64 y))
#s(approx (- (/ (* x y) 2) (/ z 8)) #s(hole binary64 (* y (+ (* -1/8 (/ z y)) (* 1/2 x)))))
#s(approx (+ (* (* 1/2 x) y) (* -1/8 z)) #s(hole binary64 (* y (+ (* -1/8 (/ z y)) (* 1/2 x)))))
#s(approx (- (/ (* x y) 2) (/ z 8)) #s(hole binary64 (* -1 (* y (+ (* -1/2 x) (* 1/8 (/ z y)))))))
#s(approx (+ (* (* 1/2 x) y) (* -1/8 z)) #s(hole binary64 (* -1 (* y (+ (* -1/2 x) (* 1/8 (/ z y)))))))
#s(approx (- (/ (* x y) 2) (/ z 8)) #s(hole binary64 (+ (* -1/8 z) (* 1/2 (* x y)))))
#s(approx (* -1/8 z) #s(hole binary64 (* -1/8 z)))
#s(approx z #s(hole binary64 z))
#s(approx (- (/ (* x y) 2) (/ z 8)) #s(hole binary64 (* z (- (* 1/2 (/ (* x y) z)) 1/8))))
#s(approx (+ (* (* 1/2 x) y) (* -1/8 z)) #s(hole binary64 (* z (- (* 1/2 (/ (* x y) z)) 1/8))))
#s(approx (- (/ (* x y) 2) (/ z 8)) #s(hole binary64 (* -1 (* z (+ 1/8 (* -1/2 (/ (* x y) z)))))))
#s(approx (+ (* (* 1/2 x) y) (* -1/8 z)) #s(hole binary64 (* -1 (* z (+ 1/8 (* -1/2 (/ (* x y) z)))))))
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))
(neg.f64 (*.f64 #s(literal 1/8 binary64) z))
#s(literal -1/8 binary64)
z
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 #s(literal 1/2 binary64) (*.f64 y x)))
(*.f64 (*.f64 #s(literal 1/2 binary64) y) x)
(*.f64 (*.f64 #s(literal 1/2 binary64) x) y)
(*.f64 #s(literal 1/2 binary64) (*.f64 y x))
(*.f64 (*.f64 y x) #s(literal 1/2 binary64))
(*.f64 y (*.f64 #s(literal 1/2 binary64) x))
(*.f64 x (*.f64 #s(literal 1/2 binary64) y))
(neg.f64 (*.f64 (*.f64 #s(literal -1/2 binary64) x) y))
#s(literal 1/2 binary64)
(*.f64 y x)
(*.f64 x y)
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 (pow.f64 (*.f64 #s(literal -1/8 binary64) z) #s(literal 3 binary64)) (pow.f64 (*.f64 (*.f64 #s(literal -1/2 binary64) x) y) #s(literal 3 binary64))) (fma.f64 (*.f64 z z) #s(literal 1/64 binary64) (+.f64 (pow.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 y x)) #s(literal 2 binary64)) (*.f64 (*.f64 #s(literal -1/8 binary64) z) (*.f64 (*.f64 #s(literal -1/2 binary64) x) y)))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 y x)) #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 (-.f64 (pow.f64 (*.f64 #s(literal 1/8 binary64) z) #s(literal 2 binary64)) (pow.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 y x)) #s(literal 2 binary64)))) (neg.f64 (fma.f64 #s(literal -1/8 binary64) z (*.f64 (*.f64 #s(literal -1/2 binary64) x) y))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 y x)) #s(literal 3 binary64)) (pow.f64 (*.f64 #s(literal 1/8 binary64) z) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (*.f64 #s(literal 1/8 binary64) z) (fma.f64 (*.f64 #s(literal 1/2 binary64) y) x (*.f64 #s(literal 1/8 binary64) z)) (pow.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 y x)) #s(literal 2 binary64)))))
(/.f64 (neg.f64 (fma.f64 (pow.f64 z #s(literal 3 binary64)) #s(literal -1/512 binary64) (pow.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 y x)) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (*.f64 #s(literal -1/8 binary64) z) (fma.f64 #s(literal -1/8 binary64) z (*.f64 (*.f64 #s(literal -1/2 binary64) x) y)) (pow.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 y x)) #s(literal 2 binary64)))))
(/.f64 (neg.f64 (fma.f64 (pow.f64 z #s(literal 3 binary64)) #s(literal -1/512 binary64) (pow.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 y x)) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (*.f64 z z) #s(literal 1/64 binary64) (*.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 y x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) y) x (*.f64 #s(literal 1/8 binary64) z))))))
(/.f64 (-.f64 (pow.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 y x)) #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 (-.f64 (pow.f64 (*.f64 #s(literal 1/8 binary64) z) #s(literal 2 binary64)) (pow.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 y x)) #s(literal 2 binary64))) (fma.f64 #s(literal -1/8 binary64) z (*.f64 (*.f64 #s(literal -1/2 binary64) x) y)))
(/.f64 (-.f64 (pow.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 y x)) #s(literal 3 binary64)) (pow.f64 (*.f64 #s(literal 1/8 binary64) z) #s(literal 3 binary64))) (fma.f64 (*.f64 #s(literal 1/8 binary64) z) (fma.f64 (*.f64 #s(literal 1/2 binary64) y) x (*.f64 #s(literal 1/8 binary64) z)) (pow.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 y x)) #s(literal 2 binary64))))
(/.f64 (fma.f64 (pow.f64 z #s(literal 3 binary64)) #s(literal -1/512 binary64) (pow.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 y x)) #s(literal 3 binary64))) (fma.f64 (*.f64 #s(literal -1/8 binary64) z) (fma.f64 #s(literal -1/8 binary64) z (*.f64 (*.f64 #s(literal -1/2 binary64) x) y)) (pow.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 y x)) #s(literal 2 binary64))))
(/.f64 (fma.f64 (pow.f64 z #s(literal 3 binary64)) #s(literal -1/512 binary64) (pow.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 y x)) #s(literal 3 binary64))) (fma.f64 (*.f64 z z) #s(literal 1/64 binary64) (*.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 y x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) y) x (*.f64 #s(literal 1/8 binary64) z)))))
(fma.f64 (*.f64 #s(literal 1/2 binary64) y) x (*.f64 (neg.f64 z) #s(literal 1/8 binary64)))
(fma.f64 (*.f64 #s(literal 1/2 binary64) y) x (*.f64 #s(literal -1/8 binary64) z))
(fma.f64 (*.f64 #s(literal 1/2 binary64) x) y (*.f64 (neg.f64 z) #s(literal 1/8 binary64)))
(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 (neg.f64 z) #s(literal 1/8 binary64)))
(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 #s(literal 1/2 binary64) (*.f64 y x)))
(fma.f64 z #s(literal -1/8 binary64) (*.f64 #s(literal 1/2 binary64) (*.f64 y x)))
(fma.f64 (*.f64 y x) #s(literal 1/2 binary64) (*.f64 (neg.f64 z) #s(literal 1/8 binary64)))
(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 (neg.f64 z) #s(literal 1/8 binary64)))
(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 (neg.f64 z) #s(literal 1/8 binary64)))
(fma.f64 x (*.f64 #s(literal 1/2 binary64) y) (*.f64 #s(literal -1/8 binary64) z))
(-.f64 (/.f64 (pow.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 y x)) #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 (pow.f64 (*.f64 #s(literal 1/8 binary64) z) #s(literal 2 binary64)) (fma.f64 #s(literal -1/8 binary64) z (*.f64 (*.f64 #s(literal -1/2 binary64) x) y))) (/.f64 (pow.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 y x)) #s(literal 2 binary64)) (fma.f64 #s(literal -1/8 binary64) z (*.f64 (*.f64 #s(literal -1/2 binary64) x) y))))
(-.f64 (/.f64 (pow.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 y x)) #s(literal 3 binary64)) (fma.f64 (*.f64 #s(literal 1/8 binary64) z) (fma.f64 (*.f64 #s(literal 1/2 binary64) y) x (*.f64 #s(literal 1/8 binary64) z)) (pow.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 y x)) #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) (fma.f64 (*.f64 #s(literal 1/2 binary64) y) x (*.f64 #s(literal 1/8 binary64) z)) (pow.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 y x)) #s(literal 2 binary64)))))
(-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 y x)) (*.f64 (neg.f64 z) #s(literal -1/8 binary64)))
(-.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 y x)) (*.f64 #s(literal 1/8 binary64) z))
(-.f64 (*.f64 #s(literal -1/8 binary64) z) (*.f64 (*.f64 (neg.f64 y) x) #s(literal 1/2 binary64)))
(-.f64 (*.f64 #s(literal -1/8 binary64) z) (*.f64 (neg.f64 y) (*.f64 #s(literal 1/2 binary64) x)))
(-.f64 (*.f64 #s(literal -1/8 binary64) z) (*.f64 (*.f64 #s(literal -1/2 binary64) x) y))
(+.f64 (/.f64 (pow.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 y x)) #s(literal 3 binary64)) (fma.f64 (*.f64 #s(literal -1/8 binary64) z) (fma.f64 #s(literal -1/8 binary64) z (*.f64 (*.f64 #s(literal -1/2 binary64) x) y)) (pow.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 y x)) #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) (fma.f64 #s(literal -1/8 binary64) z (*.f64 (*.f64 #s(literal -1/2 binary64) x) y)) (pow.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 y x)) #s(literal 2 binary64)))))
(+.f64 (/.f64 (pow.f64 (*.f64 #s(literal -1/8 binary64) z) #s(literal 3 binary64)) (fma.f64 (*.f64 z z) #s(literal 1/64 binary64) (*.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 y x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) y) x (*.f64 #s(literal 1/8 binary64) z))))) (/.f64 (pow.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 y x)) #s(literal 3 binary64)) (fma.f64 (*.f64 z z) #s(literal 1/64 binary64) (*.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 y x)) (fma.f64 (*.f64 #s(literal 1/2 binary64) y) x (*.f64 #s(literal 1/8 binary64) z))))))
(+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 y x)) (*.f64 (neg.f64 z) #s(literal 1/8 binary64)))
(+.f64 (*.f64 #s(literal 1/2 binary64) (*.f64 y x)) (*.f64 #s(literal -1/8 binary64) z))
(+.f64 (*.f64 #s(literal -1/8 binary64) z) (*.f64 #s(literal 1/2 binary64) (*.f64 y x)))
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 x #s(literal 1/2 binary64))
(neg.f64 (*.f64 #s(literal -1/2 binary64) x))
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.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)))
#s(approx (* 1/2 (* y x)) (*.f64 #s(literal 1/2 binary64) (*.f64 y x)))
#s(approx (* y x) (*.f64 y x))
#s(approx x x)
#s(approx (+ (* (* 1/2 x) y) (* -1/8 z)) (*.f64 #s(literal -1/8 binary64) z))
#s(approx (+ (* (* 1/2 x) y) (* -1/8 z)) (fma.f64 (*.f64 #s(literal 1/2 binary64) x) y (*.f64 #s(literal -1/8 binary64) z)))
#s(approx (* 1/2 x) (*.f64 #s(literal 1/2 binary64) x))
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 #s(literal 1/2 binary64) (*.f64 y x)))
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 (fma.f64 (/.f64 z x) #s(literal -1/8 binary64) (*.f64 #s(literal 1/2 binary64) y)) x))
#s(approx (+ (* (* 1/2 x) y) (* -1/8 z)) (*.f64 #s(literal 1/2 binary64) (*.f64 y x)))
#s(approx (+ (* (* 1/2 x) y) (* -1/8 z)) (*.f64 (fma.f64 (/.f64 z x) #s(literal -1/8 binary64) (*.f64 #s(literal 1/2 binary64) y)) x))
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 (neg.f64 x) (fma.f64 #s(literal -1/2 binary64) y (*.f64 (/.f64 z x) #s(literal 1/8 binary64)))))
#s(approx (+ (* (* 1/2 x) y) (* -1/8 z)) (*.f64 (neg.f64 x) (fma.f64 #s(literal -1/2 binary64) y (*.f64 (/.f64 z x) #s(literal 1/8 binary64)))))
#s(approx y y)
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 (fma.f64 (/.f64 z y) #s(literal -1/8 binary64) (*.f64 #s(literal 1/2 binary64) x)) y))
#s(approx (+ (* (* 1/2 x) y) (* -1/8 z)) (*.f64 (fma.f64 (/.f64 z y) #s(literal -1/8 binary64) (*.f64 #s(literal 1/2 binary64) x)) y))
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 (neg.f64 y) (fma.f64 (/.f64 z y) #s(literal 1/8 binary64) (*.f64 #s(literal -1/2 binary64) x))))
#s(approx (+ (* (* 1/2 x) y) (* -1/8 z)) (*.f64 (neg.f64 y) (fma.f64 (/.f64 z y) #s(literal 1/8 binary64) (*.f64 #s(literal -1/2 binary64) 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)))
#s(approx (* -1/8 z) (*.f64 #s(literal -1/8 binary64) z))
#s(approx z z)
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 (-.f64 (*.f64 (/.f64 (*.f64 y x) z) #s(literal 1/2 binary64)) #s(literal 1/8 binary64)) z))
#s(approx (+ (* (* 1/2 x) y) (* -1/8 z)) (*.f64 (-.f64 (*.f64 (/.f64 (*.f64 y x) z) #s(literal 1/2 binary64)) #s(literal 1/8 binary64)) z))
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 (neg.f64 z) (fma.f64 (/.f64 (*.f64 y x) z) #s(literal -1/2 binary64) #s(literal 1/8 binary64))))
#s(approx (+ (* (* 1/2 x) y) (* -1/8 z)) (*.f64 (neg.f64 z) (fma.f64 (/.f64 (*.f64 y x) z) #s(literal -1/2 binary64) #s(literal 1/8 binary64))))

eval9.0ms (0.5%)

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

Compiled 2 210 to 260 computations (88.2% saved)

prune11.0ms (0.6%)

Memory
-18.1MiB live, 25.7MiB allocated; 8ms collecting garbage
Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New94195
Fresh000
Picked123
Done000
Total95398
Accuracy
100.0%
Counts
98 → 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)))
50.7%
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 (*.f64 #s(literal 1/2 binary64) y) x))
49.7%
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 #s(literal -1/8 binary64) z))
Compiler

Compiled 46 to 40 computations (13% saved)

series5.0ms (0.3%)

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

9 calls:

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

rewrite189.0ms (10.8%)

Memory
-28.6MiB live, 101.5MiB allocated; 114ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
065248
068245
1288245
02391238
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
20 → 28
Calls
Call 1
Inputs
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 (*.f64 #s(literal 1/2 binary64) y) x))
(*.f64 (*.f64 #s(literal 1/2 binary64) y) x)
(*.f64 #s(literal 1/2 binary64) y)
#s(literal 1/2 binary64)
y
x
#s(approx (- (/ (* x y) 2) (/ z 8)) #s(hole binary64 (* -1/8 z)))
#s(approx (- (/ (* x y) 2) (/ z 8)) #s(hole binary64 (- (* 1/2 (* x y)) (* 1/8 z))))
#s(approx (* (* 1/2 y) x) #s(hole binary64 (* 1/2 (* x y))))
#s(approx x #s(hole binary64 x))
#s(approx (- (/ (* x y) 2) (/ z 8)) #s(hole binary64 (* 1/2 (* x y))))
#s(approx (- (/ (* x y) 2) (/ z 8)) #s(hole binary64 (* x (+ (* -1/8 (/ z x)) (* 1/2 y)))))
#s(approx (- (/ (* x y) 2) (/ z 8)) #s(hole binary64 (* -1 (* x (+ (* -1/2 y) (* 1/8 (/ z x)))))))
#s(approx (* 1/2 y) #s(hole binary64 (* 1/2 y)))
#s(approx y #s(hole binary64 y))
#s(approx (- (/ (* x y) 2) (/ z 8)) #s(hole binary64 (* y (+ (* -1/8 (/ z y)) (* 1/2 x)))))
#s(approx (- (/ (* x y) 2) (/ z 8)) #s(hole binary64 (* -1 (* y (+ (* -1/2 x) (* 1/8 (/ z y)))))))
#s(approx (- (/ (* x y) 2) (/ z 8)) #s(hole binary64 (+ (* -1/8 z) (* 1/2 (* x y)))))
#s(approx (- (/ (* x y) 2) (/ z 8)) #s(hole binary64 (* z (- (* 1/2 (/ (* x y) z)) 1/8))))
#s(approx (- (/ (* x y) 2) (/ z 8)) #s(hole binary64 (* -1 (* z (+ 1/8 (* -1/2 (/ (* x y) z)))))))
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 #s(literal 1/2 binary64) x))
(*.f64 x (*.f64 #s(literal 1/2 binary64) y))
(neg.f64 (*.f64 (*.f64 #s(literal -1/2 binary64) x) y))
(*.f64 #s(literal 1/2 binary64) y)
(*.f64 y #s(literal 1/2 binary64))
(neg.f64 (*.f64 #s(literal -1/2 binary64) y))
#s(literal 1/2 binary64)
y
x
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.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)))
#s(approx (* (* 1/2 y) x) (*.f64 #s(literal 1/2 binary64) (*.f64 y x)))
#s(approx x x)
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 #s(literal 1/2 binary64) (*.f64 y x)))
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 (fma.f64 (/.f64 z x) #s(literal -1/8 binary64) (*.f64 #s(literal 1/2 binary64) y)) x))
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 (neg.f64 x) (fma.f64 #s(literal -1/2 binary64) y (*.f64 (/.f64 z x) #s(literal 1/8 binary64)))))
#s(approx (* 1/2 y) (*.f64 #s(literal 1/2 binary64) y))
#s(approx y y)
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 (fma.f64 (/.f64 z y) #s(literal -1/8 binary64) (*.f64 #s(literal 1/2 binary64) x)) y))
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 (neg.f64 y) (fma.f64 (/.f64 z y) #s(literal 1/8 binary64) (*.f64 #s(literal -1/2 binary64) 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)))
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 (-.f64 (*.f64 (/.f64 (*.f64 y x) z) #s(literal 1/2 binary64)) #s(literal 1/8 binary64)) z))
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 (neg.f64 z) (fma.f64 (/.f64 (*.f64 y x) z) #s(literal -1/2 binary64) #s(literal 1/8 binary64))))

eval3.0ms (0.1%)

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

Compiled 441 to 84 computations (81% saved)

prune5.0ms (0.3%)

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

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New26026
Fresh000
Picked011
Done022
Total26329
Accuracy
100.0%
Counts
29 → 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)))
50.7%
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 (*.f64 #s(literal 1/2 binary64) y) x))
49.7%
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 #s(literal -1/8 binary64) z))
Compiler

Compiled 116 to 68 computations (41.4% saved)

regimes16.0ms (0.9%)

Memory
-9.3MiB live, 37.1MiB allocated; 3ms collecting garbage
Counts
5 → 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)) (*.f64 (*.f64 #s(literal 1/2 binary64) 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 (/.f64 (*.f64 x y) #s(literal 2 binary64)) (/.f64 z #s(literal 8 binary64)))
2.0ms
(*.f64 x y)
2.0ms
(/.f64 z #s(literal 8 binary64))
2.0ms
z
2.0ms
x
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)

regimes44.0ms (2.5%)

Memory
-4.5MiB live, 38.8MiB allocated; 5ms collecting garbage
Counts
3 → 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)))
#s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 (*.f64 #s(literal 1/2 binary64) 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 (*.f64 #s(literal 1/2 binary64) y) x))
Calls

7 calls:

34.0ms
(*.f64 x y)
2.0ms
(/.f64 z #s(literal 8 binary64))
2.0ms
z
2.0ms
(-.f64 (/.f64 (*.f64 x y) #s(literal 2 binary64)) (/.f64 z #s(literal 8 binary64)))
1.0ms
x
Results
AccuracySegmentsBranch
74.7%3(/.f64 z #s(literal 8 binary64))
79.7%3(*.f64 x y)
79.7%3(/.f64 (*.f64 x y) #s(literal 2 binary64))
64.5%5(-.f64 (/.f64 (*.f64 x y) #s(literal 2 binary64)) (/.f64 z #s(literal 8 binary64)))
71.1%3x
71.9%3y
74.7%3z
Compiler

Compiled 23 to 33 computations (-43.5% saved)

regimes3.0ms (0.2%)

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

2 calls:

1.0ms
(/.f64 (*.f64 x y) #s(literal 2 binary64))
1.0ms
(*.f64 x y)
Results
AccuracySegmentsBranch
79.4%3(*.f64 x y)
79.4%3(/.f64 (*.f64 x y) #s(literal 2 binary64))
Compiler

Compiled 8 to 10 computations (-25% saved)

regimes7.0ms (0.4%)

Memory
16.1MiB live, 16.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
(/.f64 (*.f64 x y) #s(literal 2 binary64))
1.0ms
z
1.0ms
x
Results
AccuracySegmentsBranch
49.7%1(-.f64 (/.f64 (*.f64 x y) #s(literal 2 binary64)) (/.f64 z #s(literal 8 binary64)))
49.7%1x
49.7%1y
49.7%1(/.f64 z #s(literal 8 binary64))
49.7%1z
49.7%1(*.f64 x y)
49.7%1(/.f64 (*.f64 x y) #s(literal 2 binary64))
Compiler

Compiled 23 to 33 computations (-43.5% saved)

bsearch1.0ms (0%)

Memory
0.7MiB live, 0.7MiB allocated; 0ms collecting garbage
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
37909960584.27812
198960646266053600.0
0.0ms
-6.739843971612606e-78
-4.047718360923372e-79
Compiler

Compiled 12 to 15 computations (-25% saved)

bsearch1.0ms (0%)

Memory
0.7MiB live, 0.7MiB allocated; 0ms collecting garbage
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
37909960584.27812
198960646266053600.0
0.0ms
-6.739843971612606e-78
-4.047718360923372e-79
Compiler

Compiled 12 to 15 computations (-25% saved)

simplify46.0ms (2.6%)

Memory
-21.5MiB live, 33.0MiB allocated; 6ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
032135
140135
246135
360135
4100135
5440135
63647135
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 -1303703024854071/260740604970814219042361048116400404614587954389239840081425977517360806369707098391474864128 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 50000000000 binary64)) #s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 #s(literal -1/8 binary64) z)) #s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 (*.f64 #s(literal 1/2 binary64) y) x))))
(if (<=.f64 (/.f64 (*.f64 x y) #s(literal 2 binary64)) #s(literal -1303703024854071/260740604970814219042361048116400404614587954389239840081425977517360806369707098391474864128 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 50000000000 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 -1303703024854071/260740604970814219042361048116400404614587954389239840081425977517360806369707098391474864128 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 50000000000 binary64)) #s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 #s(literal -1/8 binary64) z)) #s(approx (- (/ (* x y) 2) (/ z 8)) (*.f64 (*.f64 #s(literal 1/2 binary64) y) x))))
(if (<=.f64 (/.f64 (*.f64 x y) #s(literal 2 binary64)) #s(literal -1303703024854071/260740604970814219042361048116400404614587954389239840081425977517360806369707098391474864128 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 50000000000 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 -1303703024854071/260740604970814219042361048116400404614587954389239840081425977517360806369707098391474864128 binary64)) (not (<=.f64 (/.f64 (*.f64 x y) #s(literal 2 binary64)) #s(literal 50000000000 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))

derivations38.0ms (2.2%)

Memory
0.3MiB live, 47.0MiB allocated; 2ms collecting garbage
Stop Event
done
Compiler

Compiled 135 to 34 computations (74.8% saved)

preprocess24.0ms (1.4%)

Memory
18.8MiB live, 64.6MiB allocated; 2ms collecting garbage
Remove

(sort x y)

Compiler

Compiled 324 to 116 computations (64.2% saved)

end0.0ms (0%)

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

Profiling

Loading profile data...