File size: 2,705 Bytes
2216aae
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
from typing import Any, ClassVar, Final, Literal as L, TypeVar

import numpy as np
from numpy._typing import _Shape

from ._polybase import ABCPolyBase
from ._polytypes import (
    _Array1,
    _Array2,
    _FuncBinOp,
    _FuncCompanion,
    _FuncDer,
    _FuncFit,
    _FuncFromRoots,
    _FuncGauss,
    _FuncInteg,
    _FuncLine,
    _FuncPoly2Ortho,
    _FuncPow,
    _FuncRoots,
    _FuncUnOp,
    _FuncVal,
    _FuncVal2D,
    _FuncVal3D,
    _FuncVander,
    _FuncVander2D,
    _FuncVander3D,
    _FuncWeight,
)
from .polyutils import trimcoef as hermetrim

__all__ = [
    "hermezero",
    "hermeone",
    "hermex",
    "hermedomain",
    "hermeline",
    "hermeadd",
    "hermesub",
    "hermemulx",
    "hermemul",
    "hermediv",
    "hermepow",
    "hermeval",
    "hermeder",
    "hermeint",
    "herme2poly",
    "poly2herme",
    "hermefromroots",
    "hermevander",
    "hermefit",
    "hermetrim",
    "hermeroots",
    "HermiteE",
    "hermeval2d",
    "hermeval3d",
    "hermegrid2d",
    "hermegrid3d",
    "hermevander2d",
    "hermevander3d",
    "hermecompanion",
    "hermegauss",
    "hermeweight",
]

_ShapeT = TypeVar("_ShapeT", bound=_Shape)

poly2herme: Final[_FuncPoly2Ortho] = ...
herme2poly: Final[_FuncUnOp] = ...

hermedomain: Final[_Array2[np.float64]] = ...
hermezero: Final[_Array1[np.int_]] = ...
hermeone: Final[_Array1[np.int_]] = ...
hermex: Final[_Array2[np.int_]] = ...

hermeline: Final[_FuncLine] = ...
hermefromroots: Final[_FuncFromRoots] = ...
hermeadd: Final[_FuncBinOp] = ...
hermesub: Final[_FuncBinOp] = ...
hermemulx: Final[_FuncUnOp] = ...
hermemul: Final[_FuncBinOp] = ...
hermediv: Final[_FuncBinOp] = ...
hermepow: Final[_FuncPow] = ...
hermeder: Final[_FuncDer] = ...
hermeint: Final[_FuncInteg] = ...
hermeval: Final[_FuncVal] = ...
hermeval2d: Final[_FuncVal2D] = ...
hermeval3d: Final[_FuncVal3D] = ...
hermegrid2d: Final[_FuncVal2D] = ...
hermegrid3d: Final[_FuncVal3D] = ...
hermevander: Final[_FuncVander] = ...
hermevander2d: Final[_FuncVander2D] = ...
hermevander3d: Final[_FuncVander3D] = ...
hermefit: Final[_FuncFit] = ...
hermecompanion: Final[_FuncCompanion] = ...
hermeroots: Final[_FuncRoots] = ...

def _normed_hermite_e_n(x: np.ndarray[_ShapeT, np.dtype[np.float64]], n: int) -> np.ndarray[_ShapeT, np.dtype[np.float64]]: ...

hermegauss: Final[_FuncGauss] = ...
hermeweight: Final[_FuncWeight] = ...

class HermiteE(ABCPolyBase[L["He"]]):
    basis_name: ClassVar[L["He"]] = "He"  # pyright: ignore[reportIncompatibleMethodOverride]
    domain: _Array2[np.float64 | Any] = ...  # pyright: ignore[reportIncompatibleMethodOverride]
    window: _Array2[np.float64 | Any] = ...  # pyright: ignore[reportIncompatibleMethodOverride]