17#ifndef PROVSQL_RANDOM_VARIABLE_H
18#define PROVSQL_RANDOM_VARIABLE_H
93std::optional<DistributionTemplate>
double analytical_variance(const DistributionSpec &d)
Closed-form variance Var(X) for a basic distribution.
double parseDoubleStrict(const std::string &s)
Strictly parse s as a double.
std::optional< DistributionSpec > parse_distribution_spec(const std::string &s)
Parse the on-disk text encoding of a gate_rv distribution.
std::optional< DistributionTemplate > parse_distribution_template(const std::string &s)
Parse the on-disk text encoding of a gate_rv distribution, keeping wired (token) parameters as wire r...
double analytical_mean(const DistributionSpec &d)
Closed-form expectation E[X] for a basic distribution.
double analytical_raw_moment(const DistributionSpec &d, unsigned k)
Closed-form raw moment for a basic distribution.
std::string double_to_text(double v)
Format a double back into the canonical text form used by gate_value extras and gate_rv distribution ...
A registered family's descriptor: its complete identity.
One parameter slot of a gate_rv, either a literal or a wire.
double literal
Value when wire_slot < 0.
int wire_slot
>= 0: resolve from the gate's wires[wire_slot].
Parsed distribution spec (family + up to two parameters).
const DistributionFamily * family
double p2
Second parameter (σ, b, or λ; unused for 1-parameter families).
double p1
First parameter (μ, a, k, or λ).
A gate_rv distribution spec that may carry wired (token) parameters – the parse-time counterpart of D...
const DistributionFamily * family
bool parametric() const
True iff any parameter is a wire reference (a compound / latent leaf).