hyb
2025-11-18 7539e6f48c75dcaeb808359cccfd1c0d0d182ce8
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
from collections.abc import Sequence
from typing import Any, TypeAlias, assert_type
 
import numpy as np
import numpy.polynomial as npp
import numpy.typing as npt
 
_ArrFloat1D: TypeAlias = np.ndarray[tuple[int], np.dtype[np.floating]]
_ArrFloat1D64: TypeAlias = np.ndarray[tuple[int], np.dtype[np.float64]]
_ArrComplex1D: TypeAlias = np.ndarray[tuple[int], np.dtype[np.complexfloating]]
_ArrComplex1D128: TypeAlias = np.ndarray[tuple[int], np.dtype[np.complex128]]
_ArrObject1D: TypeAlias = np.ndarray[tuple[int], np.dtype[np.object_]]
 
AR_b: npt.NDArray[np.bool]
AR_u4: npt.NDArray[np.uint32]
AR_i8: npt.NDArray[np.int64]
AR_f8: npt.NDArray[np.float64]
AR_c16: npt.NDArray[np.complex128]
AR_O: npt.NDArray[np.object_]
 
PS_poly: npp.Polynomial
PS_cheb: npp.Chebyshev
 
assert_type(npp.polynomial.polyroots(AR_f8), _ArrFloat1D64)
assert_type(npp.polynomial.polyroots(AR_c16), _ArrComplex1D128)
assert_type(npp.polynomial.polyroots(AR_O), _ArrObject1D)
 
assert_type(npp.polynomial.polyfromroots(AR_f8), _ArrFloat1D)
assert_type(npp.polynomial.polyfromroots(AR_c16), _ArrComplex1D)
assert_type(npp.polynomial.polyfromroots(AR_O), _ArrObject1D)
 
# assert_type(npp.polynomial.polyadd(AR_b, AR_b), NoReturn)
assert_type(npp.polynomial.polyadd(AR_u4, AR_b), _ArrFloat1D)
assert_type(npp.polynomial.polyadd(AR_i8, AR_i8), _ArrFloat1D)
assert_type(npp.polynomial.polyadd(AR_f8, AR_i8), _ArrFloat1D)
assert_type(npp.polynomial.polyadd(AR_i8, AR_c16), _ArrComplex1D)
assert_type(npp.polynomial.polyadd(AR_O, AR_O), _ArrObject1D)
 
assert_type(npp.polynomial.polymulx(AR_u4), _ArrFloat1D)
assert_type(npp.polynomial.polymulx(AR_i8), _ArrFloat1D)
assert_type(npp.polynomial.polymulx(AR_f8), _ArrFloat1D)
assert_type(npp.polynomial.polymulx(AR_c16), _ArrComplex1D)
assert_type(npp.polynomial.polymulx(AR_O), _ArrObject1D)
 
assert_type(npp.polynomial.polypow(AR_u4, 2), _ArrFloat1D)
assert_type(npp.polynomial.polypow(AR_i8, 2), _ArrFloat1D)
assert_type(npp.polynomial.polypow(AR_f8, 2), _ArrFloat1D)
assert_type(npp.polynomial.polypow(AR_c16, 2), _ArrComplex1D)
assert_type(npp.polynomial.polypow(AR_O, 2), _ArrObject1D)
 
# assert_type(npp.polynomial.polyder(PS_poly), npt.NDArray[np.object_])
assert_type(npp.polynomial.polyder(AR_f8), npt.NDArray[np.floating])
assert_type(npp.polynomial.polyder(AR_c16), npt.NDArray[np.complexfloating])
assert_type(npp.polynomial.polyder(AR_O, m=2), npt.NDArray[np.object_])
 
# assert_type(npp.polynomial.polyint(PS_poly), npt.NDArray[np.object_])
assert_type(npp.polynomial.polyint(AR_f8), npt.NDArray[np.floating])
assert_type(npp.polynomial.polyint(AR_f8, k=AR_c16), npt.NDArray[np.complexfloating])
assert_type(npp.polynomial.polyint(AR_O, m=2), npt.NDArray[np.object_])
 
assert_type(npp.polynomial.polyval(AR_b, AR_b), npt.NDArray[np.floating])
assert_type(npp.polynomial.polyval(AR_u4, AR_b), npt.NDArray[np.floating])
assert_type(npp.polynomial.polyval(AR_i8, AR_i8), npt.NDArray[np.floating])
assert_type(npp.polynomial.polyval(AR_f8, AR_i8), npt.NDArray[np.floating])
assert_type(npp.polynomial.polyval(AR_i8, AR_c16), npt.NDArray[np.complexfloating])
assert_type(npp.polynomial.polyval(AR_O, AR_O), npt.NDArray[np.object_])
 
assert_type(npp.polynomial.polyval2d(AR_b, AR_b, AR_b), npt.NDArray[np.floating])
assert_type(npp.polynomial.polyval2d(AR_u4, AR_u4, AR_b), npt.NDArray[np.floating])
assert_type(npp.polynomial.polyval2d(AR_i8, AR_i8, AR_i8), npt.NDArray[np.floating])
assert_type(npp.polynomial.polyval2d(AR_f8, AR_f8, AR_i8), npt.NDArray[np.floating])
assert_type(npp.polynomial.polyval2d(AR_i8, AR_i8, AR_c16), npt.NDArray[np.complexfloating])
assert_type(npp.polynomial.polyval2d(AR_O, AR_O, AR_O), npt.NDArray[np.object_])
 
