def METHOD_NAME(A, B, y):
    M = np.hstack([A, B])
    M_ct = M.conjugate().T
    MM = np.dot(M_ct, M)
    U, s, V = svd(MM, full_matrices=False)
    mask = s > 0.01 * s[0]
    s = 1.0 / s[mask]
    MM_inv = np.dot(
        np.dot(V[: len(s), :].conjugate().T, np.diag(s)), U[:, : len(s)].conjugate().T
    )
    return np.dot(MM_inv, np.dot(M_ct, y))