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

Time bar (total: 8.0s)

start0.0ms (0%)

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

analyze0.0ms (0%)

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

Compiled 11 to 10 computations (9.1% saved)

sample978.0ms (12.2%)

Memory
49.8MiB live, 1 126.6MiB allocated; 196ms collecting garbage
Samples
694.0ms8 255×0valid
0.0ms1valid
Precisions
Click to see histograms. Total time spent on operations: 377.0ms
ival-div: 157.0ms (41.6% of total)
ival-add: 147.0ms (38.9% of total)
ival-mult: 56.0ms (14.8% of total)
ival-true: 6.0ms (1.6% of total)
exact: 6.0ms (1.6% of total)
ival-assert: 3.0ms (0.8% of total)
adjust: 2.0ms (0.5% of total)
Bogosity

explain112.0ms (1.4%)

Memory
-7.4MiB live, 148.4MiB allocated; 20ms 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
27.0ms512×0valid
Compiler

Compiled 65 to 28 computations (56.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 13.0ms
ival-add: 5.0ms (38.7% of total)
ival-mult: 4.0ms (31% of total)
ival-div: 3.0ms (23.2% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess237.0ms (3%)

Memory
-7.3MiB live, 132.5MiB allocated; 9ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03288
18884
221684
333284
445884
572081
6216581
7517481
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.1MiB live, 0.1MiB allocated; 0ms collecting garbage
Compiler

Compiled 0 to 3 computations (-∞% saved)

prune0.0ms (0%)

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

series8.0ms (0.1%)

Memory
11.8MiB live, 11.8MiB allocated; 0ms collecting garbage
Counts
8 → 26
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
#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 x #s(hole binary64 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 y #s(hole binary64 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 z #s(hole binary64 z))
#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) x 2 (* y x) y z)
1.0ms
y
@-inf
((+ (+ (/ x 2) (* y x)) z) (+ (/ x 2) (* y x)) (/ x 2) x 2 (* y x) y z)
1.0ms
x
@-inf
((+ (+ (/ x 2) (* y x)) z) (+ (/ x 2) (* y x)) (/ x 2) x 2 (* y x) y z)
1.0ms
x
@0
((+ (+ (/ x 2) (* y x)) z) (+ (/ x 2) (* y x)) (/ x 2) x 2 (* y x) y z)
1.0ms
y
@inf
((+ (+ (/ x 2) (* y x)) z) (+ (/ x 2) (* y x)) (/ x 2) x 2 (* y x) y z)

simplify143.0ms (1.8%)

Memory
-14.3MiB live, 126.1MiB allocated; 11ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
088334
1236334
2676334
32515292
47510292
08022271
Stop Event
iter limit
node limit
Counts
26 → 26
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 x #s(hole binary64 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 y #s(hole binary64 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 z #s(hole binary64 z))
#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 x #s(hole binary64 x))
#s(approx x 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 y #s(hole binary64 y))
#s(approx y y)
#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 z #s(hole binary64 z))
#s(approx z z)
#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))

rewrite42.0ms (0.5%)

Memory
8.4MiB live, 54.6MiB allocated; 4ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0826
01226
15126
041824
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
8 → 47
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 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)))
x
#s(literal 2 binary64)
(*.f64 y x)
(*.f64 x y)
y
z

eval6.0ms (0.1%)

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

Compiled 1 038 to 190 computations (81.7% saved)

prune15.0ms (0.2%)

Memory
-26.0MiB live, 24.0MiB allocated; 7ms collecting garbage
Pruning

7 alts after pruning (7 fresh and 0 done)

PrunedKeptTotal
New56763
Fresh000
Picked101
Done000
Total57764
Accuracy
100.0%
Counts
64 → 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)
76.0%
(+.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))
70.2%
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 #s(literal 1/2 binary64) x z))
55.5%
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
32.1%
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x))
46.3%
#s(approx (+ (+ (/ x 2) (* y x)) z) z)
Compiler

Compiled 190 to 150 computations (21.1% saved)

series9.0ms (0.1%)

