"""Core Krylov Iteration Algorithms.

This submodule implements the fundamental iteration algorithms for
constructing Krylov subspaces, including Arnoldi and Lanczos methods
and their block and rational variants.

Functions
---------
Arnoldi : Standard Arnoldi iteration
rational_Arnoldi : Rational Arnoldi iteration
block_Arnoldi : Block Arnoldi iteration
block_rational_Arnoldi : Block rational Arnoldi iteration
shift_and_invert_Arnoldi : Shift-and-invert Arnoldi
block_shift_and_invert_Arnoldi : Block shift-and-invert Arnoldi
Lanczos : Lanczos iteration for symmetric matrices
block_Lanczos : Block Lanczos iteration
"""

from .arnoldi import (
    Arnoldi,
    block_Arnoldi,
    block_rational_Arnoldi,
    block_shift_and_invert_Arnoldi,
    rational_Arnoldi,
    shift_and_invert_Arnoldi,
)
from .lanczos import Lanczos, block_Lanczos

__all__ = [
    "Arnoldi",
    "rational_Arnoldi",
    "block_Arnoldi",
    "block_rational_Arnoldi",
    "shift_and_invert_Arnoldi",
    "block_shift_and_invert_Arnoldi",
    "Lanczos",
    "block_Lanczos",
]
