| from _typeshed import ConvertibleToInt |
| from collections.abc import Callable, Iterable |
| from typing import ( |
| Any, |
| ClassVar, |
| Concatenate, |
| Final, |
| Literal as L, |
| Self, |
| TypeVar, |
| overload, |
| ) |
|
|
| import numpy as np |
| import numpy.typing as npt |
| from numpy._typing import _IntLike_co |
|
|
| from ._polybase import ABCPolyBase |
| from ._polytypes import ( |
| _Array1, |
| _Array2, |
| _CoefSeries, |
| _FuncBinOp, |
| _FuncCompanion, |
| _FuncDer, |
| _FuncFit, |
| _FuncFromRoots, |
| _FuncGauss, |
| _FuncInteg, |
| _FuncLine, |
| _FuncPoly2Ortho, |
| _FuncPow, |
| _FuncRoots, |
| _FuncUnOp, |
| _FuncVal, |
| _FuncVal2D, |
| _FuncVal3D, |
| _FuncVander, |
| _FuncVander2D, |
| _FuncVander3D, |
| _FuncWeight, |
| _Series, |
| _SeriesLikeCoef_co, |
| ) |
| from .polyutils import trimcoef as chebtrim |
|
|
| __all__ = [ |
| "chebzero", |
| "chebone", |
| "chebx", |
| "chebdomain", |
| "chebline", |
| "chebadd", |
| "chebsub", |
| "chebmulx", |
| "chebmul", |
| "chebdiv", |
| "chebpow", |
| "chebval", |
| "chebder", |
| "chebint", |
| "cheb2poly", |
| "poly2cheb", |
| "chebfromroots", |
| "chebvander", |
| "chebfit", |
| "chebtrim", |
| "chebroots", |
| "chebpts1", |
| "chebpts2", |
| "Chebyshev", |
| "chebval2d", |
| "chebval3d", |
| "chebgrid2d", |
| "chebgrid3d", |
| "chebvander2d", |
| "chebvander3d", |
| "chebcompanion", |
| "chebgauss", |
| "chebweight", |
| "chebinterpolate", |
| ] |
|
|
| _NumberOrObjectT = TypeVar("_NumberOrObjectT", bound=np.number | np.object_) |
| _CoefScalarT = TypeVar("_CoefScalarT", bound=np.number | np.bool | np.object_) |
|
|
| def _cseries_to_zseries(c: npt.NDArray[_NumberOrObjectT]) -> _Series[_NumberOrObjectT]: ... |
| def _zseries_to_cseries(zs: npt.NDArray[_NumberOrObjectT]) -> _Series[_NumberOrObjectT]: ... |
| def _zseries_mul(z1: npt.NDArray[_NumberOrObjectT], z2: npt.NDArray[_NumberOrObjectT]) -> _Series[_NumberOrObjectT]: ... |
| def _zseries_div(z1: npt.NDArray[_NumberOrObjectT], z2: npt.NDArray[_NumberOrObjectT]) -> _Series[_NumberOrObjectT]: ... |
| def _zseries_der(zs: npt.NDArray[_NumberOrObjectT]) -> _Series[_NumberOrObjectT]: ... |
| def _zseries_int(zs: npt.NDArray[_NumberOrObjectT]) -> _Series[_NumberOrObjectT]: ... |
|
|
| poly2cheb: Final[_FuncPoly2Ortho] = ... |
| cheb2poly: Final[_FuncUnOp] = ... |
|
|
| chebdomain: Final[_Array2[np.float64]] = ... |
| chebzero: Final[_Array1[np.int_]] = ... |
| chebone: Final[_Array1[np.int_]] = ... |
| chebx: Final[_Array2[np.int_]] = ... |
|
|
| chebline: Final[_FuncLine] = ... |
| chebfromroots: Final[_FuncFromRoots] = ... |
| chebadd: Final[_FuncBinOp] = ... |
| chebsub: Final[_FuncBinOp] = ... |
| chebmulx: Final[_FuncUnOp] = ... |
| chebmul: Final[_FuncBinOp] = ... |
| chebdiv: Final[_FuncBinOp] = ... |
| chebpow: Final[_FuncPow] = ... |
| chebder: Final[_FuncDer] = ... |
| chebint: Final[_FuncInteg] = ... |
| chebval: Final[_FuncVal] = ... |
| chebval2d: Final[_FuncVal2D] = ... |
| chebval3d: Final[_FuncVal3D] = ... |
| chebgrid2d: Final[_FuncVal2D] = ... |
| chebgrid3d: Final[_FuncVal3D] = ... |
| chebvander: Final[_FuncVander] = ... |
| chebvander2d: Final[_FuncVander2D] = ... |
| chebvander3d: Final[_FuncVander3D] = ... |
| chebfit: Final[_FuncFit] = ... |
| chebcompanion: Final[_FuncCompanion] = ... |
| chebroots: Final[_FuncRoots] = ... |
| chebgauss: Final[_FuncGauss] = ... |
| chebweight: Final[_FuncWeight] = ... |
| def chebpts1(npts: ConvertibleToInt) -> np.ndarray[tuple[int], np.dtype[np.float64]]: ... |
| def chebpts2(npts: ConvertibleToInt) -> np.ndarray[tuple[int], np.dtype[np.float64]]: ... |
|
|
| # keep in sync with `Chebyshev.interpolate` (minus `domain` parameter) |
| @overload |
| def chebinterpolate( |
| func: np.ufunc, |
| deg: _IntLike_co, |
| args: tuple[()] = (), |
| ) -> npt.NDArray[np.float64 | np.complex128 | np.object_]: ... |
| @overload |
| def chebinterpolate( |
| func: Callable[[npt.NDArray[np.float64]], _CoefScalarT], |
| deg: _IntLike_co, |
| args: tuple[()] = (), |
| ) -> npt.NDArray[_CoefScalarT]: ... |
| @overload |
| def chebinterpolate( |
| func: Callable[Concatenate[npt.NDArray[np.float64], ...], _CoefScalarT], |
| deg: _IntLike_co, |
| args: Iterable[Any], |
| ) -> npt.NDArray[_CoefScalarT]: ... |
|
|
| class Chebyshev(ABCPolyBase[L["T"]]): |
| basis_name: ClassVar[L["T"]] = "T" # pyright: ignore[reportIncompatibleMethodOverride] |
| domain: _Array2[np.float64 | Any] = ... # pyright: ignore[reportIncompatibleMethodOverride] |
| window: _Array2[np.float64 | Any] = ... # pyright: ignore[reportIncompatibleMethodOverride] |
|
|
| @overload |
| @classmethod |
| def interpolate( |
| cls, |
| func: Callable[[npt.NDArray[np.float64]], _CoefSeries], |
| deg: _IntLike_co, |
| domain: _SeriesLikeCoef_co | None = None, |
| args: tuple[()] = (), |
| ) -> Self: ... |
| @overload |
| @classmethod |
| def interpolate( |
| cls, |
| func: Callable[Concatenate[npt.NDArray[np.float64], ...], _CoefSeries], |
| deg: _IntLike_co, |
| domain: _SeriesLikeCoef_co | None = None, |
| *, |
| args: Iterable[Any], |
| ) -> Self: ... |
| @overload |
| @classmethod |
| def interpolate( |
| cls, |
| func: Callable[Concatenate[npt.NDArray[np.float64], ...], _CoefSeries], |
| deg: _IntLike_co, |
| domain: _SeriesLikeCoef_co | None, |
| args: Iterable[Any], |
| ) -> Self: ... |
|
|