summaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/numpy/polynomial/polyutils.pyi
diff options
context:
space:
mode:
Diffstat (limited to '.venv/lib/python3.12/site-packages/numpy/polynomial/polyutils.pyi')
-rw-r--r--.venv/lib/python3.12/site-packages/numpy/polynomial/polyutils.pyi423
1 files changed, 423 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/numpy/polynomial/polyutils.pyi b/.venv/lib/python3.12/site-packages/numpy/polynomial/polyutils.pyi
new file mode 100644
index 0000000..c627e16
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/numpy/polynomial/polyutils.pyi
@@ -0,0 +1,423 @@
+from collections.abc import Callable, Iterable, Sequence
+from typing import (
+ Final,
+ Literal,
+ SupportsIndex,
+ TypeAlias,
+ TypeVar,
+ overload,
+)
+
+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,
+ _CoefArray,
+ _CoefLike_co,
+ _CoefSeries,
+ _ComplexArray,
+ _ComplexSeries,
+ _FloatArray,
+ _FloatSeries,
+ _FuncBinOp,
+ _FuncValND,
+ _FuncVanderND,
+ _ObjectArray,
+ _ObjectSeries,
+ _SeriesLikeCoef_co,
+ _SeriesLikeComplex_co,
+ _SeriesLikeFloat_co,
+ _SeriesLikeInt_co,
+ _Tuple2,
+)
+
+__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] | _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]],
+ 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] | _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],
+) -> _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 | np.integer],
+ new: npt.NDArray[np.floating | np.integer],
+) -> _Tuple2[np.floating]: ...
+@overload
+def mapparms(
+ old: npt.NDArray[np.number],
+ new: npt.NDArray[np.number],
+) -> _Tuple2[np.complexfloating]: ...
+@overload
+def mapparms(
+ old: npt.NDArray[np.object_ | np.number],
+ new: npt.NDArray[np.object_ | np.number],
+) -> _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]: ...
+@overload
+def mapparms(
+ old: _SeriesLikeComplex_co,
+ new: _SeriesLikeComplex_co,
+) -> _Tuple2[np.complexfloating]: ...
+@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: ...
+@overload
+def mapdomain(
+ x: _NumberLike_co,
+ old: _SeriesLikeComplex_co,
+ new: _SeriesLikeComplex_co,
+) -> np.complexfloating: ...
+@overload
+def mapdomain( # type: ignore[overload-overlap]
+ x: npt.NDArray[np.floating | np.integer],
+ old: npt.NDArray[np.floating | np.integer],
+ new: npt.NDArray[np.floating | np.integer],
+) -> _FloatSeries: ...
+@overload
+def mapdomain(
+ x: npt.NDArray[np.number],
+ old: npt.NDArray[np.number],
+ new: npt.NDArray[np.number],
+) -> _ComplexSeries: ...
+@overload
+def mapdomain(
+ x: npt.NDArray[np.object_ | np.number],
+ old: npt.NDArray[np.object_ | np.number],
+ new: npt.NDArray[np.object_ | np.number],
+) -> _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[slice | None, ...]: ...
+
+_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: _AnyInt | None = ...,
+) -> _FloatSeries: ...
+@overload
+def _pow(
+ mul_f: _AnyMulF,
+ c: _SeriesLikeComplex_co,
+ pow: _AnyInt,
+ maxpower: _AnyInt | None = ...,
+) -> _ComplexSeries: ...
+@overload
+def _pow(
+ mul_f: _AnyMulF,
+ c: _SeriesLikeCoef_co,
+ pow: _AnyInt,
+ maxpower: _AnyInt | None = ...,
+) -> _ObjectSeries: ...
+@overload
+def _pow(
+ mul_f: _AnyMulF,
+ c: _SeriesLikeCoef_co,
+ pow: _AnyInt,
+ maxpower: _AnyInt | None = ...,
+) -> _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: _SeriesLikeFloat_co | None = ...,
+ rcond: _FloatLike_co | None = ...,
+ full: Literal[False] = ...,
+ w: _SeriesLikeFloat_co | None = ...,
+) -> _FloatArray: ...
+@overload
+def _fit(
+ vander_f: _AnyVanderF,
+ x: _SeriesLikeComplex_co,
+ y: _ArrayLikeComplex_co,
+ deg: _SeriesLikeInt_co,
+ domain: _SeriesLikeComplex_co | None = ...,
+ rcond: _FloatLike_co | None = ...,
+ full: Literal[False] = ...,
+ w: _SeriesLikeComplex_co | None = ...,
+) -> _ComplexArray: ...
+@overload
+def _fit(
+ vander_f: _AnyVanderF,
+ x: _SeriesLikeCoef_co,
+ y: _ArrayLikeCoef_co,
+ deg: _SeriesLikeInt_co,
+ domain: _SeriesLikeCoef_co | None = ...,
+ rcond: _FloatLike_co | None = ...,
+ full: Literal[False] = ...,
+ w: _SeriesLikeCoef_co | None = ...,
+) -> _CoefArray: ...
+@overload
+def _fit(
+ vander_f: _AnyVanderF,
+ x: _SeriesLikeCoef_co,
+ y: _SeriesLikeCoef_co,
+ deg: _SeriesLikeInt_co,
+ domain: _SeriesLikeCoef_co | None,
+ rcond: _FloatLike_co | None,
+ full: Literal[True],
+ /,
+ w: _SeriesLikeCoef_co | None = ...,
+) -> tuple[_CoefSeries, Sequence[np.inexact | np.int32]]: ...
+@overload
+def _fit(
+ vander_f: _AnyVanderF,
+ x: _SeriesLikeCoef_co,
+ y: _SeriesLikeCoef_co,
+ deg: _SeriesLikeInt_co,
+ domain: _SeriesLikeCoef_co | None = ...,
+ rcond: _FloatLike_co | None = ...,
+ *,
+ full: Literal[True],
+ w: _SeriesLikeCoef_co | None = ...,
+) -> tuple[_CoefSeries, Sequence[np.inexact | np.int32]]: ...
+
+def _as_int(x: SupportsIndex, desc: str) -> int: ...
+def format_float(x: _FloatLike_co, parens: bool = ...) -> str: ...