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

Time bar (total: 3.5s)

start0.0ms (0%)

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

analyze0.0ms (0%)

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

sample1.2s (33.5%)

Memory
8.2MiB live, 1 366.7MiB allocated; 362ms collecting garbage
Samples
784.0ms8 252×0valid
1.0ms2valid
Precisions
Click to see histograms. Total time spent on operations: 493.0ms
ival-add: 178.0ms (36.1% of total)
ival-mult: 154.0ms (31.3% of total)
ival-div: 144.0ms (29.2% of total)
ival-true: 6.0ms (1.2% of total)
exact: 5.0ms (1% of total)
ival-assert: 3.0ms (0.6% of total)
adjust: 2.0ms (0.4% of total)
Bogosity

explain131.0ms (3.8%)

Memory
19.5MiB live, 158.2MiB allocated; 15ms 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
41.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.3% of total)
ival-div: 4.0ms (30.7% of total)
ival-mult: 4.0ms (30.7% 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)

preprocess265.0ms (7.6%)

Memory
-17.7MiB live, 321.4MiB allocated; 55ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

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

Compiled 9 to 8 computations (11.1% saved)

eval0.0ms (0%)

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

Compiled 0 to 3 computations (-∞% saved)

prune0.0ms (0%)

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

series11.0ms (0.3%)

Memory
-10.1MiB live, 33.3MiB allocated; 5ms 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)

simplify116.0ms (3.3%)

Memory
-3.7MiB live, 193.3MiB allocated; 12ms 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 (1.2%)

Memory
35.9MiB live, 87.3MiB allocated; 5ms 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

eval9.0ms (0.3%)

Memory
-19.3MiB live, 24.1MiB allocated; 4ms collecting garbage
Compiler

Compiled 1 038 to 190 computations (81.7% saved)

prune5.0ms (0.1%)

Memory
16.8MiB live, 16.8MiB allocated; 0ms 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)
72.4%
(+.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))
63.3%
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 #s(literal 1/2 binary64) x z))
65.1%
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
38.7%
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x))
36.5%
#s(approx (+ (+ (/ x 2) (* y x)) z) z)
Compiler

Compiled 190 to 150 computations (21.1% saved)

series12.0ms (0.3%)

Memory
-15.0MiB live, 29.8MiB allocated; 4ms collecting garbage
Counts
15 → 47
Calls
Call 1
Inputs
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
(fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z)
(-.f64 y #s(literal -1/2 binary64))
y
#s(literal -1/2 binary64)
x
z
#s(approx (+ (+ (/ x 2) (* y x)) z) z)
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x))
(*.f64 y x)
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 #s(literal 1/2 binary64) x z))
(fma.f64 #s(literal 1/2 binary64) x z)
#s(literal 1/2 binary64)
#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)
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) z) #s(hole binary64 z))
#s(approx (+ (* (- y -1/2) x) z) #s(hole binary64 (+ z (* x (+ 1/2 y)))))
#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 (+ (* (- 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 (+ (* 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 (+ (* (- y -1/2) x) z) #s(hole binary64 (* -1 (* x (+ (* -1 (+ 1/2 y)) (* -1 (/ z x)))))))
#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 (+ (* (- 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 -1/2) #s(hole binary64 1/2))
#s(approx (- y -1/2) #s(hole binary64 (+ 1/2 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 (+ (+ (/ 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) 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 (- 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) #s(hole binary64 (* x y)))
#s(approx (* (- y -1/2) 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 (+ (* (- y -1/2) x) z) #s(hole binary64 (* -1 (* y (+ (* -1 x) (* -1 (/ (+ z (* 1/2 x)) y)))))))
#s(approx (* (- y -1/2) x) #s(hole binary64 (* -1 (* y (+ (* -1 x) (* -1/2 (/ x y)))))))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (+ (* 1/2 x) (* x y))))
#s(approx 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 (+ (* (- y -1/2) x) z) #s(hole binary64 (* z (+ 1 (/ (* x (+ 1/2 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 (+ (* (- y -1/2) x) z) #s(hole binary64 (* -1 (* z (- (* -1 (/ (* x (+ 1/2 y)) z)) 1)))))
#s(approx (+ (* 1/2 x) z) #s(hole binary64 (* -1 (* z (- (* -1/2 (/ x z)) 1)))))
Calls

9 calls:

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

simplify230.0ms (6.6%)

