docs: def fourier_series(x, *a):
      """
      Arbitrary dimensionality fourier series.
  
      The first parameter is a_0, and the second parameter is the interval/scale
      parameter.
  
      The parameters are altering sin and cos paramters.
  
      n = (len(a)-2)/2
      """
      output = 0
      output += a[0]/2
      w = a[1]
      for n in range(2, len(a), 2):
          n_ = n/2
          val1 = a[n]
          val2 = a[n+1]
          output += val1*np.sin(n_*x*w)
          output += val2*np.cos(n_*x*w)
      return output