Linear.Projection:perspective from linear-1.19.1.3, B

Time bar (total: 4.0s)

start0.0ms (0%)

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

analyze47.0ms (1.2%)

Memory
-15.5MiB live, 29.5MiB allocated; 12ms collecting garbage
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
0%0%99.9%0.1%0%0%0%2
50%50%50%0.1%0%0%0%3
50%50%50%0.1%0%0%0%4
75%74.9%25%0.1%0%0%0%5
75%74.9%25%0.1%0%0%0%6
87.5%87.4%12.5%0.1%0%0%0%7
87.5%87.4%12.5%0.1%0%0%0%8
93.8%93.7%6.2%0.1%0%0%0%9
93.8%93.7%6.2%0.1%0%0%0%10
96.9%96.8%3.1%0.1%0%0%0%11
96.9%96.8%3.1%0.1%0%0%0%12
Compiler

Compiled 11 to 9 computations (18.2% saved)

sample973.0ms (24.2%)

Memory
39.7MiB live, 1 272.8MiB allocated; 275ms collecting garbage
Samples
664.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 407.0ms
ival-mult: 177.0ms (43.5% of total)
ival-div: 167.0ms (41% of total)
ival-sub: 46.0ms (11.3% of total)
ival-true: 6.0ms (1.5% of total)
exact: 5.0ms (1.2% of total)
ival-assert: 3.0ms (0.7% of total)
adjust: 2.0ms (0.5% of total)
Bogosity

explain127.0ms (3.2%)

