def grad(theta, i): # gradient of the ith eigenvalue of K with respect to theta K = np.zeros((n, n)) _ratematrix.build_ratemat(np.exp(theta), n, None, K) w, V = scipy.linalg.eig(K) order = np.argsort(np.real(w)) V = np.real(np.ascontiguousarray(V[:, order])) U = np.ascontiguousarray(scipy.linalg.inv(V).T) g = np.zeros(len(theta)) for u in range(len(theta)): dKu = np.zeros((n, n)) _ratematrix.dK_dtheta_A(np.exp(theta), n, u, None, None, dKu) out = np.zeros(n) temp = np.zeros(n) _ratematrix.dw_du(dKu, U, V, n, temp, out) g[u] = out[i] return g
def grad(theta, i): # gradient of the ith eigenvalue of K with respect to theta K = np.zeros((n, n)) _ratematrix.build_ratemat(theta, n, K) w, V = scipy.linalg.eig(K) order = np.argsort(np.real(w)) V = np.real(np.ascontiguousarray(V[:, order])) U = np.ascontiguousarray(scipy.linalg.inv(V).T) g = np.zeros(len(theta)) for u in range(len(theta)): dKu = np.zeros((n, n)) _ratematrix.dK_dtheta_ij(theta, n, u, None, dKu) out = np.zeros(n) temp = np.zeros(n) _ratematrix.dw_du(dKu, U, V, n, temp, out) g[u] = out[i] return g