Skip to documentation
SLOP

tiny.pluck.bdd.WeightedSampler

Reference tiny.pluck bdd WeightedSampler

Defined in bdd.

API (10)

Actions

Public operations.

Fields and members

Public fields and members.

No direct callersNo direct callsbddWeightedSampler
Static calls · unresolved targets: unknown · external targets: unknown.

Source

Source: lib/pluck/src/bdd.zig:3059

zig
pub const WeightedSampler = struct {    allocator: Allocator,    manager: *Manager,    bdd: Bdd,    params: *const WmcParams,    cache: WmcDenseCache,    var_bdds: []Bdd,    total_wmc: f64,    pub fn init(        allocator: Allocator,        manager: *Manager,        bdd: Bdd,        params: *const WmcParams,    ) !WeightedSampler {        const var_bdds = try allocator.alloc(Bdd, manager.numVars());        errdefer allocator.free(var_bdds);        for (var_bdds, 0..) |*var_bdd, label| {            var_bdd.* = try manager.getOrInsert(Node.init(@intCast(label), Bdd.FALSE, Bdd.TRUE));        }        var cache = try WmcDenseCache.init(allocator, manager.nodes.items.len);        errdefer cache.deinit();        const total_wmc = wmcHelper(manager, bdd, params, &cache);        return WeightedSampler{            .allocator = allocator,            .manager = manager,            .bdd = bdd,            .params = params,            .cache = cache,            .var_bdds = var_bdds,            .total_wmc = total_wmc,        };    }    pub fn deinit(self: *WeightedSampler) void {        self.cache.deinit();        self.allocator.free(self.var_bdds);    }    pub fn sample(self: *WeightedSampler, rng: std.Random) Allocator.Error!WeightedSampleResult {        if (self.bdd.isTrue()) {            return WeightedSampleResult{                .sample = Bdd.TRUE,                .probability = 1.0,            };        }        if (self.bdd.isFalse() or self.total_wmc == 0.0) {            return WeightedSampleResult{                .sample = Bdd.FALSE,                .probability = 0.0,            };        }        return try weightedSampleFromCache(self.manager, self.bdd, self.params, rng, 1.0, &self.cache, self.var_bdds);    }};
Called byCallstest sourcelib.pluck.src.bddtest: weighted sampler - deterministi...test sourcelib.pluck.src.bddtest: weighted sampler - frequency ma...test sourcelib.pluck.src.profiling.internal.weightedtest: BENCHMARK: weighted sampling ca...private sourcelib.pluck.src.toplevel.querydrawPosteriorSamplesFromEvidenceprivate sourcelib.pluck.src.bdd.WmcDenseCachedeinitbdd.WeightedSamplerdeinit
Static calls · unresolved targets: 1 · external targets: 0.
Called byCallstest sourcelib.pluck.src.bddtest: weighted sampler - deterministi...test sourcelib.pluck.src.bddtest: weighted sampler - frequency ma...test sourcelib.pluck.src.profiling.internal.weightedtest: BENCHMARK: weighted sampling ca...private sourcelib.pluck.src.toplevel.querydrawPosteriorSamplesFromEvidencebdd.Nodeinitprivate sourcelib.pluck.src.bdd.WmcDenseCachedeinitprivate sourcelib.pluck.src.bdd.WmcDenseCacheinitprivate sourcelib.pluck.src.bddwmcHelperbdd.WeightedSamplerinit
Static calls · unresolved targets: 0 · external targets: 4.
Called byCallstest sourcelib.pluck.src.bddtest: weighted sampler - deterministi...test sourcelib.pluck.src.bddtest: weighted sampler - frequency ma...test sourcelib.pluck.src.profiling.internal.weightedtest: BENCHMARK: weighted sampling ca...private sourcelib.pluck.src.toplevel.querydrawPosteriorSamplesFromEvidencebdd.BddisFalsebdd.BddisTrueprivate sourcelib.pluck.src.bddweightedSampleFromCachebdd.WeightedSamplersample
Static calls · unresolved targets: 0 · external targets: 0.

Audit

Definitions4
Public names4
Members7
Version26.7.0
Revisiondaab053ee433