def _updated_mat(self, mat, v, diag):
# Get dense matrix defined by its square root, which is an update of `mat`:
# A = (mat + v D v^T) (mat + v D v^T)^T
# D is the diagonal matrix with `diag` on the diagonal.
# If diag is None, then it defaults to the identity matrix, so DV^T = V^T
if diag is None:
diag_vt = array_ops.matrix_transpose(v)
else:
diag_mat = array_ops.matrix_diag(diag)
diag_vt = math_ops.matmul(diag_mat, v, adjoint_b=True)
v_diag_vt = math_ops.matmul(v, diag_vt)
sqrt = mat + v_diag_vt
a = math_ops.matmul(sqrt, sqrt, adjoint_b=True)
return a.eval()
operator_pd_vdvt_update_test.py 文件源码
python
阅读 21
收藏 0
点赞 0
评论 0
评论列表
文章目录