|
purify
C++ Purify implementation with native circuit and BPP support
|
Symbolic expression and transcript machinery used to derive Purify circuits. More...
#include <cstdint>#include <map>#include <optional>#include <set>#include <string>#include <type_traits>#include <utility>#include <vector>#include "purify/numeric.hpp"Go to the source code of this file.
Data Structures | |
| struct | purify::Symbol |
| Compact symbolic variable identifier used inside expressions and transcripts. More... | |
| struct | purify::SymbolLess |
| class | purify::Expr |
| Symbolic affine expression over indexed variables and field coefficients. More... | |
| struct | purify::ExprLess |
| struct | purify::ExprPairLess |
| class | purify::ExprBuilder |
| Small runtime builder that flattens affine combinations into one expression. More... | |
| class | purify::Transcript |
| Mutable transcript used to record symbolic multiplication, division, and boolean constraints. More... | |
| struct | purify::Transcript::MulConstraint |
| One multiplicative relation emitted by the symbolic transcript. More... | |
Namespaces | |
| namespace | purify |
Typedefs | |
| using | purify::WitnessAssignments = std::vector< std::optional< FieldElement > > |
| Partial witness assignment vector indexed by transcript witness id. | |
Enumerations | |
| enum class | purify::SymbolKind : std::uint8_t { purify::Witness = 0 , purify::Left = 1 , purify::Right = 2 , purify::Output = 3 , purify::Commitment = 4 } |
| Symbol classes used while deriving witness and Bulletproof wire relations. More... | |
Functions | |
| bool | purify::operator< (const Symbol &lhs, const Symbol &rhs) noexcept |
| std::ostream & | purify::operator<< (std::ostream &out, const Expr &expr) |
| Streams the human-readable expression form to an output stream. | |
| Expr | purify::operator+ (const Expr &lhs, const Expr &rhs) |
| Expr | purify::operator+ (const Expr &lhs, std::int64_t rhs) |
| Expr | purify::operator+ (std::int64_t lhs, const Expr &rhs) |
| Expr | purify::operator- (const Expr &lhs, const Expr &rhs) |
| Expr | purify::operator- (const Expr &lhs, std::int64_t rhs) |
| Expr | purify::operator- (std::int64_t lhs, const Expr &rhs) |
| Expr | purify::operator- (const Expr &value) |
| Expr | purify::operator* (const Expr &expr, const FieldElement &scalar) |
| Expr | purify::operator* (const FieldElement &scalar, const Expr &expr) |
| Expr | purify::operator* (const Expr &expr, std::int64_t scalar) |
| Expr | purify::operator* (std::int64_t scalar, const Expr &expr) |
| bool | purify::operator== (const Expr &lhs, const Expr &rhs) |
| bool | purify::operator< (const Expr &lhs, const Expr &rhs) |