'Helper function of LDLdecomposition.
Without the error checks.
To be used privately.'

def _LDLdecomposition(self):

    D = zeros(self.rows, self.rows)
    L = eye(self.rows)
    for i in range(self.rows):
        for j in range(i):
            L[(i, j)] = ((1 / D[(j, j)]) * (self[(i, j)] - sum((((L[(i, k)] * L[(j, k)]) * D[(k, k)]) for k in range(j)))))
        D[(i, i)] = (self[(i, i)] - sum((((L[(i, k)] ** 2) * D[(k, k)]) for k in range(i))))
    return (self._new(L), self._new(D))
