parameters: (x, y)
return_statement: return 1 - reduce(lambda x,y: x*y, t.bit_decompose(2*Z)[:Z])
docstring: Sort buckets by their sizes. Bucket is a list of the form
          [entry_0, entry_1, ..., entry_Z, size],
          
          where size is a GF(2^n) element with a single 1 in the position
          corresponding to the bucket size
docstring_summary: Sort buckets by their sizes. Bucket is a list of the form
          [entry_0, entry_1, ..., entry_Z, size],
          
          where size is a GF(2^n) element with a single 1 in the position
          corresponding to the bucket size
docstring_tokens: Sort buckets by their sizes . Bucket is a list of the form [ entry_0 entry_1 ... entry_Z size ] where size is a GF ( 2^n ) element with a single 1 in the position corresponding to the bucket size
function: def bucket_size_sorter(x, y):
      """ Sort buckets by their sizes. Bucket is a list of the form
          [entry_0, entry_1, ..., entry_Z, size],
          
          where size is a GF(2^n) element with a single 1 in the position
          corresponding to the bucket size """
      Z = len(x) - 1
      xs = x[-1]
      ys = y[-1]
      t = 2**Z * xs / ys
      # xs <= yx if bits 0 to Z of t are 0
      return 1 - reduce(lambda x,y: x*y, t.bit_decompose(2*Z)[:Z])
function_tokens: def bucket_size_sorter ( x , y ) : Z = len ( x ) - 1 xs = x [ - 1 ] ys = y [ - 1 ] t = 2 ** Z * xs / ys # xs <= yx if bits 0 to Z of t are 0 return 1 - reduce ( lambda x , y : x * y , t . bit_decompose ( 2 * Z ) [ : Z ] )