Longfellow ZK 0290cb32
Loading...
Searching...
No Matches
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, Nkonst (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
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< Nvbit (uint64_t x) const
v8 vbit8 (uint64_t x) const
v32 vbit32 (uint64_t x) const
template<size_t N>
bitvec< Nvnot (const bitvec< N > &x) const
template<size_t N>
bitvec< Nvand (const bitvec< N > *a, const bitvec< N > &b) const
template<size_t N>
bitvec< Nvand (const BitW *a, const bitvec< N > &b) const
template<size_t N>
bitvec< Nvor (const bitvec< N > *a, const bitvec< N > &b) const
template<size_t N>
bitvec< Nvor_exclusive (const bitvec< N > *a, const bitvec< N > &b) const
template<size_t N>
bitvec< Nvxor (const bitvec< N > *a, const bitvec< N > &b) const
template<size_t N>
bitvec< NvCh (const bitvec< N > *x, const bitvec< N > *y, const bitvec< N > &z) const
template<size_t N>
bitvec< NvMaj (const bitvec< N > *x, const bitvec< N > *y, const bitvec< N > &z) const
template<size_t N>
bitvec< Nvxor3 (const bitvec< N > *x, const bitvec< N > *y, const bitvec< N > &z) const
template<size_t N>
bitvec< Nvshr (const bitvec< N > &a, size_t shift, size_t b=0) const
template<size_t N>
bitvec< Nvshl (const bitvec< N > &a, size_t shift, size_t b=0) const
template<size_t N>
bitvec< Nvrotr (const bitvec< N > &a, size_t b) const
template<size_t N>
bitvec< Nvrotl (const bitvec< N > &a, size_t b) const
template<size_t N>
bitvec< Nvadd (const bitvec< N > &a, const bitvec< N > &b) const
template<size_t N>
bitvec< Nvadd (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
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< Nvinput () 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: