Source code for pysatl_core.transformations.approximations.approximation

"""
Protocols for characteristic-level approximation methods.
"""

from __future__ import annotations

__author__ = "Leonid Elkin"
__copyright__ = "Copyright (c) 2025 PySATL project"
__license__ = "SPDX-License-Identifier: MIT"

from typing import TYPE_CHECKING, Any, Protocol

if TYPE_CHECKING:
    from pysatl_core.distributions.computations.computation import AnalyticalComputation
    from pysatl_core.transformations.distribution import DerivedDistribution


[docs] class CharacteristicApproximationMethod(Protocol): """ Protocol for a single characteristic approximation method. Implementations are responsible only for one characteristic and can use any numeric approximation strategy (interpolation, splines, tabulation, etc.). """
[docs] def approximate( self, distribution: DerivedDistribution, **options: Any, ) -> AnalyticalComputation[Any, Any]: """ Build an analytical computation for a target characteristic. Parameters ---------- distribution : DerivedDistribution Distribution to approximate. **options : Any Extra approximation options. Returns ------- AnalyticalComputation[Any, Any] Approximate analytical computation for the target characteristic. """ ...
__all__ = [ "CharacteristicApproximationMethod", ]