docs: def lu_slogdet(LU):
      r"""Natural logarithm of a LU decomposition.
  
      Args:
          LU (tuple): LU decomposition.
  
      Returns:
          tuple: sign and log-determinant.
      """
      LU = (asarray(LU[0], float), asarray(LU[1], float))
      adet = _sum(log(_abs(LU[0].diagonal())))
  
      s = prod(sign(LU[0].diagonal()))
  
      nrows_exchange = LU[1].size - _sum(LU[1] == arange(LU[1].size, dtype="int32"))
  
      odd = nrows_exchange % 2 == 1
      if odd:
          s *= -1.0
  
      return (s, adet)