Data.Histogram.Bin.BinF:$cfromIndex from histogram-fill-0.8.4.1

Time bar (total: 8.2s)

start0.0ms (0%)

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

analyze0.0ms (0%)

Memory
1.4MiB live, 1.4MiB allocated; 0ms collecting garbage
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
100%99.9%0%0.1%0%0%0%1
Compiler

Compiled 11 to 10 computations (9.1% saved)

sample5.3s (64.9%)

Memory
-384.0MiB live, 1 516.9MiB allocated; 5.2s collecting garbage
Samples
5.0s8 254×0valid
0.0ms2valid
0.0ms1valid
Precisions
Click to see histograms. Total time spent on operations: 643.0ms
ival-div: 425.0ms (66.1% of total)
ival-add: 126.0ms (19.6% of total)
ival-mult: 81.0ms (12.6% of total)
exact: 7.0ms (1.1% of total)
ival-assert: 3.0ms (0.5% of total)
adjust: 2.0ms (0.3% of total)
Bogosity

explain129.0ms (1.6%)

Memory
5.4MiB live, 204.5MiB allocated; 26ms collecting garbage
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
00-0-(+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x))
00-0-#s(literal 2 binary64)
00-0-y
00-0-(/.f64 x #s(literal 2 binary64))
00-0-z
00-0-(+.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) z)
00-0-(*.f64 y x)
00-0-x
Confusion
Predicted +Predicted -
+00
-0256
Precision
0/0
Recall
0/0
Confusion?
Predicted +Predicted MaybePredicted -
+000
-00256
Precision?
0/0
Recall?
0/0
Freqs
test
numberfreq
0256
Total Confusion?
Predicted +Predicted MaybePredicted -
+000
-001
Precision?
0/0
Recall?
0/0
Samples
47.0ms512×0valid
Compiler

Compiled 65 to 28 computations (56.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 32.0ms
ival-add: 17.0ms (53.9% of total)
ival-mult: 10.0ms (31.7% of total)
ival-div: 3.0ms (9.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)

preprocess267.0ms (3.3%)

Memory
17.9MiB live, 212.4MiB allocated; 34ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03397
19293
222093
334193
448193
575890
6222190
7522590
089
0129
1229
2439
3699
41089
51969
68089
752659
081127
Stop Event
iter limit
node limit
iter limit
node limit
Calls
Call 1
Inputs
(+.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) z)
Outputs
(+.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) z)
(fma.f64 y x (fma.f64 x #s(literal 1/2 binary64) z))
Compiler

Compiled 9 to 8 computations (11.1% saved)

eval0.0ms (0%)

Memory
0.0MiB live, 0.0MiB 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 #s(literal 2 binary64)) (*.f64 y x)) z)
Compiler

Compiled 9 to 8 computations (11.1% saved)

simplify163.0ms (2%)

Memory
-17.2MiB live, 124.0MiB allocated; 17ms collecting garbage
Localize:

Found 4 expressions of interest:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0826
01226
12226
24326
36926
410826
519626
680826
7526526
0811223
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
(+.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) z)
(+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x))
(/.f64 x #s(literal 2 binary64))
x
#s(literal 2 binary64)
(*.f64 y x)
y
z
Outputs
(+.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) z)
(fma.f64 y x (fma.f64 x #s(literal 1/2 binary64) z))
(+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x))
(fma.f64 y x (*.f64 x #s(literal 1/2 binary64)))
(/.f64 x #s(literal 2 binary64))
(*.f64 x #s(literal 1/2 binary64))
x
#s(literal 2 binary64)
(*.f64 y x)
y
z

localize38.0ms (0.5%)

Memory
-17.7MiB live, 26.9MiB allocated; 7ms collecting garbage
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(/.f64 x #s(literal 2 binary64))
accuracy0.0
(+.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) z)
accuracy0.0
(*.f64 y x)
accuracy0.00390625
(+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x))
Samples
14.0ms256×0valid
Compiler

Compiled 28 to 10 computations (64.3% saved)

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

series7.0ms (0.1%)

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

9 calls:

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

simplify152.0ms (1.9%)

Memory
23.2MiB live, 164.7MiB allocated; 31ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
085325
1233325
2673325
32508283
47572283
08045262
Stop Event
iter limit
node limit
Counts
23 → 23
Calls
Call 1
Inputs
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 z))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (+ z (* x (+ 1/2 y)))))
#s(approx (+ (/ x 2) (* y x)) #s(hole binary64 (* x (+ 1/2 y))))
#s(approx (/ x 2) #s(hole binary64 (* 1/2 x)))
#s(approx (* y x) #s(hole binary64 (* x y)))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* x (+ 1/2 y))))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* x (+ 1/2 (+ y (/ z x))))))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* -1 (* x (- (* -1 y) 1/2)))))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* -1 (* x (- (+ (* -1 y) (* -1 (/ z x))) 1/2)))))
#s(approx (+ (/ x 2) (* y x)) #s(hole binary64 (* -1 (* x (- (* -1 y) 1/2)))))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (+ z (* 1/2 x))))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (+ z (+ (* 1/2 x) (* x y)))))
#s(approx (+ (/ x 2) (* y x)) #s(hole binary64 (* 1/2 x)))
#s(approx (+ (/ x 2) (* y x)) #s(hole binary64 (+ (* 1/2 x) (* x y))))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* x y)))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* y (+ x (+ (* 1/2 (/ x y)) (/ z y))))))
#s(approx (+ (/ x 2) (* y x)) #s(hole binary64 (* x y)))
#s(approx (+ (/ x 2) (* y x)) #s(hole binary64 (* y (+ x (* 1/2 (/ x y))))))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* -1 (* y (+ (* -1 x) (* -1 (/ (+ z (* 1/2 x)) y)))))))
#s(approx (+ (/ x 2) (* y x)) #s(hole binary64 (* -1 (* y (+ (* -1 x) (* -1/2 (/ x y)))))))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (+ (* 1/2 x) (* x y))))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* z (+ 1 (+ (* 1/2 (/ x z)) (/ (* x y) z))))))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* -1 (* z (- (* -1 (/ (+ (* 1/2 x) (* x y)) z)) 1)))))
Outputs
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 z))
#s(approx (+ (+ (/ x 2) (* y x)) z) z)
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (+ z (* x (+ 1/2 y)))))
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
#s(approx (+ (/ x 2) (* y x)) #s(hole binary64 (* x (+ 1/2 y))))
#s(approx (+ (/ x 2) (* y x)) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
#s(approx (/ x 2) #s(hole binary64 (* 1/2 x)))
#s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))
#s(approx (* y x) #s(hole binary64 (* x y)))
#s(approx (* y x) (*.f64 y x))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* x (+ 1/2 y))))
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* x (+ 1/2 (+ y (/ z x))))))
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 (+.f64 (-.f64 (/.f64 z x) #s(literal -1/2 binary64)) y) x))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* -1 (* x (- (* -1 y) 1/2)))))
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* -1 (* x (- (+ (* -1 y) (* -1 (/ z x))) 1/2)))))
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 (+.f64 (-.f64 (/.f64 z x) #s(literal -1/2 binary64)) y) x))
#s(approx (+ (/ x 2) (* y x)) #s(hole binary64 (* -1 (* x (- (* -1 y) 1/2)))))
#s(approx (+ (/ x 2) (* y x)) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (+ z (* 1/2 x))))
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 #s(literal 1/2 binary64) x z))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (+ z (+ (* 1/2 x) (* x y)))))
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
#s(approx (+ (/ x 2) (* y x)) #s(hole binary64 (* 1/2 x)))
#s(approx (+ (/ x 2) (* y x)) (*.f64 #s(literal 1/2 binary64) x))
#s(approx (+ (/ x 2) (* y x)) #s(hole binary64 (+ (* 1/2 x) (* x y))))
#s(approx (+ (/ x 2) (* y x)) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* x y)))
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* y (+ x (+ (* 1/2 (/ x y)) (/ z y))))))
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
#s(approx (+ (/ x 2) (* y x)) #s(hole binary64 (* x y)))
#s(approx (+ (/ x 2) (* y x)) (*.f64 y x))
#s(approx (+ (/ x 2) (* y x)) #s(hole binary64 (* y (+ x (* 1/2 (/ x y))))))
#s(approx (+ (/ x 2) (* y x)) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* -1 (* y (+ (* -1 x) (* -1 (/ (+ z (* 1/2 x)) y)))))))
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
#s(approx (+ (/ x 2) (* y x)) #s(hole binary64 (* -1 (* y (+ (* -1 x) (* -1/2 (/ x y)))))))
#s(approx (+ (/ x 2) (* y x)) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (+ (* 1/2 x) (* x y))))
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* z (+ 1 (+ (* 1/2 (/ x z)) (/ (* x y) z))))))
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* -1 (* z (- (* -1 (/ (+ (* 1/2 x) (* x y)) z)) 1)))))
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))

rewrite88.0ms (1.1%)

