from __future__ import annotations
from typing import Optional
import numpy as np
from numpy.typing import ArrayLike, NDArray
def fft_py(x: ArrayLike, n: Optional[int] = None) -> NDArray[np.complex128]:
...
def ifft_py(x: ArrayLike, n: Optional[int] = None) -> NDArray[np.complex128]:
...
def rfft_py(x: ArrayLike, n: Optional[int] = None) -> NDArray[np.complex128]:
...
def irfft_py(x: ArrayLike, n: Optional[int] = None) -> NDArray[np.float64]:
...
def fft2_py(
x: ArrayLike,
s: Optional[tuple[int, int]] = None,
) -> NDArray[np.complex128]:
...
def dct_py(x: ArrayLike, type: int = 2) -> NDArray[np.float64]:
...
def idct_py(x: ArrayLike, type: int = 2) -> NDArray[np.float64]:
...
def fftfreq_py(n: int, d: float = 1.0) -> NDArray[np.float64]:
...
def rfftfreq_py(n: int, d: float = 1.0) -> NDArray[np.float64]:
...
def fftshift_py(x: NDArray[np.complex128]) -> NDArray[np.complex128]:
...
def ifftshift_py(x: NDArray[np.complex128]) -> NDArray[np.complex128]:
...
def next_fast_len_py(n: int) -> int:
...