|
| 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 |
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 |
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 |