| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262 |
- 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 # type: ignore[assignment] # pyright: ignore[reportIncompatibleMethodOverride]
- __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_]: ...
- # unary ops
- def __neg__(self, /) -> Self: ...
- def __pos__(self, /) -> Self: ...
- # binary ops
- 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]: ...
- # reflected binary ops
- 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]: ...
- # iterable and sized
- def __len__(self, /) -> int: ...
- def __iter__(self, /) -> Iterator[np.float64 | Any]: ...
- # pickling
- 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: ...
|