def METHOD_NAME(
    self: Float[LinearOperator, "... N N"],
    rhs: Float[torch.Tensor, "... N C"],
    preconditioner: Optional[Callable[[Float[torch.Tensor, "... N C"]], Float[torch.Tensor, "... N C"]]] = None,
    num_tridiag: Optional[int] = 0,
) -> Union[
    Float[torch.Tensor, "... N C"],
    Tuple[
        Float[torch.Tensor, "... N C"],
        Float[torch.Tensor, "..."],  # Note that in case of a tuple the second term size depends on num_tridiag
    ],