def solve(self, B, tol):
    B = asarray(B)
    X = ndarray(B.shape, order='F')
    for j in range(B.shape[1]):
        X[:, j] = self._solve(B[:, j], tol)
    return X
def solve(self, B, tol):
    B = asarray(B)
    X = ndarray(B.shape, order='F')
    for j in range(B.shape[1]):
        X[:, j] = self._solve(B[:, j], tol)
    return X