Data.Colour.SRGB:transferFunction from colour-2.3.3

Time bar (total: 4.5s)

start0.0ms (0%)

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

analyze0.0ms (0%)

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

Compiled 9 to 8 computations (11.1% saved)

sample770.0ms (17.1%)

Memory
28.8MiB live, 731.5MiB allocated; 111ms collecting garbage
Samples
503.0ms8 254×0valid
0.0ms1valid
Precisions
Click to see histograms. Total time spent on operations: 228.0ms
ival-add: 106.0ms (46.4% of total)
ival-mult: 69.0ms (30.2% of total)
ival-sub: 37.0ms (16.2% of total)
ival-true: 6.0ms (2.6% of total)
exact: 5.0ms (2.2% of total)
ival-assert: 3.0ms (1.3% of total)
adjust: 2.0ms (0.9% of total)
Bogosity

explain101.0ms (2.2%)

Memory
5.5MiB live, 94.6MiB allocated; 31ms collecting garbage
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
00-0-(+.f64 x #s(literal 1 binary64))
00-0-(*.f64 (+.f64 x #s(literal 1 binary64)) y)
00-0-y
00-0-(-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x)
00-0-#s(literal 1 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
22.0ms512×0valid
Compiler

Compiled 47 to 22 computations (53.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 10.0ms
ival-add: 3.0ms (31.4% of total)
ival-mult: 3.0ms (31.4% of total)
ival-sub: 2.0ms (20.9% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess271.0ms (6%)

Memory
-39.8MiB live, 168.4MiB allocated; 88ms collecting garbage
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01643
12643
25741
319440
474636
5231536
6718136
067
097
1137
2247
3727
42607
510777
082296
Stop Event
iter limit
node limit
iter limit
node limit
Calls
Call 1
Inputs
(-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x)
Outputs
(-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x)
(-.f64 (fma.f64 y x y) x)
Compiler

Compiled 7 to 6 computations (14.3% saved)

eval0.0ms (0%)

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

Compiled 0 to 2 computations (-∞% saved)

prune0.0ms (0%)

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

Compiled 7 to 6 computations (14.3% saved)

simplify223.0ms (5%)

Memory
17.7MiB live, 159.8MiB allocated; 22ms collecting garbage
Algorithm
egg-herbie
Localize:

Found 3 expressions of interest:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0618
0918
11318
22418
37218
426018
5107718
0822916
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
(-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x)
(*.f64 (+.f64 x #s(literal 1 binary64)) y)
(+.f64 x #s(literal 1 binary64))
x
#s(literal 1 binary64)
y
Outputs
(-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x)
(-.f64 (fma.f64 y x y) x)
(*.f64 (+.f64 x #s(literal 1 binary64)) y)
(fma.f64 y x y)
(+.f64 x #s(literal 1 binary64))
(-.f64 x #s(literal -1 binary64))
x
#s(literal 1 binary64)
y

localize16.0ms (0.4%)

Memory
27.9MiB live, 27.9MiB allocated; 0ms collecting garbage
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(+.f64 x #s(literal 1 binary64))
accuracy0.01171875
(-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x)
accuracy0.01171875
(*.f64 (+.f64 x #s(literal 1 binary64)) y)
Samples
11.0ms256×0valid
Compiler

Compiled 20 to 8 computations (60% saved)

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

series29.0ms (0.6%)

Memory
-38.6MiB live, 5.7MiB allocated; 6ms collecting garbage
Counts
3 → 19
Calls
Call 1
Inputs
(*.f64 (+.f64 x #s(literal 1 binary64)) y)
(-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x)
(+.f64 x #s(literal 1 binary64))
Outputs
y
(+ y (* x y))
(+ y (* x (- y 1)))
1
(+ 1 x)
(* x y)
(* x (+ y (/ y x)))
(* x (- y 1))
(* x (- (+ y (/ y x)) 1))
x
(* x (+ 1 (/ 1 x)))
(* -1 (* x (+ (* -1 y) (* -1 (/ y x)))))
(* -1 (* x (+ 1 (* -1 y))))
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x))))))
(* y (+ 1 x))
(* -1 x)
(- (* y (+ 1 x)) x)
(* y (+ 1 (+ x (* -1 (/ x y)))))
(* -1 (* y (+ (* -1 (+ 1 x)) (/ x y))))
Calls

6 calls:

TimeVariablePointExpression
26.0ms
x
@0
((* (+ x 1) y) (- (* (+ x 1) y) x) (+ x 1))
1.0ms
y
@inf
((* (+ x 1) y) (- (* (+ x 1) y) x) (+ x 1))
0.0ms
x
@-inf
((* (+ x 1) y) (- (* (+ x 1) y) x) (+ x 1))
0.0ms
x
@inf
((* (+ x 1) y) (- (* (+ x 1) y) x) (+ x 1))
0.0ms
y
@-inf
((* (+ x 1) y) (- (* (+ x 1) y) x) (+ x 1))

simplify142.0ms (3.2%)

Memory
22.2MiB live, 173.5MiB allocated; 17ms collecting garbage
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
04186
114786
251686
3177886
4582386
0827276
Stop Event
iter limit
node limit
Counts
19 → 17
Calls
Call 1
Inputs
y
(+ y (* x y))
(+ y (* x (- y 1)))
1
(+ 1 x)
(* x y)
(* x (+ y (/ y x)))
(* x (- y 1))
(* x (- (+ y (/ y x)) 1))
x
(* x (+ 1 (/ 1 x)))
(* -1 (* x (+ (* -1 y) (* -1 (/ y x)))))
(* -1 (* x (+ 1 (* -1 y))))
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x))))))
(* y (+ 1 x))
(* -1 x)
(- (* y (+ 1 x)) x)
(* y (+ 1 (+ x (* -1 (/ x y)))))
(* -1 (* y (+ (* -1 (+ 1 x)) (/ x y))))
Outputs
y
(+ y (* x y))
(fma.f64 y x y)
(+ y (* x (- y 1)))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
1
#s(literal 1 binary64)
(+ 1 x)
(-.f64 x #s(literal -1 binary64))
(* x y)
(*.f64 y x)
(* x (+ y (/ y x)))
(fma.f64 y x y)
(* x (- y 1))
(*.f64 (-.f64 y #s(literal 1 binary64)) x)
(* x (- (+ y (/ y x)) 1))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
x
(* x (+ 1 (/ 1 x)))
(-.f64 x #s(literal -1 binary64))
(* -1 (* x (+ (* -1 y) (* -1 (/ y x)))))
(fma.f64 y x y)
(* -1 (* x (+ 1 (* -1 y))))
(*.f64 (-.f64 y #s(literal 1 binary64)) x)
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x))))))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* y (+ 1 x))
(fma.f64 y x y)
(* -1 x)
(neg.f64 x)
(- (* y (+ 1 x)) x)
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* y (+ 1 (+ x (* -1 (/ x y)))))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* -1 (* y (+ (* -1 (+ 1 x)) (/ x y))))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)

rewrite45.0ms (1%)

Memory
-6.7MiB live, 84.1MiB allocated; 8ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0615
0915
13715
027915
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
3 → 34
Calls
Call 1
Inputs
(*.f64 (+.f64 x #s(literal 1 binary64)) y)
(-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x)
(+.f64 x #s(literal 1 binary64))
Outputs
(*.f64 y (-.f64 x #s(literal -1 binary64)))
(*.f64 (-.f64 x #s(literal -1 binary64)) y)
(/.f64 (*.f64 (fma.f64 x x #s(literal -1 binary64)) y) (-.f64 x #s(literal 1 binary64)))
(/.f64 (*.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)) y) (fma.f64 x x (-.f64 #s(literal 1 binary64) x)))
(/.f64 (*.f64 y (fma.f64 x x #s(literal -1 binary64))) (-.f64 x #s(literal 1 binary64)))
(/.f64 (*.f64 y (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64))) (fma.f64 x x (-.f64 #s(literal 1 binary64) x)))
(fma.f64 y #s(literal 1 binary64) (*.f64 y x))
(fma.f64 y x (*.f64 y #s(literal 1 binary64)))
(fma.f64 #s(literal 1 binary64) y (*.f64 x y))
(fma.f64 x y (*.f64 #s(literal 1 binary64) y))
(+.f64 (*.f64 #s(literal 1 binary64) y) (*.f64 x y))
(+.f64 (*.f64 x y) (*.f64 #s(literal 1 binary64) y))
(+.f64 (*.f64 y #s(literal 1 binary64)) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 y #s(literal 1 binary64)))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 y (-.f64 x #s(literal -1 binary64))) #s(literal 2 binary64)) (*.f64 x x))) (neg.f64 (fma.f64 y (-.f64 x #s(literal -1 binary64)) x)))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 y (-.f64 x #s(literal -1 binary64))) #s(literal 3 binary64)) (pow.f64 x #s(literal 3 binary64)))) (neg.f64 (fma.f64 x (fma.f64 y (-.f64 x #s(literal -1 binary64)) x) (pow.f64 (*.f64 y (-.f64 x #s(literal -1 binary64))) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 y (-.f64 x #s(literal -1 binary64))) #s(literal 2 binary64)) (*.f64 x x)) (fma.f64 y (-.f64 x #s(literal -1 binary64)) x))
(/.f64 (-.f64 (pow.f64 (*.f64 y (-.f64 x #s(literal -1 binary64))) #s(literal 3 binary64)) (pow.f64 x #s(literal 3 binary64))) (fma.f64 x (fma.f64 y (-.f64 x #s(literal -1 binary64)) x) (pow.f64 (*.f64 y (-.f64 x #s(literal -1 binary64))) #s(literal 2 binary64))))
(-.f64 (/.f64 (pow.f64 (*.f64 y (-.f64 x #s(literal -1 binary64))) #s(literal 2 binary64)) (fma.f64 y (-.f64 x #s(literal -1 binary64)) x)) (/.f64 (*.f64 x x) (fma.f64 y (-.f64 x #s(literal -1 binary64)) x)))
(-.f64 (/.f64 (pow.f64 (*.f64 y (-.f64 x #s(literal -1 binary64))) #s(literal 3 binary64)) (fma.f64 x (fma.f64 y (-.f64 x #s(literal -1 binary64)) x) (pow.f64 (*.f64 y (-.f64 x #s(literal -1 binary64))) #s(literal 2 binary64)))) (/.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 x (fma.f64 y (-.f64 x #s(literal -1 binary64)) x) (pow.f64 (*.f64 y (-.f64 x #s(literal -1 binary64))) #s(literal 2 binary64)))))
(-.f64 (*.f64 y (-.f64 x #s(literal -1 binary64))) x)
(/.f64 (-.f64 #s(literal 1 binary64) (*.f64 x x)) (-.f64 #s(literal 1 binary64) x))
(/.f64 (neg.f64 (fma.f64 x x #s(literal -1 binary64))) (neg.f64 (-.f64 x #s(literal 1 binary64))))
(/.f64 (neg.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64))) (neg.f64 (fma.f64 x x (-.f64 #s(literal 1 binary64) x))))
(/.f64 (fma.f64 x x #s(literal -1 binary64)) (-.f64 x #s(literal 1 binary64)))
(/.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)) (+.f64 #s(literal 1 binary64) (-.f64 (*.f64 x x) x)))
(/.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)) (fma.f64 x x (-.f64 #s(literal 1 binary64) x)))
(fma.f64 #s(literal 1 binary64) x #s(literal 1 binary64))
(fma.f64 x #s(literal 1 binary64) #s(literal 1 binary64))
(-.f64 (/.f64 (*.f64 x x) (-.f64 x #s(literal 1 binary64))) (/.f64 #s(literal 1 binary64) (-.f64 x #s(literal 1 binary64))))
(-.f64 x #s(literal -1 binary64))
(+.f64 (/.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 x x (-.f64 #s(literal 1 binary64) x))) (/.f64 #s(literal 1 binary64) (fma.f64 x x (-.f64 #s(literal 1 binary64) x))))
(+.f64 #s(literal 1 binary64) x)
(+.f64 x #s(literal 1 binary64))

eval5.0ms (0.1%)

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

Compiled 554 to 139 computations (74.9% saved)

prune4.0ms (0.1%)

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

6 alts after pruning (6 fresh and 0 done)

PrunedKeptTotal
New35641
Fresh000
Picked101
Done000
Total36642
Accuracy
100.0%
Counts
42 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
66.4%
(-.f64 (/.f64 (*.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)) y) (fma.f64 x x (-.f64 #s(literal 1 binary64) x))) x)
73.8%
(-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x)
100.0%
(-.f64 #s(approx (* (+ x 1) y) (fma.f64 y x y)) x)
60.2%
(-.f64 #s(approx (* (+ x 1) y) (*.f64 y x)) x)
60.2%
#s(approx (- (* (+ x 1) y) x) (*.f64 (-.f64 y #s(literal 1 binary64)) x))
34.6%
#s(approx (- (* (+ x 1) y) x) (neg.f64 x))
Compiler

Compiled 142 to 108 computations (23.9% saved)

simplify149.0ms (3.3%)

Memory
11.0MiB live, 187.0MiB allocated; 43ms collecting garbage
Algorithm
egg-herbie
Localize:

Found 14 expressions of interest:

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

Useful iterations: 1 (0.0ms)

IterNodesCost
020114
029114
137108
252108
395108
4332108
51361108
08085108
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
(-.f64 #s(approx (* (+ x 1) y) (fma.f64 y x y)) x)
#s(approx (* (+ x 1) y) (fma.f64 y x y))
(fma.f64 y x y)
y
x
#s(approx (- (* (+ x 1) y) x) (neg.f64 x))
(neg.f64 x)
x
#s(approx (- (* (+ x 1) y) 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
(-.f64 #s(approx (* (+ x 1) y) (*.f64 y x)) x)
#s(approx (* (+ x 1) y) (*.f64 y x))
(*.f64 y x)
y
x
(-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x)
(*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y)
#s(approx (+ x 1) #s(literal 1 binary64))
#s(literal 1 binary64)
y
x
Outputs
(-.f64 #s(approx (* (+ x 1) y) (fma.f64 y x y)) x)
#s(approx (* (+ x 1) y) (fma.f64 y x y))
(fma.f64 y x y)
y
x
#s(approx (- (* (+ x 1) y) x) (neg.f64 x))
(neg.f64 x)
x
#s(approx (- (* (+ x 1) y) 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
(-.f64 #s(approx (* (+ x 1) y) (*.f64 y x)) x)
#s(approx (* (+ x 1) y) (*.f64 y x))
(*.f64 y x)
y
x
(-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x)
(fma.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y (neg.f64 x))
(*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y)
#s(approx (+ x 1) #s(literal 1 binary64))
#s(literal 1 binary64)
y
x

localize130.0ms (2.9%)

Memory
-25.1MiB live, 42.8MiB allocated; 76ms collecting garbage
Localize:

Found 14 expressions of interest:

NewMetricScoreProgram
accuracy0.01171875
(-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x)
accuracy0.01171875
(*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y)
accuracy31.343362743845674
#s(approx (+ x 1) #s(literal 1 binary64))
accuracy0.0
(*.f64 y x)
accuracy0.01171875
(-.f64 #s(approx (* (+ x 1) y) (*.f64 y x)) x)
accuracy31.30764590179701
#s(approx (* (+ x 1) y) (*.f64 y x))
accuracy0.0
(-.f64 y #s(literal 1 binary64))
accuracy0.0078125
(*.f64 (-.f64 y #s(literal 1 binary64)) x)
accuracy25.47548273023534
#s(approx (- (* (+ x 1) y) x) (*.f64 (-.f64 y #s(literal 1 binary64)) x))
accuracy0.0
(neg.f64 x)
accuracy41.856009287375855
#s(approx (- (* (+ x 1) y) x) (neg.f64 x))
accuracy0.0
(fma.f64 y x y)
accuracy0.0
#s(approx (* (+ x 1) y) (fma.f64 y x y))
accuracy0.01171875
(-.f64 #s(approx (* (+ x 1) y) (fma.f64 y x y)) x)
Samples
120.0ms256×0valid
Compiler

Compiled 84 to 13 computations (84.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 42.0ms
ival-add: 34.0ms (80.2% of total)
ival-mult: 5.0ms (11.8% of total)
ival-sub: 2.0ms (4.7% of total)
ival-neg: 1.0ms (2.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)

series7.0ms (0.2%)

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

6 calls:

TimeVariablePointExpression
2.0ms
x
@inf
((- (* (+ x 1) y) x) (* (+ x 1) y) (+ (* y x) y) (- (* (+ x 1) y) x) (neg x) (- (* (+ x 1) y) x) (* (- y 1) x) (- y 1) (- (* (+ x 1) y) x) (* (+ x 1) y) (* y x) (- (* (+ x 1) y) x) (* (+ x 1) y) (+ x 1))
1.0ms
y
@-inf
((- (* (+ x 1) y) x) (* (+ x 1) y) (+ (* y x) y) (- (* (+ x 1) y) x) (neg x) (- (* (+ x 1) y) x) (* (- y 1) x) (- y 1) (- (* (+ x 1) y) x) (* (+ x 1) y) (* y x) (- (* (+ x 1) y) x) (* (+ x 1) y) (+ x 1))
1.0ms
x
@-inf
((- (* (+ x 1) y) x) (* (+ x 1) y) (+ (* y x) y) (- (* (+ x 1) y) x) (neg x) (- (* (+ x 1) y) x) (* (- y 1) x) (- y 1) (- (* (+ x 1) y) x) (* (+ x 1) y) (* y x) (- (* (+ x 1) y) x) (* (+ x 1) y) (+ x 1))
1.0ms
y
@inf
((- (* (+ x 1) y) x) (* (+ x 1) y) (+ (* y x) y) (- (* (+ x 1) y) x) (neg x) (- (* (+ x 1) y) x) (* (- y 1) x) (- y 1) (- (* (+ x 1) y) x) (* (+ x 1) y) (* y x) (- (* (+ x 1) y) x) (* (+ x 1) y) (+ x 1))
1.0ms
x
@0
((- (* (+ x 1) y) x) (* (+ x 1) y) (+ (* y x) y) (- (* (+ x 1) y) x) (neg x) (- (* (+ x 1) y) x) (* (- y 1) x) (- y 1) (- (* (+ x 1) y) x) (* (+ x 1) y) (* y x) (- (* (+ x 1) y) x) (* (+ x 1) y) (+ x 1))

simplify129.0ms (2.9%)

Memory
-19.4MiB live, 71.9MiB allocated; 22ms collecting garbage
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
055124
1187124
2642124
32246124
46720124
08162113
Stop Event
iter limit
node limit
Counts
27 → 25
Calls
Call 1
Inputs
y
(+ y (* x (- y 1)))
(+ y (* x y))
(* -1 x)
(* x (- y 1))
(* x y)
1
(+ 1 x)
(* x (- (+ y (/ y x)) 1))
(* x (+ y (/ y x)))
x
(* x (+ 1 (/ 1 x)))
(* -1 (* x (+ 1 (* -1 y))))
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x))))))
(* -1 (* x (+ (* -1 y) (* -1 (/ y x)))))
(- (* y (+ 1 x)) x)
(* y (+ 1 x))
(+ (* -1 x) (* x y))
-1
(- y 1)
(* y (+ 1 (+ x (* -1 (/ x y)))))
(* y (+ x (* -1 (/ x y))))
(* y (- 1 (/ 1 y)))
(* -1 (* y (+ (* -1 (+ 1 x)) (/ x y))))
(* -1 (* y (- (* -1 x) 1)))
(* -1 (* y (+ (* -1 x) (/ x y))))
(* -1 (* y (- (/ 1 y) 1)))
Outputs
y
(+ y (* x (- y 1)))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(+ y (* x y))
(fma.f64 y x y)
(* -1 x)
(neg.f64 x)
(* x (- y 1))
(*.f64 (-.f64 y #s(literal 1 binary64)) x)
(* x y)
(*.f64 y x)
1
#s(literal 1 binary64)
(+ 1 x)
(-.f64 x #s(literal -1 binary64))
(* x (- (+ y (/ y x)) 1))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* x (+ y (/ y x)))
(fma.f64 y x y)
x
(* x (+ 1 (/ 1 x)))
(-.f64 x #s(literal -1 binary64))
(* -1 (* x (+ 1 (* -1 y))))
(*.f64 (-.f64 y #s(literal 1 binary64)) x)
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x))))))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* -1 (* x (+ (* -1 y) (* -1 (/ y x)))))
(fma.f64 y x y)
(- (* y (+ 1 x)) x)
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* y (+ 1 x))
(fma.f64 y x 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 (+ 1 (+ x (* -1 (/ x y)))))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* y (+ x (* -1 (/ x y))))
(*.f64 (-.f64 y #s(literal 1 binary64)) x)
(* y (- 1 (/ 1 y)))
(*.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) y)) y)
(* -1 (* y (+ (* -1 (+ 1 x)) (/ x y))))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* -1 (* y (- (* -1 x) 1)))
(fma.f64 y x y)
(* -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)

rewrite39.0ms (0.9%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
020103
029103
111197
080897
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
14 → 69
Calls
Call 1
Inputs
(-.f64 #s(approx (* (+ x 1) y) (fma.f64 y x y)) x)
#s(approx (* (+ x 1) y) (fma.f64 y x y))
(fma.f64 y x y)
#s(approx (- (* (+ x 1) y) x) (neg.f64 x))
(neg.f64 x)
#s(approx (- (* (+ x 1) y) x) (*.f64 (-.f64 y #s(literal 1 binary64)) x))
(*.f64 (-.f64 y #s(literal 1 binary64)) x)
(-.f64 y #s(literal 1 binary64))
(-.f64 #s(approx (* (+ x 1) y) (*.f64 y x)) x)
#s(approx (* (+ x 1) y) (*.f64 y x))
(*.f64 y x)
(-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x)
(*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y)
#s(approx (+ x 1) #s(literal 1 binary64))
Outputs
(/.f64 (neg.f64 (-.f64 (pow.f64 #s(approx (* (+ x 1) y) (fma.f64 y x y)) #s(literal 2 binary64)) (*.f64 x x))) (neg.f64 (+.f64 #s(approx (* (+ x 1) y) (fma.f64 y x y)) x)))
(/.f64 (neg.f64 (-.f64 (pow.f64 #s(approx (* (+ x 1) y) (fma.f64 y x y)) #s(literal 3 binary64)) (pow.f64 x #s(literal 3 binary64)))) (neg.f64 (fma.f64 x (+.f64 #s(approx (* (+ x 1) y) (fma.f64 y x y)) x) (pow.f64 #s(approx (* (+ x 1) y) (fma.f64 y x y)) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 #s(approx (* (+ x 1) y) (fma.f64 y x y)) #s(literal 2 binary64)) (*.f64 x x)) (+.f64 #s(approx (* (+ x 1) y) (fma.f64 y x y)) x))
(/.f64 (-.f64 (pow.f64 #s(approx (* (+ x 1) y) (fma.f64 y x y)) #s(literal 3 binary64)) (pow.f64 x #s(literal 3 binary64))) (fma.f64 x (+.f64 #s(approx (* (+ x 1) y) (fma.f64 y x y)) x) (pow.f64 #s(approx (* (+ x 1) y) (fma.f64 y x y)) #s(literal 2 binary64))))
(-.f64 (/.f64 (pow.f64 #s(approx (* (+ x 1) y) (fma.f64 y x y)) #s(literal 2 binary64)) (+.f64 #s(approx (* (+ x 1) y) (fma.f64 y x y)) x)) (/.f64 (*.f64 x x) (+.f64 #s(approx (* (+ x 1) y) (fma.f64 y x y)) x)))
(-.f64 (/.f64 (pow.f64 #s(approx (* (+ x 1) y) (fma.f64 y x y)) #s(literal 3 binary64)) (fma.f64 x (+.f64 #s(approx (* (+ x 1) y) (fma.f64 y x y)) x) (pow.f64 #s(approx (* (+ x 1) y) (fma.f64 y x y)) #s(literal 2 binary64)))) (/.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 x (+.f64 #s(approx (* (+ x 1) y) (fma.f64 y x y)) x) (pow.f64 #s(approx (* (+ x 1) y) (fma.f64 y x y)) #s(literal 2 binary64)))))
(-.f64 #s(approx (* (+ x 1) y) (fma.f64 y x y)) x)
#s(approx (* (+ x 1) y) (fma.f64 y x y))
(*.f64 y (-.f64 x #s(literal -1 binary64)))
(*.f64 (-.f64 x #s(literal -1 binary64)) y)
(/.f64 (*.f64 (fma.f64 x x #s(literal -1 binary64)) y) (-.f64 x #s(literal 1 binary64)))
(/.f64 (*.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)) y) (fma.f64 x x (-.f64 #s(literal 1 binary64) x)))
(/.f64 (*.f64 y (fma.f64 x x #s(literal -1 binary64))) (-.f64 x #s(literal 1 binary64)))
(/.f64 (*.f64 y (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64))) (fma.f64 x x (-.f64 #s(literal 1 binary64) x)))
(/.f64 (-.f64 (*.f64 y y) (pow.f64 (*.f64 y x) #s(literal 2 binary64))) (-.f64 y (*.f64 y x)))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (*.f64 y y))) (neg.f64 (-.f64 (*.f64 y x) y)))
(/.f64 (neg.f64 (+.f64 (pow.f64 y #s(literal 3 binary64)) (pow.f64 (*.f64 y x) #s(literal 3 binary64)))) (neg.f64 (fma.f64 y (-.f64 y (*.f64 y x)) (pow.f64 (*.f64 y x) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (*.f64 y y)) (-.f64 (*.f64 y x) y))
(/.f64 (+.f64 (pow.f64 y #s(literal 3 binary64)) (pow.f64 (*.f64 y x) #s(literal 3 binary64))) (fma.f64 y y (-.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (*.f64 (*.f64 y x) y))))
(/.f64 (+.f64 (pow.f64 y #s(literal 3 binary64)) (pow.f64 (*.f64 y x) #s(literal 3 binary64))) (fma.f64 y (-.f64 y (*.f64 y x)) (pow.f64 (*.f64 y x) #s(literal 2 binary64))))
(fma.f64 y #s(literal 1 binary64) (*.f64 y x))
(fma.f64 y x y)
(fma.f64 #s(literal 1 binary64) y (*.f64 y x))
(fma.f64 x y y)
(-.f64 (/.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (-.f64 (*.f64 y x) y)) (/.f64 (*.f64 y y) (-.f64 (*.f64 y x) y)))
(-.f64 y (*.f64 (neg.f64 y) x))
(-.f64 y (*.f64 (neg.f64 x) y))
(+.f64 (/.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (fma.f64 y (-.f64 y (*.f64 y x)) (pow.f64 (*.f64 y x) #s(literal 2 binary64)))) (/.f64 (pow.f64 y #s(literal 3 binary64)) (fma.f64 y (-.f64 y (*.f64 y x)) (pow.f64 (*.f64 y x) #s(literal 2 binary64)))))
(+.f64 (*.f64 y x) y)
(+.f64 y (*.f64 y x))
#s(approx (- (* (+ x 1) y) x) (neg.f64 x))
(neg.f64 x)
#s(approx (- (* (+ x 1) y) 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))))
(fma.f64 y #s(literal 1 binary64) #s(literal -1 binary64))
(fma.f64 #s(literal 1 binary64) 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 (neg.f64 (-.f64 (pow.f64 #s(approx (* (+ x 1) y) (*.f64 y x)) #s(literal 2 binary64)) (*.f64 x x))) (neg.f64 (+.f64 #s(approx (* (+ x 1) y) (*.f64 y x)) x)))
(/.f64 (neg.f64 (-.f64 (pow.f64 #s(approx (* (+ x 1) y) (*.f64 y x)) #s(literal 3 binary64)) (pow.f64 x #s(literal 3 binary64)))) (neg.f64 (fma.f64 x (+.f64 #s(approx (* (+ x 1) y) (*.f64 y x)) x) (pow.f64 #s(approx (* (+ x 1) y) (*.f64 y x)) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 #s(approx (* (+ x 1) y) (*.f64 y x)) #s(literal 2 binary64)) (*.f64 x x)) (+.f64 #s(approx (* (+ x 1) y) (*.f64 y x)) x))
(/.f64 (-.f64 (pow.f64 #s(approx (* (+ x 1) y) (*.f64 y x)) #s(literal 3 binary64)) (pow.f64 x #s(literal 3 binary64))) (fma.f64 x (+.f64 #s(approx (* (+ x 1) y) (*.f64 y x)) x) (pow.f64 #s(approx (* (+ x 1) y) (*.f64 y x)) #s(literal 2 binary64))))
(-.f64 (/.f64 (pow.f64 #s(approx (* (+ x 1) y) (*.f64 y x)) #s(literal 2 binary64)) (+.f64 #s(approx (* (+ x 1) y) (*.f64 y x)) x)) (/.f64 (*.f64 x x) (+.f64 #s(approx (* (+ x 1) y) (*.f64 y x)) x)))
(-.f64 (/.f64 (pow.f64 #s(approx (* (+ x 1) y) (*.f64 y x)) #s(literal 3 binary64)) (fma.f64 x (+.f64 #s(approx (* (+ x 1) y) (*.f64 y x)) x) (pow.f64 #s(approx (* (+ x 1) y) (*.f64 y x)) #s(literal 2 binary64)))) (/.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 x (+.f64 #s(approx (* (+ x 1) y) (*.f64 y x)) x) (pow.f64 #s(approx (* (+ x 1) y) (*.f64 y x)) #s(literal 2 binary64)))))
(-.f64 #s(approx (* (+ x 1) y) (*.f64 y x)) x)
#s(approx (* (+ x 1) y) (*.f64 y x))
(*.f64 y x)
(*.f64 x y)
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) #s(literal 2 binary64)) (*.f64 x x))) (neg.f64 (fma.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y x)))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) #s(literal 3 binary64)) (pow.f64 x #s(literal 3 binary64)))) (neg.f64 (fma.f64 x (fma.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y x) (pow.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) #s(literal 2 binary64)) (*.f64 x x)) (fma.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y x))
(/.f64 (-.f64 (pow.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) #s(literal 3 binary64)) (pow.f64 x #s(literal 3 binary64))) (fma.f64 x (fma.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y x) (pow.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) #s(literal 2 binary64))))
(-.f64 (/.f64 (pow.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) #s(literal 2 binary64)) (fma.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y x)) (/.f64 (*.f64 x x) (fma.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y x)))
(-.f64 (/.f64 (pow.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) #s(literal 3 binary64)) (fma.f64 x (fma.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y x) (pow.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) #s(literal 2 binary64)))) (/.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 x (fma.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y x) (pow.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) #s(literal 2 binary64)))))
(-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x)
(*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y)
(*.f64 y #s(approx (+ x 1) #s(literal 1 binary64)))
#s(approx (+ x 1) #s(literal 1 binary64))

eval38.0ms (0.8%)

Memory
-28.1MiB live, 17.8MiB allocated; 4ms collecting garbage
Compiler

Compiled 1 725 to 273 computations (84.2% saved)

prune4.0ms (0.1%)

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

6 alts after pruning (1 fresh and 5 done)

PrunedKeptTotal
New78078
Fresh011
Picked055
Done000
Total78684
Accuracy
100.0%
Counts
84 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
66.4%
(-.f64 (/.f64 (*.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)) y) (fma.f64 x x (-.f64 #s(literal 1 binary64) x))) x)
73.8%
(-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x)
100.0%
(-.f64 #s(approx (* (+ x 1) y) (fma.f64 y x y)) x)
60.2%
(-.f64 #s(approx (* (+ x 1) y) (*.f64 y x)) x)
60.2%
#s(approx (- (* (+ x 1) y) x) (*.f64 (-.f64 y #s(literal 1 binary64)) x))
34.6%
#s(approx (- (* (+ x 1) y) x) (neg.f64 x))
Compiler

Compiled 71 to 54 computations (23.9% saved)

simplify161.0ms (3.6%)

Memory
-8.1MiB live, 89.8MiB allocated; 13ms collecting garbage
Algorithm
egg-herbie
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64))
cost-diff0
(*.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)) y)
cost-diff0
(/.f64 (*.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)) y) (fma.f64 x x (-.f64 #s(literal 1 binary64) x)))
cost-diff0
(-.f64 (/.f64 (*.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)) y) (fma.f64 x x (-.f64 #s(literal 1 binary64) x))) x)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01259
02059
13459
26859
314459
428659
574759
6505159
0864259
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
(-.f64 (/.f64 (*.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)) y) (fma.f64 x x (-.f64 #s(literal 1 binary64) x))) x)
(/.f64 (*.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)) y) (fma.f64 x x (-.f64 #s(literal 1 binary64) x)))
(*.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)) y)
(-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64))
(pow.f64 x #s(literal 3 binary64))
x
#s(literal 3 binary64)
#s(literal -1 binary64)
y
(fma.f64 x x (-.f64 #s(literal 1 binary64) x))
(-.f64 #s(literal 1 binary64) x)
#s(literal 1 binary64)
Outputs
(-.f64 (/.f64 (*.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)) y) (fma.f64 x x (-.f64 #s(literal 1 binary64) x))) x)
(-.f64 (*.f64 (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x))) (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64))) x)
(/.f64 (*.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)) y) (fma.f64 x x (-.f64 #s(literal 1 binary64) x)))
(*.f64 (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x))) (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)))
(*.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)) y)
(*.f64 y (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)))
(-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64))
(pow.f64 x #s(literal 3 binary64))
x
#s(literal 3 binary64)
#s(literal -1 binary64)
y
(fma.f64 x x (-.f64 #s(literal 1 binary64) x))
(-.f64 #s(literal 1 binary64) x)
#s(literal 1 binary64)

localize53.0ms (1.2%)

Memory
-2.2MiB live, 41.9MiB allocated; 5ms collecting garbage
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.00390625
(pow.f64 x #s(literal 3 binary64))
accuracy0.01171875
(-.f64 (/.f64 (*.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)) y) (fma.f64 x x (-.f64 #s(literal 1 binary64) x))) x)
accuracy2.833482893421166
(*.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)) y)
accuracy18.717002525649978
(/.f64 (*.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)) y) (fma.f64 x x (-.f64 #s(literal 1 binary64) x)))
Samples
44.0ms256×0valid
Compiler

Compiled 64 to 15 computations (76.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 36.0ms
ival-pow: 26.0ms (72.9% of total)
ival-mult: 3.0ms (8.4% of total)
ival-sub: 3.0ms (8.4% of total)
ival-div: 2.0ms (5.6% of total)
ival-add: 1.0ms (2.8% 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)

series10.0ms (0.2%)

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

6 calls:

TimeVariablePointExpression
3.0ms
x
@-inf
((- (/ (* (- (pow x 3) -1) y) (+ (* x x) (- 1 x))) x) (/ (* (- (pow x 3) -1) y) (+ (* x x) (- 1 x))) (* (- (pow x 3) -1) y) (- (pow x 3) -1) (pow x 3))
2.0ms
y
@inf
((- (/ (* (- (pow x 3) -1) y) (+ (* x x) (- 1 x))) x) (/ (* (- (pow x 3) -1) y) (+ (* x x) (- 1 x))) (* (- (pow x 3) -1) y) (- (pow x 3) -1) (pow x 3))
2.0ms
y
@0
((- (/ (* (- (pow x 3) -1) y) (+ (* x x) (- 1 x))) x) (/ (* (- (pow x 3) -1) y) (+ (* x x) (- 1 x))) (* (- (pow x 3) -1) y) (- (pow x 3) -1) (pow x 3))
2.0ms
y
@-inf
((- (/ (* (- (pow x 3) -1) y) (+ (* x x) (- 1 x))) x) (/ (* (- (pow x 3) -1) y) (+ (* x x) (- 1 x))) (* (- (pow x 3) -1) y) (- (pow x 3) -1) (pow x 3))
1.0ms
x
@inf
((- (/ (* (- (pow x 3) -1) y) (+ (* x x) (- 1 x))) x) (/ (* (- (pow x 3) -1) y) (+ (* x x) (- 1 x))) (* (- (pow x 3) -1) y) (- (pow x 3) -1) (pow x 3))

simplify170.0ms (3.8%)

Memory
-4.8MiB live, 135.5MiB allocated; 22ms collecting garbage
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0126300
1456292
21973288
08171270
Stop Event
iter limit
node limit
Counts
37 → 36
Calls
Call 1
Inputs
y
(+ y (* -1 (* x (+ 1 (* -1 y)))))
(+ y (* x (- (* -1 (* x (+ y (* -1 y)))) (+ 1 (* -1 y)))))
(+ y (* x (- (* x (- (* x (- y (+ (* -1 y) (* 2 y)))) (+ y (* -1 y)))) (+ 1 (* -1 y)))))
(+ y (* x y))
(+ y (* x (- (* -1 (* x (+ y (* -1 y)))) (* -1 y))))
(+ y (* x (- (* x (- (* x (- y (+ (* -1 y) (* 2 y)))) (+ y (* -1 y)))) (* -1 y))))
(+ y (* (pow x 3) y))
1
(+ 1 (pow x 3))
(pow x 3)
(* x (- y 1))
(* x (- (+ y (/ y x)) 1))
(* x (- (+ y (* -1 (/ (+ y (* -1 y)) (pow x 2)))) (+ 1 (* -1 (/ y x)))))
(* x (- (+ y (/ y (pow x 3))) (+ 1 (+ (* -1 (/ y x)) (+ (* -1 (/ y (pow x 2))) (+ (* -1 (/ y (pow x 3))) (+ (* 2 (/ y (pow x 3))) (/ y (pow x 2)))))))))
(* x y)
(* x (+ y (/ y x)))
(* x (- (+ y (* -1 (/ (+ y (* -1 y)) (pow x 2)))) (* -1 (/ y x))))
(* x (- (+ y (/ y (pow x 3))) (+ (* -1 (/ y x)) (+ (* -1 (/ y (pow x 2))) (+ (* -1 (/ y (pow x 3))) (+ (* 2 (/ y (pow x 3))) (/ y (pow x 2))))))))
(* (pow x 3) y)
(* (pow x 3) (+ y (/ y (pow x 3))))
(* (pow x 3) (+ 1 (/ 1 (pow x 3))))
(* -1 (* x (+ 1 (* -1 y))))
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x))))))
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ (- (+ (* -1 (/ y x)) (/ y x)) (* -1 y)) x))))))
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ (- (* -1 (/ (- (* -1 (/ (+ y (* -1 y)) x)) (+ y (* -1 y))) x)) (* -1 y)) x))))))
(* -1 (* x (+ (* -1 y) (* -1 (/ y x)))))
(* -1 (* x (+ (* -1 y) (* -1 (/ (- (+ (* -1 (/ y x)) (/ y x)) (* -1 y)) x)))))
(* -1 (* x (+ (* -1 y) (* -1 (/ (- (* -1 (/ (- (* -1 (/ (+ y (* -1 y)) x)) (+ y (* -1 y))) x)) (* -1 y)) x)))))
(* -1 (* (pow x 3) (+ (* -1 y) (* -1 (/ y (pow x 3))))))
(* -1 x)
(- (* y (+ (/ 1 (- (+ 1 (pow x 2)) x)) (/ (pow x 3) (- (+ 1 (pow x 2)) x)))) x)
(/ (* y (+ 1 (pow x 3))) (- (+ 1 (pow x 2)) x))
(* y (+ 1 (pow x 3)))
(* y (+ (/ 1 (- (+ 1 (pow x 2)) x)) (/ (pow x 3) (- (+ 1 (pow x 2)) x))))
(* y (+ (* -1 (/ x y)) (+ (/ 1 (- (+ 1 (pow x 2)) x)) (/ (pow x 3) (- (+ 1 (pow x 2)) x)))))
(* -1 (* y (+ (* -1 (/ (+ 1 (pow x 3)) (- (+ 1 (pow x 2)) x))) (/ x y))))
Outputs
y
(+ y (* -1 (* x (+ 1 (* -1 y)))))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(+ y (* x (- (* -1 (* x (+ y (* -1 y)))) (+ 1 (* -1 y)))))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(+ y (* x (- (* x (- (* x (- y (+ (* -1 y) (* 2 y)))) (+ y (* -1 y)))) (+ 1 (* -1 y)))))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(+ y (* x y))
(fma.f64 y x y)
(+ y (* x (- (* -1 (* x (+ y (* -1 y)))) (* -1 y))))
(fma.f64 y x y)
(+ y (* x (- (* x (- (* x (- y (+ (* -1 y) (* 2 y)))) (+ y (* -1 y)))) (* -1 y))))
(fma.f64 y x y)
(+ y (* (pow x 3) y))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) y y)
1
#s(literal 1 binary64)
(+ 1 (pow x 3))
(-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64))
(pow x 3)
(pow.f64 x #s(literal 3 binary64))
(* x (- y 1))
(*.f64 (-.f64 y #s(literal 1 binary64)) x)
(* x (- (+ y (/ y x)) 1))
(*.f64 (-.f64 (+.f64 (/.f64 y x) y) #s(literal 1 binary64)) x)
(* x (- (+ y (* -1 (/ (+ y (* -1 y)) (pow x 2)))) (+ 1 (* -1 (/ y x)))))
(*.f64 (-.f64 (+.f64 (/.f64 y x) y) #s(literal 1 binary64)) x)
(* x (- (+ y (/ y (pow x 3))) (+ 1 (+ (* -1 (/ y x)) (+ (* -1 (/ y (pow x 2))) (+ (* -1 (/ y (pow x 3))) (+ (* 2 (/ y (pow x 3))) (/ y (pow x 2)))))))))
(*.f64 (-.f64 (+.f64 (/.f64 y x) y) #s(literal 1 binary64)) x)
(* x y)
(*.f64 y x)
(* x (+ y (/ y x)))
(*.f64 (+.f64 (/.f64 y x) y) x)
(* x (- (+ y (* -1 (/ (+ y (* -1 y)) (pow x 2)))) (* -1 (/ y x))))
(*.f64 (+.f64 (/.f64 y x) y) x)
(* x (- (+ y (/ y (pow x 3))) (+ (* -1 (/ y x)) (+ (* -1 (/ y (pow x 2))) (+ (* -1 (/ y (pow x 3))) (+ (* 2 (/ y (pow x 3))) (/ y (pow x 2))))))))
(*.f64 (+.f64 (/.f64 y x) y) x)
(* (pow x 3) y)
(*.f64 (pow.f64 x #s(literal 3 binary64)) y)
(* (pow x 3) (+ y (/ y (pow x 3))))
(fma.f64 (/.f64 y #s(literal 1 binary64)) #s(literal 1 binary64) (*.f64 (pow.f64 x #s(literal 3 binary64)) y))
(* (pow x 3) (+ 1 (/ 1 (pow x 3))))
(-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64))
(* -1 (* x (+ 1 (* -1 y))))
(*.f64 (-.f64 y #s(literal 1 binary64)) x)
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x))))))
(*.f64 (-.f64 (+.f64 (/.f64 y x) y) #s(literal 1 binary64)) x)
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ (- (+ (* -1 (/ y x)) (/ y x)) (* -1 y)) x))))))
(*.f64 (-.f64 (+.f64 (/.f64 y x) y) #s(literal 1 binary64)) x)
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ (- (* -1 (/ (- (* -1 (/ (+ y (* -1 y)) x)) (+ y (* -1 y))) x)) (* -1 y)) x))))))
(*.f64 (-.f64 (+.f64 (/.f64 y x) y) #s(literal 1 binary64)) x)
(* -1 (* x (+ (* -1 y) (* -1 (/ y x)))))
(*.f64 (+.f64 (/.f64 y x) y) x)
(* -1 (* x (+ (* -1 y) (* -1 (/ (- (+ (* -1 (/ y x)) (/ y x)) (* -1 y)) x)))))
(*.f64 (+.f64 (/.f64 y x) y) x)
(* -1 (* x (+ (* -1 y) (* -1 (/ (- (* -1 (/ (- (* -1 (/ (+ y (* -1 y)) x)) (+ y (* -1 y))) x)) (* -1 y)) x)))))
(*.f64 (+.f64 (/.f64 y x) y) x)
(* -1 (* (pow x 3) (+ (* -1 y) (* -1 (/ y (pow x 3))))))
(fma.f64 (/.f64 y #s(literal 1 binary64)) #s(literal 1 binary64) (*.f64 (pow.f64 x #s(literal 3 binary64)) y))
(* -1 x)
(neg.f64 x)
(- (* y (+ (/ 1 (- (+ 1 (pow x 2)) x)) (/ (pow x 3) (- (+ 1 (pow x 2)) x)))) x)
(-.f64 (/.f64 (fma.f64 (pow.f64 x #s(literal 3 binary64)) y y) (-.f64 (fma.f64 x x #s(literal 1 binary64)) x)) x)
(/ (* y (+ 1 (pow x 3))) (- (+ 1 (pow x 2)) x))
(/.f64 (fma.f64 (pow.f64 x #s(literal 3 binary64)) y y) (-.f64 (fma.f64 x x #s(literal 1 binary64)) x))
(* y (+ 1 (pow x 3)))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) y y)
(* y (+ (/ 1 (- (+ 1 (pow x 2)) x)) (/ (pow x 3) (- (+ 1 (pow x 2)) x))))
(/.f64 (fma.f64 (pow.f64 x #s(literal 3 binary64)) y y) (-.f64 (fma.f64 x x #s(literal 1 binary64)) x))
(* y (+ (* -1 (/ x y)) (+ (/ 1 (- (+ 1 (pow x 2)) x)) (/ (pow x 3) (- (+ 1 (pow x 2)) x)))))
(*.f64 (-.f64 (/.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)) (-.f64 (fma.f64 x x #s(literal 1 binary64)) x)) (/.f64 x y)) y)
(* -1 (* y (+ (* -1 (/ (+ 1 (pow x 3)) (- (+ 1 (pow x 2)) x))) (/ x y))))
(*.f64 (-.f64 (/.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)) (-.f64 (fma.f64 x x #s(literal 1 binary64)) x)) (/.f64 x y)) y)

rewrite83.0ms (1.9%)

Memory
20.9MiB live, 65.7MiB allocated; 8ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01245
02045
19145
076945
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
5 → 50
Calls
Call 1
Inputs
(-.f64 (/.f64 (*.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)) y) (fma.f64 x x (-.f64 #s(literal 1 binary64) x))) x)
(/.f64 (*.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)) y) (fma.f64 x x (-.f64 #s(literal 1 binary64) x)))
(*.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)) y)
(-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64))
(pow.f64 x #s(literal 3 binary64))
Outputs
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x))) (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64))) #s(literal 2 binary64)) (*.f64 x x))) (neg.f64 (fma.f64 (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x))) (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)) x)))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x))) (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64))) #s(literal 3 binary64)) (pow.f64 x #s(literal 3 binary64)))) (neg.f64 (fma.f64 x (fma.f64 (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x))) (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)) x) (pow.f64 (*.f64 (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x))) (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64))) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x))) (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64))) #s(literal 2 binary64)) (*.f64 x x)) (fma.f64 (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x))) (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)) x))
(/.f64 (-.f64 (pow.f64 (*.f64 (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x))) (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64))) #s(literal 3 binary64)) (pow.f64 x #s(literal 3 binary64))) (fma.f64 x (fma.f64 (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x))) (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)) x) (pow.f64 (*.f64 (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x))) (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64))) #s(literal 2 binary64))))
(-.f64 (/.f64 (pow.f64 (*.f64 (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x))) (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64))) #s(literal 2 binary64)) (fma.f64 (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x))) (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)) x)) (/.f64 (*.f64 x x) (fma.f64 (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x))) (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)) x)))
(-.f64 (/.f64 (pow.f64 (*.f64 (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x))) (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64))) #s(literal 3 binary64)) (fma.f64 x (fma.f64 (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x))) (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)) x) (pow.f64 (*.f64 (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x))) (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64))) #s(literal 2 binary64)))) (/.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 x (fma.f64 (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x))) (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)) x) (pow.f64 (*.f64 (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x))) (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64))) #s(literal 2 binary64)))))
(-.f64 (*.f64 (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x))) (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64))) x)
(*.f64 (/.f64 (*.f64 y (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64))) (-.f64 (pow.f64 x #s(literal 4 binary64)) (pow.f64 (-.f64 #s(literal 1 binary64) x) #s(literal 2 binary64)))) (-.f64 (*.f64 x x) (-.f64 #s(literal 1 binary64) x)))
(*.f64 (/.f64 (*.f64 y (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64))) (+.f64 (pow.f64 (-.f64 #s(literal 1 binary64) x) #s(literal 3 binary64)) (pow.f64 x #s(literal 6 binary64)))) (fma.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 (-.f64 #s(literal 1 binary64) x) (*.f64 x x)) (pow.f64 x #s(literal 4 binary64))))
(*.f64 (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x))) (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)))
(*.f64 y (/.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)) (fma.f64 x x (-.f64 #s(literal 1 binary64) x))))
(*.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)) (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x))))
(/.f64 (*.f64 (-.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal 1 binary64)) (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x)))) (+.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 3 binary64))))
(/.f64 (*.f64 (-.f64 (pow.f64 x #s(literal 9 binary64)) #s(literal -1 binary64)) (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x)))) (fma.f64 #s(literal -1 binary64) (+.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 3 binary64))) (pow.f64 x #s(literal 6 binary64))))
(/.f64 (neg.f64 (*.f64 (neg.f64 y) (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)))) (neg.f64 (neg.f64 (fma.f64 x x (-.f64 #s(literal 1 binary64) x)))))
(/.f64 (*.f64 (-.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal 1 binary64)) y) (*.f64 (+.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 3 binary64))) (fma.f64 x x (-.f64 #s(literal 1 binary64) x))))
(/.f64 (*.f64 (-.f64 (pow.f64 x #s(literal 9 binary64)) #s(literal -1 binary64)) y) (*.f64 (fma.f64 #s(literal -1 binary64) (+.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 3 binary64))) (pow.f64 x #s(literal 6 binary64))) (fma.f64 x x (-.f64 #s(literal 1 binary64) x))))
(/.f64 (*.f64 (neg.f64 y) (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64))) (neg.f64 (fma.f64 x x (-.f64 #s(literal 1 binary64) x))))
(/.f64 (*.f64 y (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64))) (fma.f64 x x (-.f64 #s(literal 1 binary64) x)))
(neg.f64 (/.f64 (*.f64 (neg.f64 y) (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64))) (fma.f64 x x (-.f64 #s(literal 1 binary64) x))))
(neg.f64 (/.f64 (*.f64 y (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64))) (neg.f64 (fma.f64 x x (-.f64 #s(literal 1 binary64) x)))))
(*.f64 y (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)))
(*.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)) y)
(/.f64 (*.f64 y (-.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal 1 binary64))) (+.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 3 binary64))))
(/.f64 (*.f64 y (-.f64 (pow.f64 x #s(literal 9 binary64)) #s(literal -1 binary64))) (fma.f64 #s(literal -1 binary64) (+.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 3 binary64))) (pow.f64 x #s(literal 6 binary64))))
(/.f64 (*.f64 (-.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal 1 binary64)) y) (+.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 3 binary64))))
(/.f64 (*.f64 (-.f64 (pow.f64 x #s(literal 9 binary64)) #s(literal -1 binary64)) y) (fma.f64 #s(literal -1 binary64) (+.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 3 binary64))) (pow.f64 x #s(literal 6 binary64))))
(*.f64 (fma.f64 x x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1 binary64)))) (-.f64 x #s(literal -1 binary64)))
(/.f64 (neg.f64 (-.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal 1 binary64))) (neg.f64 (+.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 3 binary64)))))
(/.f64 (neg.f64 (-.f64 (pow.f64 x #s(literal 9 binary64)) #s(literal -1 binary64))) (neg.f64 (fma.f64 #s(literal -1 binary64) (+.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 3 binary64))) (pow.f64 x #s(literal 6 binary64)))))
(/.f64 (-.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal 1 binary64)) (+.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 3 binary64))))
(/.f64 (-.f64 (pow.f64 x #s(literal 9 binary64)) #s(literal -1 binary64)) (fma.f64 #s(literal -1 binary64) (+.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 3 binary64))) (pow.f64 x #s(literal 6 binary64))))
(-.f64 (/.f64 (pow.f64 x #s(literal 6 binary64)) (+.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 3 binary64)))) (/.f64 #s(literal 1 binary64) (+.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 3 binary64)))))
(-.f64 (/.f64 (pow.f64 x #s(literal 9 binary64)) (fma.f64 #s(literal -1 binary64) (+.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 3 binary64))) (pow.f64 x #s(literal 6 binary64)))) (/.f64 #s(literal -1 binary64) (fma.f64 #s(literal -1 binary64) (+.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 3 binary64))) (pow.f64 x #s(literal 6 binary64)))))
(-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64))
(*.f64 (*.f64 x (neg.f64 x)) (neg.f64 x))
(*.f64 (*.f64 x (fabs.f64 x)) (fabs.f64 x))
(*.f64 (neg.f64 (pow.f64 x #s(literal 3/2 binary64))) (neg.f64 (pow.f64 x #s(literal 3/2 binary64))))
(*.f64 (fabs.f64 (pow.f64 x #s(literal 3/2 binary64))) (fabs.f64 (pow.f64 x #s(literal 3/2 binary64))))
(*.f64 (pow.f64 x #s(literal 3/2 binary64)) (pow.f64 x #s(literal 3/2 binary64)))
(*.f64 (neg.f64 x) (*.f64 (neg.f64 x) x))
(*.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) x))
(*.f64 (*.f64 x x) x)
(*.f64 x (*.f64 x x))
(pow.f64 (exp.f64 (log.f64 x)) #s(literal 3 binary64))
(pow.f64 (pow.f64 x #s(literal 3/2 binary64)) #s(literal 2 binary64))
(pow.f64 (*.f64 x x) #s(literal 3/2 binary64))
(pow.f64 x #s(literal 3 binary64))
(exp.f64 (*.f64 (log.f64 x) #s(literal 3 binary64)))
(+.f64 (cosh.f64 (*.f64 (log.f64 x) #s(literal 3 binary64))) (sinh.f64 (*.f64 (log.f64 x) #s(literal 3 binary64))))

eval14.0ms (0.3%)

Memory
-18.6MiB live, 25.3MiB allocated; 8ms collecting garbage
Compiler

Compiled 1 691 to 306 computations (81.9% saved)

prune3.0ms (0.1%)

Memory
8.3MiB live, 8.2MiB allocated; 0ms collecting garbage
Pruning

6 alts after pruning (1 fresh and 5 done)

PrunedKeptTotal
New66167
Fresh000
Picked101
Done055
Total67673
Accuracy
100.0%
Counts
73 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
73.8%
(-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x)
100.0%
(-.f64 #s(approx (* (+ x 1) y) (fma.f64 y x y)) x)
60.2%
(-.f64 #s(approx (* (+ x 1) y) (*.f64 y x)) x)
48.2%
#s(approx (- (/ (* (- (pow x 3) -1) y) (+ (* x x) (- 1 x))) x) (/.f64 (fma.f64 (pow.f64 x #s(literal 3 binary64)) y y) (-.f64 (fma.f64 x x #s(literal 1 binary64)) x)))
60.2%
#s(approx (- (* (+ x 1) y) x) (*.f64 (-.f64 y #s(literal 1 binary64)) x))
34.6%
#s(approx (- (* (+ x 1) y) x) (neg.f64 x))
Compiler

Compiled 86 to 63 computations (26.7% saved)

simplify177.0ms (4%)

Memory
12.4MiB live, 116.7MiB allocated; 11ms collecting garbage
Algorithm
egg-herbie
Localize:

Found 4 expressions of interest:

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

Useful iterations: 4 (0.0ms)

IterNodesCost
01967
02566
14566
210566
336166
4103165
5317265
6772365
0844765
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
#s(approx (- (/ (* (- (pow x 3) -1) y) (+ (* x x) (- 1 x))) x) (/.f64 (fma.f64 (pow.f64 x #s(literal 3 binary64)) y y) (-.f64 (fma.f64 x x #s(literal 1 binary64)) x)))
(/.f64 (fma.f64 (pow.f64 x #s(literal 3 binary64)) y y) (-.f64 (fma.f64 x x #s(literal 1 binary64)) x))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) y y)
(pow.f64 x #s(literal 3 binary64))
x
#s(literal 3 binary64)
y
(-.f64 (fma.f64 x x #s(literal 1 binary64)) x)
(fma.f64 x x #s(literal 1 binary64))
#s(literal 1 binary64)
Outputs
#s(approx (- (/ (* (- (pow x 3) -1) y) (+ (* x x) (- 1 x))) x) (/.f64 (fma.f64 (pow.f64 x #s(literal 3 binary64)) y y) (-.f64 (fma.f64 x x #s(literal 1 binary64)) x)))
#s(approx (- (/ (* (- (pow x 3) -1) y) (+ (* x x) (- 1 x))) x) (/.f64 (fma.f64 (pow.f64 x #s(literal 3 binary64)) y y) (fma.f64 x x (-.f64 #s(literal 1 binary64) x))))
(/.f64 (fma.f64 (pow.f64 x #s(literal 3 binary64)) y y) (-.f64 (fma.f64 x x #s(literal 1 binary64)) x))
(/.f64 (fma.f64 (pow.f64 x #s(literal 3 binary64)) y y) (fma.f64 x x (-.f64 #s(literal 1 binary64) x)))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) y y)
(pow.f64 x #s(literal 3 binary64))
x
#s(literal 3 binary64)
y
(-.f64 (fma.f64 x x #s(literal 1 binary64)) x)
(fma.f64 x x (-.f64 #s(literal 1 binary64) x))
(fma.f64 x x #s(literal 1 binary64))
#s(literal 1 binary64)

localize81.0ms (1.8%)

Memory
-16.0MiB live, 76.5MiB allocated; 8ms collecting garbage
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.01171875
(-.f64 (fma.f64 x x #s(literal 1 binary64)) x)
accuracy2.833482893421166
(fma.f64 (pow.f64 x #s(literal 3 binary64)) y y)
accuracy18.717002525649978
(/.f64 (fma.f64 (pow.f64 x #s(literal 3 binary64)) y y) (-.f64 (fma.f64 x x #s(literal 1 binary64)) x))
accuracy21.286420109172322
#s(approx (- (/ (* (- (pow x 3) -1) y) (+ (* x x) (- 1 x))) x) (/.f64 (fma.f64 (pow.f64 x #s(literal 3 binary64)) y y) (-.f64 (fma.f64 x x #s(literal 1 binary64)) x)))
Samples
72.0ms256×0valid
Compiler

Compiled 60 to 20 computations (66.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 63.0ms
ival-pow: 47.0ms (74.8% of total)
ival-mult: 5.0ms (8% of total)
ival-sub: 5.0ms (8% of total)
ival-div: 3.0ms (4.8% of total)
ival-add: 3.0ms (4.8% 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)

series44.0ms (1%)

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

6 calls:

TimeVariablePointExpression
38.0ms
y
@-inf
((- (/ (* (- (pow x 3) -1) y) (+ (* x x) (- 1 x))) x) (/ (+ (* (pow x 3) y) y) (- (+ (* x x) 1) x)) (+ (* (pow x 3) y) y) (pow x 3) (- (+ (* x x) 1) x))
1.0ms
y
@inf
((- (/ (* (- (pow x 3) -1) y) (+ (* x x) (- 1 x))) x) (/ (+ (* (pow x 3) y) y) (- (+ (* x x) 1) x)) (+ (* (pow x 3) y) y) (pow x 3) (- (+ (* x x) 1) x))
1.0ms
y
@0
((- (/ (* (- (pow x 3) -1) y) (+ (* x x) (- 1 x))) x) (/ (+ (* (pow x 3) y) y) (- (+ (* x x) 1) x)) (+ (* (pow x 3) y) y) (pow x 3) (- (+ (* x x) 1) x))
1.0ms
x
@-inf
((- (/ (* (- (pow x 3) -1) y) (+ (* x x) (- 1 x))) x) (/ (+ (* (pow x 3) y) y) (- (+ (* x x) 1) x)) (+ (* (pow x 3) y) y) (pow x 3) (- (+ (* x x) 1) x))
1.0ms
x
@inf
((- (/ (* (- (pow x 3) -1) y) (+ (* x x) (- 1 x))) x) (/ (+ (* (pow x 3) y) y) (- (+ (* x x) 1) x)) (+ (* (pow x 3) y) y) (pow x 3) (- (+ (* x x) 1) x))

simplify160.0ms (3.6%)

Memory
43.0MiB live, 135.6MiB allocated; 11ms collecting garbage
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0144364
1504354
22108350
08177330
Stop Event
iter limit
node limit
Counts
43 → 42
Calls
Call 1
Inputs
y
(+ y (* -1 (* x (+ 1 (* -1 y)))))
(+ y (* x (- (* -1 (* x (+ y (* -1 y)))) (+ 1 (* -1 y)))))
(+ y (* x (- (* x (- (* x (- y (+ (* -1 y) (* 2 y)))) (+ y (* -1 y)))) (+ 1 (* -1 y)))))
(+ y (* x y))
(+ y (* x (- (* -1 (* x (+ y (* -1 y)))) (* -1 y))))
(+ y (* x (- (* x (- (* x (- y (+ (* -1 y) (* 2 y)))) (+ y (* -1 y)))) (* -1 y))))
(+ y (* (pow x 3) y))
(pow x 3)
1
(+ 1 (* -1 x))
(+ 1 (* x (- x 1)))
(* x (- y 1))
(* x (- (+ y (/ y x)) 1))
(* x (- (+ y (* -1 (/ (+ y (* -1 y)) (pow x 2)))) (+ 1 (* -1 (/ y x)))))
(* x (- (+ y (/ y (pow x 3))) (+ 1 (+ (* -1 (/ y x)) (+ (* -1 (/ y (pow x 2))) (+ (* -1 (/ y (pow x 3))) (+ (* 2 (/ y (pow x 3))) (/ y (pow x 2)))))))))
(* x y)
(* x (+ y (/ y x)))
(* x (- (+ y (* -1 (/ (+ y (* -1 y)) (pow x 2)))) (* -1 (/ y x))))
(* x (- (+ y (/ y (pow x 3))) (+ (* -1 (/ y x)) (+ (* -1 (/ y (pow x 2))) (+ (* -1 (/ y (pow x 3))) (+ (* 2 (/ y (pow x 3))) (/ y (pow x 2))))))))
(* (pow x 3) y)
(* (pow x 3) (+ y (/ y (pow x 3))))
(pow x 2)
(* (pow x 2) (- 1 (/ 1 x)))
(* (pow x 2) (- (+ 1 (/ 1 (pow x 2))) (/ 1 x)))
(* -1 (* x (+ 1 (* -1 y))))
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x))))))
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ (- (+ (* -1 (/ y x)) (/ y x)) (* -1 y)) x))))))
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ (- (* -1 (/ (- (* -1 (/ (+ y (* -1 y)) x)) (+ y (* -1 y))) x)) (* -1 y)) x))))))
(* -1 (* x (+ (* -1 y) (* -1 (/ y x)))))
(* -1 (* x (+ (* -1 y) (* -1 (/ (- (+ (* -1 (/ y x)) (/ y x)) (* -1 y)) x)))))
(* -1 (* x (+ (* -1 y) (* -1 (/ (- (* -1 (/ (- (* -1 (/ (+ y (* -1 y)) x)) (+ y (* -1 y))) x)) (* -1 y)) x)))))
(* -1 (* (pow x 3) (+ (* -1 y) (* -1 (/ y (pow x 3))))))
(* (pow x 2) (+ 1 (* -1 (/ (- 1 (/ 1 x)) x))))
(* -1 x)
(- (* y (+ (/ 1 (- (+ 1 (pow x 2)) x)) (/ (pow x 3) (- (+ 1 (pow x 2)) x)))) x)
(/ (* y (+ 1 (pow x 3))) (- (+ 1 (pow x 2)) x))
(* y (+ 1 (pow x 3)))
(* y (+ (/ 1 (- (+ 1 (pow x 2)) x)) (/ (pow x 3) (- (+ 1 (pow x 2)) x))))
(* y (+ (* -1 (/ x y)) (+ (/ 1 (- (+ 1 (pow x 2)) x)) (/ (pow x 3) (- (+ 1 (pow x 2)) x)))))
(* -1 (* y (+ (* -1 (/ (+ 1 (pow x 3)) (- (+ 1 (pow x 2)) x))) (/ x y))))
(* -1 (/ (* y (- (* -1 (pow x 3)) 1)) (- (+ 1 (pow x 2)) x)))
(* -1 (* y (- (* -1 (pow x 3)) 1)))
Outputs
y
(+ y (* -1 (* x (+ 1 (* -1 y)))))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(+ y (* x (- (* -1 (* x (+ y (* -1 y)))) (+ 1 (* -1 y)))))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(+ y (* x (- (* x (- (* x (- y (+ (* -1 y) (* 2 y)))) (+ y (* -1 y)))) (+ 1 (* -1 y)))))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(+ y (* x y))
(fma.f64 y x y)
(+ y (* x (- (* -1 (* x (+ y (* -1 y)))) (* -1 y))))
(fma.f64 y x y)
(+ y (* x (- (* x (- (* x (- y (+ (* -1 y) (* 2 y)))) (+ y (* -1 y)))) (* -1 y))))
(fma.f64 y x y)
(+ y (* (pow x 3) y))
(fma.f64 y (pow.f64 x #s(literal 3 binary64)) y)
(pow x 3)
(pow.f64 x #s(literal 3 binary64))
1
#s(literal 1 binary64)
(+ 1 (* -1 x))
(-.f64 #s(literal 1 binary64) x)
(+ 1 (* x (- x 1)))
(fma.f64 (-.f64 x #s(literal 1 binary64)) x #s(literal 1 binary64))
(* x (- y 1))
(*.f64 (-.f64 y #s(literal 1 binary64)) x)
(* x (- (+ y (/ y x)) 1))
(*.f64 (-.f64 (+.f64 (/.f64 y x) y) #s(literal 1 binary64)) x)
(* x (- (+ y (* -1 (/ (+ y (* -1 y)) (pow x 2)))) (+ 1 (* -1 (/ y x)))))
(*.f64 (-.f64 (+.f64 (/.f64 y x) y) #s(literal 1 binary64)) x)
(* x (- (+ y (/ y (pow x 3))) (+ 1 (+ (* -1 (/ y x)) (+ (* -1 (/ y (pow x 2))) (+ (* -1 (/ y (pow x 3))) (+ (* 2 (/ y (pow x 3))) (/ y (pow x 2)))))))))
(*.f64 (-.f64 (+.f64 (/.f64 y x) y) #s(literal 1 binary64)) x)
(* x y)
(*.f64 y x)
(* x (+ y (/ y x)))
(*.f64 (+.f64 (/.f64 y x) y) x)
(* x (- (+ y (* -1 (/ (+ y (* -1 y)) (pow x 2)))) (* -1 (/ y x))))
(*.f64 (+.f64 (/.f64 y x) y) x)
(* x (- (+ y (/ y (pow x 3))) (+ (* -1 (/ y x)) (+ (* -1 (/ y (pow x 2))) (+ (* -1 (/ y (pow x 3))) (+ (* 2 (/ y (pow x 3))) (/ y (pow x 2))))))))
(*.f64 (+.f64 (/.f64 y x) y) x)
(* (pow x 3) y)
(*.f64 y (pow.f64 x #s(literal 3 binary64)))
(* (pow x 3) (+ y (/ y (pow x 3))))
(*.f64 (+.f64 (/.f64 y (pow.f64 x #s(literal 3 binary64))) y) (pow.f64 x #s(literal 3 binary64)))
(pow x 2)
(*.f64 x x)
(* (pow x 2) (- 1 (/ 1 x)))
(*.f64 (*.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) x)) x) x)
(* (pow x 2) (- (+ 1 (/ 1 (pow x 2))) (/ 1 x)))
(*.f64 (-.f64 (-.f64 (/.f64 (/.f64 #s(literal 1 binary64) x) x) #s(literal -1 binary64)) (/.f64 #s(literal 1 binary64) x)) (*.f64 x x))
(* -1 (* x (+ 1 (* -1 y))))
(*.f64 (-.f64 y #s(literal 1 binary64)) x)
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x))))))
(*.f64 (-.f64 (+.f64 (/.f64 y x) y) #s(literal 1 binary64)) x)
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ (- (+ (* -1 (/ y x)) (/ y x)) (* -1 y)) x))))))
(*.f64 (-.f64 (+.f64 (/.f64 y x) y) #s(literal 1 binary64)) x)
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ (- (* -1 (/ (- (* -1 (/ (+ y (* -1 y)) x)) (+ y (* -1 y))) x)) (* -1 y)) x))))))
(*.f64 (-.f64 (+.f64 (/.f64 y x) y) #s(literal 1 binary64)) x)
(* -1 (* x (+ (* -1 y) (* -1 (/ y x)))))
(*.f64 (+.f64 (/.f64 y x) y) x)
(* -1 (* x (+ (* -1 y) (* -1 (/ (- (+ (* -1 (/ y x)) (/ y x)) (* -1 y)) x)))))
(*.f64 (+.f64 (/.f64 y x) y) x)
(* -1 (* x (+ (* -1 y) (* -1 (/ (- (* -1 (/ (- (* -1 (/ (+ y (* -1 y)) x)) (+ y (* -1 y))) x)) (* -1 y)) x)))))
(*.f64 (+.f64 (/.f64 y x) y) x)
(* -1 (* (pow x 3) (+ (* -1 y) (* -1 (/ y (pow x 3))))))
(*.f64 (+.f64 (/.f64 y (pow.f64 x #s(literal 3 binary64))) y) (pow.f64 x #s(literal 3 binary64)))
(* (pow x 2) (+ 1 (* -1 (/ (- 1 (/ 1 x)) x))))
(*.f64 (*.f64 (-.f64 #s(literal 1 binary64) (/.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) x)) x)) x) x)
(* -1 x)
(neg.f64 x)
(- (* y (+ (/ 1 (- (+ 1 (pow x 2)) x)) (/ (pow x 3) (- (+ 1 (pow x 2)) x)))) x)
(-.f64 (/.f64 (fma.f64 y (pow.f64 x #s(literal 3 binary64)) y) (fma.f64 (-.f64 x #s(literal 1 binary64)) x #s(literal 1 binary64))) x)
(/ (* y (+ 1 (pow x 3))) (- (+ 1 (pow x 2)) x))
(/.f64 (fma.f64 y (pow.f64 x #s(literal 3 binary64)) y) (fma.f64 (-.f64 x #s(literal 1 binary64)) x #s(literal 1 binary64)))
(* y (+ 1 (pow x 3)))
(fma.f64 y (pow.f64 x #s(literal 3 binary64)) y)
(* y (+ (/ 1 (- (+ 1 (pow x 2)) x)) (/ (pow x 3) (- (+ 1 (pow x 2)) x))))
(/.f64 (fma.f64 y (pow.f64 x #s(literal 3 binary64)) y) (fma.f64 (-.f64 x #s(literal 1 binary64)) x #s(literal 1 binary64)))
(* y (+ (* -1 (/ x y)) (+ (/ 1 (- (+ 1 (pow x 2)) x)) (/ (pow x 3) (- (+ 1 (pow x 2)) x)))))
(*.f64 (-.f64 (/.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)) (fma.f64 (-.f64 x #s(literal 1 binary64)) x #s(literal 1 binary64))) (/.f64 x y)) y)
(* -1 (* y (+ (* -1 (/ (+ 1 (pow x 3)) (- (+ 1 (pow x 2)) x))) (/ x y))))
(*.f64 (-.f64 (/.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)) (fma.f64 (-.f64 x #s(literal 1 binary64)) x #s(literal 1 binary64))) (/.f64 x y)) y)
(* -1 (/ (* y (- (* -1 (pow x 3)) 1)) (- (+ 1 (pow x 2)) x)))
(/.f64 (fma.f64 y (pow.f64 x #s(literal 3 binary64)) y) (fma.f64 (-.f64 x #s(literal 1 binary64)) x #s(literal 1 binary64)))
(* -1 (* y (- (* -1 (pow x 3)) 1)))
(fma.f64 y (pow.f64 x #s(literal 3 binary64)) y)

rewrite87.0ms (1.9%)

Memory
-7.7MiB live, 93.0MiB allocated; 13ms collecting garbage
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01959
02558
113633
0125933
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
5 → 115
Calls
Call 1
Inputs
#s(approx (- (/ (* (- (pow x 3) -1) y) (+ (* x x) (- 1 x))) x) (/.f64 (fma.f64 (pow.f64 x #s(literal 3 binary64)) y y) (-.f64 (fma.f64 x x #s(literal 1 binary64)) x)))
(/.f64 (fma.f64 (pow.f64 x #s(literal 3 binary64)) y y) (-.f64 (fma.f64 x x #s(literal 1 binary64)) x))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) y y)
(pow.f64 x #s(literal 3 binary64))
(-.f64 (fma.f64 x x #s(literal 1 binary64)) x)
Outputs
#s(approx (- (/ (* (- (pow x 3) -1) y) (+ (* x x) (- 1 x))) x) (*.f64 y (+.f64 #s(literal 1 binary64) x)))
(*.f64 (/.f64 (fma.f64 (pow.f64 x #s(literal 3 binary64)) y y) (-.f64 (pow.f64 (fma.f64 x x #s(literal 1 binary64)) #s(literal 2 binary64)) (*.f64 x x))) (+.f64 (fma.f64 x x x) #s(literal 1 binary64)))
(*.f64 (/.f64 (fma.f64 (pow.f64 x #s(literal 3 binary64)) y y) (-.f64 (pow.f64 x #s(literal 4 binary64)) (pow.f64 (-.f64 #s(literal 1 binary64) x) #s(literal 2 binary64)))) (+.f64 (fma.f64 x x #s(literal -1 binary64)) x))
(*.f64 (/.f64 (fma.f64 (pow.f64 x #s(literal 3 binary64)) y y) (-.f64 (pow.f64 (fma.f64 x x #s(literal 1 binary64)) #s(literal 3 binary64)) (pow.f64 x #s(literal 3 binary64)))) (fma.f64 x (+.f64 (fma.f64 x x x) #s(literal 1 binary64)) (pow.f64 (fma.f64 x x #s(literal 1 binary64)) #s(literal 2 binary64))))
(*.f64 (/.f64 (fma.f64 (pow.f64 x #s(literal 3 binary64)) y y) (+.f64 (pow.f64 (-.f64 #s(literal 1 binary64) x) #s(literal 3 binary64)) (pow.f64 x #s(literal 6 binary64)))) (fma.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 (-.f64 #s(literal 1 binary64) x) (*.f64 x x)) (pow.f64 x #s(literal 4 binary64))))
(*.f64 (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x))) (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)))
(*.f64 y (+.f64 #s(literal 1 binary64) x))
(*.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)) (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x))))
(/.f64 (*.f64 (-.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal 1 binary64)) (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x)))) (+.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)))
(/.f64 (*.f64 (-.f64 (pow.f64 x #s(literal 9 binary64)) #s(literal -1 binary64)) (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x)))) (fma.f64 #s(literal -1 binary64) (+.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)) (pow.f64 x #s(literal 6 binary64))))
(/.f64 (-.f64 (*.f64 (*.f64 (pow.f64 x #s(literal 3 binary64)) (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x)))) (*.f64 (pow.f64 x #s(literal 3 binary64)) (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x))))) (*.f64 (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x))) (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x))))) (-.f64 (*.f64 (pow.f64 x #s(literal 3 binary64)) (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x)))) (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x)))))
(/.f64 (+.f64 (pow.f64 (*.f64 (pow.f64 x #s(literal 3 binary64)) (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x)))) #s(literal 3 binary64)) (pow.f64 (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x))) #s(literal 3 binary64))) (fma.f64 (*.f64 (pow.f64 x #s(literal 3 binary64)) (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x)))) (*.f64 (pow.f64 x #s(literal 3 binary64)) (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x)))) (-.f64 (*.f64 (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x))) (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x)))) (*.f64 (*.f64 (pow.f64 x #s(literal 3 binary64)) (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x)))) (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x)))))))
(/.f64 (neg.f64 (neg.f64 (fma.f64 (pow.f64 x #s(literal 3 binary64)) y y))) (neg.f64 (neg.f64 (fma.f64 x x (-.f64 #s(literal 1 binary64) x)))))
(/.f64 (*.f64 (-.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal 1 binary64)) y) (*.f64 (+.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)) (fma.f64 x x (-.f64 #s(literal 1 binary64) x))))
(/.f64 (*.f64 (-.f64 (pow.f64 x #s(literal 9 binary64)) #s(literal -1 binary64)) y) (*.f64 (fma.f64 #s(literal -1 binary64) (+.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)) (pow.f64 x #s(literal 6 binary64))) (fma.f64 x x (-.f64 #s(literal 1 binary64) x))))
(/.f64 (fma.f64 (*.f64 (pow.f64 x #s(literal 3 binary64)) y) (fma.f64 x x (-.f64 #s(literal 1 binary64) x)) (*.f64 (fma.f64 x x (-.f64 #s(literal 1 binary64) x)) y)) (*.f64 (fma.f64 x x (-.f64 #s(literal 1 binary64) x)) (fma.f64 x x (-.f64 #s(literal 1 binary64) x))))
(/.f64 (fma.f64 (*.f64 y y) (pow.f64 x #s(literal 6 binary64)) (*.f64 (neg.f64 y) y)) (*.f64 (-.f64 (*.f64 (pow.f64 x #s(literal 3 binary64)) y) y) (fma.f64 x x (-.f64 #s(literal 1 binary64) x))))
(/.f64 (fma.f64 (pow.f64 x #s(literal 9 binary64)) (pow.f64 y #s(literal 3 binary64)) (pow.f64 y #s(literal 3 binary64))) (*.f64 (fma.f64 (*.f64 y y) (pow.f64 x #s(literal 6 binary64)) (*.f64 y (-.f64 y (*.f64 (pow.f64 x #s(literal 3 binary64)) y)))) (fma.f64 x x (-.f64 #s(literal 1 binary64) x))))
(/.f64 (neg.f64 (fma.f64 (pow.f64 x #s(literal 3 binary64)) y y)) (neg.f64 (fma.f64 x x (-.f64 #s(literal 1 binary64) x))))
(/.f64 (fma.f64 (pow.f64 x #s(literal 3 binary64)) y y) (fma.f64 x x (-.f64 #s(literal 1 binary64) x)))
(neg.f64 (/.f64 (neg.f64 (fma.f64 (pow.f64 x #s(literal 3 binary64)) y y)) (fma.f64 x x (-.f64 #s(literal 1 binary64) x))))
(neg.f64 (/.f64 (fma.f64 (pow.f64 x #s(literal 3 binary64)) y y) (neg.f64 (fma.f64 x x (-.f64 #s(literal 1 binary64) x)))))
(fma.f64 (/.f64 y (-.f64 (pow.f64 (fma.f64 x x #s(literal 1 binary64)) #s(literal 2 binary64)) (*.f64 x x))) (+.f64 (fma.f64 x x x) #s(literal 1 binary64)) (*.f64 (pow.f64 x #s(literal 3 binary64)) (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x)))))
(fma.f64 (/.f64 y (-.f64 (pow.f64 x #s(literal 4 binary64)) (pow.f64 (-.f64 #s(literal 1 binary64) x) #s(literal 2 binary64)))) (+.f64 (fma.f64 x x #s(literal -1 binary64)) x) (*.f64 (pow.f64 x #s(literal 3 binary64)) (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x)))))
(fma.f64 (/.f64 y (-.f64 (pow.f64 (fma.f64 x x #s(literal 1 binary64)) #s(literal 3 binary64)) (pow.f64 x #s(literal 3 binary64)))) (fma.f64 x (+.f64 (fma.f64 x x x) #s(literal 1 binary64)) (pow.f64 (fma.f64 x x #s(literal 1 binary64)) #s(literal 2 binary64))) (*.f64 (pow.f64 x #s(literal 3 binary64)) (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x)))))
(fma.f64 (/.f64 y (+.f64 (pow.f64 (-.f64 #s(literal 1 binary64) x) #s(literal 3 binary64)) (pow.f64 x #s(literal 6 binary64)))) (fma.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 (-.f64 #s(literal 1 binary64) x) (*.f64 x x)) (pow.f64 x #s(literal 4 binary64))) (*.f64 (pow.f64 x #s(literal 3 binary64)) (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x)))))
(fma.f64 (/.f64 (*.f64 (pow.f64 x #s(literal 3 binary64)) y) (-.f64 (pow.f64 (fma.f64 x x #s(literal 1 binary64)) #s(literal 2 binary64)) (*.f64 x x))) (+.f64 (fma.f64 x x x) #s(literal 1 binary64)) (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x))))
(fma.f64 (/.f64 (*.f64 (pow.f64 x #s(literal 3 binary64)) y) (-.f64 (pow.f64 x #s(literal 4 binary64)) (pow.f64 (-.f64 #s(literal 1 binary64) x) #s(literal 2 binary64)))) (+.f64 (fma.f64 x x #s(literal -1 binary64)) x) (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x))))
(fma.f64 (/.f64 (*.f64 (pow.f64 x #s(literal 3 binary64)) y) (-.f64 (pow.f64 (fma.f64 x x #s(literal 1 binary64)) #s(literal 3 binary64)) (pow.f64 x #s(literal 3 binary64)))) (fma.f64 x (+.f64 (fma.f64 x x x) #s(literal 1 binary64)) (pow.f64 (fma.f64 x x #s(literal 1 binary64)) #s(literal 2 binary64))) (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x))))
(fma.f64 (/.f64 (*.f64 (pow.f64 x #s(literal 3 binary64)) y) (+.f64 (pow.f64 (-.f64 #s(literal 1 binary64) x) #s(literal 3 binary64)) (pow.f64 x #s(literal 6 binary64)))) (fma.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 (-.f64 #s(literal 1 binary64) x) (*.f64 x x)) (pow.f64 x #s(literal 4 binary64))) (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x))) (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x))))
(fma.f64 y (/.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 x x (-.f64 #s(literal 1 binary64) x))) (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x))))
(+.f64 (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x))) (*.f64 (pow.f64 x #s(literal 3 binary64)) (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x)))))
(+.f64 (*.f64 (pow.f64 x #s(literal 3 binary64)) (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x)))) (/.f64 y (fma.f64 x x (-.f64 #s(literal 1 binary64) x))))
(*.f64 y (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)))
(*.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)) y)
(/.f64 (*.f64 y (-.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal 1 binary64))) (+.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)))
(/.f64 (*.f64 y (-.f64 (pow.f64 x #s(literal 9 binary64)) #s(literal -1 binary64))) (fma.f64 #s(literal -1 binary64) (+.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)) (pow.f64 x #s(literal 6 binary64))))
(/.f64 (-.f64 (*.f64 y y) (pow.f64 (*.f64 (pow.f64 x #s(literal 3 binary64)) y) #s(literal 2 binary64))) (-.f64 y (*.f64 (pow.f64 x #s(literal 3 binary64)) y)))
(/.f64 (neg.f64 (fma.f64 (*.f64 y y) (pow.f64 x #s(literal 6 binary64)) (*.f64 (neg.f64 y) y))) (neg.f64 (-.f64 (*.f64 (pow.f64 x #s(literal 3 binary64)) y) y)))
(/.f64 (neg.f64 (fma.f64 (pow.f64 x #s(literal 9 binary64)) (pow.f64 y #s(literal 3 binary64)) (pow.f64 y #s(literal 3 binary64)))) (neg.f64 (fma.f64 (*.f64 y y) (pow.f64 x #s(literal 6 binary64)) (*.f64 y (-.f64 y (*.f64 (pow.f64 x #s(literal 3 binary64)) y))))))
(/.f64 (*.f64 (-.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal 1 binary64)) y) (+.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)))
(/.f64 (*.f64 (-.f64 (pow.f64 x #s(literal 9 binary64)) #s(literal -1 binary64)) y) (fma.f64 #s(literal -1 binary64) (+.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1 binary64)) (pow.f64 x #s(literal 6 binary64))))
(/.f64 (fma.f64 (*.f64 y y) (pow.f64 x #s(literal 6 binary64)) (*.f64 (neg.f64 y) y)) (-.f64 (*.f64 (pow.f64 x #s(literal 3 binary64)) y) y))
(/.f64 (fma.f64 (pow.f64 x #s(literal 9 binary64)) (pow.f64 y #s(literal 3 binary64)) (pow.f64 y #s(literal 3 binary64))) (fma.f64 y y (-.f64 (pow.f64 (*.f64 (pow.f64 x #s(literal 3 binary64)) y) #s(literal 2 binary64)) (*.f64 (*.f64 (pow.f64 x #s(literal 3 binary64)) y) y))))
(/.f64 (fma.f64 (pow.f64 x #s(literal 9 binary64)) (pow.f64 y #s(literal 3 binary64)) (pow.f64 y #s(literal 3 binary64))) (fma.f64 (*.f64 y y) (pow.f64 x #s(literal 6 binary64)) (*.f64 y (-.f64 y (*.f64 (pow.f64 x #s(literal 3 binary64)) y)))))
(fma.f64 (*.f64 y (pow.f64 x #s(literal 3/2 binary64))) (pow.f64 x #s(literal 3/2 binary64)) y)
(fma.f64 (*.f64 y (*.f64 x x)) x y)
(fma.f64 (*.f64 y x) (*.f64 x x) y)
(fma.f64 (pow.f64 x #s(literal 3/2 binary64)) (*.f64 (pow.f64 x #s(literal 3/2 binary64)) y) y)
(fma.f64 (pow.f64 x #s(literal 3 binary64)) y y)
(fma.f64 (*.f64 x x) (*.f64 x y) y)
(fma.f64 y (pow.f64 x #s(literal 3 binary64)) y)
(fma.f64 x (*.f64 (*.f64 x x) y) y)
(-.f64 (/.f64 (pow.f64 (*.f64 (pow.f64 x #s(literal 3 binary64)) y) #s(literal 2 binary64)) (-.f64 (*.f64 (pow.f64 x #s(literal 3 binary64)) y) y)) (/.f64 (*.f64 y y) (-.f64 (*.f64 (pow.f64 x #s(literal 3 binary64)) y) y)))
(-.f64 y (*.f64 (neg.f64 (pow.f64 x #s(literal 3 binary64))) y))
(-.f64 y (*.f64 (neg.f64 y) (pow.f64 x #s(literal 3 binary64))))
(+.f64 (/.f64 (pow.f64 (*.f64 (pow.f64 x #s(literal 3 binary64)) y) #s(literal 3 binary64)) (fma.f64 (*.f64 y y) (pow.f64 x #s(literal 6 binary64)) (*.f64 y (-.f64 y (*.f64 (pow.f64 x #s(literal 3 binary64)) y))))) (/.f64 (pow.f64 y #s(literal 3 binary64)) (fma.f64 (*.f64 y y) (pow.f64 x #s(literal 6 binary64)) (*.f64 y (-.f64 y (*.f64 (pow.f64 x #s(literal 3 binary64)) y))))))
(+.f64 (*.f64 (pow.f64 x #s(literal 3 binary64)) y) y)
(+.f64 y (*.f64 (pow.f64 x #s(literal 3 binary64)) y))
(*.f64 (*.f64 x (neg.f64 x)) (neg.f64 x))
(*.f64 (*.f64 x (fabs.f64 x)) (fabs.f64 x))
(*.f64 (neg.f64 (pow.f64 x #s(literal 3/2 binary64))) (neg.f64 (pow.f64 x #s(literal 3/2 binary64))))
(*.f64 (fabs.f64 (pow.f64 x #s(literal 3/2 binary64))) (fabs.f64 (pow.f64 x #s(literal 3/2 binary64))))
(*.f64 (pow.f64 x #s(literal 3/2 binary64)) (pow.f64 x #s(literal 3/2 binary64)))
(*.f64 (neg.f64 x) (*.f64 (neg.f64 x) x))
(*.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) x))
(*.f64 (*.f64 x x) x)
(*.f64 x (*.f64 x x))
(pow.f64 (exp.f64 (log.f64 x)) #s(literal 3 binary64))
(pow.f64 (pow.f64 x #s(literal 3/2 binary64)) #s(literal 2 binary64))
(pow.f64 (*.f64 x x) #s(literal 3/2 binary64))
(pow.f64 x #s(literal 3 binary64))
(exp.f64 (*.f64 (log.f64 x) #s(literal 3 binary64)))
(+.f64 (cosh.f64 (*.f64 (log.f64 x) #s(literal 3 binary64))) (sinh.f64 (*.f64 (log.f64 x) #s(literal 3 binary64))))
(/.f64 (-.f64 (pow.f64 (-.f64 #s(literal 1 binary64) x) #s(literal 2 binary64)) (pow.f64 x #s(literal 4 binary64))) (-.f64 (-.f64 #s(literal 1 binary64) x) (*.f64 x x)))
(/.f64 (neg.f64 (-.f64 (pow.f64 (fma.f64 x x #s(literal 1 binary64)) #s(literal 2 binary64)) (*.f64 x x))) (neg.f64 (+.f64 (fma.f64 x x x) #s(literal 1 binary64))))
(/.f64 (neg.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) (pow.f64 (-.f64 #s(literal 1 binary64) x) #s(literal 2 binary64)))) (neg.f64 (+.f64 (fma.f64 x x #s(literal -1 binary64)) x)))
(/.f64 (neg.f64 (-.f64 (pow.f64 (fma.f64 x x #s(literal 1 binary64)) #s(literal 3 binary64)) (pow.f64 x #s(literal 3 binary64)))) (neg.f64 (fma.f64 x (+.f64 (fma.f64 x x x) #s(literal 1 binary64)) (pow.f64 (fma.f64 x x #s(literal 1 binary64)) #s(literal 2 binary64)))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (-.f64 #s(literal 1 binary64) x) #s(literal 3 binary64)) (pow.f64 x #s(literal 6 binary64)))) (neg.f64 (fma.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 (-.f64 #s(literal 1 binary64) x) (*.f64 x x)) (pow.f64 x #s(literal 4 binary64)))))
(/.f64 (-.f64 (pow.f64 (fma.f64 x x #s(literal 1 binary64)) #s(literal 2 binary64)) (*.f64 x x)) (+.f64 (fma.f64 x x x) #s(literal 1 binary64)))
(/.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) (pow.f64 (-.f64 #s(literal 1 binary64) x) #s(literal 2 binary64))) (+.f64 (fma.f64 x x #s(literal -1 binary64)) x))
(/.f64 (-.f64 (pow.f64 (fma.f64 x x #s(literal 1 binary64)) #s(literal 3 binary64)) (pow.f64 x #s(literal 3 binary64))) (fma.f64 x (+.f64 (fma.f64 x x x) #s(literal 1 binary64)) (pow.f64 (fma.f64 x x #s(literal 1 binary64)) #s(literal 2 binary64))))
(/.f64 (+.f64 (pow.f64 (-.f64 #s(literal 1 binary64) x) #s(literal 3 binary64)) (pow.f64 x #s(literal 6 binary64))) (+.f64 (pow.f64 (-.f64 #s(literal 1 binary64) x) #s(literal 2 binary64)) (-.f64 (pow.f64 x #s(literal 4 binary64)) (*.f64 (-.f64 #s(literal 1 binary64) x) (*.f64 x x)))))
(/.f64 (+.f64 (pow.f64 (-.f64 #s(literal 1 binary64) x) #s(literal 3 binary64)) (pow.f64 x #s(literal 6 binary64))) (fma.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 (-.f64 #s(literal 1 binary64) x) (*.f64 x x)) (pow.f64 x #s(literal 4 binary64))))
(fma.f64 (*.f64 (*.f64 x x) #s(literal -1 binary64)) #s(literal -1 binary64) (-.f64 #s(literal 1 binary64) x))
(fma.f64 (*.f64 (neg.f64 x) #s(literal 1 binary64)) (*.f64 (neg.f64 x) #s(literal 1 binary64)) (-.f64 #s(literal 1 binary64) x))
(fma.f64 (*.f64 (neg.f64 x) #s(literal -1 binary64)) (*.f64 (neg.f64 x) #s(literal -1 binary64)) (-.f64 #s(literal 1 binary64) x))
(fma.f64 (*.f64 (fabs.f64 x) #s(literal 1 binary64)) (*.f64 (fabs.f64 x) #s(literal 1 binary64)) (-.f64 #s(literal 1 binary64) x))
(fma.f64 (*.f64 (fabs.f64 x) #s(literal -1 binary64)) (*.f64 (fabs.f64 x) #s(literal -1 binary64)) (-.f64 #s(literal 1 binary64) x))
(fma.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)) (-.f64 #s(literal 1 binary64) x))
(fma.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 x)) (-.f64 #s(literal 1 binary64) x))
(fma.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x)) (-.f64 #s(literal 1 binary64) x))
(fma.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)) (-.f64 #s(literal 1 binary64) x))
(fma.f64 (*.f64 x #s(literal -1 binary64)) (*.f64 x #s(literal -1 binary64)) (-.f64 #s(literal 1 binary64) x))
(fma.f64 (neg.f64 x) (*.f64 (neg.f64 x) #s(literal 1 binary64)) (-.f64 #s(literal 1 binary64) x))
(fma.f64 (neg.f64 x) (neg.f64 x) (-.f64 #s(literal 1 binary64) x))
(fma.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) #s(literal 1 binary64)) (-.f64 #s(literal 1 binary64) x))
(fma.f64 (fabs.f64 x) (fabs.f64 x) (-.f64 #s(literal 1 binary64) x))
(fma.f64 #s(literal 1 binary64) (*.f64 x x) (-.f64 #s(literal 1 binary64) x))
(fma.f64 (*.f64 x x) #s(literal 1 binary64) (-.f64 #s(literal 1 binary64) x))
(fma.f64 x x (-.f64 #s(literal 1 binary64) x))
(-.f64 (/.f64 (pow.f64 (fma.f64 x x #s(literal 1 binary64)) #s(literal 2 binary64)) (+.f64 (fma.f64 x x x) #s(literal 1 binary64))) (/.f64 (*.f64 x x) (+.f64 (fma.f64 x x x) #s(literal 1 binary64))))
(-.f64 (/.f64 (pow.f64 x #s(literal 4 binary64)) (+.f64 (fma.f64 x x #s(literal -1 binary64)) x)) (/.f64 (pow.f64 (-.f64 #s(literal 1 binary64) x) #s(literal 2 binary64)) (+.f64 (fma.f64 x x #s(literal -1 binary64)) x)))
(-.f64 (/.f64 (pow.f64 (fma.f64 x x #s(literal 1 binary64)) #s(literal 3 binary64)) (fma.f64 x (+.f64 (fma.f64 x x x) #s(literal 1 binary64)) (pow.f64 (fma.f64 x x #s(literal 1 binary64)) #s(literal 2 binary64)))) (/.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 x (+.f64 (fma.f64 x x x) #s(literal 1 binary64)) (pow.f64 (fma.f64 x x #s(literal 1 binary64)) #s(literal 2 binary64)))))
(-.f64 (fma.f64 x x #s(literal 1 binary64)) x)
(-.f64 (-.f64 #s(literal 1 binary64) x) (*.f64 (neg.f64 (neg.f64 x)) (neg.f64 x)))
(-.f64 (-.f64 #s(literal 1 binary64) x) (*.f64 (neg.f64 (fabs.f64 x)) (fabs.f64 x)))
(-.f64 (-.f64 #s(literal 1 binary64) x) (*.f64 (neg.f64 x) x))
(-.f64 (-.f64 #s(literal 1 binary64) x) (*.f64 x (neg.f64 x)))
(-.f64 #s(literal 1 binary64) (-.f64 x (*.f64 x x)))
(+.f64 (/.f64 (pow.f64 x #s(literal 6 binary64)) (fma.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 (-.f64 #s(literal 1 binary64) x) (*.f64 x x)) (pow.f64 x #s(literal 4 binary64)))) (/.f64 (pow.f64 (-.f64 #s(literal 1 binary64) x) #s(literal 3 binary64)) (fma.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 (-.f64 #s(literal 1 binary64) x) (*.f64 x x)) (pow.f64 x #s(literal 4 binary64)))))
(+.f64 (-.f64 #s(literal 1 binary64) x) (*.f64 x x))
(+.f64 #s(literal 1 binary64) (-.f64 (*.f64 x x) x))
(+.f64 (*.f64 x x) (-.f64 #s(literal 1 binary64) x))

eval16.0ms (0.4%)

Memory
-17.5MiB live, 29.1MiB allocated; 4ms collecting garbage
Compiler

Compiled 5 457 to 578 computations (89.4% saved)

prune6.0ms (0.1%)

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

8 alts after pruning (3 fresh and 5 done)

PrunedKeptTotal
New1343137
Fresh000
Picked101
Done055
Total1358143
Accuracy
100.0%
Counts
143 → 8
Alt Table
Click to see full alt table
StatusAccuracyProgram
73.8%
(-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x)
100.0%
(-.f64 #s(approx (* (+ x 1) y) (fma.f64 y x y)) x)
60.2%
(-.f64 #s(approx (* (+ x 1) y) (*.f64 y x)) x)
48.2%
#s(approx (- (/ (* (- (pow x 3) -1) y) (+ (* x x) (- 1 x))) x) (/.f64 (fma.f64 (*.f64 y (*.f64 x x)) x y) (-.f64 (fma.f64 x x #s(literal 1 binary64)) x)))
66.7%
#s(approx (- (/ (* (- (pow x 3) -1) y) (+ (* x x) (- 1 x))) x) #s(approx (/ (+ (* (pow x 3) y) y) (- (+ (* x x) 1) x)) (fma.f64 y x y)))
27.6%
#s(approx (- (/ (* (- (pow x 3) -1) y) (+ (* x x) (- 1 x))) x) #s(approx (/ (+ (* (pow x 3) y) y) (- (+ (* x x) 1) x)) (*.f64 y x)))
60.2%
#s(approx (- (* (+ x 1) y) x) (*.f64 (-.f64 y #s(literal 1 binary64)) x))
34.6%
#s(approx (- (* (+ x 1) y) x) (neg.f64 x))
Compiler

Compiled 380 to 167 computations (56.1% saved)

regimes19.0ms (0.4%)

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

3 calls:

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

Compiled 9 to 10 computations (-11.1% saved)

regimes7.0ms (0.2%)

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

3 calls:

2.0ms
y
2.0ms
x
2.0ms
(-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x)
Results
AccuracySegmentsBranch
91.3%3(-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x)
98.9%3x
98.5%3y
Compiler

Compiled 9 to 10 computations (-11.1% saved)

regimes7.0ms (0.1%)

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

3 calls:

2.0ms
x
2.0ms
y
2.0ms
(-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x)
Results
AccuracySegmentsBranch
71.3%2(-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x)
88.4%3y
90.4%3x
Compiler

Compiled 9 to 10 computations (-11.1% saved)

regimes4.0ms (0.1%)

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

2 calls:

2.0ms
y
2.0ms
x
Results
AccuracySegmentsBranch
88.4%3y
69.6%2x
Compiler

Compiled 2 to 4 computations (-100% saved)

regimes36.0ms (0.8%)

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

3 calls:

33.0ms
x
1.0ms
y
1.0ms
(-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x)
Results
AccuracySegmentsBranch
38.2%2x
50.5%3(-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x)
58.8%3y
Compiler

Compiled 9 to 10 computations (-11.1% saved)

regimes3.0ms (0.1%)

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

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

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

3 calls:

1.0ms
(-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x)
1.0ms
y
1.0ms
x
Results
AccuracySegmentsBranch
34.6%1x
34.6%1(-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x)
34.6%1y
Compiler

Compiled 9 to 10 computations (-11.1% saved)

bsearch30.0ms (0.7%)

Memory
26.5MiB live, 71.5MiB allocated; 10ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
11.0ms
2.9906477932777394e-6
1001.7755838503765
16.0ms
-2416.0571827205617
-5.8292287741782993e-5
Samples
12.0ms288×0valid
Compiler

Compiled 406 to 371 computations (8.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 6.0ms
ival-add: 2.0ms (36.2% of total)
ival-mult: 2.0ms (36.2% of total)
ival-sub: 1.0ms (18.1% 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)

bsearch50.0ms (1.1%)

Memory
10.4MiB live, 90.4MiB allocated; 31ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
21.0ms
17747818750613028.0
7.352090912450396e+19
26.0ms
-5.8292287741782993e-5
-2.032159504233436e-19
Samples
35.0ms288×0valid
Compiler

Compiled 928 to 605 computations (34.8% saved)

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

bsearch74.0ms (1.6%)

Memory
-21.2MiB live, 85.8MiB allocated; 30ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
50.0ms
4.189000159534821e-27
1.0486565350903754e-17
19.0ms
-5.702201451619498e-79
-6.970330341344049e-86
Samples
53.0ms288×0valid
Compiler

Compiled 874 to 569 computations (34.9% saved)

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

bsearch41.0ms (0.9%)

Memory
-10.6MiB live, 37.3MiB allocated; 7ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
23.0ms
0.009370437176943747
0.042596190400089
15.0ms
-308.2847589629082
-0.470654468652669
Samples
28.0ms224×0valid
Compiler

Compiled 668 to 445 computations (33.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 21.0ms
ival-add: 17.0ms (79.3% of total)
ival-mult: 2.0ms (9.3% of total)
ival-sub: 1.0ms (4.7% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

simplify58.0ms (1.3%)

Memory
22.3MiB live, 67.6MiB allocated; 5ms collecting garbage
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
058226
198226
2168226
3463226
41541226
56661226
Stop Event
node limit
Calls
Call 1
Inputs
(-.f64 #s(approx (* (+ x 1) y) (fma.f64 y x y)) x)
(if (<=.f64 x #s(literal -1 binary64)) #s(approx (- (* (+ x 1) y) x) (*.f64 (-.f64 y #s(literal 1 binary64)) x)) (if (<=.f64 x #s(literal 1 binary64)) (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) #s(approx (- (* (+ x 1) y) x) (*.f64 (-.f64 y #s(literal 1 binary64)) x))))
(if (<=.f64 x #s(literal -8318957063997755/19807040628566084398385987584 binary64)) #s(approx (- (* (+ x 1) y) x) (*.f64 (-.f64 y #s(literal 1 binary64)) x)) (if (<=.f64 x #s(literal 18000000000000000 binary64)) #s(approx (- (/ (* (- (pow x 3) -1) y) (+ (* x x) (- 1 x))) x) #s(approx (/ (+ (* (pow x 3) y) y) (- (+ (* x x) 1) x)) (fma.f64 y x y))) #s(approx (- (* (+ x 1) y) x) (*.f64 (-.f64 y #s(literal 1 binary64)) x))))
(if (<=.f64 y #s(literal -3827688768370271/34175792574734561318320347298712833833643272357706444319152665725155515612490248800367393390985216 binary64)) #s(approx (- (/ (* (- (pow x 3) -1) y) (+ (* x x) (- 1 x))) x) #s(approx (/ (+ (* (pow x 3) y) y) (- (+ (* x x) 1) x)) (fma.f64 y x y))) (if (<=.f64 y #s(literal 6620178494631905/649037107316853453566312041152512 binary64)) #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) #s(approx (- (/ (* (- (pow x 3) -1) y) (+ (* x x) (- 1 x))) x) #s(approx (/ (+ (* (pow x 3) y) y) (- (+ (* x x) 1) x)) (fma.f64 y x y)))))
(if (<=.f64 y #s(literal -1 binary64)) #s(approx (- (/ (* (- (pow x 3) -1) y) (+ (* x x) (- 1 x))) x) #s(approx (/ (+ (* (pow x 3) y) y) (- (+ (* x x) 1) x)) (*.f64 y x))) (if (<=.f64 y #s(literal 6052837899185947/144115188075855872 binary64)) #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) #s(approx (- (/ (* (- (pow x 3) -1) y) (+ (* x x) (- 1 x))) x) #s(approx (/ (+ (* (pow x 3) y) y) (- (+ (* x x) 1) x)) (*.f64 y x)))))
#s(approx (- (* (+ x 1) y) x) (neg.f64 x))
Outputs
(-.f64 #s(approx (* (+ x 1) y) (fma.f64 y x y)) x)
(if (<=.f64 x #s(literal -1 binary64)) #s(approx (- (* (+ x 1) y) x) (*.f64 (-.f64 y #s(literal 1 binary64)) x)) (if (<=.f64 x #s(literal 1 binary64)) (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) #s(approx (- (* (+ x 1) y) x) (*.f64 (-.f64 y #s(literal 1 binary64)) x))))
(if (or (<=.f64 x #s(literal -1 binary64)) (not (<=.f64 x #s(literal 1 binary64)))) #s(approx (- (* (+ x 1) y) x) (*.f64 (-.f64 y #s(literal 1 binary64)) x)) (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x))
(if (<=.f64 x #s(literal -8318957063997755/19807040628566084398385987584 binary64)) #s(approx (- (* (+ x 1) y) x) (*.f64 (-.f64 y #s(literal 1 binary64)) x)) (if (<=.f64 x #s(literal 18000000000000000 binary64)) #s(approx (- (/ (* (- (pow x 3) -1) y) (+ (* x x) (- 1 x))) x) #s(approx (/ (+ (* (pow x 3) y) y) (- (+ (* x x) 1) x)) (fma.f64 y x y))) #s(approx (- (* (+ x 1) y) x) (*.f64 (-.f64 y #s(literal 1 binary64)) x))))
(if (or (<=.f64 x #s(literal -8318957063997755/19807040628566084398385987584 binary64)) (not (<=.f64 x #s(literal 18000000000000000 binary64)))) #s(approx (- (* (+ x 1) y) x) (*.f64 (-.f64 y #s(literal 1 binary64)) x)) #s(approx (- (/ (* (- (pow x 3) -1) y) (+ (* x x) (- 1 x))) x) #s(approx (/ (+ (* (pow x 3) y) y) (- (+ (* x x) 1) x)) (fma.f64 y x y))))
(if (<=.f64 y #s(literal -3827688768370271/34175792574734561318320347298712833833643272357706444319152665725155515612490248800367393390985216 binary64)) #s(approx (- (/ (* (- (pow x 3) -1) y) (+ (* x x) (- 1 x))) x) #s(approx (/ (+ (* (pow x 3) y) y) (- (+ (* x x) 1) x)) (fma.f64 y x y))) (if (<=.f64 y #s(literal 6620178494631905/649037107316853453566312041152512 binary64)) #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) #s(approx (- (/ (* (- (pow x 3) -1) y) (+ (* x x) (- 1 x))) x) #s(approx (/ (+ (* (pow x 3) y) y) (- (+ (* x x) 1) x)) (fma.f64 y x y)))))
(if (or (<=.f64 y #s(literal -3827688768370271/34175792574734561318320347298712833833643272357706444319152665725155515612490248800367393390985216 binary64)) (not (<=.f64 y #s(literal 6620178494631905/649037107316853453566312041152512 binary64)))) #s(approx (- (/ (* (- (pow x 3) -1) y) (+ (* x x) (- 1 x))) x) #s(approx (/ (+ (* (pow x 3) y) y) (- (+ (* x x) 1) x)) (fma.f64 y x y))) #s(approx (- (* (+ x 1) y) x) (neg.f64 x)))
(if (<=.f64 y #s(literal -1 binary64)) #s(approx (- (/ (* (- (pow x 3) -1) y) (+ (* x x) (- 1 x))) x) #s(approx (/ (+ (* (pow x 3) y) y) (- (+ (* x x) 1) x)) (*.f64 y x))) (if (<=.f64 y #s(literal 6052837899185947/144115188075855872 binary64)) #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) #s(approx (- (/ (* (- (pow x 3) -1) y) (+ (* x x) (- 1 x))) x) #s(approx (/ (+ (* (pow x 3) y) y) (- (+ (* x x) 1) x)) (*.f64 y x)))))
(if (or (<=.f64 y #s(literal -1 binary64)) (not (<=.f64 y #s(literal 6052837899185947/144115188075855872 binary64)))) #s(approx (- (/ (* (- (pow x 3) -1) y) (+ (* x x) (- 1 x))) x) #s(approx (/ (+ (* (pow x 3) y) y) (- (+ (* x x) 1) x)) (*.f64 y x))) #s(approx (- (* (+ x 1) y) x) (neg.f64 x)))
#s(approx (- (* (+ x 1) y) x) (neg.f64 x))

derivations953.0ms (21.2%)

Memory
-8.2MiB live, 601.6MiB allocated; 123ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0126300
1456292
21973288
08171270
0615
0915
13715
027915
0144364
1504354
22108350
08177330
04186
114786
251686
3177886
4582386
0827276
Stop Event
fuel
iter limit
node limit
iter limit
node limit
iter limit
iter limit
iter limit
unsound
iter limit
iter limit
node limit
Compiler

Compiled 226 to 64 computations (71.7% saved)

preprocess43.0ms (1%)

Memory
2.0MiB live, 97.2MiB allocated; 17ms collecting garbage
Compiler

Compiled 466 to 140 computations (70% saved)

end0.0ms (0%)

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

Profiling

Loading profile data...