← Documentation
ADS-IDAC Engine 5.0.0
bncore Namespace Reference

Classes

struct  AssembleOp
 Index tables that assemble the calibrated belief of one clique from its potential, its down message and its children's up messages. More...
 
class  BatchExecutionEngine
 Runs junction tree inference for a batch of evidence rows. More...
 
class  BatchWorkspace
 Message passing state for one junction tree and one batch size. More...
 
class  BumpAllocator
 Fixed-capacity scratch buffer of doubles with pointer-bump allocation. More...
 
struct  Clique
 One clique of a junction tree. More...
 
struct  CliqueMargInfo
 Per-clique lookup from a flat clique index to the state of each scope variable. More...
 
struct  CollectOp
 Index tables for the upward (collect) message of one non-root clique u to its parent. More...
 
class  DenseTensor
 Dense row-major array of doubles with a fixed shape. More...
 
class  DiscretizationManager
 Splits states of graph variables while a per-variable bin limit allows it. More...
 
struct  DistributeOp
 Index tables for the downward (distribute) message from a parent clique p to one child clique u. More...
 
class  Factor
 A potential over an ordered scope of variables. More...
 
class  Graph
 Directed graphical model over discrete variables. More...
 
class  JunctionTree
 Cliques and separators compiled from one Graph. More...
 
class  JunctionTreeCompiler
 Builds a junction tree from a Bayesian network graph. More...
 
struct  Separator
 One edge of a junction tree, with the variables its cliques share. More...
 
struct  VariableMetadata
 Everything a Graph stores about one discrete variable. More...
 

Typedefs

using NodeId = std::uint32_t
 Handle of a variable within one Graph. More...
 

Functions

static std::vector< std::size_t > make_strides (const std::vector< std::size_t > &shape)
 
static std::vector< NodeId > combine_scopes (const std::vector< NodeId > &a, const std::vector< NodeId > &b, std::vector< int > &b_in_c)
 
static std::size_t build_pot_map_u32 (const std::vector< NodeId > &prod_scope, const std::vector< std::size_t > &prod_shape, const std::vector< NodeId > &src_scope, const std::vector< std::size_t > &src_shape, std::vector< uint32_t > &pot_map)
 
static void build_marg_map_u32 (const std::vector< NodeId > &src_scope, const std::vector< std::size_t > &src_shape, const std::vector< NodeId > &dst_scope, const std::vector< std::size_t > &dst_shape, std::vector< uint32_t > &marg_map)
 

Typedef Documentation

◆ NodeId

using bncore::NodeId = typedef std::uint32_t

Handle of a variable within one Graph.

Graph::add_variable() assigns ids in insertion order starting at 0, so an id is also the variable's index in the graph and its column in a hard evidence matrix (see BatchExecutionEngine::evaluate_multi()).

Definition at line 20 of file node.hpp.

Function Documentation

◆ build_marg_map_u32()

static void bncore::build_marg_map_u32 ( const std::vector< NodeId > &  src_scope,
const std::vector< std::size_t > &  src_shape,
const std::vector< NodeId > &  dst_scope,
const std::vector< std::size_t > &  dst_shape,
std::vector< uint32_t > &  marg_map 
)
static

Definition at line 63 of file workspace.cpp.

References make_strides().

Referenced by bncore::BatchWorkspace::build_message_schedule().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ build_pot_map_u32()

static std::size_t bncore::build_pot_map_u32 ( const std::vector< NodeId > &  prod_scope,
const std::vector< std::size_t > &  prod_shape,
const std::vector< NodeId > &  src_scope,
const std::vector< std::size_t > &  src_shape,
std::vector< uint32_t > &  pot_map 
)
static

Definition at line 38 of file workspace.cpp.

References make_strides().

Referenced by bncore::BatchWorkspace::build_message_schedule().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ combine_scopes()

static std::vector< NodeId > bncore::combine_scopes ( const std::vector< NodeId > &  a,
const std::vector< NodeId > &  b,
std::vector< int > &  b_in_c 
)
static

Definition at line 23 of file workspace.cpp.

Referenced by bncore::BatchWorkspace::build_message_schedule().

Here is the caller graph for this function:

◆ make_strides()

static std::vector< std::size_t > bncore::make_strides ( const std::vector< std::size_t > &  shape)
static

Definition at line 13 of file workspace.cpp.

Referenced by build_marg_map_u32(), bncore::BatchWorkspace::build_message_schedule(), and build_pot_map_u32().

Here is the caller graph for this function: