class_docstr: Fourier Basis linear function approximation.
  
  Requires the ranges for each dimension, and is thus able to use only sine or
  cosine (and uses cosine). So, this has half the coefficients that a full
  Fourier approximation would use.
  
  Adapted from Will Dabney's (wdabney@) TF implementation for JAX.
  
  From the paper:
  G.D. Konidaris, S. Osentoski and P.S. Thomas. (2011)
  Value Function Approximation in Reinforcement Learning using the Fourier Basis
code: def scale(self, values):
      shifted = values - self.min_vals
      if self.max_vals is None:
          return shifted
  
      return [
          shifted[i] / self.denominator[i] for i in range(len(shifted))
      ]
  
imports: import itertools
  import time
  from typing import Optional, Sequence, Tuple, Union
  from absl import logging
  from dopamine.discrete_domains import atari_lib
  from flax import linen
  import gin
  import jax
  import jax.numpy
  import numpy
label_desc: Use image node_id 2 for calling the FourierBasis obj's underlying member method code with example usage: obj.scale(values) and returns: unknown, shifted