ENA, Section 1.4, Exercise 4b, n=2

Time bar (total: 4.4s)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated

analyze0.0ms (0%)

Memory
0.8MiB live, 0.8MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%25.7%74.3%0%0%0%0
100%25.7%0%74.3%0%0%0%1
Compiler

Compiled 25 to 18 computations (28% saved)

sample1.2s (26.7%)

Memory
17.9MiB live, 1 623.4MiB allocated
Samples
386.0ms5 120×0valid
350.0ms2 646×1valid
86.0ms490×2valid
Precisions
Click to see histograms. Total time spent on operations: 572.0ms
ival-pow2: 232.0ms (40.6% of total)
ival-add: 94.0ms (16.4% of total)
ival-<=: 81.0ms (14.2% of total)
adjust: 73.0ms (12.8% of total)
ival-sub: 53.0ms (9.3% of total)
ival-and: 20.0ms (3.5% of total)
exact: 16.0ms (2.8% of total)
ival-assert: 3.0ms (0.5% of total)
Bogosity

explain117.0ms (2.6%)

Memory
5.8MiB live, 118.0MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
840-0-(-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))
00-0-eps
00-0-(pow.f64 x #s(literal 2 binary64))
00-0-#s(literal 2 binary64)
00-0-(pow.f64 (+.f64 x eps) #s(literal 2 binary64))
00-0-(+.f64 x eps)
00-0-x
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
-.f64(-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))cancellation841
Confusion
Predicted +Predicted -
+841
-0171
Precision
1.0
Recall
0.9882352941176471
Confusion?
Predicted +Predicted MaybePredicted -
+8410
-00171
Precision?
1.0
Recall?
1.0
Freqs
test
numberfreq
0172
184
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
23.0ms194×1valid
19.0ms292×0valid
4.0ms26×2valid
Compiler

Compiled 59 to 25 computations (57.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 29.0ms
ival-pow2: 17.0ms (59% of total)
adjust: 4.0ms (13.9% of total)
ival-add: 4.0ms (13.9% of total)
ival-sub: 3.0ms (10.4% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

preprocess455.0ms (10.3%)

Memory
19.9MiB live, 220.3MiB allocated
Algorithm
egg-herbie
Rules
18 770×lower-fma.f64
18 770×lower-fma.f32
2 836×lower-*.f64
2 836×lower-*.f32
2 498×lower-+.f32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01955
14547
214945
354235
4166035
5380035
6526935
7598935
8621635
9632235
10634335
11634335
12634335
13634335
14643435
15676235
16756035
17799635
079
0119
1169
2369
3969
42767
58617
623747
742777
859217
969137
1073387
1176067
1276127
1376127
080476
Stop Event
iter limit
node limit
iter limit
node limit
Calls
Call 1
Inputs
(-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))
Outputs
(-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))
(*.f64 (fma.f64 #s(literal 2 binary64) x eps) eps)
Compiler

Compiled 9 to 7 computations (22.2% saved)

eval0.0ms (0%)

Memory
0.3MiB live, 0.3MiB allocated
Compiler

Compiled 0 to 2 computations (-∞% saved)

prune1.0ms (0%)

Memory
0.8MiB live, 0.8MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
71.8%
(-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))
Compiler

Compiled 9 to 7 computations (22.2% saved)

simplify218.0ms (4.9%)

Memory
-61.6MiB live, 134.3MiB allocated
Algorithm
egg-herbie
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(+.f64 x eps)
cost-diff0
(pow.f64 (+.f64 x eps) #s(literal 2 binary64))
cost-diff6144
(pow.f64 x #s(literal 2 binary64))
cost-diff6464
(-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))
Rules
18 770×lower-fma.f64
18 770×lower-fma.f32
2 836×lower-*.f64
2 836×lower-*.f32
2 498×lower-+.f32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0723
01123
11623
23623
39623
427621
586121
6237421
7427721
8592121
9691321
10733821
11760621
12761221
13761221
0804720
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
(-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))
(pow.f64 (+.f64 x eps) #s(literal 2 binary64))
(+.f64 x eps)
x
eps
#s(literal 2 binary64)
(pow.f64 x #s(literal 2 binary64))
Outputs
(-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))
(*.f64 (fma.f64 #s(literal 2 binary64) x eps) eps)
(pow.f64 (+.f64 x eps) #s(literal 2 binary64))
(pow.f64 (+.f64 eps x) #s(literal 2 binary64))
(+.f64 x eps)
(+.f64 eps x)
x
eps
#s(literal 2 binary64)
(pow.f64 x #s(literal 2 binary64))
(*.f64 x x)

localize28.0ms (0.6%)

Memory
28.4MiB live, 28.4MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0
(pow.f64 x #s(literal 2 binary64))
accuracy0
(+.f64 x eps)
accuracy0.01953125
(pow.f64 (+.f64 x eps) #s(literal 2 binary64))
accuracy17.996090199367508
(-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))
Samples
11.0ms97×1valid
8.0ms146×0valid
2.0ms13×2valid
Compiler

Compiled 25 to 9 computations (64% saved)

Precisions
Click to see histograms. Total time spent on operations: 13.0ms
ival-pow2: 7.0ms (52.4% of total)
adjust: 2.0ms (15% of total)
ival-add: 2.0ms (15% of total)
ival-sub: 2.0ms (15% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series9.0ms (0.2%)

Memory
-29.0MiB live, 9.1MiB allocated
Counts
4 → 84
Calls
Call 1
Inputs
#s(alt (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) (patch (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())
#s(alt (pow.f64 x #s(literal 2 binary64)) (patch (pow.f64 x #s(literal 2 binary64)) #<representation binary64>) () ())
#s(alt (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (patch (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) #<representation binary64>) () ())
#s(alt (+.f64 x eps) (patch (+.f64 x eps) #<representation binary64>) () ())
Outputs
#s(alt (* 2 (* eps x)) (taylor 0 eps) (#s(alt (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) (patch (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* eps (+ eps (* 2 x))) (taylor 0 eps) (#s(alt (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) (patch (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* eps (+ eps (* 2 x))) (taylor 0 eps) (#s(alt (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) (patch (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* eps (+ eps (* 2 x))) (taylor 0 eps) (#s(alt (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) (patch (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 eps) (#s(alt (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (patch (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ (* 2 (* eps x)) (pow x 2)) (taylor 0 eps) (#s(alt (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (patch (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ (* eps (+ eps (* 2 x))) (pow x 2)) (taylor 0 eps) (#s(alt (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (patch (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ (* eps (+ eps (* 2 x))) (pow x 2)) (taylor 0 eps) (#s(alt (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (patch (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt x (taylor 0 eps) (#s(alt (+.f64 x eps) (patch (+.f64 x eps) #<representation binary64>) () ())) ())
#s(alt (+ eps x) (taylor 0 eps) (#s(alt (+.f64 x eps) (patch (+.f64 x eps) #<representation binary64>) () ())) ())
#s(alt (+ eps x) (taylor 0 eps) (#s(alt (+.f64 x eps) (patch (+.f64 x eps) #<representation binary64>) () ())) ())
#s(alt (+ eps x) (taylor 0 eps) (#s(alt (+.f64 x eps) (patch (+.f64 x eps) #<representation binary64>) () ())) ())
#s(alt (pow eps 2) (taylor inf eps) (#s(alt (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) (patch (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow eps 2) (+ 1 (* 2 (/ x eps)))) (taylor inf eps) (#s(alt (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) (patch (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow eps 2) (+ 1 (* 2 (/ x eps)))) (taylor inf eps) (#s(alt (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) (patch (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow eps 2) (+ 1 (* 2 (/ x eps)))) (taylor inf eps) (#s(alt (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) (patch (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (pow eps 2) (taylor inf eps) (#s(alt (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (patch (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow eps 2) (+ 1 (* 2 (/ x eps)))) (taylor inf eps) (#s(alt (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (patch (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow eps 2) (+ 1 (+ (* 2 (/ x eps)) (/ (pow x 2) (pow eps 2))))) (taylor inf eps) (#s(alt (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (patch (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow eps 2) (+ 1 (+ (* 2 (/ x eps)) (/ (pow x 2) (pow eps 2))))) (taylor inf eps) (#s(alt (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (patch (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt eps (taylor inf eps) (#s(alt (+.f64 x eps) (patch (+.f64 x eps) #<representation binary64>) () ())) ())
#s(alt (* eps (+ 1 (/ x eps))) (taylor inf eps) (#s(alt (+.f64 x eps) (patch (+.f64 x eps) #<representation binary64>) () ())) ())
#s(alt (* eps (+ 1 (/ x eps))) (taylor inf eps) (#s(alt (+.f64 x eps) (patch (+.f64 x eps) #<representation binary64>) () ())) ())
#s(alt (* eps (+ 1 (/ x eps))) (taylor inf eps) (#s(alt (+.f64 x eps) (patch (+.f64 x eps) #<representation binary64>) () ())) ())
#s(alt (pow eps 2) (taylor -inf eps) (#s(alt (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) (patch (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow eps 2) (+ 1 (* 2 (/ x eps)))) (taylor -inf eps) (#s(alt (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) (patch (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow eps 2) (+ 1 (* 2 (/ x eps)))) (taylor -inf eps) (#s(alt (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) (patch (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow eps 2) (+ 1 (* 2 (/ x eps)))) (taylor -inf eps) (#s(alt (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) (patch (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (pow eps 2) (taylor -inf eps) (#s(alt (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (patch (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow eps 2) (+ 1 (* 2 (/ x eps)))) (taylor -inf eps) (#s(alt (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (patch (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow eps 2) (+ 1 (* -1 (/ (+ (* -2 x) (* -1 (/ (pow x 2) eps))) eps)))) (taylor -inf eps) (#s(alt (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (patch (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow eps 2) (+ 1 (* -1 (/ (+ (* -2 x) (* -1 (/ (pow x 2) eps))) eps)))) (taylor -inf eps) (#s(alt (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (patch (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt eps (taylor -inf eps) (#s(alt (+.f64 x eps) (patch (+.f64 x eps) #<representation binary64>) () ())) ())
#s(alt (* -1 (* eps (- (* -1 (/ x eps)) 1))) (taylor -inf eps) (#s(alt (+.f64 x eps) (patch (+.f64 x eps) #<representation binary64>) () ())) ())
#s(alt (* -1 (* eps (- (* -1 (/ x eps)) 1))) (taylor -inf eps) (#s(alt (+.f64 x eps) (patch (+.f64 x eps) #<representation binary64>) () ())) ())
#s(alt (* -1 (* eps (- (* -1 (/ x eps)) 1))) (taylor -inf eps) (#s(alt (+.f64 x eps) (patch (+.f64 x eps) #<representation binary64>) () ())) ())
#s(alt (pow eps 2) (taylor 0 x) (#s(alt (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) (patch (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ (* 2 (* eps x)) (pow eps 2)) (taylor 0 x) (#s(alt (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) (patch (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ (* 2 (* eps x)) (pow eps 2)) (taylor 0 x) (#s(alt (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) (patch (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ (* 2 (* eps x)) (pow eps 2)) (taylor 0 x) (#s(alt (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) (patch (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (pow.f64 x #s(literal 2 binary64)) (patch (pow.f64 x #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (pow.f64 x #s(literal 2 binary64)) (patch (pow.f64 x #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (pow.f64 x #s(literal 2 binary64)) (patch (pow.f64 x #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (pow.f64 x #s(literal 2 binary64)) (patch (pow.f64 x #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow eps 2) (taylor 0 x) (#s(alt (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (patch (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ (* 2 (* eps x)) (pow eps 2)) (taylor 0 x) (#s(alt (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (patch (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ (* x (+ x (* 2 eps))) (pow eps 2)) (taylor 0 x) (#s(alt (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (patch (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ (* x (+ x (* 2 eps))) (pow eps 2)) (taylor 0 x) (#s(alt (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (patch (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt eps (taylor 0 x) (#s(alt (+.f64 x eps) (patch (+.f64 x eps) #<representation binary64>) () ())) ())
#s(alt (+ eps x) (taylor 0 x) (#s(alt (+.f64 x eps) (patch (+.f64 x eps) #<representation binary64>) () ())) ())
#s(alt (+ eps x) (taylor 0 x) (#s(alt (+.f64 x eps) (patch (+.f64 x eps) #<representation binary64>) () ())) ())
#s(alt (+ eps x) (taylor 0 x) (#s(alt (+.f64 x eps) (patch (+.f64 x eps) #<representation binary64>) () ())) ())
#s(alt (* 2 (* eps x)) (taylor inf x) (#s(alt (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) (patch (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* x (+ (* 2 eps) (/ (pow eps 2) x))) (taylor inf x) (#s(alt (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) (patch (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* x (+ (* 2 eps) (/ (pow eps 2) x))) (taylor inf x) (#s(alt (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) (patch (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* x (+ (* 2 eps) (/ (pow eps 2) x))) (taylor inf x) (#s(alt (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) (patch (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (pow.f64 x #s(literal 2 binary64)) (patch (pow.f64 x #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (pow.f64 x #s(literal 2 binary64)) (patch (pow.f64 x #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (pow.f64 x #s(literal 2 binary64)) (patch (pow.f64 x #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (pow.f64 x #s(literal 2 binary64)) (patch (pow.f64 x #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (patch (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1 (* 2 (/ eps x)))) (taylor inf x) (#s(alt (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (patch (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1 (+ (* 2 (/ eps x)) (/ (pow eps 2) (pow x 2))))) (taylor inf x) (#s(alt (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (patch (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1 (+ (* 2 (/ eps x)) (/ (pow eps 2) (pow x 2))))) (taylor inf x) (#s(alt (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (patch (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt x (taylor inf x) (#s(alt (+.f64 x eps) (patch (+.f64 x eps) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (/ eps x))) (taylor inf x) (#s(alt (+.f64 x eps) (patch (+.f64 x eps) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (/ eps x))) (taylor inf x) (#s(alt (+.f64 x eps) (patch (+.f64 x eps) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (/ eps x))) (taylor inf x) (#s(alt (+.f64 x eps) (patch (+.f64 x eps) #<representation binary64>) () ())) ())
#s(alt (* 2 (* eps x)) (taylor -inf x) (#s(alt (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) (patch (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x))))) (taylor -inf x) (#s(alt (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) (patch (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x))))) (taylor -inf x) (#s(alt (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) (patch (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x))))) (taylor -inf x) (#s(alt (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) (patch (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (pow.f64 x #s(literal 2 binary64)) (patch (pow.f64 x #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (pow.f64 x #s(literal 2 binary64)) (patch (pow.f64 x #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (pow.f64 x #s(literal 2 binary64)) (patch (pow.f64 x #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (pow.f64 x #s(literal 2 binary64)) (patch (pow.f64 x #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (patch (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1 (* 2 (/ eps x)))) (taylor -inf x) (#s(alt (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (patch (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1 (* -1 (/ (+ (* -2 eps) (* -1 (/ (pow eps 2) x))) x)))) (taylor -inf x) (#s(alt (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (patch (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1 (* -1 (/ (+ (* -2 eps) (* -1 (/ (pow eps 2) x))) x)))) (taylor -inf x) (#s(alt (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (patch (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt x (taylor -inf x) (#s(alt (+.f64 x eps) (patch (+.f64 x eps) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (- (* -1 (/ eps x)) 1))) (taylor -inf x) (#s(alt (+.f64 x eps) (patch (+.f64 x eps) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (- (* -1 (/ eps x)) 1))) (taylor -inf x) (#s(alt (+.f64 x eps) (patch (+.f64 x eps) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (- (* -1 (/ eps x)) 1))) (taylor -inf x) (#s(alt (+.f64 x eps) (patch (+.f64 x eps) #<representation binary64>) () ())) ())
Calls

6 calls:

TimeVariablePointExpression
4.0ms
eps
@inf
((- (pow (+ x eps) 2) (pow x 2)) (pow x 2) (pow (+ x eps) 2) (+ x eps))
1.0ms
x
@-inf
((- (pow (+ x eps) 2) (pow x 2)) (pow x 2) (pow (+ x eps) 2) (+ x eps))
1.0ms
x
@inf
((- (pow (+ x eps) 2) (pow x 2)) (pow x 2) (pow (+ x eps) 2) (+ x eps))
1.0ms
eps
@-inf
((- (pow (+ x eps) 2) (pow x 2)) (pow x 2) (pow (+ x eps) 2) (+ x eps))
1.0ms
eps
@0
((- (pow (+ x eps) 2) (pow x 2)) (pow x 2) (pow (+ x eps) 2) (+ x eps))

simplify145.0ms (3.3%)

Memory
26.8MiB live, 98.9MiB allocated
Algorithm
egg-herbie
Rules
9 222×lower-fma.f64
9 222×lower-fma.f32
3 242×lower-*.f64
3 242×lower-*.f32
1 646×lower--.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
069438
1214438
2570438
31803438
44151438
57221438
08070390
Stop Event
iter limit
node limit
Counts
84 → 78
Calls
Call 1
Inputs
(* 2 (* eps x))
(* eps (+ eps (* 2 x)))
(* eps (+ eps (* 2 x)))
(* eps (+ eps (* 2 x)))
(pow x 2)
(+ (* 2 (* eps x)) (pow x 2))
(+ (* eps (+ eps (* 2 x))) (pow x 2))
(+ (* eps (+ eps (* 2 x))) (pow x 2))
x
(+ eps x)
(+ eps x)
(+ eps x)
(pow eps 2)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(pow eps 2)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(* (pow eps 2) (+ 1 (+ (* 2 (/ x eps)) (/ (pow x 2) (pow eps 2)))))
(* (pow eps 2) (+ 1 (+ (* 2 (/ x eps)) (/ (pow x 2) (pow eps 2)))))
eps
(* eps (+ 1 (/ x eps)))
(* eps (+ 1 (/ x eps)))
(* eps (+ 1 (/ x eps)))
(pow eps 2)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(pow eps 2)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(* (pow eps 2) (+ 1 (* -1 (/ (+ (* -2 x) (* -1 (/ (pow x 2) eps))) eps))))
(* (pow eps 2) (+ 1 (* -1 (/ (+ (* -2 x) (* -1 (/ (pow x 2) eps))) eps))))
eps
(* -1 (* eps (- (* -1 (/ x eps)) 1)))
(* -1 (* eps (- (* -1 (/ x eps)) 1)))
(* -1 (* eps (- (* -1 (/ x eps)) 1)))
(pow eps 2)
(+ (* 2 (* eps x)) (pow eps 2))
(+ (* 2 (* eps x)) (pow eps 2))
(+ (* 2 (* eps x)) (pow eps 2))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(pow eps 2)
(+ (* 2 (* eps x)) (pow eps 2))
(+ (* x (+ x (* 2 eps))) (pow eps 2))
(+ (* x (+ x (* 2 eps))) (pow eps 2))
eps
(+ eps x)
(+ eps x)
(+ eps x)
(* 2 (* eps x))
(* x (+ (* 2 eps) (/ (pow eps 2) x)))
(* x (+ (* 2 eps) (/ (pow eps 2) x)))
(* x (+ (* 2 eps) (/ (pow eps 2) x)))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(* (pow x 2) (+ 1 (* 2 (/ eps x))))
(* (pow x 2) (+ 1 (+ (* 2 (/ eps x)) (/ (pow eps 2) (pow x 2)))))
(* (pow x 2) (+ 1 (+ (* 2 (/ eps x)) (/ (pow eps 2) (pow x 2)))))
x
(* x (+ 1 (/ eps x)))
(* x (+ 1 (/ eps x)))
(* x (+ 1 (/ eps x)))
(* 2 (* eps x))
(* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x)))))
(* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x)))))
(* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x)))))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(* (pow x 2) (+ 1 (* 2 (/ eps x))))
(* (pow x 2) (+ 1 (* -1 (/ (+ (* -2 eps) (* -1 (/ (pow eps 2) x))) x))))
(* (pow x 2) (+ 1 (* -1 (/ (+ (* -2 eps) (* -1 (/ (pow eps 2) x))) x))))
x
(* -1 (* x (- (* -1 (/ eps x)) 1)))
(* -1 (* x (- (* -1 (/ eps x)) 1)))
(* -1 (* x (- (* -1 (/ eps x)) 1)))
Outputs
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* eps (+ eps (* 2 x)))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* eps (+ eps (* 2 x)))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* eps (+ eps (* 2 x)))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(pow x 2)
(*.f64 x x)
(+ (* 2 (* eps x)) (pow x 2))
(*.f64 (fma.f64 eps #s(literal 2 binary64) x) x)
(+ (* eps (+ eps (* 2 x))) (pow x 2))
(fma.f64 (fma.f64 x #s(literal 2 binary64) eps) eps (*.f64 x x))
(+ (* eps (+ eps (* 2 x))) (pow x 2))
(fma.f64 (fma.f64 x #s(literal 2 binary64) eps) eps (*.f64 x x))
x
(+ eps x)
(+.f64 x eps)
(+ eps x)
(+.f64 x eps)
(+ eps x)
(+.f64 x eps)
(pow eps 2)
(*.f64 eps eps)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(pow eps 2)
(*.f64 eps eps)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* (pow eps 2) (+ 1 (+ (* 2 (/ x eps)) (/ (pow x 2) (pow eps 2)))))
(fma.f64 (fma.f64 x #s(literal 2 binary64) eps) eps (*.f64 x x))
(* (pow eps 2) (+ 1 (+ (* 2 (/ x eps)) (/ (pow x 2) (pow eps 2)))))
(fma.f64 (fma.f64 x #s(literal 2 binary64) eps) eps (*.f64 x x))
eps
(* eps (+ 1 (/ x eps)))
(+.f64 x eps)
(* eps (+ 1 (/ x eps)))
(+.f64 x eps)
(* eps (+ 1 (/ x eps)))
(+.f64 x eps)
(pow eps 2)
(*.f64 eps eps)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(pow eps 2)
(*.f64 eps eps)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* (pow eps 2) (+ 1 (* -1 (/ (+ (* -2 x) (* -1 (/ (pow x 2) eps))) eps))))
(fma.f64 (fma.f64 x #s(literal 2 binary64) eps) eps (*.f64 x x))
(* (pow eps 2) (+ 1 (* -1 (/ (+ (* -2 x) (* -1 (/ (pow x 2) eps))) eps))))
(fma.f64 (fma.f64 x #s(literal 2 binary64) eps) eps (*.f64 x x))
eps
(* -1 (* eps (- (* -1 (/ x eps)) 1)))
(+.f64 x eps)
(* -1 (* eps (- (* -1 (/ x eps)) 1)))
(+.f64 x eps)
(* -1 (* eps (- (* -1 (/ x eps)) 1)))
(+.f64 x eps)
(pow eps 2)
(*.f64 eps eps)
(+ (* 2 (* eps x)) (pow eps 2))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(+ (* 2 (* eps x)) (pow eps 2))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(+ (* 2 (* eps x)) (pow eps 2))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow eps 2)
(*.f64 eps eps)
(+ (* 2 (* eps x)) (pow eps 2))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(+ (* x (+ x (* 2 eps))) (pow eps 2))
(fma.f64 (fma.f64 x #s(literal 2 binary64) eps) eps (*.f64 x x))
(+ (* x (+ x (* 2 eps))) (pow eps 2))
(fma.f64 (fma.f64 x #s(literal 2 binary64) eps) eps (*.f64 x x))
eps
(+ eps x)
(+.f64 x eps)
(+ eps x)
(+.f64 x eps)
(+ eps x)
(+.f64 x eps)
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* x (+ (* 2 eps) (/ (pow eps 2) x)))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* x (+ (* 2 eps) (/ (pow eps 2) x)))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* x (+ (* 2 eps) (/ (pow eps 2) x)))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(* (pow x 2) (+ 1 (* 2 (/ eps x))))
(*.f64 (fma.f64 eps #s(literal 2 binary64) x) x)
(* (pow x 2) (+ 1 (+ (* 2 (/ eps x)) (/ (pow eps 2) (pow x 2)))))
(fma.f64 (fma.f64 x #s(literal 2 binary64) eps) eps (*.f64 x x))
(* (pow x 2) (+ 1 (+ (* 2 (/ eps x)) (/ (pow eps 2) (pow x 2)))))
(fma.f64 (fma.f64 x #s(literal 2 binary64) eps) eps (*.f64 x x))
x
(* x (+ 1 (/ eps x)))
(+.f64 x eps)
(* x (+ 1 (/ eps x)))
(+.f64 x eps)
(* x (+ 1 (/ eps x)))
(+.f64 x eps)
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x)))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x)))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x)))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(* (pow x 2) (+ 1 (* 2 (/ eps x))))
(*.f64 (fma.f64 eps #s(literal 2 binary64) x) x)
(* (pow x 2) (+ 1 (* -1 (/ (+ (* -2 eps) (* -1 (/ (pow eps 2) x))) x))))
(fma.f64 (fma.f64 x #s(literal 2 binary64) eps) eps (*.f64 x x))
(* (pow x 2) (+ 1 (* -1 (/ (+ (* -2 eps) (* -1 (/ (pow eps 2) x))) x))))
(fma.f64 (fma.f64 x #s(literal 2 binary64) eps) eps (*.f64 x x))
x
(* -1 (* x (- (* -1 (/ eps x)) 1)))
(+.f64 x eps)
(* -1 (* x (- (* -1 (/ eps x)) 1)))
(+.f64 x eps)
(* -1 (* x (- (* -1 (/ eps x)) 1)))
(+.f64 x eps)

rewrite200.0ms (4.5%)

Memory
-9.8MiB live, 142.3MiB allocated
Rules
5 048×lower-fma.f64
5 048×lower-fma.f32
4 066×lower-*.f64
4 066×lower-*.f32
2 090×lower-/.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0720
01120
15220
237120
3510920
0821920
Stop Event
iter limit
node limit
iter limit
Counts
4 → 371
Calls
Call 1
Inputs
(-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))
(pow.f64 x #s(literal 2 binary64))
(pow.f64 (+.f64 x eps) #s(literal 2 binary64))
(+.f64 x eps)
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>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

eval69.0ms (1.6%)

Memory
24.2MiB live, 102.4MiB allocated
Compiler

Compiled 9 940 to 1 152 computations (88.4% saved)

prune8.0ms (0.2%)

Memory
-10.3MiB live, 27.2MiB allocated
Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New4463449
Fresh000
Picked101
Done000
Total4473450
Accuracy
100.0%
Counts
450 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
#s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps))
69.0%
#s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64)))
70.4%
#s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps))
Compiler

Compiled 17 to 16 computations (5.9% saved)

simplify194.0ms (4.4%)

Memory
29.4MiB live, 181.5MiB allocated
Algorithm
egg-herbie
Localize:

Found 8 expressions of interest:

NewMetricScoreProgram
cost-diff0
(fma.f64 x #s(literal 2 binary64) eps)
cost-diff0
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
cost-diff0
#s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps))
cost-diff0
(*.f64 x eps)
cost-diff0
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
cost-diff0
#s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64)))
cost-diff0
(*.f64 eps eps)
cost-diff0
#s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps))
Rules
18 770×lower-fma.f32
18 768×lower-fma.f64
2 836×lower-*.f32
2 828×lower-*.f64
2 498×lower-+.f64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01572
02172
13372
26372
311169
425563
582363
6230563
7422963
8587363
9687463
10730163
11756963
12757563
13757563
0801063
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
#s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps))
(*.f64 eps eps)
eps
#s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64)))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(*.f64 x eps)
x
eps
#s(literal 2 binary64)
#s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(fma.f64 x #s(literal 2 binary64) eps)
x
#s(literal 2 binary64)
eps
Outputs
#s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps))
(*.f64 eps eps)
eps
#s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64)))
#s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 #s(literal 2 binary64) eps) x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(*.f64 (*.f64 #s(literal 2 binary64) eps) x)
(*.f64 x eps)
(*.f64 eps x)
x
eps
#s(literal 2 binary64)
#s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps))
#s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 #s(literal 2 binary64) x eps) eps))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(*.f64 (fma.f64 #s(literal 2 binary64) x eps) eps)
(fma.f64 x #s(literal 2 binary64) eps)
(fma.f64 #s(literal 2 binary64) x eps)
x
#s(literal 2 binary64)
eps

localize81.0ms (1.8%)

Memory
-42.1MiB live, 93.0MiB allocated
Localize:

Found 8 expressions of interest:

NewMetricScoreProgram
accuracy0
(fma.f64 x #s(literal 2 binary64) eps)
accuracy0
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
accuracy0
#s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps))
accuracy0
(*.f64 x eps)
accuracy0.02734375
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
accuracy19.80533172827963
#s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64)))
accuracy0
(*.f64 eps eps)
accuracy18.93622390446316
#s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps))
Samples
48.0ms146×0valid
17.0ms97×1valid
3.0ms13×2valid
Compiler

Compiled 59 to 15 computations (74.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 48.0ms
ival-pow2: 33.0ms (68.2% of total)
ival-mult: 7.0ms (14.5% of total)
adjust: 3.0ms (6.2% of total)
ival-add: 3.0ms (6.2% of total)
ival-sub: 2.0ms (4.1% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series13.0ms (0.3%)

Memory
15.0MiB live, 15.0MiB allocated
Counts
8 → 180
Calls
Call 1
Inputs
#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)) #<representation binary64>) () ())
#s(alt (*.f64 eps eps) (patch (*.f64 eps eps) #<representation binary64>) () ())
#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64))) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64))) #<representation binary64>) () ())
#s(alt (*.f64 (*.f64 x eps) #s(literal 2 binary64)) (patch (*.f64 (*.f64 x eps) #s(literal 2 binary64)) #<representation binary64>) () ())
#s(alt (*.f64 x eps) (patch (*.f64 x eps) #<representation binary64>) () ())
#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)) #<representation binary64>) () ())
#s(alt (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps) (patch (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps) #<representation binary64>) () ())
#s(alt (fma.f64 x #s(literal 2 binary64) eps) (patch (fma.f64 x #s(literal 2 binary64) eps) #<representation binary64>) () ())
Outputs
#s(alt (* 2 (* eps x)) (taylor 0 eps) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)) #<representation binary64>) () ())) ())
#s(alt (* eps (+ eps (* 2 x))) (taylor 0 eps) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)) #<representation binary64>) () ())) ())
#s(alt (* eps (+ eps (* 2 x))) (taylor 0 eps) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)) #<representation binary64>) () ())) ())
#s(alt (* eps (+ eps (* 2 x))) (taylor 0 eps) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)) #<representation binary64>) () ())) ())
#s(alt (pow eps 2) (taylor 0 eps) (#s(alt (*.f64 eps eps) (patch (*.f64 eps eps) #<representation binary64>) () ())) ())
#s(alt (pow eps 2) (taylor 0 eps) (#s(alt (*.f64 eps eps) (patch (*.f64 eps eps) #<representation binary64>) () ())) ())
#s(alt (pow eps 2) (taylor 0 eps) (#s(alt (*.f64 eps eps) (patch (*.f64 eps eps) #<representation binary64>) () ())) ())
#s(alt (pow eps 2) (taylor 0 eps) (#s(alt (*.f64 eps eps) (patch (*.f64 eps eps) #<representation binary64>) () ())) ())
#s(alt (* 2 (* eps x)) (taylor 0 eps) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64))) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* eps (+ eps (* 2 x))) (taylor 0 eps) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64))) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* eps (+ eps (* 2 x))) (taylor 0 eps) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64))) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* eps (+ eps (* 2 x))) (taylor 0 eps) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64))) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* 2 (* eps x)) (taylor 0 eps) (#s(alt (*.f64 (*.f64 x eps) #s(literal 2 binary64)) (patch (*.f64 (*.f64 x eps) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 2 (* eps x)) (taylor 0 eps) (#s(alt (*.f64 (*.f64 x eps) #s(literal 2 binary64)) (patch (*.f64 (*.f64 x eps) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 2 (* eps x)) (taylor 0 eps) (#s(alt (*.f64 (*.f64 x eps) #s(literal 2 binary64)) (patch (*.f64 (*.f64 x eps) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 2 (* eps x)) (taylor 0 eps) (#s(alt (*.f64 (*.f64 x eps) #s(literal 2 binary64)) (patch (*.f64 (*.f64 x eps) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* eps x) (taylor 0 eps) (#s(alt (*.f64 x eps) (patch (*.f64 x eps) #<representation binary64>) () ())) ())
#s(alt (* eps x) (taylor 0 eps) (#s(alt (*.f64 x eps) (patch (*.f64 x eps) #<representation binary64>) () ())) ())
#s(alt (* eps x) (taylor 0 eps) (#s(alt (*.f64 x eps) (patch (*.f64 x eps) #<representation binary64>) () ())) ())
#s(alt (* eps x) (taylor 0 eps) (#s(alt (*.f64 x eps) (patch (*.f64 x eps) #<representation binary64>) () ())) ())
#s(alt (* 2 (* eps x)) (taylor 0 eps) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)) #<representation binary64>) () ())) ())
#s(alt (* eps (+ eps (* 2 x))) (taylor 0 eps) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)) #<representation binary64>) () ())) ())
#s(alt (* eps (+ eps (* 2 x))) (taylor 0 eps) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)) #<representation binary64>) () ())) ())
#s(alt (* eps (+ eps (* 2 x))) (taylor 0 eps) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)) #<representation binary64>) () ())) ())
#s(alt (* 2 (* eps x)) (taylor 0 eps) (#s(alt (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps) (patch (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps) #<representation binary64>) () ())) ())
#s(alt (* eps (+ eps (* 2 x))) (taylor 0 eps) (#s(alt (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps) (patch (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps) #<representation binary64>) () ())) ())
#s(alt (* eps (+ eps (* 2 x))) (taylor 0 eps) (#s(alt (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps) (patch (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps) #<representation binary64>) () ())) ())
#s(alt (* eps (+ eps (* 2 x))) (taylor 0 eps) (#s(alt (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps) (patch (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps) #<representation binary64>) () ())) ())
#s(alt (* 2 x) (taylor 0 eps) (#s(alt (fma.f64 x #s(literal 2 binary64) eps) (patch (fma.f64 x #s(literal 2 binary64) eps) #<representation binary64>) () ())) ())
#s(alt (+ eps (* 2 x)) (taylor 0 eps) (#s(alt (fma.f64 x #s(literal 2 binary64) eps) (patch (fma.f64 x #s(literal 2 binary64) eps) #<representation binary64>) () ())) ())
#s(alt (+ eps (* 2 x)) (taylor 0 eps) (#s(alt (fma.f64 x #s(literal 2 binary64) eps) (patch (fma.f64 x #s(literal 2 binary64) eps) #<representation binary64>) () ())) ())
#s(alt (+ eps (* 2 x)) (taylor 0 eps) (#s(alt (fma.f64 x #s(literal 2 binary64) eps) (patch (fma.f64 x #s(literal 2 binary64) eps) #<representation binary64>) () ())) ())
#s(alt (pow eps 2) (taylor inf eps) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)) #<representation binary64>) () ())) ())
#s(alt (* (pow eps 2) (+ 1 (* 2 (/ x eps)))) (taylor inf eps) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)) #<representation binary64>) () ())) ())
#s(alt (* (pow eps 2) (+ 1 (* 2 (/ x eps)))) (taylor inf eps) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)) #<representation binary64>) () ())) ())
#s(alt (* (pow eps 2) (+ 1 (* 2 (/ x eps)))) (taylor inf eps) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)) #<representation binary64>) () ())) ())
#s(alt (pow eps 2) (taylor inf eps) (#s(alt (*.f64 eps eps) (patch (*.f64 eps eps) #<representation binary64>) () ())) ())
#s(alt (pow eps 2) (taylor inf eps) (#s(alt (*.f64 eps eps) (patch (*.f64 eps eps) #<representation binary64>) () ())) ())
#s(alt (pow eps 2) (taylor inf eps) (#s(alt (*.f64 eps eps) (patch (*.f64 eps eps) #<representation binary64>) () ())) ())
#s(alt (pow eps 2) (taylor inf eps) (#s(alt (*.f64 eps eps) (patch (*.f64 eps eps) #<representation binary64>) () ())) ())
#s(alt (pow eps 2) (taylor inf eps) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64))) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow eps 2) (+ 1 (* 2 (/ x eps)))) (taylor inf eps) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64))) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow eps 2) (+ 1 (* 2 (/ x eps)))) (taylor inf eps) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64))) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow eps 2) (+ 1 (* 2 (/ x eps)))) (taylor inf eps) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64))) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* 2 (* eps x)) (taylor inf eps) (#s(alt (*.f64 (*.f64 x eps) #s(literal 2 binary64)) (patch (*.f64 (*.f64 x eps) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 2 (* eps x)) (taylor inf eps) (#s(alt (*.f64 (*.f64 x eps) #s(literal 2 binary64)) (patch (*.f64 (*.f64 x eps) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 2 (* eps x)) (taylor inf eps) (#s(alt (*.f64 (*.f64 x eps) #s(literal 2 binary64)) (patch (*.f64 (*.f64 x eps) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 2 (* eps x)) (taylor inf eps) (#s(alt (*.f64 (*.f64 x eps) #s(literal 2 binary64)) (patch (*.f64 (*.f64 x eps) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* eps x) (taylor inf eps) (#s(alt (*.f64 x eps) (patch (*.f64 x eps) #<representation binary64>) () ())) ())
#s(alt (* eps x) (taylor inf eps) (#s(alt (*.f64 x eps) (patch (*.f64 x eps) #<representation binary64>) () ())) ())
#s(alt (* eps x) (taylor inf eps) (#s(alt (*.f64 x eps) (patch (*.f64 x eps) #<representation binary64>) () ())) ())
#s(alt (* eps x) (taylor inf eps) (#s(alt (*.f64 x eps) (patch (*.f64 x eps) #<representation binary64>) () ())) ())
#s(alt (pow eps 2) (taylor inf eps) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)) #<representation binary64>) () ())) ())
#s(alt (* (pow eps 2) (+ 1 (* 2 (/ x eps)))) (taylor inf eps) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)) #<representation binary64>) () ())) ())
#s(alt (* (pow eps 2) (+ 1 (* 2 (/ x eps)))) (taylor inf eps) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)) #<representation binary64>) () ())) ())
#s(alt (* (pow eps 2) (+ 1 (* 2 (/ x eps)))) (taylor inf eps) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)) #<representation binary64>) () ())) ())
#s(alt (pow eps 2) (taylor inf eps) (#s(alt (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps) (patch (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps) #<representation binary64>) () ())) ())
#s(alt (* (pow eps 2) (+ 1 (* 2 (/ x eps)))) (taylor inf eps) (#s(alt (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps) (patch (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps) #<representation binary64>) () ())) ())
#s(alt (* (pow eps 2) (+ 1 (* 2 (/ x eps)))) (taylor inf eps) (#s(alt (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps) (patch (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps) #<representation binary64>) () ())) ())
#s(alt (* (pow eps 2) (+ 1 (* 2 (/ x eps)))) (taylor inf eps) (#s(alt (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps) (patch (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps) #<representation binary64>) () ())) ())
#s(alt eps (taylor inf eps) (#s(alt (fma.f64 x #s(literal 2 binary64) eps) (patch (fma.f64 x #s(literal 2 binary64) eps) #<representation binary64>) () ())) ())
#s(alt (* eps (+ 1 (* 2 (/ x eps)))) (taylor inf eps) (#s(alt (fma.f64 x #s(literal 2 binary64) eps) (patch (fma.f64 x #s(literal 2 binary64) eps) #<representation binary64>) () ())) ())
#s(alt (* eps (+ 1 (* 2 (/ x eps)))) (taylor inf eps) (#s(alt (fma.f64 x #s(literal 2 binary64) eps) (patch (fma.f64 x #s(literal 2 binary64) eps) #<representation binary64>) () ())) ())
#s(alt (* eps (+ 1 (* 2 (/ x eps)))) (taylor inf eps) (#s(alt (fma.f64 x #s(literal 2 binary64) eps) (patch (fma.f64 x #s(literal 2 binary64) eps) #<representation binary64>) () ())) ())
#s(alt (pow eps 2) (taylor -inf eps) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)) #<representation binary64>) () ())) ())
#s(alt (* (pow eps 2) (+ 1 (* 2 (/ x eps)))) (taylor -inf eps) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)) #<representation binary64>) () ())) ())
#s(alt (* (pow eps 2) (+ 1 (* 2 (/ x eps)))) (taylor -inf eps) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)) #<representation binary64>) () ())) ())
#s(alt (* (pow eps 2) (+ 1 (* 2 (/ x eps)))) (taylor -inf eps) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)) #<representation binary64>) () ())) ())
#s(alt (pow eps 2) (taylor -inf eps) (#s(alt (*.f64 eps eps) (patch (*.f64 eps eps) #<representation binary64>) () ())) ())
#s(alt (pow eps 2) (taylor -inf eps) (#s(alt (*.f64 eps eps) (patch (*.f64 eps eps) #<representation binary64>) () ())) ())
#s(alt (pow eps 2) (taylor -inf eps) (#s(alt (*.f64 eps eps) (patch (*.f64 eps eps) #<representation binary64>) () ())) ())
#s(alt (pow eps 2) (taylor -inf eps) (#s(alt (*.f64 eps eps) (patch (*.f64 eps eps) #<representation binary64>) () ())) ())
#s(alt (pow eps 2) (taylor -inf eps) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64))) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow eps 2) (+ 1 (* 2 (/ x eps)))) (taylor -inf eps) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64))) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow eps 2) (+ 1 (* 2 (/ x eps)))) (taylor -inf eps) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64))) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow eps 2) (+ 1 (* 2 (/ x eps)))) (taylor -inf eps) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64))) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* 2 (* eps x)) (taylor -inf eps) (#s(alt (*.f64 (*.f64 x eps) #s(literal 2 binary64)) (patch (*.f64 (*.f64 x eps) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 2 (* eps x)) (taylor -inf eps) (#s(alt (*.f64 (*.f64 x eps) #s(literal 2 binary64)) (patch (*.f64 (*.f64 x eps) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 2 (* eps x)) (taylor -inf eps) (#s(alt (*.f64 (*.f64 x eps) #s(literal 2 binary64)) (patch (*.f64 (*.f64 x eps) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 2 (* eps x)) (taylor -inf eps) (#s(alt (*.f64 (*.f64 x eps) #s(literal 2 binary64)) (patch (*.f64 (*.f64 x eps) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* eps x) (taylor -inf eps) (#s(alt (*.f64 x eps) (patch (*.f64 x eps) #<representation binary64>) () ())) ())
#s(alt (* eps x) (taylor -inf eps) (#s(alt (*.f64 x eps) (patch (*.f64 x eps) #<representation binary64>) () ())) ())
#s(alt (* eps x) (taylor -inf eps) (#s(alt (*.f64 x eps) (patch (*.f64 x eps) #<representation binary64>) () ())) ())
#s(alt (* eps x) (taylor -inf eps) (#s(alt (*.f64 x eps) (patch (*.f64 x eps) #<representation binary64>) () ())) ())
#s(alt (pow eps 2) (taylor -inf eps) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)) #<representation binary64>) () ())) ())
#s(alt (* (pow eps 2) (+ 1 (* 2 (/ x eps)))) (taylor -inf eps) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)) #<representation binary64>) () ())) ())
#s(alt (* (pow eps 2) (+ 1 (* 2 (/ x eps)))) (taylor -inf eps) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)) #<representation binary64>) () ())) ())
#s(alt (* (pow eps 2) (+ 1 (* 2 (/ x eps)))) (taylor -inf eps) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)) #<representation binary64>) () ())) ())
#s(alt (pow eps 2) (taylor -inf eps) (#s(alt (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps) (patch (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps) #<representation binary64>) () ())) ())
#s(alt (* (pow eps 2) (+ 1 (* 2 (/ x eps)))) (taylor -inf eps) (#s(alt (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps) (patch (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps) #<representation binary64>) () ())) ())
#s(alt (* (pow eps 2) (+ 1 (* 2 (/ x eps)))) (taylor -inf eps) (#s(alt (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps) (patch (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps) #<representation binary64>) () ())) ())
#s(alt (* (pow eps 2) (+ 1 (* 2 (/ x eps)))) (taylor -inf eps) (#s(alt (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps) (patch (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps) #<representation binary64>) () ())) ())
#s(alt eps (taylor -inf eps) (#s(alt (fma.f64 x #s(literal 2 binary64) eps) (patch (fma.f64 x #s(literal 2 binary64) eps) #<representation binary64>) () ())) ())
#s(alt (* -1 (* eps (- (* -2 (/ x eps)) 1))) (taylor -inf eps) (#s(alt (fma.f64 x #s(literal 2 binary64) eps) (patch (fma.f64 x #s(literal 2 binary64) eps) #<representation binary64>) () ())) ())
#s(alt (* -1 (* eps (- (* -2 (/ x eps)) 1))) (taylor -inf eps) (#s(alt (fma.f64 x #s(literal 2 binary64) eps) (patch (fma.f64 x #s(literal 2 binary64) eps) #<representation binary64>) () ())) ())
#s(alt (* -1 (* eps (- (* -2 (/ x eps)) 1))) (taylor -inf eps) (#s(alt (fma.f64 x #s(literal 2 binary64) eps) (patch (fma.f64 x #s(literal 2 binary64) eps) #<representation binary64>) () ())) ())
#s(alt (pow eps 2) (taylor 0 x) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)) #<representation binary64>) () ())) ())
#s(alt (+ (* 2 (* eps x)) (pow eps 2)) (taylor 0 x) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)) #<representation binary64>) () ())) ())
#s(alt (+ (* 2 (* eps x)) (pow eps 2)) (taylor 0 x) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)) #<representation binary64>) () ())) ())
#s(alt (+ (* 2 (* eps x)) (pow eps 2)) (taylor 0 x) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)) #<representation binary64>) () ())) ())
#s(alt (pow eps 2) (taylor 0 x) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64))) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ (* 2 (* eps x)) (pow eps 2)) (taylor 0 x) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64))) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ (* 2 (* eps x)) (pow eps 2)) (taylor 0 x) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64))) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ (* 2 (* eps x)) (pow eps 2)) (taylor 0 x) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64))) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* 2 (* eps x)) (taylor 0 x) (#s(alt (*.f64 (*.f64 x eps) #s(literal 2 binary64)) (patch (*.f64 (*.f64 x eps) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 2 (* eps x)) (taylor 0 x) (#s(alt (*.f64 (*.f64 x eps) #s(literal 2 binary64)) (patch (*.f64 (*.f64 x eps) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 2 (* eps x)) (taylor 0 x) (#s(alt (*.f64 (*.f64 x eps) #s(literal 2 binary64)) (patch (*.f64 (*.f64 x eps) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 2 (* eps x)) (taylor 0 x) (#s(alt (*.f64 (*.f64 x eps) #s(literal 2 binary64)) (patch (*.f64 (*.f64 x eps) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* eps x) (taylor 0 x) (#s(alt (*.f64 x eps) (patch (*.f64 x eps) #<representation binary64>) () ())) ())
#s(alt (* eps x) (taylor 0 x) (#s(alt (*.f64 x eps) (patch (*.f64 x eps) #<representation binary64>) () ())) ())
#s(alt (* eps x) (taylor 0 x) (#s(alt (*.f64 x eps) (patch (*.f64 x eps) #<representation binary64>) () ())) ())
#s(alt (* eps x) (taylor 0 x) (#s(alt (*.f64 x eps) (patch (*.f64 x eps) #<representation binary64>) () ())) ())
#s(alt (pow eps 2) (taylor 0 x) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)) #<representation binary64>) () ())) ())
#s(alt (+ (* 2 (* eps x)) (pow eps 2)) (taylor 0 x) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)) #<representation binary64>) () ())) ())
#s(alt (+ (* 2 (* eps x)) (pow eps 2)) (taylor 0 x) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)) #<representation binary64>) () ())) ())
#s(alt (+ (* 2 (* eps x)) (pow eps 2)) (taylor 0 x) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)) #<representation binary64>) () ())) ())
#s(alt (pow eps 2) (taylor 0 x) (#s(alt (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps) (patch (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps) #<representation binary64>) () ())) ())
#s(alt (+ (* 2 (* eps x)) (pow eps 2)) (taylor 0 x) (#s(alt (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps) (patch (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps) #<representation binary64>) () ())) ())
#s(alt (+ (* 2 (* eps x)) (pow eps 2)) (taylor 0 x) (#s(alt (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps) (patch (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps) #<representation binary64>) () ())) ())
#s(alt (+ (* 2 (* eps x)) (pow eps 2)) (taylor 0 x) (#s(alt (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps) (patch (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps) #<representation binary64>) () ())) ())
#s(alt eps (taylor 0 x) (#s(alt (fma.f64 x #s(literal 2 binary64) eps) (patch (fma.f64 x #s(literal 2 binary64) eps) #<representation binary64>) () ())) ())
#s(alt (+ eps (* 2 x)) (taylor 0 x) (#s(alt (fma.f64 x #s(literal 2 binary64) eps) (patch (fma.f64 x #s(literal 2 binary64) eps) #<representation binary64>) () ())) ())
#s(alt (+ eps (* 2 x)) (taylor 0 x) (#s(alt (fma.f64 x #s(literal 2 binary64) eps) (patch (fma.f64 x #s(literal 2 binary64) eps) #<representation binary64>) () ())) ())
#s(alt (+ eps (* 2 x)) (taylor 0 x) (#s(alt (fma.f64 x #s(literal 2 binary64) eps) (patch (fma.f64 x #s(literal 2 binary64) eps) #<representation binary64>) () ())) ())
#s(alt (* 2 (* eps x)) (taylor inf x) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)) #<representation binary64>) () ())) ())
#s(alt (* x (+ (* 2 eps) (/ (pow eps 2) x))) (taylor inf x) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)) #<representation binary64>) () ())) ())
#s(alt (* x (+ (* 2 eps) (/ (pow eps 2) x))) (taylor inf x) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)) #<representation binary64>) () ())) ())
#s(alt (* x (+ (* 2 eps) (/ (pow eps 2) x))) (taylor inf x) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)) #<representation binary64>) () ())) ())
#s(alt (* 2 (* eps x)) (taylor inf x) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64))) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* x (+ (* 2 eps) (/ (pow eps 2) x))) (taylor inf x) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64))) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* x (+ (* 2 eps) (/ (pow eps 2) x))) (taylor inf x) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64))) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* x (+ (* 2 eps) (/ (pow eps 2) x))) (taylor inf x) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64))) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* 2 (* eps x)) (taylor inf x) (#s(alt (*.f64 (*.f64 x eps) #s(literal 2 binary64)) (patch (*.f64 (*.f64 x eps) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 2 (* eps x)) (taylor inf x) (#s(alt (*.f64 (*.f64 x eps) #s(literal 2 binary64)) (patch (*.f64 (*.f64 x eps) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 2 (* eps x)) (taylor inf x) (#s(alt (*.f64 (*.f64 x eps) #s(literal 2 binary64)) (patch (*.f64 (*.f64 x eps) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 2 (* eps x)) (taylor inf x) (#s(alt (*.f64 (*.f64 x eps) #s(literal 2 binary64)) (patch (*.f64 (*.f64 x eps) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* eps x) (taylor inf x) (#s(alt (*.f64 x eps) (patch (*.f64 x eps) #<representation binary64>) () ())) ())
#s(alt (* eps x) (taylor inf x) (#s(alt (*.f64 x eps) (patch (*.f64 x eps) #<representation binary64>) () ())) ())
#s(alt (* eps x) (taylor inf x) (#s(alt (*.f64 x eps) (patch (*.f64 x eps) #<representation binary64>) () ())) ())
#s(alt (* eps x) (taylor inf x) (#s(alt (*.f64 x eps) (patch (*.f64 x eps) #<representation binary64>) () ())) ())
#s(alt (* 2 (* eps x)) (taylor inf x) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)) #<representation binary64>) () ())) ())
#s(alt (* x (+ (* 2 eps) (/ (pow eps 2) x))) (taylor inf x) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)) #<representation binary64>) () ())) ())
#s(alt (* x (+ (* 2 eps) (/ (pow eps 2) x))) (taylor inf x) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)) #<representation binary64>) () ())) ())
#s(alt (* x (+ (* 2 eps) (/ (pow eps 2) x))) (taylor inf x) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)) #<representation binary64>) () ())) ())
#s(alt (* 2 (* eps x)) (taylor inf x) (#s(alt (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps) (patch (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps) #<representation binary64>) () ())) ())
#s(alt (* x (+ (* 2 eps) (/ (pow eps 2) x))) (taylor inf x) (#s(alt (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps) (patch (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps) #<representation binary64>) () ())) ())
#s(alt (* x (+ (* 2 eps) (/ (pow eps 2) x))) (taylor inf x) (#s(alt (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps) (patch (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps) #<representation binary64>) () ())) ())
#s(alt (* x (+ (* 2 eps) (/ (pow eps 2) x))) (taylor inf x) (#s(alt (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps) (patch (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps) #<representation binary64>) () ())) ())
#s(alt (* 2 x) (taylor inf x) (#s(alt (fma.f64 x #s(literal 2 binary64) eps) (patch (fma.f64 x #s(literal 2 binary64) eps) #<representation binary64>) () ())) ())
#s(alt (* x (+ 2 (/ eps x))) (taylor inf x) (#s(alt (fma.f64 x #s(literal 2 binary64) eps) (patch (fma.f64 x #s(literal 2 binary64) eps) #<representation binary64>) () ())) ())
#s(alt (* x (+ 2 (/ eps x))) (taylor inf x) (#s(alt (fma.f64 x #s(literal 2 binary64) eps) (patch (fma.f64 x #s(literal 2 binary64) eps) #<representation binary64>) () ())) ())
#s(alt (* x (+ 2 (/ eps x))) (taylor inf x) (#s(alt (fma.f64 x #s(literal 2 binary64) eps) (patch (fma.f64 x #s(literal 2 binary64) eps) #<representation binary64>) () ())) ())
#s(alt (* 2 (* eps x)) (taylor -inf x) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x))))) (taylor -inf x) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x))))) (taylor -inf x) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x))))) (taylor -inf x) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)) #<representation binary64>) () ())) ())
#s(alt (* 2 (* eps x)) (taylor -inf x) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64))) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x))))) (taylor -inf x) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64))) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x))))) (taylor -inf x) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64))) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x))))) (taylor -inf x) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64))) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* 2 (* eps x)) (taylor -inf x) (#s(alt (*.f64 (*.f64 x eps) #s(literal 2 binary64)) (patch (*.f64 (*.f64 x eps) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 2 (* eps x)) (taylor -inf x) (#s(alt (*.f64 (*.f64 x eps) #s(literal 2 binary64)) (patch (*.f64 (*.f64 x eps) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 2 (* eps x)) (taylor -inf x) (#s(alt (*.f64 (*.f64 x eps) #s(literal 2 binary64)) (patch (*.f64 (*.f64 x eps) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 2 (* eps x)) (taylor -inf x) (#s(alt (*.f64 (*.f64 x eps) #s(literal 2 binary64)) (patch (*.f64 (*.f64 x eps) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* eps x) (taylor -inf x) (#s(alt (*.f64 x eps) (patch (*.f64 x eps) #<representation binary64>) () ())) ())
#s(alt (* eps x) (taylor -inf x) (#s(alt (*.f64 x eps) (patch (*.f64 x eps) #<representation binary64>) () ())) ())
#s(alt (* eps x) (taylor -inf x) (#s(alt (*.f64 x eps) (patch (*.f64 x eps) #<representation binary64>) () ())) ())
#s(alt (* eps x) (taylor -inf x) (#s(alt (*.f64 x eps) (patch (*.f64 x eps) #<representation binary64>) () ())) ())
#s(alt (* 2 (* eps x)) (taylor -inf x) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x))))) (taylor -inf x) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x))))) (taylor -inf x) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x))))) (taylor -inf x) (#s(alt #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)) (patch #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)) #<representation binary64>) () ())) ())
#s(alt (* 2 (* eps x)) (taylor -inf x) (#s(alt (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps) (patch (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x))))) (taylor -inf x) (#s(alt (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps) (patch (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x))))) (taylor -inf x) (#s(alt (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps) (patch (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x))))) (taylor -inf x) (#s(alt (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps) (patch (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps) #<representation binary64>) () ())) ())
#s(alt (* 2 x) (taylor -inf x) (#s(alt (fma.f64 x #s(literal 2 binary64) eps) (patch (fma.f64 x #s(literal 2 binary64) eps) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (- (* -1 (/ eps x)) 2))) (taylor -inf x) (#s(alt (fma.f64 x #s(literal 2 binary64) eps) (patch (fma.f64 x #s(literal 2 binary64) eps) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (- (* -1 (/ eps x)) 2))) (taylor -inf x) (#s(alt (fma.f64 x #s(literal 2 binary64) eps) (patch (fma.f64 x #s(literal 2 binary64) eps) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (- (* -1 (/ eps x)) 2))) (taylor -inf x) (#s(alt (fma.f64 x #s(literal 2 binary64) eps) (patch (fma.f64 x #s(literal 2 binary64) eps) #<representation binary64>) () ())) ())
Calls

6 calls:

TimeVariablePointExpression
2.0ms
x
@inf
((- (pow (+ x eps) 2) (pow x 2)) (* eps eps) (- (pow (+ x eps) 2) (pow x 2)) (* (* x eps) 2) (* x eps) (- (pow (+ x eps) 2) (pow x 2)) (* (+ (* x 2) eps) eps) (+ (* x 2) eps))
2.0ms
eps
@0
((- (pow (+ x eps) 2) (pow x 2)) (* eps eps) (- (pow (+ x eps) 2) (pow x 2)) (* (* x eps) 2) (* x eps) (- (pow (+ x eps) 2) (pow x 2)) (* (+ (* x 2) eps) eps) (+ (* x 2) eps))
1.0ms
eps
@-inf
((- (pow (+ x eps) 2) (pow x 2)) (* eps eps) (- (pow (+ x eps) 2) (pow x 2)) (* (* x eps) 2) (* x eps) (- (pow (+ x eps) 2) (pow x 2)) (* (+ (* x 2) eps) eps) (+ (* x 2) eps))
1.0ms
eps
@inf
((- (pow (+ x eps) 2) (pow x 2)) (* eps eps) (- (pow (+ x eps) 2) (pow x 2)) (* (* x eps) 2) (* x eps) (- (pow (+ x eps) 2) (pow x 2)) (* (+ (* x 2) eps) eps) (+ (* x 2) eps))
1.0ms
x
@-inf
((- (pow (+ x eps) 2) (pow x 2)) (* eps eps) (- (pow (+ x eps) 2) (pow x 2)) (* (* x eps) 2) (* x eps) (- (pow (+ x eps) 2) (pow x 2)) (* (+ (* x 2) eps) eps) (+ (* x 2) eps))

simplify129.0ms (2.9%)

Memory
1.3MiB live, 74.8MiB allocated
Algorithm
egg-herbie
Rules
4 690×lower-*.f64
4 690×lower-*.f32
2 808×lower-fma.f64
2 808×lower-fma.f32
1 166×div-sub
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
038930
1121930
2287930
3748930
41882930
53583930
65323930
76382930
86964930
08119840
Stop Event
iter limit
node limit
Counts
180 → 177
Calls
Call 1
Inputs
(* 2 (* eps x))
(* eps (+ eps (* 2 x)))
(* eps (+ eps (* 2 x)))
(* eps (+ eps (* 2 x)))
(pow eps 2)
(pow eps 2)
(pow eps 2)
(pow eps 2)
(* 2 (* eps x))
(* eps (+ eps (* 2 x)))
(* eps (+ eps (* 2 x)))
(* eps (+ eps (* 2 x)))
(* 2 (* eps x))
(* 2 (* eps x))
(* 2 (* eps x))
(* 2 (* eps x))
(* eps x)
(* eps x)
(* eps x)
(* eps x)
(* 2 (* eps x))
(* eps (+ eps (* 2 x)))
(* eps (+ eps (* 2 x)))
(* eps (+ eps (* 2 x)))
(* 2 (* eps x))
(* eps (+ eps (* 2 x)))
(* eps (+ eps (* 2 x)))
(* eps (+ eps (* 2 x)))
(* 2 x)
(+ eps (* 2 x))
(+ eps (* 2 x))
(+ eps (* 2 x))
(pow eps 2)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(pow eps 2)
(pow eps 2)
(pow eps 2)
(pow eps 2)
(pow eps 2)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(* 2 (* eps x))
(* 2 (* eps x))
(* 2 (* eps x))
(* 2 (* eps x))
(* eps x)
(* eps x)
(* eps x)
(* eps x)
(pow eps 2)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(pow eps 2)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
eps
(* eps (+ 1 (* 2 (/ x eps))))
(* eps (+ 1 (* 2 (/ x eps))))
(* eps (+ 1 (* 2 (/ x eps))))
(pow eps 2)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(pow eps 2)
(pow eps 2)
(pow eps 2)
(pow eps 2)
(pow eps 2)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(* 2 (* eps x))
(* 2 (* eps x))
(* 2 (* eps x))
(* 2 (* eps x))
(* eps x)
(* eps x)
(* eps x)
(* eps x)
(pow eps 2)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(pow eps 2)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
eps
(* -1 (* eps (- (* -2 (/ x eps)) 1)))
(* -1 (* eps (- (* -2 (/ x eps)) 1)))
(* -1 (* eps (- (* -2 (/ x eps)) 1)))
(pow eps 2)
(+ (* 2 (* eps x)) (pow eps 2))
(+ (* 2 (* eps x)) (pow eps 2))
(+ (* 2 (* eps x)) (pow eps 2))
(pow eps 2)
(+ (* 2 (* eps x)) (pow eps 2))
(+ (* 2 (* eps x)) (pow eps 2))
(+ (* 2 (* eps x)) (pow eps 2))
(* 2 (* eps x))
(* 2 (* eps x))
(* 2 (* eps x))
(* 2 (* eps x))
(* eps x)
(* eps x)
(* eps x)
(* eps x)
(pow eps 2)
(+ (* 2 (* eps x)) (pow eps 2))
(+ (* 2 (* eps x)) (pow eps 2))
(+ (* 2 (* eps x)) (pow eps 2))
(pow eps 2)
(+ (* 2 (* eps x)) (pow eps 2))
(+ (* 2 (* eps x)) (pow eps 2))
(+ (* 2 (* eps x)) (pow eps 2))
eps
(+ eps (* 2 x))
(+ eps (* 2 x))
(+ eps (* 2 x))
(* 2 (* eps x))
(* x (+ (* 2 eps) (/ (pow eps 2) x)))
(* x (+ (* 2 eps) (/ (pow eps 2) x)))
(* x (+ (* 2 eps) (/ (pow eps 2) x)))
(* 2 (* eps x))
(* x (+ (* 2 eps) (/ (pow eps 2) x)))
(* x (+ (* 2 eps) (/ (pow eps 2) x)))
(* x (+ (* 2 eps) (/ (pow eps 2) x)))
(* 2 (* eps x))
(* 2 (* eps x))
(* 2 (* eps x))
(* 2 (* eps x))
(* eps x)
(* eps x)
(* eps x)
(* eps x)
(* 2 (* eps x))
(* x (+ (* 2 eps) (/ (pow eps 2) x)))
(* x (+ (* 2 eps) (/ (pow eps 2) x)))
(* x (+ (* 2 eps) (/ (pow eps 2) x)))
(* 2 (* eps x))
(* x (+ (* 2 eps) (/ (pow eps 2) x)))
(* x (+ (* 2 eps) (/ (pow eps 2) x)))
(* x (+ (* 2 eps) (/ (pow eps 2) x)))
(* 2 x)
(* x (+ 2 (/ eps x)))
(* x (+ 2 (/ eps x)))
(* x (+ 2 (/ eps x)))
(* 2 (* eps x))
(* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x)))))
(* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x)))))
(* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x)))))
(* 2 (* eps x))
(* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x)))))
(* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x)))))
(* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x)))))
(* 2 (* eps x))
(* 2 (* eps x))
(* 2 (* eps x))
(* 2 (* eps x))
(* eps x)
(* eps x)
(* eps x)
(* eps x)
(* 2 (* eps x))
(* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x)))))
(* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x)))))
(* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x)))))
(* 2 (* eps x))
(* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x)))))
(* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x)))))
(* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x)))))
(* 2 x)
(* -1 (* x (- (* -1 (/ eps x)) 2)))
(* -1 (* x (- (* -1 (/ eps x)) 2)))
(* -1 (* x (- (* -1 (/ eps x)) 2)))
Outputs
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* eps (+ eps (* 2 x)))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* eps (+ eps (* 2 x)))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* eps (+ eps (* 2 x)))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(pow eps 2)
(*.f64 eps eps)
(pow eps 2)
(*.f64 eps eps)
(pow eps 2)
(*.f64 eps eps)
(pow eps 2)
(*.f64 eps eps)
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* eps (+ eps (* 2 x)))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* eps (+ eps (* 2 x)))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* eps (+ eps (* 2 x)))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* eps x)
(*.f64 x eps)
(* eps x)
(*.f64 x eps)
(* eps x)
(*.f64 x eps)
(* eps x)
(*.f64 x eps)
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* eps (+ eps (* 2 x)))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* eps (+ eps (* 2 x)))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* eps (+ eps (* 2 x)))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* eps (+ eps (* 2 x)))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* eps (+ eps (* 2 x)))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* eps (+ eps (* 2 x)))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* 2 x)
(*.f64 x #s(literal 2 binary64))
(+ eps (* 2 x))
(fma.f64 x #s(literal 2 binary64) eps)
(+ eps (* 2 x))
(fma.f64 x #s(literal 2 binary64) eps)
(+ eps (* 2 x))
(fma.f64 x #s(literal 2 binary64) eps)
(pow eps 2)
(*.f64 eps eps)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(pow eps 2)
(*.f64 eps eps)
(pow eps 2)
(*.f64 eps eps)
(pow eps 2)
(*.f64 eps eps)
(pow eps 2)
(*.f64 eps eps)
(pow eps 2)
(*.f64 eps eps)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* eps x)
(*.f64 x eps)
(* eps x)
(*.f64 x eps)
(* eps x)
(*.f64 x eps)
(* eps x)
(*.f64 x eps)
(pow eps 2)
(*.f64 eps eps)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(pow eps 2)
(*.f64 eps eps)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
eps
(* eps (+ 1 (* 2 (/ x eps))))
(fma.f64 x #s(literal 2 binary64) eps)
(* eps (+ 1 (* 2 (/ x eps))))
(fma.f64 x #s(literal 2 binary64) eps)
(* eps (+ 1 (* 2 (/ x eps))))
(fma.f64 x #s(literal 2 binary64) eps)
(pow eps 2)
(*.f64 eps eps)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(pow eps 2)
(*.f64 eps eps)
(pow eps 2)
(*.f64 eps eps)
(pow eps 2)
(*.f64 eps eps)
(pow eps 2)
(*.f64 eps eps)
(pow eps 2)
(*.f64 eps eps)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* eps x)
(*.f64 x eps)
(* eps x)
(*.f64 x eps)
(* eps x)
(*.f64 x eps)
(* eps x)
(*.f64 x eps)
(pow eps 2)
(*.f64 eps eps)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(pow eps 2)
(*.f64 eps eps)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
eps
(* -1 (* eps (- (* -2 (/ x eps)) 1)))
(fma.f64 x #s(literal 2 binary64) eps)
(* -1 (* eps (- (* -2 (/ x eps)) 1)))
(fma.f64 x #s(literal 2 binary64) eps)
(* -1 (* eps (- (* -2 (/ x eps)) 1)))
(fma.f64 x #s(literal 2 binary64) eps)
(pow eps 2)
(*.f64 eps eps)
(+ (* 2 (* eps x)) (pow eps 2))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(+ (* 2 (* eps x)) (pow eps 2))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(+ (* 2 (* eps x)) (pow eps 2))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(pow eps 2)
(*.f64 eps eps)
(+ (* 2 (* eps x)) (pow eps 2))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(+ (* 2 (* eps x)) (pow eps 2))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(+ (* 2 (* eps x)) (pow eps 2))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* eps x)
(*.f64 x eps)
(* eps x)
(*.f64 x eps)
(* eps x)
(*.f64 x eps)
(* eps x)
(*.f64 x eps)
(pow eps 2)
(*.f64 eps eps)
(+ (* 2 (* eps x)) (pow eps 2))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(+ (* 2 (* eps x)) (pow eps 2))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(+ (* 2 (* eps x)) (pow eps 2))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(pow eps 2)
(*.f64 eps eps)
(+ (* 2 (* eps x)) (pow eps 2))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(+ (* 2 (* eps x)) (pow eps 2))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(+ (* 2 (* eps x)) (pow eps 2))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
eps
(+ eps (* 2 x))
(fma.f64 x #s(literal 2 binary64) eps)
(+ eps (* 2 x))
(fma.f64 x #s(literal 2 binary64) eps)
(+ eps (* 2 x))
(fma.f64 x #s(literal 2 binary64) eps)
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* x (+ (* 2 eps) (/ (pow eps 2) x)))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* x (+ (* 2 eps) (/ (pow eps 2) x)))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* x (+ (* 2 eps) (/ (pow eps 2) x)))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* x (+ (* 2 eps) (/ (pow eps 2) x)))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* x (+ (* 2 eps) (/ (pow eps 2) x)))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* x (+ (* 2 eps) (/ (pow eps 2) x)))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* eps x)
(*.f64 x eps)
(* eps x)
(*.f64 x eps)
(* eps x)
(*.f64 x eps)
(* eps x)
(*.f64 x eps)
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* x (+ (* 2 eps) (/ (pow eps 2) x)))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* x (+ (* 2 eps) (/ (pow eps 2) x)))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* x (+ (* 2 eps) (/ (pow eps 2) x)))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* x (+ (* 2 eps) (/ (pow eps 2) x)))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* x (+ (* 2 eps) (/ (pow eps 2) x)))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* x (+ (* 2 eps) (/ (pow eps 2) x)))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* 2 x)
(*.f64 x #s(literal 2 binary64))
(* x (+ 2 (/ eps x)))
(fma.f64 x #s(literal 2 binary64) eps)
(* x (+ 2 (/ eps x)))
(fma.f64 x #s(literal 2 binary64) eps)
(* x (+ 2 (/ eps x)))
(fma.f64 x #s(literal 2 binary64) eps)
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x)))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x)))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x)))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x)))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x)))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x)))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* eps x)
(*.f64 x eps)
(* eps x)
(*.f64 x eps)
(* eps x)
(*.f64 x eps)
(* eps x)
(*.f64 x eps)
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x)))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x)))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x)))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x)))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x)))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x)))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* 2 x)
(*.f64 x #s(literal 2 binary64))
(* -1 (* x (- (* -1 (/ eps x)) 2)))
(fma.f64 x #s(literal 2 binary64) eps)
(* -1 (* x (- (* -1 (/ eps x)) 2)))
(fma.f64 x #s(literal 2 binary64) eps)
(* -1 (* x (- (* -1 (/ eps x)) 2)))
(fma.f64 x #s(literal 2 binary64) eps)

rewrite161.0ms (3.6%)

Memory
8.1MiB live, 162.5MiB allocated
Rules
7 382×lower-fma.f32
7 380×lower-fma.f64
4 502×lower-*.f32
4 494×lower-*.f64
2 820×lower-/.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01565
02165
17865
252265
3668065
0823965
Stop Event
iter limit
node limit
iter limit
Counts
8 → 134
Calls
Call 1
Inputs
#s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps))
(*.f64 eps eps)
#s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64)))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(*.f64 x eps)
#s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(fma.f64 x #s(literal 2 binary64) eps)
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>

eval47.0ms (1.1%)

Memory
-26.9MiB live, 61.7MiB allocated
Compiler

Compiled 4 012 to 535 computations (86.7% saved)

prune14.0ms (0.3%)

Memory
29.7MiB live, 29.7MiB allocated
Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New3101311
Fresh000
Picked123
Done000
Total3113314
Accuracy
100.0%
Counts
314 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
#s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps))
69.1%
#s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 #s(literal 2 binary64) x) eps))
70.4%
#s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps))
Compiler

Compiled 17 to 16 computations (5.9% saved)

simplify262.0ms (5.9%)

Memory
-28.1MiB live, 125.5MiB allocated
Algorithm
egg-herbie
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 #s(literal 2 binary64) x)
cost-diff0
(*.f64 (*.f64 #s(literal 2 binary64) x) eps)
cost-diff0
#s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 #s(literal 2 binary64) x) eps))
Rules
19 760×lower-fma.f64
19 760×lower-fma.f32
3 068×lower-*.f32
3 064×lower-*.f64
2 498×lower-+.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01026
01226
12126
24826
310426
424724
581924
6231224
7422224
8586124
9686124
10728724
11755524
12756124
13756124
0813623
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
#s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 #s(literal 2 binary64) x) eps))
(*.f64 (*.f64 #s(literal 2 binary64) x) eps)
(*.f64 #s(literal 2 binary64) x)
#s(literal 2 binary64)
x
eps
Outputs
#s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 #s(literal 2 binary64) x) eps))
(*.f64 (*.f64 #s(literal 2 binary64) x) eps)
(*.f64 #s(literal 2 binary64) x)
#s(literal 2 binary64)
x
eps

localize35.0ms (0.8%)

Memory
7.1MiB live, 42.6MiB allocated
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
accuracy0
(*.f64 (*.f64 #s(literal 2 binary64) x) eps)
accuracy0
(*.f64 #s(literal 2 binary64) x)
accuracy19.80533172827963
#s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 #s(literal 2 binary64) x) eps))
Samples
12.0ms97×1valid
10.0ms146×0valid
2.0ms13×2valid
Compiler

Compiled 22 to 11 computations (50% saved)

Precisions
Click to see histograms. Total time spent on operations: 16.0ms
ival-pow2: 7.0ms (42.5% of total)
ival-mult: 3.0ms (18.2% of total)
adjust: 2.0ms (12.1% of total)
ival-add: 2.0ms (12.1% of total)
ival-sub: 2.0ms (12.1% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series6.0ms (0.1%)

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

6 calls:

TimeVariablePointExpression
1.0ms
x
@-inf
((- (pow (+ x eps) 2) (pow x 2)) (* (* 2 x) eps) (* 2 x))
1.0ms
x
@inf
((- (pow (+ x eps) 2) (pow x 2)) (* (* 2 x) eps) (* 2 x))
1.0ms
x
@0
((- (pow (+ x eps) 2) (pow x 2)) (* (* 2 x) eps) (* 2 x))
1.0ms
eps
@0
((- (pow (+ x eps) 2) (pow x 2)) (* (* 2 x) eps) (* 2 x))
1.0ms
eps
@inf
((- (pow (+ x eps) 2) (pow x 2)) (* (* 2 x) eps) (* 2 x))

simplify134.0ms (3%)

Memory
4.6MiB live, 130.0MiB allocated
Algorithm
egg-herbie
Rules
4 314×lower-fma.f64
4 314×lower-fma.f32
3 424×lower-*.f64
3 424×lower-*.f32
1 468×div-sub
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
026306
176306
2189306
3450306
41284306
52340306
64430306
77001306
08156288
Stop Event
iter limit
node limit
Counts
60 → 60
Calls
Call 1
Inputs
(* 2 (* eps x))
(* eps (+ eps (* 2 x)))
(* eps (+ eps (* 2 x)))
(* eps (+ eps (* 2 x)))
(* 2 (* eps x))
(* 2 (* eps x))
(* 2 (* eps x))
(* 2 (* eps x))
(pow eps 2)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(* 2 (* eps x))
(* 2 (* eps x))
(* 2 (* eps x))
(* 2 (* eps x))
(pow eps 2)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(* 2 (* eps x))
(* 2 (* eps x))
(* 2 (* eps x))
(* 2 (* eps x))
(pow eps 2)
(+ (* 2 (* eps x)) (pow eps 2))
(+ (* 2 (* eps x)) (pow eps 2))
(+ (* 2 (* eps x)) (pow eps 2))
(* 2 (* eps x))
(* 2 (* eps x))
(* 2 (* eps x))
(* 2 (* eps x))
(* 2 x)
(* 2 x)
(* 2 x)
(* 2 x)
(* 2 (* eps x))
(* x (+ (* 2 eps) (/ (pow eps 2) x)))
(* x (+ (* 2 eps) (/ (pow eps 2) x)))
(* x (+ (* 2 eps) (/ (pow eps 2) x)))
(* 2 (* eps x))
(* 2 (* eps x))
(* 2 (* eps x))
(* 2 (* eps x))
(* 2 x)
(* 2 x)
(* 2 x)
(* 2 x)
(* 2 (* eps x))
(* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x)))))
(* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x)))))
(* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x)))))
(* 2 (* eps x))
(* 2 (* eps x))
(* 2 (* eps x))
(* 2 (* eps x))
(* 2 x)
(* 2 x)
(* 2 x)
(* 2 x)
Outputs
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* eps (+ eps (* 2 x)))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* eps (+ eps (* 2 x)))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* eps (+ eps (* 2 x)))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(pow eps 2)
(*.f64 eps eps)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(pow eps 2)
(*.f64 eps eps)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* (pow eps 2) (+ 1 (* 2 (/ x eps))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(pow eps 2)
(*.f64 eps eps)
(+ (* 2 (* eps x)) (pow eps 2))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(+ (* 2 (* eps x)) (pow eps 2))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(+ (* 2 (* eps x)) (pow eps 2))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* 2 x)
(*.f64 x #s(literal 2 binary64))
(* 2 x)
(*.f64 x #s(literal 2 binary64))
(* 2 x)
(*.f64 x #s(literal 2 binary64))
(* 2 x)
(*.f64 x #s(literal 2 binary64))
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* x (+ (* 2 eps) (/ (pow eps 2) x)))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* x (+ (* 2 eps) (/ (pow eps 2) x)))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* x (+ (* 2 eps) (/ (pow eps 2) x)))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* 2 x)
(*.f64 x #s(literal 2 binary64))
(* 2 x)
(*.f64 x #s(literal 2 binary64))
(* 2 x)
(*.f64 x #s(literal 2 binary64))
(* 2 x)
(*.f64 x #s(literal 2 binary64))
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x)))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x)))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* -1 (* x (+ (* -2 eps) (* -1 (/ (pow eps 2) x)))))
(*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps)
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* 2 (* eps x))
(*.f64 (*.f64 x eps) #s(literal 2 binary64))
(* 2 x)
(*.f64 x #s(literal 2 binary64))
(* 2 x)
(*.f64 x #s(literal 2 binary64))
(* 2 x)
(*.f64 x #s(literal 2 binary64))
(* 2 x)
(*.f64 x #s(literal 2 binary64))

rewrite181.0ms (4.1%)

Memory
-14.3MiB live, 215.1MiB allocated
Rules
4 988×lower-fma.f64
4 988×lower-fma.f32
3 946×lower-*.f32
3 942×lower-*.f64
2 090×lower-/.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01023
01223
15623
238123
3512223
0815523
Stop Event
iter limit
node limit
iter limit
Counts
3 → 13
Calls
Call 1
Inputs
#s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 #s(literal 2 binary64) x) eps))
(*.f64 (*.f64 #s(literal 2 binary64) x) eps)
(*.f64 #s(literal 2 binary64) x)
Outputs
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

eval6.0ms (0.1%)

Memory
14.5MiB live, 14.5MiB allocated
Compiler

Compiled 502 to 49 computations (90.2% saved)

prune5.0ms (0.1%)

Memory
13.5MiB live, 13.5MiB allocated
Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New73073
Fresh000
Picked011
Done022
Total73376
Accuracy
100.0%
Counts
76 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
#s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps))
69.1%
#s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 #s(literal 2 binary64) x) eps))
70.4%
#s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps))
Compiler

Compiled 49 to 34 computations (30.6% saved)

regimes39.0ms (0.9%)

Memory
-31.9MiB live, 18.5MiB allocated
Counts
5 → 1
Calls
Call 1
Inputs
#s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps))
#s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 #s(literal 2 binary64) x) eps))
#s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64)))
#s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps))
(-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))
Outputs
#s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps))
Calls

3 calls:

34.0ms
x
2.0ms
eps
2.0ms
(-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))
Results
AccuracySegmentsBranch
100.0%1x
100.0%1eps
100.0%1(-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))
Compiler

Compiled 11 to 11 computations (0% saved)

regimes6.0ms (0.1%)

Memory
16.4MiB live, 16.4MiB allocated
Counts
3 → 2
Calls
Call 1
Inputs
#s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps))
#s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 #s(literal 2 binary64) x) eps))
#s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 x eps) #s(literal 2 binary64)))
Outputs
#s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 #s(literal 2 binary64) x) eps))
#s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps))
Calls

3 calls:

2.0ms
eps
2.0ms
x
2.0ms
(-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))
Results
AccuracySegmentsBranch
95.0%3x
87.8%3eps
98.2%2(-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))
Compiler

Compiled 11 to 11 computations (0% saved)

regimes4.0ms (0.1%)

Memory
12.2MiB live, 12.2MiB allocated
Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

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

3 calls:

1.0ms
eps
1.0ms
x
1.0ms
(-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))
Results
AccuracySegmentsBranch
70.4%1eps
70.4%1x
70.4%1(-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))
Compiler

Compiled 11 to 11 computations (0% saved)

bsearch0.0ms (0%)

Memory
0.6MiB live, 0.6MiB allocated
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.0
5e-324
Compiler

Compiled 12 to 12 computations (0% saved)

simplify27.0ms (0.6%)

Memory
-12.9MiB live, 60.9MiB allocated
Algorithm
egg-herbie
Rules
*-commutative-binary64-*.f64
+-commutative-binary64-+.f64
sub-neg-binary64-neg.f64-+.f64--.f64
neg-sub0-binary64--.f64-neg.f64
neg-mul-1-binary64-*.f64-neg.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02269
12869
23269
33469
43569
Stop Event
saturated
Calls
Call 1
Inputs
#s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps))
(if (<=.f64 (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) #s(literal 0 binary64)) #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 #s(literal 2 binary64) x) eps)) #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)))
#s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps))
Outputs
#s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (fma.f64 x #s(literal 2 binary64) eps) eps))
(if (<=.f64 (-.f64 (pow.f64 (+.f64 x eps) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) #s(literal 0 binary64)) #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 #s(literal 2 binary64) x) eps)) #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)))
(if (<=.f64 (-.f64 (pow.f64 (+.f64 eps x) #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) #s(literal 0 binary64)) #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 (*.f64 #s(literal 2 binary64) x) eps)) #s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps)))
#s(approx (- (pow (+ x eps) 2) (pow x 2)) (*.f64 eps eps))

soundness605.0ms (13.7%)

Memory
15.5MiB live, 340.4MiB allocated
Rules
9 222×lower-fma.f64
9 222×lower-fma.f32
7 382×lower-fma.f32
7 380×lower-fma.f64
4 502×lower-*.f32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01565
02165
17865
252265
3668065
0823965
069438
1214438
2570438
31803438
44151438
57221438
08070390
Stop Event
done
iter limit
node limit
iter limit
node limit
iter limit
Compiler

Compiled 50 to 37 computations (26% saved)

preprocess36.0ms (0.8%)

Memory
-22.1MiB live, 57.5MiB allocated
Compiler

Compiled 84 to 50 computations (40.5% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...