Data.Colour.SRGB:transferFunction from colour-2.3.3

Time bar (total: 4.0s)

start0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

analyze0.0ms (0%)

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

sample635.0ms (15.8%)

Memory
4.6MiB live, 789.9MiB allocated
Samples
389.0ms8 255×0valid
0.0ms2valid
Precisions
Click to see histograms. Total time spent on operations: 214.0ms
ival-add: 108.0ms (50.4% of total)
ival-mult: 55.0ms (25.7% of total)
ival-sub: 38.0ms (17.7% of total)
ival-true: 5.0ms (2.3% of total)
exact: 4.0ms (1.9% of total)
ival-assert: 3.0ms (1.4% of total)
adjust: 0.0ms (0% of total)
Bogosity

explain62.0ms (1.5%)

Memory
8.5MiB live, 123.4MiB allocated
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
25.0ms512×0valid
Compiler

Compiled 65 to 28 computations (56.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 13.0ms
ival-add: 5.0ms (39% of total)
ival-sub: 4.0ms (31.2% of total)
ival-mult: 3.0ms (23.4% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess52.0ms (1.3%)

Memory
22.0MiB live, 64.4MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01643
13939
212537
350135
4105135
5139835
6145235
7145635
067
097
1157
2277
3587
41097
51957
63937
76197
87067
97127
07126
Stop Event
iter limit
saturated
iter limit
saturated
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)
(fma.f64 y x (-.f64 y x))
Compiler

Compiled 7 to 6 computations (14.3% saved)

eval0.0ms (0%)

Memory
0.4MiB live, 0.4MiB allocated
Compiler

Compiled 0 to 2 computations (-∞% saved)

prune0.0ms (0%)

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

simplify21.0ms (0.5%)

Memory
-15.8MiB live, 20.9MiB allocated
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-diff128
(*.f64 (+.f64 x #s(literal 1 binary64)) y)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0618
0918
11518
22718
35818
410918
519518
639318
761918
870618
971218
071216
Stop Event
iter limit
saturated
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)
(fma.f64 y x (-.f64 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

localize15.0ms (0.4%)

Memory
20.4MiB live, 20.4MiB allocated
Localize:

Found 3 expressions of interest:

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

Compiled 38 to 14 computations (63.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 5.0ms
ival-mult: 2.0ms (43% of total)
ival-sub: 1.0ms (21.5% of total)
ival-add: 1.0ms (21.5% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series4.0ms (0.1%)

Memory
5.8MiB live, 5.8MiB allocated
Counts
3 → 60
Calls
Call 1
Inputs
#s(alt (*.f64 (+.f64 x #s(literal 1 binary64)) y) (patch (*.f64 (+.f64 x #s(literal 1 binary64)) y) #<representation binary64>) () ())
#s(alt (-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x) (patch (-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x) #<representation binary64>) () ())
#s(alt (+.f64 x #s(literal 1 binary64)) (patch (+.f64 x #s(literal 1 binary64)) #<representation binary64>) () ())
Outputs
#s(alt (* y (+ 1 x)) (taylor 0 y) (#s(alt (*.f64 (+.f64 x #s(literal 1 binary64)) y) (patch (*.f64 (+.f64 x #s(literal 1 binary64)) y) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor 0 y) (#s(alt (*.f64 (+.f64 x #s(literal 1 binary64)) y) (patch (*.f64 (+.f64 x #s(literal 1 binary64)) y) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor 0 y) (#s(alt (*.f64 (+.f64 x #s(literal 1 binary64)) y) (patch (*.f64 (+.f64 x #s(literal 1 binary64)) y) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor 0 y) (#s(alt (*.f64 (+.f64 x #s(literal 1 binary64)) y) (patch (*.f64 (+.f64 x #s(literal 1 binary64)) y) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor 0 y) (#s(alt (-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x) (patch (-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x) #<representation binary64>) () ())) ())
#s(alt (- (* y (+ 1 x)) x) (taylor 0 y) (#s(alt (-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x) (patch (-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x) #<representation binary64>) () ())) ())
#s(alt (- (* y (+ 1 x)) x) (taylor 0 y) (#s(alt (-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x) (patch (-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x) #<representation binary64>) () ())) ())
#s(alt (- (* y (+ 1 x)) x) (taylor 0 y) (#s(alt (-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x) (patch (-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor inf y) (#s(alt (*.f64 (+.f64 x #s(literal 1 binary64)) y) (patch (*.f64 (+.f64 x #s(literal 1 binary64)) y) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor inf y) (#s(alt (*.f64 (+.f64 x #s(literal 1 binary64)) y) (patch (*.f64 (+.f64 x #s(literal 1 binary64)) y) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor inf y) (#s(alt (*.f64 (+.f64 x #s(literal 1 binary64)) y) (patch (*.f64 (+.f64 x #s(literal 1 binary64)) y) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor inf y) (#s(alt (*.f64 (+.f64 x #s(literal 1 binary64)) y) (patch (*.f64 (+.f64 x #s(literal 1 binary64)) y) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor inf y) (#s(alt (-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x) (patch (-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 (+ x (* -1 (/ x y))))) (taylor inf y) (#s(alt (-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x) (patch (-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 (+ x (* -1 (/ x y))))) (taylor inf y) (#s(alt (-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x) (patch (-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 (+ x (* -1 (/ x y))))) (taylor inf y) (#s(alt (-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x) (patch (-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor -inf y) (#s(alt (*.f64 (+.f64 x #s(literal 1 binary64)) y) (patch (*.f64 (+.f64 x #s(literal 1 binary64)) y) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor -inf y) (#s(alt (*.f64 (+.f64 x #s(literal 1 binary64)) y) (patch (*.f64 (+.f64 x #s(literal 1 binary64)) y) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor -inf y) (#s(alt (*.f64 (+.f64 x #s(literal 1 binary64)) y) (patch (*.f64 (+.f64 x #s(literal 1 binary64)) y) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor -inf y) (#s(alt (*.f64 (+.f64 x #s(literal 1 binary64)) y) (patch (*.f64 (+.f64 x #s(literal 1 binary64)) y) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor -inf y) (#s(alt (-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x) (patch (-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* y (+ (* -1 (+ 1 x)) (/ x y)))) (taylor -inf y) (#s(alt (-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x) (patch (-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* y (+ (* -1 (+ 1 x)) (/ x y)))) (taylor -inf y) (#s(alt (-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x) (patch (-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* y (+ (* -1 (+ 1 x)) (/ x y)))) (taylor -inf y) (#s(alt (-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x) (patch (-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x) #<representation binary64>) () ())) ())
#s(alt y (taylor 0 x) (#s(alt (*.f64 (+.f64 x #s(literal 1 binary64)) y) (patch (*.f64 (+.f64 x #s(literal 1 binary64)) y) #<representation binary64>) () ())) ())
#s(alt (+ y (* x y)) (taylor 0 x) (#s(alt (*.f64 (+.f64 x #s(literal 1 binary64)) y) (patch (*.f64 (+.f64 x #s(literal 1 binary64)) y) #<representation binary64>) () ())) ())
#s(alt (+ y (* x y)) (taylor 0 x) (#s(alt (*.f64 (+.f64 x #s(literal 1 binary64)) y) (patch (*.f64 (+.f64 x #s(literal 1 binary64)) y) #<representation binary64>) () ())) ())
#s(alt (+ y (* x y)) (taylor 0 x) (#s(alt (*.f64 (+.f64 x #s(literal 1 binary64)) y) (patch (*.f64 (+.f64 x #s(literal 1 binary64)) y) #<representation binary64>) () ())) ())
#s(alt y (taylor 0 x) (#s(alt (-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x) (patch (-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x) #<representation binary64>) () ())) ())
#s(alt (+ y (* x (- y 1))) (taylor 0 x) (#s(alt (-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x) (patch (-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x) #<representation binary64>) () ())) ())
#s(alt (+ y (* x (- y 1))) (taylor 0 x) (#s(alt (-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x) (patch (-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x) #<representation binary64>) () ())) ())
#s(alt (+ y (* x (- y 1))) (taylor 0 x) (#s(alt (-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x) (patch (-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x) #<representation binary64>) () ())) ())
#s(alt 1 (taylor 0 x) (#s(alt (+.f64 x #s(literal 1 binary64)) (patch (+.f64 x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 x) (taylor 0 x) (#s(alt (+.f64 x #s(literal 1 binary64)) (patch (+.f64 x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 x) (taylor 0 x) (#s(alt (+.f64 x #s(literal 1 binary64)) (patch (+.f64 x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 x) (taylor 0 x) (#s(alt (+.f64 x #s(literal 1 binary64)) (patch (+.f64 x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor inf x) (#s(alt (*.f64 (+.f64 x #s(literal 1 binary64)) y) (patch (*.f64 (+.f64 x #s(literal 1 binary64)) y) #<representation binary64>) () ())) ())
#s(alt (* x (+ y (/ y x))) (taylor inf x) (#s(alt (*.f64 (+.f64 x #s(literal 1 binary64)) y) (patch (*.f64 (+.f64 x #s(literal 1 binary64)) y) #<representation binary64>) () ())) ())
#s(alt (* x (+ y (/ y x))) (taylor inf x) (#s(alt (*.f64 (+.f64 x #s(literal 1 binary64)) y) (patch (*.f64 (+.f64 x #s(literal 1 binary64)) y) #<representation binary64>) () ())) ())
#s(alt (* x (+ y (/ y x))) (taylor inf x) (#s(alt (*.f64 (+.f64 x #s(literal 1 binary64)) y) (patch (*.f64 (+.f64 x #s(literal 1 binary64)) y) #<representation binary64>) () ())) ())
#s(alt (* x (- y 1)) (taylor inf x) (#s(alt (-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x) (patch (-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x) #<representation binary64>) () ())) ())
#s(alt (* x (- (+ y (/ y x)) 1)) (taylor inf x) (#s(alt (-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x) (patch (-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x) #<representation binary64>) () ())) ())
#s(alt (* x (- (+ y (/ y x)) 1)) (taylor inf x) (#s(alt (-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x) (patch (-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x) #<representation binary64>) () ())) ())
#s(alt (* x (- (+ y (/ y x)) 1)) (taylor inf x) (#s(alt (-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x) (patch (-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x) #<representation binary64>) () ())) ())
#s(alt x (taylor inf x) (#s(alt (+.f64 x #s(literal 1 binary64)) (patch (+.f64 x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (/ 1 x))) (taylor inf x) (#s(alt (+.f64 x #s(literal 1 binary64)) (patch (+.f64 x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (/ 1 x))) (taylor inf x) (#s(alt (+.f64 x #s(literal 1 binary64)) (patch (+.f64 x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (/ 1 x))) (taylor inf x) (#s(alt (+.f64 x #s(literal 1 binary64)) (patch (+.f64 x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor -inf x) (#s(alt (*.f64 (+.f64 x #s(literal 1 binary64)) y) (patch (*.f64 (+.f64 x #s(literal 1 binary64)) y) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ (* -1 y) (* -1 (/ y x))))) (taylor -inf x) (#s(alt (*.f64 (+.f64 x #s(literal 1 binary64)) y) (patch (*.f64 (+.f64 x #s(literal 1 binary64)) y) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ (* -1 y) (* -1 (/ y x))))) (taylor -inf x) (#s(alt (*.f64 (+.f64 x #s(literal 1 binary64)) y) (patch (*.f64 (+.f64 x #s(literal 1 binary64)) y) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ (* -1 y) (* -1 (/ y x))))) (taylor -inf x) (#s(alt (*.f64 (+.f64 x #s(literal 1 binary64)) y) (patch (*.f64 (+.f64 x #s(literal 1 binary64)) y) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ 1 (* -1 y)))) (taylor -inf x) (#s(alt (-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x) (patch (-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x)))))) (taylor -inf x) (#s(alt (-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x) (patch (-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x)))))) (taylor -inf x) (#s(alt (-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x) (patch (-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x)))))) (taylor -inf x) (#s(alt (-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x) (patch (-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x) #<representation binary64>) () ())) ())
#s(alt x (taylor -inf x) (#s(alt (+.f64 x #s(literal 1 binary64)) (patch (+.f64 x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (/ 1 x))) (taylor -inf x) (#s(alt (+.f64 x #s(literal 1 binary64)) (patch (+.f64 x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (/ 1 x))) (taylor -inf x) (#s(alt (+.f64 x #s(literal 1 binary64)) (patch (+.f64 x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (/ 1 x))) (taylor -inf x) (#s(alt (+.f64 x #s(literal 1 binary64)) (patch (+.f64 x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
Calls

6 calls:

TimeVariablePointExpression
1.0ms
y
@inf
((* (+ x 1) y) (- (* (+ x 1) y) x) (+ x 1))
1.0ms
y
@0
((* (+ x 1) y) (- (* (+ x 1) y) x) (+ x 1))
1.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))
0.0ms
x
@-inf
((* (+ x 1) y) (- (* (+ x 1) y) x) (+ x 1))

simplify168.0ms (4.2%)

Memory
-21.5MiB live, 102.5MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
041291
1140291
2379291
31034291
42586291
53919291
64685291
75628291
86155291
96717291
107760291
08169250
Stop Event
iter limit
node limit
Counts
60 → 56
Calls
Call 1
Inputs
(* y (+ 1 x))
(* y (+ 1 x))
(* y (+ 1 x))
(* y (+ 1 x))
(* -1 x)
(- (* y (+ 1 x)) x)
(- (* y (+ 1 x)) x)
(- (* y (+ 1 x)) x)
(* y (+ 1 x))
(* y (+ 1 x))
(* y (+ 1 x))
(* y (+ 1 x))
(* y (+ 1 x))
(* y (+ 1 (+ x (* -1 (/ x y)))))
(* y (+ 1 (+ x (* -1 (/ x y)))))
(* y (+ 1 (+ x (* -1 (/ x y)))))
(* y (+ 1 x))
(* y (+ 1 x))
(* y (+ 1 x))
(* y (+ 1 x))
(* y (+ 1 x))
(* -1 (* y (+ (* -1 (+ 1 x)) (/ x y))))
(* -1 (* y (+ (* -1 (+ 1 x)) (/ x y))))
(* -1 (* y (+ (* -1 (+ 1 x)) (/ x y))))
y
(+ y (* x y))
(+ y (* x y))
(+ y (* x y))
y
(+ y (* x (- y 1)))
(+ y (* x (- y 1)))
(+ y (* x (- y 1)))
1
(+ 1 x)
(+ 1 x)
(+ 1 x)
(* x y)
(* x (+ y (/ y x)))
(* x (+ y (/ y x)))
(* x (+ y (/ y x)))
(* x (- y 1))
(* x (- (+ y (/ y x)) 1))
(* x (- (+ y (/ y x)) 1))
(* x (- (+ y (/ y x)) 1))
x
(* x (+ 1 (/ 1 x)))
(* x (+ 1 (/ 1 x)))
(* x (+ 1 (/ 1 x)))
(* x y)
(* -1 (* x (+ (* -1 y) (* -1 (/ y x)))))
(* -1 (* x (+ (* -1 y) (* -1 (/ y x)))))
(* -1 (* x (+ (* -1 y) (* -1 (/ y x)))))
(* -1 (* x (+ 1 (* -1 y))))
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x))))))
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x))))))
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x))))))
x
(* x (+ 1 (/ 1 x)))
(* x (+ 1 (/ 1 x)))
(* x (+ 1 (/ 1 x)))
Outputs
(* y (+ 1 x))
(fma.f64 x y y)
(* y (+ 1 x))
(fma.f64 x y y)
(* y (+ 1 x))
(fma.f64 x y y)
(* y (+ 1 x))
(fma.f64 x y y)
(* -1 x)
(neg.f64 x)
(- (* y (+ 1 x)) x)
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(- (* y (+ 1 x)) x)
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(- (* y (+ 1 x)) x)
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* y (+ 1 x))
(fma.f64 x y y)
(* y (+ 1 x))
(fma.f64 x y y)
(* y (+ 1 x))
(fma.f64 x y y)
(* y (+ 1 x))
(fma.f64 x y y)
(* y (+ 1 x))
(fma.f64 x y y)
(* y (+ 1 (+ x (* -1 (/ x y)))))
(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)
(* y (+ 1 (+ x (* -1 (/ x y)))))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* y (+ 1 x))
(fma.f64 x y y)
(* y (+ 1 x))
(fma.f64 x y y)
(* y (+ 1 x))
(fma.f64 x y y)
(* y (+ 1 x))
(fma.f64 x y y)
(* y (+ 1 x))
(fma.f64 x y y)
(* -1 (* y (+ (* -1 (+ 1 x)) (/ 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)
(* -1 (* y (+ (* -1 (+ 1 x)) (/ x y))))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
y
(+ y (* x y))
(fma.f64 x y y)
(+ y (* x y))
(fma.f64 x y y)
(+ y (* x y))
(fma.f64 x y y)
y
(+ y (* x (- y 1)))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(+ y (* x (- y 1)))
(fma.f64 (-.f64 y #s(literal 1 binary64)) 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))
(+ 1 x)
(-.f64 x #s(literal -1 binary64))
(+ 1 x)
(-.f64 x #s(literal -1 binary64))
(* x y)
(*.f64 x y)
(* x (+ y (/ y x)))
(fma.f64 x y y)
(* x (+ y (/ y x)))
(fma.f64 x y y)
(* x (+ y (/ y x)))
(fma.f64 x y y)
(* x (- y 1))
(fma.f64 x y (neg.f64 x))
(* x (- (+ y (/ y x)) 1))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* x (- (+ y (/ y x)) 1))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* 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))
(* x (+ 1 (/ 1 x)))
(-.f64 x #s(literal -1 binary64))
(* x (+ 1 (/ 1 x)))
(-.f64 x #s(literal -1 binary64))
(* x y)
(*.f64 x y)
(* -1 (* x (+ (* -1 y) (* -1 (/ y x)))))
(fma.f64 x y y)
(* -1 (* x (+ (* -1 y) (* -1 (/ y x)))))
(fma.f64 x y y)
(* -1 (* x (+ (* -1 y) (* -1 (/ y x)))))
(fma.f64 x y y)
(* -1 (* x (+ 1 (* -1 y))))
(fma.f64 x y (neg.f64 x))
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x))))))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x))))))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x))))))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
x
(* x (+ 1 (/ 1 x)))
(-.f64 x #s(literal -1 binary64))
(* x (+ 1 (/ 1 x)))
(-.f64 x #s(literal -1 binary64))
(* x (+ 1 (/ 1 x)))
(-.f64 x #s(literal -1 binary64))

rewrite179.0ms (4.5%)

Memory
19.7MiB live, 211.9MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0615
0915
13815
226915
3336415
0852513
Stop Event
iter limit
node limit
iter limit
Counts
3 → 328
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
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

eval112.0ms (2.8%)

Memory
-15.3MiB live, 104.7MiB allocated
Compiler

Compiled 7 966 to 1 057 computations (86.7% saved)

prune6.0ms (0.2%)

Memory
20.1MiB live, 20.1MiB allocated
Pruning

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New3804384
Fresh000
Picked101
Done000
Total3814385
Accuracy
100.0%
Counts
385 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
74.2%
(-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x)
57.6%
(-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x)
71.0%
#s(approx (- (* (+ x 1) y) x) (fma.f64 x y y))
31.7%
#s(approx (- (* (+ x 1) y) x) (neg.f64 x))
Compiler

Compiled 20 to 19 computations (5% saved)

simplify40.0ms (1%)

Memory
-24.3MiB live, 14.3MiB allocated
Algorithm
egg-herbie
Localize:

Found 10 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 x y)
cost-diff0
#s(approx (* (+ x 1) y) (*.f64 x y))
cost-diff0
(-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x)
cost-diff0
(fma.f64 x y y)
cost-diff0
#s(approx (- (* (+ x 1) y) x) (fma.f64 x y y))
cost-diff0
(neg.f64 x)
cost-diff0
#s(approx (- (* (+ x 1) y) x) (neg.f64 x))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01680
02276
13676
26176
39476
417276
533176
658476
781276
890476
991276
091276
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
#s(approx (- (* (+ x 1) y) x) (neg.f64 x))
(neg.f64 x)
x
#s(approx (- (* (+ x 1) y) x) (fma.f64 x y y))
(fma.f64 x y y)
x
y
(-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x)
#s(approx (* (+ x 1) y) (*.f64 x y))
(*.f64 x y)
x
y
(-.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
#s(approx (- (* (+ x 1) y) x) (neg.f64 x))
(neg.f64 x)
x
#s(approx (- (* (+ x 1) y) x) (fma.f64 x y y))
#s(approx (- (* (+ x 1) y) x) (fma.f64 y x y))
(fma.f64 x y y)
(fma.f64 y x y)
x
y
(-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x)
(-.f64 #s(approx (* (+ x 1) y) (*.f64 y x)) x)
#s(approx (* (+ x 1) y) (*.f64 x y))
#s(approx (* (+ x 1) y) (*.f64 y x))
(*.f64 x y)
(*.f64 y x)
x
y
(-.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

localize45.0ms (1.1%)

Memory
7.0MiB live, 43.3MiB allocated
Localize:

Found 10 expressions of interest:

NewMetricScoreProgram
accuracy0
(-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x)
accuracy0.0078125
(*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y)
accuracy27.78124208847674
#s(approx (+ x 1) #s(literal 1 binary64))
accuracy0
(-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x)
accuracy0
(*.f64 x y)
accuracy34.37957534015069
#s(approx (* (+ x 1) y) (*.f64 x y))
accuracy0
(fma.f64 x y y)
accuracy18.56732855690373
#s(approx (- (* (+ x 1) y) x) (fma.f64 x y y))
accuracy0
(neg.f64 x)
accuracy43.69752020296967
#s(approx (- (* (+ x 1) y) x) (neg.f64 x))
Samples
35.0ms256×0valid
Compiler

Compiled 108 to 24 computations (77.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 26.0ms
ival-mult: 20.0ms (77.6% of total)
ival-add: 3.0ms (11.6% of total)
ival-sub: 1.0ms (3.9% of total)
ival-neg: 1.0ms (3.9% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series12.0ms (0.3%)

Memory
-4.8MiB live, 31.2MiB allocated
Counts
10 → 216
Calls
Call 1
Inputs
#s(alt #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) (patch #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) #<representation binary64>) () ())
#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())
#s(alt #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) (patch #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) #<representation binary64>) () ())
#s(alt (fma.f64 x y y) (patch (fma.f64 x y y) #<representation binary64>) () ())
#s(alt (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) (patch (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) #<representation binary64>) () ())
#s(alt #s(approx (* (+ x 1) y) (*.f64 x y)) (patch #s(approx (* (+ x 1) y) (*.f64 x y)) #<representation binary64>) () ())
#s(alt (*.f64 x y) (patch (*.f64 x y) #<representation binary64>) () ())
#s(alt (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) (patch (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) #<representation binary64>) () ())
#s(alt (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) (patch (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) #<representation binary64>) () ())
#s(alt #s(approx (+ x 1) #s(literal 1 binary64)) (patch #s(approx (+ x 1) #s(literal 1 binary64)) #<representation binary64>) () ())
Outputs
#s(alt (* -1 x) (taylor 0 y) (#s(alt #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) (patch #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) #<representation binary64>) () ())) ())
#s(alt (- (* y (+ 1 x)) x) (taylor 0 y) (#s(alt #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) (patch #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) #<representation binary64>) () ())) ())
#s(alt (- (* y (+ 1 x)) x) (taylor 0 y) (#s(alt #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) (patch #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) #<representation binary64>) () ())) ())
#s(alt (- (* y (+ 1 x)) x) (taylor 0 y) (#s(alt #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) (patch #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor 0 y) (#s(alt #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) (patch #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) #<representation binary64>) () ())) ())
#s(alt (- (* y (+ 1 x)) x) (taylor 0 y) (#s(alt #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) (patch #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) #<representation binary64>) () ())) ())
#s(alt (- (* y (+ 1 x)) x) (taylor 0 y) (#s(alt #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) (patch #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) #<representation binary64>) () ())) ())
#s(alt (- (* y (+ 1 x)) x) (taylor 0 y) (#s(alt #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) (patch #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor 0 y) (#s(alt (fma.f64 x y y) (patch (fma.f64 x y y) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor 0 y) (#s(alt (fma.f64 x y y) (patch (fma.f64 x y y) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor 0 y) (#s(alt (fma.f64 x y y) (patch (fma.f64 x y y) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor 0 y) (#s(alt (fma.f64 x y y) (patch (fma.f64 x y y) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor 0 y) (#s(alt (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) (patch (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) #<representation binary64>) () ())) ())
#s(alt (- (* y (+ 1 x)) x) (taylor 0 y) (#s(alt (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) (patch (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) #<representation binary64>) () ())) ())
#s(alt (- (* y (+ 1 x)) x) (taylor 0 y) (#s(alt (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) (patch (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) #<representation binary64>) () ())) ())
#s(alt (- (* y (+ 1 x)) x) (taylor 0 y) (#s(alt (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) (patch (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor 0 y) (#s(alt #s(approx (* (+ x 1) y) (*.f64 x y)) (patch #s(approx (* (+ x 1) y) (*.f64 x y)) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor 0 y) (#s(alt #s(approx (* (+ x 1) y) (*.f64 x y)) (patch #s(approx (* (+ x 1) y) (*.f64 x y)) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor 0 y) (#s(alt #s(approx (* (+ x 1) y) (*.f64 x y)) (patch #s(approx (* (+ x 1) y) (*.f64 x y)) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor 0 y) (#s(alt #s(approx (* (+ x 1) y) (*.f64 x y)) (patch #s(approx (* (+ x 1) y) (*.f64 x y)) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor 0 y) (#s(alt (*.f64 x y) (patch (*.f64 x y) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor 0 y) (#s(alt (*.f64 x y) (patch (*.f64 x y) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor 0 y) (#s(alt (*.f64 x y) (patch (*.f64 x y) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor 0 y) (#s(alt (*.f64 x y) (patch (*.f64 x y) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor 0 y) (#s(alt (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) (patch (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) #<representation binary64>) () ())) ())
#s(alt (- (* y (+ 1 x)) x) (taylor 0 y) (#s(alt (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) (patch (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) #<representation binary64>) () ())) ())
#s(alt (- (* y (+ 1 x)) x) (taylor 0 y) (#s(alt (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) (patch (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) #<representation binary64>) () ())) ())
#s(alt (- (* y (+ 1 x)) x) (taylor 0 y) (#s(alt (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) (patch (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor 0 y) (#s(alt (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) (patch (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor 0 y) (#s(alt (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) (patch (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor 0 y) (#s(alt (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) (patch (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor 0 y) (#s(alt (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) (patch (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor inf y) (#s(alt #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) (patch #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 (+ x (* -1 (/ x y))))) (taylor inf y) (#s(alt #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) (patch #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 (+ x (* -1 (/ x y))))) (taylor inf y) (#s(alt #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) (patch #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 (+ x (* -1 (/ x y))))) (taylor inf y) (#s(alt #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) (patch #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor inf y) (#s(alt #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) (patch #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 (+ x (* -1 (/ x y))))) (taylor inf y) (#s(alt #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) (patch #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 (+ x (* -1 (/ x y))))) (taylor inf y) (#s(alt #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) (patch #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 (+ x (* -1 (/ x y))))) (taylor inf y) (#s(alt #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) (patch #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor inf y) (#s(alt (fma.f64 x y y) (patch (fma.f64 x y y) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor inf y) (#s(alt (fma.f64 x y y) (patch (fma.f64 x y y) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor inf y) (#s(alt (fma.f64 x y y) (patch (fma.f64 x y y) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor inf y) (#s(alt (fma.f64 x y y) (patch (fma.f64 x y y) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor inf y) (#s(alt (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) (patch (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 (+ x (* -1 (/ x y))))) (taylor inf y) (#s(alt (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) (patch (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 (+ x (* -1 (/ x y))))) (taylor inf y) (#s(alt (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) (patch (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 (+ x (* -1 (/ x y))))) (taylor inf y) (#s(alt (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) (patch (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor inf y) (#s(alt #s(approx (* (+ x 1) y) (*.f64 x y)) (patch #s(approx (* (+ x 1) y) (*.f64 x y)) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor inf y) (#s(alt #s(approx (* (+ x 1) y) (*.f64 x y)) (patch #s(approx (* (+ x 1) y) (*.f64 x y)) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor inf y) (#s(alt #s(approx (* (+ x 1) y) (*.f64 x y)) (patch #s(approx (* (+ x 1) y) (*.f64 x y)) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor inf y) (#s(alt #s(approx (* (+ x 1) y) (*.f64 x y)) (patch #s(approx (* (+ x 1) y) (*.f64 x y)) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor inf y) (#s(alt (*.f64 x y) (patch (*.f64 x y) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor inf y) (#s(alt (*.f64 x y) (patch (*.f64 x y) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor inf y) (#s(alt (*.f64 x y) (patch (*.f64 x y) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor inf y) (#s(alt (*.f64 x y) (patch (*.f64 x y) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor inf y) (#s(alt (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) (patch (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 (+ x (* -1 (/ x y))))) (taylor inf y) (#s(alt (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) (patch (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 (+ x (* -1 (/ x y))))) (taylor inf y) (#s(alt (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) (patch (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 (+ x (* -1 (/ x y))))) (taylor inf y) (#s(alt (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) (patch (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor inf y) (#s(alt (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) (patch (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor inf y) (#s(alt (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) (patch (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor inf y) (#s(alt (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) (patch (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor inf y) (#s(alt (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) (patch (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor -inf y) (#s(alt #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) (patch #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* y (+ (* -1 (+ 1 x)) (/ x y)))) (taylor -inf y) (#s(alt #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) (patch #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* y (+ (* -1 (+ 1 x)) (/ x y)))) (taylor -inf y) (#s(alt #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) (patch #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* y (+ (* -1 (+ 1 x)) (/ x y)))) (taylor -inf y) (#s(alt #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) (patch #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor -inf y) (#s(alt #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) (patch #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* y (+ (* -1 (+ 1 x)) (/ x y)))) (taylor -inf y) (#s(alt #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) (patch #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* y (+ (* -1 (+ 1 x)) (/ x y)))) (taylor -inf y) (#s(alt #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) (patch #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* y (+ (* -1 (+ 1 x)) (/ x y)))) (taylor -inf y) (#s(alt #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) (patch #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* y (- (* -1 x) 1))) (taylor -inf y) (#s(alt (fma.f64 x y y) (patch (fma.f64 x y y) #<representation binary64>) () ())) ())
#s(alt (* -1 (* y (- (* -1 x) 1))) (taylor -inf y) (#s(alt (fma.f64 x y y) (patch (fma.f64 x y y) #<representation binary64>) () ())) ())
#s(alt (* -1 (* y (- (* -1 x) 1))) (taylor -inf y) (#s(alt (fma.f64 x y y) (patch (fma.f64 x y y) #<representation binary64>) () ())) ())
#s(alt (* -1 (* y (- (* -1 x) 1))) (taylor -inf y) (#s(alt (fma.f64 x y y) (patch (fma.f64 x y y) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor -inf y) (#s(alt (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) (patch (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* y (+ (* -1 (+ 1 x)) (/ x y)))) (taylor -inf y) (#s(alt (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) (patch (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* y (+ (* -1 (+ 1 x)) (/ x y)))) (taylor -inf y) (#s(alt (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) (patch (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* y (+ (* -1 (+ 1 x)) (/ x y)))) (taylor -inf y) (#s(alt (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) (patch (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor -inf y) (#s(alt #s(approx (* (+ x 1) y) (*.f64 x y)) (patch #s(approx (* (+ x 1) y) (*.f64 x y)) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor -inf y) (#s(alt #s(approx (* (+ x 1) y) (*.f64 x y)) (patch #s(approx (* (+ x 1) y) (*.f64 x y)) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor -inf y) (#s(alt #s(approx (* (+ x 1) y) (*.f64 x y)) (patch #s(approx (* (+ x 1) y) (*.f64 x y)) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor -inf y) (#s(alt #s(approx (* (+ x 1) y) (*.f64 x y)) (patch #s(approx (* (+ x 1) y) (*.f64 x y)) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor -inf y) (#s(alt (*.f64 x y) (patch (*.f64 x y) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor -inf y) (#s(alt (*.f64 x y) (patch (*.f64 x y) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor -inf y) (#s(alt (*.f64 x y) (patch (*.f64 x y) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor -inf y) (#s(alt (*.f64 x y) (patch (*.f64 x y) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor -inf y) (#s(alt (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) (patch (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* y (+ (* -1 (+ 1 x)) (/ x y)))) (taylor -inf y) (#s(alt (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) (patch (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* y (+ (* -1 (+ 1 x)) (/ x y)))) (taylor -inf y) (#s(alt (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) (patch (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* y (+ (* -1 (+ 1 x)) (/ x y)))) (taylor -inf y) (#s(alt (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) (patch (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor -inf y) (#s(alt (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) (patch (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor -inf y) (#s(alt (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) (patch (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor -inf y) (#s(alt (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) (patch (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor -inf y) (#s(alt (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) (patch (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) #<representation binary64>) () ())) ())
#s(alt y (taylor 0 x) (#s(alt #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) (patch #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) #<representation binary64>) () ())) ())
#s(alt (+ y (* x (- y 1))) (taylor 0 x) (#s(alt #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) (patch #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) #<representation binary64>) () ())) ())
#s(alt (+ y (* x (- y 1))) (taylor 0 x) (#s(alt #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) (patch #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) #<representation binary64>) () ())) ())
#s(alt (+ y (* x (- y 1))) (taylor 0 x) (#s(alt #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) (patch #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor 0 x) (#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor 0 x) (#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor 0 x) (#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor 0 x) (#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt y (taylor 0 x) (#s(alt #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) (patch #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) #<representation binary64>) () ())) ())
#s(alt (+ y (* x (- y 1))) (taylor 0 x) (#s(alt #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) (patch #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) #<representation binary64>) () ())) ())
#s(alt (+ y (* x (- y 1))) (taylor 0 x) (#s(alt #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) (patch #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) #<representation binary64>) () ())) ())
#s(alt (+ y (* x (- y 1))) (taylor 0 x) (#s(alt #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) (patch #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) #<representation binary64>) () ())) ())
#s(alt y (taylor 0 x) (#s(alt (fma.f64 x y y) (patch (fma.f64 x y y) #<representation binary64>) () ())) ())
#s(alt (+ y (* x y)) (taylor 0 x) (#s(alt (fma.f64 x y y) (patch (fma.f64 x y y) #<representation binary64>) () ())) ())
#s(alt (+ y (* x y)) (taylor 0 x) (#s(alt (fma.f64 x y y) (patch (fma.f64 x y y) #<representation binary64>) () ())) ())
#s(alt (+ y (* x y)) (taylor 0 x) (#s(alt (fma.f64 x y y) (patch (fma.f64 x y y) #<representation binary64>) () ())) ())
#s(alt y (taylor 0 x) (#s(alt (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) (patch (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) #<representation binary64>) () ())) ())
#s(alt (+ y (* x (- y 1))) (taylor 0 x) (#s(alt (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) (patch (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) #<representation binary64>) () ())) ())
#s(alt (+ y (* x (- y 1))) (taylor 0 x) (#s(alt (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) (patch (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) #<representation binary64>) () ())) ())
#s(alt (+ y (* x (- y 1))) (taylor 0 x) (#s(alt (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) (patch (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) #<representation binary64>) () ())) ())
#s(alt y (taylor 0 x) (#s(alt #s(approx (* (+ x 1) y) (*.f64 x y)) (patch #s(approx (* (+ x 1) y) (*.f64 x y)) #<representation binary64>) () ())) ())
#s(alt (+ y (* x y)) (taylor 0 x) (#s(alt #s(approx (* (+ x 1) y) (*.f64 x y)) (patch #s(approx (* (+ x 1) y) (*.f64 x y)) #<representation binary64>) () ())) ())
#s(alt (+ y (* x y)) (taylor 0 x) (#s(alt #s(approx (* (+ x 1) y) (*.f64 x y)) (patch #s(approx (* (+ x 1) y) (*.f64 x y)) #<representation binary64>) () ())) ())
#s(alt (+ y (* x y)) (taylor 0 x) (#s(alt #s(approx (* (+ x 1) y) (*.f64 x y)) (patch #s(approx (* (+ x 1) y) (*.f64 x y)) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor 0 x) (#s(alt (*.f64 x y) (patch (*.f64 x y) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor 0 x) (#s(alt (*.f64 x y) (patch (*.f64 x y) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor 0 x) (#s(alt (*.f64 x y) (patch (*.f64 x y) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor 0 x) (#s(alt (*.f64 x y) (patch (*.f64 x y) #<representation binary64>) () ())) ())
#s(alt y (taylor 0 x) (#s(alt (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) (patch (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) #<representation binary64>) () ())) ())
#s(alt (+ y (* x (- y 1))) (taylor 0 x) (#s(alt (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) (patch (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) #<representation binary64>) () ())) ())
#s(alt (+ y (* x (- y 1))) (taylor 0 x) (#s(alt (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) (patch (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) #<representation binary64>) () ())) ())
#s(alt (+ y (* x (- y 1))) (taylor 0 x) (#s(alt (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) (patch (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) #<representation binary64>) () ())) ())
#s(alt y (taylor 0 x) (#s(alt (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) (patch (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) #<representation binary64>) () ())) ())
#s(alt (+ y (* x y)) (taylor 0 x) (#s(alt (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) (patch (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) #<representation binary64>) () ())) ())
#s(alt (+ y (* x y)) (taylor 0 x) (#s(alt (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) (patch (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) #<representation binary64>) () ())) ())
#s(alt (+ y (* x y)) (taylor 0 x) (#s(alt (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) (patch (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) #<representation binary64>) () ())) ())
#s(alt 1 (taylor 0 x) (#s(alt #s(approx (+ x 1) #s(literal 1 binary64)) (patch #s(approx (+ x 1) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 x) (taylor 0 x) (#s(alt #s(approx (+ x 1) #s(literal 1 binary64)) (patch #s(approx (+ x 1) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 x) (taylor 0 x) (#s(alt #s(approx (+ x 1) #s(literal 1 binary64)) (patch #s(approx (+ x 1) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 x) (taylor 0 x) (#s(alt #s(approx (+ x 1) #s(literal 1 binary64)) (patch #s(approx (+ x 1) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* x (- y 1)) (taylor inf x) (#s(alt #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) (patch #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) #<representation binary64>) () ())) ())
#s(alt (* x (- (+ y (/ y x)) 1)) (taylor inf x) (#s(alt #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) (patch #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) #<representation binary64>) () ())) ())
#s(alt (* x (- (+ y (/ y x)) 1)) (taylor inf x) (#s(alt #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) (patch #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) #<representation binary64>) () ())) ())
#s(alt (* x (- (+ y (/ y x)) 1)) (taylor inf x) (#s(alt #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) (patch #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor inf x) (#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor inf x) (#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor inf x) (#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor inf x) (#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt (* x (- y 1)) (taylor inf x) (#s(alt #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) (patch #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) #<representation binary64>) () ())) ())
#s(alt (* x (- (+ y (/ y x)) 1)) (taylor inf x) (#s(alt #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) (patch #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) #<representation binary64>) () ())) ())
#s(alt (* x (- (+ y (/ y x)) 1)) (taylor inf x) (#s(alt #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) (patch #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) #<representation binary64>) () ())) ())
#s(alt (* x (- (+ y (/ y x)) 1)) (taylor inf x) (#s(alt #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) (patch #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor inf x) (#s(alt (fma.f64 x y y) (patch (fma.f64 x y y) #<representation binary64>) () ())) ())
#s(alt (* x (+ y (/ y x))) (taylor inf x) (#s(alt (fma.f64 x y y) (patch (fma.f64 x y y) #<representation binary64>) () ())) ())
#s(alt (* x (+ y (/ y x))) (taylor inf x) (#s(alt (fma.f64 x y y) (patch (fma.f64 x y y) #<representation binary64>) () ())) ())
#s(alt (* x (+ y (/ y x))) (taylor inf x) (#s(alt (fma.f64 x y y) (patch (fma.f64 x y y) #<representation binary64>) () ())) ())
#s(alt (* x (- y 1)) (taylor inf x) (#s(alt (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) (patch (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) #<representation binary64>) () ())) ())
#s(alt (* x (- (+ y (/ y x)) 1)) (taylor inf x) (#s(alt (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) (patch (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) #<representation binary64>) () ())) ())
#s(alt (* x (- (+ y (/ y x)) 1)) (taylor inf x) (#s(alt (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) (patch (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) #<representation binary64>) () ())) ())
#s(alt (* x (- (+ y (/ y x)) 1)) (taylor inf x) (#s(alt (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) (patch (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor inf x) (#s(alt #s(approx (* (+ x 1) y) (*.f64 x y)) (patch #s(approx (* (+ x 1) y) (*.f64 x y)) #<representation binary64>) () ())) ())
#s(alt (* x (+ y (/ y x))) (taylor inf x) (#s(alt #s(approx (* (+ x 1) y) (*.f64 x y)) (patch #s(approx (* (+ x 1) y) (*.f64 x y)) #<representation binary64>) () ())) ())
#s(alt (* x (+ y (/ y x))) (taylor inf x) (#s(alt #s(approx (* (+ x 1) y) (*.f64 x y)) (patch #s(approx (* (+ x 1) y) (*.f64 x y)) #<representation binary64>) () ())) ())
#s(alt (* x (+ y (/ y x))) (taylor inf x) (#s(alt #s(approx (* (+ x 1) y) (*.f64 x y)) (patch #s(approx (* (+ x 1) y) (*.f64 x y)) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor inf x) (#s(alt (*.f64 x y) (patch (*.f64 x y) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor inf x) (#s(alt (*.f64 x y) (patch (*.f64 x y) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor inf x) (#s(alt (*.f64 x y) (patch (*.f64 x y) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor inf x) (#s(alt (*.f64 x y) (patch (*.f64 x y) #<representation binary64>) () ())) ())
#s(alt (* x (- y 1)) (taylor inf x) (#s(alt (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) (patch (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) #<representation binary64>) () ())) ())
#s(alt (* x (- (+ y (/ y x)) 1)) (taylor inf x) (#s(alt (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) (patch (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) #<representation binary64>) () ())) ())
#s(alt (* x (- (+ y (/ y x)) 1)) (taylor inf x) (#s(alt (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) (patch (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) #<representation binary64>) () ())) ())
#s(alt (* x (- (+ y (/ y x)) 1)) (taylor inf x) (#s(alt (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) (patch (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor inf x) (#s(alt (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) (patch (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) #<representation binary64>) () ())) ())
#s(alt (* x (+ y (/ y x))) (taylor inf x) (#s(alt (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) (patch (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) #<representation binary64>) () ())) ())
#s(alt (* x (+ y (/ y x))) (taylor inf x) (#s(alt (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) (patch (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) #<representation binary64>) () ())) ())
#s(alt (* x (+ y (/ y x))) (taylor inf x) (#s(alt (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) (patch (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) #<representation binary64>) () ())) ())
#s(alt x (taylor inf x) (#s(alt #s(approx (+ x 1) #s(literal 1 binary64)) (patch #s(approx (+ x 1) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (/ 1 x))) (taylor inf x) (#s(alt #s(approx (+ x 1) #s(literal 1 binary64)) (patch #s(approx (+ x 1) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (/ 1 x))) (taylor inf x) (#s(alt #s(approx (+ x 1) #s(literal 1 binary64)) (patch #s(approx (+ x 1) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (/ 1 x))) (taylor inf x) (#s(alt #s(approx (+ x 1) #s(literal 1 binary64)) (patch #s(approx (+ x 1) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ 1 (* -1 y)))) (taylor -inf x) (#s(alt #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) (patch #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x)))))) (taylor -inf x) (#s(alt #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) (patch #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x)))))) (taylor -inf x) (#s(alt #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) (patch #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x)))))) (taylor -inf x) (#s(alt #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) (patch #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor -inf x) (#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor -inf x) (#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor -inf x) (#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor -inf x) (#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ 1 (* -1 y)))) (taylor -inf x) (#s(alt #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) (patch #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x)))))) (taylor -inf x) (#s(alt #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) (patch #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x)))))) (taylor -inf x) (#s(alt #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) (patch #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x)))))) (taylor -inf x) (#s(alt #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) (patch #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor -inf x) (#s(alt (fma.f64 x y y) (patch (fma.f64 x y y) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ (* -1 y) (* -1 (/ y x))))) (taylor -inf x) (#s(alt (fma.f64 x y y) (patch (fma.f64 x y y) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ (* -1 y) (* -1 (/ y x))))) (taylor -inf x) (#s(alt (fma.f64 x y y) (patch (fma.f64 x y y) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ (* -1 y) (* -1 (/ y x))))) (taylor -inf x) (#s(alt (fma.f64 x y y) (patch (fma.f64 x y y) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ 1 (* -1 y)))) (taylor -inf x) (#s(alt (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) (patch (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x)))))) (taylor -inf x) (#s(alt (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) (patch (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x)))))) (taylor -inf x) (#s(alt (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) (patch (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x)))))) (taylor -inf x) (#s(alt (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) (patch (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor -inf x) (#s(alt #s(approx (* (+ x 1) y) (*.f64 x y)) (patch #s(approx (* (+ x 1) y) (*.f64 x y)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ (* -1 y) (* -1 (/ y x))))) (taylor -inf x) (#s(alt #s(approx (* (+ x 1) y) (*.f64 x y)) (patch #s(approx (* (+ x 1) y) (*.f64 x y)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ (* -1 y) (* -1 (/ y x))))) (taylor -inf x) (#s(alt #s(approx (* (+ x 1) y) (*.f64 x y)) (patch #s(approx (* (+ x 1) y) (*.f64 x y)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ (* -1 y) (* -1 (/ y x))))) (taylor -inf x) (#s(alt #s(approx (* (+ x 1) y) (*.f64 x y)) (patch #s(approx (* (+ x 1) y) (*.f64 x y)) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor -inf x) (#s(alt (*.f64 x y) (patch (*.f64 x y) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor -inf x) (#s(alt (*.f64 x y) (patch (*.f64 x y) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor -inf x) (#s(alt (*.f64 x y) (patch (*.f64 x y) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor -inf x) (#s(alt (*.f64 x y) (patch (*.f64 x y) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ 1 (* -1 y)))) (taylor -inf x) (#s(alt (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) (patch (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x)))))) (taylor -inf x) (#s(alt (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) (patch (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x)))))) (taylor -inf x) (#s(alt (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) (patch (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x)))))) (taylor -inf x) (#s(alt (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) (patch (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor -inf x) (#s(alt (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) (patch (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ (* -1 y) (* -1 (/ y x))))) (taylor -inf x) (#s(alt (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) (patch (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ (* -1 y) (* -1 (/ y x))))) (taylor -inf x) (#s(alt (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) (patch (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ (* -1 y) (* -1 (/ y x))))) (taylor -inf x) (#s(alt (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) (patch (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) #<representation binary64>) () ())) ())
#s(alt x (taylor -inf x) (#s(alt #s(approx (+ x 1) #s(literal 1 binary64)) (patch #s(approx (+ x 1) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (/ 1 x))) (taylor -inf x) (#s(alt #s(approx (+ x 1) #s(literal 1 binary64)) (patch #s(approx (+ x 1) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (/ 1 x))) (taylor -inf x) (#s(alt #s(approx (+ x 1) #s(literal 1 binary64)) (patch #s(approx (+ x 1) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (/ 1 x))) (taylor -inf x) (#s(alt #s(approx (+ x 1) #s(literal 1 binary64)) (patch #s(approx (+ x 1) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
Calls

6 calls:

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

simplify187.0ms (4.7%)

Memory
-2.5MiB live, 117.1MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0441058
11491058
24021058
310661058
426261058
539461058
647051058
756471058
861741058
967381058
1077811058
08190915
Stop Event
iter limit
node limit
Counts
216 → 207
Calls
Call 1
Inputs
(* -1 x)
(- (* y (+ 1 x)) x)
(- (* y (+ 1 x)) x)
(- (* y (+ 1 x)) x)
(* -1 x)
(- (* y (+ 1 x)) x)
(- (* y (+ 1 x)) x)
(- (* y (+ 1 x)) x)
(* y (+ 1 x))
(* y (+ 1 x))
(* y (+ 1 x))
(* y (+ 1 x))
(* -1 x)
(- (* y (+ 1 x)) x)
(- (* y (+ 1 x)) x)
(- (* y (+ 1 x)) x)
(* y (+ 1 x))
(* y (+ 1 x))
(* y (+ 1 x))
(* y (+ 1 x))
(* x y)
(* x y)
(* x y)
(* x y)
(* -1 x)
(- (* y (+ 1 x)) x)
(- (* y (+ 1 x)) x)
(- (* y (+ 1 x)) x)
(* y (+ 1 x))
(* y (+ 1 x))
(* y (+ 1 x))
(* y (+ 1 x))
(* y (+ 1 x))
(* y (+ 1 (+ x (* -1 (/ x y)))))
(* y (+ 1 (+ x (* -1 (/ x y)))))
(* y (+ 1 (+ x (* -1 (/ x y)))))
(* y (+ 1 x))
(* y (+ 1 (+ x (* -1 (/ x y)))))
(* y (+ 1 (+ x (* -1 (/ x y)))))
(* y (+ 1 (+ x (* -1 (/ x y)))))
(* y (+ 1 x))
(* y (+ 1 x))
(* y (+ 1 x))
(* y (+ 1 x))
(* y (+ 1 x))
(* y (+ 1 (+ x (* -1 (/ x y)))))
(* y (+ 1 (+ x (* -1 (/ x y)))))
(* y (+ 1 (+ x (* -1 (/ x y)))))
(* y (+ 1 x))
(* y (+ 1 x))
(* y (+ 1 x))
(* y (+ 1 x))
(* x y)
(* x y)
(* x y)
(* x y)
(* y (+ 1 x))
(* y (+ 1 (+ x (* -1 (/ x y)))))
(* y (+ 1 (+ x (* -1 (/ x y)))))
(* y (+ 1 (+ x (* -1 (/ x y)))))
(* y (+ 1 x))
(* y (+ 1 x))
(* y (+ 1 x))
(* y (+ 1 x))
(* y (+ 1 x))
(* -1 (* y (+ (* -1 (+ 1 x)) (/ x y))))
(* -1 (* y (+ (* -1 (+ 1 x)) (/ x y))))
(* -1 (* y (+ (* -1 (+ 1 x)) (/ x y))))
(* y (+ 1 x))
(* -1 (* y (+ (* -1 (+ 1 x)) (/ x y))))
(* -1 (* y (+ (* -1 (+ 1 x)) (/ x y))))
(* -1 (* y (+ (* -1 (+ 1 x)) (/ x y))))
(* -1 (* y (- (* -1 x) 1)))
(* -1 (* y (- (* -1 x) 1)))
(* -1 (* y (- (* -1 x) 1)))
(* -1 (* y (- (* -1 x) 1)))
(* y (+ 1 x))
(* -1 (* y (+ (* -1 (+ 1 x)) (/ x y))))
(* -1 (* y (+ (* -1 (+ 1 x)) (/ x y))))
(* -1 (* y (+ (* -1 (+ 1 x)) (/ x y))))
(* y (+ 1 x))
(* y (+ 1 x))
(* y (+ 1 x))
(* y (+ 1 x))
(* x y)
(* x y)
(* x y)
(* x y)
(* y (+ 1 x))
(* -1 (* y (+ (* -1 (+ 1 x)) (/ x y))))
(* -1 (* y (+ (* -1 (+ 1 x)) (/ x y))))
(* -1 (* y (+ (* -1 (+ 1 x)) (/ x y))))
(* y (+ 1 x))
(* y (+ 1 x))
(* y (+ 1 x))
(* y (+ 1 x))
y
(+ y (* x (- y 1)))
(+ y (* x (- y 1)))
(+ y (* x (- y 1)))
(* -1 x)
(* -1 x)
(* -1 x)
(* -1 x)
y
(+ y (* x (- y 1)))
(+ y (* x (- y 1)))
(+ y (* x (- y 1)))
y
(+ y (* x y))
(+ y (* x y))
(+ y (* x y))
y
(+ y (* x (- y 1)))
(+ y (* x (- y 1)))
(+ y (* x (- y 1)))
y
(+ y (* x y))
(+ y (* x y))
(+ y (* x y))
(* x y)
(* x y)
(* x y)
(* x y)
y
(+ y (* x (- y 1)))
(+ y (* x (- y 1)))
(+ y (* x (- y 1)))
y
(+ y (* x y))
(+ y (* x y))
(+ y (* x y))
1
(+ 1 x)
(+ 1 x)
(+ 1 x)
(* x (- y 1))
(* x (- (+ y (/ y x)) 1))
(* x (- (+ y (/ y x)) 1))
(* x (- (+ y (/ y x)) 1))
(* -1 x)
(* -1 x)
(* -1 x)
(* -1 x)
(* x (- y 1))
(* x (- (+ y (/ y x)) 1))
(* x (- (+ y (/ y x)) 1))
(* x (- (+ y (/ y x)) 1))
(* x y)
(* x (+ y (/ y x)))
(* x (+ y (/ y x)))
(* x (+ y (/ y x)))
(* x (- y 1))
(* x (- (+ y (/ y x)) 1))
(* x (- (+ y (/ y x)) 1))
(* x (- (+ y (/ y x)) 1))
(* x y)
(* x (+ y (/ y x)))
(* x (+ y (/ y x)))
(* x (+ y (/ y x)))
(* x y)
(* x y)
(* x y)
(* x y)
(* x (- y 1))
(* x (- (+ y (/ y x)) 1))
(* x (- (+ y (/ y x)) 1))
(* x (- (+ y (/ y x)) 1))
(* x y)
(* x (+ y (/ y x)))
(* x (+ y (/ y x)))
(* x (+ y (/ y x)))
x
(* x (+ 1 (/ 1 x)))
(* x (+ 1 (/ 1 x)))
(* x (+ 1 (/ 1 x)))
(* -1 (* x (+ 1 (* -1 y))))
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x))))))
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x))))))
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x))))))
(* -1 x)
(* -1 x)
(* -1 x)
(* -1 x)
(* -1 (* x (+ 1 (* -1 y))))
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x))))))
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x))))))
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x))))))
(* x y)
(* -1 (* x (+ (* -1 y) (* -1 (/ y x)))))
(* -1 (* x (+ (* -1 y) (* -1 (/ y x)))))
(* -1 (* x (+ (* -1 y) (* -1 (/ y x)))))
(* -1 (* x (+ 1 (* -1 y))))
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x))))))
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x))))))
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x))))))
(* x y)
(* -1 (* x (+ (* -1 y) (* -1 (/ y x)))))
(* -1 (* x (+ (* -1 y) (* -1 (/ y x)))))
(* -1 (* x (+ (* -1 y) (* -1 (/ y x)))))
(* x y)
(* x y)
(* x y)
(* x y)
(* -1 (* x (+ 1 (* -1 y))))
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x))))))
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x))))))
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x))))))
(* x y)
(* -1 (* x (+ (* -1 y) (* -1 (/ y x)))))
(* -1 (* x (+ (* -1 y) (* -1 (/ y x)))))
(* -1 (* x (+ (* -1 y) (* -1 (/ y x)))))
x
(* x (+ 1 (/ 1 x)))
(* x (+ 1 (/ 1 x)))
(* x (+ 1 (/ 1 x)))
Outputs
(* -1 x)
(neg.f64 x)
(- (* y (+ 1 x)) x)
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(- (* y (+ 1 x)) x)
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(- (* y (+ 1 x)) x)
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* -1 x)
(neg.f64 x)
(- (* y (+ 1 x)) x)
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(- (* y (+ 1 x)) x)
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(- (* y (+ 1 x)) x)
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* y (+ 1 x))
(fma.f64 y x y)
(* y (+ 1 x))
(fma.f64 y x y)
(* y (+ 1 x))
(fma.f64 y 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)) x)
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(- (* y (+ 1 x)) x)
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* y (+ 1 x))
(fma.f64 y x y)
(* y (+ 1 x))
(fma.f64 y x y)
(* y (+ 1 x))
(fma.f64 y x y)
(* y (+ 1 x))
(fma.f64 y x y)
(* x y)
(*.f64 y x)
(* x y)
(*.f64 y x)
(* x y)
(*.f64 y x)
(* x y)
(*.f64 y x)
(* -1 x)
(neg.f64 x)
(- (* y (+ 1 x)) x)
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(- (* y (+ 1 x)) x)
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(- (* y (+ 1 x)) x)
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* y (+ 1 x))
(fma.f64 y x y)
(* y (+ 1 x))
(fma.f64 y x y)
(* y (+ 1 x))
(fma.f64 y x y)
(* y (+ 1 x))
(fma.f64 y x y)
(* y (+ 1 x))
(fma.f64 y x y)
(* y (+ 1 (+ x (* -1 (/ x y)))))
(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)
(* y (+ 1 (+ x (* -1 (/ x y)))))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* y (+ 1 x))
(fma.f64 y x y)
(* y (+ 1 (+ x (* -1 (/ x y)))))
(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)
(* y (+ 1 (+ x (* -1 (/ x y)))))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* y (+ 1 x))
(fma.f64 y x y)
(* y (+ 1 x))
(fma.f64 y x y)
(* y (+ 1 x))
(fma.f64 y x y)
(* y (+ 1 x))
(fma.f64 y x y)
(* y (+ 1 x))
(fma.f64 y x y)
(* y (+ 1 (+ x (* -1 (/ x y)))))
(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)
(* y (+ 1 (+ x (* -1 (/ x y)))))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* y (+ 1 x))
(fma.f64 y x y)
(* y (+ 1 x))
(fma.f64 y x y)
(* y (+ 1 x))
(fma.f64 y x y)
(* y (+ 1 x))
(fma.f64 y x y)
(* x y)
(*.f64 y x)
(* x y)
(*.f64 y x)
(* x y)
(*.f64 y x)
(* x y)
(*.f64 y x)
(* y (+ 1 x))
(fma.f64 y x y)
(* y (+ 1 (+ x (* -1 (/ x y)))))
(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)
(* y (+ 1 (+ x (* -1 (/ x y)))))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* y (+ 1 x))
(fma.f64 y x y)
(* y (+ 1 x))
(fma.f64 y x y)
(* y (+ 1 x))
(fma.f64 y x y)
(* y (+ 1 x))
(fma.f64 y x y)
(* y (+ 1 x))
(fma.f64 y x y)
(* -1 (* y (+ (* -1 (+ 1 x)) (/ 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)
(* -1 (* y (+ (* -1 (+ 1 x)) (/ x y))))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* y (+ 1 x))
(fma.f64 y x y)
(* -1 (* y (+ (* -1 (+ 1 x)) (/ 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)
(* -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) 1)))
(fma.f64 y x y)
(* -1 (* y (- (* -1 x) 1)))
(fma.f64 y x y)
(* -1 (* y (- (* -1 x) 1)))
(fma.f64 y x y)
(* y (+ 1 x))
(fma.f64 y x y)
(* -1 (* y (+ (* -1 (+ 1 x)) (/ 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)
(* -1 (* y (+ (* -1 (+ 1 x)) (/ x y))))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* y (+ 1 x))
(fma.f64 y x y)
(* y (+ 1 x))
(fma.f64 y x y)
(* y (+ 1 x))
(fma.f64 y x y)
(* y (+ 1 x))
(fma.f64 y x y)
(* x y)
(*.f64 y x)
(* x y)
(*.f64 y x)
(* x y)
(*.f64 y x)
(* x y)
(*.f64 y x)
(* y (+ 1 x))
(fma.f64 y x y)
(* -1 (* y (+ (* -1 (+ 1 x)) (/ 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)
(* -1 (* y (+ (* -1 (+ 1 x)) (/ x y))))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* y (+ 1 x))
(fma.f64 y x y)
(* y (+ 1 x))
(fma.f64 y x y)
(* y (+ 1 x))
(fma.f64 y x y)
(* y (+ 1 x))
(fma.f64 y x y)
y
(+ y (* x (- y 1)))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(+ y (* x (- y 1)))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(+ y (* x (- y 1)))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* -1 x)
(neg.f64 x)
(* -1 x)
(neg.f64 x)
(* -1 x)
(neg.f64 x)
(* -1 x)
(neg.f64 x)
y
(+ y (* x (- y 1)))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(+ y (* x (- y 1)))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(+ y (* x (- y 1)))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
y
(+ y (* x y))
(fma.f64 y x y)
(+ y (* x y))
(fma.f64 y x y)
(+ y (* x y))
(fma.f64 y x y)
y
(+ y (* x (- y 1)))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(+ y (* x (- y 1)))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(+ y (* x (- y 1)))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
y
(+ y (* x y))
(fma.f64 y x y)
(+ y (* x y))
(fma.f64 y x y)
(+ y (* x y))
(fma.f64 y x y)
(* x y)
(*.f64 y x)
(* x y)
(*.f64 y x)
(* x y)
(*.f64 y x)
(* x y)
(*.f64 y x)
y
(+ y (* x (- y 1)))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(+ y (* x (- y 1)))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(+ y (* x (- y 1)))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
y
(+ y (* x y))
(fma.f64 y x y)
(+ y (* x y))
(fma.f64 y x y)
(+ y (* x y))
(fma.f64 y x y)
1
#s(literal 1 binary64)
(+ 1 x)
(-.f64 x #s(literal -1 binary64))
(+ 1 x)
(-.f64 x #s(literal -1 binary64))
(+ 1 x)
(-.f64 x #s(literal -1 binary64))
(* x (- y 1))
(fma.f64 y x (neg.f64 x))
(* x (- (+ y (/ y x)) 1))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* x (- (+ y (/ y x)) 1))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* x (- (+ y (/ y x)) 1))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* -1 x)
(neg.f64 x)
(* -1 x)
(neg.f64 x)
(* -1 x)
(neg.f64 x)
(* -1 x)
(neg.f64 x)
(* x (- y 1))
(fma.f64 y x (neg.f64 x))
(* x (- (+ y (/ y x)) 1))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* x (- (+ y (/ y x)) 1))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* x (- (+ y (/ y x)) 1))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* x y)
(*.f64 y x)
(* x (+ y (/ y x)))
(fma.f64 y x y)
(* x (+ y (/ y x)))
(fma.f64 y x y)
(* x (+ y (/ y x)))
(fma.f64 y x y)
(* x (- y 1))
(fma.f64 y x (neg.f64 x))
(* x (- (+ y (/ y x)) 1))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* x (- (+ y (/ y x)) 1))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* x (- (+ y (/ y x)) 1))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* x y)
(*.f64 y x)
(* x (+ y (/ y x)))
(fma.f64 y x y)
(* x (+ y (/ y x)))
(fma.f64 y x y)
(* x (+ y (/ y x)))
(fma.f64 y x y)
(* x y)
(*.f64 y x)
(* x y)
(*.f64 y x)
(* x y)
(*.f64 y x)
(* x y)
(*.f64 y x)
(* x (- y 1))
(fma.f64 y x (neg.f64 x))
(* x (- (+ y (/ y x)) 1))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* x (- (+ y (/ y x)) 1))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* x (- (+ y (/ y x)) 1))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* x y)
(*.f64 y x)
(* x (+ y (/ y x)))
(fma.f64 y x y)
(* x (+ y (/ y x)))
(fma.f64 y x y)
(* x (+ y (/ y x)))
(fma.f64 y x y)
x
(* x (+ 1 (/ 1 x)))
(-.f64 x #s(literal -1 binary64))
(* x (+ 1 (/ 1 x)))
(-.f64 x #s(literal -1 binary64))
(* x (+ 1 (/ 1 x)))
(-.f64 x #s(literal -1 binary64))
(* -1 (* x (+ 1 (* -1 y))))
(fma.f64 y x (neg.f64 x))
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x))))))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x))))))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x))))))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* -1 x)
(neg.f64 x)
(* -1 x)
(neg.f64 x)
(* -1 x)
(neg.f64 x)
(* -1 x)
(neg.f64 x)
(* -1 (* x (+ 1 (* -1 y))))
(fma.f64 y x (neg.f64 x))
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x))))))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x))))))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x))))))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* x y)
(*.f64 y x)
(* -1 (* x (+ (* -1 y) (* -1 (/ y x)))))
(fma.f64 y x y)
(* -1 (* x (+ (* -1 y) (* -1 (/ y x)))))
(fma.f64 y x y)
(* -1 (* x (+ (* -1 y) (* -1 (/ y x)))))
(fma.f64 y x y)
(* -1 (* x (+ 1 (* -1 y))))
(fma.f64 y x (neg.f64 x))
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x))))))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x))))))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x))))))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* x y)
(*.f64 y x)
(* -1 (* x (+ (* -1 y) (* -1 (/ y x)))))
(fma.f64 y x y)
(* -1 (* x (+ (* -1 y) (* -1 (/ y x)))))
(fma.f64 y x y)
(* -1 (* x (+ (* -1 y) (* -1 (/ y x)))))
(fma.f64 y x y)
(* x y)
(*.f64 y x)
(* x y)
(*.f64 y x)
(* x y)
(*.f64 y x)
(* x y)
(*.f64 y x)
(* -1 (* x (+ 1 (* -1 y))))
(fma.f64 y x (neg.f64 x))
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x))))))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x))))))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x))))))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* x y)
(*.f64 y x)
(* -1 (* x (+ (* -1 y) (* -1 (/ y x)))))
(fma.f64 y x y)
(* -1 (* x (+ (* -1 y) (* -1 (/ y x)))))
(fma.f64 y x y)
(* -1 (* x (+ (* -1 y) (* -1 (/ y x)))))
(fma.f64 y x y)
x
(* x (+ 1 (/ 1 x)))
(-.f64 x #s(literal -1 binary64))
(* x (+ 1 (/ 1 x)))
(-.f64 x #s(literal -1 binary64))
(* x (+ 1 (/ 1 x)))
(-.f64 x #s(literal -1 binary64))

rewrite236.0ms (5.9%)

Memory
-15.0MiB live, 209.3MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01672
02268
19168
270068
0849668
Stop Event
iter limit
node limit
iter limit
Counts
10 → 342
Calls
Call 1
Inputs
#s(approx (- (* (+ x 1) y) x) (neg.f64 x))
(neg.f64 x)
#s(approx (- (* (+ x 1) y) x) (fma.f64 x y y))
(fma.f64 x y y)
(-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x)
#s(approx (* (+ x 1) y) (*.f64 x y))
(*.f64 x y)
(-.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
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

eval109.0ms (2.7%)

Memory
4.1MiB live, 166.0MiB allocated
Compiler

Compiled 9 484 to 992 computations (89.5% saved)

prune39.0ms (1%)

Memory
-10.0MiB live, 38.5MiB allocated
Pruning

5 alts after pruning (1 fresh and 4 done)

PrunedKeptTotal
New5481549
Fresh000
Picked044
Done000
Total5485553
Accuracy
100.0%
Counts
553 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
74.2%
(-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x)
57.6%
(-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x)
71.0%
#s(approx (- (* (+ x 1) y) x) (fma.f64 x y y))
31.7%
#s(approx (- (* (+ x 1) y) x) (neg.f64 x))
28.7%
#s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x)))
Compiler

Compiled 25 to 24 computations (4% saved)

simplify43.0ms (1.1%)

Memory
4.6MiB live, 42.8MiB allocated
Algorithm
egg-herbie
Localize:

Found 3 expressions of interest:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01131
01231
12031
23831
35631
410131
520631
638931
760431
867831
968431
068428
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
#s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x)))
#s(approx (+ (* x y) y) (*.f64 y x))
(*.f64 y x)
y
x
Outputs
#s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x)))
#s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 x y)))
#s(approx (+ (* x y) y) (*.f64 y x))
#s(approx (+ (* x y) y) (*.f64 x y))
(*.f64 y x)
(*.f64 x y)
y
x

localize25.0ms (0.6%)

Memory
16.9MiB live, 53.3MiB allocated
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
accuracy0
(*.f64 y x)
accuracy18.56732855690373
#s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x)))
accuracy34.37957534015069
#s(approx (+ (* x y) y) (*.f64 y x))
Samples
19.0ms256×0valid
Compiler

Compiled 33 to 16 computations (51.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 13.0ms
ival-mult: 6.0ms (47.7% of total)
ival-add: 5.0ms (39.8% of total)
ival-sub: 1.0ms (8% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series4.0ms (0.1%)

Memory
6.8MiB live, 6.8MiB allocated
Counts
3 → 72
Calls
Call 1
Inputs
#s(alt #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) (patch #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) #<representation binary64>) () ())
#s(alt #s(approx (+ (* x y) y) (*.f64 y x)) (patch #s(approx (+ (* x y) y) (*.f64 y x)) #<representation binary64>) () ())
#s(alt (*.f64 y x) (patch (*.f64 y x) #<representation binary64>) () ())
Outputs
#s(alt (* -1 x) (taylor 0 y) (#s(alt #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) (patch #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) #<representation binary64>) () ())) ())
#s(alt (- (* y (+ 1 x)) x) (taylor 0 y) (#s(alt #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) (patch #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) #<representation binary64>) () ())) ())
#s(alt (- (* y (+ 1 x)) x) (taylor 0 y) (#s(alt #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) (patch #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) #<representation binary64>) () ())) ())
#s(alt (- (* y (+ 1 x)) x) (taylor 0 y) (#s(alt #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) (patch #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor 0 y) (#s(alt #s(approx (+ (* x y) y) (*.f64 y x)) (patch #s(approx (+ (* x y) y) (*.f64 y x)) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor 0 y) (#s(alt #s(approx (+ (* x y) y) (*.f64 y x)) (patch #s(approx (+ (* x y) y) (*.f64 y x)) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor 0 y) (#s(alt #s(approx (+ (* x y) y) (*.f64 y x)) (patch #s(approx (+ (* x y) y) (*.f64 y x)) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor 0 y) (#s(alt #s(approx (+ (* x y) y) (*.f64 y x)) (patch #s(approx (+ (* x y) y) (*.f64 y x)) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor 0 y) (#s(alt (*.f64 y x) (patch (*.f64 y x) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor 0 y) (#s(alt (*.f64 y x) (patch (*.f64 y x) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor 0 y) (#s(alt (*.f64 y x) (patch (*.f64 y x) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor 0 y) (#s(alt (*.f64 y x) (patch (*.f64 y x) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor inf y) (#s(alt #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) (patch #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 (+ x (* -1 (/ x y))))) (taylor inf y) (#s(alt #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) (patch #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 (+ x (* -1 (/ x y))))) (taylor inf y) (#s(alt #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) (patch #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 (+ x (* -1 (/ x y))))) (taylor inf y) (#s(alt #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) (patch #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor inf y) (#s(alt #s(approx (+ (* x y) y) (*.f64 y x)) (patch #s(approx (+ (* x y) y) (*.f64 y x)) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor inf y) (#s(alt #s(approx (+ (* x y) y) (*.f64 y x)) (patch #s(approx (+ (* x y) y) (*.f64 y x)) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor inf y) (#s(alt #s(approx (+ (* x y) y) (*.f64 y x)) (patch #s(approx (+ (* x y) y) (*.f64 y x)) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor inf y) (#s(alt #s(approx (+ (* x y) y) (*.f64 y x)) (patch #s(approx (+ (* x y) y) (*.f64 y x)) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor inf y) (#s(alt (*.f64 y x) (patch (*.f64 y x) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor inf y) (#s(alt (*.f64 y x) (patch (*.f64 y x) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor inf y) (#s(alt (*.f64 y x) (patch (*.f64 y x) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor inf y) (#s(alt (*.f64 y x) (patch (*.f64 y x) #<representation binary64>) () ())) ())
#s(alt (* y (+ 1 x)) (taylor -inf y) (#s(alt #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) (patch #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* y (+ (* -1 (+ 1 x)) (/ x y)))) (taylor -inf y) (#s(alt #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) (patch #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* y (+ (* -1 (+ 1 x)) (/ x y)))) (taylor -inf y) (#s(alt #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) (patch #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* y (+ (* -1 (+ 1 x)) (/ x y)))) (taylor -inf y) (#s(alt #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) (patch #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* y (- (* -1 x) 1))) (taylor -inf y) (#s(alt #s(approx (+ (* x y) y) (*.f64 y x)) (patch #s(approx (+ (* x y) y) (*.f64 y x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* y (- (* -1 x) 1))) (taylor -inf y) (#s(alt #s(approx (+ (* x y) y) (*.f64 y x)) (patch #s(approx (+ (* x y) y) (*.f64 y x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* y (- (* -1 x) 1))) (taylor -inf y) (#s(alt #s(approx (+ (* x y) y) (*.f64 y x)) (patch #s(approx (+ (* x y) y) (*.f64 y x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* y (- (* -1 x) 1))) (taylor -inf y) (#s(alt #s(approx (+ (* x y) y) (*.f64 y x)) (patch #s(approx (+ (* x y) y) (*.f64 y x)) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor -inf y) (#s(alt (*.f64 y x) (patch (*.f64 y x) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor -inf y) (#s(alt (*.f64 y x) (patch (*.f64 y x) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor -inf y) (#s(alt (*.f64 y x) (patch (*.f64 y x) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor -inf y) (#s(alt (*.f64 y x) (patch (*.f64 y x) #<representation binary64>) () ())) ())
#s(alt y (taylor 0 x) (#s(alt #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) (patch #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) #<representation binary64>) () ())) ())
#s(alt (+ y (* x (- y 1))) (taylor 0 x) (#s(alt #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) (patch #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) #<representation binary64>) () ())) ())
#s(alt (+ y (* x (- y 1))) (taylor 0 x) (#s(alt #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) (patch #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) #<representation binary64>) () ())) ())
#s(alt (+ y (* x (- y 1))) (taylor 0 x) (#s(alt #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) (patch #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) #<representation binary64>) () ())) ())
#s(alt y (taylor 0 x) (#s(alt #s(approx (+ (* x y) y) (*.f64 y x)) (patch #s(approx (+ (* x y) y) (*.f64 y x)) #<representation binary64>) () ())) ())
#s(alt (+ y (* x y)) (taylor 0 x) (#s(alt #s(approx (+ (* x y) y) (*.f64 y x)) (patch #s(approx (+ (* x y) y) (*.f64 y x)) #<representation binary64>) () ())) ())
#s(alt (+ y (* x y)) (taylor 0 x) (#s(alt #s(approx (+ (* x y) y) (*.f64 y x)) (patch #s(approx (+ (* x y) y) (*.f64 y x)) #<representation binary64>) () ())) ())
#s(alt (+ y (* x y)) (taylor 0 x) (#s(alt #s(approx (+ (* x y) y) (*.f64 y x)) (patch #s(approx (+ (* x y) y) (*.f64 y x)) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor 0 x) (#s(alt (*.f64 y x) (patch (*.f64 y x) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor 0 x) (#s(alt (*.f64 y x) (patch (*.f64 y x) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor 0 x) (#s(alt (*.f64 y x) (patch (*.f64 y x) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor 0 x) (#s(alt (*.f64 y x) (patch (*.f64 y x) #<representation binary64>) () ())) ())
#s(alt (* x (- y 1)) (taylor inf x) (#s(alt #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) (patch #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) #<representation binary64>) () ())) ())
#s(alt (* x (- (+ y (/ y x)) 1)) (taylor inf x) (#s(alt #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) (patch #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) #<representation binary64>) () ())) ())
#s(alt (* x (- (+ y (/ y x)) 1)) (taylor inf x) (#s(alt #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) (patch #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) #<representation binary64>) () ())) ())
#s(alt (* x (- (+ y (/ y x)) 1)) (taylor inf x) (#s(alt #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) (patch #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor inf x) (#s(alt #s(approx (+ (* x y) y) (*.f64 y x)) (patch #s(approx (+ (* x y) y) (*.f64 y x)) #<representation binary64>) () ())) ())
#s(alt (* x (+ y (/ y x))) (taylor inf x) (#s(alt #s(approx (+ (* x y) y) (*.f64 y x)) (patch #s(approx (+ (* x y) y) (*.f64 y x)) #<representation binary64>) () ())) ())
#s(alt (* x (+ y (/ y x))) (taylor inf x) (#s(alt #s(approx (+ (* x y) y) (*.f64 y x)) (patch #s(approx (+ (* x y) y) (*.f64 y x)) #<representation binary64>) () ())) ())
#s(alt (* x (+ y (/ y x))) (taylor inf x) (#s(alt #s(approx (+ (* x y) y) (*.f64 y x)) (patch #s(approx (+ (* x y) y) (*.f64 y x)) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor inf x) (#s(alt (*.f64 y x) (patch (*.f64 y x) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor inf x) (#s(alt (*.f64 y x) (patch (*.f64 y x) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor inf x) (#s(alt (*.f64 y x) (patch (*.f64 y x) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor inf x) (#s(alt (*.f64 y x) (patch (*.f64 y x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ 1 (* -1 y)))) (taylor -inf x) (#s(alt #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) (patch #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x)))))) (taylor -inf x) (#s(alt #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) (patch #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x)))))) (taylor -inf x) (#s(alt #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) (patch #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x)))))) (taylor -inf x) (#s(alt #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) (patch #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor -inf x) (#s(alt #s(approx (+ (* x y) y) (*.f64 y x)) (patch #s(approx (+ (* x y) y) (*.f64 y x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ (* -1 y) (* -1 (/ y x))))) (taylor -inf x) (#s(alt #s(approx (+ (* x y) y) (*.f64 y x)) (patch #s(approx (+ (* x y) y) (*.f64 y x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ (* -1 y) (* -1 (/ y x))))) (taylor -inf x) (#s(alt #s(approx (+ (* x y) y) (*.f64 y x)) (patch #s(approx (+ (* x y) y) (*.f64 y x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ (* -1 y) (* -1 (/ y x))))) (taylor -inf x) (#s(alt #s(approx (+ (* x y) y) (*.f64 y x)) (patch #s(approx (+ (* x y) y) (*.f64 y x)) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor -inf x) (#s(alt (*.f64 y x) (patch (*.f64 y x) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor -inf x) (#s(alt (*.f64 y x) (patch (*.f64 y x) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor -inf x) (#s(alt (*.f64 y x) (patch (*.f64 y x) #<representation binary64>) () ())) ())
#s(alt (* x y) (taylor -inf x) (#s(alt (*.f64 y x) (patch (*.f64 y x) #<representation binary64>) () ())) ())
Calls

6 calls:

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

simplify288.0ms (7.2%)

Memory
-9.8MiB live, 182.1MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
041333
1140333
2392333
31009333
42599333
54014333
65033333
75627333
85943333
96139333
106234333
116274333
126294333
136294333
146312333
156312333
09353292
Stop Event
iter limit
node limit
Counts
72 → 70
Calls
Call 1
Inputs
(* -1 x)
(- (* y (+ 1 x)) x)
(- (* y (+ 1 x)) x)
(- (* y (+ 1 x)) x)
(* y (+ 1 x))
(* y (+ 1 x))
(* y (+ 1 x))
(* y (+ 1 x))
(* x y)
(* x y)
(* x y)
(* x y)
(* y (+ 1 x))
(* y (+ 1 (+ x (* -1 (/ x y)))))
(* y (+ 1 (+ x (* -1 (/ x y)))))
(* y (+ 1 (+ x (* -1 (/ x y)))))
(* y (+ 1 x))
(* y (+ 1 x))
(* y (+ 1 x))
(* y (+ 1 x))
(* x y)
(* x y)
(* x y)
(* x y)
(* y (+ 1 x))
(* -1 (* y (+ (* -1 (+ 1 x)) (/ x y))))
(* -1 (* y (+ (* -1 (+ 1 x)) (/ x y))))
(* -1 (* y (+ (* -1 (+ 1 x)) (/ x y))))
(* -1 (* y (- (* -1 x) 1)))
(* -1 (* y (- (* -1 x) 1)))
(* -1 (* y (- (* -1 x) 1)))
(* -1 (* y (- (* -1 x) 1)))
(* x y)
(* x y)
(* x y)
(* x y)
y
(+ y (* x (- y 1)))
(+ y (* x (- y 1)))
(+ y (* x (- y 1)))
y
(+ y (* x y))
(+ y (* x y))
(+ y (* x y))
(* x y)
(* x y)
(* x y)
(* x y)
(* x (- y 1))
(* x (- (+ y (/ y x)) 1))
(* x (- (+ y (/ y x)) 1))
(* x (- (+ y (/ y x)) 1))
(* x y)
(* x (+ y (/ y x)))
(* x (+ y (/ y x)))
(* x (+ y (/ y x)))
(* x y)
(* x y)
(* x y)
(* x y)
(* -1 (* x (+ 1 (* -1 y))))
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x))))))
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x))))))
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x))))))
(* x y)
(* -1 (* x (+ (* -1 y) (* -1 (/ y x)))))
(* -1 (* x (+ (* -1 y) (* -1 (/ y x)))))
(* -1 (* x (+ (* -1 y) (* -1 (/ y x)))))
(* x y)
(* x y)
(* x y)
(* x y)
Outputs
(* -1 x)
(neg.f64 x)
(- (* y (+ 1 x)) x)
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(- (* y (+ 1 x)) x)
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(- (* y (+ 1 x)) x)
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* y (+ 1 x))
(fma.f64 y x y)
(* y (+ 1 x))
(fma.f64 y x y)
(* y (+ 1 x))
(fma.f64 y x y)
(* y (+ 1 x))
(fma.f64 y x y)
(* x y)
(*.f64 y x)
(* x y)
(*.f64 y x)
(* x y)
(*.f64 y x)
(* x y)
(*.f64 y x)
(* y (+ 1 x))
(fma.f64 y x y)
(* y (+ 1 (+ x (* -1 (/ x y)))))
(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)
(* y (+ 1 (+ x (* -1 (/ x y)))))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* y (+ 1 x))
(fma.f64 y x y)
(* y (+ 1 x))
(fma.f64 y x y)
(* y (+ 1 x))
(fma.f64 y x y)
(* y (+ 1 x))
(fma.f64 y x y)
(* x y)
(*.f64 y x)
(* x y)
(*.f64 y x)
(* x y)
(*.f64 y x)
(* x y)
(*.f64 y x)
(* y (+ 1 x))
(fma.f64 y x y)
(* -1 (* y (+ (* -1 (+ 1 x)) (/ 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)
(* -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) 1)))
(fma.f64 y x y)
(* -1 (* y (- (* -1 x) 1)))
(fma.f64 y x y)
(* -1 (* y (- (* -1 x) 1)))
(fma.f64 y x y)
(* x y)
(*.f64 y x)
(* x y)
(*.f64 y x)
(* x y)
(*.f64 y x)
(* x y)
(*.f64 y x)
y
(+ y (* x (- y 1)))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(+ y (* x (- y 1)))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(+ y (* x (- y 1)))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
y
(+ y (* x y))
(fma.f64 y x y)
(+ y (* x y))
(fma.f64 y x y)
(+ y (* x y))
(fma.f64 y x y)
(* x y)
(*.f64 y x)
(* x y)
(*.f64 y x)
(* x y)
(*.f64 y x)
(* x y)
(*.f64 y x)
(* x (- y 1))
(fma.f64 y x (neg.f64 x))
(* x (- (+ y (/ y x)) 1))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* x (- (+ y (/ y x)) 1))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* x (- (+ y (/ y x)) 1))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* x y)
(*.f64 y x)
(* x (+ y (/ y x)))
(fma.f64 y x y)
(* x (+ y (/ y x)))
(fma.f64 y x y)
(* x (+ y (/ y x)))
(fma.f64 y x y)
(* x y)
(*.f64 y x)
(* x y)
(*.f64 y x)
(* x y)
(*.f64 y x)
(* x y)
(*.f64 y x)
(* -1 (* x (+ 1 (* -1 y))))
(fma.f64 y x (neg.f64 x))
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x))))))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x))))))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* -1 (* x (+ 1 (+ (* -1 y) (* -1 (/ y x))))))
(fma.f64 (-.f64 y #s(literal 1 binary64)) x y)
(* x y)
(*.f64 y x)
(* -1 (* x (+ (* -1 y) (* -1 (/ y x)))))
(fma.f64 y x y)
(* -1 (* x (+ (* -1 y) (* -1 (/ y x)))))
(fma.f64 y x y)
(* -1 (* x (+ (* -1 y) (* -1 (/ y x)))))
(fma.f64 y x y)
(* x y)
(*.f64 y x)
(* x y)
(*.f64 y x)
(* x y)
(*.f64 y x)
(* x y)
(*.f64 y x)

rewrite266.0ms (6.6%)

Memory
2.9MiB live, 218.7MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01129
01229
15529
244729
3769629
0823926
Stop Event
iter limit
node limit
iter limit
Counts
3 → 6
Calls
Call 1
Inputs
#s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x)))
#s(approx (+ (* x y) y) (*.f64 y x))
(*.f64 y x)
Outputs
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

eval17.0ms (0.4%)

Memory
-30.0MiB live, 8.9MiB allocated
Compiler

Compiled 465 to 29 computations (93.8% saved)

prune6.0ms (0.2%)

Memory
7.1MiB live, 7.1MiB allocated
Pruning

5 alts after pruning (0 fresh and 5 done)

PrunedKeptTotal
New76076
Fresh000
Picked011
Done044
Total76581
Accuracy
100.0%
Counts
81 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
74.2%
(-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x)
57.6%
(-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x)
71.0%
#s(approx (- (* (+ x 1) y) x) (fma.f64 x y y))
31.7%
#s(approx (- (* (+ x 1) y) x) (neg.f64 x))
28.7%
#s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x)))
Compiler

Compiled 57 to 43 computations (24.6% saved)

regimes9.0ms (0.2%)

Memory
5.9MiB live, 5.9MiB allocated
Counts
6 → 1
Calls
Call 1
Inputs
#s(approx (- (* (+ x 1) y) x) (neg.f64 x))
#s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x)))
#s(approx (- (* (+ x 1) y) x) (fma.f64 x y y))
(-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x)
(-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x)
(-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x)
Outputs
(-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x)
Calls

3 calls:

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

Compiled 9 to 10 computations (-11.1% saved)

regimes8.0ms (0.2%)

Memory
5.7MiB live, 5.7MiB allocated
Counts
5 → 3
Calls
Call 1
Inputs
#s(approx (- (* (+ x 1) y) x) (neg.f64 x))
#s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x)))
#s(approx (- (* (+ x 1) y) x) (fma.f64 x y y))
(-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x)
(-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x)
Outputs
(-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x)
(-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x)
(-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x)
Calls

3 calls:

3.0ms
y
2.0ms
x
2.0ms
(-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x)
Results
AccuracySegmentsBranch
99.9%3x
99.6%3y
91.2%3(-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x)
Compiler

Compiled 9 to 10 computations (-11.1% saved)

regimes7.0ms (0.2%)

Memory
6.3MiB live, 6.3MiB allocated
Counts
4 → 3
Calls
Call 1
Inputs
#s(approx (- (* (+ x 1) y) x) (neg.f64 x))
#s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x)))
#s(approx (- (* (+ x 1) y) x) (fma.f64 x y y))
(-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x)
Outputs
(-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x)
#s(approx (- (* (+ x 1) y) x) (fma.f64 x y y))
(-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) 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.0%1(-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x)
89.9%3y
90.2%3x
Compiler

Compiled 9 to 10 computations (-11.1% saved)

regimes4.0ms (0.1%)

Memory
6.6MiB live, 6.6MiB allocated
Counts
3 → 3
Calls
Call 1
Inputs
#s(approx (- (* (+ x 1) y) x) (neg.f64 x))
#s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x)))
#s(approx (- (* (+ x 1) y) x) (fma.f64 x y y))
Outputs
#s(approx (- (* (+ x 1) y) x) (fma.f64 x y y))
#s(approx (- (* (+ x 1) y) x) (neg.f64 x))
#s(approx (- (* (+ x 1) y) x) (fma.f64 x y y))
Calls

2 calls:

2.0ms
y
2.0ms
x
Results
AccuracySegmentsBranch
89.9%3y
71.0%1x
Compiler

Compiled 2 to 4 computations (-100% saved)

regimes38.0ms (0.9%)

Memory
-28.4MiB live, 10.4MiB allocated
Counts
2 → 3
Calls
Call 1
Inputs
#s(approx (- (* (+ x 1) y) x) (neg.f64 x))
#s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x)))
Outputs
#s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x)))
#s(approx (- (* (+ x 1) y) x) (neg.f64 x))
#s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x)))
Calls

3 calls:

34.0ms
y
2.0ms
(-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x)
2.0ms
x
Results
AccuracySegmentsBranch
41.6%3x
48.8%3(-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x)
57.2%3y
Compiler

Compiled 9 to 10 computations (-11.1% saved)

regimes4.0ms (0.1%)

Memory
9.9MiB live, 9.9MiB allocated
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
31.7%1x
31.7%1(-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x)
31.7%1y
Compiler

Compiled 9 to 10 computations (-11.1% saved)

bsearch47.0ms (1.2%)

Memory
3.0MiB live, 38.7MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
31.0ms
3.4909090081593182e-9
2.1920665196445656e-5
13.0ms
-4.061340444896115e+19
-2.192703273593631e-6
Samples
12.0ms304×0valid
Compiler

Compiled 238 to 258 computations (-8.4% saved)

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

bsearch140.0ms (3.5%)

Memory
-18.1MiB live, 24.9MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
8.0ms
3.119575401621391e-11
3.4909090081593182e-9
8.0ms
-2.177921403776248e-18
-4.477511230801352e-20
Samples
9.0ms224×0valid
Compiler

Compiled 164 to 165 computations (-0.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 4.0ms
ival-mult: 2.0ms (48% of total)
ival-sub: 1.0ms (24% of total)
ival-add: 1.0ms (24% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

bsearch21.0ms (0.5%)

Memory
22.1MiB live, 22.1MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
10.0ms
3.3891083955664994e-77
2.5562906465777543e-73
9.0ms
-1.9214155110343272e-148
-3.112197959572462e-150
Samples
9.0ms240×0valid
Compiler

Compiled 130 to 161 computations (-23.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 4.0ms
ival-mult: 2.0ms (45.6% of total)
ival-sub: 1.0ms (22.8% of total)
ival-add: 1.0ms (22.8% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

bsearch122.0ms (3%)

Memory
-5.4MiB live, 33.1MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
114.0ms
0.0011096829717200426
2432862.161240797
6.0ms
-24311908176144.426
-7493838014539.406
Samples
9.0ms224×0valid
Compiler

Compiled 122 to 165 computations (-35.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 4.0ms
ival-mult: 2.0ms (45.7% of total)
ival-sub: 1.0ms (22.8% of total)
ival-add: 1.0ms (22.8% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

simplify123.0ms (3.1%)

Memory
9.5MiB live, 47.2MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
047145
176145
298145
3117145
4166145
5294145
6616145
72089145
84518145
96651145
Stop Event
node limit
Calls
Call 1
Inputs
(-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x)
(if (<=.f64 x #s(literal -1 binary64)) (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) (if (<=.f64 x #s(literal 3172839980678043/147573952589676412928 binary64)) (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x)))
(if (<=.f64 x #s(literal -1395429780731235/649037107316853453566312041152512 binary64)) (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) (if (<=.f64 x #s(literal 6769984589841923/4835703278458516698824704 binary64)) #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x)))
(if (<=.f64 y #s(literal -5470679174164527/28793048285076456849987446449190283896766061557132266451844835664715760516297522370041860391064901485759493828054533728788532902755163518009654497157537048672862208 binary64)) #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) (if (<=.f64 y #s(literal 5703700733736561/2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376 binary64)) #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y))))
(if (<=.f64 y #s(literal -7500000000000 binary64)) #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) (if (<=.f64 y #s(literal 1 binary64)) #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x)))))
#s(approx (- (* (+ x 1) y) x) (neg.f64 x))
Outputs
(-.f64 (*.f64 (+.f64 x #s(literal 1 binary64)) y) x)
(-.f64 (*.f64 y (+.f64 #s(literal 1 binary64) x)) x)
(if (<=.f64 x #s(literal -1 binary64)) (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) (if (<=.f64 x #s(literal 3172839980678043/147573952589676412928 binary64)) (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x) (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x)))
(if (or (<=.f64 x #s(literal -1 binary64)) (not (<=.f64 x #s(literal 3172839980678043/147573952589676412928 binary64)))) (-.f64 #s(approx (* (+ x 1) y) (*.f64 y x)) x) (-.f64 (*.f64 #s(approx (+ x 1) #s(literal 1 binary64)) y) x))
(if (<=.f64 x #s(literal -1395429780731235/649037107316853453566312041152512 binary64)) (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x) (if (<=.f64 x #s(literal 6769984589841923/4835703278458516698824704 binary64)) #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) (-.f64 #s(approx (* (+ x 1) y) (*.f64 x y)) x)))
(if (or (<=.f64 x #s(literal -1395429780731235/649037107316853453566312041152512 binary64)) (not (<=.f64 x #s(literal 6769984589841923/4835703278458516698824704 binary64)))) (-.f64 #s(approx (* (+ x 1) y) (*.f64 y x)) x) #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)))
(if (<=.f64 y #s(literal -5470679174164527/28793048285076456849987446449190283896766061557132266451844835664715760516297522370041860391064901485759493828054533728788532902755163518009654497157537048672862208 binary64)) #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) (if (<=.f64 y #s(literal 5703700733736561/2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376 binary64)) #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y))))
(if (or (<=.f64 y #s(literal -5470679174164527/28793048285076456849987446449190283896766061557132266451844835664715760516297522370041860391064901485759493828054533728788532902755163518009654497157537048672862208 binary64)) (not (<=.f64 y #s(literal 5703700733736561/2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376 binary64)))) #s(approx (- (* (+ x 1) y) x) (fma.f64 x y y)) #s(approx (- (* (+ x 1) y) x) (neg.f64 x)))
(if (<=.f64 y #s(literal -7500000000000 binary64)) #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x))) (if (<=.f64 y #s(literal 1 binary64)) #s(approx (- (* (+ x 1) y) x) (neg.f64 x)) #s(approx (- (* (+ x 1) y) x) #s(approx (+ (* x y) y) (*.f64 y x)))))
(if (or (<=.f64 y #s(literal -7500000000000 binary64)) (not (<=.f64 y #s(literal 1 binary64)))) #s(approx (- (* (+ x 1) y) x) #s(approx (* (+ x 1) y) (*.f64 y x))) #s(approx (- (* (+ x 1) y) x) (neg.f64 x)))
#s(approx (- (* (+ x 1) y) x) (neg.f64 x))

soundness846.0ms (21%)

Memory
-18.6MiB live, 305.6MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
041291
1140291
2379291
31034291
42586291
53919291
64685291
75628291
86155291
96717291
107760291
08169250
0441058
11491058
24021058
310661058
426261058
539461058
647051058
756471058
861741058
967381058
1077811058
08190915
Stop Event
done
iter limit
node limit
iter limit
node limit
Compiler

Compiled 118 to 77 computations (34.7% saved)

preprocess79.0ms (2%)

Memory
-2.6MiB live, 112.9MiB allocated
Compiler

Compiled 184 to 100 computations (45.7% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...