Non-pivoted batched LDL factorization.

Performs the LDL factorization, using the outer product algorithm from [1]. No pivoting (or block pivoting) is done, so this should be less stable than e.g. Bunch-Kaufman sytrf. This is implemented as a tf.foldl, so should have gradients and be accelerator-friendly, but is not particularly performant.

If compiling with XLA, make sure any surrounding GradientTape is also XLA-compiled (b/193584244).


[1]: Gene H. Golub, Charles F. Van Loan. Matrix Computations, 4th ed., 2013.

matrix A batch of symmetric square matrices, with shape [..., n, n].
name Python str name prefixed to Ops created by this function. Default value: 'no_pivot_ldl'.

triangular_factor The unit lower triangular L factor of the LDL factorization of matrix, with the same shape [..., n, n]. Callers should check for nans and other indicators of instability.
diag The diagonal from the LDL factorization, with shape [..., n].