def METHOD_NAME(self):
    # The numerical gradient of the FFT is sensitive, must set large
    # enough epsilon to get good accuracy.
    eps = 1e-1
    def f_rfft(inp):
        return fft.rfft(inp)
    inputs_val = np.random.random((1, N, N)).astype(pytensor.config.floatX)
    utt.verify_grad(f_rfft, [inputs_val], eps=eps)
    def f_irfft(inp):
        return fft.irfft(inp)
    inputs_val = np.random.random((1, N, N // 2 + 1, 2)).astype(
        pytensor.config.floatX
    )
    utt.verify_grad(f_irfft, [inputs_val], eps=eps)
    def f_rfft(inp):
        return fft.rfft(inp, norm="ortho")
    inputs_val = np.random.random((1, N, N)).astype(pytensor.config.floatX)
    utt.verify_grad(f_rfft, [inputs_val], eps=eps)
    def f_irfft(inp):
        return fft.irfft(inp, norm="no_norm")
    inputs_val = np.random.random((1, N, N // 2 + 1, 2)).astype(
        pytensor.config.floatX
    )
    utt.verify_grad(f_irfft, [inputs_val], eps=eps)