assert_type(npp.polynomial.polyval3d(AR_b, AR_b, AR_b, AR_b), npt.NDArray[np.floating])
assert_type(npp.polynomial.polyval3d(AR_u4, AR_u4, AR_u4, AR_b), npt.NDArray[np.floating])
assert_type(npp.polynomial.polyval3d(AR_i8, AR_i8, AR_i8, AR_i8), npt.NDArray[np.floating])
assert_type(npp.polynomial.polyval3d(AR_f8, AR_f8, AR_f8, AR_i8), npt.NDArray[np.floating])
assert_type(npp.polynomial.polyval3d(AR_i8, AR_i8, AR_i8, AR_c16), npt.NDArray[np.complexfloating])
assert_type(npp.polynomial.polyval3d(AR_O, AR_O, AR_O, AR_O), npt.NDArray[np.object_])
 
assert_type(npp.polynomial.polyvalfromroots(AR_b, AR_b), npt.NDArray[np.floating])
assert_type(npp.polynomial.polyvalfromroots(AR_u4, AR_b), npt.NDArray[np.floating])
assert_type(npp.polynomial.polyvalfromroots(AR_i8, AR_i8), npt.NDArray[np.floating])
assert_type(npp.polynomial.polyvalfromroots(AR_f8, AR_i8), npt.NDArray[np.floating])
assert_type(npp.polynomial.polyvalfromroots(AR_i8, AR_c16), npt.NDArray[np.complexfloating])
assert_type(npp.polynomial.polyvalfromroots(AR_O, AR_O), npt.NDArray[np.object_])
 
assert_type(npp.polynomial.polyvander(AR_f8, 3), npt.NDArray[np.floating])
assert_type(npp.polynomial.polyvander(AR_c16, 3), npt.NDArray[np.complexfloating])
assert_type(npp.polynomial.polyvander(AR_O, 3), npt.NDArray[np.object_])
 
assert_type(npp.polynomial.polyvander2d(AR_f8, AR_f8, [4, 2]), npt.NDArray[np.floating])
assert_type(npp.polynomial.polyvander2d(AR_c16, AR_c16, [4, 2]), npt.NDArray[np.complexfloating])
assert_type(npp.polynomial.polyvander2d(AR_O, AR_O, [4, 2]), npt.NDArray[np.object_])
 
assert_type(npp.polynomial.polyvander3d(AR_f8, AR_f8, AR_f8, [4, 3, 2]), npt.NDArray[np.floating])
assert_type(npp.polynomial.polyvander3d(AR_c16, AR_c16, AR_c16, [4, 3, 2]), npt.NDArray[np.complexfloating])
assert_type(npp.polynomial.polyvander3d(AR_O, AR_O, AR_O, [4, 3, 2]), npt.NDArray[np.object_])
 
assert_type(
    npp.polynomial.polyfit(AR_f8, AR_f8, 2),
    npt.NDArray[np.floating],
)
assert_type(
    npp.polynomial.polyfit(AR_f8, AR_i8, 1, full=True),
    tuple[npt.NDArray[np.floating], Sequence[np.inexact | np.int32]],
)
assert_type(
    npp.polynomial.polyfit(AR_c16, AR_f8, 2),
    npt.NDArray[np.complexfloating],
)
assert_type(
    npp.polynomial.polyfit(AR_f8, AR_c16, 1, full=True)[0],
    npt.NDArray[np.complexfloating],
)
 
assert_type(npp.chebyshev.chebgauss(2), tuple[_ArrFloat1D64, _ArrFloat1D64])
 
assert_type(npp.chebyshev.chebweight(AR_f8), npt.NDArray[np.float64])
assert_type(npp.chebyshev.chebweight(AR_c16), npt.NDArray[np.complex128])
assert_type(npp.chebyshev.chebweight(AR_O), npt.NDArray[np.object_])
 
assert_type(npp.chebyshev.poly2cheb(AR_f8), _ArrFloat1D)
assert_type(npp.chebyshev.poly2cheb(AR_c16), _ArrComplex1D)
assert_type(npp.chebyshev.poly2cheb(AR_O), _ArrObject1D)
 
assert_type(npp.chebyshev.cheb2poly(AR_f8), _ArrFloat1D)
assert_type(npp.chebyshev.cheb2poly(AR_c16), _ArrComplex1D)
assert_type(npp.chebyshev.cheb2poly(AR_O), _ArrObject1D)
 
assert_type(npp.chebyshev.chebpts1(6), _ArrFloat1D64)
assert_type(npp.chebyshev.chebpts2(6), _ArrFloat1D64)
 
assert_type(
    npp.chebyshev.chebinterpolate(np.tanh, 3),
    npt.NDArray[np.float64 | np.complex128 | np.object_],
)