code: def polyval(self, chebcoeff):
          
          N = len(chebcoeff)
          if N == 1:
              return chebcoeff
  
          data = even_data(chebcoeff)/2
          data[0] *= 2
          data[N-1] *= 2
  
          fftdata = 2*(N-1)*fftpack.ifft(data, axis=0)
          complex_values = fftdata[:N]
          # convert to real if input was real
          if np.isrealobj(chebcoeff):
              values = np.real(complex_values)
          else:
              values = complex_values
          return values
docs: Compute the interpolation values at Chebyshev points.
          chebcoeff: Chebyshev coefficients