![]() |
ProvSQL C/C++ API
Adding support for provenance and uncertainty management to PostgreSQL databases
|
Catalog of probability-evaluation methods (Strategy + registry). More...
#include <memory>#include <string>#include <vector>

Go to the source code of this file.
Classes | |
| struct | provsql::Tolerance |
| class | provsql::ProbabilityMethod |
| Strategy interface: one concrete subclass per probability method. More... | |
| class | provsql::MethodCatalog |
Registry of ProbabilityMethod objects. More... | |
Namespaces | |
| namespace | provsql |
Enumerations | |
| enum class | provsql::ToleranceKind { provsql::Exact , provsql::Relative , provsql::Additive } |
| The contract the user grants – the "path". More... | |
| enum class | provsql::Feature { provsql::DnfShape , provsql::TreewidthProxy } |
| A circuit feature a method's cost/applicability estimate depends on, but that is not free to acquire. More... | |
Functions | |
| dDNNF | provsql::makeDDAuto (BooleanCircuit &c, gate_t g) |
Cost-select a d-DNNF construction route for gate g of Boolean circuit c and build it – the default makeDD route. | |
Catalog of probability-evaluation methods (Strategy + registry).
Each probability-evaluation algorithm is a first-class ProbabilityMethod object that declares its own guarantee, applicability and (eventually) cost, instead of that knowledge being smeared across a string-switch dispatcher. The MethodCatalog is the registry the dispatcher in probability_evaluate.cpp consults: a named request resolves through byName(); the default (empty-method) request runs chooseAndRun(), which runs the independent -> inversion-free -> compilation ladder as the Exact-tolerance instance of the chooser.
This header carries only the public interface. The concrete method classes, the EvalContext that threads the per-evaluation circuit state, and the catalog registration all live in probability_evaluate.cpp, where the file-local evaluation helpers they need are in scope.
The design (the method-catalog / three-path chooser) is documented at length in doc/source/dev/probability-evaluation.rst.
Definition in file ProbabilityMethod.h.