'Solves Ax = B, where A is a lower triangular matrix.
See Also
upper_triangular_solve
gauss_jordan_solve
cholesky_solve
diagonal_solve
LDLsolve
LUsolve
QRsolve
pinv_solve'

def lower_triangular_solve(self, rhs):

    if (not self.is_square):
        raise NonSquareMatrixError('Matrix    must    be    square.')
    if (rhs.rows != self.rows):
        raise ShapeError('Matrices    size    mismatch.')
    if (not self.is_lower):
        raise ValueError('Matrix    must    be    lower    triangular.')
    return self._lower_triangular_solve(rhs)
