def jitterChol(A, dim, jitter): A_jitter = A + jitter * T.eye(dim) cA = myCholesky()(A_jitter) cA.name = 'c' + A.name return cA
def jitterChol(A, dim, jitter): A_jitter = A + jitter * T.eye(dim) cA = myCholesky()(A_jitter) cA.name = "c" + A.name return cA
def cholInvLogDet(A, dim, jitter, fast=False): A_jitter = A + jitter * T.eye(dim) cA = myCholesky()(A_jitter) cA.name = 'c' + A.name if fast: (iA, logDetA) = invLogDet(cA) else: iA = nlinalg.matrix_inverse(A_jitter) #logDetA = T.log( nlinalg.Det()(A_jitter) ) logDetA = 2.0 * T.sum(T.log(T.abs_(T.diag(cA)))) iA.name = 'i' + A.name logDetA.name = 'logDet' + A.name return (cA, iA, logDetA)
def cholInvLogDet(A, dim, jitter, fast=False): A_jitter = A + jitter * T.eye(dim) cA = myCholesky()(A_jitter) cA.name = "c" + A.name if fast: (iA, logDetA) = invLogDet(cA) else: iA = nlinalg.matrix_inverse(A_jitter) # logDetA = T.log( nlinalg.Det()(A_jitter) ) logDetA = 2.0 * T.sum(T.log(T.abs_(T.diag(cA)))) iA.name = "i" + A.name logDetA.name = "logDet" + A.name return (cA, iA, logDetA)