Numeric.SpecFunctions:logGamma from math-functions-0.1.5.2, A

Time bar (total: 5.6s)

start0.0ms (0%)

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

analyze0.0ms (0%)

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

Compiled 13 to 12 computations (7.7% saved)

sample1.4s (24.8%)

Memory
48.4MiB live, 1 093.7MiB allocated; 242ms collecting garbage
Samples
1.0s8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 789.0ms
ival-sub: 240.0ms (30.4% of total)
const: 235.0ms (29.8% of total)
ival-mult: 219.0ms (27.8% of total)
ival-add: 75.0ms (9.5% of total)
exact: 8.0ms (1% of total)
ival-true: 6.0ms (0.8% of total)
ival-assert: 3.0ms (0.4% of total)
adjust: 2.0ms (0.3% of total)
Bogosity

explain124.0ms (2.2%)

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

Compiled 87 to 34 computations (60.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 31.0ms
ival-sub: 11.0ms (35.8% of total)
const: 9.0ms (29.3% of total)
ival-mult: 6.0ms (19.5% of total)
ival-add: 2.0ms (6.5% of total)
exact: 1.0ms (3.3% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess209.0ms (3.7%)

Memory
10.0MiB live, 251.9MiB allocated; 31ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02461
15761
211858
323257
435957
565257
6379855
01011
01511
12511
24311
37911
413311
535211
6232211
7616411
081939
Stop Event
iter limit
node limit
iter limit
node limit
Calls
Call 1
Inputs
(+.f64 (-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64))
Outputs
(+.f64 (-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64))
(fma.f64 #s(literal -1/2 binary64) y (fma.f64 (-.f64 y #s(literal 1 binary64)) x #s(literal 918938533204673/1000000000000000 binary64)))
Compiler

Compiled 11 to 10 computations (9.1% saved)

eval0.0ms (0%)

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

Compiled 0 to 2 computations (-∞% saved)

prune0.0ms (0%)

Memory
0.9MiB live, 0.9MiB allocated; 0ms collecting garbage
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(+.f64 (-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64))
Compiler

Compiled 11 to 10 computations (9.1% saved)

simplify145.0ms (2.6%)

Memory
16.1MiB live, 153.4MiB allocated; 13ms collecting garbage
Localize:

Found 4 expressions of interest:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01036
01536
12536
24336
37936
413336
535236
6232236
7616436
0819333
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
(+.f64 (-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64))
(-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64)))
(*.f64 x (-.f64 y #s(literal 1 binary64)))
x
(-.f64 y #s(literal 1 binary64))
y
#s(literal 1 binary64)
(*.f64 y #s(literal 1/2 binary64))
#s(literal 1/2 binary64)
#s(literal 918938533204673/1000000000000000 binary64)
Outputs
(+.f64 (-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64))
(fma.f64 #s(literal -1/2 binary64) y (fma.f64 (-.f64 y #s(literal 1 binary64)) x #s(literal 918938533204673/1000000000000000 binary64)))
(-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64)))
(fma.f64 #s(literal -1/2 binary64) y (*.f64 (-.f64 y #s(literal 1 binary64)) x))
(*.f64 x (-.f64 y #s(literal 1 binary64)))
(*.f64 (-.f64 y #s(literal 1 binary64)) x)
x
(-.f64 y #s(literal 1 binary64))
y
#s(literal 1 binary64)
(*.f64 y #s(literal 1/2 binary64))
(*.f64 #s(literal 1/2 binary64) y)
#s(literal 1/2 binary64)
#s(literal 918938533204673/1000000000000000 binary64)

localize46.0ms (0.8%)

Memory
-26.2MiB live, 77.6MiB allocated; 17ms collecting garbage
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(+.f64 (-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64))
accuracy0.0
(*.f64 y #s(literal 1/2 binary64))
accuracy0.00390625
(*.f64 x (-.f64 y #s(literal 1 binary64)))
accuracy0.0078125
(-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64)))
Samples
27.0ms256×0valid
Compiler

Compiled 38 to 12 computations (68.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 19.0ms
ival-sub: 10.0ms (52.6% of total)
const: 4.0ms (21% of total)
ival-mult: 3.0ms (15.8% of total)
ival-add: 1.0ms (5.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)

series6.0ms (0.1%)

Memory
12.7MiB live, 12.7MiB allocated; 0ms collecting garbage
Counts
5 → 29
Calls
Call 1
Inputs
(+.f64 (-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64))
(-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64)))
(*.f64 x (-.f64 y #s(literal 1 binary64)))
(-.f64 y #s(literal 1 binary64))
(*.f64 y #s(literal 1/2 binary64))
Outputs
(- 918938533204673/1000000000000000 (* 1/2 y))
(- (+ 918938533204673/1000000000000000 (* x (- y 1))) (* 1/2 y))
(* -1/2 y)
(- (* x (- y 1)) (* 1/2 y))
(* x (- y 1))
(* x (- (+ y (* 918938533204673/1000000000000000 (/ 1 x))) (+ 1 (* 1/2 (/ y x)))))
(* x (- (+ y (* -1/2 (/ y x))) 1))
(* -1 (* x (+ (* -1 (- y 1)) (* -1 (/ (- 918938533204673/1000000000000000 (* 1/2 y)) x)))))
(* -1 (* x (+ (* -1 (- y 1)) (* 1/2 (/ y x)))))
(+ 918938533204673/1000000000000000 (* -1 x))
(+ 918938533204673/1000000000000000 (+ (* -1 x) (* y (- x 1/2))))
(* -1 x)
(+ (* -1 x) (* y (- x 1/2)))
(+ (* -1 x) (* x y))
-1
(- y 1)
(* 1/2 y)
(* y (- x 1/2))
(* y (- (+ x (+ (* -1 (/ x y)) (* 918938533204673/1000000000000000 (/ 1 y)))) 1/2))
(* y (- (+ x (* -1 (/ x y))) 1/2))
(* x y)
(* y (+ x (* -1 (/ x y))))
y
(* y (- 1 (/ 1 y)))
(* -1 (* y (+ 1/2 (* -1 x))))
(* -1 (* y (+ 1/2 (+ (* -1 x) (* -1 (/ (+ 918938533204673/1000000000000000 (* -1 x)) y))))))
(* -1 (* y (+ 1/2 (+ (* -1 x) (/ x y)))))
(* -1 (* y (+ (* -1 x) (/ x y))))
(* -1 (* y (- (/ 1 y) 1)))
Calls

6 calls:

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

simplify224.0ms (4%)

Memory
-15.0MiB live, 172.0MiB allocated; 19ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
076189
1250188
2857188
32769164
46289164
08301157
Stop Event
iter limit
node limit
Counts
29 → 28
Calls
Call 1
Inputs
(- 918938533204673/1000000000000000 (* 1/2 y))
(- (+ 918938533204673/1000000000000000 (* x (- y 1))) (* 1/2 y))
(* -1/2 y)
(- (* x (- y 1)) (* 1/2 y))
(* x (- y 1))
(* x (- (+ y (* 918938533204673/1000000000000000 (/ 1 x))) (+ 1 (* 1/2 (/ y x)))))
(* x (- (+ y (* -1/2 (/ y x))) 1))
(* -1 (* x (+ (* -1 (- y 1)) (* -1 (/ (- 918938533204673/1000000000000000 (* 1/2 y)) x)))))
(* -1 (* x (+ (* -1 (- y 1)) (* 1/2 (/ y x)))))
(+ 918938533204673/1000000000000000 (* -1 x))
(+ 918938533204673/1000000000000000 (+ (* -1 x) (* y (- x 1/2))))
(* -1 x)
(+ (* -1 x) (* y (- x 1/2)))
(+ (* -1 x) (* x y))
-1
(- y 1)
(* 1/2 y)
(* y (- x 1/2))
(* y (- (+ x (+ (* -1 (/ x y)) (* 918938533204673/1000000000000000 (/ 1 y)))) 1/2))
(* y (- (+ x (* -1 (/ x y))) 1/2))
(* x y)
(* y (+ x (* -1 (/ x y))))
y
(* y (- 1 (/ 1 y)))
(* -1 (* y (+ 1/2 (* -1 x))))
(* -1 (* y (+ 1/2 (+ (* -1 x) (* -1 (/ (+ 918938533204673/1000000000000000 (* -1 x)) y))))))
(* -1 (* y (+ 1/2 (+ (* -1 x) (/ x y)))))
(* -1 (* y (+ (* -1 x) (/ x y))))
(* -1 (* y (- (/ 1 y) 1)))
Outputs
(- 918938533204673/1000000000000000 (* 1/2 y))
(fma.f64 #s(literal -1/2 binary64) y #s(literal 918938533204673/1000000000000000 binary64))
(- (+ 918938533204673/1000000000000000 (* x (- y 1))) (* 1/2 y))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
(* -1/2 y)
(*.f64 #s(literal -1/2 binary64) y)
(- (* x (- y 1)) (* 1/2 y))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (neg.f64 x))
(* x (- y 1))
(*.f64 (-.f64 y #s(literal 1 binary64)) x)
(* x (- (+ y (* 918938533204673/1000000000000000 (/ 1 x))) (+ 1 (* 1/2 (/ y x)))))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
(* x (- (+ y (* -1/2 (/ y x))) 1))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (neg.f64 x))
(* -1 (* x (+ (* -1 (- y 1)) (* -1 (/ (- 918938533204673/1000000000000000 (* 1/2 y)) x)))))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
(* -1 (* x (+ (* -1 (- y 1)) (* 1/2 (/ y x)))))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (neg.f64 x))
(+ 918938533204673/1000000000000000 (* -1 x))
(-.f64 #s(literal 918938533204673/1000000000000000 binary64) x)
(+ 918938533204673/1000000000000000 (+ (* -1 x) (* y (- x 1/2))))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
(* -1 x)
(neg.f64 x)
(+ (* -1 x) (* y (- x 1/2)))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (neg.f64 x))
(+ (* -1 x) (* x y))
(*.f64 (-.f64 y #s(literal 1 binary64)) x)
-1
#s(literal -1 binary64)
(- y 1)
(-.f64 y #s(literal 1 binary64))
(* 1/2 y)
(*.f64 #s(literal 1/2 binary64) y)
(* y (- x 1/2))
(*.f64 (-.f64 x #s(literal 1/2 binary64)) y)
(* y (- (+ x (+ (* -1 (/ x y)) (* 918938533204673/1000000000000000 (/ 1 y)))) 1/2))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
(* y (- (+ x (* -1 (/ x y))) 1/2))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (neg.f64 x))
(* x y)
(*.f64 y x)
(* y (+ x (* -1 (/ x y))))
(*.f64 (-.f64 y #s(literal 1 binary64)) x)
y
(* y (- 1 (/ 1 y)))
(*.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) y)) y)
(* -1 (* y (+ 1/2 (* -1 x))))
(*.f64 (-.f64 x #s(literal 1/2 binary64)) y)
(* -1 (* y (+ 1/2 (+ (* -1 x) (* -1 (/ (+ 918938533204673/1000000000000000 (* -1 x)) y))))))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
(* -1 (* y (+ 1/2 (+ (* -1 x) (/ x y)))))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (neg.f64 x))
(* -1 (* y (+ (* -1 x) (/ x y))))
(*.f64 (-.f64 y #s(literal 1 binary64)) x)
(* -1 (* y (- (/ 1 y) 1)))
(*.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) y)) y)

rewrite66.0ms (1.2%)

Memory
33.4MiB live, 77.5MiB allocated; 6ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01031
01531
16531
052329
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
5 → 52
Calls
Call 1
Inputs
(+.f64 (-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64))
(-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64)))
(*.f64 x (-.f64 y #s(literal 1 binary64)))
(-.f64 y #s(literal 1 binary64))
(*.f64 y #s(literal 1/2 binary64))
Outputs
(/.f64 (-.f64 (pow.f64 (*.f64 (-.f64 y #s(literal 1 binary64)) x) #s(literal 2 binary64)) (*.f64 (-.f64 (*.f64 #s(literal 1/2 binary64) y) #s(literal 918938533204673/1000000000000000 binary64)) (-.f64 (*.f64 #s(literal 1/2 binary64) y) #s(literal 918938533204673/1000000000000000 binary64)))) (fma.f64 (-.f64 y #s(literal 1 binary64)) x (-.f64 (*.f64 #s(literal 1/2 binary64) y) #s(literal 918938533204673/1000000000000000 binary64))))
(/.f64 (-.f64 #s(literal 844448027808355901771309036929/1000000000000000000000000000000 binary64) (pow.f64 (fma.f64 (-.f64 y #s(literal 1 binary64)) x (*.f64 #s(literal -1/2 binary64) y)) #s(literal 2 binary64))) (-.f64 #s(literal 918938533204673/1000000000000000 binary64) (fma.f64 (-.f64 y #s(literal 1 binary64)) x (*.f64 #s(literal -1/2 binary64) y))))
(/.f64 (-.f64 (pow.f64 (*.f64 (-.f64 y #s(literal 1 binary64)) x) #s(literal 3 binary64)) (pow.f64 (-.f64 (*.f64 #s(literal 1/2 binary64) y) #s(literal 918938533204673/1000000000000000 binary64)) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 (-.f64 y #s(literal 1 binary64)) x) #s(literal 2 binary64)) (fma.f64 (-.f64 (*.f64 #s(literal 1/2 binary64) y) #s(literal 918938533204673/1000000000000000 binary64)) (-.f64 (*.f64 #s(literal 1/2 binary64) y) #s(literal 918938533204673/1000000000000000 binary64)) (*.f64 (*.f64 (-.f64 y #s(literal 1 binary64)) x) (-.f64 (*.f64 #s(literal 1/2 binary64) y) #s(literal 918938533204673/1000000000000000 binary64))))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (fma.f64 (-.f64 y #s(literal 1 binary64)) x (*.f64 #s(literal -1/2 binary64) y)) #s(literal 2 binary64)) #s(literal 844448027808355901771309036929/1000000000000000000000000000000 binary64))) (neg.f64 (-.f64 (*.f64 (-.f64 y #s(literal 1 binary64)) x) (fma.f64 #s(literal 1/2 binary64) y #s(literal 918938533204673/1000000000000000 binary64)))))
(/.f64 (neg.f64 (+.f64 #s(literal 775995832041789488711238455368417219672369217/1000000000000000000000000000000000000000000000 binary64) (pow.f64 (fma.f64 (-.f64 y #s(literal 1 binary64)) x (*.f64 #s(literal -1/2 binary64) y)) #s(literal 3 binary64)))) (neg.f64 (fma.f64 #s(literal 918938533204673/1000000000000000 binary64) (-.f64 #s(literal 918938533204673/1000000000000000 binary64) (fma.f64 (-.f64 y #s(literal 1 binary64)) x (*.f64 #s(literal -1/2 binary64) y))) (pow.f64 (fma.f64 (-.f64 y #s(literal 1 binary64)) x (*.f64 #s(literal -1/2 binary64) y)) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (fma.f64 (-.f64 y #s(literal 1 binary64)) x (*.f64 #s(literal -1/2 binary64) y)) #s(literal 2 binary64)) #s(literal 844448027808355901771309036929/1000000000000000000000000000000 binary64)) (-.f64 (*.f64 (-.f64 y #s(literal 1 binary64)) x) (fma.f64 #s(literal 1/2 binary64) y #s(literal 918938533204673/1000000000000000 binary64))))
(/.f64 (+.f64 #s(literal 775995832041789488711238455368417219672369217/1000000000000000000000000000000000000000000000 binary64) (pow.f64 (fma.f64 (-.f64 y #s(literal 1 binary64)) x (*.f64 #s(literal -1/2 binary64) y)) #s(literal 3 binary64))) (+.f64 #s(literal 844448027808355901771309036929/1000000000000000000000000000000 binary64) (-.f64 (pow.f64 (fma.f64 (-.f64 y #s(literal 1 binary64)) x (*.f64 #s(literal -1/2 binary64) y)) #s(literal 2 binary64)) (*.f64 #s(literal 918938533204673/1000000000000000 binary64) (fma.f64 (-.f64 y #s(literal 1 binary64)) x (*.f64 #s(literal -1/2 binary64) y))))))
(/.f64 (+.f64 #s(literal 775995832041789488711238455368417219672369217/1000000000000000000000000000000000000000000000 binary64) (pow.f64 (fma.f64 (-.f64 y #s(literal 1 binary64)) x (*.f64 #s(literal -1/2 binary64) y)) #s(literal 3 binary64))) (fma.f64 #s(literal 918938533204673/1000000000000000 binary64) (-.f64 #s(literal 918938533204673/1000000000000000 binary64) (fma.f64 (-.f64 y #s(literal 1 binary64)) x (*.f64 #s(literal -1/2 binary64) y))) (pow.f64 (fma.f64 (-.f64 y #s(literal 1 binary64)) x (*.f64 #s(literal -1/2 binary64) y)) #s(literal 2 binary64))))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x (fma.f64 (neg.f64 y) #s(literal 1/2 binary64) #s(literal 918938533204673/1000000000000000 binary64)))
(fma.f64 x (-.f64 y #s(literal 1 binary64)) (fma.f64 (neg.f64 y) #s(literal 1/2 binary64) #s(literal 918938533204673/1000000000000000 binary64)))
(-.f64 (+.f64 #s(literal 918938533204673/1000000000000000 binary64) (*.f64 (-.f64 y #s(literal 1 binary64)) x)) (*.f64 #s(literal 1/2 binary64) y))
(-.f64 (/.f64 (pow.f64 (fma.f64 (-.f64 y #s(literal 1 binary64)) x (*.f64 #s(literal -1/2 binary64) y)) #s(literal 2 binary64)) (-.f64 (*.f64 (-.f64 y #s(literal 1 binary64)) x) (fma.f64 #s(literal 1/2 binary64) y #s(literal 918938533204673/1000000000000000 binary64)))) (/.f64 #s(literal 844448027808355901771309036929/1000000000000000000000000000000 binary64) (-.f64 (*.f64 (-.f64 y #s(literal 1 binary64)) x) (fma.f64 #s(literal 1/2 binary64) y #s(literal 918938533204673/1000000000000000 binary64)))))
(-.f64 (*.f64 (-.f64 y #s(literal 1 binary64)) x) (-.f64 (*.f64 #s(literal 1/2 binary64) y) #s(literal 918938533204673/1000000000000000 binary64)))
(+.f64 (+.f64 #s(literal 918938533204673/1000000000000000 binary64) (*.f64 (-.f64 y #s(literal 1 binary64)) x)) (*.f64 (neg.f64 y) #s(literal 1/2 binary64)))
(+.f64 (/.f64 (pow.f64 (fma.f64 (-.f64 y #s(literal 1 binary64)) x (*.f64 #s(literal -1/2 binary64) y)) #s(literal 3 binary64)) (fma.f64 #s(literal 918938533204673/1000000000000000 binary64) (-.f64 #s(literal 918938533204673/1000000000000000 binary64) (fma.f64 (-.f64 y #s(literal 1 binary64)) x (*.f64 #s(literal -1/2 binary64) y))) (pow.f64 (fma.f64 (-.f64 y #s(literal 1 binary64)) x (*.f64 #s(literal -1/2 binary64) y)) #s(literal 2 binary64)))) (/.f64 #s(literal 775995832041789488711238455368417219672369217/1000000000000000000000000000000000000000000000 binary64) (fma.f64 #s(literal 918938533204673/1000000000000000 binary64) (-.f64 #s(literal 918938533204673/1000000000000000 binary64) (fma.f64 (-.f64 y #s(literal 1 binary64)) x (*.f64 #s(literal -1/2 binary64) y))) (pow.f64 (fma.f64 (-.f64 y #s(literal 1 binary64)) x (*.f64 #s(literal -1/2 binary64) y)) #s(literal 2 binary64)))))
(+.f64 #s(literal 918938533204673/1000000000000000 binary64) (fma.f64 (-.f64 y #s(literal 1 binary64)) x (*.f64 #s(literal -1/2 binary64) y)))
(+.f64 (fma.f64 (-.f64 y #s(literal 1 binary64)) x (*.f64 #s(literal -1/2 binary64) y)) #s(literal 918938533204673/1000000000000000 binary64))
(+.f64 (*.f64 (-.f64 y #s(literal 1 binary64)) x) (fma.f64 (neg.f64 y) #s(literal 1/2 binary64) #s(literal 918938533204673/1000000000000000 binary64)))
(/.f64 (+.f64 (pow.f64 (*.f64 (-.f64 y #s(literal 1 binary64)) x) #s(literal 3 binary64)) (pow.f64 (*.f64 (neg.f64 y) #s(literal 1/2 binary64)) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 (-.f64 y #s(literal 1 binary64)) x) #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal 1/4 binary64) (*.f64 y y)) (*.f64 (*.f64 (-.f64 y #s(literal 1 binary64)) x) (*.f64 (neg.f64 y) #s(literal 1/2 binary64))))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (-.f64 y #s(literal 1 binary64)) x) #s(literal 2 binary64)) (*.f64 #s(literal 1/4 binary64) (*.f64 y y)))) (neg.f64 (fma.f64 #s(literal 1/2 binary64) y (*.f64 (-.f64 y #s(literal 1 binary64)) x))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (-.f64 y #s(literal 1 binary64)) x) #s(literal 3 binary64)) (*.f64 #s(literal 1/8 binary64) (pow.f64 y #s(literal 3 binary64))))) (neg.f64 (fma.f64 (*.f64 #s(literal 1/2 binary64) y) (fma.f64 #s(literal 1/2 binary64) y (*.f64 (-.f64 y #s(literal 1 binary64)) x)) (pow.f64 (*.f64 (-.f64 y #s(literal 1 binary64)) x) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 (-.f64 y #s(literal 1 binary64)) x) #s(literal 2 binary64)) (*.f64 #s(literal 1/4 binary64) (*.f64 y y))) (fma.f64 #s(literal 1/2 binary64) y (*.f64 (-.f64 y #s(literal 1 binary64)) x)))
(/.f64 (-.f64 (pow.f64 (*.f64 (-.f64 y #s(literal 1 binary64)) x) #s(literal 3 binary64)) (*.f64 #s(literal 1/8 binary64) (pow.f64 y #s(literal 3 binary64)))) (fma.f64 (*.f64 #s(literal 1/2 binary64) y) (fma.f64 #s(literal 1/2 binary64) y (*.f64 (-.f64 y #s(literal 1 binary64)) x)) (pow.f64 (*.f64 (-.f64 y #s(literal 1 binary64)) x) #s(literal 2 binary64))))
(fma.f64 (neg.f64 y) #s(literal 1/2 binary64) (*.f64 (-.f64 y #s(literal 1 binary64)) x))
(fma.f64 #s(literal 1/2 binary64) (neg.f64 y) (*.f64 (-.f64 y #s(literal 1 binary64)) x))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x (*.f64 #s(literal -1/2 binary64) y))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x (*.f64 (neg.f64 y) #s(literal 1/2 binary64)))
(fma.f64 x (-.f64 y #s(literal 1 binary64)) (*.f64 #s(literal -1/2 binary64) y))
(fma.f64 x (-.f64 y #s(literal 1 binary64)) (*.f64 (neg.f64 y) #s(literal 1/2 binary64)))
(-.f64 (/.f64 (pow.f64 (*.f64 (-.f64 y #s(literal 1 binary64)) x) #s(literal 2 binary64)) (fma.f64 #s(literal 1/2 binary64) y (*.f64 (-.f64 y #s(literal 1 binary64)) x))) (/.f64 (*.f64 #s(literal 1/4 binary64) (*.f64 y y)) (fma.f64 #s(literal 1/2 binary64) y (*.f64 (-.f64 y #s(literal 1 binary64)) x))))
(-.f64 (/.f64 (pow.f64 (*.f64 (-.f64 y #s(literal 1 binary64)) x) #s(literal 3 binary64)) (fma.f64 (*.f64 #s(literal 1/2 binary64) y) (fma.f64 #s(literal 1/2 binary64) y (*.f64 (-.f64 y #s(literal 1 binary64)) x)) (pow.f64 (*.f64 (-.f64 y #s(literal 1 binary64)) x) #s(literal 2 binary64)))) (/.f64 (*.f64 #s(literal 1/8 binary64) (pow.f64 y #s(literal 3 binary64))) (fma.f64 (*.f64 #s(literal 1/2 binary64) y) (fma.f64 #s(literal 1/2 binary64) y (*.f64 (-.f64 y #s(literal 1 binary64)) x)) (pow.f64 (*.f64 (-.f64 y #s(literal 1 binary64)) x) #s(literal 2 binary64)))))
(-.f64 (*.f64 (-.f64 y #s(literal 1 binary64)) x) (*.f64 (neg.f64 (neg.f64 y)) #s(literal 1/2 binary64)))
(-.f64 (*.f64 (-.f64 y #s(literal 1 binary64)) x) (*.f64 #s(literal 1/2 binary64) y))
(+.f64 (*.f64 (neg.f64 y) #s(literal 1/2 binary64)) (*.f64 (-.f64 y #s(literal 1 binary64)) x))
(+.f64 (*.f64 (-.f64 y #s(literal 1 binary64)) x) (*.f64 #s(literal -1/2 binary64) y))
(+.f64 (*.f64 (-.f64 y #s(literal 1 binary64)) x) (*.f64 (neg.f64 y) #s(literal 1/2 binary64)))
(*.f64 (-.f64 y #s(literal 1 binary64)) x)
(*.f64 x (-.f64 y #s(literal 1 binary64)))
(/.f64 (*.f64 (fma.f64 y y #s(literal -1 binary64)) x) (-.f64 y #s(literal -1 binary64)))
(/.f64 (*.f64 (-.f64 (pow.f64 y #s(literal 3 binary64)) #s(literal 1 binary64)) x) (fma.f64 y y (-.f64 y #s(literal -1 binary64))))
(/.f64 (*.f64 x (fma.f64 y y #s(literal -1 binary64))) (-.f64 y #s(literal -1 binary64)))
(/.f64 (*.f64 x (-.f64 (pow.f64 y #s(literal 3 binary64)) #s(literal 1 binary64))) (fma.f64 y y (-.f64 y #s(literal -1 binary64))))
(/.f64 (neg.f64 (fma.f64 y y #s(literal -1 binary64))) (neg.f64 (-.f64 y #s(literal -1 binary64))))
(/.f64 (neg.f64 (-.f64 (pow.f64 y #s(literal 3 binary64)) #s(literal 1 binary64))) (neg.f64 (fma.f64 y y (-.f64 y #s(literal -1 binary64)))))
(/.f64 (fma.f64 y y #s(literal -1 binary64)) (-.f64 y #s(literal -1 binary64)))
(/.f64 (-.f64 (pow.f64 y #s(literal 3 binary64)) #s(literal 1 binary64)) (fma.f64 y y (-.f64 y #s(literal -1 binary64))))
(-.f64 (/.f64 (*.f64 y y) (-.f64 y #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (-.f64 y #s(literal -1 binary64))))
(-.f64 (/.f64 (pow.f64 y #s(literal 3 binary64)) (fma.f64 y y (-.f64 y #s(literal -1 binary64)))) (/.f64 #s(literal 1 binary64) (fma.f64 y y (-.f64 y #s(literal -1 binary64)))))
(-.f64 y #s(literal 1 binary64))
(+.f64 y #s(literal -1 binary64))
(*.f64 #s(literal 1/2 binary64) y)
(*.f64 y #s(literal 1/2 binary64))

eval10.0ms (0.2%)

Memory
-24.4MiB live, 22.3MiB allocated; 4ms collecting garbage
Compiler

Compiled 1 278 to 242 computations (81.1% saved)

prune4.0ms (0.1%)

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

5 alts after pruning (5 fresh and 0 done)

PrunedKeptTotal
New60565
Fresh000
Picked101
Done000
Total61566
Accuracy
100.0%
Counts
66 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
72.1%
(+.f64 (-.f64 #s(approx (* x (- y 1)) (*.f64 y x)) (*.f64 y #s(literal 1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64))
100.0%
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x)))
46.7%
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (fma.f64 #s(literal -1/2 binary64) y #s(literal 918938533204673/1000000000000000 binary64)))
55.9%
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
44.9%
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (*.f64 (-.f64 x #s(literal 1/2 binary64)) y))
Compiler

Compiled 166 to 138 computations (16.9% saved)

simplify145.0ms (2.6%)

Memory
-11.7MiB live, 183.0MiB allocated; 17ms collecting garbage
Localize:

Found 15 expressions of interest:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
025156
035156
155156
290151
3152151
4229151
5450151
62474151
76358151
08111146
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x)))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
(-.f64 x #s(literal 1/2 binary64))
x
#s(literal 1/2 binary64)
y
(-.f64 #s(literal 918938533204673/1000000000000000 binary64) x)
#s(literal 918938533204673/1000000000000000 binary64)
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
(-.f64 #s(literal 918938533204673/1000000000000000 binary64) x)
#s(literal 918938533204673/1000000000000000 binary64)
x
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (fma.f64 #s(literal -1/2 binary64) y #s(literal 918938533204673/1000000000000000 binary64)))
(fma.f64 #s(literal -1/2 binary64) y #s(literal 918938533204673/1000000000000000 binary64))
#s(literal -1/2 binary64)
y
#s(literal 918938533204673/1000000000000000 binary64)
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (*.f64 (-.f64 x #s(literal 1/2 binary64)) y))
(*.f64 (-.f64 x #s(literal 1/2 binary64)) y)
(-.f64 x #s(literal 1/2 binary64))
x
#s(literal 1/2 binary64)
y
(+.f64 (-.f64 #s(approx (* x (- y 1)) (*.f64 y x)) (*.f64 y #s(literal 1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64))
(-.f64 #s(approx (* x (- y 1)) (*.f64 y x)) (*.f64 y #s(literal 1/2 binary64)))
#s(approx (* x (- y 1)) (*.f64 y x))
(*.f64 y x)
y
x
(*.f64 y #s(literal 1/2 binary64))
#s(literal 1/2 binary64)
#s(literal 918938533204673/1000000000000000 binary64)
Outputs
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x)))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
(-.f64 x #s(literal 1/2 binary64))
x
#s(literal 1/2 binary64)
y
(-.f64 #s(literal 918938533204673/1000000000000000 binary64) x)
#s(literal 918938533204673/1000000000000000 binary64)
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
(-.f64 #s(literal 918938533204673/1000000000000000 binary64) x)
#s(literal 918938533204673/1000000000000000 binary64)
x
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (fma.f64 #s(literal -1/2 binary64) y #s(literal 918938533204673/1000000000000000 binary64)))
(fma.f64 #s(literal -1/2 binary64) y #s(literal 918938533204673/1000000000000000 binary64))
#s(literal -1/2 binary64)
y
#s(literal 918938533204673/1000000000000000 binary64)
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (*.f64 (-.f64 x #s(literal 1/2 binary64)) y))
(*.f64 (-.f64 x #s(literal 1/2 binary64)) y)
(-.f64 x #s(literal 1/2 binary64))
x
#s(literal 1/2 binary64)
y
(+.f64 (-.f64 #s(approx (* x (- y 1)) (*.f64 y x)) (*.f64 y #s(literal 1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64))
(+.f64 #s(approx (* x (- y 1)) (*.f64 y x)) (fma.f64 #s(literal -1/2 binary64) y #s(literal 918938533204673/1000000000000000 binary64)))
(-.f64 #s(approx (* x (- y 1)) (*.f64 y x)) (*.f64 y #s(literal 1/2 binary64)))
(fma.f64 #s(literal -1/2 binary64) y #s(approx (* x (- y 1)) (*.f64 y x)))
#s(approx (* x (- y 1)) (*.f64 y x))
(*.f64 y x)
y
x
(*.f64 y #s(literal 1/2 binary64))
(*.f64 #s(literal 1/2 binary64) y)
#s(literal 1/2 binary64)
#s(literal 918938533204673/1000000000000000 binary64)

localize90.0ms (1.6%)

Memory
5.9MiB live, 106.7MiB allocated; 8ms collecting garbage
Localize:

Found 15 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 y x)
accuracy0.0
(*.f64 y #s(literal 1/2 binary64))
accuracy0.0078125
(-.f64 #s(approx (* x (- y 1)) (*.f64 y x)) (*.f64 y #s(literal 1/2 binary64)))
accuracy34.87140824761516
#s(approx (* x (- y 1)) (*.f64 y x))
accuracy0.0
(-.f64 x #s(literal 1/2 binary64))
accuracy0.0078125
(*.f64 (-.f64 x #s(literal 1/2 binary64)) y)
accuracy35.267980709721535
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (*.f64 (-.f64 x #s(literal 1/2 binary64)) y))
accuracy0.0
(fma.f64 #s(literal -1/2 binary64) y #s(literal 918938533204673/1000000000000000 binary64))
accuracy34.14329716435208
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (fma.f64 #s(literal -1/2 binary64) y #s(literal 918938533204673/1000000000000000 binary64)))
accuracy0.0
(-.f64 #s(literal 918938533204673/1000000000000000 binary64) x)
accuracy28.240257355893654
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
accuracy0.0
(-.f64 x #s(literal 1/2 binary64))
accuracy0.0
(-.f64 #s(literal 918938533204673/1000000000000000 binary64) x)
accuracy0.0
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x)))
accuracy0.0078125
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
Samples
54.0ms256×0valid
Compiler

Compiled 124 to 20 computations (83.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 40.0ms
ival-mult: 27.0ms (67.2% of total)
ival-sub: 5.0ms (12.4% of total)
const: 5.0ms (12.4% of total)
ival-add: 3.0ms (7.5% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series13.0ms (0.2%)

Memory
-21.1MiB live, 23.7MiB allocated; 6ms collecting garbage
Counts
14 → 46
Calls
Call 1
Inputs
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x)))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
(-.f64 x #s(literal 1/2 binary64))
(-.f64 #s(literal 918938533204673/1000000000000000 binary64) x)
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (fma.f64 #s(literal -1/2 binary64) y #s(literal 918938533204673/1000000000000000 binary64)))
(fma.f64 #s(literal -1/2 binary64) y #s(literal 918938533204673/1000000000000000 binary64))
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (*.f64 (-.f64 x #s(literal 1/2 binary64)) y))
(*.f64 (-.f64 x #s(literal 1/2 binary64)) y)
(-.f64 #s(approx (* x (- y 1)) (*.f64 y x)) (*.f64 y #s(literal 1/2 binary64)))
(+.f64 (-.f64 #s(approx (* x (- y 1)) (*.f64 y x)) (*.f64 y #s(literal 1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64))
#s(approx (* x (- y 1)) (*.f64 y x))
(*.f64 y x)
(*.f64 y #s(literal 1/2 binary64))
Outputs
(- 918938533204673/1000000000000000 (* 1/2 y))
(- (+ 918938533204673/1000000000000000 (* x (- y 1))) (* 1/2 y))
(+ 918938533204673/1000000000000000 (* -1/2 y))
(+ 918938533204673/1000000000000000 (+ (* -1/2 y) (* x (- y 1))))
-1/2
(- x 1/2)
918938533204673/1000000000000000
(+ 918938533204673/1000000000000000 (* -1 x))
(* -1/2 y)
(+ (* -1/2 y) (* x y))
(- (* x (- y 1)) (* 1/2 y))
(* x (- y 1))
(* x y)
(* x (- (+ y (* 918938533204673/1000000000000000 (/ 1 x))) (+ 1 (* 1/2 (/ y x)))))
(* x (- (+ y (+ (* -1/2 (/ y x)) (* 918938533204673/1000000000000000 (/ 1 x)))) 1))
x
(* x (- 1 (* 1/2 (/ 1 x))))
(* -1 x)
(* x (- (* 918938533204673/1000000000000000 (/ 1 x)) 1))
(* x (+ y (* -1/2 (/ y x))))
(* x (- (+ y (* -1/2 (/ y x))) 1))
(* -1 (* x (+ (* -1 (- y 1)) (* -1 (/ (- 918938533204673/1000000000000000 (* 1/2 y)) x)))))
(* -1 (* x (+ 1 (* -1 y))))
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ (+ 918938533204673/1000000000000000 (* -1/2 y)) x))))))
(* -1 (* x (- (* 1/2 (/ 1 x)) 1)))
(* -1 (* x (- 1 (* 918938533204673/1000000000000000 (/ 1 x)))))
(* -1 (* x (+ (* -1 y) (* 1/2 (/ y x)))))
(* -1 (* x (+ (* -1 (- y 1)) (* 1/2 (/ y x)))))
(+ 918938533204673/1000000000000000 (+ (* -1 x) (* y (- x 1/2))))
(- 918938533204673/1000000000000000 x)
(- (+ 918938533204673/1000000000000000 (* y (- x 1/2))) x)
(* y (- x 1/2))
(+ (* -1 x) (* y (- x 1/2)))
(+ (* -1 x) (* x y))
(* 1/2 y)
(* y (- (+ x (+ (* -1 (/ x y)) (* 918938533204673/1000000000000000 (/ 1 y)))) 1/2))
(* y (- (+ x (* 918938533204673/1000000000000000 (/ 1 y))) (+ 1/2 (/ x y))))
(* y (- (* 918938533204673/1000000000000000 (/ 1 y)) 1/2))
(* y (- (+ x (* -1 (/ x y))) 1/2))
(* y (+ x (* -1 (/ x y))))
(* -1 (* y (+ 1/2 (* -1 x))))
(* -1 (* y (+ 1/2 (+ (* -1 x) (* -1 (/ (+ 918938533204673/1000000000000000 (* -1 x)) y))))))
(* -1 (* y (+ (* -1 (- x 1/2)) (* -1 (/ (- 918938533204673/1000000000000000 x) y)))))
(* -1 (* y (- 1/2 (* 918938533204673/1000000000000000 (/ 1 y)))))
(* -1 (* y (+ 1/2 (+ (* -1 x) (/ x y)))))
(* -1 (* y (+ (* -1 x) (/ x y))))
Calls

6 calls:

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

simplify132.0ms (2.3%)

Memory
-6.7MiB live, 187.7MiB allocated; 16ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0122295
1416291
21434255
34416255
08378239
Stop Event
iter limit
node limit
Counts
46 → 45
Calls
Call 1
Inputs
(- 918938533204673/1000000000000000 (* 1/2 y))
(- (+ 918938533204673/1000000000000000 (* x (- y 1))) (* 1/2 y))
(+ 918938533204673/1000000000000000 (* -1/2 y))
(+ 918938533204673/1000000000000000 (+ (* -1/2 y) (* x (- y 1))))
-1/2
(- x 1/2)
918938533204673/1000000000000000
(+ 918938533204673/1000000000000000 (* -1 x))
(* -1/2 y)
(+ (* -1/2 y) (* x y))
(- (* x (- y 1)) (* 1/2 y))
(* x (- y 1))
(* x y)
(* x (- (+ y (* 918938533204673/1000000000000000 (/ 1 x))) (+ 1 (* 1/2 (/ y x)))))
(* x (- (+ y (+ (* -1/2 (/ y x)) (* 918938533204673/1000000000000000 (/ 1 x)))) 1))
x
(* x (- 1 (* 1/2 (/ 1 x))))
(* -1 x)
(* x (- (* 918938533204673/1000000000000000 (/ 1 x)) 1))
(* x (+ y (* -1/2 (/ y x))))
(* x (- (+ y (* -1/2 (/ y x))) 1))
(* -1 (* x (+ (* -1 (- y 1)) (* -1 (/ (- 918938533204673/1000000000000000 (* 1/2 y)) x)))))
(* -1 (* x (+ 1 (* -1 y))))
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ (+ 918938533204673/1000000000000000 (* -1/2 y)) x))))))
(* -1 (* x (- (* 1/2 (/ 1 x)) 1)))
(* -1 (* x (- 1 (* 918938533204673/1000000000000000 (/ 1 x)))))
(* -1 (* x (+ (* -1 y) (* 1/2 (/ y x)))))
(* -1 (* x (+ (* -1 (- y 1)) (* 1/2 (/ y x)))))
(+ 918938533204673/1000000000000000 (+ (* -1 x) (* y (- x 1/2))))
(- 918938533204673/1000000000000000 x)
(- (+ 918938533204673/1000000000000000 (* y (- x 1/2))) x)
(* y (- x 1/2))
(+ (* -1 x) (* y (- x 1/2)))
(+ (* -1 x) (* x y))
(* 1/2 y)
(* y (- (+ x (+ (* -1 (/ x y)) (* 918938533204673/1000000000000000 (/ 1 y)))) 1/2))
(* y (- (+ x (* 918938533204673/1000000000000000 (/ 1 y))) (+ 1/2 (/ x y))))
(* y (- (* 918938533204673/1000000000000000 (/ 1 y)) 1/2))
(* y (- (+ x (* -1 (/ x y))) 1/2))
(* y (+ x (* -1 (/ x y))))
(* -1 (* y (+ 1/2 (* -1 x))))
(* -1 (* y (+ 1/2 (+ (* -1 x) (* -1 (/ (+ 918938533204673/1000000000000000 (* -1 x)) y))))))
(* -1 (* y (+ (* -1 (- x 1/2)) (* -1 (/ (- 918938533204673/1000000000000000 x) y)))))
(* -1 (* y (- 1/2 (* 918938533204673/1000000000000000 (/ 1 y)))))
(* -1 (* y (+ 1/2 (+ (* -1 x) (/ x y)))))
(* -1 (* y (+ (* -1 x) (/ x y))))
Outputs
(- 918938533204673/1000000000000000 (* 1/2 y))
(fma.f64 #s(literal -1/2 binary64) y #s(literal 918938533204673/1000000000000000 binary64))
(- (+ 918938533204673/1000000000000000 (* x (- y 1))) (* 1/2 y))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
(+ 918938533204673/1000000000000000 (* -1/2 y))
(fma.f64 #s(literal -1/2 binary64) y #s(literal 918938533204673/1000000000000000 binary64))
(+ 918938533204673/1000000000000000 (+ (* -1/2 y) (* x (- y 1))))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
-1/2
#s(literal -1/2 binary64)
(- x 1/2)
(-.f64 x #s(literal 1/2 binary64))
918938533204673/1000000000000000
#s(literal 918938533204673/1000000000000000 binary64)
(+ 918938533204673/1000000000000000 (* -1 x))
(-.f64 #s(literal 918938533204673/1000000000000000 binary64) x)
(* -1/2 y)
(*.f64 #s(literal -1/2 binary64) y)
(+ (* -1/2 y) (* x y))
(*.f64 (-.f64 x #s(literal 1/2 binary64)) y)
(- (* x (- y 1)) (* 1/2 y))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (neg.f64 x))
(* x (- y 1))
(*.f64 (-.f64 y #s(literal 1 binary64)) x)
(* x y)
(*.f64 y x)
(* x (- (+ y (* 918938533204673/1000000000000000 (/ 1 x))) (+ 1 (* 1/2 (/ y x)))))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
(* x (- (+ y (+ (* -1/2 (/ y x)) (* 918938533204673/1000000000000000 (/ 1 x)))) 1))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
x
(* x (- 1 (* 1/2 (/ 1 x))))
(-.f64 x #s(literal 1/2 binary64))
(* -1 x)
(neg.f64 x)
(* x (- (* 918938533204673/1000000000000000 (/ 1 x)) 1))
(-.f64 #s(literal 918938533204673/1000000000000000 binary64) x)
(* x (+ y (* -1/2 (/ y x))))
(*.f64 (-.f64 x #s(literal 1/2 binary64)) y)
(* x (- (+ y (* -1/2 (/ y x))) 1))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (neg.f64 x))
(* -1 (* x (+ (* -1 (- y 1)) (* -1 (/ (- 918938533204673/1000000000000000 (* 1/2 y)) x)))))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
(* -1 (* x (+ 1 (* -1 y))))
(*.f64 (-.f64 y #s(literal 1 binary64)) x)
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ (+ 918938533204673/1000000000000000 (* -1/2 y)) x))))))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
(* -1 (* x (- (* 1/2 (/ 1 x)) 1)))
(-.f64 x #s(literal 1/2 binary64))
(* -1 (* x (- 1 (* 918938533204673/1000000000000000 (/ 1 x)))))
(-.f64 #s(literal 918938533204673/1000000000000000 binary64) x)
(* -1 (* x (+ (* -1 y) (* 1/2 (/ y x)))))
(*.f64 (-.f64 x #s(literal 1/2 binary64)) y)
(* -1 (* x (+ (* -1 (- y 1)) (* 1/2 (/ y x)))))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (neg.f64 x))
(+ 918938533204673/1000000000000000 (+ (* -1 x) (* y (- x 1/2))))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
(- 918938533204673/1000000000000000 x)
(-.f64 #s(literal 918938533204673/1000000000000000 binary64) x)
(- (+ 918938533204673/1000000000000000 (* y (- x 1/2))) x)
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
(* y (- x 1/2))
(*.f64 (-.f64 x #s(literal 1/2 binary64)) y)
(+ (* -1 x) (* y (- x 1/2)))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (neg.f64 x))
(+ (* -1 x) (* x y))
(*.f64 (-.f64 y #s(literal 1 binary64)) x)
(* 1/2 y)
(*.f64 #s(literal 1/2 binary64) y)
(* y (- (+ x (+ (* -1 (/ x y)) (* 918938533204673/1000000000000000 (/ 1 y)))) 1/2))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
(* y (- (+ x (* 918938533204673/1000000000000000 (/ 1 y))) (+ 1/2 (/ x y))))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
(* y (- (* 918938533204673/1000000000000000 (/ 1 y)) 1/2))
(fma.f64 #s(literal -1/2 binary64) y #s(literal 918938533204673/1000000000000000 binary64))
(* y (- (+ x (* -1 (/ x y))) 1/2))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (neg.f64 x))
(* y (+ x (* -1 (/ x y))))
(*.f64 (-.f64 y #s(literal 1 binary64)) x)
(* -1 (* y (+ 1/2 (* -1 x))))
(*.f64 (-.f64 x #s(literal 1/2 binary64)) y)
(* -1 (* y (+ 1/2 (+ (* -1 x) (* -1 (/ (+ 918938533204673/1000000000000000 (* -1 x)) y))))))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
(* -1 (* y (+ (* -1 (- x 1/2)) (* -1 (/ (- 918938533204673/1000000000000000 x) y)))))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
(* -1 (* y (- 1/2 (* 918938533204673/1000000000000000 (/ 1 y)))))
(fma.f64 #s(literal -1/2 binary64) y #s(literal 918938533204673/1000000000000000 binary64))
(* -1 (* y (+ 1/2 (+ (* -1 x) (/ x y)))))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (neg.f64 x))
(* -1 (* y (+ (* -1 x) (/ x y))))
(*.f64 (-.f64 y #s(literal 1 binary64)) x)

rewrite92.0ms (1.6%)

Memory
30.6MiB live, 129.2MiB allocated; 9ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
025134
035134
1159134
01312130
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
14 → 91
Calls
Call 1
Inputs
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x)))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
(-.f64 x #s(literal 1/2 binary64))
(-.f64 #s(literal 918938533204673/1000000000000000 binary64) x)
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (fma.f64 #s(literal -1/2 binary64) y #s(literal 918938533204673/1000000000000000 binary64)))
(fma.f64 #s(literal -1/2 binary64) y #s(literal 918938533204673/1000000000000000 binary64))
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (*.f64 (-.f64 x #s(literal 1/2 binary64)) y))
(*.f64 (-.f64 x #s(literal 1/2 binary64)) y)
(-.f64 #s(approx (* x (- y 1)) (*.f64 y x)) (*.f64 y #s(literal 1/2 binary64)))
(+.f64 (-.f64 #s(approx (* x (- y 1)) (*.f64 y x)) (*.f64 y #s(literal 1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64))
#s(approx (* x (- y 1)) (*.f64 y x))
(*.f64 y x)
(*.f64 y #s(literal 1/2 binary64))
Outputs
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x)))
(/.f64 (-.f64 (*.f64 (fma.f64 (-.f64 x #s(literal 1/2 binary64)) y #s(literal 918938533204673/1000000000000000 binary64)) (fma.f64 (-.f64 x #s(literal 1/2 binary64)) y #s(literal 918938533204673/1000000000000000 binary64))) (*.f64 x x)) (+.f64 (fma.f64 (-.f64 x #s(literal 1/2 binary64)) y #s(literal 918938533204673/1000000000000000 binary64)) x))
(/.f64 (-.f64 (pow.f64 (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x) #s(literal 2 binary64)) (pow.f64 (*.f64 (-.f64 x #s(literal 1/2 binary64)) y) #s(literal 2 binary64))) (-.f64 (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x) (*.f64 (-.f64 x #s(literal 1/2 binary64)) y)))
(/.f64 (-.f64 (pow.f64 (fma.f64 (-.f64 x #s(literal 1/2 binary64)) y #s(literal 918938533204673/1000000000000000 binary64)) #s(literal 3 binary64)) (pow.f64 x #s(literal 3 binary64))) (fma.f64 (fma.f64 (-.f64 x #s(literal 1/2 binary64)) y #s(literal 918938533204673/1000000000000000 binary64)) (fma.f64 (-.f64 x #s(literal 1/2 binary64)) y #s(literal 918938533204673/1000000000000000 binary64)) (fma.f64 x x (*.f64 (fma.f64 (-.f64 x #s(literal 1/2 binary64)) y #s(literal 918938533204673/1000000000000000 binary64)) x))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (-.f64 x #s(literal 1/2 binary64)) y) #s(literal 2 binary64)) (pow.f64 (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x) #s(literal 2 binary64)))) (neg.f64 (-.f64 (*.f64 (-.f64 x #s(literal 1/2 binary64)) y) (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x) #s(literal 3 binary64)) (pow.f64 (*.f64 (-.f64 x #s(literal 1/2 binary64)) y) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x) (-.f64 (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x) (*.f64 (-.f64 x #s(literal 1/2 binary64)) y)) (pow.f64 (*.f64 (-.f64 x #s(literal 1/2 binary64)) y) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 (-.f64 x #s(literal 1/2 binary64)) y) #s(literal 2 binary64)) (pow.f64 (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x) #s(literal 2 binary64))) (-.f64 (*.f64 (-.f64 x #s(literal 1/2 binary64)) y) (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x)))
(/.f64 (+.f64 (pow.f64 (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x) #s(literal 3 binary64)) (pow.f64 (*.f64 (-.f64 x #s(literal 1/2 binary64)) y) #s(literal 3 binary64))) (+.f64 (pow.f64 (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x) #s(literal 2 binary64)) (-.f64 (pow.f64 (*.f64 (-.f64 x #s(literal 1/2 binary64)) y) #s(literal 2 binary64)) (*.f64 (*.f64 (-.f64 x #s(literal 1/2 binary64)) y) (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x)))))
(/.f64 (+.f64 (pow.f64 (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x) #s(literal 3 binary64)) (pow.f64 (*.f64 (-.f64 x #s(literal 1/2 binary64)) y) #s(literal 3 binary64))) (fma.f64 (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x) (-.f64 (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x) (*.f64 (-.f64 x #s(literal 1/2 binary64)) y)) (pow.f64 (*.f64 (-.f64 x #s(literal 1/2 binary64)) y) #s(literal 2 binary64))))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
(fma.f64 y (-.f64 x #s(literal 1/2 binary64)) (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
(-.f64 (/.f64 (pow.f64 (*.f64 (-.f64 x #s(literal 1/2 binary64)) y) #s(literal 2 binary64)) (-.f64 (*.f64 (-.f64 x #s(literal 1/2 binary64)) y) (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))) (/.f64 (pow.f64 (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x) #s(literal 2 binary64)) (-.f64 (*.f64 (-.f64 x #s(literal 1/2 binary64)) y) (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))))
(-.f64 (fma.f64 (-.f64 x #s(literal 1/2 binary64)) y #s(literal 918938533204673/1000000000000000 binary64)) x)
(-.f64 (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x) (*.f64 (neg.f64 (-.f64 x #s(literal 1/2 binary64))) y))
(-.f64 (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x) (*.f64 (neg.f64 y) (-.f64 x #s(literal 1/2 binary64))))
(-.f64 #s(literal 918938533204673/1000000000000000 binary64) (-.f64 x (*.f64 (-.f64 x #s(literal 1/2 binary64)) y)))
(+.f64 (/.f64 (pow.f64 (*.f64 (-.f64 x #s(literal 1/2 binary64)) y) #s(literal 3 binary64)) (fma.f64 (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x) (-.f64 (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x) (*.f64 (-.f64 x #s(literal 1/2 binary64)) y)) (pow.f64 (*.f64 (-.f64 x #s(literal 1/2 binary64)) y) #s(literal 2 binary64)))) (/.f64 (pow.f64 (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x) #s(literal 3 binary64)) (fma.f64 (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x) (-.f64 (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x) (*.f64 (-.f64 x #s(literal 1/2 binary64)) y)) (pow.f64 (*.f64 (-.f64 x #s(literal 1/2 binary64)) y) #s(literal 2 binary64)))))
(+.f64 (*.f64 (-.f64 x #s(literal 1/2 binary64)) y) (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
(+.f64 (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x) (*.f64 (-.f64 x #s(literal 1/2 binary64)) y))
(/.f64 (neg.f64 (fma.f64 x x #s(literal -1/4 binary64))) (neg.f64 (+.f64 #s(literal 1/2 binary64) x)))
(/.f64 (neg.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal 1/8 binary64))) (neg.f64 (fma.f64 x x (fma.f64 #s(literal 1/2 binary64) x #s(literal 1/4 binary64)))))
(/.f64 (fma.f64 x x #s(literal -1/4 binary64)) (+.f64 #s(literal 1/2 binary64) x))
(/.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal 1/8 binary64)) (fma.f64 x x (fma.f64 #s(literal 1/2 binary64) x #s(literal 1/4 binary64))))
(-.f64 (/.f64 (*.f64 x x) (+.f64 #s(literal 1/2 binary64) x)) (/.f64 #s(literal 1/4 binary64) (+.f64 #s(literal 1/2 binary64) x)))
(-.f64 (/.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 x x (fma.f64 #s(literal 1/2 binary64) x #s(literal 1/4 binary64)))) (/.f64 #s(literal 1/8 binary64) (fma.f64 x x (fma.f64 #s(literal 1/2 binary64) x #s(literal 1/4 binary64)))))
(-.f64 x #s(literal 1/2 binary64))
(/.f64 (neg.f64 (-.f64 #s(literal 844448027808355901771309036929/1000000000000000000000000000000 binary64) (*.f64 x x))) (neg.f64 (+.f64 #s(literal 918938533204673/1000000000000000 binary64) x)))
(/.f64 (neg.f64 (-.f64 #s(literal 775995832041789488711238455368417219672369217/1000000000000000000000000000000000000000000000 binary64) (pow.f64 x #s(literal 3 binary64)))) (neg.f64 (fma.f64 x (+.f64 #s(literal 918938533204673/1000000000000000 binary64) x) #s(literal 844448027808355901771309036929/1000000000000000000000000000000 binary64))))
(/.f64 (-.f64 #s(literal 844448027808355901771309036929/1000000000000000000000000000000 binary64) (*.f64 x x)) (+.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
(/.f64 (-.f64 #s(literal 775995832041789488711238455368417219672369217/1000000000000000000000000000000000000000000000 binary64) (pow.f64 x #s(literal 3 binary64))) (fma.f64 x (+.f64 #s(literal 918938533204673/1000000000000000 binary64) x) #s(literal 844448027808355901771309036929/1000000000000000000000000000000 binary64)))
(-.f64 (/.f64 #s(literal 844448027808355901771309036929/1000000000000000000000000000000 binary64) (+.f64 #s(literal 918938533204673/1000000000000000 binary64) x)) (/.f64 (*.f64 x x) (+.f64 #s(literal 918938533204673/1000000000000000 binary64) x)))
(-.f64 (/.f64 #s(literal 775995832041789488711238455368417219672369217/1000000000000000000000000000000000000000000000 binary64) (fma.f64 x (+.f64 #s(literal 918938533204673/1000000000000000 binary64) x) #s(literal 844448027808355901771309036929/1000000000000000000000000000000 binary64))) (/.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 x (+.f64 #s(literal 918938533204673/1000000000000000 binary64) x) #s(literal 844448027808355901771309036929/1000000000000000000000000000000 binary64))))
(-.f64 #s(literal 918938533204673/1000000000000000 binary64) x)
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (fma.f64 #s(literal -1/2 binary64) y #s(literal 918938533204673/1000000000000000 binary64)))
(/.f64 (-.f64 #s(literal 844448027808355901771309036929/1000000000000000000000000000000 binary64) (*.f64 #s(literal 1/4 binary64) (*.f64 y y))) (-.f64 #s(literal 918938533204673/1000000000000000 binary64) (*.f64 #s(literal -1/2 binary64) y)))
(/.f64 (neg.f64 (fma.f64 #s(literal 1/4 binary64) (*.f64 y y) #s(literal -844448027808355901771309036929/1000000000000000000000000000000 binary64))) (neg.f64 (-.f64 (*.f64 #s(literal -1/2 binary64) y) #s(literal 918938533204673/1000000000000000 binary64))))
(/.f64 (neg.f64 (fma.f64 #s(literal -1/8 binary64) (pow.f64 y #s(literal 3 binary64)) #s(literal 775995832041789488711238455368417219672369217/1000000000000000000000000000000000000000000000 binary64))) (neg.f64 (fma.f64 #s(literal 1/4 binary64) (*.f64 y y) (-.f64 #s(literal 844448027808355901771309036929/1000000000000000000000000000000 binary64) (*.f64 y #s(literal -918938533204673/2000000000000000 binary64))))))
(/.f64 (fma.f64 #s(literal 1/4 binary64) (*.f64 y y) #s(literal -844448027808355901771309036929/1000000000000000000000000000000 binary64)) (-.f64 (*.f64 #s(literal -1/2 binary64) y) #s(literal 918938533204673/1000000000000000 binary64)))
(/.f64 (fma.f64 #s(literal -1/8 binary64) (pow.f64 y #s(literal 3 binary64)) #s(literal 775995832041789488711238455368417219672369217/1000000000000000000000000000000000000000000000 binary64)) (+.f64 #s(literal 844448027808355901771309036929/1000000000000000000000000000000 binary64) (-.f64 (*.f64 #s(literal 1/4 binary64) (*.f64 y y)) (*.f64 y #s(literal -918938533204673/2000000000000000 binary64)))))
(/.f64 (fma.f64 #s(literal -1/8 binary64) (pow.f64 y #s(literal 3 binary64)) #s(literal 775995832041789488711238455368417219672369217/1000000000000000000000000000000000000000000000 binary64)) (fma.f64 #s(literal 1/4 binary64) (*.f64 y y) (-.f64 #s(literal 844448027808355901771309036929/1000000000000000000000000000000 binary64) (*.f64 y #s(literal -918938533204673/2000000000000000 binary64)))))
(fma.f64 #s(literal -1/2 binary64) y #s(literal 918938533204673/1000000000000000 binary64))
(fma.f64 y #s(literal -1/2 binary64) #s(literal 918938533204673/1000000000000000 binary64))
(-.f64 (/.f64 (*.f64 #s(literal 1/4 binary64) (*.f64 y y)) (-.f64 (*.f64 #s(literal -1/2 binary64) y) #s(literal 918938533204673/1000000000000000 binary64))) (/.f64 #s(literal 844448027808355901771309036929/1000000000000000000000000000000 binary64) (-.f64 (*.f64 #s(literal -1/2 binary64) y) #s(literal 918938533204673/1000000000000000 binary64))))
(-.f64 #s(literal 918938533204673/1000000000000000 binary64) (*.f64 (neg.f64 y) #s(literal -1/2 binary64)))
(-.f64 #s(literal 918938533204673/1000000000000000 binary64) (*.f64 #s(literal 1/2 binary64) y))
(+.f64 (/.f64 (pow.f64 (*.f64 #s(literal -1/2 binary64) y) #s(literal 3 binary64)) (fma.f64 #s(literal 1/4 binary64) (*.f64 y y) (-.f64 #s(literal 844448027808355901771309036929/1000000000000000000000000000000 binary64) (*.f64 y #s(literal -918938533204673/2000000000000000 binary64))))) (/.f64 #s(literal 775995832041789488711238455368417219672369217/1000000000000000000000000000000000000000000000 binary64) (fma.f64 #s(literal 1/4 binary64) (*.f64 y y) (-.f64 #s(literal 844448027808355901771309036929/1000000000000000000000000000000 binary64) (*.f64 y #s(literal -918938533204673/2000000000000000 binary64))))))
(+.f64 (*.f64 #s(literal -1/2 binary64) y) #s(literal 918938533204673/1000000000000000 binary64))
(+.f64 #s(literal 918938533204673/1000000000000000 binary64) (*.f64 #s(literal -1/2 binary64) y))
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (*.f64 (-.f64 x #s(literal 1/2 binary64)) y))
(*.f64 (-.f64 x #s(literal 1/2 binary64)) y)
(*.f64 y (-.f64 x #s(literal 1/2 binary64)))
(/.f64 (*.f64 (fma.f64 x x #s(literal -1/4 binary64)) y) (+.f64 #s(literal 1/2 binary64) x))
(/.f64 (*.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal 1/8 binary64)) y) (fma.f64 x x (fma.f64 #s(literal 1/2 binary64) x #s(literal 1/4 binary64))))
(/.f64 (*.f64 y (fma.f64 x x #s(literal -1/4 binary64))) (+.f64 #s(literal 1/2 binary64) x))
(/.f64 (*.f64 y (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal 1/8 binary64))) (fma.f64 x x (fma.f64 #s(literal 1/2 binary64) x #s(literal 1/4 binary64))))
(/.f64 (+.f64 (pow.f64 #s(approx (* x (- y 1)) (*.f64 y x)) #s(literal 3 binary64)) (pow.f64 (*.f64 (neg.f64 y) #s(literal 1/2 binary64)) #s(literal 3 binary64))) (+.f64 (pow.f64 #s(approx (* x (- y 1)) (*.f64 y x)) #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal 1/4 binary64) (*.f64 y y)) (*.f64 #s(approx (* x (- y 1)) (*.f64 y x)) (*.f64 (neg.f64 y) #s(literal 1/2 binary64))))))
(/.f64 (neg.f64 (-.f64 (pow.f64 #s(approx (* x (- y 1)) (*.f64 y x)) #s(literal 2 binary64)) (*.f64 #s(literal 1/4 binary64) (*.f64 y y)))) (neg.f64 (fma.f64 #s(literal 1/2 binary64) y #s(approx (* x (- y 1)) (*.f64 y x)))))
(/.f64 (neg.f64 (-.f64 (pow.f64 #s(approx (* x (- y 1)) (*.f64 y x)) #s(literal 3 binary64)) (*.f64 #s(literal 1/8 binary64) (pow.f64 y #s(literal 3 binary64))))) (neg.f64 (fma.f64 (*.f64 #s(literal 1/2 binary64) y) (fma.f64 #s(literal 1/2 binary64) y #s(approx (* x (- y 1)) (*.f64 y x))) (pow.f64 #s(approx (* x (- y 1)) (*.f64 y x)) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 #s(approx (* x (- y 1)) (*.f64 y x)) #s(literal 2 binary64)) (*.f64 #s(literal 1/4 binary64) (*.f64 y y))) (fma.f64 #s(literal 1/2 binary64) y #s(approx (* x (- y 1)) (*.f64 y x))))
(/.f64 (-.f64 (pow.f64 #s(approx (* x (- y 1)) (*.f64 y x)) #s(literal 3 binary64)) (*.f64 #s(literal 1/8 binary64) (pow.f64 y #s(literal 3 binary64)))) (fma.f64 (*.f64 #s(literal 1/2 binary64) y) (fma.f64 #s(literal 1/2 binary64) y #s(approx (* x (- y 1)) (*.f64 y x))) (pow.f64 #s(approx (* x (- y 1)) (*.f64 y x)) #s(literal 2 binary64))))
(fma.f64 (neg.f64 y) #s(literal 1/2 binary64) #s(approx (* x (- y 1)) (*.f64 y x)))
(fma.f64 #s(literal 1/2 binary64) (neg.f64 y) #s(approx (* x (- y 1)) (*.f64 y x)))
(-.f64 (/.f64 (pow.f64 #s(approx (* x (- y 1)) (*.f64 y x)) #s(literal 2 binary64)) (fma.f64 #s(literal 1/2 binary64) y #s(approx (* x (- y 1)) (*.f64 y x)))) (/.f64 (*.f64 #s(literal 1/4 binary64) (*.f64 y y)) (fma.f64 #s(literal 1/2 binary64) y #s(approx (* x (- y 1)) (*.f64 y x)))))
(-.f64 (/.f64 (pow.f64 #s(approx (* x (- y 1)) (*.f64 y x)) #s(literal 3 binary64)) (fma.f64 (*.f64 #s(literal 1/2 binary64) y) (fma.f64 #s(literal 1/2 binary64) y #s(approx (* x (- y 1)) (*.f64 y x))) (pow.f64 #s(approx (* x (- y 1)) (*.f64 y x)) #s(literal 2 binary64)))) (/.f64 (*.f64 #s(literal 1/8 binary64) (pow.f64 y #s(literal 3 binary64))) (fma.f64 (*.f64 #s(literal 1/2 binary64) y) (fma.f64 #s(literal 1/2 binary64) y #s(approx (* x (- y 1)) (*.f64 y x))) (pow.f64 #s(approx (* x (- y 1)) (*.f64 y x)) #s(literal 2 binary64)))))
(-.f64 #s(approx (* x (- y 1)) (*.f64 y x)) (*.f64 (neg.f64 (neg.f64 y)) #s(literal 1/2 binary64)))
(-.f64 #s(approx (* x (- y 1)) (*.f64 y x)) (*.f64 #s(literal 1/2 binary64) y))
(+.f64 (*.f64 (neg.f64 y) #s(literal 1/2 binary64)) #s(approx (* x (- y 1)) (*.f64 y x)))
(+.f64 #s(approx (* x (- y 1)) (*.f64 y x)) (*.f64 (neg.f64 y) #s(literal 1/2 binary64)))
(+.f64 #s(approx (* x (- y 1)) (*.f64 y x)) (*.f64 #s(literal -1/2 binary64) y))
(/.f64 (-.f64 (pow.f64 #s(approx (* x (- y 1)) (*.f64 y x)) #s(literal 2 binary64)) (*.f64 (-.f64 (*.f64 #s(literal 1/2 binary64) y) #s(literal 918938533204673/1000000000000000 binary64)) (-.f64 (*.f64 #s(literal 1/2 binary64) y) #s(literal 918938533204673/1000000000000000 binary64)))) (+.f64 #s(approx (* x (- y 1)) (*.f64 y x)) (-.f64 (*.f64 #s(literal 1/2 binary64) y) #s(literal 918938533204673/1000000000000000 binary64))))
(/.f64 (-.f64 #s(literal 844448027808355901771309036929/1000000000000000000000000000000 binary64) (pow.f64 (fma.f64 (neg.f64 y) #s(literal 1/2 binary64) #s(approx (* x (- y 1)) (*.f64 y x))) #s(literal 2 binary64))) (-.f64 #s(literal 918938533204673/1000000000000000 binary64) (fma.f64 (neg.f64 y) #s(literal 1/2 binary64) #s(approx (* x (- y 1)) (*.f64 y x)))))
(/.f64 (-.f64 (pow.f64 #s(approx (* x (- y 1)) (*.f64 y x)) #s(literal 3 binary64)) (pow.f64 (-.f64 (*.f64 #s(literal 1/2 binary64) y) #s(literal 918938533204673/1000000000000000 binary64)) #s(literal 3 binary64))) (+.f64 (pow.f64 #s(approx (* x (- y 1)) (*.f64 y x)) #s(literal 2 binary64)) (fma.f64 (-.f64 (*.f64 #s(literal 1/2 binary64) y) #s(literal 918938533204673/1000000000000000 binary64)) (-.f64 (*.f64 #s(literal 1/2 binary64) y) #s(literal 918938533204673/1000000000000000 binary64)) (*.f64 #s(approx (* x (- y 1)) (*.f64 y x)) (-.f64 (*.f64 #s(literal 1/2 binary64) y) #s(literal 918938533204673/1000000000000000 binary64))))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (fma.f64 (neg.f64 y) #s(literal 1/2 binary64) #s(approx (* x (- y 1)) (*.f64 y x))) #s(literal 2 binary64)) #s(literal 844448027808355901771309036929/1000000000000000000000000000000 binary64))) (neg.f64 (-.f64 #s(approx (* x (- y 1)) (*.f64 y x)) (fma.f64 #s(literal 1/2 binary64) y #s(literal 918938533204673/1000000000000000 binary64)))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (fma.f64 (neg.f64 y) #s(literal 1/2 binary64) #s(approx (* x (- y 1)) (*.f64 y x))) #s(literal 3 binary64)) #s(literal 775995832041789488711238455368417219672369217/1000000000000000000000000000000000000000000000 binary64))) (neg.f64 (fma.f64 #s(literal 918938533204673/1000000000000000 binary64) (-.f64 #s(literal 918938533204673/1000000000000000 binary64) (fma.f64 (neg.f64 y) #s(literal 1/2 binary64) #s(approx (* x (- y 1)) (*.f64 y x)))) (pow.f64 (fma.f64 (neg.f64 y) #s(literal 1/2 binary64) #s(approx (* x (- y 1)) (*.f64 y x))) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (fma.f64 (neg.f64 y) #s(literal 1/2 binary64) #s(approx (* x (- y 1)) (*.f64 y x))) #s(literal 2 binary64)) #s(literal 844448027808355901771309036929/1000000000000000000000000000000 binary64)) (-.f64 #s(approx (* x (- y 1)) (*.f64 y x)) (fma.f64 #s(literal 1/2 binary64) y #s(literal 918938533204673/1000000000000000 binary64))))
(/.f64 (+.f64 (pow.f64 (fma.f64 (neg.f64 y) #s(literal 1/2 binary64) #s(approx (* x (- y 1)) (*.f64 y x))) #s(literal 3 binary64)) #s(literal 775995832041789488711238455368417219672369217/1000000000000000000000000000000000000000000000 binary64)) (+.f64 #s(literal 844448027808355901771309036929/1000000000000000000000000000000 binary64) (-.f64 (pow.f64 (fma.f64 (neg.f64 y) #s(literal 1/2 binary64) #s(approx (* x (- y 1)) (*.f64 y x))) #s(literal 2 binary64)) (*.f64 (fma.f64 (neg.f64 y) #s(literal 1/2 binary64) #s(approx (* x (- y 1)) (*.f64 y x))) #s(literal 918938533204673/1000000000000000 binary64)))))
(/.f64 (+.f64 (pow.f64 (fma.f64 (neg.f64 y) #s(literal 1/2 binary64) #s(approx (* x (- y 1)) (*.f64 y x))) #s(literal 3 binary64)) #s(literal 775995832041789488711238455368417219672369217/1000000000000000000000000000000000000000000000 binary64)) (fma.f64 #s(literal 918938533204673/1000000000000000 binary64) (-.f64 #s(literal 918938533204673/1000000000000000 binary64) (fma.f64 (neg.f64 y) #s(literal 1/2 binary64) #s(approx (* x (- y 1)) (*.f64 y x)))) (pow.f64 (fma.f64 (neg.f64 y) #s(literal 1/2 binary64) #s(approx (* x (- y 1)) (*.f64 y x))) #s(literal 2 binary64))))
(-.f64 (+.f64 #s(literal 918938533204673/1000000000000000 binary64) #s(approx (* x (- y 1)) (*.f64 y x))) (*.f64 #s(literal 1/2 binary64) y))
(-.f64 (/.f64 (pow.f64 (fma.f64 (neg.f64 y) #s(literal 1/2 binary64) #s(approx (* x (- y 1)) (*.f64 y x))) #s(literal 2 binary64)) (-.f64 #s(approx (* x (- y 1)) (*.f64 y x)) (fma.f64 #s(literal 1/2 binary64) y #s(literal 918938533204673/1000000000000000 binary64)))) (/.f64 #s(literal 844448027808355901771309036929/1000000000000000000000000000000 binary64) (-.f64 #s(approx (* x (- y 1)) (*.f64 y x)) (fma.f64 #s(literal 1/2 binary64) y #s(literal 918938533204673/1000000000000000 binary64)))))
(-.f64 #s(approx (* x (- y 1)) (*.f64 y x)) (-.f64 (*.f64 #s(literal 1/2 binary64) y) #s(literal 918938533204673/1000000000000000 binary64)))
(+.f64 (+.f64 #s(literal 918938533204673/1000000000000000 binary64) #s(approx (* x (- y 1)) (*.f64 y x))) (*.f64 (neg.f64 y) #s(literal 1/2 binary64)))
(+.f64 (/.f64 (pow.f64 (fma.f64 (neg.f64 y) #s(literal 1/2 binary64) #s(approx (* x (- y 1)) (*.f64 y x))) #s(literal 3 binary64)) (fma.f64 #s(literal 918938533204673/1000000000000000 binary64) (-.f64 #s(literal 918938533204673/1000000000000000 binary64) (fma.f64 (neg.f64 y) #s(literal 1/2 binary64) #s(approx (* x (- y 1)) (*.f64 y x)))) (pow.f64 (fma.f64 (neg.f64 y) #s(literal 1/2 binary64) #s(approx (* x (- y 1)) (*.f64 y x))) #s(literal 2 binary64)))) (/.f64 #s(literal 775995832041789488711238455368417219672369217/1000000000000000000000000000000000000000000000 binary64) (fma.f64 #s(literal 918938533204673/1000000000000000 binary64) (-.f64 #s(literal 918938533204673/1000000000000000 binary64) (fma.f64 (neg.f64 y) #s(literal 1/2 binary64) #s(approx (* x (- y 1)) (*.f64 y x)))) (pow.f64 (fma.f64 (neg.f64 y) #s(literal 1/2 binary64) #s(approx (* x (- y 1)) (*.f64 y x))) #s(literal 2 binary64)))))
(+.f64 (fma.f64 (neg.f64 y) #s(literal 1/2 binary64) #s(approx (* x (- y 1)) (*.f64 y x))) #s(literal 918938533204673/1000000000000000 binary64))
(+.f64 #s(approx (* x (- y 1)) (*.f64 y x)) (fma.f64 (neg.f64 y) #s(literal 1/2 binary64) #s(literal 918938533204673/1000000000000000 binary64)))
(+.f64 #s(literal 918938533204673/1000000000000000 binary64) (fma.f64 (neg.f64 y) #s(literal 1/2 binary64) #s(approx (* x (- y 1)) (*.f64 y x))))
#s(approx (* x (- y 1)) (*.f64 y x))
(*.f64 y x)
(*.f64 x y)
(*.f64 #s(literal 1/2 binary64) y)
(*.f64 y #s(literal 1/2 binary64))

eval14.0ms (0.3%)

Memory
-15.1MiB live, 31.5MiB allocated; 3ms collecting garbage
Compiler

Compiled 3 448 to 414 computations (88% saved)

prune7.0ms (0.1%)

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

9 alts after pruning (5 fresh and 4 done)

PrunedKeptTotal
New1215126
Fresh000
Picked145
Done000
Total1229131
Accuracy
100.0%
Counts
131 → 9
Alt Table
Click to see full alt table
StatusAccuracyProgram
72.1%
(+.f64 (-.f64 #s(approx (* x (- y 1)) (*.f64 y x)) (*.f64 y #s(literal 1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64))
72.5%
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (fma.f64 (-.f64 x #s(literal 1/2 binary64)) y #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x))))
46.7%
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (fma.f64 #s(literal -1/2 binary64) y #s(literal 918938533204673/1000000000000000 binary64)))
55.9%
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
44.9%
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (*.f64 (-.f64 x #s(literal 1/2 binary64)) y))
19.4%
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (*.f64 #s(approx (- x 1/2) #s(literal -1/2 binary64)) y))
29.8%
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)))
28.6%
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (- 918938533204673/1000000000000000 x) #s(literal 918938533204673/1000000000000000 binary64)))
54.9%
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (+ (* (- x 1/2) y) (- 918938533204673/1000000000000000 x)) (*.f64 (-.f64 y #s(literal 1 binary64)) x)))
Compiler

Compiled 271 to 211 computations (22.1% saved)

simplify182.0ms (3.2%)

Memory
-26.8MiB live, 162.1MiB allocated; 21ms collecting garbage
Localize:

Found 16 expressions of interest:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
030184
036184
152184
279184
3130184
4212184
5437184
62470184
76430184
08186172
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (fma.f64 (-.f64 x #s(literal 1/2 binary64)) y #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x))))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)))
(-.f64 x #s(literal 1/2 binary64))
x
#s(literal 1/2 binary64)
y
#s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x))
(neg.f64 x)
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (- 918938533204673/1000000000000000 x) #s(literal 918938533204673/1000000000000000 binary64)))
#s(approx (- 918938533204673/1000000000000000 x) #s(literal 918938533204673/1000000000000000 binary64))
#s(literal 918938533204673/1000000000000000 binary64)
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)))
#s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x))
(neg.f64 x)
x
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (*.f64 #s(approx (- x 1/2) #s(literal -1/2 binary64)) y))
(*.f64 #s(approx (- x 1/2) #s(literal -1/2 binary64)) y)
#s(approx (- x 1/2) #s(literal -1/2 binary64))
#s(literal -1/2 binary64)
y
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (+ (* (- x 1/2) y) (- 918938533204673/1000000000000000 x)) (*.f64 (-.f64 y #s(literal 1 binary64)) x)))
#s(approx (+ (* (- x 1/2) y) (- 918938533204673/1000000000000000 x)) (*.f64 (-.f64 y #s(literal 1 binary64)) x))
(*.f64 (-.f64 y #s(literal 1 binary64)) x)
(-.f64 y #s(literal 1 binary64))
y
#s(literal 1 binary64)
x
Outputs
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (fma.f64 (-.f64 x #s(literal 1/2 binary64)) y #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x))))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)))
(-.f64 x #s(literal 1/2 binary64))
x
#s(literal 1/2 binary64)
y
#s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x))
(neg.f64 x)
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (- 918938533204673/1000000000000000 x) #s(literal 918938533204673/1000000000000000 binary64)))
#s(approx (- 918938533204673/1000000000000000 x) #s(literal 918938533204673/1000000000000000 binary64))
#s(literal 918938533204673/1000000000000000 binary64)
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)))
#s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x))
(neg.f64 x)
x
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (*.f64 #s(approx (- x 1/2) #s(literal -1/2 binary64)) y))
(*.f64 #s(approx (- x 1/2) #s(literal -1/2 binary64)) y)
#s(approx (- x 1/2) #s(literal -1/2 binary64))
#s(literal -1/2 binary64)
y
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (+ (* (- x 1/2) y) (- 918938533204673/1000000000000000 x)) (*.f64 (-.f64 y #s(literal 1 binary64)) x)))
#s(approx (+ (* (- x 1/2) y) (- 918938533204673/1000000000000000 x)) (*.f64 (-.f64 y #s(literal 1 binary64)) x))
(*.f64 (-.f64 y #s(literal 1 binary64)) x)
(-.f64 y #s(literal 1 binary64))
y
#s(literal 1 binary64)
x

localize58.0ms (1%)

Memory
1.6MiB live, 93.8MiB allocated; 8ms collecting garbage
Localize:

Found 16 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(-.f64 y #s(literal 1 binary64))
accuracy0.0
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (+ (* (- x 1/2) y) (- 918938533204673/1000000000000000 x)) (*.f64 (-.f64 y #s(literal 1 binary64)) x)))
accuracy0.00390625
(*.f64 (-.f64 y #s(literal 1 binary64)) x)
accuracy28.87095982855468
#s(approx (+ (* (- x 1/2) y) (- 918938533204673/1000000000000000 x)) (*.f64 (-.f64 y #s(literal 1 binary64)) x))
accuracy0.0078125
(*.f64 #s(approx (- x 1/2) #s(literal -1/2 binary64)) y)
accuracy34.1745557897975
#s(approx (- x 1/2) #s(literal -1/2 binary64))
accuracy35.267980709721535
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (*.f64 #s(approx (- x 1/2) #s(literal -1/2 binary64)) y))
accuracy0.0
(neg.f64 x)
accuracy28.240257355893654
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)))
accuracy28.848433344208715
#s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x))
accuracy28.240257355893654
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (- 918938533204673/1000000000000000 x) #s(literal 918938533204673/1000000000000000 binary64)))
accuracy34.15904737625122
#s(approx (- 918938533204673/1000000000000000 x) #s(literal 918938533204673/1000000000000000 binary64))
accuracy0.0
(neg.f64 x)
accuracy0.0
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (fma.f64 (-.f64 x #s(literal 1/2 binary64)) y #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x))))
accuracy0.0078125
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)))
accuracy28.848433344208715
#s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x))
Samples
43.0ms256×0valid
Compiler

Compiled 117 to 19 computations (83.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 19.0ms
ival-mult: 6.0ms (30.8% of total)
ival-sub: 5.0ms (25.7% of total)
const: 5.0ms (25.7% of total)
ival-add: 2.0ms (10.3% of total)
ival-neg: 1.0ms (5.1% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series6.0ms (0.1%)

Memory
13.6MiB live, 13.6MiB allocated; 0ms collecting garbage
Counts
15 → 42
Calls
Call 1
Inputs
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (fma.f64 (-.f64 x #s(literal 1/2 binary64)) y #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x))))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)))
(-.f64 x #s(literal 1/2 binary64))
#s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x))
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (- 918938533204673/1000000000000000 x) #s(literal 918938533204673/1000000000000000 binary64)))
#s(approx (- 918938533204673/1000000000000000 x) #s(literal 918938533204673/1000000000000000 binary64))
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)))
(neg.f64 x)
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (*.f64 #s(approx (- x 1/2) #s(literal -1/2 binary64)) y))
(*.f64 #s(approx (- x 1/2) #s(literal -1/2 binary64)) y)
#s(approx (- x 1/2) #s(literal -1/2 binary64))
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (+ (* (- x 1/2) y) (- 918938533204673/1000000000000000 x)) (*.f64 (-.f64 y #s(literal 1 binary64)) x)))
#s(approx (+ (* (- x 1/2) y) (- 918938533204673/1000000000000000 x)) (*.f64 (-.f64 y #s(literal 1 binary64)) x))
(*.f64 (-.f64 y #s(literal 1 binary64)) x)
(-.f64 y #s(literal 1 binary64))
Outputs
(- 918938533204673/1000000000000000 (* 1/2 y))
(- (+ 918938533204673/1000000000000000 (* x (- y 1))) (* 1/2 y))
(+ 918938533204673/1000000000000000 (* -1/2 y))
(+ 918938533204673/1000000000000000 (+ (* -1/2 y) (* x (- y 1))))
-1/2
(- x 1/2)
918938533204673/1000000000000000
(+ 918938533204673/1000000000000000 (* -1 x))
(* -1 x)
(* -1/2 y)
(+ (* -1/2 y) (* x y))
(* x (- y 1))
(* x (- (+ y (* 918938533204673/1000000000000000 (/ 1 x))) (+ 1 (* 1/2 (/ y x)))))
(* x (- (+ y (+ (* -1/2 (/ y x)) (* 918938533204673/1000000000000000 (/ 1 x)))) 1))
x
(* x (- 1 (* 1/2 (/ 1 x))))
(* x (- (* 918938533204673/1000000000000000 (/ 1 x)) 1))
(* x y)
(* x (+ y (* -1/2 (/ y x))))
(* -1 (* x (+ (* -1 (- y 1)) (* -1 (/ (- 918938533204673/1000000000000000 (* 1/2 y)) x)))))
(* -1 (* x (+ 1 (* -1 y))))
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ (+ 918938533204673/1000000000000000 (* -1/2 y)) x))))))
(* -1 (* x (- (* 1/2 (/ 1 x)) 1)))
(* -1 (* x (- 1 (* 918938533204673/1000000000000000 (/ 1 x)))))
(* -1 (* x (+ (* -1 y) (* 1/2 (/ y x)))))
(+ 918938533204673/1000000000000000 (+ (* -1 x) (* y (- x 1/2))))
(- 918938533204673/1000000000000000 x)
(- (+ 918938533204673/1000000000000000 (* y (- x 1/2))) x)
(* y (- x 1/2))
(+ (* -1 x) (* x y))
-1
(- y 1)
(* y (- (+ x (+ (* -1 (/ x y)) (* 918938533204673/1000000000000000 (/ 1 y)))) 1/2))
(* y (- (+ x (* 918938533204673/1000000000000000 (/ 1 y))) (+ 1/2 (/ x y))))
(* y (+ x (* -1 (/ x y))))
y
(* y (- 1 (/ 1 y)))
(* -1 (* y (+ 1/2 (* -1 x))))
(* -1 (* y (+ 1/2 (+ (* -1 x) (* -1 (/ (+ 918938533204673/1000000000000000 (* -1 x)) y))))))
(* -1 (* y (+ (* -1 (- x 1/2)) (* -1 (/ (- 918938533204673/1000000000000000 x) y)))))
(* -1 (* y (+ (* -1 x) (/ x y))))
(* -1 (* y (- (/ 1 y) 1)))
Calls

6 calls:

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

simplify183.0ms (3.2%)

Memory
6.6MiB live, 187.5MiB allocated; 20ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0111244
1382244
21304220
34036219
08495205
Stop Event
iter limit
node limit
Counts
42 → 40
Calls
Call 1
Inputs
(- 918938533204673/1000000000000000 (* 1/2 y))
(- (+ 918938533204673/1000000000000000 (* x (- y 1))) (* 1/2 y))
(+ 918938533204673/1000000000000000 (* -1/2 y))
(+ 918938533204673/1000000000000000 (+ (* -1/2 y) (* x (- y 1))))
-1/2
(- x 1/2)
918938533204673/1000000000000000
(+ 918938533204673/1000000000000000 (* -1 x))
(* -1 x)
(* -1/2 y)
(+ (* -1/2 y) (* x y))
(* x (- y 1))
(* x (- (+ y (* 918938533204673/1000000000000000 (/ 1 x))) (+ 1 (* 1/2 (/ y x)))))
(* x (- (+ y (+ (* -1/2 (/ y x)) (* 918938533204673/1000000000000000 (/ 1 x)))) 1))
x
(* x (- 1 (* 1/2 (/ 1 x))))
(* x (- (* 918938533204673/1000000000000000 (/ 1 x)) 1))
(* x y)
(* x (+ y (* -1/2 (/ y x))))
(* -1 (* x (+ (* -1 (- y 1)) (* -1 (/ (- 918938533204673/1000000000000000 (* 1/2 y)) x)))))
(* -1 (* x (+ 1 (* -1 y))))
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ (+ 918938533204673/1000000000000000 (* -1/2 y)) x))))))
(* -1 (* x (- (* 1/2 (/ 1 x)) 1)))
(* -1 (* x (- 1 (* 918938533204673/1000000000000000 (/ 1 x)))))
(* -1 (* x (+ (* -1 y) (* 1/2 (/ y x)))))
(+ 918938533204673/1000000000000000 (+ (* -1 x) (* y (- x 1/2))))
(- 918938533204673/1000000000000000 x)
(- (+ 918938533204673/1000000000000000 (* y (- x 1/2))) x)
(* y (- x 1/2))
(+ (* -1 x) (* x y))
-1
(- y 1)
(* y (- (+ x (+ (* -1 (/ x y)) (* 918938533204673/1000000000000000 (/ 1 y)))) 1/2))
(* y (- (+ x (* 918938533204673/1000000000000000 (/ 1 y))) (+ 1/2 (/ x y))))
(* y (+ x (* -1 (/ x y))))
y
(* y (- 1 (/ 1 y)))
(* -1 (* y (+ 1/2 (* -1 x))))
(* -1 (* y (+ 1/2 (+ (* -1 x) (* -1 (/ (+ 918938533204673/1000000000000000 (* -1 x)) y))))))
(* -1 (* y (+ (* -1 (- x 1/2)) (* -1 (/ (- 918938533204673/1000000000000000 x) y)))))
(* -1 (* y (+ (* -1 x) (/ x y))))
(* -1 (* y (- (/ 1 y) 1)))
Outputs
(- 918938533204673/1000000000000000 (* 1/2 y))
(fma.f64 #s(literal -1/2 binary64) y #s(literal 918938533204673/1000000000000000 binary64))
(- (+ 918938533204673/1000000000000000 (* x (- y 1))) (* 1/2 y))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
(+ 918938533204673/1000000000000000 (* -1/2 y))
(fma.f64 #s(literal -1/2 binary64) y #s(literal 918938533204673/1000000000000000 binary64))
(+ 918938533204673/1000000000000000 (+ (* -1/2 y) (* x (- y 1))))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
-1/2
#s(literal -1/2 binary64)
(- x 1/2)
(-.f64 x #s(literal 1/2 binary64))
918938533204673/1000000000000000
#s(literal 918938533204673/1000000000000000 binary64)
(+ 918938533204673/1000000000000000 (* -1 x))
(-.f64 #s(literal 918938533204673/1000000000000000 binary64) x)
(* -1 x)
(neg.f64 x)
(* -1/2 y)
(*.f64 #s(literal -1/2 binary64) y)
(+ (* -1/2 y) (* x y))
(*.f64 (-.f64 x #s(literal 1/2 binary64)) y)
(* x (- y 1))
(*.f64 (-.f64 y #s(literal 1 binary64)) x)
(* x (- (+ y (* 918938533204673/1000000000000000 (/ 1 x))) (+ 1 (* 1/2 (/ y x)))))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
(* x (- (+ y (+ (* -1/2 (/ y x)) (* 918938533204673/1000000000000000 (/ 1 x)))) 1))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
x
(* x (- 1 (* 1/2 (/ 1 x))))
(-.f64 x #s(literal 1/2 binary64))
(* x (- (* 918938533204673/1000000000000000 (/ 1 x)) 1))
(-.f64 #s(literal 918938533204673/1000000000000000 binary64) x)
(* x y)
(*.f64 y x)
(* x (+ y (* -1/2 (/ y x))))
(*.f64 (-.f64 x #s(literal 1/2 binary64)) y)
(* -1 (* x (+ (* -1 (- y 1)) (* -1 (/ (- 918938533204673/1000000000000000 (* 1/2 y)) x)))))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
(* -1 (* x (+ 1 (* -1 y))))
(*.f64 (-.f64 y #s(literal 1 binary64)) x)
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ (+ 918938533204673/1000000000000000 (* -1/2 y)) x))))))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
(* -1 (* x (- (* 1/2 (/ 1 x)) 1)))
(-.f64 x #s(literal 1/2 binary64))
(* -1 (* x (- 1 (* 918938533204673/1000000000000000 (/ 1 x)))))
(-.f64 #s(literal 918938533204673/1000000000000000 binary64) x)
(* -1 (* x (+ (* -1 y) (* 1/2 (/ y x)))))
(*.f64 (-.f64 x #s(literal 1/2 binary64)) y)
(+ 918938533204673/1000000000000000 (+ (* -1 x) (* y (- x 1/2))))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
(- 918938533204673/1000000000000000 x)
(-.f64 #s(literal 918938533204673/1000000000000000 binary64) x)
(- (+ 918938533204673/1000000000000000 (* y (- x 1/2))) x)
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
(* y (- x 1/2))
(*.f64 (-.f64 x #s(literal 1/2 binary64)) y)
(+ (* -1 x) (* x y))
(*.f64 (-.f64 y #s(literal 1 binary64)) x)
-1
#s(literal -1 binary64)
(- y 1)
(-.f64 y #s(literal 1 binary64))
(* y (- (+ x (+ (* -1 (/ x y)) (* 918938533204673/1000000000000000 (/ 1 y)))) 1/2))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
(* y (- (+ x (* 918938533204673/1000000000000000 (/ 1 y))) (+ 1/2 (/ x y))))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
(* y (+ x (* -1 (/ x y))))
(*.f64 (-.f64 y #s(literal 1 binary64)) x)
y
(* y (- 1 (/ 1 y)))
(*.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) y)) y)
(* -1 (* y (+ 1/2 (* -1 x))))
(*.f64 (-.f64 x #s(literal 1/2 binary64)) y)
(* -1 (* y (+ 1/2 (+ (* -1 x) (* -1 (/ (+ 918938533204673/1000000000000000 (* -1 x)) y))))))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
(* -1 (* y (+ (* -1 (- x 1/2)) (* -1 (/ (- 918938533204673/1000000000000000 x) y)))))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
(* -1 (* y (+ (* -1 x) (/ x y))))
(*.f64 (-.f64 y #s(literal 1 binary64)) x)
(* -1 (* y (- (/ 1 y) 1)))
(*.f64 (+.f64 (/.f64 #s(literal -1 binary64) y) #s(literal 1 binary64)) y)

rewrite167.0ms (3%)

Memory
6.2MiB live, 138.4MiB allocated; 109ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
030166
036166
1136166
01025159
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
15 → 47
Calls
Call 1
Inputs
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (fma.f64 (-.f64 x #s(literal 1/2 binary64)) y #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x))))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)))
(-.f64 x #s(literal 1/2 binary64))
#s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x))
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (- 918938533204673/1000000000000000 x) #s(literal 918938533204673/1000000000000000 binary64)))
#s(approx (- 918938533204673/1000000000000000 x) #s(literal 918938533204673/1000000000000000 binary64))
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)))
(neg.f64 x)
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (*.f64 #s(approx (- x 1/2) #s(literal -1/2 binary64)) y))
(*.f64 #s(approx (- x 1/2) #s(literal -1/2 binary64)) y)
#s(approx (- x 1/2) #s(literal -1/2 binary64))
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (+ (* (- x 1/2) y) (- 918938533204673/1000000000000000 x)) (*.f64 (-.f64 y #s(literal 1 binary64)) x)))
#s(approx (+ (* (- x 1/2) y) (- 918938533204673/1000000000000000 x)) (*.f64 (-.f64 y #s(literal 1 binary64)) x))
(*.f64 (-.f64 y #s(literal 1 binary64)) x)
(-.f64 y #s(literal 1 binary64))
Outputs
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (fma.f64 (-.f64 x #s(literal 1/2 binary64)) y #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x))))
(/.f64 (-.f64 (pow.f64 #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)) #s(literal 2 binary64)) (pow.f64 (*.f64 (-.f64 x #s(literal 1/2 binary64)) y) #s(literal 2 binary64))) (-.f64 #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)) (*.f64 (-.f64 x #s(literal 1/2 binary64)) y)))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (-.f64 x #s(literal 1/2 binary64)) y) #s(literal 2 binary64)) (pow.f64 #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)) #s(literal 2 binary64)))) (neg.f64 (-.f64 (*.f64 (-.f64 x #s(literal 1/2 binary64)) y) #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)))))
(/.f64 (neg.f64 (+.f64 (pow.f64 #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)) #s(literal 3 binary64)) (pow.f64 (*.f64 (-.f64 x #s(literal 1/2 binary64)) y) #s(literal 3 binary64)))) (neg.f64 (fma.f64 #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)) (-.f64 #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)) (*.f64 (-.f64 x #s(literal 1/2 binary64)) y)) (pow.f64 (*.f64 (-.f64 x #s(literal 1/2 binary64)) y) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 (-.f64 x #s(literal 1/2 binary64)) y) #s(literal 2 binary64)) (pow.f64 #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)) #s(literal 2 binary64))) (-.f64 (*.f64 (-.f64 x #s(literal 1/2 binary64)) y) #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x))))
(/.f64 (+.f64 (pow.f64 #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)) #s(literal 3 binary64)) (pow.f64 (*.f64 (-.f64 x #s(literal 1/2 binary64)) y) #s(literal 3 binary64))) (fma.f64 #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)) #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)) (-.f64 (pow.f64 (*.f64 (-.f64 x #s(literal 1/2 binary64)) y) #s(literal 2 binary64)) (*.f64 (*.f64 (-.f64 x #s(literal 1/2 binary64)) y) #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x))))))
(/.f64 (+.f64 (pow.f64 #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)) #s(literal 3 binary64)) (pow.f64 (*.f64 (-.f64 x #s(literal 1/2 binary64)) y) #s(literal 3 binary64))) (fma.f64 #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)) (-.f64 #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)) (*.f64 (-.f64 x #s(literal 1/2 binary64)) y)) (pow.f64 (*.f64 (-.f64 x #s(literal 1/2 binary64)) y) #s(literal 2 binary64))))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)))
(fma.f64 y (-.f64 x #s(literal 1/2 binary64)) #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)))
(-.f64 (/.f64 (pow.f64 (*.f64 (-.f64 x #s(literal 1/2 binary64)) y) #s(literal 2 binary64)) (-.f64 (*.f64 (-.f64 x #s(literal 1/2 binary64)) y) #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)))) (/.f64 (pow.f64 #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)) #s(literal 2 binary64)) (-.f64 (*.f64 (-.f64 x #s(literal 1/2 binary64)) y) #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)))))
(-.f64 #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)) (*.f64 (neg.f64 (-.f64 x #s(literal 1/2 binary64))) y))
(-.f64 #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)) (*.f64 (neg.f64 y) (-.f64 x #s(literal 1/2 binary64))))
(+.f64 (/.f64 (pow.f64 (*.f64 (-.f64 x #s(literal 1/2 binary64)) y) #s(literal 3 binary64)) (fma.f64 #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)) (-.f64 #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)) (*.f64 (-.f64 x #s(literal 1/2 binary64)) y)) (pow.f64 (*.f64 (-.f64 x #s(literal 1/2 binary64)) y) #s(literal 2 binary64)))) (/.f64 (pow.f64 #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)) #s(literal 3 binary64)) (fma.f64 #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)) (-.f64 #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)) (*.f64 (-.f64 x #s(literal 1/2 binary64)) y)) (pow.f64 (*.f64 (-.f64 x #s(literal 1/2 binary64)) y) #s(literal 2 binary64)))))
(+.f64 (*.f64 (-.f64 x #s(literal 1/2 binary64)) y) #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)))
(+.f64 #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)) (*.f64 (-.f64 x #s(literal 1/2 binary64)) y))
(/.f64 (neg.f64 (fma.f64 x x #s(literal -1/4 binary64))) (neg.f64 (+.f64 #s(literal 1/2 binary64) x)))
(/.f64 (neg.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal 1/8 binary64))) (neg.f64 (fma.f64 x x (fma.f64 #s(literal 1/2 binary64) x #s(literal 1/4 binary64)))))
(/.f64 (fma.f64 x x #s(literal -1/4 binary64)) (+.f64 #s(literal 1/2 binary64) x))
(/.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal 1/8 binary64)) (fma.f64 x x (fma.f64 #s(literal 1/2 binary64) x #s(literal 1/4 binary64))))
(-.f64 (/.f64 (*.f64 x x) (+.f64 #s(literal 1/2 binary64) x)) (/.f64 #s(literal 1/4 binary64) (+.f64 #s(literal 1/2 binary64) x)))
(-.f64 (/.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 x x (fma.f64 #s(literal 1/2 binary64) x #s(literal 1/4 binary64)))) (/.f64 #s(literal 1/8 binary64) (fma.f64 x x (fma.f64 #s(literal 1/2 binary64) x #s(literal 1/4 binary64)))))
(-.f64 x #s(literal 1/2 binary64))
#s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x))
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (- 918938533204673/1000000000000000 x) #s(literal 918938533204673/1000000000000000 binary64)))
#s(approx (- 918938533204673/1000000000000000 x) #s(literal 918938533204673/1000000000000000 binary64))
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)))
(neg.f64 x)
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (*.f64 #s(approx (- x 1/2) #s(literal -1/2 binary64)) y))
(*.f64 #s(approx (- x 1/2) #s(literal -1/2 binary64)) y)
(*.f64 y #s(approx (- x 1/2) #s(literal -1/2 binary64)))
#s(approx (- x 1/2) #s(literal -1/2 binary64))
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (+ (* (- x 1/2) y) (- 918938533204673/1000000000000000 x)) (*.f64 (-.f64 y #s(literal 1 binary64)) x)))
#s(approx (+ (* (- x 1/2) y) (- 918938533204673/1000000000000000 x)) (*.f64 (-.f64 y #s(literal 1 binary64)) x))
(*.f64 (-.f64 y #s(literal 1 binary64)) x)
(*.f64 x (-.f64 y #s(literal 1 binary64)))
(/.f64 (*.f64 (fma.f64 y y #s(literal -1 binary64)) x) (-.f64 y #s(literal -1 binary64)))
(/.f64 (*.f64 (-.f64 (pow.f64 y #s(literal 3 binary64)) #s(literal 1 binary64)) x) (fma.f64 y y (-.f64 y #s(literal -1 binary64))))
(/.f64 (*.f64 x (fma.f64 y y #s(literal -1 binary64))) (-.f64 y #s(literal -1 binary64)))
(/.f64 (*.f64 x (-.f64 (pow.f64 y #s(literal 3 binary64)) #s(literal 1 binary64))) (fma.f64 y y (-.f64 y #s(literal -1 binary64))))
(/.f64 (neg.f64 (fma.f64 y y #s(literal -1 binary64))) (neg.f64 (-.f64 y #s(literal -1 binary64))))
(/.f64 (neg.f64 (-.f64 (pow.f64 y #s(literal 3 binary64)) #s(literal 1 binary64))) (neg.f64 (fma.f64 y y (-.f64 y #s(literal -1 binary64)))))
(/.f64 (fma.f64 y y #s(literal -1 binary64)) (-.f64 y #s(literal -1 binary64)))
(/.f64 (-.f64 (pow.f64 y #s(literal 3 binary64)) #s(literal 1 binary64)) (fma.f64 y y (-.f64 y #s(literal -1 binary64))))
(-.f64 (/.f64 (*.f64 y y) (-.f64 y #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (-.f64 y #s(literal -1 binary64))))
(-.f64 (/.f64 (pow.f64 y #s(literal 3 binary64)) (fma.f64 y y (-.f64 y #s(literal -1 binary64)))) (/.f64 #s(literal 1 binary64) (fma.f64 y y (-.f64 y #s(literal -1 binary64)))))
(-.f64 y #s(literal 1 binary64))
(+.f64 y #s(literal -1 binary64))

eval7.0ms (0.1%)

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

Compiled 2 060 to 250 computations (87.9% saved)

prune15.0ms (0.3%)

Memory
-24.4MiB live, 18.5MiB allocated; 13ms collecting garbage
Pruning

10 alts after pruning (1 fresh and 9 done)

PrunedKeptTotal
New68169
Fresh000
Picked055
Done044
Total681078
Accuracy
100.0%
Counts
78 → 10
Alt Table
Click to see full alt table
StatusAccuracyProgram
72.1%
(+.f64 (-.f64 #s(approx (* x (- y 1)) (*.f64 y x)) (*.f64 y #s(literal 1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64))
72.5%
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (fma.f64 (-.f64 x #s(literal 1/2 binary64)) y #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x))))
46.7%
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (fma.f64 #s(literal -1/2 binary64) y #s(literal 918938533204673/1000000000000000 binary64)))
55.9%
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
44.9%
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (*.f64 (-.f64 x #s(literal 1/2 binary64)) y))
19.4%
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (*.f64 #s(approx (- x 1/2) #s(literal -1/2 binary64)) y))
29.8%
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)))
28.6%
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (- 918938533204673/1000000000000000 x) #s(literal 918938533204673/1000000000000000 binary64)))
54.9%
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (+ (* (- x 1/2) y) (- 918938533204673/1000000000000000 x)) (*.f64 (-.f64 y #s(literal 1 binary64)) x)))
27.2%
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (* (- x 1/2) y) (*.f64 y x)))
Compiler

Compiled 188 to 147 computations (21.8% saved)

simplify220.0ms (3.9%)

Memory
31.0MiB live, 210.7MiB allocated; 103ms collecting garbage
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 y x)
cost-diff0
#s(approx (* (- x 1/2) y) (*.f64 y x))
cost-diff0
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (* (- x 1/2) y) (*.f64 y x)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01535
01635
12835
24635
38235
414435
537035
6238135
7629435
0804433
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (* (- x 1/2) y) (*.f64 y x)))
#s(approx (* (- x 1/2) y) (*.f64 y x))
(*.f64 y x)
y
x
Outputs
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (* (- x 1/2) y) (*.f64 y x)))
#s(approx (* (- x 1/2) y) (*.f64 y x))
(*.f64 y x)
y
x

localize275.0ms (4.9%)

Memory
65.5MiB live, 170.1MiB allocated; 144ms collecting garbage
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 y x)
accuracy28.50037282025981
#s(approx (* (- x 1/2) y) (*.f64 y x))
accuracy35.267980709721535
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (* (- x 1/2) y) (*.f64 y x)))
Samples
268.0ms256×0valid
Compiler

Compiled 23 to 15 computations (34.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 261.0ms
ival-mult: 240.0ms (92.1% of total)
ival-sub: 14.0ms (5.4% of total)
const: 5.0ms (1.9% of total)
ival-add: 1.0ms (0.4% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series4.0ms (0.1%)

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

6 calls:

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

simplify190.0ms (3.4%)

Memory
-36.4MiB live, 203.8MiB allocated; 83ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
060113
1208110
2692110
32364102
0802097
Stop Event
iter limit
node limit
Counts
16 → 16
Calls
Call 1
Inputs
(- 918938533204673/1000000000000000 (* 1/2 y))
(- (+ 918938533204673/1000000000000000 (* x (- y 1))) (* 1/2 y))
(* -1/2 y)
(+ (* -1/2 y) (* x y))
(* x y)
(* x (- y 1))
(* x (- (+ y (* 918938533204673/1000000000000000 (/ 1 x))) (+ 1 (* 1/2 (/ y x)))))
(* x (+ y (* -1/2 (/ y x))))
(* -1 (* x (+ (* -1 (- y 1)) (* -1 (/ (- 918938533204673/1000000000000000 (* 1/2 y)) x)))))
(* -1 (* x (+ (* -1 y) (* 1/2 (/ y x)))))
(+ 918938533204673/1000000000000000 (* -1 x))
(+ 918938533204673/1000000000000000 (+ (* -1 x) (* y (- x 1/2))))
(* y (- x 1/2))
(* y (- (+ x (+ (* -1 (/ x y)) (* 918938533204673/1000000000000000 (/ 1 y)))) 1/2))
(* -1 (* y (+ 1/2 (* -1 x))))
(* -1 (* y (+ 1/2 (+ (* -1 x) (* -1 (/ (+ 918938533204673/1000000000000000 (* -1 x)) y))))))
Outputs
(- 918938533204673/1000000000000000 (* 1/2 y))
(fma.f64 #s(literal -1/2 binary64) y #s(literal 918938533204673/1000000000000000 binary64))
(- (+ 918938533204673/1000000000000000 (* x (- y 1))) (* 1/2 y))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
(* -1/2 y)
(*.f64 #s(literal -1/2 binary64) y)
(+ (* -1/2 y) (* x y))
(*.f64 (-.f64 x #s(literal 1/2 binary64)) y)
(* x y)
(*.f64 y x)
(* x (- y 1))
(*.f64 (-.f64 y #s(literal 1 binary64)) x)
(* x (- (+ y (* 918938533204673/1000000000000000 (/ 1 x))) (+ 1 (* 1/2 (/ y x)))))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
(* x (+ y (* -1/2 (/ y x))))
(*.f64 (-.f64 x #s(literal 1/2 binary64)) y)
(* -1 (* x (+ (* -1 (- y 1)) (* -1 (/ (- 918938533204673/1000000000000000 (* 1/2 y)) x)))))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
(* -1 (* x (+ (* -1 y) (* 1/2 (/ y x)))))
(*.f64 (-.f64 x #s(literal 1/2 binary64)) y)
(+ 918938533204673/1000000000000000 (* -1 x))
(-.f64 #s(literal 918938533204673/1000000000000000 binary64) x)
(+ 918938533204673/1000000000000000 (+ (* -1 x) (* y (- x 1/2))))
(fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
(* y (- x 1/2))
(*.f64 (-.f64 x #s(literal 1/2 binary64)) y)
(* y (- (+ x (+ (* -1 (/ x y)) (* 918938533204673/1000000000000000 (/ 1 y)))) 1/2))
(*.f64 (-.f64 (+.f64 (/.f64 (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x) y) x) #s(literal 1/2 binary64)) y)
(* -1 (* y (+ 1/2 (* -1 x))))
(*.f64 (-.f64 x #s(literal 1/2 binary64)) y)
(* -1 (* y (+ 1/2 (+ (* -1 x) (* -1 (/ (+ 918938533204673/1000000000000000 (* -1 x)) y))))))
(*.f64 (-.f64 (+.f64 (/.f64 (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x) y) x) #s(literal 1/2 binary64)) y)

rewrite231.0ms (4.1%)

Memory
1.8MiB live, 105.0MiB allocated; 185ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01533
01633
18233
064032
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
3 → 4
Calls
Call 1
Inputs
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (* (- x 1/2) y) (*.f64 y x)))
#s(approx (* (- x 1/2) y) (*.f64 y x))
(*.f64 y x)
Outputs
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (* (- x 1/2) y) (*.f64 y x)))
#s(approx (* (- x 1/2) y) (*.f64 y x))
(*.f64 y x)
(*.f64 x y)

eval1.0ms (0%)

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

Compiled 261 to 48 computations (81.6% saved)

prune5.0ms (0.1%)

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

10 alts after pruning (0 fresh and 10 done)

PrunedKeptTotal
New13013
Fresh000
Picked011
Done099
Total131023
Accuracy
100.0%
Counts
23 → 10
Alt Table
Click to see full alt table
StatusAccuracyProgram
72.1%
(+.f64 (-.f64 #s(approx (* x (- y 1)) (*.f64 y x)) (*.f64 y #s(literal 1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64))
72.5%
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (fma.f64 (-.f64 x #s(literal 1/2 binary64)) y #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x))))
46.7%
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (fma.f64 #s(literal -1/2 binary64) y #s(literal 918938533204673/1000000000000000 binary64)))
55.9%
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
44.9%
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (*.f64 (-.f64 x #s(literal 1/2 binary64)) y))
19.4%
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (*.f64 #s(approx (- x 1/2) #s(literal -1/2 binary64)) y))
29.8%
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)))
28.6%
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (- 918938533204673/1000000000000000 x) #s(literal 918938533204673/1000000000000000 binary64)))
54.9%
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (+ (* (- x 1/2) y) (- 918938533204673/1000000000000000 x)) (*.f64 (-.f64 y #s(literal 1 binary64)) x)))
27.2%
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (* (- x 1/2) y) (*.f64 y x)))
Compiler

Compiled 407 to 198 computations (51.4% saved)

regimes18.0ms (0.3%)

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

4 calls:

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

Compiled 22 to 22 computations (0% saved)

regimes15.0ms (0.3%)

Memory
-13.4MiB live, 33.6MiB allocated; 3ms collecting garbage
Counts
9 → 3
Calls
Call 1
Inputs
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (- 918938533204673/1000000000000000 x) #s(literal 918938533204673/1000000000000000 binary64)))
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)))
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (* (- x 1/2) y) (*.f64 y x)))
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (*.f64 #s(approx (- x 1/2) #s(literal -1/2 binary64)) y))
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (fma.f64 #s(literal -1/2 binary64) y #s(literal 918938533204673/1000000000000000 binary64)))
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (+ (* (- x 1/2) y) (- 918938533204673/1000000000000000 x)) (*.f64 (-.f64 y #s(literal 1 binary64)) x)))
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (*.f64 (-.f64 x #s(literal 1/2 binary64)) y))
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (fma.f64 (-.f64 x #s(literal 1/2 binary64)) y #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x))))
Outputs
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (fma.f64 (-.f64 x #s(literal 1/2 binary64)) y #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x))))
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (fma.f64 #s(literal -1/2 binary64) y #s(literal 918938533204673/1000000000000000 binary64)))
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (fma.f64 (-.f64 x #s(literal 1/2 binary64)) y #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x))))
Calls

4 calls:

5.0ms
(-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64)))
3.0ms
y
3.0ms
(+.f64 (-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64))
3.0ms
x
Results
AccuracySegmentsBranch
99.2%3(-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64)))
99.2%3(+.f64 (-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64))
99.4%3x
98.2%3y
Compiler

Compiled 22 to 22 computations (0% saved)

regimes12.0ms (0.2%)

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

4 calls:

3.0ms
x
3.0ms
y
3.0ms
(-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64)))
3.0ms
(+.f64 (-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64))
Results
AccuracySegmentsBranch
97.5%3y
85.4%4(-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64)))
85.4%4(+.f64 (-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64))
98.1%3x
Compiler

Compiled 22 to 22 computations (0% saved)

regimes15.0ms (0.3%)

Memory
-22.6MiB live, 27.7MiB allocated; 4ms collecting garbage
Counts
6 → 5
Calls
Call 1
Inputs
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (- 918938533204673/1000000000000000 x) #s(literal 918938533204673/1000000000000000 binary64)))
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)))
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (* (- x 1/2) y) (*.f64 y x)))
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (*.f64 #s(approx (- x 1/2) #s(literal -1/2 binary64)) y))
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (fma.f64 #s(literal -1/2 binary64) y #s(literal 918938533204673/1000000000000000 binary64)))
Outputs
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (*.f64 #s(approx (- x 1/2) #s(literal -1/2 binary64)) y))
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (* (- x 1/2) y) (*.f64 y x)))
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (fma.f64 #s(literal -1/2 binary64) y #s(literal 918938533204673/1000000000000000 binary64)))
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (* (- x 1/2) y) (*.f64 y x)))
Calls

4 calls:

7.0ms
(+.f64 (-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64))
3.0ms
y
2.0ms
(-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64)))
2.0ms
x
Results
AccuracySegmentsBranch
69.4%4(-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64)))
69.4%4(+.f64 (-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64))
85.2%5y
76.8%4x
Compiler

Compiled 22 to 22 computations (0% saved)

regimes3.0ms (0%)

Memory
6.1MiB live, 6.1MiB allocated; 0ms collecting garbage
Counts
5 → 4
Calls
Call 1
Inputs
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (- 918938533204673/1000000000000000 x) #s(literal 918938533204673/1000000000000000 binary64)))
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)))
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (* (- x 1/2) y) (*.f64 y x)))
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (*.f64 #s(approx (- x 1/2) #s(literal -1/2 binary64)) y))
Outputs
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (*.f64 #s(approx (- x 1/2) #s(literal -1/2 binary64)) y))
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (* (- x 1/2) y) (*.f64 y x)))
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (* (- x 1/2) y) (*.f64 y x)))
Calls

1 calls:

2.0ms
y
Results
AccuracySegmentsBranch
83.3%4y
Compiler

Compiled 1 to 2 computations (-100% saved)

regimes2.0ms (0%)

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

1 calls:

2.0ms
y
Results
AccuracySegmentsBranch
79.9%3y
Compiler

Compiled 1 to 2 computations (-100% saved)

regimes7.0ms (0.1%)

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

4 calls:

2.0ms
(-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64)))
2.0ms
y
2.0ms
x
2.0ms
(+.f64 (-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64))
Results
AccuracySegmentsBranch
55.9%1(-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64)))
55.9%1(+.f64 (-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64))
55.9%1x
55.9%1y
Compiler

Compiled 22 to 22 computations (0% saved)

regimes8.0ms (0.1%)

Memory
-30.9MiB live, 15.0MiB allocated; 4ms collecting garbage
Counts
2 → 3
Calls
Call 1
Inputs
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (- 918938533204673/1000000000000000 x) #s(literal 918938533204673/1000000000000000 binary64)))
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)))
Outputs
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)))
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (- 918938533204673/1000000000000000 x) #s(literal 918938533204673/1000000000000000 binary64)))
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)))
Calls

4 calls:

3.0ms
x
1.0ms
y
1.0ms
(+.f64 (-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64))
1.0ms
(-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64)))
Results
AccuracySegmentsBranch
55.2%3(-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64)))
55.2%3(+.f64 (-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64))
55.3%3x
33.7%2y
Compiler

Compiled 22 to 22 computations (0% saved)

regimes5.0ms (0.1%)

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

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

Counts
1 → 1
Calls
Call 1
Inputs
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (- 918938533204673/1000000000000000 x) #s(literal 918938533204673/1000000000000000 binary64)))
Outputs
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (- 918938533204673/1000000000000000 x) #s(literal 918938533204673/1000000000000000 binary64)))
Calls

4 calls:

1.0ms
(-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64)))
1.0ms
(+.f64 (-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64))
1.0ms
y
1.0ms
x
Results
AccuracySegmentsBranch
28.6%1y
28.6%1(-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64)))
28.6%1(+.f64 (-.f64 (*.f64 x (-.f64 y #s(literal 1 binary64))) (*.f64 y #s(literal 1/2 binary64))) #s(literal 918938533204673/1000000000000000 binary64))
28.6%1x
Compiler

Compiled 22 to 22 computations (0% saved)

bsearch76.0ms (1.4%)

Memory
22.1MiB live, 68.5MiB allocated; 3ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
16.0ms
6.343791192139904e-15
9.787002001904054e-10
57.0ms
-3.2582260033572974e-15
-8.410909453016407e-18
Samples
61.0ms272×0valid
Compiler

Compiled 677 to 576 computations (14.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 13.0ms
const: 5.0ms (38.9% of total)
ival-sub: 3.0ms (23.3% of total)
ival-mult: 3.0ms (23.3% of total)
ival-add: 1.0ms (7.8% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

bsearch91.0ms (1.6%)

Memory
-36.6MiB live, 60.5MiB allocated; 8ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
16.0ms
2.605909501644626e-6
16.520897217157298
61.0ms
-1.521724846888468
-3.2582260033572974e-15
Samples
65.0ms304×0valid
Compiler

Compiled 831 to 680 computations (18.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 15.0ms
const: 6.0ms (41.1% of total)
ival-mult: 4.0ms (27.4% of total)
ival-sub: 3.0ms (20.5% of total)
ival-add: 1.0ms (6.8% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

bsearch73.0ms (1.3%)

Memory
1.8MiB live, 93.0MiB allocated; 13ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
narrow-enough
narrow-enough
Steps
TimeLeftRight
14.0ms
1.5742191079256934e+53
5.947919755374392e+57
14.0ms
7.006119781454009e-12
3.38846049166746e-8
20.0ms
-17071505.762639645
-1283.4796358081974
12.0ms
-6.155266246860476e+257
-1.3310073159923661e+256
Samples
41.0ms496×0valid
Compiler

Compiled 1 126 to 959 computations (14.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 29.0ms
ival-sub: 11.0ms (37.4% of total)
const: 9.0ms (30.6% of total)
ival-mult: 6.0ms (20.4% of total)
ival-add: 2.0ms (6.8% of total)
exact: 1.0ms (3.4% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

bsearch20.0ms (0.3%)

Memory
24.0MiB live, 24.0MiB allocated; 0ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
narrow-enough
Steps
TimeLeftRight
16.0ms
3.38846049166746e-8
2.822183734373631
1.0ms
-17071505.762639645
-1283.4796358081974
1.0ms
-6.155266246860476e+257
-1.3310073159923661e+256
Samples
10.0ms144×0valid
Compiler

Compiled 906 to 749 computations (17.3% saved)

Precisions
Click to see histograms. Total time spent on operations: 7.0ms
const: 3.0ms (43.8% of total)
ival-sub: 2.0ms (29.2% of total)
ival-mult: 2.0ms (29.2% of total)
ival-add: 1.0ms (14.6% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

bsearch2.0ms (0%)

Memory
2.9MiB live, 2.9MiB allocated; 0ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
1.0ms
3.38846049166746e-8
2.822183734373631
1.0ms
-17071505.762639645
-1283.4796358081974
Compiler

Compiled 626 to 525 computations (16.1% saved)

bsearch75.0ms (1.3%)

Memory
-13.8MiB live, 30.4MiB allocated; 9ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
64.0ms
16.520897217157298
115197.84659900414
8.0ms
-1.521724846888468
-3.2582260033572974e-15
Samples
64.0ms192×0valid
Compiler

Compiled 644 to 555 computations (13.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 9.0ms
const: 3.0ms (31.9% of total)
ival-sub: 2.0ms (21.3% of total)
ival-mult: 2.0ms (21.3% of total)
ival-add: 1.0ms (10.6% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

simplify75.0ms (1.3%)

Memory
-1.8MiB live, 47.8MiB allocated; 13ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
074417
1109417
2140417
3199417
4294417
5578417
63166417
77473417
Stop Event
node limit
Calls
Call 1
Inputs
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x)))
(if (<=.f64 x #s(literal -2028240960365167/633825300114114700748351602688 binary64)) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (fma.f64 (-.f64 x #s(literal 1/2 binary64)) y #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)))) (if (<=.f64 x #s(literal 4593918114535591/4835703278458516698824704 binary64)) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (fma.f64 #s(literal -1/2 binary64) y #s(literal 918938533204673/1000000000000000 binary64))) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (fma.f64 (-.f64 x #s(literal 1/2 binary64)) y #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x))))))
(if (<=.f64 x #s(literal -3152519739159347/4503599627370496 binary64)) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (+ (* (- x 1/2) y) (- 918938533204673/1000000000000000 x)) (*.f64 (-.f64 y #s(literal 1 binary64)) x))) (if (<=.f64 x #s(literal 8286623314361713/9007199254740992 binary64)) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (fma.f64 #s(literal -1/2 binary64) y #s(literal 918938533204673/1000000000000000 binary64))) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (+ (* (- x 1/2) y) (- 918938533204673/1000000000000000 x)) (*.f64 (-.f64 y #s(literal 1 binary64)) x)))))
(if (<=.f64 y #s(literal -480000000000000014461276752067460401387433539091853661839411830353571584021270191754133931009189966512757044648242935752624128385609461125450479760957874559341375898963722262412499058714990186890762364652936498157830784915336949755988611798280467072614924288 binary64)) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (*.f64 #s(approx (- x 1/2) #s(literal -1/2 binary64)) y)) (if (<=.f64 y #s(literal -1300 binary64)) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (* (- x 1/2) y) (*.f64 y x))) (if (<=.f64 y #s(literal 891582791965789/75557863725914323419136 binary64)) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x)) (if (<=.f64 y #s(literal 165000000000000009515280497548995599346638375163527168 binary64)) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (fma.f64 #s(literal -1/2 binary64) y #s(literal 918938533204673/1000000000000000 binary64))) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (* (- x 1/2) y) (*.f64 y x)))))))
(if (<=.f64 y #s(literal -480000000000000014461276752067460401387433539091853661839411830353571584021270191754133931009189966512757044648242935752624128385609461125450479760957874559341375898963722262412499058714990186890762364652936498157830784915336949755988611798280467072614924288 binary64)) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (*.f64 #s(approx (- x 1/2) #s(literal -1/2 binary64)) y)) (if (<=.f64 y #s(literal -1300 binary64)) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (* (- x 1/2) y) (*.f64 y x))) (if (<=.f64 y #s(literal 2476979795053773/2251799813685248 binary64)) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x)) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (* (- x 1/2) y) (*.f64 y x))))))
(if (<=.f64 y #s(literal -1300 binary64)) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (* (- x 1/2) y) (*.f64 y x))) (if (<=.f64 y #s(literal 2476979795053773/2251799813685248 binary64)) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x)) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (* (- x 1/2) y) (*.f64 y x)))))
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
(if (<=.f64 x #s(literal -8286623314361713/9007199254740992 binary64)) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x))) (if (<=.f64 x #s(literal 17 binary64)) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (- 918938533204673/1000000000000000 x) #s(literal 918938533204673/1000000000000000 binary64))) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)))))
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (- 918938533204673/1000000000000000 x) #s(literal 918938533204673/1000000000000000 binary64)))
Outputs
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (fma.f64 (-.f64 x #s(literal 1/2 binary64)) y (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x)))
(if (<=.f64 x #s(literal -2028240960365167/633825300114114700748351602688 binary64)) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (fma.f64 (-.f64 x #s(literal 1/2 binary64)) y #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)))) (if (<=.f64 x #s(literal 4593918114535591/4835703278458516698824704 binary64)) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (fma.f64 #s(literal -1/2 binary64) y #s(literal 918938533204673/1000000000000000 binary64))) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (fma.f64 (-.f64 x #s(literal 1/2 binary64)) y #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x))))))
(if (or (<=.f64 x #s(literal -2028240960365167/633825300114114700748351602688 binary64)) (not (<=.f64 x #s(literal 4593918114535591/4835703278458516698824704 binary64)))) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (fma.f64 (-.f64 x #s(literal 1/2 binary64)) y #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)))) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (fma.f64 #s(literal -1/2 binary64) y #s(literal 918938533204673/1000000000000000 binary64))))
(if (<=.f64 x #s(literal -3152519739159347/4503599627370496 binary64)) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (+ (* (- x 1/2) y) (- 918938533204673/1000000000000000 x)) (*.f64 (-.f64 y #s(literal 1 binary64)) x))) (if (<=.f64 x #s(literal 8286623314361713/9007199254740992 binary64)) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (fma.f64 #s(literal -1/2 binary64) y #s(literal 918938533204673/1000000000000000 binary64))) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (+ (* (- x 1/2) y) (- 918938533204673/1000000000000000 x)) (*.f64 (-.f64 y #s(literal 1 binary64)) x)))))
(if (or (<=.f64 x #s(literal -3152519739159347/4503599627370496 binary64)) (not (<=.f64 x #s(literal 8286623314361713/9007199254740992 binary64)))) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (+ (* (- x 1/2) y) (- 918938533204673/1000000000000000 x)) (*.f64 (-.f64 y #s(literal 1 binary64)) x))) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (fma.f64 #s(literal -1/2 binary64) y #s(literal 918938533204673/1000000000000000 binary64))))
(if (<=.f64 y #s(literal -480000000000000014461276752067460401387433539091853661839411830353571584021270191754133931009189966512757044648242935752624128385609461125450479760957874559341375898963722262412499058714990186890762364652936498157830784915336949755988611798280467072614924288 binary64)) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (*.f64 #s(approx (- x 1/2) #s(literal -1/2 binary64)) y)) (if (<=.f64 y #s(literal -1300 binary64)) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (* (- x 1/2) y) (*.f64 y x))) (if (<=.f64 y #s(literal 891582791965789/75557863725914323419136 binary64)) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x)) (if (<=.f64 y #s(literal 165000000000000009515280497548995599346638375163527168 binary64)) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (fma.f64 #s(literal -1/2 binary64) y #s(literal 918938533204673/1000000000000000 binary64))) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (* (- x 1/2) y) (*.f64 y x)))))))
(if (<=.f64 y #s(literal -480000000000000014461276752067460401387433539091853661839411830353571584021270191754133931009189966512757044648242935752624128385609461125450479760957874559341375898963722262412499058714990186890762364652936498157830784915336949755988611798280467072614924288 binary64)) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (*.f64 #s(approx (- x 1/2) #s(literal -1/2 binary64)) y)) (if (<=.f64 y #s(literal -1300 binary64)) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (* (- x 1/2) y) (*.f64 y x))) (if (<=.f64 y #s(literal 2476979795053773/2251799813685248 binary64)) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x)) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (* (- x 1/2) y) (*.f64 y x))))))
(if (<=.f64 y #s(literal -480000000000000014461276752067460401387433539091853661839411830353571584021270191754133931009189966512757044648242935752624128385609461125450479760957874559341375898963722262412499058714990186890762364652936498157830784915336949755988611798280467072614924288 binary64)) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (*.f64 #s(approx (- x 1/2) #s(literal -1/2 binary64)) y)) (if (or (<=.f64 y #s(literal -1300 binary64)) (not (<=.f64 y #s(literal 2476979795053773/2251799813685248 binary64)))) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (* (- x 1/2) y) (*.f64 y x))) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))))
(if (<=.f64 y #s(literal -1300 binary64)) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (* (- x 1/2) y) (*.f64 y x))) (if (<=.f64 y #s(literal 2476979795053773/2251799813685248 binary64)) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x)) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (* (- x 1/2) y) (*.f64 y x)))))
(if (or (<=.f64 y #s(literal -1300 binary64)) (not (<=.f64 y #s(literal 2476979795053773/2251799813685248 binary64)))) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (* (- x 1/2) y) (*.f64 y x))) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x)))
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) (-.f64 #s(literal 918938533204673/1000000000000000 binary64) x))
(if (<=.f64 x #s(literal -8286623314361713/9007199254740992 binary64)) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x))) (if (<=.f64 x #s(literal 17 binary64)) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (- 918938533204673/1000000000000000 x) #s(literal 918938533204673/1000000000000000 binary64))) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x)))))
(if (or (<=.f64 x #s(literal -8286623314361713/9007199254740992 binary64)) (not (<=.f64 x #s(literal 17 binary64)))) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (- 918938533204673/1000000000000000 x) (neg.f64 x))) #s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (- 918938533204673/1000000000000000 x) #s(literal 918938533204673/1000000000000000 binary64))))
#s(approx (+ (- (* x (- y 1)) (* y 1/2)) 918938533204673/1000000000000000) #s(approx (- 918938533204673/1000000000000000 x) #s(literal 918938533204673/1000000000000000 binary64)))

derivations789.0ms (14%)

Memory
43.2MiB live, 505.8MiB allocated; 81ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
076189
1250188
2857188
32769164
46289164
08301157
0122295
1416291
21434255
34416255
08378239
0111244
1382244
21304220
34036219
08495205
Stop Event
done
iter limit
node limit
iter limit
node limit
iter limit
node limit
Compiler

Compiled 417 to 81 computations (80.6% saved)

preprocess85.0ms (1.5%)

Memory
-22.7MiB live, 120.0MiB allocated; 14ms collecting garbage
Compiler

Compiled 856 to 182 computations (78.7% saved)

end0.0ms (0%)

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

Profiling

Loading profile data...