コード例 #1
0
ファイル: psd.py プロジェクト: j-towns/pymanopt
 def dist(self, x, y):
     # Adapted from equation 6.13 of "Positive definite matrices". Chol
     # decomp gives the same result as matrix sqrt. There may be a more
     # efficient way to compute this!
     c = np.linalg.cholesky(x)
     c_inv = np.linalg.inv(c)
     l = multilog(multiprod(multiprod(c_inv, y), multitransp(c_inv)),
                  pos_def=True)
     return la.norm(multiprod(multiprod(c, l), c_inv))
コード例 #2
0
ファイル: psd.py プロジェクト: vishalbelsare/pymanopt
 def dist(self, x, y):
     # Adapted from equation 6.13 of "Positive definite matrices". The
     # Cholesky decomposition gives the same result as matrix sqrt. There
     # may be more efficient ways to compute this.
     c = la.cholesky(x)
     c_inv = la.inv(c)
     logm = multilog(multiprod(multiprod(c_inv, y), multitransp(c_inv)),
                     pos_def=True)
     return la.norm(logm)
コード例 #3
0
 def dist(self, x, y):
     # Adapted from equation 6.13 of "Positive definite matrices". Chol
     # decomp gives the same result as matrix sqrt. There may be a more
     # efficient way to compute this!
     c = np.linalg.cholesky(x)
     c_inv = np.linalg.inv(c)
     l = multilog(multiprod(multiprod(c_inv, y), multitransp(c_inv)),
                  pos_def=True)
     return la.norm(multiprod(multiprod(c, l), c_inv))
コード例 #4
0
ファイル: test_multi_tools.py プロジェクト: agoel00/MBAweb
 def test_multilog(self):
     A = np.zeros((self.k, self.m, self.m))
     L = np.zeros((self.k, self.m, self.m))
     for i in range(self.k):
         a = np.diag(rnd.rand(self.m))
         q, r = la.qr(rnd.randn(self.m, self.m))
         A[i] = q.dot(a.dot(q.T))
         L[i] = logm(A[i])
     np_testing.assert_allclose(multilog(A, pos_def=True), L)
コード例 #5
0
ファイル: test_multi.py プロジェクト: pymanopt/pymanopt
 def test_multilog(self):
     A = np.zeros((self.k, self.m, self.m))
     l = np.zeros((self.k, self.m, self.m))
     for i in range(self.k):
         a = np.diag(rnd.rand(self.m))
         q, r = la.qr(rnd.randn(self.m, self.m))
         A[i] = q.dot(a.dot(q.T))
         l[i] = logm(A[i])
     np_testing.assert_allclose(multilog(A, pos_def=True), l)
コード例 #6
0
 def dist(self, x, y):
     c = la.cholesky(x)
     c_inv = la.inv(c)
     logm = multilog(multiprod(multiprod(c_inv, y), multihconj(c_inv)),
                     pos_def=True)
     return np.real(la.norm(logm))
コード例 #7
0
ファイル: psd.py プロジェクト: vishalbelsare/pymanopt
 def log(self, x, y):
     c = la.cholesky(x)
     c_inv = la.inv(c)
     logm = multilog(multiprod(multiprod(c_inv, y), multitransp(c_inv)),
                     pos_def=True)
     return multiprod(multiprod(c, logm), multitransp(c))
コード例 #8
0
ファイル: psd.py プロジェクト: j-towns/pymanopt
 def log(self, x, y):
     c = la.cholesky(x)
     c_inv = la.inv(c)
     l = multilog(multiprod(multiprod(c_inv, y), multitransp(c_inv)),
                  pos_def=True)
     return multiprod(multiprod(c, l), multitransp(c))
コード例 #9
0
ファイル: test_multi_tools.py プロジェクト: agoel00/MBAweb
 def test_multilog_singlemat(self):
     a = np.diag(rnd.rand(self.m))
     q, r = la.qr(rnd.randn(self.m, self.m))
     # A is a positive definite matrix
     A = q.dot(a.dot(q.T))
     np_testing.assert_allclose(multilog(A, pos_def=True), logm(A))
コード例 #10
0
ファイル: test_multi.py プロジェクト: pymanopt/pymanopt
 def test_multilog_singlemat(self):
     a = np.diag(rnd.rand(self.m))
     q, r = la.qr(rnd.randn(self.m, self.m))
     # A is a positive definite matrix
     A = q.dot(a.dot(q.T))
     np_testing.assert_allclose(multilog(A, pos_def=True), logm(A))