[docs]definner_product(X,mat):""" Inner-product induced vector norm implementation. Returns square of norm defined by the inner product ``(x,x)_C := x^T C^-1 x`` Parameters ---------- X : (M, N) array_like Input array. N = number of samples, M = dimension mat : (M, M) array_like Positive-definite operator which induces the inner product Returns ------- Z : (N, 1) ndarray inner-product of each column in ``X`` with respect to ``mat`` """Y=np.linalg.inv(mat)@Xresult=np.sum(X*Y,axis=0)returnresult
[docs]defnorm_predicted(operator,inputs,initial_mean,initial_cov):ifisinstance(initial_cov,int)orisinstance(initial_cov,float):initial_cov=initial_cov*np.eye(len(initial_mean))predicted_cov=operator@initial_cov@operator.T# if operator is affine, we can factor it (for efficiency) to be same as linearX=operator@(inputs-initial_mean.T).Treturninner_product(X,predicted_cov)