"""Ellipsoidal Toolbox — Python port of the MATLAB Ellipsoidal Toolbox.

Provides ellipsoidal calculus for reachability analysis and set-valued
estimation of linear dynamical systems.
"""

from .core import ABS_TOL, REL_TOL, Ellipsoid, Hyperplane
from .systems import LinSys
from .calculus import (
    distance_to_hyperplane,
    distance_to_point,
    ellintersection_ia,
    ellunion_ea,
    hpintersection,
    intersection_ea,
    intersection_ia,
    isbaddirection,
    minkdiff_ea,
    minkdiff_ia,
    minksum_ea,
    minksum_ia,
)

__all__ = [
    "Ellipsoid",
    "Hyperplane",
    "LinSys",
    "ABS_TOL",
    "REL_TOL",
    "minksum_ea",
    "minksum_ia",
    "minkdiff_ea",
    "minkdiff_ia",
    "isbaddirection",
    "distance_to_point",
    "distance_to_hyperplane",
    "hpintersection",
    "intersection_ea",
    "intersection_ia",
    "ellintersection_ia",
    "ellunion_ea",
]