Memory
-12.4MiB live, 86.6MiB allocated; 17ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0822
01222
15122
041820
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
4 → 43
Calls
Call 1
Inputs
(+.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) z)
(+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x))
(/.f64 x #s(literal 2 binary64))
(*.f64 y x)
Outputs
(/.f64 (-.f64 (*.f64 z z) (pow.f64 (fma.f64 y x (/.f64 x #s(literal 2 binary64))) #s(literal 2 binary64))) (-.f64 z (fma.f64 y x (/.f64 x #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (/.f64 x #s(literal 2 binary64)) #s(literal 2 binary64)) (*.f64 (fma.f64 y x z) (fma.f64 y x z))) (-.f64 (/.f64 x #s(literal 2 binary64)) (fma.f64 y x z)))
(/.f64 (+.f64 (pow.f64 (/.f64 x #s(literal 2 binary64)) #s(literal 3 binary64)) (pow.f64 (fma.f64 y x z) #s(literal 3 binary64))) (+.f64 (pow.f64 (/.f64 x #s(literal 2 binary64)) #s(literal 2 binary64)) (-.f64 (*.f64 (fma.f64 y x z) (fma.f64 y x z)) (*.f64 (/.f64 x #s(literal 2 binary64)) (fma.f64 y x z)))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (fma.f64 y x (/.f64 x #s(literal 2 binary64))) #s(literal 2 binary64)) (*.f64 z z))) (neg.f64 (-.f64 (fma.f64 y x (/.f64 x #s(literal 2 binary64))) z)))
(/.f64 (neg.f64 (+.f64 (pow.f64 z #s(literal 3 binary64)) (pow.f64 (fma.f64 y x (/.f64 x #s(literal 2 binary64))) #s(literal 3 binary64)))) (neg.f64 (fma.f64 z (-.f64 z (fma.f64 y x (/.f64 x #s(literal 2 binary64)))) (pow.f64 (fma.f64 y x (/.f64 x #s(literal 2 binary64))) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (fma.f64 y x (/.f64 x #s(literal 2 binary64))) #s(literal 2 binary64)) (*.f64 z z)) (-.f64 (fma.f64 y x (/.f64 x #s(literal 2 binary64))) z))
(/.f64 (+.f64 (pow.f64 z #s(literal 3 binary64)) (pow.f64 (fma.f64 y x (/.f64 x #s(literal 2 binary64))) #s(literal 3 binary64))) (fma.f64 z z (-.f64 (pow.f64 (fma.f64 y x (/.f64 x #s(literal 2 binary64))) #s(literal 2 binary64)) (*.f64 z (fma.f64 y x (/.f64 x #s(literal 2 binary64)))))))
(/.f64 (+.f64 (pow.f64 z #s(literal 3 binary64)) (pow.f64 (fma.f64 y x (/.f64 x #s(literal 2 binary64))) #s(literal 3 binary64))) (fma.f64 z (-.f64 z (fma.f64 y x (/.f64 x #s(literal 2 binary64)))) (pow.f64 (fma.f64 y x (/.f64 x #s(literal 2 binary64))) #s(literal 2 binary64))))
(fma.f64 y x (+.f64 (/.f64 x #s(literal 2 binary64)) z))
(fma.f64 x y (+.f64 (/.f64 x #s(literal 2 binary64)) z))
(-.f64 (+.f64 z (/.f64 x #s(literal 2 binary64))) (*.f64 (neg.f64 y) x))
(-.f64 (/.f64 (pow.f64 (fma.f64 y x (/.f64 x #s(literal 2 binary64))) #s(literal 2 binary64)) (-.f64 (fma.f64 y x (/.f64 x #s(literal 2 binary64))) z)) (/.f64 (*.f64 z z) (-.f64 (fma.f64 y x (/.f64 x #s(literal 2 binary64))) z)))
(-.f64 (/.f64 x #s(literal 2 binary64)) (-.f64 (*.f64 (neg.f64 y) x) z))
(+.f64 (+.f64 z (/.f64 x #s(literal 2 binary64))) (*.f64 y x))
(+.f64 (/.f64 (pow.f64 (fma.f64 y x (/.f64 x #s(literal 2 binary64))) #s(literal 3 binary64)) (fma.f64 z (-.f64 z (fma.f64 y x (/.f64 x #s(literal 2 binary64)))) (pow.f64 (fma.f64 y x (/.f64 x #s(literal 2 binary64))) #s(literal 2 binary64)))) (/.f64 (pow.f64 z #s(literal 3 binary64)) (fma.f64 z (-.f64 z (fma.f64 y x (/.f64 x #s(literal 2 binary64)))) (pow.f64 (fma.f64 y x (/.f64 x #s(literal 2 binary64))) #s(literal 2 binary64)))))
(+.f64 (fma.f64 y x z) (/.f64 x #s(literal 2 binary64)))
(+.f64 z (fma.f64 y x (/.f64 x #s(literal 2 binary64))))
(+.f64 (fma.f64 y x (/.f64 x #s(literal 2 binary64))) z)
(+.f64 (*.f64 y x) (+.f64 (/.f64 x #s(literal 2 binary64)) z))
(+.f64 (/.f64 x #s(literal 2 binary64)) (fma.f64 y x z))
(/.f64 (-.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (pow.f64 (/.f64 x #s(literal 2 binary64)) #s(literal 2 binary64))) (-.f64 (*.f64 y x) (/.f64 x #s(literal 2 binary64))))
(/.f64 (-.f64 (pow.f64 (/.f64 x #s(literal 2 binary64)) #s(literal 3 binary64)) (pow.f64 (*.f64 (neg.f64 y) x) #s(literal 3 binary64))) (+.f64 (pow.f64 (/.f64 x #s(literal 2 binary64)) #s(literal 2 binary64)) (+.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (*.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 (neg.f64 y) x)))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (/.f64 x #s(literal 2 binary64)) #s(literal 2 binary64)) (pow.f64 (*.f64 y x) #s(literal 2 binary64)))) (neg.f64 (-.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (pow.f64 (/.f64 x #s(literal 2 binary64)) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (*.f64 y x) (-.f64 (*.f64 y x) (/.f64 x #s(literal 2 binary64))) (pow.f64 (/.f64 x #s(literal 2 binary64)) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (/.f64 x #s(literal 2 binary64)) #s(literal 2 binary64)) (pow.f64 (*.f64 y x) #s(literal 2 binary64))) (-.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)))
(/.f64 (+.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (pow.f64 (/.f64 x #s(literal 2 binary64)) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (-.f64 (pow.f64 (/.f64 x #s(literal 2 binary64)) #s(literal 2 binary64)) (*.f64 (*.f64 (/.f64 x #s(literal 2 binary64)) y) x))))
(/.f64 (+.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (pow.f64 (/.f64 x #s(literal 2 binary64)) #s(literal 3 binary64))) (fma.f64 (*.f64 y x) (-.f64 (*.f64 y x) (/.f64 x #s(literal 2 binary64))) (pow.f64 (/.f64 x #s(literal 2 binary64)) #s(literal 2 binary64))))
(fma.f64 y x (/.f64 x #s(literal 2 binary64)))
(fma.f64 x y (/.f64 x #s(literal 2 binary64)))
(-.f64 (/.f64 (pow.f64 (/.f64 x #s(literal 2 binary64)) #s(literal 2 binary64)) (-.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x))) (/.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (-.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x))))
(-.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 (neg.f64 x) y))
(-.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 (neg.f64 y) x))
(+.f64 (/.f64 (pow.f64 (/.f64 x #s(literal 2 binary64)) #s(literal 3 binary64)) (fma.f64 (*.f64 y x) (-.f64 (*.f64 y x) (/.f64 x #s(literal 2 binary64))) (pow.f64 (/.f64 x #s(literal 2 binary64)) #s(literal 2 binary64)))) (/.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (fma.f64 (*.f64 y x) (-.f64 (*.f64 y x) (/.f64 x #s(literal 2 binary64))) (pow.f64 (/.f64 x #s(literal 2 binary64)) #s(literal 2 binary64)))))
(+.f64 (*.f64 y x) (/.f64 x #s(literal 2 binary64)))
(+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 (neg.f64 (neg.f64 y)) x))
(+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x))
(/.f64 (neg.f64 (neg.f64 x)) #s(literal 2 binary64))
(/.f64 (neg.f64 x) #s(literal -2 binary64))
(/.f64 x #s(literal 2 binary64))
(neg.f64 (/.f64 (neg.f64 x) #s(literal 2 binary64)))
(neg.f64 (/.f64 x #s(literal -2 binary64)))
(*.f64 y x)
(*.f64 x y)

eval5.0ms (0.1%)

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

Compiled 949 to 177 computations (81.3% saved)

prune7.0ms (0.1%)

Memory
-33.1MiB live, 13.2MiB allocated; 4ms collecting garbage
Pruning

7 alts after pruning (7 fresh and 0 done)

PrunedKeptTotal
New47754
Fresh000
Picked101
Done000
Total48755
Accuracy
100.0%
Counts
55 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(+.f64 (+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) (*.f64 y x)) z)
74.9%
(+.f64 #s(approx (+ (/ x 2) (* y x)) (*.f64 y x)) z)
100.0%
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
66.2%
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 #s(literal 1/2 binary64) x z))
59.0%
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
36.0%
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x))
41.5%
#s(approx (+ (+ (/ x 2) (* y x)) z) z)
Compiler

Compiled 190 to 150 computations (21.1% saved)

simplify170.0ms (2.1%)

Memory
3.1MiB live, 157.7MiB allocated; 55ms collecting garbage
Localize:

Found 12 expressions of interest:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
022118
029118
146118
282118
3124118
4182118
5272114
6922110
74609110
08106104
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
(+.f64 (+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) (*.f64 y x)) z)
(+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) (*.f64 y x))
#s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))
(*.f64 #s(literal 1/2 binary64) x)
#s(literal 1/2 binary64)
x
(*.f64 y x)
y
z
#s(approx (+ (+ (/ x 2) (* y x)) z) z)
z
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x))
(*.f64 y x)
y
x
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 #s(literal 1/2 binary64) x z))
(fma.f64 #s(literal 1/2 binary64) x z)
#s(literal 1/2 binary64)
x
z
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
(*.f64 (-.f64 y #s(literal -1/2 binary64)) x)
(-.f64 y #s(literal -1/2 binary64))
y
#s(literal -1/2 binary64)
x
Outputs
(+.f64 (+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) (*.f64 y x)) z)
(+.f64 (fma.f64 y x z) #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)))
(+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) (*.f64 y x))
(fma.f64 y x #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)))
#s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))
(*.f64 #s(literal 1/2 binary64) x)
#s(literal 1/2 binary64)
x
(*.f64 y x)
y
z
#s(approx (+ (+ (/ x 2) (* y x)) z) z)
z
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x))
(*.f64 y x)
y
x
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 #s(literal 1/2 binary64) x z))
(fma.f64 #s(literal 1/2 binary64) x z)
#s(literal 1/2 binary64)
x
z
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
(*.f64 (-.f64 y #s(literal -1/2 binary64)) x)
(-.f64 y #s(literal -1/2 binary64))
y
#s(literal -1/2 binary64)
x

localize43.0ms (0.5%)

Memory
13.3MiB live, 58.1MiB allocated; 12ms collecting garbage
Localize:

Found 12 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(-.f64 y #s(literal -1/2 binary64))
accuracy0.01171875
(*.f64 (-.f64 y #s(literal -1/2 binary64)) x)
accuracy26.216347218229128
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
accuracy0.0
(fma.f64 #s(literal 1/2 binary64) x z)
accuracy21.62189479417969
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 #s(literal 1/2 binary64) x z))
accuracy0.0
(*.f64 y x)
accuracy40.9569731545535
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x))
accuracy37.432963903169366
#s(approx (+ (+ (/ x 2) (* y x)) z) z)
accuracy0.0
(*.f64 y x)
accuracy0.0
(*.f64 #s(literal 1/2 binary64) x)
accuracy0.0
#s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))
accuracy0.00390625
(+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) (*.f64 y x))
Samples
33.0ms256×0valid
Compiler

Compiled 92 to 16 computations (82.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 21.0ms
ival-add: 12.0ms (57.6% of total)
ival-mult: 5.0ms (24% of total)
ival-div: 2.0ms (9.6% of total)
ival-sub: 1.0ms (4.8% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series8.0ms (0.1%)

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

9 calls:

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

simplify148.0ms (1.8%)

Memory
-28.0MiB live, 115.5MiB allocated; 25ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0121485
1309485
2856485
33008485
45774485
08208443
Stop Event
iter limit
node limit
Counts
41 → 41
Calls
Call 1
Inputs
#s(approx (+ (/ x 2) (* y x)) #s(hole binary64 (* x (+ 1/2 y))))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 z))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (+ z (* x (+ 1/2 y)))))
#s(approx (/ x 2) #s(hole binary64 (* 1/2 x)))
#s(approx (* 1/2 x) #s(hole binary64 (* 1/2 x)))
#s(approx (* y x) #s(hole binary64 (* x y)))
#s(approx (+ (* 1/2 x) z) #s(hole binary64 z))
#s(approx (+ (* 1/2 x) z) #s(hole binary64 (+ z (* 1/2 x))))
#s(approx (* (- y -1/2) x) #s(hole binary64 (* x (+ 1/2 y))))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* x (+ 1/2 y))))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* x (+ 1/2 (+ y (/ z x))))))
#s(approx (+ (* 1/2 x) z) #s(hole binary64 (* 1/2 x)))
#s(approx (+ (* 1/2 x) z) #s(hole binary64 (* x (+ 1/2 (/ z x)))))
#s(approx (+ (/ x 2) (* y x)) #s(hole binary64 (* -1 (* x (- (* -1 y) 1/2)))))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* -1 (* x (- (* -1 y) 1/2)))))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* -1 (* x (- (+ (* -1 y) (* -1 (/ z x))) 1/2)))))
#s(approx (+ (* 1/2 x) z) #s(hole binary64 (* -1 (* x (- (* -1 (/ z x)) 1/2)))))
#s(approx (+ (/ x 2) (* y x)) #s(hole binary64 (* 1/2 x)))
#s(approx (+ (/ x 2) (* y x)) #s(hole binary64 (+ (* 1/2 x) (* x y))))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (+ z (* 1/2 x))))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (+ z (+ (* 1/2 x) (* x y)))))
#s(approx (* (- y -1/2) x) #s(hole binary64 (* 1/2 x)))
#s(approx (* (- y -1/2) x) #s(hole binary64 (+ (* 1/2 x) (* x y))))
#s(approx (- y -1/2) #s(hole binary64 1/2))
#s(approx (- y -1/2) #s(hole binary64 (+ 1/2 y)))
#s(approx (+ (/ x 2) (* y x)) #s(hole binary64 (* x y)))
#s(approx (+ (/ x 2) (* y x)) #s(hole binary64 (* y (+ x (* 1/2 (/ x y))))))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* x y)))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* y (+ x (+ (* 1/2 (/ x y)) (/ z y))))))
#s(approx (* (- y -1/2) x) #s(hole binary64 (* x y)))
#s(approx (* (- y -1/2) x) #s(hole binary64 (* y (+ x (* 1/2 (/ x y))))))
#s(approx (- y -1/2) #s(hole binary64 y))
#s(approx (- y -1/2) #s(hole binary64 (* y (+ 1 (* 1/2 (/ 1 y))))))
#s(approx (+ (/ x 2) (* y x)) #s(hole binary64 (* -1 (* y (+ (* -1 x) (* -1/2 (/ x y)))))))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* -1 (* y (+ (* -1 x) (* -1 (/ (+ z (* 1/2 x)) y)))))))
#s(approx (* (- y -1/2) x) #s(hole binary64 (* -1 (* y (+ (* -1 x) (* -1/2 (/ x y)))))))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (+ (* 1/2 x) (* x y))))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* z (+ 1 (+ (* 1/2 (/ x z)) (/ (* x y) z))))))
#s(approx (+ (* 1/2 x) z) #s(hole binary64 (* z (+ 1 (* 1/2 (/ x z))))))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* -1 (* z (- (* -1 (/ (+ (* 1/2 x) (* x y)) z)) 1)))))
#s(approx (+ (* 1/2 x) z) #s(hole binary64 (* -1 (* z (- (* -1/2 (/ x z)) 1)))))
Outputs
#s(approx (+ (/ x 2) (* y x)) #s(hole binary64 (* x (+ 1/2 y))))
#s(approx (+ (/ x 2) (* y x)) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 z))
#s(approx (+ (+ (/ x 2) (* y x)) z) z)
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (+ z (* x (+ 1/2 y)))))
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
#s(approx (/ x 2) #s(hole binary64 (* 1/2 x)))
#s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))
#s(approx (* 1/2 x) #s(hole binary64 (* 1/2 x)))
#s(approx (* 1/2 x) (*.f64 #s(literal 1/2 binary64) x))
#s(approx (* y x) #s(hole binary64 (* x y)))
#s(approx (* y x) (*.f64 y x))
#s(approx (+ (* 1/2 x) z) #s(hole binary64 z))
#s(approx (+ (* 1/2 x) z) z)
#s(approx (+ (* 1/2 x) z) #s(hole binary64 (+ z (* 1/2 x))))
#s(approx (+ (* 1/2 x) z) (fma.f64 #s(literal 1/2 binary64) x z))
#s(approx (* (- y -1/2) x) #s(hole binary64 (* x (+ 1/2 y))))
#s(approx (* (- y -1/2) x) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* x (+ 1/2 y))))
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* x (+ 1/2 (+ y (/ z x))))))
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
#s(approx (+ (* 1/2 x) z) #s(hole binary64 (* 1/2 x)))
#s(approx (+ (* 1/2 x) z) (*.f64 #s(literal 1/2 binary64) x))
#s(approx (+ (* 1/2 x) z) #s(hole binary64 (* x (+ 1/2 (/ z x)))))
#s(approx (+ (* 1/2 x) z) (fma.f64 #s(literal 1/2 binary64) x z))
#s(approx (+ (/ x 2) (* y x)) #s(hole binary64 (* -1 (* x (- (* -1 y) 1/2)))))
#s(approx (+ (/ x 2) (* y x)) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* -1 (* x (- (* -1 y) 1/2)))))
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* -1 (* x (- (+ (* -1 y) (* -1 (/ z x))) 1/2)))))
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
#s(approx (+ (* 1/2 x) z) #s(hole binary64 (* -1 (* x (- (* -1 (/ z x)) 1/2)))))
#s(approx (+ (* 1/2 x) z) (fma.f64 #s(literal 1/2 binary64) x z))
#s(approx (+ (/ x 2) (* y x)) #s(hole binary64 (* 1/2 x)))
#s(approx (+ (/ x 2) (* y x)) (*.f64 #s(literal 1/2 binary64) x))
#s(approx (+ (/ x 2) (* y x)) #s(hole binary64 (+ (* 1/2 x) (* x y))))
#s(approx (+ (/ x 2) (* y x)) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (+ z (* 1/2 x))))
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 #s(literal 1/2 binary64) x z))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (+ z (+ (* 1/2 x) (* x y)))))
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
#s(approx (* (- y -1/2) x) #s(hole binary64 (* 1/2 x)))
#s(approx (* (- y -1/2) x) (*.f64 #s(literal 1/2 binary64) x))
#s(approx (* (- y -1/2) x) #s(hole binary64 (+ (* 1/2 x) (* x y))))
#s(approx (* (- y -1/2) x) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
#s(approx (- y -1/2) #s(hole binary64 1/2))
#s(approx (- y -1/2) #s(literal 1/2 binary64))
#s(approx (- y -1/2) #s(hole binary64 (+ 1/2 y)))
#s(approx (- y -1/2) (-.f64 y #s(literal -1/2 binary64)))
#s(approx (+ (/ x 2) (* y x)) #s(hole binary64 (* x y)))
#s(approx (+ (/ x 2) (* y x)) (*.f64 y x))
#s(approx (+ (/ x 2) (* y x)) #s(hole binary64 (* y (+ x (* 1/2 (/ x y))))))
#s(approx (+ (/ x 2) (* y x)) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* x y)))
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* y (+ x (+ (* 1/2 (/ x y)) (/ z y))))))
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
#s(approx (* (- y -1/2) x) #s(hole binary64 (* x y)))
#s(approx (* (- y -1/2) x) (*.f64 y x))
#s(approx (* (- y -1/2) x) #s(hole binary64 (* y (+ x (* 1/2 (/ x y))))))
#s(approx (* (- y -1/2) x) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
#s(approx (- y -1/2) #s(hole binary64 y))
#s(approx (- y -1/2) y)
#s(approx (- y -1/2) #s(hole binary64 (* y (+ 1 (* 1/2 (/ 1 y))))))
#s(approx (- y -1/2) (-.f64 y #s(literal -1/2 binary64)))
#s(approx (+ (/ x 2) (* y x)) #s(hole binary64 (* -1 (* y (+ (* -1 x) (* -1/2 (/ x y)))))))
#s(approx (+ (/ x 2) (* y x)) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* -1 (* y (+ (* -1 x) (* -1 (/ (+ z (* 1/2 x)) y)))))))
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
#s(approx (* (- y -1/2) x) #s(hole binary64 (* -1 (* y (+ (* -1 x) (* -1/2 (/ x y)))))))
#s(approx (* (- y -1/2) x) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (+ (* 1/2 x) (* x y))))
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* z (+ 1 (+ (* 1/2 (/ x z)) (/ (* x y) z))))))
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
#s(approx (+ (* 1/2 x) z) #s(hole binary64 (* z (+ 1 (* 1/2 (/ x z))))))
#s(approx (+ (* 1/2 x) z) (fma.f64 #s(literal 1/2 binary64) x z))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* -1 (* z (- (* -1 (/ (+ (* 1/2 x) (* x y)) z)) 1)))))
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
#s(approx (+ (* 1/2 x) z) #s(hole binary64 (* -1 (* z (- (* -1/2 (/ x z)) 1)))))
#s(approx (+ (* 1/2 x) z) (fma.f64 #s(literal 1/2 binary64) x z))

rewrite52.0ms (0.6%)

Memory
15.3MiB live, 59.8MiB allocated; 8ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
022102
029102
1119102
094396
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
12 → 72
Calls
Call 1
Inputs
(+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) (*.f64 y x))
(+.f64 (+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) (*.f64 y x)) z)
#s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))
(*.f64 #s(literal 1/2 binary64) x)
#s(approx (+ (+ (/ x 2) (* y x)) z) z)
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x))
(*.f64 y x)
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 #s(literal 1/2 binary64) x z))
(fma.f64 #s(literal 1/2 binary64) x z)
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
(*.f64 (-.f64 y #s(literal -1/2 binary64)) x)
(-.f64 y #s(literal -1/2 binary64))
Outputs
(/.f64 (-.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (pow.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64))) (-.f64 (*.f64 y x) #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))))
(/.f64 (-.f64 (pow.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 3 binary64)) (pow.f64 (*.f64 (neg.f64 y) x) #s(literal 3 binary64))) (+.f64 (pow.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) (+.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (*.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) (*.f64 (neg.f64 y) x)))))
(/.f64 (neg.f64 (-.f64 (pow.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) (pow.f64 (*.f64 y x) #s(literal 2 binary64)))) (neg.f64 (-.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) (*.f64 y x))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (pow.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (*.f64 y x) (-.f64 (*.f64 y x) #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) (pow.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) (pow.f64 (*.f64 y x) #s(literal 2 binary64))) (-.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) (*.f64 y x)))
(/.f64 (+.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (pow.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (-.f64 (pow.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) (*.f64 (*.f64 y x) #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))))))
(/.f64 (+.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (pow.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 3 binary64))) (fma.f64 (*.f64 y x) (-.f64 (*.f64 y x) #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) (pow.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64))))
(fma.f64 y x #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)))
(fma.f64 x y #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)))
(-.f64 (/.f64 (pow.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) (-.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) (*.f64 y x))) (/.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (-.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) (*.f64 y x))))
(-.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) (*.f64 (neg.f64 x) y))
(-.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) (*.f64 (neg.f64 y) x))
(+.f64 (/.f64 (pow.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 3 binary64)) (fma.f64 (*.f64 y x) (-.f64 (*.f64 y x) #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) (pow.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)))) (/.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (fma.f64 (*.f64 y x) (-.f64 (*.f64 y x) #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) (pow.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)))))
(+.f64 (*.f64 y x) #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)))
(+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) (*.f64 (neg.f64 (neg.f64 y)) x))
(+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) (*.f64 y x))
(/.f64 (-.f64 (*.f64 z z) (pow.f64 (fma.f64 y x #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) #s(literal 2 binary64))) (-.f64 z (fma.f64 y x #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)))))
(/.f64 (-.f64 (pow.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) (*.f64 (fma.f64 y x z) (fma.f64 y x z))) (-.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) (fma.f64 y x z)))
(/.f64 (+.f64 (pow.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 3 binary64)) (pow.f64 (fma.f64 y x z) #s(literal 3 binary64))) (+.f64 (pow.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) (-.f64 (*.f64 (fma.f64 y x z) (fma.f64 y x z)) (*.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) (fma.f64 y x z)))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (fma.f64 y x #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) #s(literal 2 binary64)) (*.f64 z z))) (neg.f64 (-.f64 (fma.f64 y x #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) z)))
(/.f64 (neg.f64 (+.f64 (pow.f64 (fma.f64 y x #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) #s(literal 3 binary64)) (pow.f64 z #s(literal 3 binary64)))) (neg.f64 (fma.f64 z (-.f64 z (fma.f64 y x #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)))) (pow.f64 (fma.f64 y x #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (fma.f64 y x #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) #s(literal 2 binary64)) (*.f64 z z)) (-.f64 (fma.f64 y x #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) z))
(/.f64 (+.f64 (pow.f64 (fma.f64 y x #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) #s(literal 3 binary64)) (pow.f64 z #s(literal 3 binary64))) (fma.f64 z z (-.f64 (pow.f64 (fma.f64 y x #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) #s(literal 2 binary64)) (*.f64 z (fma.f64 y x #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)))))))
(/.f64 (+.f64 (pow.f64 (fma.f64 y x #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) #s(literal 3 binary64)) (pow.f64 z #s(literal 3 binary64))) (fma.f64 z (-.f64 z (fma.f64 y x #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)))) (pow.f64 (fma.f64 y x #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) #s(literal 2 binary64))))
(fma.f64 y x (+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z))
(fma.f64 x y (+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z))
(-.f64 (+.f64 z #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) (*.f64 (neg.f64 y) x))
(-.f64 (/.f64 (pow.f64 (fma.f64 y x #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) #s(literal 2 binary64)) (-.f64 (fma.f64 y x #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) z)) (/.f64 (*.f64 z z) (-.f64 (fma.f64 y x #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) z)))
(-.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) (-.f64 (*.f64 (neg.f64 y) x) z))
(+.f64 (+.f64 z #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) (*.f64 y x))
(+.f64 (/.f64 (pow.f64 (fma.f64 y x #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) #s(literal 3 binary64)) (fma.f64 z (-.f64 z (fma.f64 y x #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)))) (pow.f64 (fma.f64 y x #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) #s(literal 2 binary64)))) (/.f64 (pow.f64 z #s(literal 3 binary64)) (fma.f64 z (-.f64 z (fma.f64 y x #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)))) (pow.f64 (fma.f64 y x #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) #s(literal 2 binary64)))))
(+.f64 (fma.f64 y x z) #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)))
(+.f64 z (fma.f64 y x #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))))
(+.f64 (fma.f64 y x #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) z)
(+.f64 (*.f64 y x) (+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z))
(+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) (fma.f64 y x z))
#s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 x #s(literal 1/2 binary64))
#s(approx (+ (+ (/ x 2) (* y x)) z) z)
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x))
(*.f64 y x)
(*.f64 x y)
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 #s(literal 1/2 binary64) x z))
(/.f64 (-.f64 (*.f64 z z) (pow.f64 (*.f64 #s(literal 1/2 binary64) x) #s(literal 2 binary64))) (-.f64 z (*.f64 #s(literal 1/2 binary64) x)))
(/.f64 (neg.f64 (fma.f64 (*.f64 x x) #s(literal 1/4 binary64) (*.f64 (neg.f64 z) z))) (neg.f64 (-.f64 (*.f64 #s(literal 1/2 binary64) x) z)))
(/.f64 (neg.f64 (fma.f64 #s(literal 1/8 binary64) (pow.f64 x #s(literal 3 binary64)) (pow.f64 z #s(literal 3 binary64)))) (neg.f64 (fma.f64 (*.f64 x x) #s(literal 1/4 binary64) (*.f64 z (-.f64 z (*.f64 #s(literal 1/2 binary64) x))))))
(/.f64 (fma.f64 (*.f64 x x) #s(literal 1/4 binary64) (*.f64 (neg.f64 z) z)) (-.f64 (*.f64 #s(literal 1/2 binary64) x) z))
(/.f64 (fma.f64 #s(literal 1/8 binary64) (pow.f64 x #s(literal 3 binary64)) (pow.f64 z #s(literal 3 binary64))) (fma.f64 z z (-.f64 (pow.f64 (*.f64 #s(literal 1/2 binary64) x) #s(literal 2 binary64)) (*.f64 z (*.f64 #s(literal 1/2 binary64) x)))))
(/.f64 (fma.f64 #s(literal 1/8 binary64) (pow.f64 x #s(literal 3 binary64)) (pow.f64 z #s(literal 3 binary64))) (fma.f64 (*.f64 x x) #s(literal 1/4 binary64) (*.f64 z (-.f64 z (*.f64 #s(literal 1/2 binary64) x)))))
(fma.f64 #s(literal 1/2 binary64) x z)
(fma.f64 x #s(literal 1/2 binary64) z)
(-.f64 (/.f64 (pow.f64 (*.f64 #s(literal 1/2 binary64) x) #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal 1/2 binary64) x) z)) (/.f64 (*.f64 z z) (-.f64 (*.f64 #s(literal 1/2 binary64) x) z)))
(-.f64 z (*.f64 #s(literal -1/2 binary64) x))
(-.f64 z (*.f64 (neg.f64 x) #s(literal 1/2 binary64)))
(+.f64 (/.f64 (pow.f64 (*.f64 #s(literal 1/2 binary64) x) #s(literal 3 binary64)) (fma.f64 (*.f64 x x) #s(literal 1/4 binary64) (*.f64 z (-.f64 z (*.f64 #s(literal 1/2 binary64) x))))) (/.f64 (pow.f64 z #s(literal 3 binary64)) (fma.f64 (*.f64 x x) #s(literal 1/4 binary64) (*.f64 z (-.f64 z (*.f64 #s(literal 1/2 binary64) x))))))
(+.f64 z (*.f64 #s(literal 1/2 binary64) x))
(+.f64 (*.f64 #s(literal 1/2 binary64) x) z)
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
(*.f64 (-.f64 y #s(literal -1/2 binary64)) x)
(*.f64 x (-.f64 y #s(literal -1/2 binary64)))
(/.f64 (*.f64 (fma.f64 y y #s(literal -1/4 binary64)) x) (+.f64 #s(literal -1/2 binary64) y))
(/.f64 (*.f64 (-.f64 (pow.f64 y #s(literal 3 binary64)) #s(literal -1/8 binary64)) x) (fma.f64 y y (fma.f64 #s(literal -1/2 binary64) y #s(literal 1/4 binary64))))
(/.f64 (*.f64 x (fma.f64 y y #s(literal -1/4 binary64))) (+.f64 #s(literal -1/2 binary64) y))
(/.f64 (*.f64 x (-.f64 (pow.f64 y #s(literal 3 binary64)) #s(literal -1/8 binary64))) (fma.f64 y y (fma.f64 #s(literal -1/2 binary64) y #s(literal 1/4 binary64))))
(/.f64 (neg.f64 (fma.f64 y y #s(literal -1/4 binary64))) (neg.f64 (+.f64 #s(literal -1/2 binary64) y)))
(/.f64 (neg.f64 (-.f64 (pow.f64 y #s(literal 3 binary64)) #s(literal -1/8 binary64))) (neg.f64 (fma.f64 y y (fma.f64 #s(literal -1/2 binary64) y #s(literal 1/4 binary64)))))
(/.f64 (fma.f64 y y #s(literal -1/4 binary64)) (+.f64 #s(literal -1/2 binary64) y))
(/.f64 (-.f64 (pow.f64 y #s(literal 3 binary64)) #s(literal -1/8 binary64)) (fma.f64 y y (fma.f64 #s(literal -1/2 binary64) y #s(literal 1/4 binary64))))
(-.f64 (/.f64 (*.f64 y y) (+.f64 #s(literal -1/2 binary64) y)) (/.f64 #s(literal 1/4 binary64) (+.f64 #s(literal -1/2 binary64) y)))
(-.f64 (/.f64 (pow.f64 y #s(literal 3 binary64)) (fma.f64 y y (fma.f64 #s(literal -1/2 binary64) y #s(literal 1/4 binary64)))) (/.f64 #s(literal -1/8 binary64) (fma.f64 y y (fma.f64 #s(literal -1/2 binary64) y #s(literal 1/4 binary64)))))
(-.f64 y #s(literal -1/2 binary64))

eval9.0ms (0.1%)

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

Compiled 2 055 to 292 computations (85.8% saved)

prune7.0ms (0.1%)

Memory
-31.4MiB live, 12.2MiB allocated; 5ms collecting garbage
Pruning

8 alts after pruning (4 fresh and 4 done)

PrunedKeptTotal
New88290
Fresh022
Picked145
Done000
Total89897
Accuracy
100.0%
Counts
97 → 8
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fma.f64 y x (+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z))
74.9%
(+.f64 #s(approx (+ (/ x 2) (* y x)) (*.f64 y x)) z)
100.0%
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
66.2%
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 #s(literal 1/2 binary64) x z))
59.0%
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
25.7%
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 #s(approx (- y -1/2) #s(literal 1/2 binary64)) x))
36.0%
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x))
41.5%
#s(approx (+ (+ (/ x 2) (* y x)) z) z)
Compiler

Compiled 111 to 88 computations (20.7% saved)

simplify144.0ms (1.8%)

Memory
9.5MiB live, 108.2MiB allocated; 10ms collecting garbage
Localize:

Found 13 expressions of interest:

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

Useful iterations: 6 (0.0ms)

IterNodesCost
024125
033125
152125
286125
3125125
4184125
5278125
6935115
74675115
08173115
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 #s(approx (- y -1/2) #s(literal 1/2 binary64)) x))
(*.f64 #s(approx (- y -1/2) #s(literal 1/2 binary64)) x)
#s(approx (- y -1/2) #s(literal 1/2 binary64))
#s(literal 1/2 binary64)
x
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
(fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z)
(-.f64 y #s(literal -1/2 binary64))
y
#s(literal -1/2 binary64)
x
z
(+.f64 #s(approx (+ (/ x 2) (* y x)) (*.f64 y x)) z)
#s(approx (+ (/ x 2) (* y x)) (*.f64 y x))
(*.f64 y x)
y
x
z
(fma.f64 y x (+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z))
y
x
(+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z)
#s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))
(*.f64 #s(literal 1/2 binary64) x)
#s(literal 1/2 binary64)
z
Outputs
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 #s(approx (- y -1/2) #s(literal 1/2 binary64)) x))
(*.f64 #s(approx (- y -1/2) #s(literal 1/2 binary64)) x)
#s(approx (- y -1/2) #s(literal 1/2 binary64))
#s(literal 1/2 binary64)
x
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
(fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z)
(-.f64 y #s(literal -1/2 binary64))
y
#s(literal -1/2 binary64)
x
z
(+.f64 #s(approx (+ (/ x 2) (* y x)) (*.f64 y x)) z)
#s(approx (+ (/ x 2) (* y x)) (*.f64 y x))
(*.f64 y x)
y
x
z
(fma.f64 y x (+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z))
(+.f64 (fma.f64 y x z) #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)))
y
x
(+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z)
#s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))
(*.f64 #s(literal 1/2 binary64) x)
#s(literal 1/2 binary64)
z

localize39.0ms (0.5%)

Memory
26.3MiB live, 71.3MiB allocated; 4ms collecting garbage
Localize:

Found 13 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(fma.f64 y x (+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z))
accuracy0.0
(+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z)
accuracy0.0
(*.f64 #s(literal 1/2 binary64) x)
accuracy0.0
#s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))
accuracy0.0
(+.f64 #s(approx (+ (/ x 2) (* y x)) (*.f64 y x)) z)
accuracy0.0
(*.f64 y x)
accuracy32.97064311738441
#s(approx (+ (/ x 2) (* y x)) (*.f64 y x))
accuracy0.0
(-.f64 y #s(literal -1/2 binary64))
accuracy0.0
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
accuracy0.0078125
(fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z)
accuracy0.01171875
(*.f64 #s(approx (- y -1/2) #s(literal 1/2 binary64)) x)
accuracy26.216347218229128
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 #s(approx (- y -1/2) #s(literal 1/2 binary64)) x))
accuracy29.502541707380896
#s(approx (- y -1/2) #s(literal 1/2 binary64))
Samples
28.0ms256×0valid
Compiler

Compiled 90 to 18 computations (80% saved)

Precisions
Click to see histograms. Total time spent on operations: 16.0ms
ival-add: 7.0ms (44.3% of total)
ival-mult: 5.0ms (31.6% of total)
ival-div: 2.0ms (12.7% of total)
ival-sub: 1.0ms (6.3% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series11.0ms (0.1%)

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

9 calls:

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

simplify126.0ms (1.5%)

Memory
19.9MiB live, 162.5MiB allocated; 15ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0160871
1385871
21039871
33354871
46081871
08022792
Stop Event
iter limit
node limit
Counts
67 → 67
Calls
Call 1
Inputs
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 z))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (+ z (* x (+ 1/2 y)))))
#s(approx (* (- y -1/2) x) #s(hole binary64 (* x (+ 1/2 y))))
#s(approx (+ (* (- y -1/2) x) z) #s(hole binary64 z))
#s(approx (+ (* (- y -1/2) x) z) #s(hole binary64 (+ z (* x (+ 1/2 y)))))
#s(approx (+ (/ x 2) (* y x)) #s(hole binary64 (* x (+ 1/2 y))))
#s(approx (* y x) #s(hole binary64 (* x y)))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 z))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (+ z (* x (+ 1/2 y)))))
#s(approx (+ (/ x 2) z) #s(hole binary64 z))
#s(approx (+ (/ x 2) z) #s(hole binary64 (+ z (* 1/2 x))))
#s(approx (/ x 2) #s(hole binary64 (* 1/2 x)))
#s(approx (* 1/2 x) #s(hole binary64 (* 1/2 x)))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* x (+ 1/2 y))))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* x (+ 1/2 (+ y (/ z x))))))
#s(approx (+ (* (- y -1/2) x) z) #s(hole binary64 (* x (+ 1/2 y))))
#s(approx (+ (* (- y -1/2) x) z) #s(hole binary64 (* x (+ 1/2 (+ y (/ z x))))))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (* x (+ 1/2 y))))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (* x (+ 1/2 (+ y (/ z x))))))
#s(approx (+ (/ x 2) z) #s(hole binary64 (* 1/2 x)))
#s(approx (+ (/ x 2) z) #s(hole binary64 (* x (+ 1/2 (/ z x)))))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* -1 (* x (- (* -1 y) 1/2)))))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* -1 (* x (- (+ (* -1 y) (* -1 (/ z x))) 1/2)))))
#s(approx (+ (* (- y -1/2) x) z) #s(hole binary64 (* -1 (* x (+ (* -1 (+ 1/2 y)) (* -1 (/ z x)))))))
#s(approx (+ (/ x 2) (* y x)) #s(hole binary64 (* -1 (* x (- (* -1 y) 1/2)))))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (* -1 (* x (- (* -1 y) 1/2)))))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (* -1 (* x (- (+ (* -1 y) (* -1 (/ z x))) 1/2)))))
#s(approx (+ (/ x 2) z) #s(hole binary64 (* -1 (* x (- (* -1 (/ z x)) 1/2)))))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (+ z (* 1/2 x))))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (+ z (+ (* 1/2 x) (* x y)))))
#s(approx (* (- y -1/2) x) #s(hole binary64 (* 1/2 x)))
#s(approx (* (- y -1/2) x) #s(hole binary64 (+ (* 1/2 x) (* x y))))
#s(approx (- y -1/2) #s(hole binary64 1/2))
#s(approx (- y -1/2) #s(hole binary64 (+ 1/2 y)))
#s(approx (+ (* (- y -1/2) x) z) #s(hole binary64 (+ z (* 1/2 x))))
#s(approx (+ (* (- y -1/2) x) z) #s(hole binary64 (+ z (+ (* 1/2 x) (* x y)))))
#s(approx (+ (/ x 2) (* y x)) #s(hole binary64 (* 1/2 x)))
#s(approx (+ (/ x 2) (* y x)) #s(hole binary64 (+ (* 1/2 x) (* x y))))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (+ z (* 1/2 x))))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (+ z (+ (* 1/2 x) (* x y)))))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* x y)))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* y (+ x (+ (* 1/2 (/ x y)) (/ z y))))))
#s(approx (* (- y -1/2) x) #s(hole binary64 (* x y)))
#s(approx (* (- y -1/2) x) #s(hole binary64 (* y (+ x (* 1/2 (/ x y))))))
#s(approx (- y -1/2) #s(hole binary64 y))
#s(approx (- y -1/2) #s(hole binary64 (* y (+ 1 (* 1/2 (/ 1 y))))))
#s(approx (+ (* (- y -1/2) x) z) #s(hole binary64 (* x y)))
#s(approx (+ (* (- y -1/2) x) z) #s(hole binary64 (* y (+ x (+ (* 1/2 (/ x y)) (/ z y))))))
#s(approx (+ (/ x 2) (* y x)) #s(hole binary64 (* x y)))
#s(approx (+ (/ x 2) (* y x)) #s(hole binary64 (* y (+ x (* 1/2 (/ x y))))))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (* x y)))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (* y (+ x (+ (* 1/2 (/ x y)) (/ z y))))))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* -1 (* y (+ (* -1 x) (* -1 (/ (+ z (* 1/2 x)) y)))))))
#s(approx (* (- y -1/2) x) #s(hole binary64 (* -1 (* y (+ (* -1 x) (* -1/2 (/ x y)))))))
#s(approx (+ (* (- y -1/2) x) z) #s(hole binary64 (* -1 (* y (+ (* -1 x) (* -1 (/ (+ z (* 1/2 x)) y)))))))
#s(approx (+ (/ x 2) (* y x)) #s(hole binary64 (* -1 (* y (+ (* -1 x) (* -1/2 (/ x y)))))))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (* -1 (* y (+ (* -1 x) (* -1 (/ (+ z (* 1/2 x)) y)))))))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (+ (* 1/2 x) (* x y))))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (+ (* 1/2 x) (* x y))))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* z (+ 1 (+ (* 1/2 (/ x z)) (/ (* x y) z))))))
#s(approx (+ (* (- y -1/2) x) z) #s(hole binary64 (* z (+ 1 (/ (* x (+ 1/2 y)) z)))))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (* z (+ 1 (+ (* 1/2 (/ x z)) (/ (* x y) z))))))
#s(approx (+ (/ x 2) z) #s(hole binary64 (* z (+ 1 (* 1/2 (/ x z))))))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* -1 (* z (- (* -1 (/ (+ (* 1/2 x) (* x y)) z)) 1)))))
#s(approx (+ (* (- y -1/2) x) z) #s(hole binary64 (* -1 (* z (- (* -1 (/ (* x (+ 1/2 y)) z)) 1)))))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (* -1 (* z (- (* -1 (/ (+ (* 1/2 x) (* x y)) z)) 1)))))
#s(approx (+ (/ x 2) z) #s(hole binary64 (* -1 (* z (- (* -1/2 (/ x z)) 1)))))
Outputs
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 z))
#s(approx (+ (* y x) (+ (/ x 2) z)) z)
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (+ z (* x (+ 1/2 y)))))
#s(approx (+ (* y x) (+ (/ x 2) z)) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
#s(approx (* (- y -1/2) x) #s(hole binary64 (* x (+ 1/2 y))))
#s(approx (* (- y -1/2) x) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
#s(approx (+ (* (- y -1/2) x) z) #s(hole binary64 z))
#s(approx (+ (* (- y -1/2) x) z) z)
#s(approx (+ (* (- y -1/2) x) z) #s(hole binary64 (+ z (* x (+ 1/2 y)))))
#s(approx (+ (* (- y -1/2) x) z) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
#s(approx (+ (/ x 2) (* y x)) #s(hole binary64 (* x (+ 1/2 y))))
#s(approx (+ (/ x 2) (* y x)) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
#s(approx (* y x) #s(hole binary64 (* x y)))
#s(approx (* y x) (*.f64 y x))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 z))
#s(approx (+ (* y x) (+ (/ x 2) z)) z)
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (+ z (* x (+ 1/2 y)))))
#s(approx (+ (* y x) (+ (/ x 2) z)) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
#s(approx (+ (/ x 2) z) #s(hole binary64 z))
#s(approx (+ (/ x 2) z) z)
#s(approx (+ (/ x 2) z) #s(hole binary64 (+ z (* 1/2 x))))
#s(approx (+ (/ x 2) z) (fma.f64 #s(literal 1/2 binary64) x z))
#s(approx (/ x 2) #s(hole binary64 (* 1/2 x)))
#s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))
#s(approx (* 1/2 x) #s(hole binary64 (* 1/2 x)))
#s(approx (* 1/2 x) (*.f64 #s(literal 1/2 binary64) x))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* x (+ 1/2 y))))
#s(approx (+ (* y x) (+ (/ x 2) z)) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* x (+ 1/2 (+ y (/ z x))))))
#s(approx (+ (* y x) (+ (/ x 2) z)) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
#s(approx (+ (* (- y -1/2) x) z) #s(hole binary64 (* x (+ 1/2 y))))
#s(approx (+ (* (- y -1/2) x) z) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
#s(approx (+ (* (- y -1/2) x) z) #s(hole binary64 (* x (+ 1/2 (+ y (/ z x))))))
#s(approx (+ (* (- y -1/2) x) z) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (* x (+ 1/2 y))))
#s(approx (+ (* y x) (+ (/ x 2) z)) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (* x (+ 1/2 (+ y (/ z x))))))
#s(approx (+ (* y x) (+ (/ x 2) z)) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
#s(approx (+ (/ x 2) z) #s(hole binary64 (* 1/2 x)))
#s(approx (+ (/ x 2) z) (*.f64 #s(literal 1/2 binary64) x))
#s(approx (+ (/ x 2) z) #s(hole binary64 (* x (+ 1/2 (/ z x)))))
#s(approx (+ (/ x 2) z) (fma.f64 #s(literal 1/2 binary64) x z))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* -1 (* x (- (* -1 y) 1/2)))))
#s(approx (+ (* y x) (+ (/ x 2) z)) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* -1 (* x (- (+ (* -1 y) (* -1 (/ z x))) 1/2)))))
#s(approx (+ (* y x) (+ (/ x 2) z)) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
#s(approx (+ (* (- y -1/2) x) z) #s(hole binary64 (* -1 (* x (+ (* -1 (+ 1/2 y)) (* -1 (/ z x)))))))
#s(approx (+ (* (- y -1/2) x) z) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
#s(approx (+ (/ x 2) (* y x)) #s(hole binary64 (* -1 (* x (- (* -1 y) 1/2)))))
#s(approx (+ (/ x 2) (* y x)) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (* -1 (* x (- (* -1 y) 1/2)))))
#s(approx (+ (* y x) (+ (/ x 2) z)) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (* -1 (* x (- (+ (* -1 y) (* -1 (/ z x))) 1/2)))))
#s(approx (+ (* y x) (+ (/ x 2) z)) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
#s(approx (+ (/ x 2) z) #s(hole binary64 (* -1 (* x (- (* -1 (/ z x)) 1/2)))))
#s(approx (+ (/ x 2) z) (fma.f64 #s(literal 1/2 binary64) x z))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (+ z (* 1/2 x))))
#s(approx (+ (* y x) (+ (/ x 2) z)) (fma.f64 #s(literal 1/2 binary64) x z))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (+ z (+ (* 1/2 x) (* x y)))))
#s(approx (+ (* y x) (+ (/ x 2) z)) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
#s(approx (* (- y -1/2) x) #s(hole binary64 (* 1/2 x)))
#s(approx (* (- y -1/2) x) (*.f64 #s(literal 1/2 binary64) x))
#s(approx (* (- y -1/2) x) #s(hole binary64 (+ (* 1/2 x) (* x y))))
#s(approx (* (- y -1/2) x) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
#s(approx (- y -1/2) #s(hole binary64 1/2))
#s(approx (- y -1/2) #s(literal 1/2 binary64))
#s(approx (- y -1/2) #s(hole binary64 (+ 1/2 y)))
#s(approx (- y -1/2) (-.f64 y #s(literal -1/2 binary64)))
#s(approx (+ (* (- y -1/2) x) z) #s(hole binary64 (+ z (* 1/2 x))))
#s(approx (+ (* (- y -1/2) x) z) (fma.f64 #s(literal 1/2 binary64) x z))
#s(approx (+ (* (- y -1/2) x) z) #s(hole binary64 (+ z (+ (* 1/2 x) (* x y)))))
#s(approx (+ (* (- y -1/2) x) z) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
#s(approx (+ (/ x 2) (* y x)) #s(hole binary64 (* 1/2 x)))
#s(approx (+ (/ x 2) (* y x)) (*.f64 #s(literal 1/2 binary64) x))
#s(approx (+ (/ x 2) (* y x)) #s(hole binary64 (+ (* 1/2 x) (* x y))))
#s(approx (+ (/ x 2) (* y x)) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (+ z (* 1/2 x))))
#s(approx (+ (* y x) (+ (/ x 2) z)) (fma.f64 #s(literal 1/2 binary64) x z))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (+ z (+ (* 1/2 x) (* x y)))))
#s(approx (+ (* y x) (+ (/ x 2) z)) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* x y)))
#s(approx (+ (* y x) (+ (/ x 2) z)) (*.f64 y x))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* y (+ x (+ (* 1/2 (/ x y)) (/ z y))))))
#s(approx (+ (* y x) (+ (/ x 2) z)) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
#s(approx (* (- y -1/2) x) #s(hole binary64 (* x y)))
#s(approx (* (- y -1/2) x) (*.f64 y x))
#s(approx (* (- y -1/2) x) #s(hole binary64 (* y (+ x (* 1/2 (/ x y))))))
#s(approx (* (- y -1/2) x) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
#s(approx (- y -1/2) #s(hole binary64 y))
#s(approx (- y -1/2) y)
#s(approx (- y -1/2) #s(hole binary64 (* y (+ 1 (* 1/2 (/ 1 y))))))
#s(approx (- y -1/2) (-.f64 y #s(literal -1/2 binary64)))
#s(approx (+ (* (- y -1/2) x) z) #s(hole binary64 (* x y)))
#s(approx (+ (* (- y -1/2) x) z) (*.f64 y x))
#s(approx (+ (* (- y -1/2) x) z) #s(hole binary64 (* y (+ x (+ (* 1/2 (/ x y)) (/ z y))))))
#s(approx (+ (* (- y -1/2) x) z) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
#s(approx (+ (/ x 2) (* y x)) #s(hole binary64 (* x y)))
#s(approx (+ (/ x 2) (* y x)) (*.f64 y x))
#s(approx (+ (/ x 2) (* y x)) #s(hole binary64 (* y (+ x (* 1/2 (/ x y))))))
#s(approx (+ (/ x 2) (* y x)) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (* x y)))
#s(approx (+ (* y x) (+ (/ x 2) z)) (*.f64 y x))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (* y (+ x (+ (* 1/2 (/ x y)) (/ z y))))))
#s(approx (+ (* y x) (+ (/ x 2) z)) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* -1 (* y (+ (* -1 x) (* -1 (/ (+ z (* 1/2 x)) y)))))))
#s(approx (+ (* y x) (+ (/ x 2) z)) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
#s(approx (* (- y -1/2) x) #s(hole binary64 (* -1 (* y (+ (* -1 x) (* -1/2 (/ x y)))))))
#s(approx (* (- y -1/2) x) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
#s(approx (+ (* (- y -1/2) x) z) #s(hole binary64 (* -1 (* y (+ (* -1 x) (* -1 (/ (+ z (* 1/2 x)) y)))))))
#s(approx (+ (* (- y -1/2) x) z) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
#s(approx (+ (/ x 2) (* y x)) #s(hole binary64 (* -1 (* y (+ (* -1 x) (* -1/2 (/ x y)))))))
#s(approx (+ (/ x 2) (* y x)) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (* -1 (* y (+ (* -1 x) (* -1 (/ (+ z (* 1/2 x)) y)))))))
#s(approx (+ (* y x) (+ (/ x 2) z)) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (+ (* 1/2 x) (* x y))))
#s(approx (+ (* y x) (+ (/ x 2) z)) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (+ (* 1/2 x) (* x y))))
#s(approx (+ (* y x) (+ (/ x 2) z)) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* z (+ 1 (+ (* 1/2 (/ x z)) (/ (* x y) z))))))
#s(approx (+ (* y x) (+ (/ x 2) z)) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
#s(approx (+ (* (- y -1/2) x) z) #s(hole binary64 (* z (+ 1 (/ (* x (+ 1/2 y)) z)))))
#s(approx (+ (* (- y -1/2) x) z) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (* z (+ 1 (+ (* 1/2 (/ x z)) (/ (* x y) z))))))
#s(approx (+ (* y x) (+ (/ x 2) z)) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
#s(approx (+ (/ x 2) z) #s(hole binary64 (* z (+ 1 (* 1/2 (/ x z))))))
#s(approx (+ (/ x 2) z) (fma.f64 #s(literal 1/2 binary64) x z))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* -1 (* z (- (* -1 (/ (+ (* 1/2 x) (* x y)) z)) 1)))))
#s(approx (+ (* y x) (+ (/ x 2) z)) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
#s(approx (+ (* (- y -1/2) x) z) #s(hole binary64 (* -1 (* z (- (* -1 (/ (* x (+ 1/2 y)) z)) 1)))))
#s(approx (+ (* (- y -1/2) x) z) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (* -1 (* z (- (* -1 (/ (+ (* 1/2 x) (* x y)) z)) 1)))))
#s(approx (+ (* y x) (+ (/ x 2) z)) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
#s(approx (+ (/ x 2) z) #s(hole binary64 (* -1 (* z (- (* -1/2 (/ x z)) 1)))))
#s(approx (+ (/ x 2) z) (fma.f64 #s(literal 1/2 binary64) x z))

rewrite49.0ms (0.6%)

Memory
-2.6MiB live, 43.8MiB allocated; 3ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
024112
033112
1135112
01048108
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
13 → 72
Calls
Call 1
Inputs
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 #s(approx (- y -1/2) #s(literal 1/2 binary64)) x))
(*.f64 #s(approx (- y -1/2) #s(literal 1/2 binary64)) x)
#s(approx (- y -1/2) #s(literal 1/2 binary64))
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
(fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z)
(-.f64 y #s(literal -1/2 binary64))
(+.f64 #s(approx (+ (/ x 2) (* y x)) (*.f64 y x)) z)
#s(approx (+ (/ x 2) (* y x)) (*.f64 y x))
(*.f64 y x)
(fma.f64 y x (+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z))
(+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z)
#s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))
(*.f64 #s(literal 1/2 binary64) x)
Outputs
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 #s(approx (- y -1/2) #s(literal 1/2 binary64)) x))
(*.f64 #s(approx (- y -1/2) #s(literal 1/2 binary64)) x)
(*.f64 x #s(approx (- y -1/2) #s(literal 1/2 binary64)))
#s(approx (- y -1/2) #s(literal 1/2 binary64))
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
(/.f64 (-.f64 (*.f64 z z) (pow.f64 (*.f64 (-.f64 y #s(literal -1/2 binary64)) x) #s(literal 2 binary64))) (-.f64 z (*.f64 (-.f64 y #s(literal -1/2 binary64)) x)))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (-.f64 y #s(literal -1/2 binary64)) x) #s(literal 2 binary64)) (*.f64 z z))) (neg.f64 (-.f64 (*.f64 (-.f64 y #s(literal -1/2 binary64)) x) z)))
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 (-.f64 y #s(literal -1/2 binary64)) x) #s(literal 3 binary64)) (pow.f64 z #s(literal 3 binary64)))) (neg.f64 (fma.f64 z (-.f64 z (*.f64 (-.f64 y #s(literal -1/2 binary64)) x)) (pow.f64 (*.f64 (-.f64 y #s(literal -1/2 binary64)) x) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 (-.f64 y #s(literal -1/2 binary64)) x) #s(literal 2 binary64)) (*.f64 z z)) (-.f64 (*.f64 (-.f64 y #s(literal -1/2 binary64)) x) z))
(/.f64 (+.f64 (pow.f64 (*.f64 (-.f64 y #s(literal -1/2 binary64)) x) #s(literal 3 binary64)) (pow.f64 z #s(literal 3 binary64))) (fma.f64 z z (-.f64 (pow.f64 (*.f64 (-.f64 y #s(literal -1/2 binary64)) x) #s(literal 2 binary64)) (*.f64 (*.f64 (-.f64 y #s(literal -1/2 binary64)) x) z))))
(/.f64 (+.f64 (pow.f64 (*.f64 (-.f64 y #s(literal -1/2 binary64)) x) #s(literal 3 binary64)) (pow.f64 z #s(literal 3 binary64))) (fma.f64 z (-.f64 z (*.f64 (-.f64 y #s(literal -1/2 binary64)) x)) (pow.f64 (*.f64 (-.f64 y #s(literal -1/2 binary64)) x) #s(literal 2 binary64))))
(fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z)
(fma.f64 x (-.f64 y #s(literal -1/2 binary64)) z)
(-.f64 (/.f64 (pow.f64 (*.f64 (-.f64 y #s(literal -1/2 binary64)) x) #s(literal 2 binary64)) (-.f64 (*.f64 (-.f64 y #s(literal -1/2 binary64)) x) z)) (/.f64 (*.f64 z z) (-.f64 (*.f64 (-.f64 y #s(literal -1/2 binary64)) x) z)))
(-.f64 z (*.f64 (neg.f64 (-.f64 y #s(literal -1/2 binary64))) x))
(-.f64 z (*.f64 (neg.f64 x) (-.f64 y #s(literal -1/2 binary64))))
(+.f64 (/.f64 (pow.f64 (*.f64 (-.f64 y #s(literal -1/2 binary64)) x) #s(literal 3 binary64)) (fma.f64 z (-.f64 z (*.f64 (-.f64 y #s(literal -1/2 binary64)) x)) (pow.f64 (*.f64 (-.f64 y #s(literal -1/2 binary64)) x) #s(literal 2 binary64)))) (/.f64 (pow.f64 z #s(literal 3 binary64)) (fma.f64 z (-.f64 z (*.f64 (-.f64 y #s(literal -1/2 binary64)) x)) (pow.f64 (*.f64 (-.f64 y #s(literal -1/2 binary64)) x) #s(literal 2 binary64)))))
(+.f64 (*.f64 (-.f64 y #s(literal -1/2 binary64)) x) z)
(+.f64 z (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
(/.f64 (neg.f64 (fma.f64 y y #s(literal -1/4 binary64))) (neg.f64 (+.f64 #s(literal -1/2 binary64) y)))
(/.f64 (neg.f64 (-.f64 (pow.f64 y #s(literal 3 binary64)) #s(literal -1/8 binary64))) (neg.f64 (fma.f64 y y (fma.f64 #s(literal -1/2 binary64) y #s(literal 1/4 binary64)))))
(/.f64 (fma.f64 y y #s(literal -1/4 binary64)) (+.f64 #s(literal -1/2 binary64) y))
(/.f64 (-.f64 (pow.f64 y #s(literal 3 binary64)) #s(literal -1/8 binary64)) (fma.f64 y y (fma.f64 #s(literal -1/2 binary64) y #s(literal 1/4 binary64))))
(-.f64 (/.f64 (*.f64 y y) (+.f64 #s(literal -1/2 binary64) y)) (/.f64 #s(literal 1/4 binary64) (+.f64 #s(literal -1/2 binary64) y)))
(-.f64 (/.f64 (pow.f64 y #s(literal 3 binary64)) (fma.f64 y y (fma.f64 #s(literal -1/2 binary64) y #s(literal 1/4 binary64)))) (/.f64 #s(literal -1/8 binary64) (fma.f64 y y (fma.f64 #s(literal -1/2 binary64) y #s(literal 1/4 binary64)))))
(-.f64 y #s(literal -1/2 binary64))
(/.f64 (-.f64 (*.f64 z z) (pow.f64 #s(approx (+ (/ x 2) (* y x)) (*.f64 y x)) #s(literal 2 binary64))) (-.f64 z #s(approx (+ (/ x 2) (* y x)) (*.f64 y x))))
(/.f64 (neg.f64 (-.f64 (pow.f64 #s(approx (+ (/ x 2) (* y x)) (*.f64 y x)) #s(literal 2 binary64)) (*.f64 z z))) (neg.f64 (-.f64 #s(approx (+ (/ x 2) (* y x)) (*.f64 y x)) z)))
(/.f64 (neg.f64 (+.f64 (pow.f64 #s(approx (+ (/ x 2) (* y x)) (*.f64 y x)) #s(literal 3 binary64)) (pow.f64 z #s(literal 3 binary64)))) (neg.f64 (fma.f64 z (-.f64 z #s(approx (+ (/ x 2) (* y x)) (*.f64 y x))) (pow.f64 #s(approx (+ (/ x 2) (* y x)) (*.f64 y x)) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 #s(approx (+ (/ x 2) (* y x)) (*.f64 y x)) #s(literal 2 binary64)) (*.f64 z z)) (-.f64 #s(approx (+ (/ x 2) (* y x)) (*.f64 y x)) z))
(/.f64 (+.f64 (pow.f64 #s(approx (+ (/ x 2) (* y x)) (*.f64 y x)) #s(literal 3 binary64)) (pow.f64 z #s(literal 3 binary64))) (fma.f64 z z (-.f64 (pow.f64 #s(approx (+ (/ x 2) (* y x)) (*.f64 y x)) #s(literal 2 binary64)) (*.f64 #s(approx (+ (/ x 2) (* y x)) (*.f64 y x)) z))))
(/.f64 (+.f64 (pow.f64 #s(approx (+ (/ x 2) (* y x)) (*.f64 y x)) #s(literal 3 binary64)) (pow.f64 z #s(literal 3 binary64))) (fma.f64 z (-.f64 z #s(approx (+ (/ x 2) (* y x)) (*.f64 y x))) (pow.f64 #s(approx (+ (/ x 2) (* y x)) (*.f64 y x)) #s(literal 2 binary64))))
(-.f64 (/.f64 (pow.f64 #s(approx (+ (/ x 2) (* y x)) (*.f64 y x)) #s(literal 2 binary64)) (-.f64 #s(approx (+ (/ x 2) (* y x)) (*.f64 y x)) z)) (/.f64 (*.f64 z z) (-.f64 #s(approx (+ (/ x 2) (* y x)) (*.f64 y x)) z)))
(+.f64 (/.f64 (pow.f64 #s(approx (+ (/ x 2) (* y x)) (*.f64 y x)) #s(literal 3 binary64)) (fma.f64 z (-.f64 z #s(approx (+ (/ x 2) (* y x)) (*.f64 y x))) (pow.f64 #s(approx (+ (/ x 2) (* y x)) (*.f64 y x)) #s(literal 2 binary64)))) (/.f64 (pow.f64 z #s(literal 3 binary64)) (fma.f64 z (-.f64 z #s(approx (+ (/ x 2) (* y x)) (*.f64 y x))) (pow.f64 #s(approx (+ (/ x 2) (* y x)) (*.f64 y x)) #s(literal 2 binary64)))))
(+.f64 #s(approx (+ (/ x 2) (* y x)) (*.f64 y x)) z)
(+.f64 z #s(approx (+ (/ x 2) (* y x)) (*.f64 y x)))
#s(approx (+ (/ x 2) (* y x)) (*.f64 y x))
(*.f64 y x)
(*.f64 x y)
(/.f64 (-.f64 (*.f64 (fma.f64 y x #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) (fma.f64 y x #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)))) (*.f64 z z)) (-.f64 (fma.f64 y x #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) z))
(/.f64 (-.f64 (pow.f64 (+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z) #s(literal 2 binary64)) (pow.f64 (*.f64 y x) #s(literal 2 binary64))) (-.f64 (+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z) (*.f64 y x)))
(/.f64 (+.f64 (pow.f64 (fma.f64 y x #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) #s(literal 3 binary64)) (pow.f64 z #s(literal 3 binary64))) (fma.f64 (fma.f64 y x #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) (fma.f64 y x #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) (-.f64 (*.f64 z z) (*.f64 (fma.f64 y x #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) z))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (pow.f64 (+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z) #s(literal 2 binary64)))) (neg.f64 (-.f64 (-.f64 (*.f64 y x) z) #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z) #s(literal 3 binary64)) (pow.f64 (*.f64 y x) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z) (-.f64 (+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z) (*.f64 y x)) (pow.f64 (*.f64 y x) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (pow.f64 (+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z) #s(literal 2 binary64))) (-.f64 (-.f64 (*.f64 y x) z) #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))))
(/.f64 (+.f64 (pow.f64 (+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z) #s(literal 3 binary64)) (pow.f64 (*.f64 y x) #s(literal 3 binary64))) (+.f64 (pow.f64 (+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z) #s(literal 2 binary64)) (-.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (*.f64 (+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z) (*.f64 y x)))))
(/.f64 (+.f64 (pow.f64 (+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z) #s(literal 3 binary64)) (pow.f64 (*.f64 y x) #s(literal 3 binary64))) (fma.f64 (+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z) (-.f64 (+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z) (*.f64 y x)) (pow.f64 (*.f64 y x) #s(literal 2 binary64))))
(fma.f64 y x (+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z))
(fma.f64 x y (+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z))
(-.f64 (/.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (-.f64 (-.f64 (*.f64 y x) z) #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)))) (/.f64 (pow.f64 (+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z) #s(literal 2 binary64)) (-.f64 (-.f64 (*.f64 y x) z) #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)))))
(-.f64 (+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z) (*.f64 (neg.f64 x) y))
(-.f64 (+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z) (*.f64 (neg.f64 y) x))
(+.f64 (/.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (fma.f64 (+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z) (-.f64 (+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z) (*.f64 y x)) (pow.f64 (*.f64 y x) #s(literal 2 binary64)))) (/.f64 (pow.f64 (+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z) #s(literal 3 binary64)) (fma.f64 (+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z) (-.f64 (+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z) (*.f64 y x)) (pow.f64 (*.f64 y x) #s(literal 2 binary64)))))
(+.f64 (fma.f64 y x z) #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)))
(+.f64 (fma.f64 y x #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) z)
(+.f64 (+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z) (*.f64 y x))
(+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) (fma.f64 y x z))
(+.f64 (*.f64 y x) (+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z))
(+.f64 z (fma.f64 y x #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))))
(/.f64 (-.f64 (*.f64 z z) (pow.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64))) (-.f64 z #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))))
(/.f64 (neg.f64 (-.f64 (pow.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) (*.f64 z z))) (neg.f64 (-.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z)))
(/.f64 (neg.f64 (+.f64 (pow.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 3 binary64)) (pow.f64 z #s(literal 3 binary64)))) (neg.f64 (fma.f64 z (-.f64 z #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) (pow.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) (*.f64 z z)) (-.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z))
(/.f64 (+.f64 (pow.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 3 binary64)) (pow.f64 z #s(literal 3 binary64))) (fma.f64 z z (-.f64 (pow.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) (*.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z))))
(/.f64 (+.f64 (pow.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 3 binary64)) (pow.f64 z #s(literal 3 binary64))) (fma.f64 z (-.f64 z #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) (pow.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64))))
(-.f64 (/.f64 (pow.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) (-.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z)) (/.f64 (*.f64 z z) (-.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z)))
(+.f64 (/.f64 (pow.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 3 binary64)) (fma.f64 z (-.f64 z #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) (pow.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)))) (/.f64 (pow.f64 z #s(literal 3 binary64)) (fma.f64 z (-.f64 z #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) (pow.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)))))
(+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z)
(+.f64 z #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)))
#s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 x #s(literal 1/2 binary64))

eval9.0ms (0.1%)

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

Compiled 2 375 to 294 computations (87.6% saved)

prune11.0ms (0.1%)

Memory
-33.7MiB live, 11.7MiB allocated; 4ms collecting garbage
Pruning

8 alts after pruning (2 fresh and 6 done)

PrunedKeptTotal
New92294
Fresh000
Picked224
Done044
Total948102
Accuracy
100.0%
Counts
102 → 8
Alt Table
Click to see full alt table
StatusAccuracyProgram
59.0%
(fma.f64 y x #s(approx (+ (/ x 2) z) (*.f64 #s(literal 1/2 binary64) x)))
74.9%
(fma.f64 y x #s(approx (+ (/ x 2) z) z))
100.0%
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
66.2%
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 #s(literal 1/2 binary64) x z))
59.0%
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
25.7%
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 #s(approx (- y -1/2) #s(literal 1/2 binary64)) x))
36.0%
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x))
41.5%
#s(approx (+ (+ (/ x 2) (* y x)) z) z)
Compiler

Compiled 108 to 86 computations (20.4% saved)

simplify198.0ms (2.4%)

Memory
24.2MiB live, 116.6MiB allocated; 98ms collecting garbage
Localize:

Found 5 expressions of interest:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01247
01647
12347
23447
35147
49147
518247
679547
7489047
0817543
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
(fma.f64 y x #s(approx (+ (/ x 2) z) z))
y
x
#s(approx (+ (/ x 2) z) z)
z
(fma.f64 y x #s(approx (+ (/ x 2) z) (*.f64 #s(literal 1/2 binary64) x)))
y
x
#s(approx (+ (/ x 2) z) (*.f64 #s(literal 1/2 binary64) x))
(*.f64 #s(literal 1/2 binary64) x)
#s(literal 1/2 binary64)
Outputs
(fma.f64 y x #s(approx (+ (/ x 2) z) z))
(fma.f64 x y #s(approx (+ (/ x 2) z) z))
y
x
#s(approx (+ (/ x 2) z) z)
z
(fma.f64 y x #s(approx (+ (/ x 2) z) (*.f64 #s(literal 1/2 binary64) x)))
(fma.f64 x y #s(approx (+ (/ x 2) z) (*.f64 #s(literal 1/2 binary64) x)))
y
x
#s(approx (+ (/ x 2) z) (*.f64 #s(literal 1/2 binary64) x))
(*.f64 #s(literal 1/2 binary64) x)
#s(literal 1/2 binary64)

localize42.0ms (0.5%)

Memory
-7.9MiB live, 38.1MiB allocated; 7ms collecting garbage
Localize:

Found 5 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(fma.f64 y x #s(approx (+ (/ x 2) z) (*.f64 #s(literal 1/2 binary64) x)))
accuracy0.0
(*.f64 #s(literal 1/2 binary64) x)
accuracy31.734571249428733
#s(approx (+ (/ x 2) z) (*.f64 #s(literal 1/2 binary64) x))
accuracy0.0
(fma.f64 y x #s(approx (+ (/ x 2) z) z))
accuracy32.184138685936965
#s(approx (+ (/ x 2) z) z)
Samples
36.0ms256×0valid
Compiler

Compiled 39 to 12 computations (69.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 8.0ms
ival-mult: 3.0ms (38.9% of total)
ival-div: 2.0ms (25.9% of total)
ival-add: 2.0ms (25.9% 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%)

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

9 calls:

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

simplify170.0ms (2.1%)

Memory
7.9MiB live, 158.5MiB allocated; 19ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
089298
1235298
2644298
32400270
08262235
Stop Event
iter limit
node limit
Counts
22 → 22
Calls
Call 1
Inputs
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 z))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (+ z (* x (+ 1/2 y)))))
#s(approx (+ (/ x 2) z) #s(hole binary64 z))
#s(approx (+ (/ x 2) z) #s(hole binary64 (+ z (* 1/2 x))))
#s(approx (* 1/2 x) #s(hole binary64 (* 1/2 x)))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (* x (+ 1/2 y))))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (* x (+ 1/2 (+ y (/ z x))))))
#s(approx (+ (/ x 2) z) #s(hole binary64 (* 1/2 x)))
#s(approx (+ (/ x 2) z) #s(hole binary64 (* x (+ 1/2 (/ z x)))))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (* -1 (* x (- (* -1 y) 1/2)))))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (* -1 (* x (- (+ (* -1 y) (* -1 (/ z x))) 1/2)))))
#s(approx (+ (/ x 2) z) #s(hole binary64 (* -1 (* x (- (* -1 (/ z x)) 1/2)))))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (+ z (* 1/2 x))))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (+ z (+ (* 1/2 x) (* x y)))))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (* x y)))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (* y (+ x (+ (* 1/2 (/ x y)) (/ z y))))))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (* -1 (* y (+ (* -1 x) (* -1 (/ (+ z (* 1/2 x)) y)))))))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (+ (* 1/2 x) (* x y))))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (* z (+ 1 (+ (* 1/2 (/ x z)) (/ (* x y) z))))))
#s(approx (+ (/ x 2) z) #s(hole binary64 (* z (+ 1 (* 1/2 (/ x z))))))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (* -1 (* z (- (* -1 (/ (+ (* 1/2 x) (* x y)) z)) 1)))))
#s(approx (+ (/ x 2) z) #s(hole binary64 (* -1 (* z (- (* -1/2 (/ x z)) 1)))))
Outputs
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 z))
#s(approx (+ (* y x) (+ (/ x 2) z)) z)
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (+ z (* x (+ 1/2 y)))))
#s(approx (+ (* y x) (+ (/ x 2) z)) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
#s(approx (+ (/ x 2) z) #s(hole binary64 z))
#s(approx (+ (/ x 2) z) z)
#s(approx (+ (/ x 2) z) #s(hole binary64 (+ z (* 1/2 x))))
#s(approx (+ (/ x 2) z) (fma.f64 #s(literal 1/2 binary64) x z))
#s(approx (* 1/2 x) #s(hole binary64 (* 1/2 x)))
#s(approx (* 1/2 x) (*.f64 #s(literal 1/2 binary64) x))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (* x (+ 1/2 y))))
#s(approx (+ (* y x) (+ (/ x 2) z)) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (* x (+ 1/2 (+ y (/ z x))))))
#s(approx (+ (* y x) (+ (/ x 2) z)) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
#s(approx (+ (/ x 2) z) #s(hole binary64 (* 1/2 x)))
#s(approx (+ (/ x 2) z) (*.f64 #s(literal 1/2 binary64) x))
#s(approx (+ (/ x 2) z) #s(hole binary64 (* x (+ 1/2 (/ z x)))))
#s(approx (+ (/ x 2) z) (fma.f64 #s(literal 1/2 binary64) x z))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (* -1 (* x (- (* -1 y) 1/2)))))
#s(approx (+ (* y x) (+ (/ x 2) z)) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (* -1 (* x (- (+ (* -1 y) (* -1 (/ z x))) 1/2)))))
#s(approx (+ (* y x) (+ (/ x 2) z)) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
#s(approx (+ (/ x 2) z) #s(hole binary64 (* -1 (* x (- (* -1 (/ z x)) 1/2)))))
#s(approx (+ (/ x 2) z) (fma.f64 #s(literal 1/2 binary64) x z))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (+ z (* 1/2 x))))
#s(approx (+ (* y x) (+ (/ x 2) z)) (fma.f64 #s(literal 1/2 binary64) x z))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (+ z (+ (* 1/2 x) (* x y)))))
#s(approx (+ (* y x) (+ (/ x 2) z)) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (* x y)))
#s(approx (+ (* y x) (+ (/ x 2) z)) (*.f64 x y))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (* y (+ x (+ (* 1/2 (/ x y)) (/ z y))))))
#s(approx (+ (* y x) (+ (/ x 2) z)) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (* -1 (* y (+ (* -1 x) (* -1 (/ (+ z (* 1/2 x)) y)))))))
#s(approx (+ (* y x) (+ (/ x 2) z)) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (+ (* 1/2 x) (* x y))))
#s(approx (+ (* y x) (+ (/ x 2) z)) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (* z (+ 1 (+ (* 1/2 (/ x z)) (/ (* x y) z))))))
#s(approx (+ (* y x) (+ (/ x 2) z)) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
#s(approx (+ (/ x 2) z) #s(hole binary64 (* z (+ 1 (* 1/2 (/ x z))))))
#s(approx (+ (/ x 2) z) (fma.f64 #s(literal 1/2 binary64) x z))
#s(approx (+ (* y x) (+ (/ x 2) z)) #s(hole binary64 (* -1 (* z (- (* -1 (/ (+ (* 1/2 x) (* x y)) z)) 1)))))
#s(approx (+ (* y x) (+ (/ x 2) z)) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
#s(approx (+ (/ x 2) z) #s(hole binary64 (* -1 (* z (- (* -1/2 (/ x z)) 1)))))
#s(approx (+ (/ x 2) z) (fma.f64 #s(literal 1/2 binary64) x z))

rewrite50.0ms (0.6%)

Memory
-30.5MiB live, 61.6MiB allocated; 6ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01241
01641
16241
043741
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
5 → 32
Calls
Call 1
Inputs
(fma.f64 y x #s(approx (+ (/ x 2) z) z))
#s(approx (+ (/ x 2) z) z)
(fma.f64 y x #s(approx (+ (/ x 2) z) (*.f64 #s(literal 1/2 binary64) x)))
#s(approx (+ (/ x 2) z) (*.f64 #s(literal 1/2 binary64) x))
(*.f64 #s(literal 1/2 binary64) x)
Outputs
(/.f64 (-.f64 (pow.f64 #s(approx (+ (/ x 2) z) z) #s(literal 2 binary64)) (pow.f64 (*.f64 x y) #s(literal 2 binary64))) (-.f64 #s(approx (+ (/ x 2) z) z) (*.f64 x y)))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 x y) #s(literal 2 binary64)) (pow.f64 #s(approx (+ (/ x 2) z) z) #s(literal 2 binary64)))) (neg.f64 (-.f64 (*.f64 x y) #s(approx (+ (/ x 2) z) z))))
(/.f64 (neg.f64 (+.f64 (pow.f64 #s(approx (+ (/ x 2) z) z) #s(literal 3 binary64)) (pow.f64 (*.f64 x y) #s(literal 3 binary64)))) (neg.f64 (fma.f64 #s(approx (+ (/ x 2) z) z) (-.f64 #s(approx (+ (/ x 2) z) z) (*.f64 x y)) (pow.f64 (*.f64 x y) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 x y) #s(literal 2 binary64)) (pow.f64 #s(approx (+ (/ x 2) z) z) #s(literal 2 binary64))) (-.f64 (*.f64 x y) #s(approx (+ (/ x 2) z) z)))
(/.f64 (+.f64 (pow.f64 #s(approx (+ (/ x 2) z) z) #s(literal 3 binary64)) (pow.f64 (*.f64 x y) #s(literal 3 binary64))) (fma.f64 #s(approx (+ (/ x 2) z) z) #s(approx (+ (/ x 2) z) z) (-.f64 (pow.f64 (*.f64 x y) #s(literal 2 binary64)) (*.f64 (*.f64 x y) #s(approx (+ (/ x 2) z) z)))))
(/.f64 (+.f64 (pow.f64 #s(approx (+ (/ x 2) z) z) #s(literal 3 binary64)) (pow.f64 (*.f64 x y) #s(literal 3 binary64))) (fma.f64 #s(approx (+ (/ x 2) z) z) (-.f64 #s(approx (+ (/ x 2) z) z) (*.f64 x y)) (pow.f64 (*.f64 x y) #s(literal 2 binary64))))
(fma.f64 x y #s(approx (+ (/ x 2) z) z))
(fma.f64 y x #s(approx (+ (/ x 2) z) z))
(-.f64 (/.f64 (pow.f64 (*.f64 x y) #s(literal 2 binary64)) (-.f64 (*.f64 x y) #s(approx (+ (/ x 2) z) z))) (/.f64 (pow.f64 #s(approx (+ (/ x 2) z) z) #s(literal 2 binary64)) (-.f64 (*.f64 x y) #s(approx (+ (/ x 2) z) z))))
(-.f64 #s(approx (+ (/ x 2) z) z) (*.f64 (neg.f64 x) y))
(-.f64 #s(approx (+ (/ x 2) z) z) (*.f64 (neg.f64 y) x))
(+.f64 (/.f64 (pow.f64 (*.f64 x y) #s(literal 3 binary64)) (fma.f64 #s(approx (+ (/ x 2) z) z) (-.f64 #s(approx (+ (/ x 2) z) z) (*.f64 x y)) (pow.f64 (*.f64 x y) #s(literal 2 binary64)))) (/.f64 (pow.f64 #s(approx (+ (/ x 2) z) z) #s(literal 3 binary64)) (fma.f64 #s(approx (+ (/ x 2) z) z) (-.f64 #s(approx (+ (/ x 2) z) z) (*.f64 x y)) (pow.f64 (*.f64 x y) #s(literal 2 binary64)))))
(+.f64 (*.f64 x y) #s(approx (+ (/ x 2) z) z))
(+.f64 #s(approx (+ (/ x 2) z) z) (*.f64 x y))
#s(approx (+ (/ x 2) z) z)
(/.f64 (-.f64 (pow.f64 #s(approx (+ (/ x 2) z) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) (pow.f64 (*.f64 x y) #s(literal 2 binary64))) (-.f64 #s(approx (+ (/ x 2) z) (*.f64 #s(literal 1/2 binary64) x)) (*.f64 x y)))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 x y) #s(literal 2 binary64)) (pow.f64 #s(approx (+ (/ x 2) z) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)))) (neg.f64 (-.f64 (*.f64 x y) #s(approx (+ (/ x 2) z) (*.f64 #s(literal 1/2 binary64) x)))))
(/.f64 (neg.f64 (+.f64 (pow.f64 #s(approx (+ (/ x 2) z) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 3 binary64)) (pow.f64 (*.f64 x y) #s(literal 3 binary64)))) (neg.f64 (fma.f64 #s(approx (+ (/ x 2) z) (*.f64 #s(literal 1/2 binary64) x)) (-.f64 #s(approx (+ (/ x 2) z) (*.f64 #s(literal 1/2 binary64) x)) (*.f64 x y)) (pow.f64 (*.f64 x y) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 x y) #s(literal 2 binary64)) (pow.f64 #s(approx (+ (/ x 2) z) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64))) (-.f64 (*.f64 x y) #s(approx (+ (/ x 2) z) (*.f64 #s(literal 1/2 binary64) x))))
(/.f64 (+.f64 (pow.f64 #s(approx (+ (/ x 2) z) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 3 binary64)) (pow.f64 (*.f64 x y) #s(literal 3 binary64))) (+.f64 (pow.f64 #s(approx (+ (/ x 2) z) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) (-.f64 (pow.f64 (*.f64 x y) #s(literal 2 binary64)) (*.f64 (*.f64 x y) #s(approx (+ (/ x 2) z) (*.f64 #s(literal 1/2 binary64) x))))))
(/.f64 (+.f64 (pow.f64 #s(approx (+ (/ x 2) z) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 3 binary64)) (pow.f64 (*.f64 x y) #s(literal 3 binary64))) (fma.f64 #s(approx (+ (/ x 2) z) (*.f64 #s(literal 1/2 binary64) x)) (-.f64 #s(approx (+ (/ x 2) z) (*.f64 #s(literal 1/2 binary64) x)) (*.f64 x y)) (pow.f64 (*.f64 x y) #s(literal 2 binary64))))
(fma.f64 x y #s(approx (+ (/ x 2) z) (*.f64 #s(literal 1/2 binary64) x)))
(fma.f64 y x #s(approx (+ (/ x 2) z) (*.f64 #s(literal 1/2 binary64) x)))
(-.f64 (/.f64 (pow.f64 (*.f64 x y) #s(literal 2 binary64)) (-.f64 (*.f64 x y) #s(approx (+ (/ x 2) z) (*.f64 #s(literal 1/2 binary64) x)))) (/.f64 (pow.f64 #s(approx (+ (/ x 2) z) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) (-.f64 (*.f64 x y) #s(approx (+ (/ x 2) z) (*.f64 #s(literal 1/2 binary64) x)))))
(-.f64 #s(approx (+ (/ x 2) z) (*.f64 #s(literal 1/2 binary64) x)) (*.f64 (neg.f64 x) y))
(-.f64 #s(approx (+ (/ x 2) z) (*.f64 #s(literal 1/2 binary64) x)) (*.f64 (neg.f64 y) x))
(+.f64 (/.f64 (pow.f64 (*.f64 x y) #s(literal 3 binary64)) (fma.f64 #s(approx (+ (/ x 2) z) (*.f64 #s(literal 1/2 binary64) x)) (-.f64 #s(approx (+ (/ x 2) z) (*.f64 #s(literal 1/2 binary64) x)) (*.f64 x y)) (pow.f64 (*.f64 x y) #s(literal 2 binary64)))) (/.f64 (pow.f64 #s(approx (+ (/ x 2) z) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 3 binary64)) (fma.f64 #s(approx (+ (/ x 2) z) (*.f64 #s(literal 1/2 binary64) x)) (-.f64 #s(approx (+ (/ x 2) z) (*.f64 #s(literal 1/2 binary64) x)) (*.f64 x y)) (pow.f64 (*.f64 x y) #s(literal 2 binary64)))))
(+.f64 (*.f64 x y) #s(approx (+ (/ x 2) z) (*.f64 #s(literal 1/2 binary64) x)))
(+.f64 #s(approx (+ (/ x 2) z) (*.f64 #s(literal 1/2 binary64) x)) (*.f64 x y))
#s(approx (+ (/ x 2) z) (*.f64 #s(literal 1/2 binary64) x))
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 x #s(literal 1/2 binary64))

eval4.0ms (0%)

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

Compiled 963 to 107 computations (88.9% saved)

prune5.0ms (0.1%)

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

8 alts after pruning (0 fresh and 8 done)

PrunedKeptTotal
New39039
Fresh000
Picked022
Done066
Total39847
Accuracy
100.0%
Counts
47 → 8
Alt Table
Click to see full alt table
StatusAccuracyProgram
59.0%
(fma.f64 y x #s(approx (+ (/ x 2) z) (*.f64 #s(literal 1/2 binary64) x)))
74.9%
(fma.f64 y x #s(approx (+ (/ x 2) z) z))
100.0%
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
66.2%
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 #s(literal 1/2 binary64) x z))
59.0%
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
25.7%
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 #s(approx (- y -1/2) #s(literal 1/2 binary64)) x))
36.0%
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x))
41.5%
#s(approx (+ (+ (/ x 2) (* y x)) z) z)
Compiler

Compiled 263 to 128 computations (51.3% saved)

regimes26.0ms (0.3%)

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

5 calls:

8.0ms
(+.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) z)
6.0ms
(+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x))
4.0ms
z
4.0ms
x
4.0ms
y
Results
AccuracySegmentsBranch
100.0%1(+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x))
100.0%1(+.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) z)
100.0%1x
100.0%1y
100.0%1z
Compiler

Compiled 19 to 24 computations (-26.3% saved)

regimes16.0ms (0.2%)

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

5 calls:

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

Compiled 19 to 24 computations (-26.3% saved)

regimes25.0ms (0.3%)

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

5 calls:

14.0ms
(+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x))
3.0ms
z
3.0ms
x
3.0ms
y
2.0ms
(+.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) z)
Results
AccuracySegmentsBranch
88.5%3(+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x))
81.8%3(+.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) z)
88.6%4x
99.1%3y
84.2%3z
Compiler

Compiled 19 to 24 computations (-26.3% saved)

regimes4.0ms (0%)

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

2 calls:

2.0ms
y
2.0ms
(+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x))
Results
AccuracySegmentsBranch
81.4%3(+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x))
87.6%3y
Compiler

Compiled 8 to 10 computations (-25% saved)

regimes8.0ms (0.1%)

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

5 calls:

2.0ms
z
2.0ms
y
1.0ms
x
1.0ms
(+.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) z)
1.0ms
(+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x))
Results
AccuracySegmentsBranch
64.6%3(+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x))
57.2%3(+.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) z)
55.5%3z
60.7%3x
67.1%5y
Compiler

Compiled 19 to 24 computations (-26.3% saved)

regimes5.0ms (0.1%)

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

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

Counts
1 → 1
Calls
Call 1
Inputs
#s(approx (+ (+ (/ x 2) (* y x)) z) z)
Outputs
#s(approx (+ (+ (/ x 2) (* y x)) z) z)
Calls

5 calls:

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

Compiled 19 to 24 computations (-26.3% saved)

bsearch64.0ms (0.8%)

Memory
-27.0MiB live, 59.9MiB allocated; 9ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
34.0ms
7.104538969319806e-7
763.0530455208568
27.0ms
-599059466610502.4
-26.080381785319993
Samples
36.0ms304×0valid
Compiler

Compiled 468 to 413 computations (11.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 29.0ms
ival-add: 24.0ms (82.7% of total)
ival-div: 2.0ms (6.9% of total)
ival-mult: 2.0ms (6.9% 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)

bsearch34.0ms (0.4%)

Memory
0.9MiB live, 46.0MiB allocated; 21ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
22.0ms
3.3776417286645475e+70
9.042548497749028e+70
10.0ms
-6.181893582304909e+26
-2.568353362529162e+25
Samples
10.0ms192×0valid
Compiler

Compiled 336 to 290 computations (13.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 5.0ms
ival-add: 2.0ms (39% of total)
ival-div: 1.0ms (19.5% of total)
ival-mult: 1.0ms (19.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)

bsearch1.0ms (0%)

Memory
1.7MiB live, 1.7MiB allocated; 0ms collecting garbage
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
3.2275890751294594e+156
2.0891412041266474e+169
0.0ms
-1.1547911744247482e+130
-3.3480559893564593e+128
Compiler

Compiled 12 to 14 computations (-16.7% saved)

simplify54.0ms (0.7%)

Memory
13.3MiB live, 54.6MiB allocated; 18ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
044153
166153
289153
3115153
4166153
5496153
63619153
Stop Event
node limit
Calls
Call 1
Inputs
(fma.f64 y x (+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z))
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
(if (<=.f64 y #s(literal -53/2 binary64)) (fma.f64 y x #s(approx (+ (/ x 2) z) z)) (if (<=.f64 y #s(literal 1/2 binary64)) #s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 #s(literal 1/2 binary64) x z)) (fma.f64 y x #s(approx (+ (/ x 2) z) z))))
(if (<=.f64 y #s(literal -61999999999999995738587136 binary64)) #s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x)) (if (<=.f64 y #s(literal 43000000000000000820108453106923822887289558889336668659174353410195456 binary64)) #s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 #s(literal 1/2 binary64) x z)) #s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x))))
(if (<=.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) #s(literal -10000000000000000597830782460516151851749290252338090708736359498322008205751130936310560341066601403445681992244323541365884452864 binary64)) #s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x)) (if (<=.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) #s(literal 4999999999999999916795901115958608572801861375087352681835038072302342087505062772657389384729693708756186941721815525337672536740822868667327551851630428160 binary64)) #s(approx (+ (+ (/ x 2) (* y x)) z) z) #s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x))))
#s(approx (+ (+ (/ x 2) (* y x)) z) z)
Outputs
(fma.f64 y x (+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z))
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
(if (<=.f64 y #s(literal -53/2 binary64)) (fma.f64 y x #s(approx (+ (/ x 2) z) z)) (if (<=.f64 y #s(literal 1/2 binary64)) #s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 #s(literal 1/2 binary64) x z)) (fma.f64 y x #s(approx (+ (/ x 2) z) z))))
(if (or (<=.f64 y #s(literal -53/2 binary64)) (not (<=.f64 y #s(literal 1/2 binary64)))) (fma.f64 y x #s(approx (+ (/ x 2) z) z)) #s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 #s(literal 1/2 binary64) x z)))
(if (<=.f64 y #s(literal -61999999999999995738587136 binary64)) #s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x)) (if (<=.f64 y #s(literal 43000000000000000820108453106923822887289558889336668659174353410195456 binary64)) #s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 #s(literal 1/2 binary64) x z)) #s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x))))
(if (or (<=.f64 y #s(literal -61999999999999995738587136 binary64)) (not (<=.f64 y #s(literal 43000000000000000820108453106923822887289558889336668659174353410195456 binary64)))) #s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x)) #s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 #s(literal 1/2 binary64) x z)))
(if (<=.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) #s(literal -10000000000000000597830782460516151851749290252338090708736359498322008205751130936310560341066601403445681992244323541365884452864 binary64)) #s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x)) (if (<=.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) #s(literal 4999999999999999916795901115958608572801861375087352681835038072302342087505062772657389384729693708756186941721815525337672536740822868667327551851630428160 binary64)) #s(approx (+ (+ (/ x 2) (* y x)) z) z) #s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x))))
(if (or (<=.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) #s(literal -10000000000000000597830782460516151851749290252338090708736359498322008205751130936310560341066601403445681992244323541365884452864 binary64)) (not (<=.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) #s(literal 4999999999999999916795901115958608572801861375087352681835038072302342087505062772657389384729693708756186941721815525337672536740822868667327551851630428160 binary64)))) #s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x)) #s(approx (+ (+ (/ x 2) (* y x)) z) z))
#s(approx (+ (+ (/ x 2) (* y x)) z) z)

derivations453.0ms (5.5%)

Memory
-17.0MiB live, 278.9MiB allocated; 48ms collecting garbage
Stop Event
done
Compiler

Compiled 153 to 48 computations (68.6% saved)

preprocess34.0ms (0.4%)

Memory
11.0MiB live, 58.8MiB allocated; 13ms collecting garbage
Compiler

Compiled 324 to 112 computations (65.4% saved)

end0.0ms (0%)

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

Profiling

Loading profile data...