diff --git a/src/sage/matrix/matrix2.pyx b/src/sage/matrix/matrix2.pyx index 7d319bd54b9..bb935a2ae8c 100644 --- a/src/sage/matrix/matrix2.pyx +++ b/src/sage/matrix/matrix2.pyx @@ -12620,6 +12620,13 @@ cdef class Matrix(Matrix1): sage: A.cholesky() [ 1.0 0.0] [-1.0*I 1.0] + + Try the trivial case (:trac:`33107`):: + + sage: all( matrix(R,[]).cholesky() == matrix(R,[]) + ....: for R in (RR,CC,RDF,CDF,ZZ,QQ,AA,QQbar) ) + True + """ cdef Matrix C # output matrix C = self.fetch('cholesky') @@ -12631,6 +12638,12 @@ cdef class Matrix(Matrix1): if not self.is_hermitian(): raise ValueError("matrix is not Hermitian") + if n == 0: + # The trivial matrix has a trivial cholesky decomposition. + # We special-case this after is_hermitian() to ensure that + # the matrix is square. + return self + # Use classical=True to ensure that we don't get a permuted L. cdef Matrix L # block_ldlt() results cdef list d # block_ldlt() results