Memory
20.5MiB live, 20.5MiB allocated; 0ms collecting garbage
Counts
17 → 44
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)
#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))
(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))
#s(literal -1/2 binary64)
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 (* 1/2 x) #s(hole binary64 (* 1/2 x)))
#s(approx x #s(hole binary64 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)) 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 (+ (* 1/2 x) 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 (+ (/ 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 #s(hole binary64 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)) 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 (* (- 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)) 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 -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 z #s(hole binary64 z))
#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
2.0ms
x
@-inf
((+ (+ (/ x 2) (* y x)) z) (+ (/ x 2) (* y x)) (/ x 2) (* 1/2 x) 1/2 x (* y x) y z (+ (+ (/ x 2) (* y x)) z) (+ (+ (/ x 2) (* y x)) z) (+ (+ (/ x 2) (* y x)) z) (+ (* 1/2 x) z) (+ (+ (/ x 2) (* y x)) z) (* (- y -1/2) x) (- y -1/2) -1/2)
1.0ms
x
@inf
((+ (+ (/ x 2) (* y x)) z) (+ (/ x 2) (* y x)) (/ x 2) (* 1/2 x) 1/2 x (* y x) y z (+ (+ (/ x 2) (* y x)) z) (+ (+ (/ x 2) (* y x)) z) (+ (+ (/ x 2) (* y x)) z) (+ (* 1/2 x) z) (+ (+ (/ x 2) (* y x)) z) (* (- y -1/2) x) (- y -1/2) -1/2)
1.0ms
y
@-inf
((+ (+ (/ x 2) (* y x)) z) (+ (/ x 2) (* y x)) (/ x 2) (* 1/2 x) 1/2 x (* y x) y z (+ (+ (/ x 2) (* y x)) z) (+ (+ (/ x 2) (* y x)) z) (+ (+ (/ x 2) (* y x)) z) (+ (* 1/2 x) z) (+ (+ (/ x 2) (* y x)) z) (* (- y -1/2) x) (- y -1/2) -1/2)
1.0ms
x
@0
((+ (+ (/ x 2) (* y x)) z) (+ (/ x 2) (* y x)) (/ x 2) (* 1/2 x) 1/2 x (* y x) y z (+ (+ (/ x 2) (* y x)) z) (+ (+ (/ x 2) (* y x)) z) (+ (+ (/ x 2) (* y x)) z) (+ (* 1/2 x) z) (+ (+ (/ x 2) (* y x)) z) (* (- y -1/2) x) (- y -1/2) -1/2)
1.0ms
y
@inf
((+ (+ (/ x 2) (* y x)) z) (+ (/ x 2) (* y x)) (/ x 2) (* 1/2 x) 1/2 x (* y x) y z (+ (+ (/ x 2) (* y x)) z) (+ (+ (/ x 2) (* y x)) z) (+ (+ (/ x 2) (* y x)) z) (+ (* 1/2 x) z) (+ (+ (/ x 2) (* y x)) z) (* (- y -1/2) x) (- y -1/2) -1/2)

simplify116.0ms (1.4%)

Memory
13.3MiB live, 152.1MiB allocated; 9ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0124494
1312494
2859494
33024494
45782494
08020452
Stop Event
iter limit
node limit
Counts
44 → 44
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 (* 1/2 x) #s(hole binary64 (* 1/2 x)))
#s(approx x #s(hole binary64 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)) 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 (+ (* 1/2 x) 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 (+ (/ 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 #s(hole binary64 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)) 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 (* (- 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)) 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 -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 z #s(hole binary64 z))
#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)) 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 (* 1/2 x) #s(hole binary64 (* 1/2 x)))
#s(approx (* 1/2 x) (*.f64 #s(literal 1/2 binary64) x))
#s(approx x #s(hole binary64 x))
#s(approx x 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)) 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 (+ (/ 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 (+ (* 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)) 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 y #s(hole binary64 y))
#s(approx y y)
#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)) 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 (* (- 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)) 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 (* (- 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 z #s(hole binary64 z))
#s(approx z z)
#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))

