def _lower_triangular_solve(self, rhs):
        X = zeros(self.rows, rhs.cols)
        for j in range(rhs.cols):
            for i in range(self.rows):
                if self[i, i] == 0:
                    raise TypeError("Matrix must be non-singular.")
                X[i, j] = (rhs[i, j] - sum(self[i, k]*X[k, j]
                    for k in range(i))) / self[i, i]
        return self._new(X)
Helper function of function lower_triangular_solve.
dataset/ETHPy150Open sympy/sympy/sympy/matrices/dense.py/DenseMatrix._lower_triangular_solve