| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431 |
- from collections.abc import Callable, Iterable, Sequence
- from typing import (
- Any,
- Final,
- Literal,
- SupportsIndex,
- TypeAlias,
- TypeVar,
- overload,
- )
- import numpy as np
- import numpy.typing as npt
- from numpy._typing import (
- _FloatLike_co,
- _NumberLike_co,
- _ArrayLikeFloat_co,
- _ArrayLikeComplex_co,
- )
- from ._polytypes import (
- _AnyInt,
- _CoefLike_co,
- _Array2,
- _Tuple2,
- _FloatSeries,
- _CoefSeries,
- _ComplexSeries,
- _ObjectSeries,
- _ComplexArray,
- _FloatArray,
- _CoefArray,
- _ObjectArray,
- _SeriesLikeInt_co,
- _SeriesLikeFloat_co,
- _SeriesLikeComplex_co,
- _SeriesLikeCoef_co,
- _ArrayLikeCoef_co,
- _FuncBinOp,
- _FuncValND,
- _FuncVanderND,
- )
- __all__: Final[Sequence[str]] = [
- "as_series",
- "format_float",
- "getdomain",
- "mapdomain",
- "mapparms",
- "trimcoef",
- "trimseq",
- ]
- _AnyLineF: TypeAlias = Callable[
- [_CoefLike_co, _CoefLike_co],
- _CoefArray,
- ]
- _AnyMulF: TypeAlias = Callable[
- [npt.ArrayLike, npt.ArrayLike],
- _CoefArray,
- ]
- _AnyVanderF: TypeAlias = Callable[
- [npt.ArrayLike, SupportsIndex],
- _CoefArray,
- ]
- @overload
- def as_series(
- alist: npt.NDArray[np.integer[Any]] | _FloatArray,
- trim: bool = ...,
- ) -> list[_FloatSeries]: ...
- @overload
- def as_series(
- alist: _ComplexArray,
- trim: bool = ...,
- ) -> list[_ComplexSeries]: ...
- @overload
- def as_series(
- alist: _ObjectArray,
- trim: bool = ...,
- ) -> list[_ObjectSeries]: ...
- @overload
- def as_series( # type: ignore[overload-overlap]
- alist: Iterable[_FloatArray | npt.NDArray[np.integer[Any]]],
- trim: bool = ...,
- ) -> list[_FloatSeries]: ...
- @overload
- def as_series(
- alist: Iterable[_ComplexArray],
- trim: bool = ...,
- ) -> list[_ComplexSeries]: ...
- @overload
- def as_series(
- alist: Iterable[_ObjectArray],
- trim: bool = ...,
- ) -> list[_ObjectSeries]: ...
- @overload
- def as_series( # type: ignore[overload-overlap]
- alist: Iterable[_SeriesLikeFloat_co | float],
- trim: bool = ...,
- ) -> list[_FloatSeries]: ...
- @overload
- def as_series(
- alist: Iterable[_SeriesLikeComplex_co | complex],
- trim: bool = ...,
- ) -> list[_ComplexSeries]: ...
- @overload
- def as_series(
- alist: Iterable[_SeriesLikeCoef_co | object],
- trim: bool = ...,
- ) -> list[_ObjectSeries]: ...
- _T_seq = TypeVar("_T_seq", bound=_CoefArray | Sequence[_CoefLike_co])
- def trimseq(seq: _T_seq) -> _T_seq: ...
- @overload
- def trimcoef( # type: ignore[overload-overlap]
- c: npt.NDArray[np.integer[Any]] | _FloatArray,
- tol: _FloatLike_co = ...,
- ) -> _FloatSeries: ...
- @overload
- def trimcoef(
- c: _ComplexArray,
- tol: _FloatLike_co = ...,
- ) -> _ComplexSeries: ...
- @overload
- def trimcoef(
- c: _ObjectArray,
- tol: _FloatLike_co = ...,
- ) -> _ObjectSeries: ...
- @overload
- def trimcoef( # type: ignore[overload-overlap]
- c: _SeriesLikeFloat_co | float,
- tol: _FloatLike_co = ...,
- ) -> _FloatSeries: ...
- @overload
- def trimcoef(
- c: _SeriesLikeComplex_co | complex,
- tol: _FloatLike_co = ...,
- ) -> _ComplexSeries: ...
- @overload
- def trimcoef(
- c: _SeriesLikeCoef_co | object,
- tol: _FloatLike_co = ...,
- ) -> _ObjectSeries: ...
- @overload
- def getdomain( # type: ignore[overload-overlap]
- x: _FloatArray | npt.NDArray[np.integer[Any]],
- ) -> _Array2[np.float64]: ...
- @overload
- def getdomain(
- x: _ComplexArray,
- ) -> _Array2[np.complex128]: ...
- @overload
- def getdomain(
- x: _ObjectArray,
- ) -> _Array2[np.object_]: ...
- @overload
- def getdomain( # type: ignore[overload-overlap]
- x: _SeriesLikeFloat_co | float,
- ) -> _Array2[np.float64]: ...
- @overload
- def getdomain(
- x: _SeriesLikeComplex_co | complex,
- ) -> _Array2[np.complex128]: ...
- @overload
- def getdomain(
- x: _SeriesLikeCoef_co | object,
- ) -> _Array2[np.object_]: ...
- @overload
- def mapparms( # type: ignore[overload-overlap]
- old: npt.NDArray[np.floating[Any] | np.integer[Any]],
- new: npt.NDArray[np.floating[Any] | np.integer[Any]],
- ) -> _Tuple2[np.floating[Any]]: ...
- @overload
- def mapparms(
- old: npt.NDArray[np.number[Any]],
- new: npt.NDArray[np.number[Any]],
- ) -> _Tuple2[np.complexfloating[Any, Any]]: ...
- @overload
- def mapparms(
- old: npt.NDArray[np.object_ | np.number[Any]],
- new: npt.NDArray[np.object_ | np.number[Any]],
- ) -> _Tuple2[object]: ...
- @overload
- def mapparms( # type: ignore[overload-overlap]
- old: Sequence[float],
- new: Sequence[float],
- ) -> _Tuple2[float]: ...
- @overload
- def mapparms(
- old: Sequence[complex],
- new: Sequence[complex],
- ) -> _Tuple2[complex]: ...
- @overload
- def mapparms(
- old: _SeriesLikeFloat_co,
- new: _SeriesLikeFloat_co,
- ) -> _Tuple2[np.floating[Any]]: ...
- @overload
- def mapparms(
- old: _SeriesLikeComplex_co,
- new: _SeriesLikeComplex_co,
- ) -> _Tuple2[np.complexfloating[Any, Any]]: ...
- @overload
- def mapparms(
- old: _SeriesLikeCoef_co,
- new: _SeriesLikeCoef_co,
- ) -> _Tuple2[object]: ...
- @overload
- def mapdomain( # type: ignore[overload-overlap]
- x: _FloatLike_co,
- old: _SeriesLikeFloat_co,
- new: _SeriesLikeFloat_co,
- ) -> np.floating[Any]: ...
- @overload
- def mapdomain(
- x: _NumberLike_co,
- old: _SeriesLikeComplex_co,
- new: _SeriesLikeComplex_co,
- ) -> np.complexfloating[Any, Any]: ...
- @overload
- def mapdomain( # type: ignore[overload-overlap]
- x: npt.NDArray[np.floating[Any] | np.integer[Any]],
- old: npt.NDArray[np.floating[Any] | np.integer[Any]],
- new: npt.NDArray[np.floating[Any] | np.integer[Any]],
- ) -> _FloatSeries: ...
- @overload
- def mapdomain(
- x: npt.NDArray[np.number[Any]],
- old: npt.NDArray[np.number[Any]],
- new: npt.NDArray[np.number[Any]],
- ) -> _ComplexSeries: ...
- @overload
- def mapdomain(
- x: npt.NDArray[np.object_ | np.number[Any]],
- old: npt.NDArray[np.object_ | np.number[Any]],
- new: npt.NDArray[np.object_ | np.number[Any]],
- ) -> _ObjectSeries: ...
- @overload
- def mapdomain( # type: ignore[overload-overlap]
- x: _SeriesLikeFloat_co,
- old: _SeriesLikeFloat_co,
- new: _SeriesLikeFloat_co,
- ) -> _FloatSeries: ...
- @overload
- def mapdomain(
- x: _SeriesLikeComplex_co,
- old: _SeriesLikeComplex_co,
- new: _SeriesLikeComplex_co,
- ) -> _ComplexSeries: ...
- @overload
- def mapdomain(
- x: _SeriesLikeCoef_co,
- old:_SeriesLikeCoef_co,
- new: _SeriesLikeCoef_co,
- ) -> _ObjectSeries: ...
- @overload
- def mapdomain(
- x: _CoefLike_co,
- old: _SeriesLikeCoef_co,
- new: _SeriesLikeCoef_co,
- ) -> object: ...
- def _nth_slice(
- i: SupportsIndex,
- ndim: SupportsIndex,
- ) -> tuple[None | slice, ...]: ...
- _vander_nd: _FuncVanderND[Literal["_vander_nd"]]
- _vander_nd_flat: _FuncVanderND[Literal["_vander_nd_flat"]]
- # keep in sync with `._polytypes._FuncFromRoots`
- @overload
- def _fromroots( # type: ignore[overload-overlap]
- line_f: _AnyLineF,
- mul_f: _AnyMulF,
- roots: _SeriesLikeFloat_co,
- ) -> _FloatSeries: ...
- @overload
- def _fromroots(
- line_f: _AnyLineF,
- mul_f: _AnyMulF,
- roots: _SeriesLikeComplex_co,
- ) -> _ComplexSeries: ...
- @overload
- def _fromroots(
- line_f: _AnyLineF,
- mul_f: _AnyMulF,
- roots: _SeriesLikeCoef_co,
- ) -> _ObjectSeries: ...
- @overload
- def _fromroots(
- line_f: _AnyLineF,
- mul_f: _AnyMulF,
- roots: _SeriesLikeCoef_co,
- ) -> _CoefSeries: ...
- _valnd: _FuncValND[Literal["_valnd"]]
- _gridnd: _FuncValND[Literal["_gridnd"]]
- # keep in sync with `_polytypes._FuncBinOp`
- @overload
- def _div( # type: ignore[overload-overlap]
- mul_f: _AnyMulF,
- c1: _SeriesLikeFloat_co,
- c2: _SeriesLikeFloat_co,
- ) -> _Tuple2[_FloatSeries]: ...
- @overload
- def _div(
- mul_f: _AnyMulF,
- c1: _SeriesLikeComplex_co,
- c2: _SeriesLikeComplex_co,
- ) -> _Tuple2[_ComplexSeries]: ...
- @overload
- def _div(
- mul_f: _AnyMulF,
- c1: _SeriesLikeCoef_co,
- c2: _SeriesLikeCoef_co,
- ) -> _Tuple2[_ObjectSeries]: ...
- @overload
- def _div(
- mul_f: _AnyMulF,
- c1: _SeriesLikeCoef_co,
- c2: _SeriesLikeCoef_co,
- ) -> _Tuple2[_CoefSeries]: ...
- _add: Final[_FuncBinOp]
- _sub: Final[_FuncBinOp]
- # keep in sync with `_polytypes._FuncPow`
- @overload
- def _pow( # type: ignore[overload-overlap]
- mul_f: _AnyMulF,
- c: _SeriesLikeFloat_co,
- pow: _AnyInt,
- maxpower: None | _AnyInt = ...,
- ) -> _FloatSeries: ...
- @overload
- def _pow(
- mul_f: _AnyMulF,
- c: _SeriesLikeComplex_co,
- pow: _AnyInt,
- maxpower: None | _AnyInt = ...,
- ) -> _ComplexSeries: ...
- @overload
- def _pow(
- mul_f: _AnyMulF,
- c: _SeriesLikeCoef_co,
- pow: _AnyInt,
- maxpower: None | _AnyInt = ...,
- ) -> _ObjectSeries: ...
- @overload
- def _pow(
- mul_f: _AnyMulF,
- c: _SeriesLikeCoef_co,
- pow: _AnyInt,
- maxpower: None | _AnyInt = ...,
- ) -> _CoefSeries: ...
- # keep in sync with `_polytypes._FuncFit`
- @overload
- def _fit( # type: ignore[overload-overlap]
- vander_f: _AnyVanderF,
- x: _SeriesLikeFloat_co,
- y: _ArrayLikeFloat_co,
- deg: _SeriesLikeInt_co,
- domain: None | _SeriesLikeFloat_co = ...,
- rcond: None | _FloatLike_co = ...,
- full: Literal[False] = ...,
- w: None | _SeriesLikeFloat_co = ...,
- ) -> _FloatArray: ...
- @overload
- def _fit(
- vander_f: _AnyVanderF,
- x: _SeriesLikeComplex_co,
- y: _ArrayLikeComplex_co,
- deg: _SeriesLikeInt_co,
- domain: None | _SeriesLikeComplex_co = ...,
- rcond: None | _FloatLike_co = ...,
- full: Literal[False] = ...,
- w: None | _SeriesLikeComplex_co = ...,
- ) -> _ComplexArray: ...
- @overload
- def _fit(
- vander_f: _AnyVanderF,
- x: _SeriesLikeCoef_co,
- y: _ArrayLikeCoef_co,
- deg: _SeriesLikeInt_co,
- domain: None | _SeriesLikeCoef_co = ...,
- rcond: None | _FloatLike_co = ...,
- full: Literal[False] = ...,
- w: None | _SeriesLikeCoef_co = ...,
- ) -> _CoefArray: ...
- @overload
- def _fit(
- vander_f: _AnyVanderF,
- x: _SeriesLikeCoef_co,
- y: _SeriesLikeCoef_co,
- deg: _SeriesLikeInt_co,
- domain: None | _SeriesLikeCoef_co,
- rcond: None | _FloatLike_co ,
- full: Literal[True],
- /,
- w: None | _SeriesLikeCoef_co = ...,
- ) -> tuple[_CoefSeries, Sequence[np.inexact[Any] | np.int32]]: ...
- @overload
- def _fit(
- vander_f: _AnyVanderF,
- x: _SeriesLikeCoef_co,
- y: _SeriesLikeCoef_co,
- deg: _SeriesLikeInt_co,
- domain: None | _SeriesLikeCoef_co = ...,
- rcond: None | _FloatLike_co = ...,
- *,
- full: Literal[True],
- w: None | _SeriesLikeCoef_co = ...,
- ) -> tuple[_CoefSeries, Sequence[np.inexact[Any] | np.int32]]: ...
- def _as_int(x: SupportsIndex, desc: str) -> int: ...
- def format_float(x: _FloatLike_co, parens: bool = ...) -> str: ...
|