///|
/// The lower Cholesky factor of a symmetric positive-definite matrix `a`, so
/// that `a = l * l^T`.
///
/// The factor is what the Kalman gain is solved with: a Cholesky solve costs
/// half an LU solve and never needs pivoting for a covariance.
pub fn cholesky(a : Mat) -> Mat raise Refused {
  let n = a.rows
  if a.rows != a.cols {
    raise Refused::Dimension(got=a.cols, want=a.rows)
  }
  if n == 0 {
    raise Refused::Empty
  }
  let l = Mat::zeros(n, n)
  for j in 0.. Mat raise Refused {
  let n = l.rows
  if b.rows != n {
    raise Refused::Dimension(got=b.rows, want=n)
  }
  let width = b.cols
  let y = Mat::zeros(n, width)
  for i in 0..=..0 {
    for j in 0..