Memory
28.3MiB live, 171.6MiB allocated; 163ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0139559
1364559
21015559
33335559
46104559
08045503
Stop Event
iter limit
node limit
Counts
47 → 47
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) z) #s(hole binary64 z))
#s(approx (+ (* (- y -1/2) x) z) #s(hole binary64 (+ z (* x (+ 1/2 y)))))
#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 (+ (* (- 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 (+ (* 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 (+ (* (- y -1/2) x) z) #s(hole binary64 (* -1 (* x (+ (* -1 (+ 1/2 y)) (* -1 (/ z x)))))))
#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 (+ (* (- 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 -1/2) #s(hole binary64 1/2))
#s(approx (- y -1/2) #s(hole binary64 (+ 1/2 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 (+ (+ (/ 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) 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 (- 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) #s(hole binary64 (* x y)))
#s(approx (* (- y -1/2) 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 (+ (* (- y -1/2) x) z) #s(hole binary64 (* -1 (* y (+ (* -1 x) (* -1 (/ (+ z (* 1/2 x)) y)))))))
#s(approx (* (- y -1/2) x) #s(hole binary64 (* -1 (* y (+ (* -1 x) (* -1/2 (/ x y)))))))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (+ (* 1/2 x) (* x y))))
#s(approx 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 (+ (* (- y -1/2) x) z) #s(hole binary64 (* z (+ 1 (/ (* x (+ 1/2 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 (+ (* (- y -1/2) x) z) #s(hole binary64 (* -1 (* z (- (* -1 (/ (* x (+ 1/2 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 (+ (* (- 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 #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 (+ (* (- 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 (+ (* 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 (+ (* (- 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 (+ (* 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 (+ (* (- 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 -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 #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 (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* x y)))
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* y (+ x (+ (* 1/2 (/ x y)) (/ z y))))))
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
#s(approx (+ (* (- y -1/2) x) 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 (- 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) #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 (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* -1 (* y (+ (* -1 x) (* -1 (/ (+ z (* 1/2 x)) y)))))))
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
#s(approx (+ (* (- y -1/2) x) 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 (* (- 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 (+ (* (- 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 (+ (* 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 (+ (* (- 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 (+ (* 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))

rewrite62.0ms (1.8%)

