Package-level declarations
Types
A ProtocolComposer with sensible defaults.
The cost of executing a piece of code or sending a message. Consists of a map of features over some cost monoid.
Cost determined by which guard is true. Exactly one guard must be true.
A modular cost model for estimating the cost of executing a program given a protocol assignment.
A commutative monoid that represents a notion of cost for a feature.
Multiply cost expression with a scalar. Restrict to scalar multiplication to keep constraint problem linear.
Custom selection constraints specified for constraint solving during splitting.
A constrained optimization problem defined by a set of selection constraints and a cost expression to minimize.
Cost estimator for Local, Replication and ABY protocols.
Symbolic cost that will be minimized by a solver.
Protocols for v1 and v2 are equal.
VariableIn(v, P) holds when v is selected to be a protocol in P
Constraint problem using Z3. Z3 has an optimization module that can return models with minimal cost.
Functions
Caches values returned by ProtocolComposer.communicateOrNull so it is called once per source/destination pair.
Restricts the given factory to protocols that satisfy predicate.
Some convenience functions.
States whether an expression reads only from the protocols in protocols.
Combines given factories into a single factory that returns protocols from all of them.
Combines multiple protocol composers into one.
This function provides a sanity check to ensure that a given protocol assignment satisfies all constraints required on it by the selector.
Properties
Returns all available SelectionProblemSolver instances.