rewrite80.0ms (1%)

Memory
1.0MiB live, 123.1MiB allocated; 35ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
022107
029107
1119107
0943101
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
17 → 77
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)
#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))
(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))
#s(literal -1/2 binary64)
Outputs
(/.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))
(/.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))
#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(literal 1/2 binary64)
x
(*.f64 y x)
(*.f64 x y)
y
z
#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) (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))
#s(literal -1/2 binary64)

eval4.9s (61%)

Memory
-395.7MiB live, 428.7MiB allocated; 4.9s collecting garbage
Compiler

Compiled 2 413 to 318 computations (86.8% saved)

prune6.0ms (0.1%)

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

8 alts after pruning (4 fresh and 4 done)

PrunedKeptTotal
New1132115
Fresh022
Picked145
Done000
Total1148122
Accuracy
100.0%
Counts
122 → 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))
76.0%
(+.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))
70.2%
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 #s(literal 1/2 binary64) x z))
55.5%
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
26.0%
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 #s(approx (- y -1/2) #s(literal 1/2 binary64)) x))
32.1%
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x))
46.3%
#s(approx (+ (+ (/ x 2) (* y x)) z) z)
Compiler

Compiled 111 to 88 computations (20.7% saved)

series9.0ms (0.1%)

Memory
14.9MiB live, 14.9MiB allocated; 0ms collecting garbage
Counts
18 → 70
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)
z
(+.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 x #s(hole binary64 x))
#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 y #s(hole binary64 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 z #s(hole binary64 z))
#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
2.0ms
x
@-inf
((+ (+ (/ x 2) (* y x)) z) (* (- y -1/2) x) (- y -1/2) 1/2 x (+ (+ (/ x 2) (* y x)) z) (+ (* (- y -1/2) x) z) (- y -1/2) y -1/2 z (+ (+ (/ 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
@inf
((+ (+ (/ x 2) (* y x)) z) (* (- y -1/2) x) (- y -1/2) 1/2 x (+ (+ (/ x 2) (* y x)) z) (+ (* (- y -1/2) x) z) (- y -1/2) y -1/2 z (+ (+ (/ 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) 1/2 x (+ (+ (/ x 2) (* y x)) z) (+ (* (- y -1/2) x) z) (- y -1/2) y -1/2 z (+ (+ (/ 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) 1/2 x (+ (+ (/ x 2) (* y x)) z) (+ (* (- y -1/2) x) z) (- y -1/2) y -1/2 z (+ (+ (/ 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) 1/2 x (+ (+ (/ x 2) (* y x)) z) (+ (* (- y -1/2) x) z) (- y -1/2) y -1/2 z (+ (+ (/ x 2) (* y x)) z) (+ (/ x 2) (* y x)) (* y x) (+ (* y x) (+ (/ x 2) z)) (+ (/ x 2) z) (/ x 2) (* 1/2 x))

simplify156.0ms (1.9%)

Memory
-10.1MiB live, 188.2MiB allocated; 12ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0163880
1388880
21042880
33361880
46098880
08039801
Stop Event
iter limit
node limit
Counts
70 → 70
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 x #s(hole binary64 x))
#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 y #s(hole binary64 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 z #s(hole binary64 z))
#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 x #s(hole binary64 x))
#s(approx x 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 y #s(hole binary64 y))
#s(approx y y)
#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 z #s(hole binary64 z))
#s(approx z 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 (+ (+ (/ 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))

rewrite61.0ms (0.8%)

Memory
-6.2MiB live, 93.0MiB allocated; 3ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
024117
033117
1135117
01048113
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
18 → 77
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)
z
(+.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(literal 1/2 binary64)
x
#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))
y
#s(literal -1/2 binary64)
z
(/.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))

eval17.0ms (0.2%)

Memory
-4.5MiB live, 41.4MiB allocated; 3ms collecting garbage
Compiler

Compiled 2 746 to 321 computations (88.3% saved)

prune16.0ms (0.2%)

Memory
-22.1MiB live, 24.0MiB allocated; 3ms collecting garbage
Pruning

8 alts after pruning (2 fresh and 6 done)

PrunedKeptTotal
New1172119
Fresh000
Picked224
Done044
Total1198127
Accuracy
100.0%
Counts
127 → 8
Alt Table
Click to see full alt table
StatusAccuracyProgram
55.5%
(fma.f64 y x #s(approx (+ (/ x 2) z) (*.f64 #s(literal 1/2 binary64) x)))
76.0%
(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))
70.2%
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 #s(literal 1/2 binary64) x z))
55.5%
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
26.0%
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 #s(approx (- y -1/2) #s(literal 1/2 binary64)) x))
32.1%
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x))
46.3%
#s(approx (+ (+ (/ x 2) (* y x)) z) z)
Compiler

Compiled 108 to 86 computations (20.4% saved)

series5.0ms (0.1%)

Memory
18.3MiB live, 18.3MiB allocated; 0ms collecting garbage
Counts
9 → 25
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)))
#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
#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 #s(hole binary64 x))
#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 #s(hole binary64 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 z #s(hole binary64 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 (+ (* 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)) y x (+ (/ x 2) z) z (+ (* y x) (+ (/ x 2) z)) (+ (/ x 2) z) (* 1/2 x) 1/2)
1.0ms
x
@inf
((+ (* y x) (+ (/ x 2) z)) y x (+ (/ x 2) z) z (+ (* y x) (+ (/ x 2) z)) (+ (/ x 2) z) (* 1/2 x) 1/2)
1.0ms
z
@-inf
((+ (* y x) (+ (/ x 2) z)) y x (+ (/ x 2) z) z (+ (* y x) (+ (/ x 2) z)) (+ (/ x 2) z) (* 1/2 x) 1/2)
0.0ms
y
@-inf
((+ (* y x) (+ (/ x 2) z)) y x (+ (/ x 2) z) z (+ (* y x) (+ (/ x 2) z)) (+ (/ x 2) z) (* 1/2 x) 1/2)
0.0ms
x
@0
((+ (* y x) (+ (/ x 2) z)) y x (+ (/ x 2) z) z (+ (* y x) (+ (/ x 2) z)) (+ (/ x 2) z) (* 1/2 x) 1/2)

simplify148.0ms (1.8%)

Memory
24.6MiB live, 206.1MiB allocated; 64ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
092307
1238307
2647307
32411279
08245244
Stop Event
iter limit
node limit
Counts
25 → 25
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 #s(hole binary64 x))
#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 #s(hole binary64 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 z #s(hole binary64 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 (+ (* 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 #s(hole binary64 x))
#s(approx x x)
#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 #s(hole binary64 y))
#s(approx y y)
#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 z #s(hole binary64 z))
#s(approx z 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 (+ (* 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))

rewrite78.0ms (1%)

Memory
-10.8MiB live, 91.6MiB allocated; 35ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01245
01645
16245
043745
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
9 → 36
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)))
#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
(/.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))
y
x
#s(approx (+ (/ x 2) z) 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))
#s(literal 1/2 binary64)

eval10.0ms (0.1%)

Memory
-31.6MiB live, 14.6MiB allocated; 5ms collecting garbage
Compiler

Compiled 1 119 to 119 computations (89.4% saved)

prune5.0ms (0.1%)

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

8 alts after pruning (0 fresh and 8 done)

PrunedKeptTotal
New52052
Fresh000
Picked022
Done066
Total52860
Accuracy
100.0%
Counts
60 → 8
Alt Table
Click to see full alt table
StatusAccuracyProgram
55.5%
(fma.f64 y x #s(approx (+ (/ x 2) z) (*.f64 #s(literal 1/2 binary64) x)))
76.0%
(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))
70.2%
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 #s(literal 1/2 binary64) x z))
55.5%
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
26.0%
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 #s(approx (- y -1/2) #s(literal 1/2 binary64)) x))
32.1%
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x))
46.3%
#s(approx (+ (+ (/ x 2) (* y x)) z) z)
Compiler

