| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180 |
- 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: ...
|