|
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( |
|
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( |
|
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( |
|
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( |
|
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( |
|
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( |
|
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( |
|
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( |
|
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( |
|
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( |
|
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( |
|
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"]] |
|
|
|
|
|
@overload |
|
def _fromroots( |
|
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"]] |
|
|
|
|
|
@overload |
|
def _div( |
|
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] |
|
|
|
|
|
@overload |
|
def _pow( |
|
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: ... |
|
|
|
|
|
@overload |
|
def _fit( |
|
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: ... |
|
|