Compiled 263 to 128 computations (51.3% saved)

regimes22.0ms (0.3%)

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

5 calls:

6.0ms
x
4.0ms
z
4.0ms
(+.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) z)
4.0ms
y
4.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)

regimes29.0ms (0.4%)

Memory
-4.7MiB live, 45.7MiB allocated; 14ms collecting garbage
Counts
10 → 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))
Outputs
(fma.f64 y x (+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z))
Calls

5 calls:

15.0ms
(+.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) z)
3.0ms
z
3.0ms
x
3.0ms
(+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x))
3.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)

regimes17.0ms (0.2%)

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

5.0ms
(+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x))
3.0ms
z
3.0ms
x
3.0ms
y
3.0ms
(+.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) z)
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)

regimes13.0ms (0.2%)

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

3.0ms
z
3.0ms
x
2.0ms
(+.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) z)
2.0ms
y
2.0ms
(+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x))
Results
AccuracySegmentsBranch
89.1%4(+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x))
87.2%5(+.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) z)
86.4%3x
99.3%3y
86.4%3z
Compiler

Compiled 19 to 24 computations (-26.3% saved)

regimes2.0ms (0%)

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

1 calls:

2.0ms
y
Results
AccuracySegmentsBranch
88.1%3y
Compiler

Compiled 1 to 3 computations (-200% saved)

