code: def _fhtq(a, u, inverse=False):
      """Compute the biased fast Hankel transform.
  
      This is the basic FFTLog routine.
      """
  
      # size of transform
      n = a.shape[-1]
  
      # check for singular transform or singular inverse transform
      if cupy.isinf(u[0]) and not inverse:
          warn("singular transform; consider changing the bias")
          # fix coefficient to obtain (potentially correct) transform anyway
          u = u.copy()
          u[0] = 0
      elif u[0] == 0 and inverse:
          warn("singular inverse transform; consider changing the bias")
          # fix coefficient to obtain (potentially correct) inverse anyway
          u = u.copy()
          u[0] = cupy.inf
  
      # biased fast Hankel transform via real FFT
      A = _fft.rfft(a, axis=-1)
      if not inverse:
          # forward transform
          A *= u
      else:
          # backward transform
          A /= u.conj()
      A = _fft.irfft(A, n, axis=-1)
      A = A[..., ::-1]
  
      return A
  
file_path: cupy/cupyx/scipy/fft/_fftlog.py
imports: import math
  from warnings import warn
  import cupy
  from cupyx.scipy.fft import _fft
  from cupyx.scipy.special import loggamma, poch
label_desc: Use image node_id 4 for calling a global function with example usage: _fhtq(a, u, inverse) and returns: A