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