|
|
import abc |
|
|
import decimal |
|
|
from collections.abc import Iterator, Sequence |
|
|
from typing import ( |
|
|
Any, |
|
|
ClassVar, |
|
|
Generic, |
|
|
Literal, |
|
|
Self, |
|
|
SupportsIndex, |
|
|
TypeAlias, |
|
|
overload, |
|
|
) |
|
|
from typing_extensions import TypeIs, TypeVar |
|
|
|
|
|
import numpy as np |
|
|
import numpy.typing as npt |
|
|
from numpy._typing import ( |
|
|
_ArrayLikeComplex_co, |
|
|
_ArrayLikeFloat_co, |
|
|
_FloatLike_co, |
|
|
_NumberLike_co, |
|
|
) |
|
|
|
|
|
from ._polytypes import ( |
|
|
_AnyInt, |
|
|
_Array2, |
|
|
_ArrayLikeCoef_co, |
|
|
_ArrayLikeCoefObject_co, |
|
|
_CoefLike_co, |
|
|
_CoefSeries, |
|
|
_Series, |
|
|
_SeriesLikeCoef_co, |
|
|
_SeriesLikeInt_co, |
|
|
_Tuple2, |
|
|
) |
|
|
|
|
|
__all__ = ["ABCPolyBase"] |
|
|
|
|
|
_NameT_co = TypeVar("_NameT_co", bound=str | None, default=str | None, covariant=True) |
|
|
_PolyT = TypeVar("_PolyT", bound=ABCPolyBase) |
|
|
_AnyOther: TypeAlias = ABCPolyBase | _CoefLike_co | _SeriesLikeCoef_co |
|
|
|
|
|
class ABCPolyBase(Generic[_NameT_co], abc.ABC): |
|
|
__hash__: ClassVar[None] = None |
|
|
__array_ufunc__: ClassVar[None] = None |
|
|
maxpower: ClassVar[Literal[100]] = 100 |
|
|
|
|
|
_superscript_mapping: ClassVar[dict[int, str]] = ... |
|
|
_subscript_mapping: ClassVar[dict[int, str]] = ... |
|
|
_use_unicode: ClassVar[bool] = ... |
|
|
|
|
|
_symbol: str |
|
|
@property |
|
|
def symbol(self, /) -> str: ... |
|
|
@property |
|
|
@abc.abstractmethod |
|
|
def domain(self) -> _Array2[np.float64 | Any]: ... |
|
|
@property |
|
|
@abc.abstractmethod |
|
|
def window(self) -> _Array2[np.float64 | Any]: ... |
|
|
@property |
|
|
@abc.abstractmethod |
|
|
def basis_name(self) -> _NameT_co: ... |
|
|
|
|
|
coef: _CoefSeries |
|
|
|
|
|
def __init__( |
|
|
self, |
|
|
/, |
|
|
coef: _SeriesLikeCoef_co, |
|
|
domain: _SeriesLikeCoef_co | None = None, |
|
|
window: _SeriesLikeCoef_co | None = None, |
|
|
symbol: str = "x", |
|
|
) -> None: ... |
|
|
|
|
|
|
|
|
@overload |
|
|
def __call__(self, /, arg: _PolyT) -> _PolyT: ... |
|
|
@overload |
|
|
def __call__(self, /, arg: _FloatLike_co | decimal.Decimal) -> np.float64 | Any: ... |
|
|
@overload |
|
|
def __call__(self, /, arg: _NumberLike_co) -> np.complex128 | Any: ... |
|
|
@overload |
|
|
def __call__(self, /, arg: _ArrayLikeFloat_co) -> npt.NDArray[np.float64 | Any]: ... |
|
|
@overload |
|
|
def __call__(self, /, arg: _ArrayLikeComplex_co) -> npt.NDArray[np.complex128 | Any]: ... |
|
|
@overload |
|
|
def __call__(self, /, arg: _ArrayLikeCoefObject_co) -> npt.NDArray[np.object_]: ... |
|
|
|
|
|
|
|
|
def __neg__(self, /) -> Self: ... |
|
|
def __pos__(self, /) -> Self: ... |
|
|
|
|
|
|
|
|
def __add__(self, x: _AnyOther, /) -> Self: ... |
|
|
def __sub__(self, x: _AnyOther, /) -> Self: ... |
|
|
def __mul__(self, x: _AnyOther, /) -> Self: ... |
|
|
def __pow__(self, x: _AnyOther, /) -> Self: ... |
|
|
def __truediv__(self, x: _AnyOther, /) -> Self: ... |
|
|
def __floordiv__(self, x: _AnyOther, /) -> Self: ... |
|
|
def __mod__(self, x: _AnyOther, /) -> Self: ... |
|
|
def __divmod__(self, x: _AnyOther, /) -> _Tuple2[Self]: ... |
|
|
|
|
|
|
|
|
def __radd__(self, x: _AnyOther, /) -> Self: ... |
|
|
def __rsub__(self, x: _AnyOther, /) -> Self: ... |
|
|
def __rmul__(self, x: _AnyOther, /) -> Self: ... |
|
|
def __rtruediv__(self, x: _AnyOther, /) -> Self: ... |
|
|
def __rfloordiv__(self, x: _AnyOther, /) -> Self: ... |
|
|
def __rmod__(self, x: _AnyOther, /) -> Self: ... |
|
|
def __rdivmod__(self, x: _AnyOther, /) -> _Tuple2[Self]: ... |
|
|
|
|
|
|
|
|
def __len__(self, /) -> int: ... |
|
|
def __iter__(self, /) -> Iterator[np.float64 | Any]: ... |
|
|
|
|
|
|
|
|
def __getstate__(self, /) -> dict[str, Any]: ... |
|
|
def __setstate__(self, dict: dict[str, Any], /) -> None: ... |
|
|
|
|
|
|
|
|
def has_samecoef(self, /, other: ABCPolyBase) -> bool: ... |
|
|
def has_samedomain(self, /, other: ABCPolyBase) -> bool: ... |
|
|
def has_samewindow(self, /, other: ABCPolyBase) -> bool: ... |
|
|
def has_sametype(self, /, other: object) -> TypeIs[Self]: ... |
|
|
|
|
|
|
|
|
def copy(self, /) -> Self: ... |
|
|
def degree(self, /) -> int: ... |
|
|
def cutdeg(self, /, deg: int) -> Self: ... |
|
|
def trim(self, /, tol: _FloatLike_co = 0) -> Self: ... |
|
|
def truncate(self, /, size: _AnyInt) -> Self: ... |
|
|
|
|
|
|
|
|
@overload |
|
|
def convert( |
|
|
self, |
|
|
/, |
|
|
domain: _SeriesLikeCoef_co | None, |
|
|
kind: type[_PolyT], |
|
|
window: _SeriesLikeCoef_co | None = None, |
|
|
) -> _PolyT: ... |
|
|
@overload |
|
|
def convert( |
|
|
self, |
|
|
/, |
|
|
domain: _SeriesLikeCoef_co | None = None, |
|
|
*, |
|
|
kind: type[_PolyT], |
|
|
window: _SeriesLikeCoef_co | None = None, |
|
|
) -> _PolyT: ... |
|
|
@overload |
|
|
def convert( |
|
|
self, |
|
|
/, |
|
|
domain: _SeriesLikeCoef_co | None = None, |
|
|
kind: None = None, |
|
|
window: _SeriesLikeCoef_co | None = None, |
|
|
) -> Self: ... |
|
|
|
|
|
|
|
|
def mapparms(self, /) -> _Tuple2[Any]: ... |
|
|
def integ( |
|
|
self, |
|
|
/, |
|
|
m: SupportsIndex = 1, |
|
|
k: _CoefLike_co | _SeriesLikeCoef_co = [], |
|
|
lbnd: _CoefLike_co | None = None, |
|
|
) -> Self: ... |
|
|
def deriv(self, /, m: SupportsIndex = 1) -> Self: ... |
|
|
def roots(self, /) -> _CoefSeries: ... |
|
|
def linspace( |
|
|
self, |
|
|
/, |
|
|
n: SupportsIndex = 100, |
|
|
domain: _SeriesLikeCoef_co | None = None, |
|
|
) -> _Tuple2[_Series[np.float64 | np.complex128]]: ... |
|
|
|
|
|
|
|
|
@overload |
|
|
@classmethod |
|
|
def fit( |
|
|
cls, |
|
|
x: _SeriesLikeCoef_co, |
|
|
y: _SeriesLikeCoef_co, |
|
|
deg: int | _SeriesLikeInt_co, |
|
|
domain: _SeriesLikeCoef_co | None = None, |
|
|
rcond: _FloatLike_co | None = None, |
|
|
full: Literal[False] = False, |
|
|
w: _SeriesLikeCoef_co | None = None, |
|
|
window: _SeriesLikeCoef_co | None = None, |
|
|
symbol: str = "x", |
|
|
) -> Self: ... |
|
|
@overload |
|
|
@classmethod |
|
|
def fit( |
|
|
cls, |
|
|
x: _SeriesLikeCoef_co, |
|
|
y: _SeriesLikeCoef_co, |
|
|
deg: int | _SeriesLikeInt_co, |
|
|
domain: _SeriesLikeCoef_co | None = None, |
|
|
rcond: _FloatLike_co | None = None, |
|
|
*, |
|
|
full: Literal[True], |
|
|
w: _SeriesLikeCoef_co | None = None, |
|
|
window: _SeriesLikeCoef_co | None = None, |
|
|
symbol: str = "x", |
|
|
) -> tuple[Self, Sequence[np.inexact | np.int32]]: ... |
|
|
@overload |
|
|
@classmethod |
|
|
def fit( |
|
|
cls, |
|
|
x: _SeriesLikeCoef_co, |
|
|
y: _SeriesLikeCoef_co, |
|
|
deg: int | _SeriesLikeInt_co, |
|
|
domain: _SeriesLikeCoef_co | None, |
|
|
rcond: _FloatLike_co, |
|
|
full: Literal[True], |
|
|
/, |
|
|
w: _SeriesLikeCoef_co | None = None, |
|
|
window: _SeriesLikeCoef_co | None = None, |
|
|
symbol: str = "x", |
|
|
) -> tuple[Self, Sequence[np.inexact | np.int32]]: ... |
|
|
|
|
|
|
|
|
@classmethod |
|
|
def fromroots( |
|
|
cls, |
|
|
roots: _ArrayLikeCoef_co, |
|
|
domain: _SeriesLikeCoef_co | None = [], |
|
|
window: _SeriesLikeCoef_co | None = None, |
|
|
symbol: str = "x", |
|
|
) -> Self: ... |
|
|
@classmethod |
|
|
def identity( |
|
|
cls, |
|
|
domain: _SeriesLikeCoef_co | None = None, |
|
|
window: _SeriesLikeCoef_co | None = None, |
|
|
symbol: str = "x", |
|
|
) -> Self: ... |
|
|
@classmethod |
|
|
def basis( |
|
|
cls, |
|
|
deg: _AnyInt, |
|
|
domain: _SeriesLikeCoef_co | None = None, |
|
|
window: _SeriesLikeCoef_co | None = None, |
|
|
symbol: str = "x", |
|
|
) -> Self: ... |
|
|
@classmethod |
|
|
def cast( |
|
|
cls, |
|
|
series: ABCPolyBase, |
|
|
domain: _SeriesLikeCoef_co | None = None, |
|
|
window: _SeriesLikeCoef_co | None = None, |
|
|
) -> Self: ... |
|
|
@classmethod |
|
|
def _str_term_unicode(cls, /, i: str, arg_str: str) -> str: ... |
|
|
@classmethod |
|
|
def _str_term_ascii(cls, /, i: str, arg_str: str) -> str: ... |
|
|
@classmethod |
|
|
def _repr_latex_term(cls, /, i: str, arg_str: str, needs_parens: bool) -> str: ... |
|
|
|