Skip to content

Commit 638f783

Browse files
authored
Refined epsilon handling: consider boundary values as equal (#14)
Changed epsilon comparisons from "<" to "<=" so values exactly at epsilon are treated as equal.
1 parent 5586377 commit 638f783

File tree

2 files changed

+3
-3
lines changed

2 files changed

+3
-3
lines changed

misc/generate.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ def barycentric(X, Y, xx, dist, epsilon):
8686
for k in range(n):
8787
for i, xi in enumerate(xx):
8888
xdiff = xi - X[k]
89-
if mp.fabs(xdiff) < epsilon:
89+
if mp.fabs(xdiff) <= epsilon:
9090
exact[i] = k
9191
else:
9292
temp = c[k] / xdiff

spline/generate_step.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,10 +85,10 @@ def generate_test_case(params):
8585
for x in xx:
8686
while cur_segment + 1 < len(X) - 1 and X[cur_segment + 1] <= x:
8787
cur_segment += 1
88-
if mp.fabs(x - X[cur_segment]) < float64_eps:
88+
if mp.fabs(x - X[cur_segment]) <= float64_eps:
8989
yy.append(Y[cur_segment])
9090
continue
91-
if mp.fabs(x - X[cur_segment+1]) < float64_eps:
91+
if mp.fabs(x - X[cur_segment+1]) <= float64_eps:
9292
yy.append(Y[cur_segment+1])
9393
continue
9494
match type:

0 commit comments

Comments
 (0)