def _is_feasible(kind, enforce_feasibility, f0):
keyword = kind[0]
if keyword == "equals":
lb = np.asarray(kind[1], dtype=float)
ub = np.asarray(kind[1], dtype=float)
elif keyword == "greater":
lb = np.asarray(kind[1], dtype=float)
ub = np.full_like(lb, np.inf, dtype=float)
elif keyword == "less":
ub = np.asarray(kind[1], dtype=float)
lb = np.full_like(ub, -np.inf, dtype=float)
elif keyword == "interval":
lb = np.asarray(kind[1], dtype=float)
ub = np.asarray(kind[2], dtype=float)
else:
raise RuntimeError("Never be here.")
return ((lb[enforce_feasibility] <= f0[enforce_feasibility]).all()
and (f0[enforce_feasibility] <= ub[enforce_feasibility]).all())
评论列表
文章目录