code: def gf_poly_eval(poly, x):
      '''Evaluates a polynomial in GF(2^p) given the value for x. This is based on Horner's scheme for maximum efficiency.'''
      y = poly[0]
      for i in xrange(1, len(poly)):
          y = gf_mul(y, x) ^ poly[i]
      return f gf_poly_eval(poly, x):
      '''Evaluates a polynomial in GF(2^p) given the value for x. This is based on Horner's scheme for maximum efficiency.'''
      y = poly[0]
      for i in xrange(1, len(poly)):
          y = gf_mul(y, x) ^ poly[i]
      return y
docs: Evaluates a polynomial in GF(2^p) given the value for x. This is based on Horner's scheme for maximum efficiency.