Longfellow ZK 0290cb32

Loading...
Searching...
No Matches
Data Structures | Public Types | Public Member Functions | Data Fields
proofs::Logic< Field_, Backend > Class Template Reference

## Data Structures
class | bitvec
struct | BitW

## Public Types
using | Field = Field_
using | Elt = typename Field::Elt
using | EltW = typename Backend::V
using | v1 = bitvec<1>
using | v4 = bitvec<4>
using | v8 = bitvec<8>
using | v16 = bitvec<16>
using | v32 = bitvec<32>
using | v64 = bitvec<64>
using | v128 = bitvec<128>
using | v129 = bitvec<129>
using | v256 = bitvec<256>

## Public Member Functions
| Logic (const Backend *bk, const Field &F)
Elt | addf (const Elt &a, const Elt &b) const
Elt | mulf (const Elt &a, const Elt &b) const
Elt | invertf (const Elt &a) const
Elt | negf (const Elt &a) const
Elt | zero () const
Elt | one () const
Elt | mone () const
Elt | elt (uint64_t a) const
template<size_t N>
Elt | elt (const char(&s)[N]) const
EltW | assert0 (const EltW &a) const
EltW | add (const EltW *a, const EltW &b) const
EltW | sub (const EltW *a, const EltW &b) const
EltW | mul (const EltW *a, const EltW &b) const
EltW | mul (const Elt &k, const EltW &b) const
EltW | mul (const Elt &k, const EltW *a, const EltW &b) const
EltW | ax (const Elt &a, const EltW &x) const
EltW | axy (const Elt &a, const EltW *x, const EltW &y) const
EltW | axpy (const EltW *y, const Elt &a, const EltW &x) const
EltW | apy (const EltW &y, const Elt &a) const
EltW | konst (const Elt &a) const
EltW | konst (uint64_t a) const
template<size_t N>
std::array< EltW, N > | konst (const std::array< Elt, N > &a) const
BitW | rebase (const Elt &d0, const Elt &d1, const BitW &v) const
EltW | eval (const BitW &v) const
template<size_t N>
EltW | as_scalar (const bitvec< N > &v) const
EltW | assert0 (const BitW &v) const
EltW | assert1 (const BitW &v) const
EltW | assert_eq (const EltW *a, const EltW &b) const
EltW | assert_eq (const BitW *a, const BitW &b) const
EltW | assert_implies (const BitW *a, const BitW &b) const
EltW | assert_is_bit (const BitW &b) const
EltW | assert_is_bit (const EltW &v) const
BitW | bit (size_t b) const
void | bits (size_t n, BitW a[], uint64_t x) const
BitW | lnot (const BitW &x) const
BitW | land (const BitW *a, const BitW &b) const
EltW | lmul (const BitW *a, const EltW &b) const
EltW | lmul (const EltW *b, const BitW &a) const
BitW | lxor (const BitW *a, const BitW &b) const
BitW | lxor (const BitW *a, const BitW *b) const
BitW | lor (const BitW *a, const BitW &b) const
BitW | limplies (const BitW *a, const BitW &b) const
BitW | lor_exclusive (const BitW *a, const BitW &b) const
BitW | lxor3 (const BitW *a, const BitW *b, const BitW &c) const
BitW | lCh (const BitW *x, const BitW *y, const BitW &z) const
BitW | lMaj (const BitW *x, const BitW *y, const BitW &z) const
BitW | mux (const BitW *control, const BitW *iftrue, const BitW &iffalse) const
EltW | mux (const BitW *control, const EltW *iftrue, const EltW &iffalse) const
EltW | add (size_t i0, size_t i1, const std::function< EltW(size_t)> &f) const
BitW | lor_exclusive (size_t i0, size_t i1, const std::function< BitW(size_t)> &f) const
BitW | land (size_t i0, size_t i1, const std::function< BitW(size_t)> &f) const
BitW | lor (size_t i0, size_t i1, const std::function< BitW(size_t)> &f) const
BitW | or_of_and (std::vector< std::vector< BitW > > clauses_of_ands) const
EltW | mul (size_t i0, size_t i1, const std::function< EltW(size_t)> &f) const
void | assert_sum (size_t w, const BitW c[], const BitW a[], const BitW b[]) const
BitW | ripple_carry_add (size_t w, BitW c[], const BitW a[], const BitW b[]) const
BitW | ripple_carry_sub (size_t w, BitW c[], const BitW a[], const BitW b[]) const
BitW | parallel_prefix_add (size_t w, BitW c[], const BitW a[], const BitW b[]) const
BitW | parallel_prefix_sub (size_t w, BitW c[], const BitW a[], const BitW b[]) const
void | multiplier (size_t w, BitW c[], const BitW a[], const BitW b[]) const
void | gf2_polynomial_multiplier (size_t w, BitW c[], const BitW a[], const BitW b[]) const
void | gf2_polynomial_multiplier_karat (size_t w, BitW c[], const BitW a[], const BitW b[]) const
void | gf2_128_mul (v128 &c, const v128 a, const v128 b) const
void | gf2k_mul (BitW c[], const BitW a[], const BitW b[], const std::vector< uint16_t > M[], size_t w) const
BitW | eq0 (size_t w, const BitW a[]) const
BitW | eq (size_t w, const BitW a[], const BitW b[]) const
BitW | lt (size_t w, const BitW a[], const BitW b[]) const
BitW | leq (size_t w, const BitW a[], const BitW b[]) const
template<class T>
void | scan (const std::function< void(T *, const T &, const T &)> &op, T x[], size_t i0, size_t i1, bool backward=false) const
void | scan_and (BitW x[], size_t i0, size_t i1, bool backward=false) const
void | scan_or (BitW x[], size_t i0, size_t i1, bool backward=false) const
void | scan_xor (BitW x[], size_t i0, size_t i1, bool backward=false) const
template<size_t I0, size_t I1, size_t N>
bitvec< I1 - I0 > | slice (const bitvec< N > &a) const
template<size_t NA, size_t NB>
bitvec< NA+NB > | vappend (const bitvec< NA > &a, const bitvec< NB > &b) const
template<size_t N>
bool | vequal (const bitvec< N > *a, const bitvec< N > &b) const
template<size_t N>
bitvec< N > | vbit (uint64_t x) const
v8 | vbit8 (uint64_t x) const
v32 | vbit32 (uint64_t x) const
template<size_t N>
bitvec< N > | vnot (const bitvec< N > &x) const
template<size_t N>
bitvec< N > | vand (const bitvec< N > *a, const bitvec< N > &b) const
template<size_t N>
bitvec< N > | vand (const BitW *a, const bitvec< N > &b) const
template<size_t N>
bitvec< N > | vor (const bitvec< N > *a, const bitvec< N > &b) const
template<size_t N>
bitvec< N > | vor_exclusive (const bitvec< N > *a, const bitvec< N > &b) const
template<size_t N>
bitvec< N > | vxor (const bitvec< N > *a, const bitvec< N > &b) const
template<size_t N>
bitvec< N > | vCh (const bitvec< N > *x, const bitvec< N > *y, const bitvec< N > &z) const
template<size_t N>
bitvec< N > | vMaj (const bitvec< N > *x, const bitvec< N > *y, const bitvec< N > &z) const
template<size_t N>
bitvec< N > | vxor3 (const bitvec< N > *x, const bitvec< N > *y, const bitvec< N > &z) const
template<size_t N>
bitvec< N > | vshr (const bitvec< N > &a, size_t shift, size_t b=0) const
template<size_t N>
bitvec< N > | vshl (const bitvec< N > &a, size_t shift, size_t b=0) const
template<size_t N>
bitvec< N > | vrotr (const bitvec< N > &a, size_t b) const
template<size_t N>
bitvec< N > | vrotl (const bitvec< N > &a, size_t b) const
template<size_t N>
bitvec< N > | vadd (const bitvec< N > &a, const bitvec< N > &b) const
template<size_t N>
bitvec< N > | vadd (const bitvec< N > &a, uint64_t val) const
template<size_t N>
BitW | veq (const bitvec< N > &a, const bitvec< N > &b) const
template<size_t N>
BitW | veq (const bitvec< N > &a, uint64_t val) const
template<size_t N>
BitW | vlt (const bitvec< N > *a, const bitvec< N > &b) const
template<size_t N>
BitW | vlt (const bitvec< N > &a, uint64_t val) const
template<size_t N>
BitW | vlt (uint64_t a, const bitvec< N > &b) const
template<size_t N>
BitW | vleq (const bitvec< N > *a, const bitvec< N > &b) const
template<size_t N>
BitW | vleq (const bitvec< N > &a, uint64_t val) const
template<size_t N>
BitW | veqmask (const bitvec< N > *a, uint64_t mask, const bitvec< N > &val) const
template<size_t N>
BitW | veqmask (const bitvec< N > &a, uint64_t mask, uint64_t val) const
EltW | eltw_input () const
BitW | input () const
void | output (const BitW &x, size_t i) const
size_t | wire_id (const BitW &v) const
size_t | wire_id (const EltW &x) const
template<size_t N>
bitvec< N > | vinput () const
template<size_t N>
void | voutput (const bitvec< N > &x, size_t i0) const
template<size_t N>
void | vassert0 (const bitvec< N > &x) const
template<size_t N>
void | vassert_eq (const bitvec< N > *x, const bitvec< N > &y) const
template<size_t N>
void | vassert_eq (const bitvec< N > &x, uint64_t y) const
template<size_t N>
void | vassert_is_bit (const bitvec< N > &a) const

## Data Fields
const Field & | f_

The documentation for this class was generated from the following file:

- lib/circuits/logic/logic.h