| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285 |
- import abc
- import decimal
- import numbers
- from collections.abc import Iterator, Mapping, Sequence
- from typing import (
- Any,
- ClassVar,
- Generic,
- Literal,
- LiteralString,
- 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"]
- _NameCo = TypeVar(
- "_NameCo",
- bound=LiteralString | None,
- covariant=True,
- default=LiteralString | None
- )
- _Other = TypeVar("_Other", bound=ABCPolyBase)
- _AnyOther: TypeAlias = ABCPolyBase | _CoefLike_co | _SeriesLikeCoef_co
- _Hundred: TypeAlias = Literal[100]
- class ABCPolyBase(Generic[_NameCo], abc.ABC):
- __hash__: ClassVar[None] # type: ignore[assignment] # pyright: ignore[reportIncompatibleMethodOverride]
- __array_ufunc__: ClassVar[None]
- maxpower: ClassVar[_Hundred]
- _superscript_mapping: ClassVar[Mapping[int, str]]
- _subscript_mapping: ClassVar[Mapping[int, str]]
- _use_unicode: ClassVar[bool]
- basis_name: _NameCo
- coef: _CoefSeries
- domain: _Array2[np.inexact | np.object_]
- window: _Array2[np.inexact | np.object_]
- _symbol: LiteralString
- @property
- def symbol(self, /) -> LiteralString: ...
- def __init__(
- self,
- /,
- coef: _SeriesLikeCoef_co,
- domain: _SeriesLikeCoef_co | None = ...,
- window: _SeriesLikeCoef_co | None = ...,
- symbol: str = ...,
- ) -> None: ...
- @overload
- def __call__(self, /, arg: _Other) -> _Other: ...
- # TODO: Once `_ShapeT@ndarray` is covariant and bounded (see #26081),
- # additionally include 0-d arrays as input types with scalar return type.
- @overload
- def __call__(
- self,
- /,
- arg: _FloatLike_co | decimal.Decimal | numbers.Real | np.object_,
- ) -> np.float64 | np.complex128: ...
- @overload
- def __call__(
- self,
- /,
- arg: _NumberLike_co | numbers.Complex,
- ) -> np.complex128: ...
- @overload
- def __call__(self, /, arg: _ArrayLikeFloat_co) -> (
- npt.NDArray[np.float64]
- | npt.NDArray[np.complex128]
- | npt.NDArray[np.object_]
- ): ...
- @overload
- def __call__(
- self,
- /,
- arg: _ArrayLikeComplex_co,
- ) -> npt.NDArray[np.complex128] | npt.NDArray[np.object_]: ...
- @overload
- def __call__(
- self,
- /,
- arg: _ArrayLikeCoefObject_co,
- ) -> npt.NDArray[np.object_]: ...
- def __format__(self, fmt_str: str, /) -> str: ...
- def __eq__(self, x: object, /) -> bool: ...
- def __ne__(self, x: object, /) -> bool: ...
- 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 __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 __pow__(self, x: _AnyOther, /) -> 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.inexact | object]: ...
- 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: ...
- @overload
- def has_sametype(self, /, other: ABCPolyBase) -> TypeIs[Self]: ...
- @overload
- def has_sametype(self, /, other: object) -> Literal[False]: ...
- def copy(self, /) -> Self: ...
- def degree(self, /) -> int: ...
- def cutdeg(self, /) -> Self: ...
- def trim(self, /, tol: _FloatLike_co = ...) -> Self: ...
- def truncate(self, /, size: _AnyInt) -> Self: ...
- @overload
- def convert(
- self,
- /,
- domain: _SeriesLikeCoef_co | None,
- kind: type[_Other],
- window: _SeriesLikeCoef_co | None = ...,
- ) -> _Other: ...
- @overload
- def convert(
- self,
- /,
- domain: _SeriesLikeCoef_co | None = ...,
- *,
- kind: type[_Other],
- window: _SeriesLikeCoef_co | None = ...,
- ) -> _Other: ...
- @overload
- def convert(
- self,
- /,
- domain: _SeriesLikeCoef_co | None = ...,
- kind: None = None,
- window: _SeriesLikeCoef_co | None = ...,
- ) -> Self: ...
- def mapparms(self, /) -> _Tuple2[Any]: ...
- def integ(
- self,
- /,
- m: SupportsIndex = ...,
- k: _CoefLike_co | _SeriesLikeCoef_co = ...,
- lbnd: _CoefLike_co | None = ...,
- ) -> Self: ...
- def deriv(self, /, m: SupportsIndex = ...) -> Self: ...
- def roots(self, /) -> _CoefSeries: ...
- def linspace(
- self,
- /,
- n: SupportsIndex = ...,
- domain: _SeriesLikeCoef_co | 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 = ...,
- rcond: _FloatLike_co = ...,
- full: Literal[False] = ...,
- w: _SeriesLikeCoef_co | None = ...,
- window: _SeriesLikeCoef_co | None = ...,
- symbol: str = ...,
- ) -> Self: ...
- @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 = ...,
- window: _SeriesLikeCoef_co | None = ...,
- symbol: str = ...,
- ) -> 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 = ...,
- window: _SeriesLikeCoef_co | None = ...,
- symbol: str = ...,
- ) -> tuple[Self, Sequence[np.inexact | np.int32]]: ...
- @classmethod
- def fromroots(
- cls,
- roots: _ArrayLikeCoef_co,
- domain: _SeriesLikeCoef_co | None = ...,
- window: _SeriesLikeCoef_co | None = ...,
- symbol: str = ...,
- ) -> Self: ...
- @classmethod
- def identity(
- cls,
- domain: _SeriesLikeCoef_co | None = ...,
- window: _SeriesLikeCoef_co | None = ...,
- symbol: str = ...,
- ) -> Self: ...
- @classmethod
- def basis(
- cls,
- deg: _AnyInt,
- domain: _SeriesLikeCoef_co | None = ...,
- window: _SeriesLikeCoef_co | None = ...,
- symbol: str = ...,
- ) -> Self: ...
- @classmethod
- def cast(
- cls,
- series: ABCPolyBase,
- domain: _SeriesLikeCoef_co | None = ...,
- window: _SeriesLikeCoef_co | None = ...,
- ) -> Self: ...
- @classmethod
- def _str_term_unicode(cls, /, i: str, arg_str: str) -> str: ...
- @staticmethod
- def _str_term_ascii(i: str, arg_str: str) -> str: ...
- @staticmethod
- def _repr_latex_term(i: str, arg_str: str, needs_parens: bool) -> str: ...
|