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

def _cholesky(self):

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