Memory
-11.4MiB live, 75.9MiB allocated; 23ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02095
02695
110395
078990
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
15 → 53
Calls
Call 1
Inputs
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
(fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z)
(-.f64 y #s(literal -1/2 binary64))
y
#s(literal -1/2 binary64)
x
z
#s(approx (+ (+ (/ x 2) (* y x)) z) z)
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x))
(*.f64 y x)
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 #s(literal 1/2 binary64) x z))
(fma.f64 #s(literal 1/2 binary64) x z)
#s(literal 1/2 binary64)
#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)
Outputs
#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)
x
z
#s(approx (+ (+ (/ x 2) (* y x)) z) z)
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x))
(*.f64 y x)
(*.f64 x y)
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 #s(literal 1/2 binary64) x z))
(/.f64 (-.f64 (*.f64 z z) (pow.f64 (*.f64 #s(literal 1/2 binary64) x) #s(literal 2 binary64))) (-.f64 z (*.f64 #s(literal 1/2 binary64) x)))
(/.f64 (neg.f64 (fma.f64 (*.f64 x x) #s(literal 1/4 binary64) (*.f64 (neg.f64 z) z))) (neg.f64 (-.f64 (*.f64 #s(literal 1/2 binary64) x) z)))
(/.f64 (neg.f64 (fma.f64 #s(literal 1/8 binary64) (pow.f64 x #s(literal 3 binary64)) (pow.f64 z #s(literal 3 binary64)))) (neg.f64 (fma.f64 (*.f64 x x) #s(literal 1/4 binary64) (*.f64 z (-.f64 z (*.f64 #s(literal 1/2 binary64) x))))))
(/.f64 (fma.f64 (*.f64 x x) #s(literal 1/4 binary64) (*.f64 (neg.f64 z) z)) (-.f64 (*.f64 #s(literal 1/2 binary64) x) z))
(/.f64 (fma.f64 #s(literal 1/8 binary64) (pow.f64 x #s(literal 3 binary64)) (pow.f64 z #s(literal 3 binary64))) (fma.f64 z z (-.f64 (pow.f64 (*.f64 #s(literal 1/2 binary64) x) #s(literal 2 binary64)) (*.f64 (*.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 (*.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 (*.f64 #s(literal 1/2 binary64) x) z)
(+.f64 z (*.f64 #s(literal 1/2 binary64) x))
#s(literal 1/2 binary64)
#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))))

eval9.0ms (0.3%)

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

Compiled 1 997 to 260 computations (87% saved)

prune14.0ms (0.4%)

Memory
-38.3MiB live, 17.8MiB allocated; 12ms collecting garbage
Pruning

8 alts after pruning (3 fresh and 5 done)

PrunedKeptTotal
New94296
Fresh112
Picked055
Done000
Total958103
Accuracy
100.0%
Counts
103 → 8
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)
100.0%
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
72.4%
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 #s(approx (- y -1/2) y) x z))
63.3%
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 #s(literal 1/2 binary64) x z))
65.1%
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
28.4%
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 #s(approx (- y -1/2) #s(literal 1/2 binary64)) x))
38.7%
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x))
36.5%
#s(approx (+ (+ (/ x 2) (* y x)) z) z)
Compiler

Compiled 117 to 92 computations (21.4% saved)

series7.0ms (0.2%)

Memory
16.4MiB live, 16.4MiB allocated; 0ms collecting garbage
Counts
15 → 49
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 #s(approx (- y -1/2) y) x z))
(fma.f64 #s(approx (- y -1/2) y) x z)
#s(approx (- y -1/2) y)
y
z
(+.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)
(*.f64 y x)
Outputs
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 z))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (+ z (* x (+ 1/2 y)))))
#s(approx (* (- 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 (/ x 2) #s(hole binary64 (* 1/2 x)))
#s(approx (* 1/2 x) #s(hole binary64 (* 1/2 x)))
#s(approx (* y x) #s(hole binary64 (* x y)))
#s(approx (+ (+ (/ 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 (+ (+ (/ 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 (+ (+ (/ 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 (+ (+ (/ 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 (+ (+ (/ 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 (+ (+ (/ 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 (+ (* (- y -1/2) x) z) #s(hole binary64 (* z (+ 1 (/ (* x (+ 1/2 y)) 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)))))
Calls

9 calls:

TimeVariablePointExpression
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 z (+ (+ (/ x 2) (* y x)) z) (+ (/ x 2) (* y x)) (/ x 2) (* 1/2 x) (* y 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 z (+ (+ (/ x 2) (* y x)) z) (+ (/ x 2) (* y x)) (/ x 2) (* 1/2 x) (* y 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 z (+ (+ (/ x 2) (* y x)) z) (+ (/ x 2) (* y x)) (/ x 2) (* 1/2 x) (* y 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 z (+ (+ (/ x 2) (* y x)) z) (+ (/ x 2) (* y x)) (/ x 2) (* 1/2 x) (* y 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 z (+ (+ (/ x 2) (* y x)) z) (+ (/ x 2) (* y x)) (/ x 2) (* 1/2 x) (* y x))

simplify181.0ms (5.2%)

Memory
-1.9MiB live, 130.4MiB allocated; 25ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0129589
1327589
2935589
33059589
45698589
08306538
Stop Event
iter limit
node limit
Counts
49 → 49
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 (/ x 2) #s(hole binary64 (* 1/2 x)))
#s(approx (* 1/2 x) #s(hole binary64 (* 1/2 x)))
#s(approx (* y x) #s(hole binary64 (* x y)))
#s(approx (+ (+ (/ 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 (+ (+ (/ 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 (+ (+ (/ 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 (+ (+ (/ 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 (+ (+ (/ 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 (+ (+ (/ 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 (+ (* (- y -1/2) x) z) #s(hole binary64 (* z (+ 1 (/ (* x (+ 1/2 y)) 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)))))
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 (* (- 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 (/ x 2) #s(hole binary64 (* 1/2 x)))
#s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))
#s(approx (* 1/2 x) #s(hole binary64 (* 1/2 x)))
#s(approx (* 1/2 x) (*.f64 #s(literal 1/2 binary64) x))
#s(approx (* y x) #s(hole binary64 (* x y)))
#s(approx (* y x) (*.f64 y x))
#s(approx (+ (+ (/ 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 (+ (* (- 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 (+ (+ (/ 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 (+ (* (- 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 (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (+ z (* 1/2 x))))
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 #s(literal 1/2 binary64) x z))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (+ z (+ (* 1/2 x) (* x y)))))
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
#s(approx (* (- y -1/2) x) #s(hole binary64 (* 1/2 x)))
#s(approx (* (- y -1/2) x) (*.f64 #s(literal 1/2 binary64) x))
#s(approx (* (- y -1/2) x) #s(hole binary64 (+ (* 1/2 x) (* x y))))
#s(approx (* (- y -1/2) x) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
#s(approx (- y -1/2) #s(hole binary64 1/2))
#s(approx (- y -1/2) #s(literal 1/2 binary64))
#s(approx (- y -1/2) #s(hole binary64 (+ 1/2 y)))
#s(approx (- y -1/2) (-.f64 y #s(literal -1/2 binary64)))
#s(approx (+ (* (- 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 (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* x y)))
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x))
#s(approx (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* y (+ x (+ (* 1/2 (/ x y)) (/ z y))))))
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
#s(approx (* (- y -1/2) x) #s(hole binary64 (* x y)))
#s(approx (* (- y -1/2) x) (*.f64 y x))
#s(approx (* (- y -1/2) x) #s(hole binary64 (* y (+ x (* 1/2 (/ x y))))))
#s(approx (* (- y -1/2) x) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
#s(approx (- y -1/2) #s(hole binary64 y))
#s(approx (- y -1/2) y)
#s(approx (- y -1/2) #s(hole binary64 (* y (+ 1 (* 1/2 (/ 1 y))))))
#s(approx (- y -1/2) (-.f64 y #s(literal -1/2 binary64)))
#s(approx (+ (* (- 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 (+ (+ (/ x 2) (* y x)) z) #s(hole binary64 (* -1 (* y (+ (* -1 x) (* -1 (/ (+ z (* 1/2 x)) y)))))))
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
#s(approx (* (- y -1/2) x) #s(hole binary64 (* -1 (* y (+ (* -1 x) (* -1/2 (/ x y)))))))
#s(approx (* (- y -1/2) x) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
#s(approx (+ (* (- 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 (+ (+ (/ 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 (+ (* (- 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 (+ (+ (/ 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 (+ (* (- 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))

rewrite59.0ms (1.7%)

Memory
17.1MiB live, 68.4MiB allocated; 15ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
022101
029101
1120101
093697
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
15 → 65
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 #s(approx (- y -1/2) y) x z))
(fma.f64 #s(approx (- y -1/2) y) x z)
#s(approx (- y -1/2) y)
y
z
(+.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)
(*.f64 y 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 #s(approx (- y -1/2) y) x z))
(/.f64 (-.f64 (*.f64 z z) (pow.f64 (*.f64 #s(approx (- y -1/2) y) x) #s(literal 2 binary64))) (-.f64 z (*.f64 #s(approx (- y -1/2) y) x)))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 #s(approx (- y -1/2) y) x) #s(literal 2 binary64)) (*.f64 z z))) (neg.f64 (-.f64 (*.f64 #s(approx (- y -1/2) y) x) z)))
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 #s(approx (- y -1/2) y) x) #s(literal 3 binary64)) (pow.f64 z #s(literal 3 binary64)))) (neg.f64 (fma.f64 z (-.f64 z (*.f64 #s(approx (- y -1/2) y) x)) (pow.f64 (*.f64 #s(approx (- y -1/2) y) x) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 #s(approx (- y -1/2) y) x) #s(literal 2 binary64)) (*.f64 z z)) (-.f64 (*.f64 #s(approx (- y -1/2) y) x) z))
(/.f64 (+.f64 (pow.f64 (*.f64 #s(approx (- y -1/2) y) x) #s(literal 3 binary64)) (pow.f64 z #s(literal 3 binary64))) (fma.f64 z z (-.f64 (pow.f64 (*.f64 #s(approx (- y -1/2) y) x) #s(literal 2 binary64)) (*.f64 (*.f64 #s(approx (- y -1/2) y) x) z))))
(/.f64 (+.f64 (pow.f64 (*.f64 #s(approx (- y -1/2) y) x) #s(literal 3 binary64)) (pow.f64 z #s(literal 3 binary64))) (fma.f64 z (-.f64 z (*.f64 #s(approx (- y -1/2) y) x)) (pow.f64 (*.f64 #s(approx (- y -1/2) y) x) #s(literal 2 binary64))))
(fma.f64 #s(approx (- y -1/2) y) x z)
(fma.f64 x #s(approx (- y -1/2) y) z)
(-.f64 (/.f64 (pow.f64 (*.f64 #s(approx (- y -1/2) y) x) #s(literal 2 binary64)) (-.f64 (*.f64 #s(approx (- y -1/2) y) x) z)) (/.f64 (*.f64 z z) (-.f64 (*.f64 #s(approx (- y -1/2) y) x) z)))
(-.f64 z (*.f64 (neg.f64 #s(approx (- y -1/2) y)) x))
(-.f64 z (*.f64 (neg.f64 x) #s(approx (- y -1/2) y)))
(+.f64 (/.f64 (pow.f64 (*.f64 #s(approx (- y -1/2) y) x) #s(literal 3 binary64)) (fma.f64 z (-.f64 z (*.f64 #s(approx (- y -1/2) y) x)) (pow.f64 (*.f64 #s(approx (- y -1/2) y) x) #s(literal 2 binary64)))) (/.f64 (pow.f64 z #s(literal 3 binary64)) (fma.f64 z (-.f64 z (*.f64 #s(approx (- y -1/2) y) x)) (pow.f64 (*.f64 #s(approx (- y -1/2) y) x) #s(literal 2 binary64)))))
(+.f64 (*.f64 #s(approx (- y -1/2) y) x) z)
(+.f64 z (*.f64 #s(approx (- y -1/2) y) x))
#s(approx (- y -1/2) y)
y
z
(/.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 (*.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 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 z #s(literal 3 binary64)) (pow.f64 (fma.f64 y x #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) #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 z #s(literal 3 binary64)) (pow.f64 (fma.f64 y x #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) #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 (fma.f64 y x #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) z))))
(/.f64 (+.f64 (pow.f64 z #s(literal 3 binary64)) (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))))
(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 (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 z (fma.f64 y x #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))))
(/.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 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 3 binary64)) (pow.f64 (*.f64 y 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 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 3 binary64)) (pow.f64 (*.f64 y 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 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 3 binary64)) (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))))
(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))
(*.f64 y x)
(*.f64 x y)

eval15.0ms (0.4%)

Memory
-20.1MiB live, 23.2MiB allocated; 12ms collecting garbage
Compiler

Compiled 2 259 to 266 computations (88.2% saved)

prune5.0ms (0.1%)

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

8 alts after pruning (1 fresh and 7 done)

PrunedKeptTotal
New97198
Fresh000
Picked123
Done055
Total988106
Accuracy
100.0%
Counts
106 → 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))
100.0%
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
72.4%
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 #s(approx (- y -1/2) y) x z))
63.3%
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 #s(literal 1/2 binary64) x z))
65.1%
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
28.4%
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 #s(approx (- y -1/2) #s(literal 1/2 binary64)) x))
38.7%
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x))
36.5%
#s(approx (+ (+ (/ x 2) (* y x)) z) z)
Compiler

Compiled 116 to 91 computations (21.6% saved)

series4.0ms (0.1%)

Memory
9.9MiB live, 9.9MiB allocated; 0ms collecting garbage
Counts
8 → 26
Calls
Call 1
Inputs
(fma.f64 y x (+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z))
y
x
(+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z)
#s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))
(*.f64 #s(literal 1/2 binary64) x)
#s(literal 1/2 binary64)
z
Outputs
#s(approx (+ (* 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 (/ x 2) #s(hole binary64 (* 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) (/ x 2) (* 1/2 x) 1/2 z)
1.0ms
x
@inf
((+ (* y x) (+ (/ x 2) z)) y x (+ (/ x 2) z) (/ x 2) (* 1/2 x) 1/2 z)
0.0ms
z
@-inf
((+ (* y x) (+ (/ x 2) z)) y x (+ (/ x 2) z) (/ x 2) (* 1/2 x) 1/2 z)
0.0ms
y
@-inf
((+ (* y x) (+ (/ x 2) z)) y x (+ (/ x 2) z) (/ x 2) (* 1/2 x) 1/2 z)
0.0ms
x
@0
((+ (* y x) (+ (/ x 2) z)) y x (+ (/ x 2) z) (/ x 2) (* 1/2 x) 1/2 z)

simplify144.0ms (4.1%)

Memory
7.2MiB live, 153.9MiB allocated; 34ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
093314
1239314
2648314
32415286
08334251
Stop Event
iter limit
node limit
Counts
26 → 26
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 (/ x 2) #s(hole binary64 (* 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 (/ 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 (/ x 2) (*.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))

rewrite53.0ms (1.5%)

Memory
-25.3MiB live, 113.9MiB allocated; 8ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01035
01435
15135
037535
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
8 → 37
Calls
Call 1
Inputs
(fma.f64 y x (+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z))
y
x
(+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z)
#s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))
(*.f64 #s(literal 1/2 binary64) x)
#s(literal 1/2 binary64)
z
Outputs
(/.f64 (-.f64 (*.f64 (fma.f64 x y #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 z z)) (-.f64 (fma.f64 x y #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) z))
(/.f64 (-.f64 (pow.f64 (+.f64 z #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) #s(literal 2 binary64)) (pow.f64 (*.f64 x y) #s(literal 2 binary64))) (-.f64 (+.f64 z #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) (*.f64 x y)))
(/.f64 (+.f64 (pow.f64 (fma.f64 x y #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 x y #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 z z) (*.f64 (fma.f64 x y #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) z))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 x y) #s(literal 2 binary64)) (pow.f64 (+.f64 z #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) #s(literal 2 binary64)))) (neg.f64 (-.f64 (-.f64 (*.f64 x y) z) #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (+.f64 z #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) #s(literal 3 binary64)) (pow.f64 (*.f64 x y) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (+.f64 z #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) (-.f64 (+.f64 z #s(approx (/ x 2) (*.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 (+.f64 z #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) #s(literal 2 binary64))) (-.f64 (-.f64 (*.f64 x y) z) #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))))
(/.f64 (+.f64 (pow.f64 (+.f64 z #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) #s(literal 3 binary64)) (pow.f64 (*.f64 x y) #s(literal 3 binary64))) (+.f64 (pow.f64 (+.f64 z #s(approx (/ x 2) (*.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) (+.f64 z #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)))))))
(/.f64 (+.f64 (pow.f64 (+.f64 z #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) #s(literal 3 binary64)) (pow.f64 (*.f64 x y) #s(literal 3 binary64))) (fma.f64 (+.f64 z #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) (-.f64 (+.f64 z #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) (*.f64 x y)) (pow.f64 (*.f64 x y) #s(literal 2 binary64))))
(fma.f64 x y (+.f64 z #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))))
(fma.f64 y x (+.f64 z #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))))
(-.f64 (/.f64 (pow.f64 (*.f64 x y) #s(literal 2 binary64)) (-.f64 (-.f64 (*.f64 x y) z) #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)))) (/.f64 (pow.f64 (+.f64 z #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) #s(literal 2 binary64)) (-.f64 (-.f64 (*.f64 x y) z) #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)))))
(-.f64 (+.f64 z #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) (*.f64 (neg.f64 x) y))
(-.f64 (+.f64 z #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) (*.f64 (neg.f64 y) x))
(+.f64 (fma.f64 x y z) #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)))
(+.f64 (/.f64 (pow.f64 (*.f64 x y) #s(literal 3 binary64)) (fma.f64 (+.f64 z #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) (-.f64 (+.f64 z #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) (*.f64 x y)) (pow.f64 (*.f64 x y) #s(literal 2 binary64)))) (/.f64 (pow.f64 (+.f64 z #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) #s(literal 3 binary64)) (fma.f64 (+.f64 z #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) (-.f64 (+.f64 z #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) (*.f64 x y)) (pow.f64 (*.f64 x y) #s(literal 2 binary64)))))
(+.f64 (fma.f64 x y #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) z)
(+.f64 (*.f64 x y) (+.f64 z #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))))
(+.f64 (+.f64 z #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))) (*.f64 x y))
(+.f64 z (fma.f64 x y #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))))
(+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) (+.f64 z (*.f64 x y)))
y
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 z #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 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 z #s(literal 3 binary64)) (pow.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) #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 z #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))))))
(/.f64 (+.f64 (pow.f64 z #s(literal 3 binary64)) (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 (/.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 z #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)))
(+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z)
#s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x))
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 x #s(literal 1/2 binary64))
#s(literal 1/2 binary64)
z

eval5.0ms (0.2%)

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

Compiled 1 146 to 142 computations (87.6% saved)

prune23.0ms (0.7%)

Memory
-46.2MiB live, 17.6MiB allocated; 26ms collecting garbage
Pruning

8 alts after pruning (1 fresh and 7 done)

PrunedKeptTotal
New49150
Fresh000
Picked101
Done077
Total50858
Accuracy
100.0%
Counts
58 → 8
Alt Table
Click to see full alt table
StatusAccuracyProgram
65.1%
(fma.f64 y x #s(approx (+ (/ x 2) z) (*.f64 #s(literal 1/2 binary64) x)))
100.0%
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
72.4%
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 #s(approx (- y -1/2) y) x z))
63.3%
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 #s(literal 1/2 binary64) x z))
65.1%
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
28.4%
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 #s(approx (- y -1/2) #s(literal 1/2 binary64)) x))
38.7%
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x))
36.5%
#s(approx (+ (+ (/ x 2) (* y x)) z) z)
Compiler

Compiled 279 to 134 computations (52% saved)

regimes30.0ms (0.9%)

Memory
36.0MiB live, 84.9MiB allocated; 3ms 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))
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 #s(approx (- y -1/2) y) x z))
#s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 (-.f64 y #s(literal -1/2 binary64)) x))
(+.f64 #s(approx (+ (/ x 2) (* y x)) (*.f64 y x)) z)
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
(fma.f64 y x #s(approx (+ (/ x 2) z) (*.f64 #s(literal 1/2 binary64) x)))
(fma.f64 y x (+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z))
(+.f64 (+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) (*.f64 y x)) z)
(+.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) z)
Outputs
(fma.f64 y x (+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z))
Calls

5 calls:

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

regimes19.0ms (0.6%)

Memory
-29.8MiB live, 61.8MiB allocated; 4ms 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))
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 #s(approx (- y -1/2) y) x 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:

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

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

5 calls:

3.0ms
z
3.0ms
x
2.0ms
y
2.0ms
(+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x))
2.0ms
(+.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) z)
Results
AccuracySegmentsBranch
89.8%4(+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x))
82.0%3(+.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) z)
87.1%3x
98.8%3y
87.8%3z
Compiler

Compiled 19 to 24 computations (-26.3% saved)

regimes31.0ms (0.9%)

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

2 calls:

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

Compiled 8 to 10 computations (-25% saved)

regimes9.0ms (0.2%)

Memory
22.1MiB live, 22.1MiB allocated; 0ms collecting garbage
Counts
3 → 4
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) (*.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:

2.0ms
y
2.0ms
z
2.0ms
x
2.0ms
(+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x))
2.0ms
(+.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) z)
Results
AccuracySegmentsBranch
65.3%4(+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x))
54.7%5(+.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) z)
62.4%4x
60.3%6z
65.8%4y
Compiler

Compiled 19 to 24 computations (-26.3% saved)

regimes3.0ms (0.1%)

Memory
8.4MiB live, 8.5MiB 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
(+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x))
1.0ms
y
Results
AccuracySegmentsBranch
61.6%3(+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x))
61.3%3y
Compiler

Compiled 8 to 10 computations (-25% saved)

regimes5.0ms (0.2%)

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

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

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

5 calls:

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

Compiled 19 to 24 computations (-26.3% saved)

bsearch50.0ms (1.4%)

Memory
-36.8MiB live, 54.4MiB allocated; 15ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
8.0ms
3.555739693637706e-14
3.708796705904214e-13
14.0ms
-17.00809741897907
-6.398453580301701e-11
Samples
12.0ms256×0valid
Compiler

Compiled 524 to 430 computations (17.9% saved)

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

bsearch39.0ms (1.1%)

Memory
3.1MiB live, 50.2MiB allocated; 5ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
22.0ms
6.393644036923973e+65
6.835745545802611e+68
14.0ms
-8.326306127283783e+22
-11744998.310128063
Samples
25.0ms288×0valid
Compiler

Compiled 498 to 428 computations (14.1% saved)

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

bsearch48.0ms (1.4%)

Memory
-9.6MiB live, 42.9MiB allocated; 12ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
narrow-enough
Steps
TimeLeftRight
1.0ms
6.393644036923973e+65
6.835745545802611e+68
12.0ms
6.073595248213298e-28
2.2130564457763486e-20
8.0ms
-2.054631491156693e-13
-1.2903679674823729e-14
Samples
11.0ms240×0valid
Compiler

Compiled 636 to 563 computations (11.5% saved)

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

bsearch1.0ms (0%)

Memory
0.8MiB live, 0.8MiB allocated; 0ms collecting garbage
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
2.7544902973253375e-35
5.155241765182267e-33
0.0ms
-3.16881747201018e+179
-1.8634391700651855e+175
Compiler

Compiled 12 to 14 computations (-16.7% saved)

simplify80.0ms (2.3%)

Memory
13.7MiB live, 55.7MiB allocated; 17ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
057227
178227
2103227
3131227
4182227
5510227
63667227
Stop Event
node limit
Calls
Call 1
Inputs
(fma.f64 y x (+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z))
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
(if (<=.f64 y #s(literal -1/2 binary64)) #s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 #s(approx (- y -1/2) y) x z)) (if (<=.f64 y #s(literal 3565267313141895/9903520314283042199192993792 binary64)) #s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 #s(literal 1/2 binary64) x z)) #s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 #s(approx (- y -1/2) y) x z))))
(if (<=.f64 y #s(literal -900000000000000000000 binary64)) #s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x)) (if (<=.f64 y #s(literal 729999999999999973180358394305525088873058097253406841123219963904 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 -3961408125713217/19807040628566084398385987584 binary64)) #s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x)) (if (<=.f64 y #s(literal 8014330305721943/348449143727040986586495598010130648530944 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 719999999999999956890636193571049019909512358661613975440218652672 binary64)) #s(approx (+ (+ (/ x 2) (* y x)) z) z) #s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x)))))
(if (<=.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) #s(literal -199999999999999996091099546963028318915752778493452543828291966300228010772656544918538878468995967298844297195887900676839994006336880488768194581630088140609089562433891216654336 binary64)) #s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x)) (if (<=.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) #s(literal 4676805239458889/93536104789177786765035829293842113257979682750464 binary64)) #s(approx (+ (+ (/ x 2) (* y x)) z) z) #s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x))))
#s(approx (+ (+ (/ x 2) (* y x)) z) z)
Outputs
(fma.f64 y x (+.f64 #s(approx (/ x 2) (*.f64 #s(literal 1/2 binary64) x)) z))
#s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 (-.f64 y #s(literal -1/2 binary64)) x z))
(if (<=.f64 y #s(literal -1/2 binary64)) #s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 #s(approx (- y -1/2) y) x z)) (if (<=.f64 y #s(literal 3565267313141895/9903520314283042199192993792 binary64)) #s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 #s(literal 1/2 binary64) x z)) #s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 #s(approx (- y -1/2) y) x z))))
(if (or (<=.f64 y #s(literal -1/2 binary64)) (not (<=.f64 y #s(literal 3565267313141895/9903520314283042199192993792 binary64)))) #s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 #s(approx (- y -1/2) y) x z)) #s(approx (+ (+ (/ x 2) (* y x)) z) (fma.f64 #s(literal 1/2 binary64) x z)))
(if (<=.f64 y #s(literal -900000000000000000000 binary64)) #s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x)) (if (<=.f64 y #s(literal 729999999999999973180358394305525088873058097253406841123219963904 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 -900000000000000000000 binary64)) (not (<=.f64 y #s(literal 729999999999999973180358394305525088873058097253406841123219963904 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 -3961408125713217/19807040628566084398385987584 binary64)) #s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x)) (if (<=.f64 y #s(literal 8014330305721943/348449143727040986586495598010130648530944 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 719999999999999956890636193571049019909512358661613975440218652672 binary64)) #s(approx (+ (+ (/ x 2) (* y x)) z) z) #s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x)))))
(if (<=.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) #s(literal -199999999999999996091099546963028318915752778493452543828291966300228010772656544918538878468995967298844297195887900676839994006336880488768194581630088140609089562433891216654336 binary64)) #s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x)) (if (<=.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) #s(literal 4676805239458889/93536104789177786765035829293842113257979682750464 binary64)) #s(approx (+ (+ (/ x 2) (* y x)) z) z) #s(approx (+ (+ (/ x 2) (* y x)) z) (*.f64 y x))))
(if (or (<=.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) #s(literal -199999999999999996091099546963028318915752778493452543828291966300228010772656544918538878468995967298844297195887900676839994006336880488768194581630088140609089562433891216654336 binary64)) (not (<=.f64 (+.f64 (/.f64 x #s(literal 2 binary64)) (*.f64 y x)) #s(literal 4676805239458889/93536104789177786765035829293842113257979682750464 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)

derivations544.0ms (15.6%)

Memory
-12.0MiB live, 375.7MiB allocated; 55ms collecting garbage
Stop Event
fuel
Compiler

Compiled 227 to 62 computations (72.7% saved)

preprocess45.0ms (1.3%)

Memory
4.6MiB live, 95.2MiB allocated; 9ms collecting garbage
Compiler

Compiled 472 to 140 computations (70.3% saved)

end0.0ms (0%)

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

Profiling

Loading profile data...