def _realize(sys, radii, T, Tinv=None):
"""Helper function for producing a RealizerResult."""
sys = LinearSystem(sys)
r = np.asarray(radii, dtype=np.float64)
if r.ndim == 0:
r = np.ones(len(sys)) * r
elif r.ndim > 1:
raise ValueError("radii (%s) must be a 1-dim array or scalar" % (
radii,))
elif len(r) != len(sys):
raise ValueError("radii (%s) length must match state dimension %d" % (
radii, len(sys)))
T = T * r[None, :]
if Tinv is None: # this needs to be computed eventually anyways
Tinv = inv(T)
else:
Tinv = Tinv / r[:, None]
return RealizerResult(sys, T, Tinv, sys.transform(T, Tinv))
评论列表
文章目录