regimes11.0ms (0.1%)

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

5 calls:

4.0ms
(+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x))
2.0ms
z
2.0ms
x
2.0ms
y
1.0ms
(+.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) z)
Results
AccuracySegmentsBranch
58.3%3(+.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) z)
61.4%5x
60.2%4z
67.8%5(+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x))
67.9%5y
Compiler

Compiled 19 to 24 computations (-26.3% saved)

regimes3.0ms (0%)

Memory
7.7MiB live, 7.6MiB allocated; 0ms collecting garbage
Counts
2 → 3
Calls
Call 1
Inputs
#s(approx (+ (+ (/ x 2) (* y x)) z) z)
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y 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

2 calls:

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

Compiled 8 to 10 computations (-25% saved)

regimes6.0ms (0.1%)

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

Compiled 19 to 24 computations (-26.3% saved)

bsearch31.0ms (0.4%)

Memory
8.0MiB live, 53.8MiB allocated; 3ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
13.0ms
0.09101446931539846
281481259795188580.0
15.0ms
-4563263901101901.0
-25197893.070653327
Samples
17.0ms304×0valid
Compiler

Compiled 468 to 413 computations (11.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 10.0ms
ival-div: 4.0ms (40.3% of total)
ival-add: 3.0ms (30.2% of total)
ival-mult: 2.0ms (20.2% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

bsearch31.0ms (0.4%)

Memory
-2.6MiB live, 45.1MiB allocated; 10ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
12.0ms
1.3702982677528023e+197
3.112328951450826e+205
16.0ms
-4563263901101901.0
-25197893.070653327
Samples
18.0ms272×0valid
Compiler

Compiled 498 to 428 computations (14.1% saved)

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

bsearch53.0ms (0.7%)

Memory
-26.6MiB live, 61.9MiB allocated; 18ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
narrow-enough
narrow-enough
Steps
TimeLeftRight
12.0ms
1.35544434473723e+147
4.626102903140376e+154
15.0ms
3.0450602207437773e-30
0.005661540597291768
15.0ms
8.173587838317546e-158
3.5079250791733795e-156
1.0ms
-4563263901101901.0
-25197893.070653327
Samples
26.0ms432×0valid
Compiler

Compiled 948 to 842 computations (11.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 11.0ms
ival-add: 4.0ms (37.4% of total)
ival-div: 3.0ms (28% of total)
ival-mult: 3.0ms (28% 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)

bsearch2.0ms (0%)

Memory
2.6MiB live, 2.6MiB allocated; 0ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
1.0ms
1.35544434473723e+147
4.626102903140376e+154
1.0ms
-4563263901101901.0
-25197893.070653327
Compiler

Compiled 444 to 392 computations (11.7% saved)

simplify84.0ms (1.1%)

Memory
6.6MiB live, 50.7MiB allocated; 11ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
053235
175235
298235
3124235
4175235
5505235
63661235
Stop Event
node limit
Calls
Call 1
Inputs
(+.f64 (+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) (*.f64 y x)) z)
(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 -26000000 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 -650000000000000 binary64)) #s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x)) (if (<=.f64 y #s(literal 259999999999999987297256040620113433388118171990841634186131181154911304817498938765238085118480845930492761667945594674380654584514364820408529134083187803838029529997709050020208149993956241833984 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 y #s(literal -650000000000000 binary64)) #s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x)) (if (<=.f64 y #s(literal 4946608029462091/30916300184138066757562815127455898754391418637651479989257882011612153138316483396289550132655380623699708928252017417418920629288343901245943269387736645989575846518587392 binary64)) #s(approx (+ (+ (/ x 2) (* y x)) z) z) (if (<=.f64 y #s(literal 4867778304876401/20282409603651670423947251286016 binary64)) #s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 #s(approx (- y -1/2) #s(literal 1/2 binary64)) x)) (if (<=.f64 y #s(literal 1359999999999999962977045654745131796615420178269915189052985500196108524915158463327188879233232704016550365418533105428298767875961215215520972800 binary64)) #s(approx (+ (+ (/ x 2) (* y x)) z) z) #s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x))))))
(if (<=.f64 y #s(literal -650000000000000 binary64)) #s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x)) (if (<=.f64 y #s(literal 1359999999999999962977045654745131796615420178269915189052985500196108524915158463327188879233232704016550365418533105428298767875961215215520972800 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
(+.f64 (+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) (*.f64 y x)) z)
(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 -26000000 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 -26000000 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 -650000000000000 binary64)) #s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x)) (if (<=.f64 y #s(literal 259999999999999987297256040620113433388118171990841634186131181154911304817498938765238085118480845930492761667945594674380654584514364820408529134083187803838029529997709050020208149993956241833984 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 -650000000000000 binary64)) (not (<=.f64 y #s(literal 259999999999999987297256040620113433388118171990841634186131181154911304817498938765238085118480845930492761667945594674380654584514364820408529134083187803838029529997709050020208149993956241833984 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 y #s(literal -650000000000000 binary64)) #s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x)) (if (<=.f64 y #s(literal 4946608029462091/30916300184138066757562815127455898754391418637651479989257882011612153138316483396289550132655380623699708928252017417418920629288343901245943269387736645989575846518587392 binary64)) #s(approx (+ (+ (/ x 2) (* y x)) z) z) (if (<=.f64 y #s(literal 4867778304876401/20282409603651670423947251286016 binary64)) #s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 #s(approx (- y -1/2) #s(literal 1/2 binary64)) x)) (if (<=.f64 y #s(literal 1359999999999999962977045654745131796615420178269915189052985500196108524915158463327188879233232704016550365418533105428298767875961215215520972800 binary64)) #s(approx (+ (+ (/ x 2) (* y x)) z) z) #s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x))))))
(if (<=.f64 y #s(literal -650000000000000 binary64)) #s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x)) (if (<=.f64 y #s(literal 1359999999999999962977045654745131796615420178269915189052985500196108524915158463327188879233232704016550365418533105428298767875961215215520972800 binary64)) #s(approx (+ (+ (/ x 2) (* y x)) z) z) #s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x))))
(if (or (<=.f64 y #s(literal -650000000000000 binary64)) (not (<=.f64 y #s(literal 1359999999999999962977045654745131796615420178269915189052985500196108524915158463327188879233232704016550365418533105428298767875961215215520972800 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)

derivations516.0ms (6.4%)

Memory
16.4MiB live, 342.2MiB allocated; 94ms collecting garbage
Stop Event
done
Compiler

Compiled 235 to 58 computations (75.3% saved)

preprocess46.0ms (0.6%)

Memory
-5.4MiB live, 96.0MiB allocated; 14ms collecting garbage
Compiler

Compiled 488 to 132 computations (73% saved)

end0.0ms (0%)

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

Profiling

Loading profile data...