Avoid redundant computation in PiecewiseLinear.

This commit is contained in:
Fangjun Kuang 2025-04-09 11:51:03 +08:00
parent 86bd16d496
commit 87bfde892d

View File

@ -160,8 +160,10 @@ class PiecewiseLinear(object):
extra_x_vals.append(extra_x_val) extra_x_vals.append(extra_x_val)
if len(extra_x_vals) > 0: if len(extra_x_vals) > 0:
x_vals = sorted(set(x_vals + extra_x_vals)) x_vals = sorted(set(x_vals + extra_x_vals))
y_vals1 = [self(x) for x in x_vals]
y_vals2 = [p(x) for x in x_vals] y_vals1 = [self(x) for x in x_vals]
y_vals2 = [p(x) for x in x_vals]
return ( return (
PiecewiseLinear(*zip(x_vals, y_vals1)), PiecewiseLinear(*zip(x_vals, y_vals1)),
PiecewiseLinear(*zip(x_vals, y_vals2)), PiecewiseLinear(*zip(x_vals, y_vals2)),