Expand description

Utility gadgets.

Modules

  • Gadget and chip for a conditional swap utility.
  • Decomposes an $n$-bit field element $\alpha$ into $W$ windows, each window being a $K$-bit word, using a running sum $z$. We constrain $K \leq 3$ for this helper. $$\alpha = k_0 + (2^K) k_1 + (2^{2K}) k_2 + … + (2^{(W-1)K}) k_{W-1}$$
  • Make use of a K-bit lookup table to decompose a field element into K-bit words.

Structs

Traits

Functions

  • Takes a specified subsequence of the little-endian bit representation of a field element. The bits are numbered from 0 for the LSB.
  • Checks that an expression is either 1 or 0.
  • Decompose a word alpha into window_num_bits bits (little-endian) For a window size of w, this returns [k_0, …, k_n] where each k_i is a w-bit value, and scalar = k_0 + k_1 * w + k_n * w^n.
  • The sequence of bits representing a u64 in little-endian order.
  • The u64 integer represented by an L-bit little-endian bitstring.
  • Check that an expression is in the small range [0..range), i.e. 0 ≤ word < range.
  • If a then b, else c. Returns (a * b) + (1 - a) * c.