139 lines
3.1 KiB
Python
139 lines
3.1 KiB
Python
![]() |
from collections.abc import Sequence
|
||
|
from typing import Literal as L
|
||
|
from typing import TypeAlias
|
||
|
|
||
|
from numpy import complex128, float64
|
||
|
from numpy._typing import ArrayLike, NDArray, _ArrayLikeNumber_co
|
||
|
|
||
|
__all__ = [
|
||
|
"fft",
|
||
|
"ifft",
|
||
|
"rfft",
|
||
|
"irfft",
|
||
|
"hfft",
|
||
|
"ihfft",
|
||
|
"rfftn",
|
||
|
"irfftn",
|
||
|
"rfft2",
|
||
|
"irfft2",
|
||
|
"fft2",
|
||
|
"ifft2",
|
||
|
"fftn",
|
||
|
"ifftn",
|
||
|
]
|
||
|
|
||
|
_NormKind: TypeAlias = L["backward", "ortho", "forward"] | None
|
||
|
|
||
|
def fft(
|
||
|
a: ArrayLike,
|
||
|
n: int | None = ...,
|
||
|
axis: int = ...,
|
||
|
norm: _NormKind = ...,
|
||
|
out: NDArray[complex128] | None = ...,
|
||
|
) -> NDArray[complex128]: ...
|
||
|
|
||
|
def ifft(
|
||
|
a: ArrayLike,
|
||
|
n: int | None = ...,
|
||
|
axis: int = ...,
|
||
|
norm: _NormKind = ...,
|
||
|
out: NDArray[complex128] | None = ...,
|
||
|
) -> NDArray[complex128]: ...
|
||
|
|
||
|
def rfft(
|
||
|
a: ArrayLike,
|
||
|
n: int | None = ...,
|
||
|
axis: int = ...,
|
||
|
norm: _NormKind = ...,
|
||
|
out: NDArray[complex128] | None = ...,
|
||
|
) -> NDArray[complex128]: ...
|
||
|
|
||
|
def irfft(
|
||
|
a: ArrayLike,
|
||
|
n: int | None = ...,
|
||
|
axis: int = ...,
|
||
|
norm: _NormKind = ...,
|
||
|
out: NDArray[float64] | None = ...,
|
||
|
) -> NDArray[float64]: ...
|
||
|
|
||
|
# Input array must be compatible with `np.conjugate`
|
||
|
def hfft(
|
||
|
a: _ArrayLikeNumber_co,
|
||
|
n: int | None = ...,
|
||
|
axis: int = ...,
|
||
|
norm: _NormKind = ...,
|
||
|
out: NDArray[float64] | None = ...,
|
||
|
) -> NDArray[float64]: ...
|
||
|
|
||
|
def ihfft(
|
||
|
a: ArrayLike,
|
||
|
n: int | None = ...,
|
||
|
axis: int = ...,
|
||
|
norm: _NormKind = ...,
|
||
|
out: NDArray[complex128] | None = ...,
|
||
|
) -> NDArray[complex128]: ...
|
||
|
|
||
|
def fftn(
|
||
|
a: ArrayLike,
|
||
|
s: Sequence[int] | None = ...,
|
||
|
axes: Sequence[int] | None = ...,
|
||
|
norm: _NormKind = ...,
|
||
|
out: NDArray[complex128] | None = ...,
|
||
|
) -> NDArray[complex128]: ...
|
||
|
|
||
|
def ifftn(
|
||
|
a: ArrayLike,
|
||
|
s: Sequence[int] | None = ...,
|
||
|
axes: Sequence[int] | None = ...,
|
||
|
norm: _NormKind = ...,
|
||
|
out: NDArray[complex128] | None = ...,
|
||
|
) -> NDArray[complex128]: ...
|
||
|
|
||
|
def rfftn(
|
||
|
a: ArrayLike,
|
||
|
s: Sequence[int] | None = ...,
|
||
|
axes: Sequence[int] | None = ...,
|
||
|
norm: _NormKind = ...,
|
||
|
out: NDArray[complex128] | None = ...,
|
||
|
) -> NDArray[complex128]: ...
|
||
|
|
||
|
def irfftn(
|
||
|
a: ArrayLike,
|
||
|
s: Sequence[int] | None = ...,
|
||
|
axes: Sequence[int] | None = ...,
|
||
|
norm: _NormKind = ...,
|
||
|
out: NDArray[float64] | None = ...,
|
||
|
) -> NDArray[float64]: ...
|
||
|
|
||
|
def fft2(
|
||
|
a: ArrayLike,
|
||
|
s: Sequence[int] | None = ...,
|
||
|
axes: Sequence[int] | None = ...,
|
||
|
norm: _NormKind = ...,
|
||
|
out: NDArray[complex128] | None = ...,
|
||
|
) -> NDArray[complex128]: ...
|
||
|
|
||
|
def ifft2(
|
||
|
a: ArrayLike,
|
||
|
s: Sequence[int] | None = ...,
|
||
|
axes: Sequence[int] | None = ...,
|
||
|
norm: _NormKind = ...,
|
||
|
out: NDArray[complex128] | None = ...,
|
||
|
) -> NDArray[complex128]: ...
|
||
|
|
||
|
def rfft2(
|
||
|
a: ArrayLike,
|
||
|
s: Sequence[int] | None = ...,
|
||
|
axes: Sequence[int] | None = ...,
|
||
|
norm: _NormKind = ...,
|
||
|
out: NDArray[complex128] | None = ...,
|
||
|
) -> NDArray[complex128]: ...
|
||
|
|
||
|
def irfft2(
|
||
|
a: ArrayLike,
|
||
|
s: Sequence[int] | None = ...,
|
||
|
axes: Sequence[int] | None = ...,
|
||
|
norm: _NormKind = ...,
|
||
|
out: NDArray[float64] | None = ...,
|
||
|
) -> NDArray[float64]: ...
|