|
barretenberg
|
Integer Modulo element class. More...
#include <ffiterm.hpp>
Public Member Functions | |
| FFITerm (const std::string &t, Solver *slv, bool isconst=false, uint32_t base=16) | |
| FFITerm (cvc5::Term &term, Solver *s) | |
| FFITerm (const FFITerm &other)=default | |
| FFITerm (FFITerm &&other)=default | |
| FFITerm & | operator= (const FFITerm &right)=default |
| FFITerm & | operator= (FFITerm &&right)=default |
| FFITerm | operator+ (const FFITerm &other) const |
| void | operator+= (const FFITerm &other) |
| FFITerm | operator- (const FFITerm &other) const |
| void | operator-= (const FFITerm &other) |
| FFITerm | operator* (const FFITerm &other) const |
| void | operator*= (const FFITerm &other) |
| FFITerm | operator/ (const FFITerm &other) const |
| Division operation. | |
| void | operator/= (const FFITerm &other) |
| void | operator== (const FFITerm &other) const |
| void | operator!= (const FFITerm &other) const |
| operator std::string () const | |
| operator cvc5::Term () const | |
Static Public Member Functions | |
| static FFITerm | Var (const std::string &name, Solver *slv) |
| static FFITerm | Const (const std::string &val, Solver *slv, uint32_t base=16) |
Public Attributes | |
| Solver * | solver |
| cvc5::Term | term |
| cvc5::Term | modulus |
Friends | |
| std::ostream & | operator<< (std::ostream &out, const FFITerm &k) |
| FFITerm | batch_add (const std::vector< FFITerm > &children) |
| FFITerm | batch_mul (const std::vector< FFITerm > &children) |
Integer Modulo element class.
Can be a symbolic variable or a constant. Both of them support basic arithmetic operations: +, -, *, /. Check the satisfability of a system and get it's model.
|
static |
Create an integer mod numeric member.
| val | String representation of the value. |
| slv | Pointer to the global solver. |
| base | Base of the string representation. 16 by default. |
| void smt_terms::FFITerm::operator!= | ( | const FFITerm & | other | ) | const |
Create an inequality constraint between two integer mod elements.
Division operation.
Returns a result of the division by creating a new symbolic variable and adding a new constraint to the solver.
| other |
| void smt_terms::FFITerm::operator== | ( | const FFITerm & | other | ) | const |
Create an equality constraint between two integer mod elements.
Create an integer mod symbolic variable.
| name | Name of the variable. Should be unique per variable. |
| slv | Pointer to the global solver. |