ProvSQL C/C++ API
Adding support for provenance and uncertainty management to PostgreSQL databases
Loading...
Searching...
No Matches
RandomVariable.cpp File Reference

Implementation of distribution parsing/formatting/moments. More...

#include "RandomVariable.h"
#include <array>
#include <cctype>
#include <charconv>
#include <cmath>
#include <cstddef>
#include <exception>
#include <iomanip>
#include <sstream>
#include <string>
#include <system_error>
#include "Circuit.h"
#include "distributions/Distribution.h"
Include dependency graph for RandomVariable.cpp:

Go to the source code of this file.

Namespaces

namespace  provsql

Functions

double provsql::parseDoubleStrict (const std::string &s)
 Strictly parse s as a double.
std::string provsql::double_to_text (double v)
 Format a double back into the canonical text form used by gate_value extras and gate_rv distribution parameters (the serialisation counterpart of parseDoubleStrict).
std::optional< DistributionTemplateprovsql::parse_distribution_template (const std::string &s)
 Parse the on-disk text encoding of a gate_rv distribution, keeping wired (token) parameters as wire references.
std::optional< DistributionSpecprovsql::parse_distribution_spec (const std::string &s)
 Parse the on-disk text encoding of a gate_rv distribution.
double provsql::analytical_mean (const DistributionSpec &d)
 Closed-form expectation E[X] for a basic distribution.
double provsql::analytical_variance (const DistributionSpec &d)
 Closed-form variance Var(X) for a basic distribution.
double provsql::analytical_raw_moment (const DistributionSpec &d, unsigned k)
 Closed-form raw moment \(E[X^k]\) for a basic distribution.

Detailed Description

Implementation of distribution parsing/formatting/moments.

Definition in file RandomVariable.cpp.