Memory
5.8MiB live, 94.5MiB allocated; 25ms collecting garbage
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
560-3(3.0370675570856136e-159 1.5846728367529299e-161)(/.f64 (*.f64 (*.f64 x #s(literal 2 binary64)) y) (-.f64 x y))
00-0-(*.f64 x #s(literal 2 binary64))
00-0-#s(literal 2 binary64)
00-0-y
00-0-(-.f64 x y)
00-0-(*.f64 (*.f64 x #s(literal 2 binary64)) y)
00-0-x
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
/.f64(/.f64 (*.f64 (*.f64 x #s(literal 2 binary64)) y) (-.f64 x y))o/n270
(*.f64 (*.f64 x #s(literal 2 binary64)) y)overflow27
/.f64(/.f64 (*.f64 (*.f64 x #s(literal 2 binary64)) y) (-.f64 x y))u/n260
(*.f64 (*.f64 x #s(literal 2 binary64)) y)underflow26
Confusion
Predicted +Predicted -
+533
-0200
Precision
1.0
Recall
0.9464285714285714
Confusion?
Predicted +Predicted MaybePredicted -
+5303
-00200
Precision?
1.0
Recall?
0.9464285714285714
Freqs
test
numberfreq
0203
153
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
61.0ms512×0valid
Compiler

Compiled 59 to 25 computations (57.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 47.0ms
ival-div: 36.0ms (77.1% of total)
ival-mult: 7.0ms (15% of total)
ival-sub: 3.0ms (6.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)

preprocess236.0ms (5.9%)

Memory
-17.3MiB live, 221.6MiB allocated; 30ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01953
15049
216849
371149
4170745
5490845
079
0119
1199
2449
31249
42759
511239
663129
080929
Stop Event
iter limit
node limit
iter limit
node limit
Calls
Call 1
Inputs
(/.f64 (*.f64 (*.f64 x #s(literal 2 binary64)) y) (-.f64 x y))
Outputs
(/.f64 (*.f64 (*.f64 x #s(literal 2 binary64)) y) (-.f64 x y))
(*.f64 (/.f64 #s(literal 2 binary64) (-.f64 x y)) (*.f64 y x))
Compiler

Compiled 9 to 7 computations (22.2% 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
1.8MiB live, 1.8MiB allocated; 0ms collecting garbage
Alt Table
Click to see full alt table
StatusAccuracyProgram
79.8%
(/.f64 (*.f64 (*.f64 x #s(literal 2 binary64)) y) (-.f64 x y))
Compiler

Compiled 9 to 7 computations (22.2% saved)

simplify266.0ms (6.6%)

Memory
3.9MiB live, 256.6MiB allocated; 29ms collecting garbage
Localize:

Found 4 expressions of interest:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0723
01123
11923
24423
312423
427523
5112323
6631223
0809223
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
(/.f64 (*.f64 (*.f64 x #s(literal 2 binary64)) y) (-.f64 x y))
(*.f64 (*.f64 x #s(literal 2 binary64)) y)
(*.f64 x #s(literal 2 binary64))
x
#s(literal 2 binary64)
y
(-.f64 x y)
Outputs
(/.f64 (*.f64 (*.f64 x #s(literal 2 binary64)) y) (-.f64 x y))
(*.f64 (/.f64 #s(literal 2 binary64) (-.f64 x y)) (*.f64 y x))
(*.f64 (*.f64 x #s(literal 2 binary64)) y)
(*.f64 y (*.f64 #s(literal 2 binary64) x))
(*.f64 x #s(literal 2 binary64))
(*.f64 #s(literal 2 binary64) x)
x
#s(literal 2 binary64)
y
(-.f64 x y)

localize30.0ms (0.8%)

Memory
-13.6MiB live, 73.5MiB allocated; 10ms collecting garbage
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(-.f64 x y)
accuracy0.0
(*.f64 (*.f64 x #s(literal 2 binary64)) y)
accuracy0.0
(*.f64 x #s(literal 2 binary64))
accuracy12.913793519987639
(/.f64 (*.f64 (*.f64 x #s(literal 2 binary64)) y) (-.f64 x y))
Samples
22.0ms256×0valid
Compiler

Compiled 25 to 9 computations (64% saved)

Precisions
Click to see histograms. Total time spent on operations: 7.0ms
ival-mult: 3.0ms (40.5% of total)
ival-div: 2.0ms (27% of total)
ival-sub: 1.0ms (13.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)

series8.0ms (0.2%)

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

6 calls:

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

simplify295.0ms (7.3%)

Memory
-22.5MiB live, 314.8MiB allocated; 39ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0136359
1445339
21943315
08338285
Stop Event
iter limit
node limit
Counts
28 → 27
Calls
Call 1
Inputs
(* -2 x)
(* x (- (* -2 (/ x y)) 2))
(* x (- (* x (- (* -2 (/ x (pow y 2))) (* 2 (/ 1 y)))) 2))
(* x (- (* x (- (* x (- (* -2 (/ x (pow y 3))) (* 2 (/ 1 (pow y 2))))) (* 2 (/ 1 y)))) 2))
(* 2 (* x y))
(* 2 x)
(* -1 y)
(- x y)
(* 2 y)
(+ (* 2 y) (* 2 (/ (pow y 2) x)))
(+ (* 2 y) (+ (* 2 (/ (pow y 2) x)) (* 2 (/ (pow y 3) (pow x 2)))))
(+ (* 2 y) (+ (* 2 (/ (pow y 2) x)) (+ (* 2 (/ (pow y 3) (pow x 2))) (* 2 (/ (pow y 4) (pow x 3))))))
x
(* x (+ 1 (* -1 (/ y x))))
(+ (* -1 (/ (+ (* -2 (/ (pow y 3) x)) (* -2 (pow y 2))) x)) (* 2 y))
(+ (* -1 (/ (+ (* -2 (pow y 2)) (* -1 (/ (+ (* 2 (/ (pow y 4) x)) (* 2 (pow y 3))) x))) x)) (* 2 y))
(* -1 (* x (- (/ y x) 1)))
(* y (+ 2 (* 2 (/ y x))))
(* y (+ 2 (* y (+ (* 2 (/ y (pow x 2))) (* 2 (/ 1 x))))))
(* y (+ 2 (* y (+ (* y (+ (* 2 (/ y (pow x 3))) (* 2 (/ 1 (pow x 2))))) (* 2 (/ 1 x))))))
(+ x (* -1 y))
(+ (* -2 x) (* -2 (/ (pow x 2) y)))
(+ (* -2 x) (+ (* -2 (/ (pow x 2) y)) (* -2 (/ (pow x 3) (pow y 2)))))
(+ (* -2 x) (+ (* -2 (/ (pow x 2) y)) (+ (* -2 (/ (pow x 3) (pow y 2))) (* -2 (/ (pow x 4) (pow y 3))))))
(* y (- (/ x y) 1))
(+ (* -2 x) (* -1 (/ (+ (* 2 (/ (pow x 3) y)) (* 2 (pow x 2))) y)))
(+ (* -2 x) (* -1 (/ (+ (* -1 (/ (+ (* -2 (/ (pow x 4) y)) (* -2 (pow x 3))) y)) (* 2 (pow x 2))) y)))
(* -1 (* y (+ 1 (* -1 (/ x y)))))
Outputs
(* -2 x)
(*.f64 #s(literal -2 binary64) x)
(* x (- (* -2 (/ x y)) 2))
(*.f64 (fma.f64 (/.f64 x y) #s(literal -2 binary64) #s(literal -2 binary64)) x)
(* x (- (* x (- (* -2 (/ x (pow y 2))) (* 2 (/ 1 y)))) 2))
(*.f64 (fma.f64 (/.f64 (fma.f64 (/.f64 x y) #s(literal -2 binary64) #s(literal -2 binary64)) y) x #s(literal -2 binary64)) x)
(* x (- (* x (- (* x (- (* -2 (/ x (pow y 3))) (* 2 (/ 1 (pow y 2))))) (* 2 (/ 1 y)))) 2))
(*.f64 (fma.f64 (fma.f64 (/.f64 (fma.f64 (/.f64 x y) #s(literal -2 binary64) #s(literal -2 binary64)) (*.f64 y y)) x (/.f64 #s(literal -2 binary64) y)) x #s(literal -2 binary64)) x)
(* 2 (* x y))
(*.f64 (*.f64 y x) #s(literal 2 binary64))
(* 2 x)
(*.f64 #s(literal 2 binary64) x)
(* -1 y)
(neg.f64 y)
(- x y)
(-.f64 x y)
(* 2 y)
(*.f64 #s(literal 2 binary64) y)
(+ (* 2 y) (* 2 (/ (pow y 2) x)))
(*.f64 (fma.f64 y (/.f64 y x) y) #s(literal 2 binary64))
(+ (* 2 y) (+ (* 2 (/ (pow y 2) x)) (* 2 (/ (pow y 3) (pow x 2)))))
(*.f64 (fma.f64 (/.f64 (fma.f64 (/.f64 y x) #s(literal 2 binary64) #s(literal 2 binary64)) x) y #s(literal 2 binary64)) y)
(+ (* 2 y) (+ (* 2 (/ (pow y 2) x)) (+ (* 2 (/ (pow y 3) (pow x 2))) (* 2 (/ (pow y 4) (pow x 3))))))
(*.f64 #s(literal 2 binary64) (+.f64 (fma.f64 (/.f64 y x) (fma.f64 y (/.f64 y x) y) y) (/.f64 (pow.f64 y #s(literal 4 binary64)) (pow.f64 x #s(literal 3 binary64)))))
x
(* x (+ 1 (* -1 (/ y x))))
(*.f64 (-.f64 #s(literal 1 binary64) (/.f64 y x)) x)
(+ (* -1 (/ (+ (* -2 (/ (pow y 3) x)) (* -2 (pow y 2))) x)) (* 2 y))
(*.f64 (fma.f64 (/.f64 (fma.f64 (/.f64 y x) #s(literal 2 binary64) #s(literal 2 binary64)) x) y #s(literal 2 binary64)) y)
(+ (* -1 (/ (+ (* -2 (pow y 2)) (* -1 (/ (+ (* 2 (/ (pow y 4) x)) (* 2 (pow y 3))) x))) x)) (* 2 y))
(*.f64 #s(literal 2 binary64) (+.f64 (fma.f64 (/.f64 y x) (fma.f64 y (/.f64 y x) y) y) (/.f64 (pow.f64 y #s(literal 4 binary64)) (pow.f64 x #s(literal 3 binary64)))))
(* -1 (* x (- (/ y x) 1)))
(*.f64 (-.f64 #s(literal 1 binary64) (/.f64 y x)) x)
(* y (+ 2 (* 2 (/ y x))))
(*.f64 (fma.f64 y (/.f64 y x) y) #s(literal 2 binary64))
(* y (+ 2 (* y (+ (* 2 (/ y (pow x 2))) (* 2 (/ 1 x))))))
(*.f64 (fma.f64 (/.f64 (fma.f64 (/.f64 y x) #s(literal 2 binary64) #s(literal 2 binary64)) x) y #s(literal 2 binary64)) y)
(* y (+ 2 (* y (+ (* y (+ (* 2 (/ y (pow x 3))) (* 2 (/ 1 (pow x 2))))) (* 2 (/ 1 x))))))
(*.f64 (fma.f64 (fma.f64 (/.f64 (/.f64 (fma.f64 (/.f64 y x) #s(literal 2 binary64) #s(literal 2 binary64)) x) x) y (/.f64 #s(literal 2 binary64) x)) y #s(literal 2 binary64)) y)
(+ x (* -1 y))
(-.f64 x y)
(+ (* -2 x) (* -2 (/ (pow x 2) y)))
(*.f64 (fma.f64 x (/.f64 x y) x) #s(literal -2 binary64))
(+ (* -2 x) (+ (* -2 (/ (pow x 2) y)) (* -2 (/ (pow x 3) (pow y 2)))))
(*.f64 #s(literal -2 binary64) (fma.f64 (/.f64 x y) (fma.f64 x (/.f64 x y) x) x))
(+ (* -2 x) (+ (* -2 (/ (pow x 2) y)) (+ (* -2 (/ (pow x 3) (pow y 2))) (* -2 (/ (pow x 4) (pow y 3))))))
(*.f64 #s(literal -2 binary64) (+.f64 (fma.f64 (/.f64 x y) (fma.f64 x (/.f64 x y) x) x) (/.f64 (pow.f64 x #s(literal 4 binary64)) (pow.f64 y #s(literal 3 binary64)))))
(* y (- (/ x y) 1))
(*.f64 (-.f64 (/.f64 x y) #s(literal 1 binary64)) y)
(+ (* -2 x) (* -1 (/ (+ (* 2 (/ (pow x 3) y)) (* 2 (pow x 2))) y)))
(*.f64 #s(literal -2 binary64) (fma.f64 (/.f64 x y) (fma.f64 x (/.f64 x y) x) x))
(+ (* -2 x) (* -1 (/ (+ (* -1 (/ (+ (* -2 (/ (pow x 4) y)) (* -2 (pow x 3))) y)) (* 2 (pow x 2))) y)))
(*.f64 #s(literal -2 binary64) (+.f64 (fma.f64 (/.f64 x y) (fma.f64 x (/.f64 x y) x) x) (/.f64 (pow.f64 x #s(literal 4 binary64)) (pow.f64 y #s(literal 3 binary64)))))
(* -1 (* y (+ 1 (* -1 (/ x y)))))
(*.f64 (-.f64 (/.f64 x y) #s(literal 1 binary64)) y)

rewrite50.0ms (1.2%)

Memory
25.6MiB live, 70.9MiB allocated; 4ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0720
01120
13520
019220
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
4 → 33
Calls
Call 1
Inputs
(/.f64 (*.f64 (*.f64 x #s(literal 2 binary64)) y) (-.f64 x y))
(*.f64 (*.f64 x #s(literal 2 binary64)) y)
(*.f64 x #s(literal 2 binary64))
(-.f64 x y)
Outputs
(*.f64 (/.f64 (*.f64 y (*.f64 #s(literal 2 binary64) x)) (*.f64 (+.f64 y x) (-.f64 x y))) (+.f64 y x))
(*.f64 (/.f64 (*.f64 y (*.f64 #s(literal 2 binary64) x)) (-.f64 (pow.f64 x #s(literal 3 binary64)) (pow.f64 y #s(literal 3 binary64)))) (fma.f64 y (+.f64 y x) (*.f64 x x)))
(*.f64 (/.f64 y (-.f64 x y)) (*.f64 #s(literal 2 binary64) x))
(*.f64 y (/.f64 (*.f64 #s(literal 2 binary64) x) (-.f64 x y)))
(*.f64 (*.f64 #s(literal 2 binary64) x) (/.f64 y (-.f64 x y)))
(*.f64 #s(literal 2 binary64) (*.f64 x (/.f64 y (-.f64 x y))))
(*.f64 x (/.f64 (*.f64 y #s(literal 2 binary64)) (-.f64 x y)))
(*.f64 x (*.f64 #s(literal 2 binary64) (/.f64 y (-.f64 x y))))
(/.f64 (neg.f64 (*.f64 (neg.f64 y) (*.f64 #s(literal 2 binary64) x))) (neg.f64 (neg.f64 (-.f64 x y))))
(/.f64 (*.f64 (neg.f64 y) (*.f64 #s(literal 2 binary64) x)) (neg.f64 (-.f64 x y)))
(/.f64 (*.f64 y (*.f64 #s(literal 2 binary64) x)) (-.f64 x y))
(neg.f64 (/.f64 (*.f64 (neg.f64 y) (*.f64 #s(literal 2 binary64) x)) (-.f64 x y)))
(neg.f64 (/.f64 (*.f64 y (*.f64 #s(literal 2 binary64) x)) (neg.f64 (-.f64 x y))))
(*.f64 (*.f64 y #s(literal 2 binary64)) x)
(*.f64 (*.f64 y x) #s(literal 2 binary64))
(*.f64 y (*.f64 #s(literal 2 binary64) x))
(*.f64 (*.f64 #s(literal 2 binary64) x) y)
(*.f64 #s(literal 2 binary64) (*.f64 y x))
(*.f64 x (*.f64 y #s(literal 2 binary64)))
(*.f64 #s(literal 2 binary64) x)
(*.f64 x #s(literal 2 binary64))
(fma.f64 #s(literal 1 binary64) x (*.f64 #s(literal 1 binary64) x))
(fma.f64 x #s(literal 1 binary64) (*.f64 x #s(literal 1 binary64)))
(+.f64 (*.f64 #s(literal 1 binary64) x) (*.f64 #s(literal 1 binary64) x))
(+.f64 (*.f64 x #s(literal 1 binary64)) (*.f64 x #s(literal 1 binary64)))
(+.f64 x x)
(/.f64 (neg.f64 (*.f64 (+.f64 y x) (-.f64 x y))) (neg.f64 (+.f64 y x)))
(/.f64 (neg.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) (pow.f64 y #s(literal 3 binary64)))) (neg.f64 (fma.f64 y (+.f64 y x) (*.f64 x x))))
(/.f64 (*.f64 (+.f64 y x) (-.f64 x y)) (+.f64 y x))
(/.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) (pow.f64 y #s(literal 3 binary64))) (fma.f64 y (+.f64 y x) (*.f64 x x)))
(-.f64 (/.f64 (*.f64 x x) (+.f64 y x)) (/.f64 (*.f64 y y) (+.f64 y x)))
(-.f64 (/.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 y (+.f64 y x) (*.f64 x x))) (/.f64 (pow.f64 y #s(literal 3 binary64)) (fma.f64 y (+.f64 y x) (*.f64 x x))))
(-.f64 x y)

eval10.0ms (0.3%)

Memory
-20.3MiB live, 22.6MiB allocated; 6ms collecting garbage
Compiler

Compiled 780 to 169 computations (78.3% saved)

prune4.0ms (0.1%)

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

7 alts after pruning (7 fresh and 0 done)

PrunedKeptTotal
New44751
Fresh000
Picked101
Done000
Total45752
Accuracy
100.0%
Counts
52 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
79.8%
(/.f64 (*.f64 (+.f64 x x) y) (-.f64 x y))
89.4%
(*.f64 y (/.f64 (*.f64 #s(literal 2 binary64) x) (-.f64 x y)))
52.5%
#s(approx (/ (* (* x 2) y) (- x y)) (*.f64 (fma.f64 (/.f64 x y) #s(literal -2 binary64) #s(literal -2 binary64)) x))
47.9%
#s(approx (/ (* (* x 2) y) (- x y)) (*.f64 (fma.f64 y (/.f64 y x) y) #s(literal 2 binary64)))
52.5%
#s(approx (/ (* (* x 2) y) (- x y)) (*.f64 (fma.f64 x (/.f64 x y) x) #s(literal -2 binary64)))
48.1%
#s(approx (/ (* (* x 2) y) (- x y)) (*.f64 #s(literal 2 binary64) y))
52.8%
#s(approx (/ (* (* x 2) y) (- x y)) (*.f64 #s(literal -2 binary64) x))
Compiler

Compiled 196 to 138 computations (29.6% saved)

simplify167.0ms (4.2%)

Memory
9.3MiB live, 158.0MiB allocated; 16ms collecting garbage
Localize:

Found 16 expressions of interest:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
024137
038137
164137
2136137
3410137
41348137
56151137
08063137
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
(*.f64 y (/.f64 (*.f64 #s(literal 2 binary64) x) (-.f64 x y)))
y
(/.f64 (*.f64 #s(literal 2 binary64) x) (-.f64 x y))
(*.f64 #s(literal 2 binary64) x)
#s(literal 2 binary64)
x
(-.f64 x y)
#s(approx (/ (* (* x 2) y) (- x y)) (*.f64 #s(literal -2 binary64) x))
(*.f64 #s(literal -2 binary64) x)
#s(literal -2 binary64)
x
#s(approx (/ (* (* x 2) y) (- x y)) (*.f64 #s(literal 2 binary64) y))
(*.f64 #s(literal 2 binary64) y)
#s(literal 2 binary64)
y
#s(approx (/ (* (* x 2) y) (- x y)) (*.f64 (fma.f64 x (/.f64 x y) x) #s(literal -2 binary64)))
(*.f64 (fma.f64 x (/.f64 x y) x) #s(literal -2 binary64))
(fma.f64 x (/.f64 x y) x)
x
(/.f64 x y)
y
#s(literal -2 binary64)
#s(approx (/ (* (* x 2) y) (- x y)) (*.f64 (fma.f64 y (/.f64 y x) y) #s(literal 2 binary64)))
(*.f64 (fma.f64 y (/.f64 y x) y) #s(literal 2 binary64))
(fma.f64 y (/.f64 y x) y)
y
(/.f64 y x)
x
#s(literal 2 binary64)
Outputs
(*.f64 y (/.f64 (*.f64 #s(literal 2 binary64) x) (-.f64 x y)))
(*.f64 (/.f64 #s(literal 2 binary64) (-.f64 x y)) (*.f64 x y))
y
(/.f64 (*.f64 #s(literal 2 binary64) x) (-.f64 x y))
(*.f64 (/.f64 #s(literal 2 binary64) (-.f64 x y)) x)
(*.f64 #s(literal 2 binary64) x)
(*.f64 x #s(literal 2 binary64))
#s(literal 2 binary64)
x
(-.f64 x y)
#s(approx (/ (* (* x 2) y) (- x y)) (*.f64 #s(literal -2 binary64) x))
(*.f64 #s(literal -2 binary64) x)
#s(literal -2 binary64)
x
#s(approx (/ (* (* x 2) y) (- x y)) (*.f64 #s(literal 2 binary64) y))
(*.f64 #s(literal 2 binary64) y)
#s(literal 2 binary64)
y
#s(approx (/ (* (* x 2) y) (- x y)) (*.f64 (fma.f64 x (/.f64 x y) x) #s(literal -2 binary64)))
#s(approx (/ (* (* x 2) y) (- x y)) (*.f64 (fma.f64 (/.f64 x y) x x) #s(literal -2 binary64)))
(*.f64 (fma.f64 x (/.f64 x y) x) #s(literal -2 binary64))
(*.f64 (fma.f64 (/.f64 x y) x x) #s(literal -2 binary64))
(fma.f64 x (/.f64 x y) x)
(fma.f64 (/.f64 x y) x x)
x
(/.f64 x y)
y
#s(literal -2 binary64)
#s(approx (/ (* (* x 2) y) (- x y)) (*.f64 (fma.f64 y (/.f64 y x) y) #s(literal 2 binary64)))
#s(approx (/ (* (* x 2) y) (- x y)) (*.f64 (fma.f64 (/.f64 y x) y y) #s(literal 2 binary64)))
(*.f64 (fma.f64 y (/.f64 y x) y) #s(literal 2 binary64))
(*.f64 (fma.f64 (/.f64 y x) y y) #s(literal 2 binary64))
(fma.f64 y (/.f64 y x) y)
(fma.f64 (/.f64 y x) y y)
y
(/.f64 y x)
x
#s(literal 2 binary64)

localize186.0ms (4.6%)

Memory
-32.1MiB live, 130.5MiB allocated; 144ms collecting garbage
Localize:

Found 16 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(/.f64 y x)
accuracy0.0
(*.f64 (fma.f64 y (/.f64 y x) y) #s(literal 2 binary64))
accuracy0.0859375
(fma.f64 y (/.f64 y x) y)
accuracy33.36828870333288
#s(approx (/ (* (* x 2) y) (- x y)) (*.f64 (fma.f64 y (/.f64 y x) y) #s(literal 2 binary64)))
accuracy0.0
(/.f64 x y)
accuracy0.0
(*.f64 (fma.f64 x (/.f64 x y) x) #s(literal -2 binary64))
accuracy0.046875
(fma.f64 x (/.f64 x y) x)
accuracy30.372845603433824
#s(approx (/ (* (* x 2) y) (- x y)) (*.f64 (fma.f64 x (/.f64 x y) x) #s(literal -2 binary64)))
accuracy0.0
(*.f64 #s(literal 2 binary64) y)
accuracy33.24557635125566
#s(approx (/ (* (* x 2) y) (- x y)) (*.f64 #s(literal 2 binary64) y))
accuracy0.0
(*.f64 #s(literal -2 binary64) x)
accuracy30.20841968847783
#s(approx (/ (* (* x 2) y) (- x y)) (*.f64 #s(literal -2 binary64) x))
accuracy0.0
(-.f64 x y)
accuracy0.0
(*.f64 #s(literal 2 binary64) x)
accuracy0.015625
(/.f64 (*.f64 #s(literal 2 binary64) x) (-.f64 x y))
accuracy6.784960131474773
(*.f64 y (/.f64 (*.f64 #s(literal 2 binary64) x) (-.f64 x y)))
Samples
172.0ms256×0valid
Compiler

Compiled 117 to 23 computations (80.3% saved)

Precisions
Click to see histograms. Total time spent on operations: 129.0ms
ival-mult: 102.0ms (79.1% of total)
ival-add: 18.0ms (14% of total)
ival-div: 7.0ms (5.4% of total)
ival-sub: 1.0ms (0.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)

series34.0ms (0.8%)

Memory
-18.1MiB live, 26.5MiB allocated; 10ms collecting garbage
Counts
16 → 64
Calls
Call 1
Inputs
(*.f64 y (/.f64 (*.f64 #s(literal 2 binary64) x) (-.f64 x y)))
(/.f64 (*.f64 #s(literal 2 binary64) x) (-.f64 x y))
(*.f64 #s(literal 2 binary64) x)
(-.f64 x y)
#s(approx (/ (* (* x 2) y) (- x y)) (*.f64 #s(literal -2 binary64) x))
(*.f64 #s(literal -2 binary64) x)
#s(approx (/ (* (* x 2) y) (- x y)) (*.f64 #s(literal 2 binary64) y))
(*.f64 #s(literal 2 binary64) y)
#s(approx (/ (* (* x 2) y) (- x y)) (*.f64 (fma.f64 x (/.f64 x y) x) #s(literal -2 binary64)))
(*.f64 (fma.f64 x (/.f64 x y) x) #s(literal -2 binary64))
(fma.f64 x (/.f64 x y) x)
(/.f64 x y)
#s(approx (/ (* (* x 2) y) (- x y)) (*.f64 (fma.f64 y (/.f64 y x) y) #s(literal 2 binary64)))
(*.f64 (fma.f64 y (/.f64 y x) y) #s(literal 2 binary64))
(fma.f64 y (/.f64 y x) y)
(/.f64 y x)
Outputs
(* -2 x)
(* x (- (* -2 (/ x y)) 2))
(* x (- (* x (- (* -2 (/ x (pow y 2))) (* 2 (/ 1 y)))) 2))
(* x (- (* x (- (* x (- (* -2 (/ x (pow y 3))) (* 2 (/ 1 (pow y 2))))) (* 2 (/ 1 y)))) 2))
(* -2 (/ x y))
(* x (- (* -2 (/ x (pow y 2))) (* 2 (/ 1 y))))
(* x (- (* x (- (* -2 (/ x (pow y 3))) (* 2 (/ 1 (pow y 2))))) (* 2 (/ 1 y))))
(* x (- (* x (- (* x (- (* -2 (/ x (pow y 4))) (* 2 (/ 1 (pow y 3))))) (* 2 (/ 1 (pow y 2))))) (* 2 (/ 1 y))))
(* 2 x)
(* -1 y)
(- x y)
x
(* x (+ 1 (/ x y)))
(/ x y)
(* 2 (/ (pow y 2) x))
(/ (+ (* 2 (* x y)) (* 2 (pow y 2))) x)
(/ (pow y 2) x)
(/ (+ (* x y) (pow y 2)) x)
(/ y x)
(* 2 y)
(+ (* 2 y) (* 2 (/ (pow y 2) x)))
(+ (* 2 y) (+ (* 2 (/ (pow y 2) x)) (* 2 (/ (pow y 3) (pow x 2)))))
(+ (* 2 y) (+ (* 2 (/ (pow y 2) x)) (+ (* 2 (/ (pow y 3) (pow x 2))) (* 2 (/ (pow y 4) (pow x 3))))))
2
(+ 2 (* 2 (/ y x)))
(- (+ 2 (* 2 (/ (pow y 2) (pow x 2)))) (* -2 (/ y x)))
(- (+ 2 (* 2 (/ (pow y 3) (pow x 3)))) (+ (* -2 (/ y x)) (* -2 (/ (pow y 2) (pow x 2)))))
(* x (+ 1 (* -1 (/ y x))))
(* -2 (/ (pow x 2) y))
(* -1 (* (pow x 2) (+ (* 2 (/ 1 x)) (* 2 (/ 1 y)))))
(/ (pow x 2) y)
(* (pow x 2) (+ (/ 1 x) (/ 1 y)))
y
(+ y (/ (pow y 2) x))
(+ (* -1 (/ (+ (* -2 (/ (pow y 3) x)) (* -2 (pow y 2))) x)) (* 2 y))
(+ (* -1 (/ (+ (* -2 (pow y 2)) (* -1 (/ (+ (* 2 (/ (pow y 4) x)) (* 2 (pow y 3))) x))) x)) (* 2 y))
(+ 2 (* -1 (/ (- (* -2 (/ (pow y 2) x)) (* 2 y)) x)))
(+ 2 (* -1 (/ (- (* -1 (/ (- (* 2 (/ (pow y 3) x)) (* -2 (pow y 2))) x)) (* 2 y)) x)))
(* -1 (* x (- (/ y x) 1)))
(* y (+ 2 (* 2 (/ y x))))
(* y (+ 2 (* y (+ (* 2 (/ y (pow x 2))) (* 2 (/ 1 x))))))
(* y (+ 2 (* y (+ (* y (+ (* 2 (/ y (pow x 3))) (* 2 (/ 1 (pow x 2))))) (* 2 (/ 1 x))))))
(+ 2 (* y (+ (* 2 (/ y (pow x 2))) (* 2 (/ 1 x)))))
(+ 2 (* y (+ (* y (+ (* 2 (/ y (pow x 3))) (* 2 (/ 1 (pow x 2))))) (* 2 (/ 1 x)))))
(+ x (* -1 y))
(/ (+ (* -2 (* x y)) (* -2 (pow x 2))) y)
(/ (+ (* x y) (pow x 2)) y)
(* y (+ 1 (/ y x)))
(+ (* -2 x) (* -2 (/ (pow x 2) y)))
(+ (* -2 x) (+ (* -2 (/ (pow x 2) y)) (* -2 (/ (pow x 3) (pow y 2)))))
(+ (* -2 x) (+ (* -2 (/ (pow x 2) y)) (+ (* -2 (/ (pow x 3) (pow y 2))) (* -2 (/ (pow x 4) (pow y 3))))))
(/ (+ (* -2 x) (* -2 (/ (pow x 2) y))) y)
(/ (+ (* -2 x) (+ (* -2 (/ (pow x 2) y)) (* -2 (/ (pow x 3) (pow y 2))))) y)
(/ (+ (* -2 x) (+ (* -2 (/ (pow x 2) y)) (+ (* -2 (/ (pow x 3) (pow y 2))) (* -2 (/ (pow x 4) (pow y 3)))))) y)
(* y (- (/ x y) 1))
(+ x (/ (pow x 2) y))
(* (pow y 2) (+ (* 2 (/ 1 x)) (* 2 (/ 1 y))))
(* (pow y 2) (+ (/ 1 x) (/ 1 y)))
(+ (* -2 x) (* -1 (/ (+ (* 2 (/ (pow x 3) y)) (* 2 (pow x 2))) y)))
(+ (* -2 x) (* -1 (/ (+ (* -1 (/ (+ (* -2 (/ (pow x 4) y)) (* -2 (pow x 3))) y)) (* 2 (pow x 2))) y)))
(* -1 (/ (+ (* 2 x) (* 2 (/ (pow x 2) y))) y))
(* -1 (/ (+ (* -1 (/ (+ (* -2 (/ (pow x 3) y)) (* -2 (pow x 2))) y)) (* 2 x)) y))
(* -1 (/ (+ (* -1 (/ (+ (* -2 (pow x 2)) (* -1 (/ (+ (* 2 (/ (pow x 4) y)) (* 2 (pow x 3))) y))) y)) (* 2 x)) y))
(* -1 (* y (+ 1 (* -1 (/ x y)))))
Calls

6 calls:

TimeVariablePointExpression
21.0ms
y
@-inf
((* y (/ (* 2 x) (- x y))) (/ (* 2 x) (- x y)) (* 2 x) (- x y) (/ (* (* x 2) y) (- x y)) (* -2 x) (/ (* (* x 2) y) (- x y)) (* 2 y) (/ (* (* x 2) y) (- x y)) (* (+ (* x (/ x y)) x) -2) (+ (* x (/ x y)) x) (/ x y) (/ (* (* x 2) y) (- x y)) (* (+ (* y (/ y x)) y) 2) (+ (* y (/ y x)) y) (/ y x))
3.0ms
x
@0
((* y (/ (* 2 x) (- x y))) (/ (* 2 x) (- x y)) (* 2 x) (- x y) (/ (* (* x 2) y) (- x y)) (* -2 x) (/ (* (* x 2) y) (- x y)) (* 2 y) (/ (* (* x 2) y) (- x y)) (* (+ (* x (/ x y)) x) -2) (+ (* x (/ x y)) x) (/ x y) (/ (* (* x 2) y) (- x y)) (* (+ (* y (/ y x)) y) 2) (+ (* y (/ y x)) y) (/ y x))
2.0ms
x
@-inf
((* y (/ (* 2 x) (- x y))) (/ (* 2 x) (- x y)) (* 2 x) (- x y) (/ (* (* x 2) y) (- x y)) (* -2 x) (/ (* (* x 2) y) (- x y)) (* 2 y) (/ (* (* x 2) y) (- x y)) (* (+ (* x (/ x y)) x) -2) (+ (* x (/ x y)) x) (/ x y) (/ (* (* x 2) y) (- x y)) (* (+ (* y (/ y x)) y) 2) (+ (* y (/ y x)) y) (/ y x))
2.0ms
x
@inf
((* y (/ (* 2 x) (- x y))) (/ (* 2 x) (- x y)) (* 2 x) (- x y) (/ (* (* x 2) y) (- x y)) (* -2 x) (/ (* (* x 2) y) (- x y)) (* 2 y) (/ (* (* x 2) y) (- x y)) (* (+ (* x (/ x y)) x) -2) (+ (* x (/ x y)) x) (/ x y) (/ (* (* x 2) y) (- x y)) (* (+ (* y (/ y x)) y) 2) (+ (* y (/ y x)) y) (/ y x))
2.0ms
y
@inf
((* y (/ (* 2 x) (- x y))) (/ (* 2 x) (- x y)) (* 2 x) (- x y) (/ (* (* x 2) y) (- x y)) (* -2 x) (/ (* (* x 2) y) (- x y)) (* 2 y) (/ (* (* x 2) y) (- x y)) (* (+ (* x (/ x y)) x) -2) (+ (* x (/ x y)) x) (/ x y) (/ (* (* x 2) y) (- x y)) (* (+ (* y (/ y x)) y) 2) (+ (* y (/ y x)) y) (/ y x))

simplify298.0ms (7.4%)

Memory
5.5MiB live, 294.1MiB allocated; 49ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0219816
1743762
23141717
08315653
Stop Event
iter limit
node limit
Counts
64 → 62
Calls
Call 1
Inputs
(* -2 x)
(* x (- (* -2 (/ x y)) 2))
(* x (- (* x (- (* -2 (/ x (pow y 2))) (* 2 (/ 1 y)))) 2))
(* x (- (* x (- (* x (- (* -2 (/ x (pow y 3))) (* 2 (/ 1 (pow y 2))))) (* 2 (/ 1 y)))) 2))
(* -2 (/ x y))
(* x (- (* -2 (/ x (pow y 2))) (* 2 (/ 1 y))))
(* x (- (* x (- (* -2 (/ x (pow y 3))) (* 2 (/ 1 (pow y 2))))) (* 2 (/ 1 y))))
(* x (- (* x (- (* x (- (* -2 (/ x (pow y 4))) (* 2 (/ 1 (pow y 3))))) (* 2 (/ 1 (pow y 2))))) (* 2 (/ 1 y))))
(* 2 x)
(* -1 y)
(- x y)
x
(* x (+ 1 (/ x y)))
(/ x y)
(* 2 (/ (pow y 2) x))
(/ (+ (* 2 (* x y)) (* 2 (pow y 2))) x)
(/ (pow y 2) x)
(/ (+ (* x y) (pow y 2)) x)
(/ y x)
(* 2 y)
(+ (* 2 y) (* 2 (/ (pow y 2) x)))
(+ (* 2 y) (+ (* 2 (/ (pow y 2) x)) (* 2 (/ (pow y 3) (pow x 2)))))
(+ (* 2 y) (+ (* 2 (/ (pow y 2) x)) (+ (* 2 (/ (pow y 3) (pow x 2))) (* 2 (/ (pow y 4) (pow x 3))))))
2
(+ 2 (* 2 (/ y x)))
(- (+ 2 (* 2 (/ (pow y 2) (pow x 2)))) (* -2 (/ y x)))
(- (+ 2 (* 2 (/ (pow y 3) (pow x 3)))) (+ (* -2 (/ y x)) (* -2 (/ (pow y 2) (pow x 2)))))
(* x (+ 1 (* -1 (/ y x))))
(* -2 (/ (pow x 2) y))
(* -1 (* (pow x 2) (+ (* 2 (/ 1 x)) (* 2 (/ 1 y)))))
(/ (pow x 2) y)
(* (pow x 2) (+ (/ 1 x) (/ 1 y)))
y
(+ y (/ (pow y 2) x))
(+ (* -1 (/ (+ (* -2 (/ (pow y 3) x)) (* -2 (pow y 2))) x)) (* 2 y))
(+ (* -1 (/ (+ (* -2 (pow y 2)) (* -1 (/ (+ (* 2 (/ (pow y 4) x)) (* 2 (pow y 3))) x))) x)) (* 2 y))
(+ 2 (* -1 (/ (- (* -2 (/ (pow y 2) x)) (* 2 y)) x)))
(+ 2 (* -1 (/ (- (* -1 (/ (- (* 2 (/ (pow y 3) x)) (* -2 (pow y 2))) x)) (* 2 y)) x)))
(* -1 (* x (- (/ y x) 1)))
(* y (+ 2 (* 2 (/ y x))))
(* y (+ 2 (* y (+ (* 2 (/ y (pow x 2))) (* 2 (/ 1 x))))))
(* y (+ 2 (* y (+ (* y (+ (* 2 (/ y (pow x 3))) (* 2 (/ 1 (pow x 2))))) (* 2 (/ 1 x))))))
(+ 2 (* y (+ (* 2 (/ y (pow x 2))) (* 2 (/ 1 x)))))
(+ 2 (* y (+ (* y (+ (* 2 (/ y (pow x 3))) (* 2 (/ 1 (pow x 2))))) (* 2 (/ 1 x)))))
(+ x (* -1 y))
(/ (+ (* -2 (* x y)) (* -2 (pow x 2))) y)
(/ (+ (* x y) (pow x 2)) y)
(* y (+ 1 (/ y x)))
(+ (* -2 x) (* -2 (/ (pow x 2) y)))
(+ (* -2 x) (+ (* -2 (/ (pow x 2) y)) (* -2 (/ (pow x 3) (pow y 2)))))
(+ (* -2 x) (+ (* -2 (/ (pow x 2) y)) (+ (* -2 (/ (pow x 3) (pow y 2))) (* -2 (/ (pow x 4) (pow y 3))))))
(/ (+ (* -2 x) (* -2 (/ (pow x 2) y))) y)
(/ (+ (* -2 x) (+ (* -2 (/ (pow x 2) y)) (* -2 (/ (pow x 3) (pow y 2))))) y)
(/ (+ (* -2 x) (+ (* -2 (/ (pow x 2) y)) (+ (* -2 (/ (pow x 3) (pow y 2))) (* -2 (/ (pow x 4) (pow y 3)))))) y)
(* y (- (/ x y) 1))
(+ x (/ (pow x 2) y))
(* (pow y 2) (+ (* 2 (/ 1 x)) (* 2 (/ 1 y))))
(* (pow y 2) (+ (/ 1 x) (/ 1 y)))
(+ (* -2 x) (* -1 (/ (+ (* 2 (/ (pow x 3) y)) (* 2 (pow x 2))) y)))
(+ (* -2 x) (* -1 (/ (+ (* -1 (/ (+ (* -2 (/ (pow x 4) y)) (* -2 (pow x 3))) y)) (* 2 (pow x 2))) y)))
(* -1 (/ (+ (* 2 x) (* 2 (/ (pow x 2) y))) y))
(* -1 (/ (+ (* -1 (/ (+ (* -2 (/ (pow x 3) y)) (* -2 (pow x 2))) y)) (* 2 x)) y))
(* -1 (/ (+ (* -1 (/ (+ (* -2 (pow x 2)) (* -1 (/ (+ (* 2 (/ (pow x 4) y)) (* 2 (pow x 3))) y))) y)) (* 2 x)) y))
(* -1 (* y (+ 1 (* -1 (/ x y)))))
Outputs
(* -2 x)
(*.f64 #s(literal -2 binary64) x)
(* x (- (* -2 (/ x y)) 2))
(*.f64 (fma.f64 (/.f64 x y) #s(literal -2 binary64) #s(literal -2 binary64)) x)
(* x (- (* x (- (* -2 (/ x (pow y 2))) (* 2 (/ 1 y)))) 2))
(*.f64 (fma.f64 (/.f64 (fma.f64 (/.f64 x y) #s(literal -2 binary64) #s(literal -2 binary64)) y) x #s(literal -2 binary64)) x)
(* x (- (* x (- (* x (- (* -2 (/ x (pow y 3))) (* 2 (/ 1 (pow y 2))))) (* 2 (/ 1 y)))) 2))
(*.f64 (fma.f64 (fma.f64 (/.f64 (fma.f64 (/.f64 x y) #s(literal -2 binary64) #s(literal -2 binary64)) (*.f64 y y)) x (/.f64 #s(literal -2 binary64) y)) x #s(literal -2 binary64)) x)
(* -2 (/ x y))
(*.f64 (/.f64 x y) #s(literal -2 binary64))
(* x (- (* -2 (/ x (pow y 2))) (* 2 (/ 1 y))))
(*.f64 (/.f64 (fma.f64 (/.f64 x y) #s(literal -2 binary64) #s(literal -2 binary64)) y) x)
(* x (- (* x (- (* -2 (/ x (pow y 3))) (* 2 (/ 1 (pow y 2))))) (* 2 (/ 1 y))))
(*.f64 (fma.f64 (/.f64 (fma.f64 (/.f64 x y) #s(literal -2 binary64) #s(literal -2 binary64)) (*.f64 y y)) x (/.f64 #s(literal -2 binary64) y)) x)
(* x (- (* x (- (* x (- (* -2 (/ x (pow y 4))) (* 2 (/ 1 (pow y 3))))) (* 2 (/ 1 (pow y 2))))) (* 2 (/ 1 y))))
(*.f64 (fma.f64 (fma.f64 (fma.f64 (/.f64 x (pow.f64 y #s(literal 4 binary64))) #s(literal -2 binary64) (/.f64 #s(literal -2 binary64) (pow.f64 y #s(literal 3 binary64)))) x (/.f64 (/.f64 #s(literal -2 binary64) y) y)) x (/.f64 #s(literal -2 binary64) y)) x)
(* 2 x)
(*.f64 #s(literal 2 binary64) x)
(* -1 y)
(neg.f64 y)
(- x y)
(-.f64 x y)
x
(* x (+ 1 (/ x y)))
(fma.f64 (/.f64 x y) x x)
(/ x y)
(/.f64 x y)
(* 2 (/ (pow y 2) x))
(*.f64 (/.f64 (*.f64 y y) x) #s(literal 2 binary64))
(/ (+ (* 2 (* x y)) (* 2 (pow y 2))) x)
(/.f64 (*.f64 (*.f64 #s(literal 2 binary64) y) (+.f64 x y)) x)
(/ (pow y 2) x)
(/.f64 (*.f64 y y) x)
(/ (+ (* x y) (pow y 2)) x)
(/.f64 (*.f64 y (+.f64 x y)) x)
(/ y x)
(/.f64 y x)
(* 2 y)
(*.f64 #s(literal 2 binary64) y)
(+ (* 2 y) (* 2 (/ (pow y 2) x)))
(*.f64 (fma.f64 (/.f64 y x) y y) #s(literal 2 binary64))
(+ (* 2 y) (+ (* 2 (/ (pow y 2) x)) (* 2 (/ (pow y 3) (pow x 2)))))
(*.f64 (fma.f64 (/.f64 (fma.f64 (/.f64 y x) #s(literal 2 binary64) #s(literal 2 binary64)) x) y #s(literal 2 binary64)) y)
(+ (* 2 y) (+ (* 2 (/ (pow y 2) x)) (+ (* 2 (/ (pow y 3) (pow x 2))) (* 2 (/ (pow y 4) (pow x 3))))))
(*.f64 #s(literal 2 binary64) (+.f64 (fma.f64 (/.f64 y x) (fma.f64 (/.f64 y x) y y) y) (/.f64 (pow.f64 y #s(literal 4 binary64)) (pow.f64 x #s(literal 3 binary64)))))
2
#s(literal 2 binary64)
(+ 2 (* 2 (/ y x)))
(fma.f64 (/.f64 y x) #s(literal 2 binary64) #s(literal 2 binary64))
(- (+ 2 (* 2 (/ (pow y 2) (pow x 2)))) (* -2 (/ y x)))
(fma.f64 (/.f64 (fma.f64 (/.f64 y x) #s(literal 2 binary64) #s(literal 2 binary64)) x) y #s(literal 2 binary64))
(- (+ 2 (* 2 (/ (pow y 3) (pow x 3)))) (+ (* -2 (/ y x)) (* -2 (/ (pow y 2) (pow x 2)))))
(-.f64 (/.f64 (*.f64 (fma.f64 (/.f64 (fma.f64 (/.f64 y x) #s(literal 2 binary64) #s(literal 2 binary64)) x) y #s(literal 2 binary64)) y) x) #s(literal -2 binary64))
(* x (+ 1 (* -1 (/ y x))))
(*.f64 (-.f64 #s(literal 1 binary64) (/.f64 y x)) x)
(* -2 (/ (pow x 2) y))
(*.f64 (*.f64 (/.f64 x y) x) #s(literal -2 binary64))
(* -1 (* (pow x 2) (+ (* 2 (/ 1 x)) (* 2 (/ 1 y)))))
(*.f64 (+.f64 (/.f64 #s(literal -2 binary64) y) (/.f64 #s(literal -2 binary64) x)) (*.f64 x x))
(/ (pow x 2) y)
(*.f64 (/.f64 x y) x)
(* (pow x 2) (+ (/ 1 x) (/ 1 y)))
(fma.f64 (/.f64 x y) x (/.f64 (*.f64 x x) x))
y
(+ y (/ (pow y 2) x))
(fma.f64 (/.f64 y x) y y)
(+ (* -1 (/ (+ (* -2 (/ (pow y 3) x)) (* -2 (pow y 2))) x)) (* 2 y))
(*.f64 (fma.f64 (/.f64 (fma.f64 (/.f64 y x) #s(literal 2 binary64) #s(literal 2 binary64)) x) y #s(literal 2 binary64)) y)
(+ (* -1 (/ (+ (* -2 (pow y 2)) (* -1 (/ (+ (* 2 (/ (pow y 4) x)) (* 2 (pow y 3))) x))) x)) (* 2 y))
(*.f64 #s(literal 2 binary64) (+.f64 (fma.f64 (/.f64 y x) (fma.f64 (/.f64 y x) y y) y) (/.f64 (pow.f64 y #s(literal 4 binary64)) (pow.f64 x #s(literal 3 binary64)))))
(+ 2 (* -1 (/ (- (* -2 (/ (pow y 2) x)) (* 2 y)) x)))
(fma.f64 (/.f64 (fma.f64 (/.f64 y x) #s(literal 2 binary64) #s(literal 2 binary64)) x) y #s(literal 2 binary64))
(+ 2 (* -1 (/ (- (* -1 (/ (- (* 2 (/ (pow y 3) x)) (* -2 (pow y 2))) x)) (* 2 y)) x)))
(-.f64 (/.f64 (*.f64 (fma.f64 (/.f64 (fma.f64 (/.f64 y x) #s(literal 2 binary64) #s(literal 2 binary64)) x) y #s(literal 2 binary64)) y) x) #s(literal -2 binary64))
(* -1 (* x (- (/ y x) 1)))
(*.f64 (-.f64 #s(literal 1 binary64) (/.f64 y x)) x)
(* y (+ 2 (* 2 (/ y x))))
(*.f64 (fma.f64 (/.f64 y x) y y) #s(literal 2 binary64))
(* y (+ 2 (* y (+ (* 2 (/ y (pow x 2))) (* 2 (/ 1 x))))))
(*.f64 (fma.f64 (/.f64 (fma.f64 (/.f64 y x) #s(literal 2 binary64) #s(literal 2 binary64)) x) y #s(literal 2 binary64)) y)
(* y (+ 2 (* y (+ (* y (+ (* 2 (/ y (pow x 3))) (* 2 (/ 1 (pow x 2))))) (* 2 (/ 1 x))))))
(*.f64 (-.f64 (/.f64 (*.f64 (fma.f64 (/.f64 (fma.f64 (/.f64 y x) #s(literal 2 binary64) #s(literal 2 binary64)) x) y #s(literal 2 binary64)) y) x) #s(literal -2 binary64)) y)
(+ 2 (* y (+ (* 2 (/ y (pow x 2))) (* 2 (/ 1 x)))))
(fma.f64 (/.f64 (fma.f64 (/.f64 y x) #s(literal 2 binary64) #s(literal 2 binary64)) x) y #s(literal 2 binary64))
(+ 2 (* y (+ (* y (+ (* 2 (/ y (pow x 3))) (* 2 (/ 1 (pow x 2))))) (* 2 (/ 1 x)))))
(-.f64 (/.f64 (*.f64 (fma.f64 (/.f64 (fma.f64 (/.f64 y x) #s(literal 2 binary64) #s(literal 2 binary64)) x) y #s(literal 2 binary64)) y) x) #s(literal -2 binary64))
(+ x (* -1 y))
(-.f64 x y)
(/ (+ (* -2 (* x y)) (* -2 (pow x 2))) y)
(/.f64 (*.f64 (*.f64 #s(literal -2 binary64) x) (+.f64 x y)) y)
(/ (+ (* x y) (pow x 2)) y)
(/.f64 (*.f64 x (+.f64 x y)) y)
(* y (+ 1 (/ y x)))
(fma.f64 (/.f64 y x) y y)
(+ (* -2 x) (* -2 (/ (pow x 2) y)))
(*.f64 (fma.f64 (/.f64 x y) x x) #s(literal -2 binary64))
(+ (* -2 x) (+ (* -2 (/ (pow x 2) y)) (* -2 (/ (pow x 3) (pow y 2)))))
(*.f64 #s(literal -2 binary64) (fma.f64 (/.f64 x y) (fma.f64 (/.f64 x y) x x) x))
(+ (* -2 x) (+ (* -2 (/ (pow x 2) y)) (+ (* -2 (/ (pow x 3) (pow y 2))) (* -2 (/ (pow x 4) (pow y 3))))))
(*.f64 #s(literal -2 binary64) (+.f64 (fma.f64 (/.f64 x y) (fma.f64 (/.f64 x y) x x) x) (/.f64 (pow.f64 x #s(literal 4 binary64)) (pow.f64 y #s(literal 3 binary64)))))
(/ (+ (* -2 x) (* -2 (/ (pow x 2) y))) y)
(*.f64 #s(literal -2 binary64) (/.f64 (fma.f64 (/.f64 x y) x x) y))
(/ (+ (* -2 x) (+ (* -2 (/ (pow x 2) y)) (* -2 (/ (pow x 3) (pow y 2))))) y)
(/.f64 (*.f64 #s(literal -2 binary64) (fma.f64 (/.f64 x y) (fma.f64 (/.f64 x y) x x) x)) y)
(/ (+ (* -2 x) (+ (* -2 (/ (pow x 2) y)) (+ (* -2 (/ (pow x 3) (pow y 2))) (* -2 (/ (pow x 4) (pow y 3)))))) y)
(/.f64 (*.f64 #s(literal -2 binary64) (+.f64 (fma.f64 (/.f64 x y) (fma.f64 (/.f64 x y) x x) x) (/.f64 (pow.f64 x #s(literal 4 binary64)) (pow.f64 y #s(literal 3 binary64))))) y)
(* y (- (/ x y) 1))
(fma.f64 (/.f64 x y) y (neg.f64 y))
(+ x (/ (pow x 2) y))
(fma.f64 (/.f64 x y) x x)
(* (pow y 2) (+ (* 2 (/ 1 x)) (* 2 (/ 1 y))))
(*.f64 (*.f64 (-.f64 (/.f64 #s(literal 2 binary64) x) (/.f64 #s(literal -2 binary64) y)) y) y)
(* (pow y 2) (+ (/ 1 x) (/ 1 y)))
(*.f64 y (fma.f64 y (/.f64 #s(literal 1 binary64) y) (/.f64 y x)))
(+ (* -2 x) (* -1 (/ (+ (* 2 (/ (pow x 3) y)) (* 2 (pow x 2))) y)))
(*.f64 #s(literal -2 binary64) (fma.f64 (/.f64 x y) (fma.f64 (/.f64 x y) x x) x))
(+ (* -2 x) (* -1 (/ (+ (* -1 (/ (+ (* -2 (/ (pow x 4) y)) (* -2 (pow x 3))) y)) (* 2 (pow x 2))) y)))
(*.f64 #s(literal -2 binary64) (+.f64 (fma.f64 (/.f64 x y) (fma.f64 (/.f64 x y) x x) x) (/.f64 (pow.f64 x #s(literal 4 binary64)) (pow.f64 y #s(literal 3 binary64)))))
(* -1 (/ (+ (* 2 x) (* 2 (/ (pow x 2) y))) y))
(*.f64 #s(literal -2 binary64) (/.f64 (fma.f64 (/.f64 x y) x x) y))
(* -1 (/ (+ (* -1 (/ (+ (* -2 (/ (pow x 3) y)) (* -2 (pow x 2))) y)) (* 2 x)) y))
(/.f64 (*.f64 #s(literal -2 binary64) (fma.f64 (/.f64 x y) (fma.f64 (/.f64 x y) x x) x)) y)
(* -1 (/ (+ (* -1 (/ (+ (* -2 (pow x 2)) (* -1 (/ (+ (* 2 (/ (pow x 4) y)) (* 2 (pow x 3))) y))) y)) (* 2 x)) y))
(/.f64 (*.f64 #s(literal -2 binary64) (+.f64 (fma.f64 (/.f64 x y) (fma.f64 (/.f64 x y) x x) x) (/.f64 (pow.f64 x #s(literal 4 binary64)) (pow.f64 y #s(literal 3 binary64))))) y)
(* -1 (* y (+ 1 (* -1 (/ x y)))))
(fma.f64 (/.f64 x y) y (neg.f64 y))

rewrite51.0ms (1.3%)

Memory
26.8MiB live, 111.1MiB allocated; 12ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
024124
038124
1104124
0579124
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
16 → 146
Calls
Call 1
Inputs
(*.f64 y (/.f64 (*.f64 #s(literal 2 binary64) x) (-.f64 x y)))
(/.f64 (*.f64 #s(literal 2 binary64) x) (-.f64 x y))
(*.f64 #s(literal 2 binary64) x)
(-.f64 x y)
#s(approx (/ (* (* x 2) y) (- x y)) (*.f64 #s(literal -2 binary64) x))
(*.f64 #s(literal -2 binary64) x)
#s(approx (/ (* (* x 2) y) (- x y)) (*.f64 #s(literal 2 binary64) y))
(*.f64 #s(literal 2 binary64) y)
#s(approx (/ (* (* x 2) y) (- x y)) (*.f64 (fma.f64 x (/.f64 x y) x) #s(literal -2 binary64)))
(*.f64 (fma.f64 x (/.f64 x y) x) #s(literal -2 binary64))
(fma.f64 x (/.f64 x y) x)
(/.f64 x y)
#s(approx (/ (* (* x 2) y) (- x y)) (*.f64 (fma.f64 y (/.f64 y x) y) #s(literal 2 binary64)))
(*.f64 (fma.f64 y (/.f64 y x) y) #s(literal 2 binary64))
(fma.f64 y (/.f64 y x) y)
(/.f64 y x)
Outputs
(*.f64 (/.f64 (*.f64 (*.f64 x #s(literal 2 binary64)) y) (*.f64 (+.f64 x y) (-.f64 x y))) (+.f64 x y))
(*.f64 (/.f64 (*.f64 (*.f64 x #s(literal 2 binary64)) y) (-.f64 (pow.f64 x #s(literal 3 binary64)) (pow.f64 y #s(literal 3 binary64)))) (fma.f64 x x (*.f64 y (+.f64 x y))))
(*.f64 (/.f64 y (-.f64 x y)) (*.f64 x #s(literal 2 binary64)))
(*.f64 (*.f64 #s(literal 2 binary64) y) (/.f64 x (-.f64 x y)))
(*.f64 (*.f64 (/.f64 x (-.f64 x y)) #s(literal 2 binary64)) y)
(*.f64 (*.f64 x #s(literal 2 binary64)) (/.f64 y (-.f64 x y)))
(*.f64 x (/.f64 (*.f64 #s(literal 2 binary64) y) (-.f64 x y)))
(*.f64 x (*.f64 #s(literal 2 binary64) (/.f64 y (-.f64 x y))))
(*.f64 #s(literal 2 binary64) (*.f64 (/.f64 x (-.f64 x y)) y))
(*.f64 #s(literal 2 binary64) (*.f64 x (/.f64 y (-.f64 x y))))
(*.f64 y (*.f64 (/.f64 x (-.f64 x y)) #s(literal 2 binary64)))
(/.f64 (neg.f64 (*.f64 (*.f64 #s(literal -2 binary64) x) y)) (neg.f64 (neg.f64 (-.f64 x y))))
(/.f64 (*.f64 (*.f64 #s(literal -2 binary64) x) y) (neg.f64 (-.f64 x y)))
(/.f64 (*.f64 (*.f64 x #s(literal 2 binary64)) y) (-.f64 x y))
(neg.f64 (/.f64 (*.f64 (*.f64 #s(literal -2 binary64) x) y) (-.f64 x y)))
(neg.f64 (/.f64 (*.f64 (*.f64 x #s(literal 2 binary64)) y) (neg.f64 (-.f64 x y))))
(*.f64 (/.f64 (*.f64 x #s(literal 2 binary64)) (*.f64 (+.f64 x y) (-.f64 x y))) (+.f64 x y))
(*.f64 (/.f64 (*.f64 x #s(literal 2 binary64)) (-.f64 (pow.f64 x #s(literal 3 binary64)) (pow.f64 y #s(literal 3 binary64)))) (fma.f64 x x (*.f64 y (+.f64 x y))))
(*.f64 (/.f64 x (-.f64 x y)) #s(literal 2 binary64))
(*.f64 x (/.f64 #s(literal 2 binary64) (-.f64 x y)))
(*.f64 #s(literal 2 binary64) (/.f64 x (-.f64 x y)))
(/.f64 (neg.f64 (*.f64 #s(literal -2 binary64) x)) (neg.f64 (neg.f64 (-.f64 x y))))
(/.f64 (*.f64 #s(literal -2 binary64) x) (neg.f64 (-.f64 x y)))
(/.f64 (*.f64 x #s(literal 2 binary64)) (-.f64 x y))
(neg.f64 (/.f64 (*.f64 #s(literal -2 binary64) x) (-.f64 x y)))
(neg.f64 (/.f64 (*.f64 x #s(literal 2 binary64)) (neg.f64 (-.f64 x y))))
(fma.f64 (/.f64 x (*.f64 (+.f64 x y) (-.f64 x y))) (+.f64 x y) (/.f64 x (-.f64 x y)))
(fma.f64 (/.f64 x (-.f64 (pow.f64 x #s(literal 3 binary64)) (pow.f64 y #s(literal 3 binary64)))) (fma.f64 x x (*.f64 y (+.f64 x y))) (/.f64 x (-.f64 x y)))
(+.f64 (/.f64 x (-.f64 x y)) (/.f64 x (-.f64 x y)))
(*.f64 x #s(literal 2 binary64))
(*.f64 #s(literal 2 binary64) x)
(/.f64 (-.f64 (*.f64 x x) (*.f64 x x)) (-.f64 x x))
(/.f64 (+.f64 (pow.f64 x #s(literal 3 binary64)) (pow.f64 x #s(literal 3 binary64))) (fma.f64 x x (-.f64 (*.f64 x x) (*.f64 x x))))
(fma.f64 #s(literal 1 binary64) x (*.f64 #s(literal 1 binary64) x))
(fma.f64 x #s(literal 1 binary64) (*.f64 x #s(literal 1 binary64)))
(+.f64 (*.f64 #s(literal 1 binary64) x) (*.f64 #s(literal 1 binary64) x))
(+.f64 (*.f64 x #s(literal 1 binary64)) (*.f64 x #s(literal 1 binary64)))
(+.f64 x x)
(/.f64 (neg.f64 (*.f64 (+.f64 x y) (-.f64 x y))) (neg.f64 (+.f64 x y)))
(/.f64 (neg.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) (pow.f64 y #s(literal 3 binary64)))) (neg.f64 (fma.f64 x x (*.f64 y (+.f64 x y)))))
(/.f64 (*.f64 (+.f64 x y) (-.f64 x y)) (+.f64 x y))
(/.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) (pow.f64 y #s(literal 3 binary64))) (fma.f64 x x (*.f64 y (+.f64 x y))))
(-.f64 (/.f64 (*.f64 x x) (+.f64 x y)) (/.f64 (*.f64 y y) (+.f64 x y)))
(-.f64 (/.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 x x (*.f64 y (+.f64 x y)))) (/.f64 (pow.f64 y #s(literal 3 binary64)) (fma.f64 x x (*.f64 y (+.f64 x y)))))
(-.f64 x y)
#s(approx (/ (* (* x 2) y) (- x y)) (*.f64 #s(literal -2 binary64) x))
(*.f64 (neg.f64 x) #s(literal 2 binary64))
(*.f64 #s(literal -2 binary64) x)
(*.f64 x #s(literal -2 binary64))
(*.f64 #s(literal 2 binary64) (neg.f64 x))
(neg.f64 (*.f64 x #s(literal 2 binary64)))
(+.f64 (neg.f64 x) (neg.f64 x))
#s(approx (/ (* (* x 2) y) (- x y)) (*.f64 #s(literal 2 binary64) y))
(*.f64 #s(literal 2 binary64) y)
(*.f64 y #s(literal 2 binary64))
(/.f64 (-.f64 (*.f64 y y) (*.f64 y y)) (-.f64 y y))
(/.f64 (+.f64 (pow.f64 y #s(literal 3 binary64)) (pow.f64 y #s(literal 3 binary64))) (fma.f64 y y (-.f64 (*.f64 y y) (*.f64 y y))))
(fma.f64 #s(literal 1 binary64) y (*.f64 #s(literal 1 binary64) y))
(fma.f64 y #s(literal 1 binary64) (*.f64 y #s(literal 1 binary64)))
(+.f64 (*.f64 #s(literal 1 binary64) y) (*.f64 #s(literal 1 binary64) y))
(+.f64 (*.f64 y #s(literal 1 binary64)) (*.f64 y #s(literal 1 binary64)))
(+.f64 y y)
#s(approx (/ (* (* x 2) y) (- x y)) (*.f64 (fma.f64 (/.f64 x y) x x) #s(literal -2 binary64)))
(*.f64 (fma.f64 (/.f64 x y) x x) #s(literal -2 binary64))
(*.f64 #s(literal -2 binary64) (fma.f64 (/.f64 x y) x x))
(/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (/.f64 x y) x) #s(literal 2 binary64)) (*.f64 x x)) #s(literal -2 binary64)) (-.f64 (*.f64 (/.f64 x y) x) x))
(/.f64 (*.f64 (+.f64 (pow.f64 x #s(literal 3 binary64)) (pow.f64 (*.f64 (/.f64 x y) x) #s(literal 3 binary64))) #s(literal -2 binary64)) (fma.f64 x (-.f64 x (*.f64 (/.f64 x y) x)) (pow.f64 (*.f64 (/.f64 x y) x) #s(literal 2 binary64))))
(/.f64 (*.f64 #s(literal -2 binary64) (-.f64 (pow.f64 (*.f64 (/.f64 x y) x) #s(literal 2 binary64)) (*.f64 x x))) (-.f64 (*.f64 (/.f64 x y) x) x))
(/.f64 (*.f64 #s(literal -2 binary64) (+.f64 (pow.f64 x #s(literal 3 binary64)) (pow.f64 (*.f64 (/.f64 x y) x) #s(literal 3 binary64)))) (fma.f64 x (-.f64 x (*.f64 (/.f64 x y) x)) (pow.f64 (*.f64 (/.f64 x y) x) #s(literal 2 binary64))))
(fma.f64 (neg.f64 x) #s(literal 2 binary64) (*.f64 (*.f64 (/.f64 x y) x) #s(literal -2 binary64)))
(fma.f64 (neg.f64 x) #s(literal 2 binary64) (*.f64 #s(literal -2 binary64) (*.f64 (/.f64 x y) x)))
(fma.f64 (*.f64 (/.f64 x y) x) #s(literal -2 binary64) (*.f64 #s(literal -2 binary64) x))
(fma.f64 #s(literal -2 binary64) (*.f64 (/.f64 x y) x) (*.f64 #s(literal -2 binary64) x))
(fma.f64 #s(literal -2 binary64) x (*.f64 (*.f64 (/.f64 x y) x) #s(literal -2 binary64)))
(fma.f64 #s(literal -2 binary64) x (*.f64 #s(literal -2 binary64) (*.f64 (/.f64 x y) x)))
(fma.f64 x #s(literal -2 binary64) (*.f64 (*.f64 (/.f64 x y) x) #s(literal -2 binary64)))
(fma.f64 x #s(literal -2 binary64) (*.f64 #s(literal -2 binary64) (*.f64 (/.f64 x y) x)))
(fma.f64 #s(literal 2 binary64) (neg.f64 x) (*.f64 (*.f64 (/.f64 x y) x) #s(literal -2 binary64)))
(fma.f64 #s(literal 2 binary64) (neg.f64 x) (*.f64 #s(literal -2 binary64) (*.f64 (/.f64 x y) x)))
(+.f64 (*.f64 (*.f64 (/.f64 x y) x) #s(literal -2 binary64)) (*.f64 #s(literal -2 binary64) x))
(+.f64 (*.f64 #s(literal -2 binary64) (*.f64 (/.f64 x y) x)) (*.f64 #s(literal -2 binary64) x))
(+.f64 (*.f64 #s(literal -2 binary64) x) (*.f64 (*.f64 (/.f64 x y) x) #s(literal -2 binary64)))
(+.f64 (*.f64 #s(literal -2 binary64) x) (*.f64 #s(literal -2 binary64) (*.f64 (/.f64 x y) x)))
(*.f64 (+.f64 (/.f64 x y) #s(literal 1 binary64)) x)
(/.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 (/.f64 x y) x) #s(literal 2 binary64))) (-.f64 x (*.f64 (/.f64 x y) x)))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (/.f64 x y) x) #s(literal 2 binary64)) (*.f64 x x))) (neg.f64 (-.f64 (*.f64 (/.f64 x y) x) x)))
(/.f64 (neg.f64 (+.f64 (pow.f64 x #s(literal 3 binary64)) (pow.f64 (*.f64 (/.f64 x y) x) #s(literal 3 binary64)))) (neg.f64 (fma.f64 x (-.f64 x (*.f64 (/.f64 x y) x)) (pow.f64 (*.f64 (/.f64 x y) x) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 (/.f64 x y) x) #s(literal 2 binary64)) (*.f64 x x)) (-.f64 (*.f64 (/.f64 x y) x) x))
(/.f64 (+.f64 (pow.f64 x #s(literal 3 binary64)) (pow.f64 (*.f64 (/.f64 x y) x) #s(literal 3 binary64))) (fma.f64 x x (-.f64 (pow.f64 (*.f64 (/.f64 x y) x) #s(literal 2 binary64)) (/.f64 (pow.f64 x #s(literal 3 binary64)) y))))
(/.f64 (+.f64 (pow.f64 x #s(literal 3 binary64)) (pow.f64 (*.f64 (/.f64 x y) x) #s(literal 3 binary64))) (fma.f64 x (-.f64 x (*.f64 (/.f64 x y) x)) (pow.f64 (*.f64 (/.f64 x y) x) #s(literal 2 binary64))))
(fma.f64 (/.f64 x y) x x)
(fma.f64 x (/.f64 x y) x)
(-.f64 (/.f64 (pow.f64 (*.f64 (/.f64 x y) x) #s(literal 2 binary64)) (-.f64 (*.f64 (/.f64 x y) x) x)) (/.f64 (*.f64 x x) (-.f64 (*.f64 (/.f64 x y) x) x)))
(-.f64 x (*.f64 (neg.f64 (/.f64 x y)) x))
(-.f64 x (*.f64 (neg.f64 x) (/.f64 x y)))
(+.f64 (/.f64 (pow.f64 (*.f64 (/.f64 x y) x) #s(literal 3 binary64)) (fma.f64 x (-.f64 x (*.f64 (/.f64 x y) x)) (pow.f64 (*.f64 (/.f64 x y) x) #s(literal 2 binary64)))) (/.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 x (-.f64 x (*.f64 (/.f64 x y) x)) (pow.f64 (*.f64 (/.f64 x y) x) #s(literal 2 binary64)))))
(+.f64 (*.f64 (/.f64 x y) x) x)
(+.f64 x (*.f64 (/.f64 x y) x))
(/.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 y)))
(/.f64 (neg.f64 x) (neg.f64 y))
(/.f64 x y)
(neg.f64 (/.f64 (neg.f64 x) y))
(neg.f64 (/.f64 x (neg.f64 y)))
#s(approx (/ (* (* x 2) y) (- x y)) (*.f64 (fma.f64 (/.f64 y x) y y) #s(literal 2 binary64)))
(*.f64 (fma.f64 (/.f64 y x) y y) #s(literal 2 binary64))
(*.f64 #s(literal 2 binary64) (fma.f64 (/.f64 y x) y y))
(/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (/.f64 y x) y) #s(literal 2 binary64)) (*.f64 y y)) #s(literal 2 binary64)) (-.f64 (*.f64 (/.f64 y x) y) y))
(/.f64 (*.f64 (+.f64 (pow.f64 y #s(literal 3 binary64)) (pow.f64 (*.f64 (/.f64 y x) y) #s(literal 3 binary64))) #s(literal 2 binary64)) (fma.f64 y (-.f64 y (*.f64 (/.f64 y x) y)) (pow.f64 (*.f64 (/.f64 y x) y) #s(literal 2 binary64))))
(/.f64 (*.f64 #s(literal 2 binary64) (-.f64 (pow.f64 (*.f64 (/.f64 y x) y) #s(literal 2 binary64)) (*.f64 y y))) (-.f64 (*.f64 (/.f64 y x) y) y))
(/.f64 (*.f64 #s(literal 2 binary64) (+.f64 (pow.f64 y #s(literal 3 binary64)) (pow.f64 (*.f64 (/.f64 y x) y) #s(literal 3 binary64)))) (fma.f64 y (-.f64 y (*.f64 (/.f64 y x) y)) (pow.f64 (*.f64 (/.f64 y x) y) #s(literal 2 binary64))))
(fma.f64 (+.f64 (/.f64 y x) #s(literal 1 binary64)) y (fma.f64 (/.f64 y x) y y))
(fma.f64 #s(literal 1 binary64) (fma.f64 (/.f64 y x) y y) (*.f64 #s(literal 1 binary64) (fma.f64 (/.f64 y x) y y)))
(fma.f64 (*.f64 (/.f64 y x) y) #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) y))
(fma.f64 (fma.f64 (/.f64 y x) y y) #s(literal 1 binary64) (*.f64 (fma.f64 (/.f64 y x) y y) #s(literal 1 binary64)))
(fma.f64 #s(literal 2 binary64) (*.f64 (/.f64 y x) y) (*.f64 #s(literal 2 binary64) y))
(fma.f64 #s(literal 2 binary64) y (*.f64 (*.f64 (/.f64 y x) y) #s(literal 2 binary64)))
(fma.f64 #s(literal 2 binary64) y (*.f64 #s(literal 2 binary64) (*.f64 (/.f64 y x) y)))
(fma.f64 y #s(literal 2 binary64) (*.f64 (*.f64 (/.f64 y x) y) #s(literal 2 binary64)))
(fma.f64 y #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (*.f64 (/.f64 y x) y)))
(+.f64 (*.f64 #s(literal 1 binary64) (fma.f64 (/.f64 y x) y y)) (*.f64 #s(literal 1 binary64) (fma.f64 (/.f64 y x) y y)))
(+.f64 (*.f64 (*.f64 (/.f64 y x) y) #s(literal 2 binary64)) (*.f64 #s(literal 2 binary64) y))
(+.f64 (*.f64 (fma.f64 (/.f64 y x) y y) #s(literal 1 binary64)) (*.f64 (fma.f64 (/.f64 y x) y y) #s(literal 1 binary64)))
(+.f64 (*.f64 #s(literal 2 binary64) (*.f64 (/.f64 y x) y)) (*.f64 #s(literal 2 binary64) y))
(+.f64 (fma.f64 (/.f64 y x) y y) (fma.f64 (/.f64 y x) y y))
(+.f64 (*.f64 #s(literal 2 binary64) y) (*.f64 (*.f64 (/.f64 y x) y) #s(literal 2 binary64)))
(+.f64 (*.f64 #s(literal 2 binary64) y) (*.f64 #s(literal 2 binary64) (*.f64 (/.f64 y x) y)))
(*.f64 (+.f64 (/.f64 y x) #s(literal 1 binary64)) y)
(/.f64 (-.f64 (*.f64 y y) (pow.f64 (*.f64 (/.f64 y x) y) #s(literal 2 binary64))) (-.f64 y (*.f64 (/.f64 y x) y)))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (/.f64 y x) y) #s(literal 2 binary64)) (*.f64 y y))) (neg.f64 (-.f64 (*.f64 (/.f64 y x) y) y)))
(/.f64 (neg.f64 (+.f64 (pow.f64 y #s(literal 3 binary64)) (pow.f64 (*.f64 (/.f64 y x) y) #s(literal 3 binary64)))) (neg.f64 (fma.f64 y (-.f64 y (*.f64 (/.f64 y x) y)) (pow.f64 (*.f64 (/.f64 y x) y) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 (/.f64 y x) y) #s(literal 2 binary64)) (*.f64 y y)) (-.f64 (*.f64 (/.f64 y x) y) y))
(/.f64 (+.f64 (pow.f64 y #s(literal 3 binary64)) (pow.f64 (*.f64 (/.f64 y x) y) #s(literal 3 binary64))) (fma.f64 y y (-.f64 (pow.f64 (*.f64 (/.f64 y x) y) #s(literal 2 binary64)) (/.f64 (pow.f64 y #s(literal 3 binary64)) x))))
(/.f64 (+.f64 (pow.f64 y #s(literal 3 binary64)) (pow.f64 (*.f64 (/.f64 y x) y) #s(literal 3 binary64))) (fma.f64 y (-.f64 y (*.f64 (/.f64 y x) y)) (pow.f64 (*.f64 (/.f64 y x) y) #s(literal 2 binary64))))
(fma.f64 (/.f64 y x) y y)
(fma.f64 y (/.f64 y x) y)
(-.f64 (/.f64 (pow.f64 (*.f64 (/.f64 y x) y) #s(literal 2 binary64)) (-.f64 (*.f64 (/.f64 y x) y) y)) (/.f64 (*.f64 y y) (-.f64 (*.f64 (/.f64 y x) y) y)))
(-.f64 y (*.f64 (neg.f64 (/.f64 y x)) y))
(-.f64 y (*.f64 (neg.f64 y) (/.f64 y x)))
(+.f64 (/.f64 (pow.f64 (*.f64 (/.f64 y x) y) #s(literal 3 binary64)) (fma.f64 y (-.f64 y (*.f64 (/.f64 y x) y)) (pow.f64 (*.f64 (/.f64 y x) y) #s(literal 2 binary64)))) (/.f64 (pow.f64 y #s(literal 3 binary64)) (fma.f64 y (-.f64 y (*.f64 (/.f64 y x) y)) (pow.f64 (*.f64 (/.f64 y x) y) #s(literal 2 binary64)))))
(+.f64 (*.f64 (/.f64 y x) y) y)
(+.f64 y (*.f64 (/.f64 y x) y))
(/.f64 (neg.f64 (neg.f64 y)) (neg.f64 (neg.f64 x)))
(/.f64 (neg.f64 y) (neg.f64 x))
(/.f64 y x)
(neg.f64 (/.f64 (neg.f64 y) x))
(neg.f64 (/.f64 y (neg.f64 x)))

eval71.0ms (1.8%)

Memory
-37.1MiB live, 69.7MiB allocated; 9ms collecting garbage
Compiler

Compiled 4 027 to 624 computations (84.5% saved)

prune7.0ms (0.2%)

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

5 alts after pruning (2 fresh and 3 done)

PrunedKeptTotal
New1882190
Fresh202
Picked235
Done000
Total1925197
Accuracy
100.0%
Counts
197 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
89.4%
(*.f64 y (/.f64 (+.f64 x x) (-.f64 x y)))
48.1%
#s(approx (/ (* (* x 2) y) (- x y)) (+.f64 y y))
47.9%
#s(approx (/ (* (* x 2) y) (- x y)) (*.f64 (fma.f64 y (/.f64 y x) y) #s(literal 2 binary64)))
52.5%
#s(approx (/ (* (* x 2) y) (- x y)) (*.f64 (fma.f64 x (/.f64 x y) x) #s(literal -2 binary64)))
52.8%
#s(approx (/ (* (* x 2) y) (- x y)) (*.f64 #s(literal -2 binary64) x))
Compiler

Compiled 71 to 49 computations (31% saved)

simplify212.0ms (5.3%)

Memory
-22.8MiB live, 224.7MiB allocated; 32ms collecting garbage
Localize:

Found 6 expressions of interest:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01341
01841
13341
26341
316241
435041
5137841
6650341
0931741
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
#s(approx (/ (* (* x 2) y) (- x y)) (+.f64 y y))
(+.f64 y y)
y
(*.f64 y (/.f64 (+.f64 x x) (-.f64 x y)))
y
(/.f64 (+.f64 x x) (-.f64 x y))
(+.f64 x x)
x
(-.f64 x y)
Outputs
#s(approx (/ (* (* x 2) y) (- x y)) (+.f64 y y))
#s(approx (/ (* (* x 2) y) (- x y)) (*.f64 y #s(literal 2 binary64)))
(+.f64 y y)
(*.f64 y #s(literal 2 binary64))
y
(*.f64 y (/.f64 (+.f64 x x) (-.f64 x y)))
(*.f64 (/.f64 #s(literal 2 binary64) (-.f64 x y)) (*.f64 y x))
y
(/.f64 (+.f64 x x) (-.f64 x y))
(*.f64 (/.f64 #s(literal 2 binary64) (-.f64 x y)) x)
(+.f64 x x)
(*.f64 #s(literal 2 binary64) x)
x
(-.f64 x y)

localize41.0ms (1%)

Memory
20.7MiB live, 65.1MiB allocated; 6ms collecting garbage
Localize:

Found 6 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(-.f64 x y)
accuracy0.0
(+.f64 x x)
accuracy0.015625
(/.f64 (+.f64 x x) (-.f64 x y))
accuracy6.784960131474773
(*.f64 y (/.f64 (+.f64 x x) (-.f64 x y)))
accuracy0.0
(+.f64 y y)
accuracy33.24557635125566
#s(approx (/ (* (* x 2) y) (- x y)) (+.f64 y y))
Samples
33.0ms256×0valid
Compiler

Compiled 39 to 13 computations (66.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 25.0ms
ival-add: 15.0ms (59.6% of total)
ival-mult: 5.0ms (19.9% of total)
ival-div: 3.0ms (11.9% of total)
ival-sub: 1.0ms (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)

series3.0ms (0.1%)

Memory
11.0MiB live, 11.0MiB allocated; 0ms collecting garbage
Counts
6 → 45
Calls
Call 1
Inputs
#s(approx (/ (* (* x 2) y) (- x y)) (+.f64 y y))
(+.f64 y y)
(*.f64 y (/.f64 (+.f64 x x) (-.f64 x y)))
(/.f64 (+.f64 x x) (-.f64 x y))
(+.f64 x x)
(-.f64 x y)
Outputs
(* -2 x)
(* x (- (* -2 (/ x y)) 2))
(* x (- (* x (- (* -2 (/ x (pow y 2))) (* 2 (/ 1 y)))) 2))
(* x (- (* x (- (* x (- (* -2 (/ x (pow y 3))) (* 2 (/ 1 (pow y 2))))) (* 2 (/ 1 y)))) 2))
(* -2 (/ x y))
(* x (- (* -2 (/ x (pow y 2))) (* 2 (/ 1 y))))
(* x (- (* x (- (* -2 (/ x (pow y 3))) (* 2 (/ 1 (pow y 2))))) (* 2 (/ 1 y))))
(* x (- (* x (- (* x (- (* -2 (/ x (pow y 4))) (* 2 (/ 1 (pow y 3))))) (* 2 (/ 1 (pow y 2))))) (* 2 (/ 1 y))))
(* 2 x)
(* -1 y)
(- x y)
(* 2 y)
(+ (* 2 y) (* 2 (/ (pow y 2) x)))
(+ (* 2 y) (+ (* 2 (/ (pow y 2) x)) (* 2 (/ (pow y 3) (pow x 2)))))
(+ (* 2 y) (+ (* 2 (/ (pow y 2) x)) (+ (* 2 (/ (pow y 3) (pow x 2))) (* 2 (/ (pow y 4) (pow x 3))))))
2
(+ 2 (* 2 (/ y x)))
(- (+ 2 (* 2 (/ (pow y 2) (pow x 2)))) (* -2 (/ y x)))
(- (+ 2 (* 2 (/ (pow y 3) (pow x 3)))) (+ (* -2 (/ y x)) (* -2 (/ (pow y 2) (pow x 2)))))
x
(* x (+ 1 (* -1 (/ y x))))
(+ (* -1 (/ (+ (* -2 (/ (pow y 3) x)) (* -2 (pow y 2))) x)) (* 2 y))
(+ (* -1 (/ (+ (* -2 (pow y 2)) (* -1 (/ (+ (* 2 (/ (pow y 4) x)) (* 2 (pow y 3))) x))) x)) (* 2 y))
(+ 2 (* -1 (/ (- (* -2 (/ (pow y 2) x)) (* 2 y)) x)))
(+ 2 (* -1 (/ (- (* -1 (/ (- (* 2 (/ (pow y 3) x)) (* -2 (pow y 2))) x)) (* 2 y)) x)))
(* -1 (* x (- (/ y x) 1)))
(* y (+ 2 (* 2 (/ y x))))
(* y (+ 2 (* y (+ (* 2 (/ y (pow x 2))) (* 2 (/ 1 x))))))
(* y (+ 2 (* y (+ (* y (+ (* 2 (/ y (pow x 3))) (* 2 (/ 1 (pow x 2))))) (* 2 (/ 1 x))))))
(+ 2 (* y (+ (* 2 (/ y (pow x 2))) (* 2 (/ 1 x)))))
(+ 2 (* y (+ (* y (+ (* 2 (/ y (pow x 3))) (* 2 (/ 1 (pow x 2))))) (* 2 (/ 1 x)))))
(+ x (* -1 y))
(+ (* -2 x) (* -2 (/ (pow x 2) y)))
(+ (* -2 x) (+ (* -2 (/ (pow x 2) y)) (* -2 (/ (pow x 3) (pow y 2)))))
(+ (* -2 x) (+ (* -2 (/ (pow x 2) y)) (+ (* -2 (/ (pow x 3) (pow y 2))) (* -2 (/ (pow x 4) (pow y 3))))))
(/ (+ (* -2 x) (* -2 (/ (pow x 2) y))) y)
(/ (+ (* -2 x) (+ (* -2 (/ (pow x 2) y)) (* -2 (/ (pow x 3) (pow y 2))))) y)
(/ (+ (* -2 x) (+ (* -2 (/ (pow x 2) y)) (+ (* -2 (/ (pow x 3) (pow y 2))) (* -2 (/ (pow x 4) (pow y 3)))))) y)
(* y (- (/ x y) 1))
(+ (* -2 x) (* -1 (/ (+ (* 2 (/ (pow x 3) y)) (* 2 (pow x 2))) y)))
(+ (* -2 x) (* -1 (/ (+ (* -1 (/ (+ (* -2 (/ (pow x 4) y)) (* -2 (pow x 3))) y)) (* 2 (pow x 2))) y)))
(* -1 (/ (+ (* 2 x) (* 2 (/ (pow x 2) y))) y))
(* -1 (/ (+ (* -1 (/ (+ (* -2 (/ (pow x 3) y)) (* -2 (pow x 2))) y)) (* 2 x)) y))
(* -1 (/ (+ (* -1 (/ (+ (* -2 (pow x 2)) (* -1 (/ (+ (* 2 (/ (pow x 4) y)) (* 2 (pow x 3))) y))) y)) (* 2 x)) y))
(* -1 (* y (+ 1 (* -1 (/ x y)))))
Calls

6 calls:

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

simplify207.0ms (5.1%)

Memory
-13.1MiB live, 219.1MiB allocated; 28ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0194672
1645628
22763586
08580536
Stop Event
iter limit
node limit
Counts
45 → 44
Calls
Call 1
Inputs
(* -2 x)
(* x (- (* -2 (/ x y)) 2))
(* x (- (* x (- (* -2 (/ x (pow y 2))) (* 2 (/ 1 y)))) 2))
(* x (- (* x (- (* x (- (* -2 (/ x (pow y 3))) (* 2 (/ 1 (pow y 2))))) (* 2 (/ 1 y)))) 2))
(* -2 (/ x y))
(* x (- (* -2 (/ x (pow y 2))) (* 2 (/ 1 y))))
(* x (- (* x (- (* -2 (/ x (pow y 3))) (* 2 (/ 1 (pow y 2))))) (* 2 (/ 1 y))))
(* x (- (* x (- (* x (- (* -2 (/ x (pow y 4))) (* 2 (/ 1 (pow y 3))))) (* 2 (/ 1 (pow y 2))))) (* 2 (/ 1 y))))
(* 2 x)
(* -1 y)
(- x y)
(* 2 y)
(+ (* 2 y) (* 2 (/ (pow y 2) x)))
(+ (* 2 y) (+ (* 2 (/ (pow y 2) x)) (* 2 (/ (pow y 3) (pow x 2)))))
(+ (* 2 y) (+ (* 2 (/ (pow y 2) x)) (+ (* 2 (/ (pow y 3) (pow x 2))) (* 2 (/ (pow y 4) (pow x 3))))))
2
(+ 2 (* 2 (/ y x)))
(- (+ 2 (* 2 (/ (pow y 2) (pow x 2)))) (* -2 (/ y x)))
(- (+ 2 (* 2 (/ (pow y 3) (pow x 3)))) (+ (* -2 (/ y x)) (* -2 (/ (pow y 2) (pow x 2)))))
x
(* x (+ 1 (* -1 (/ y x))))
(+ (* -1 (/ (+ (* -2 (/ (pow y 3) x)) (* -2 (pow y 2))) x)) (* 2 y))
(+ (* -1 (/ (+ (* -2 (pow y 2)) (* -1 (/ (+ (* 2 (/ (pow y 4) x)) (* 2 (pow y 3))) x))) x)) (* 2 y))
(+ 2 (* -1 (/ (- (* -2 (/ (pow y 2) x)) (* 2 y)) x)))
(+ 2 (* -1 (/ (- (* -1 (/ (- (* 2 (/ (pow y 3) x)) (* -2 (pow y 2))) x)) (* 2 y)) x)))
(* -1 (* x (- (/ y x) 1)))
(* y (+ 2 (* 2 (/ y x))))
(* y (+ 2 (* y (+ (* 2 (/ y (pow x 2))) (* 2 (/ 1 x))))))
(* y (+ 2 (* y (+ (* y (+ (* 2 (/ y (pow x 3))) (* 2 (/ 1 (pow x 2))))) (* 2 (/ 1 x))))))
(+ 2 (* y (+ (* 2 (/ y (pow x 2))) (* 2 (/ 1 x)))))
(+ 2 (* y (+ (* y (+ (* 2 (/ y (pow x 3))) (* 2 (/ 1 (pow x 2))))) (* 2 (/ 1 x)))))
(+ x (* -1 y))
(+ (* -2 x) (* -2 (/ (pow x 2) y)))
(+ (* -2 x) (+ (* -2 (/ (pow x 2) y)) (* -2 (/ (pow x 3) (pow y 2)))))
(+ (* -2 x) (+ (* -2 (/ (pow x 2) y)) (+ (* -2 (/ (pow x 3) (pow y 2))) (* -2 (/ (pow x 4) (pow y 3))))))
(/ (+ (* -2 x) (* -2 (/ (pow x 2) y))) y)
(/ (+ (* -2 x) (+ (* -2 (/ (pow x 2) y)) (* -2 (/ (pow x 3) (pow y 2))))) y)
(/ (+ (* -2 x) (+ (* -2 (/ (pow x 2) y)) (+ (* -2 (/ (pow x 3) (pow y 2))) (* -2 (/ (pow x 4) (pow y 3)))))) y)
(* y (- (/ x y) 1))
(+ (* -2 x) (* -1 (/ (+ (* 2 (/ (pow x 3) y)) (* 2 (pow x 2))) y)))
(+ (* -2 x) (* -1 (/ (+ (* -1 (/ (+ (* -2 (/ (pow x 4) y)) (* -2 (pow x 3))) y)) (* 2 (pow x 2))) y)))
(* -1 (/ (+ (* 2 x) (* 2 (/ (pow x 2) y))) y))
(* -1 (/ (+ (* -1 (/ (+ (* -2 (/ (pow x 3) y)) (* -2 (pow x 2))) y)) (* 2 x)) y))
(* -1 (/ (+ (* -1 (/ (+ (* -2 (pow x 2)) (* -1 (/ (+ (* 2 (/ (pow x 4) y)) (* 2 (pow x 3))) y))) y)) (* 2 x)) y))
(* -1 (* y (+ 1 (* -1 (/ x y)))))
Outputs
(* -2 x)
(*.f64 #s(literal -2 binary64) x)
(* x (- (* -2 (/ x y)) 2))
(*.f64 (fma.f64 (/.f64 x y) #s(literal -2 binary64) #s(literal -2 binary64)) x)
(* x (- (* x (- (* -2 (/ x (pow y 2))) (* 2 (/ 1 y)))) 2))
(*.f64 (fma.f64 (/.f64 (fma.f64 (/.f64 x y) #s(literal -2 binary64) #s(literal -2 binary64)) y) x #s(literal -2 binary64)) x)
(* x (- (* x (- (* x (- (* -2 (/ x (pow y 3))) (* 2 (/ 1 (pow y 2))))) (* 2 (/ 1 y)))) 2))
(*.f64 (fma.f64 (fma.f64 (/.f64 (fma.f64 (/.f64 x y) #s(literal -2 binary64) #s(literal -2 binary64)) (*.f64 y y)) x (/.f64 #s(literal -2 binary64) y)) x #s(literal -2 binary64)) x)
(* -2 (/ x y))
(*.f64 (/.f64 x y) #s(literal -2 binary64))
(* x (- (* -2 (/ x (pow y 2))) (* 2 (/ 1 y))))
(*.f64 (/.f64 (fma.f64 (/.f64 x y) #s(literal -2 binary64) #s(literal -2 binary64)) y) x)
(* x (- (* x (- (* -2 (/ x (pow y 3))) (* 2 (/ 1 (pow y 2))))) (* 2 (/ 1 y))))
(*.f64 (fma.f64 (/.f64 (fma.f64 (/.f64 x y) #s(literal -2 binary64) #s(literal -2 binary64)) (*.f64 y y)) x (/.f64 #s(literal -2 binary64) y)) x)
(* x (- (* x (- (* x (- (* -2 (/ x (pow y 4))) (* 2 (/ 1 (pow y 3))))) (* 2 (/ 1 (pow y 2))))) (* 2 (/ 1 y))))
(*.f64 (fma.f64 (fma.f64 (fma.f64 (/.f64 x (pow.f64 y #s(literal 4 binary64))) #s(literal -2 binary64) (/.f64 #s(literal -2 binary64) (pow.f64 y #s(literal 3 binary64)))) x (/.f64 #s(literal -2 binary64) (*.f64 y y))) x (/.f64 #s(literal -2 binary64) y)) x)
(* 2 x)
(*.f64 #s(literal 2 binary64) x)
(* -1 y)
(neg.f64 y)
(- x y)
(-.f64 x y)
(* 2 y)
(*.f64 y #s(literal 2 binary64))
(+ (* 2 y) (* 2 (/ (pow y 2) x)))
(*.f64 (fma.f64 y (/.f64 y x) y) #s(literal 2 binary64))
(+ (* 2 y) (+ (* 2 (/ (pow y 2) x)) (* 2 (/ (pow y 3) (pow x 2)))))
(*.f64 (fma.f64 (/.f64 (fma.f64 (/.f64 y x) #s(literal 2 binary64) #s(literal 2 binary64)) x) y #s(literal 2 binary64)) y)
(+ (* 2 y) (+ (* 2 (/ (pow y 2) x)) (+ (* 2 (/ (pow y 3) (pow x 2))) (* 2 (/ (pow y 4) (pow x 3))))))
(fma.f64 (fma.f64 (/.f64 (fma.f64 (/.f64 y x) #s(literal 2 binary64) #s(literal 2 binary64)) x) y #s(literal 2 binary64)) y (/.f64 (*.f64 (pow.f64 y #s(literal 4 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 3 binary64))))
2
#s(literal 2 binary64)
(+ 2 (* 2 (/ y x)))
(fma.f64 (/.f64 y x) #s(literal 2 binary64) #s(literal 2 binary64))
(- (+ 2 (* 2 (/ (pow y 2) (pow x 2)))) (* -2 (/ y x)))
(fma.f64 (/.f64 (fma.f64 (/.f64 y x) #s(literal 2 binary64) #s(literal 2 binary64)) x) y #s(literal 2 binary64))
(- (+ 2 (* 2 (/ (pow y 3) (pow x 3)))) (+ (* -2 (/ y x)) (* -2 (/ (pow y 2) (pow x 2)))))
(-.f64 (/.f64 (*.f64 (fma.f64 (/.f64 (fma.f64 (/.f64 y x) #s(literal 2 binary64) #s(literal 2 binary64)) x) y #s(literal 2 binary64)) y) x) #s(literal -2 binary64))
x
(* x (+ 1 (* -1 (/ y x))))
(*.f64 (-.f64 #s(literal 1 binary64) (/.f64 y x)) x)
(+ (* -1 (/ (+ (* -2 (/ (pow y 3) x)) (* -2 (pow y 2))) x)) (* 2 y))
(*.f64 (fma.f64 (/.f64 (fma.f64 (/.f64 y x) #s(literal 2 binary64) #s(literal 2 binary64)) x) y #s(literal 2 binary64)) y)
(+ (* -1 (/ (+ (* -2 (pow y 2)) (* -1 (/ (+ (* 2 (/ (pow y 4) x)) (* 2 (pow y 3))) x))) x)) (* 2 y))
(fma.f64 (fma.f64 (/.f64 (fma.f64 (/.f64 y x) #s(literal 2 binary64) #s(literal 2 binary64)) x) y #s(literal 2 binary64)) y (/.f64 (*.f64 (pow.f64 y #s(literal 4 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 3 binary64))))
(+ 2 (* -1 (/ (- (* -2 (/ (pow y 2) x)) (* 2 y)) x)))
(fma.f64 (/.f64 (fma.f64 (/.f64 y x) #s(literal 2 binary64) #s(literal 2 binary64)) x) y #s(literal 2 binary64))
(+ 2 (* -1 (/ (- (* -1 (/ (- (* 2 (/ (pow y 3) x)) (* -2 (pow y 2))) x)) (* 2 y)) x)))
(-.f64 (/.f64 (*.f64 (fma.f64 (/.f64 (fma.f64 (/.f64 y x) #s(literal 2 binary64) #s(literal 2 binary64)) x) y #s(literal 2 binary64)) y) x) #s(literal -2 binary64))
(* -1 (* x (- (/ y x) 1)))
(*.f64 (-.f64 #s(literal 1 binary64) (/.f64 y x)) x)
(* y (+ 2 (* 2 (/ y x))))
(*.f64 (fma.f64 y (/.f64 y x) y) #s(literal 2 binary64))
(* y (+ 2 (* y (+ (* 2 (/ y (pow x 2))) (* 2 (/ 1 x))))))
(*.f64 (fma.f64 (/.f64 (fma.f64 (/.f64 y x) #s(literal 2 binary64) #s(literal 2 binary64)) x) y #s(literal 2 binary64)) y)
(* y (+ 2 (* y (+ (* y (+ (* 2 (/ y (pow x 3))) (* 2 (/ 1 (pow x 2))))) (* 2 (/ 1 x))))))
(*.f64 (fma.f64 (fma.f64 (/.f64 (/.f64 (fma.f64 (/.f64 y x) #s(literal 2 binary64) #s(literal 2 binary64)) x) x) y (/.f64 #s(literal 2 binary64) x)) y #s(literal 2 binary64)) y)
(+ 2 (* y (+ (* 2 (/ y (pow x 2))) (* 2 (/ 1 x)))))
(fma.f64 (/.f64 (fma.f64 (/.f64 y x) #s(literal 2 binary64) #s(literal 2 binary64)) x) y #s(literal 2 binary64))
(+ 2 (* y (+ (* y (+ (* 2 (/ y (pow x 3))) (* 2 (/ 1 (pow x 2))))) (* 2 (/ 1 x)))))
(fma.f64 (fma.f64 (/.f64 (/.f64 (fma.f64 (/.f64 y x) #s(literal 2 binary64) #s(literal 2 binary64)) x) x) y (/.f64 #s(literal 2 binary64) x)) y #s(literal 2 binary64))
(+ x (* -1 y))
(-.f64 x y)
(+ (* -2 x) (* -2 (/ (pow x 2) y)))
(*.f64 (fma.f64 x (/.f64 x y) x) #s(literal -2 binary64))
(+ (* -2 x) (+ (* -2 (/ (pow x 2) y)) (* -2 (/ (pow x 3) (pow y 2)))))
(*.f64 #s(literal -2 binary64) (+.f64 (/.f64 (fma.f64 x x (/.f64 (pow.f64 x #s(literal 3 binary64)) y)) y) x))
(+ (* -2 x) (+ (* -2 (/ (pow x 2) y)) (+ (* -2 (/ (pow x 3) (pow y 2))) (* -2 (/ (pow x 4) (pow y 3))))))
(*.f64 #s(literal -2 binary64) (+.f64 (fma.f64 x (/.f64 x y) x) (/.f64 (+.f64 (/.f64 (pow.f64 x #s(literal 4 binary64)) y) (pow.f64 x #s(literal 3 binary64))) (*.f64 y y))))
(/ (+ (* -2 x) (* -2 (/ (pow x 2) y))) y)
(*.f64 #s(literal -2 binary64) (/.f64 (fma.f64 x (/.f64 x y) x) y))
(/ (+ (* -2 x) (+ (* -2 (/ (pow x 2) y)) (* -2 (/ (pow x 3) (pow y 2))))) y)
(/.f64 (*.f64 #s(literal -2 binary64) (+.f64 (/.f64 (fma.f64 x x (/.f64 (pow.f64 x #s(literal 3 binary64)) y)) y) x)) y)
(/ (+ (* -2 x) (+ (* -2 (/ (pow x 2) y)) (+ (* -2 (/ (pow x 3) (pow y 2))) (* -2 (/ (pow x 4) (pow y 3)))))) y)
(/.f64 (*.f64 #s(literal -2 binary64) (+.f64 (fma.f64 x (/.f64 x y) x) (/.f64 (+.f64 (/.f64 (pow.f64 x #s(literal 4 binary64)) y) (pow.f64 x #s(literal 3 binary64))) (*.f64 y y)))) y)
(* y (- (/ x y) 1))
(*.f64 (-.f64 (/.f64 x y) #s(literal 1 binary64)) y)
(+ (* -2 x) (* -1 (/ (+ (* 2 (/ (pow x 3) y)) (* 2 (pow x 2))) y)))
(*.f64 #s(literal -2 binary64) (+.f64 (/.f64 (fma.f64 x x (/.f64 (pow.f64 x #s(literal 3 binary64)) y)) y) x))
(+ (* -2 x) (* -1 (/ (+ (* -1 (/ (+ (* -2 (/ (pow x 4) y)) (* -2 (pow x 3))) y)) (* 2 (pow x 2))) y)))
(*.f64 #s(literal -2 binary64) (+.f64 (fma.f64 x (/.f64 x y) x) (/.f64 (+.f64 (/.f64 (pow.f64 x #s(literal 4 binary64)) y) (pow.f64 x #s(literal 3 binary64))) (*.f64 y y))))
(* -1 (/ (+ (* 2 x) (* 2 (/ (pow x 2) y))) y))
(*.f64 #s(literal -2 binary64) (/.f64 (fma.f64 x (/.f64 x y) x) y))
(* -1 (/ (+ (* -1 (/ (+ (* -2 (/ (pow x 3) y)) (* -2 (pow x 2))) y)) (* 2 x)) y))
(/.f64 (*.f64 #s(literal -2 binary64) (+.f64 (/.f64 (fma.f64 x x (/.f64 (pow.f64 x #s(literal 3 binary64)) y)) y) x)) y)
(* -1 (/ (+ (* -1 (/ (+ (* -2 (pow x 2)) (* -1 (/ (+ (* 2 (/ (pow x 4) y)) (* 2 (pow x 3))) y))) y)) (* 2 x)) y))
(/.f64 (*.f64 #s(literal -2 binary64) (+.f64 (fma.f64 x (/.f64 x y) x) (/.f64 (+.f64 (/.f64 (pow.f64 x #s(literal 4 binary64)) y) (pow.f64 x #s(literal 3 binary64))) (*.f64 y y)))) y)
(* -1 (* y (+ 1 (* -1 (/ x y)))))
(*.f64 (-.f64 (/.f64 x y) #s(literal 1 binary64)) y)

rewrite20.0ms (0.5%)

Memory
22.4MiB live, 22.4MiB allocated; 0ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01338
01838
06338
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
6 → 21
Calls
Call 1
Inputs
#s(approx (/ (* (* x 2) y) (- x y)) (+.f64 y y))
(+.f64 y y)
(*.f64 y (/.f64 (+.f64 x x) (-.f64 x y)))
(/.f64 (+.f64 x x) (-.f64 x y))
(+.f64 x x)
(-.f64 x y)
Outputs
#s(approx (/ (* (* x 2) y) (- x y)) (*.f64 #s(literal 2 binary64) y))
(*.f64 #s(literal 2 binary64) y)
(/.f64 (-.f64 (*.f64 y y) (*.f64 y y)) (-.f64 y y))
(/.f64 (+.f64 (pow.f64 y #s(literal 3 binary64)) (pow.f64 y #s(literal 3 binary64))) (fma.f64 y y (-.f64 (*.f64 y y) (*.f64 y y))))
(+.f64 y y)
(*.f64 (/.f64 (*.f64 #s(literal 2 binary64) x) (-.f64 x y)) y)
(*.f64 (*.f64 #s(literal 2 binary64) x) (/.f64 y (-.f64 x y)))
(*.f64 y (/.f64 (*.f64 #s(literal 2 binary64) x) (-.f64 x y)))
(/.f64 (neg.f64 (*.f64 (*.f64 #s(literal 2 binary64) x) y)) (neg.f64 (-.f64 x y)))
(/.f64 (*.f64 (*.f64 #s(literal 2 binary64) x) y) (-.f64 x y))
(/.f64 (neg.f64 (*.f64 #s(literal 2 binary64) x)) (neg.f64 (-.f64 x y)))
(/.f64 (*.f64 #s(literal 2 binary64) x) (-.f64 x y))
(+.f64 (/.f64 x (-.f64 x y)) (/.f64 x (-.f64 x y)))
(*.f64 #s(literal 2 binary64) x)
(*.f64 x #s(literal 2 binary64))
(/.f64 (-.f64 (*.f64 x x) (*.f64 x x)) (-.f64 x x))
(/.f64 (+.f64 (pow.f64 x #s(literal 3 binary64)) (pow.f64 x #s(literal 3 binary64))) (fma.f64 x x (-.f64 (*.f64 x x) (*.f64 x x))))
(+.f64 x x)
(/.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (+.f64 x y))
(/.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) (pow.f64 y #s(literal 3 binary64))) (fma.f64 x x (fma.f64 y y (*.f64 x y))))
(-.f64 x y)

eval20.0ms (0.5%)

Memory
-44.9MiB live, 13.9MiB allocated; 4ms collecting garbage
Compiler

Compiled 912 to 190 computations (79.2% saved)

prune4.0ms (0.1%)

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

5 alts after pruning (0 fresh and 5 done)

PrunedKeptTotal
New50050
Fresh000
Picked022
Done033
Total50555
Accuracy
100.0%
Counts
55 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
89.4%
(*.f64 y (/.f64 (+.f64 x x) (-.f64 x y)))
48.1%
#s(approx (/ (* (* x 2) y) (- x y)) (+.f64 y y))
47.9%
#s(approx (/ (* (* x 2) y) (- x y)) (*.f64 (fma.f64 y (/.f64 y x) y) #s(literal 2 binary64)))
52.5%
#s(approx (/ (* (* x 2) y) (- x y)) (*.f64 (fma.f64 x (/.f64 x y) x) #s(literal -2 binary64)))
52.8%
#s(approx (/ (* (* x 2) y) (- x y)) (*.f64 #s(literal -2 binary64) x))
Compiler

Compiled 200 to 87 computations (56.5% saved)

regimes11.0ms (0.3%)

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

3 calls:

3.0ms
x
3.0ms
y
3.0ms
(/.f64 (*.f64 (*.f64 x #s(literal 2 binary64)) y) (-.f64 x y))
Results
AccuracySegmentsBranch
99.2%5(/.f64 (*.f64 (*.f64 x #s(literal 2 binary64)) y) (-.f64 x y))
96.9%3x
95.3%3y
Compiler

Compiled 11 to 11 computations (0% saved)

regimes11.0ms (0.3%)

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

3 calls:

5.0ms
x
3.0ms
(/.f64 (*.f64 (*.f64 x #s(literal 2 binary64)) y) (-.f64 x y))
2.0ms
y
Results
AccuracySegmentsBranch
75.5%3y
63.1%4(/.f64 (*.f64 (*.f64 x #s(literal 2 binary64)) y) (-.f64 x y))
80.1%3x
Compiler

Compiled 11 to 11 computations (0% saved)

regimes2.0ms (0.1%)

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

1 calls:

2.0ms
x
Results
AccuracySegmentsBranch
79.7%3x
Compiler

Compiled 1 to 2 computations (-100% saved)

regimes2.0ms (0%)

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

1 calls:

2.0ms
x
Results
AccuracySegmentsBranch
79.4%3x
Compiler

Compiled 1 to 2 computations (-100% saved)

regimes3.0ms (0.1%)

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

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

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

3 calls:

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

Compiled 11 to 11 computations (0% saved)

bsearch27.0ms (0.7%)

Memory
6.0MiB live, 48.7MiB allocated; 8ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
11.0ms
2.4127882161480724e-216
1.7425871216704419e-212
14.0ms
-6.164263951717743e-120
-1.4420858401272117e-121
Samples
15.0ms240×0valid
Compiler

Compiled 417 to 312 computations (25.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 10.0ms
ival-mult: 7.0ms (71.2% of total)
ival-div: 2.0ms (20.3% of total)
ival-sub: 1.0ms (10.2% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

bsearch53.0ms (1.3%)

Memory
3.9MiB live, 47.3MiB allocated; 10ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
12.0ms
4.075493122334915e-33
9.31078350553162e-24
37.0ms
-2.584226322822994e-38
-4.234270778050181e-39
Samples
12.0ms240×0valid
Compiler

Compiled 552 to 402 computations (27.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 7.0ms
ival-mult: 3.0ms (45.9% of total)
ival-div: 2.0ms (30.6% of total)
ival-sub: 1.0ms (15.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)

bsearch16.0ms (0.4%)

Memory
-38.3MiB live, 21.2MiB allocated; 8ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
14.0ms
4.075493122334915e-33
9.31078350553162e-24
1.0ms
-2.584226322822994e-38
-4.234270778050181e-39
Samples
10.0ms96×0valid
Compiler

Compiled 477 to 357 computations (25.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 3.0ms
ival-sub: 1.0ms (35.5% of total)
ival-div: 1.0ms (35.5% of total)
ival-mult: 1.0ms (35.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)

bsearch2.0ms (0%)

Memory
4.6MiB live, 4.6MiB allocated; 0ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
1.0ms
4.075493122334915e-33
9.31078350553162e-24
1.0ms
-2.584226322822994e-38
-4.234270778050181e-39
Compiler

Compiled 402 to 327 computations (18.7% saved)

simplify42.0ms (1%)

Memory
10.1MiB live, 54.3MiB allocated; 7ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
045169
165169
294169
3175169
4350169
52252169
Stop Event
node limit
Calls
Call 1
Inputs
(if (<=.f64 x #s(literal -1162941958872971/5814709794364855124394590463104036274829130885498544482251921593445114304907183386609528405710108524486100172850129423468276813028917248 binary64)) (*.f64 y (/.f64 (+.f64 x x) (-.f64 x y))) (if (<=.f64 x #s(literal 8338720222318261/1516130949512411069481425281701662651618052751090524034315480505884815383482789928057498446121725076123523174508917063677901933636830873429144811792032403456254350562520361235888930942999607856274670897650113739014543795755679744 binary64)) #s(approx (/ (* (* x 2) y) (- x y)) (*.f64 (fma.f64 (/.f64 x y) #s(literal -2 binary64) #s(literal -2 binary64)) x)) (*.f64 y (/.f64 (+.f64 x x) (-.f64 x y)))))
(if (<=.f64 x #s(literal -4789048565205903/191561942608236107294793378393788647952342390272950272 binary64)) #s(approx (/ (* (* x 2) y) (- x y)) (*.f64 (fma.f64 y (/.f64 y x) y) #s(literal 2 binary64))) (if (<=.f64 x #s(literal 2926428355520071/340282366920938463463374607431768211456 binary64)) #s(approx (/ (* (* x 2) y) (- x y)) (*.f64 (fma.f64 x (/.f64 x y) x) #s(literal -2 binary64))) #s(approx (/ (* (* x 2) y) (- x y)) (*.f64 (fma.f64 y (/.f64 y x) y) #s(literal 2 binary64)))))
(if (<=.f64 x #s(literal -4789048565205903/191561942608236107294793378393788647952342390272950272 binary64)) #s(approx (/ (* (* x 2) y) (- x y)) (+.f64 y y)) (if (<=.f64 x #s(literal 3266710722441009/10889035741470030830827987437816582766592 binary64)) #s(approx (/ (* (* x 2) y) (- x y)) (*.f64 (fma.f64 x (/.f64 x y) x) #s(literal -2 binary64))) #s(approx (/ (* (* x 2) y) (- x y)) (+.f64 y y))))
(if (<=.f64 x #s(literal -4789048565205903/191561942608236107294793378393788647952342390272950272 binary64)) #s(approx (/ (* (* x 2) y) (- x y)) (+.f64 y y)) (if (<=.f64 x #s(literal 3266710722441009/10889035741470030830827987437816582766592 binary64)) #s(approx (/ (* (* x 2) y) (- x y)) (*.f64 #s(literal -2 binary64) x)) #s(approx (/ (* (* x 2) y) (- x y)) (+.f64 y y))))
#s(approx (/ (* (* x 2) y) (- x y)) (+.f64 y y))
Outputs
(if (<=.f64 x #s(literal -1162941958872971/5814709794364855124394590463104036274829130885498544482251921593445114304907183386609528405710108524486100172850129423468276813028917248 binary64)) (*.f64 y (/.f64 (+.f64 x x) (-.f64 x y))) (if (<=.f64 x #s(literal 8338720222318261/1516130949512411069481425281701662651618052751090524034315480505884815383482789928057498446121725076123523174508917063677901933636830873429144811792032403456254350562520361235888930942999607856274670897650113739014543795755679744 binary64)) #s(approx (/ (* (* x 2) y) (- x y)) (*.f64 (fma.f64 (/.f64 x y) #s(literal -2 binary64) #s(literal -2 binary64)) x)) (*.f64 y (/.f64 (+.f64 x x) (-.f64 x y)))))
(if (or (<=.f64 x #s(literal -1162941958872971/5814709794364855124394590463104036274829130885498544482251921593445114304907183386609528405710108524486100172850129423468276813028917248 binary64)) (not (<=.f64 x #s(literal 8338720222318261/1516130949512411069481425281701662651618052751090524034315480505884815383482789928057498446121725076123523174508917063677901933636830873429144811792032403456254350562520361235888930942999607856274670897650113739014543795755679744 binary64)))) (*.f64 y (/.f64 (+.f64 x x) (-.f64 x y))) #s(approx (/ (* (* x 2) y) (- x y)) (*.f64 (fma.f64 (/.f64 x y) #s(literal -2 binary64) #s(literal -2 binary64)) x)))
(if (<=.f64 x #s(literal -4789048565205903/191561942608236107294793378393788647952342390272950272 binary64)) #s(approx (/ (* (* x 2) y) (- x y)) (*.f64 (fma.f64 y (/.f64 y x) y) #s(literal 2 binary64))) (if (<=.f64 x #s(literal 2926428355520071/340282366920938463463374607431768211456 binary64)) #s(approx (/ (* (* x 2) y) (- x y)) (*.f64 (fma.f64 x (/.f64 x y) x) #s(literal -2 binary64))) #s(approx (/ (* (* x 2) y) (- x y)) (*.f64 (fma.f64 y (/.f64 y x) y) #s(literal 2 binary64)))))
(if (or (<=.f64 x #s(literal -4789048565205903/191561942608236107294793378393788647952342390272950272 binary64)) (not (<=.f64 x #s(literal 2926428355520071/340282366920938463463374607431768211456 binary64)))) #s(approx (/ (* (* x 2) y) (- x y)) (*.f64 (fma.f64 y (/.f64 y x) y) #s(literal 2 binary64))) #s(approx (/ (* (* x 2) y) (- x y)) (*.f64 (fma.f64 x (/.f64 x y) x) #s(literal -2 binary64))))
(if (<=.f64 x #s(literal -4789048565205903/191561942608236107294793378393788647952342390272950272 binary64)) #s(approx (/ (* (* x 2) y) (- x y)) (+.f64 y y)) (if (<=.f64 x #s(literal 3266710722441009/10889035741470030830827987437816582766592 binary64)) #s(approx (/ (* (* x 2) y) (- x y)) (*.f64 (fma.f64 x (/.f64 x y) x) #s(literal -2 binary64))) #s(approx (/ (* (* x 2) y) (- x y)) (+.f64 y y))))
(if (or (<=.f64 x #s(literal -4789048565205903/191561942608236107294793378393788647952342390272950272 binary64)) (not (<=.f64 x #s(literal 3266710722441009/10889035741470030830827987437816582766592 binary64)))) #s(approx (/ (* (* x 2) y) (- x y)) (+.f64 y y)) #s(approx (/ (* (* x 2) y) (- x y)) (*.f64 (fma.f64 x (/.f64 x y) x) #s(literal -2 binary64))))
(if (<=.f64 x #s(literal -4789048565205903/191561942608236107294793378393788647952342390272950272 binary64)) #s(approx (/ (* (* x 2) y) (- x y)) (+.f64 y y)) (if (<=.f64 x #s(literal 3266710722441009/10889035741470030830827987437816582766592 binary64)) #s(approx (/ (* (* x 2) y) (- x y)) (*.f64 #s(literal -2 binary64) x)) #s(approx (/ (* (* x 2) y) (- x y)) (+.f64 y y))))
(if (or (<=.f64 x #s(literal -4789048565205903/191561942608236107294793378393788647952342390272950272 binary64)) (not (<=.f64 x #s(literal 3266710722441009/10889035741470030830827987437816582766592 binary64)))) #s(approx (/ (* (* x 2) y) (- x y)) (+.f64 y y)) #s(approx (/ (* (* x 2) y) (- x y)) (*.f64 #s(literal -2 binary64) x)))
#s(approx (/ (* (* x 2) y) (- x y)) (+.f64 y y))

derivations359.0ms (8.9%)

Memory
-16.5MiB live, 275.8MiB allocated; 32ms collecting garbage
Stop Event
done
Compiler

Compiled 169 to 48 computations (71.6% saved)

preprocess129.0ms (3.2%)

Memory
-2.0MiB live, 93.1MiB allocated; 13ms collecting garbage
Compiler

Compiled 426 to 142 computations (66.7% saved)

end0.0ms (0%)

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

Profiling

Loading profile data...