← Documentation
ADS-IDAC Engine 5.0.0
bncore::DistributeOp Struct Reference

Index tables for the downward (distribute) message from a parent clique p to one child clique u. More...

#include <workspace.hpp>

Public Attributes

std::size_t product_states
 number of states of the product space More...
 
std::vector< uint32_t > pot_map
 [prod_idx] to flat index in parent clique p's potential More...
 
bool has_parent_down = false
 true when p has a parent of its own More...
 
std::vector< uint32_t > down_map
 [prod_idx] to index in p's down message; empty unless has_parent_down More...
 
std::vector< std::vector< uint32_t > > sibling_maps
 [sibling_i][prod_idx] to index in that sibling's up message More...
 
std::vector< std::size_t > sibling_cliques
 other children of p, parallel to sibling_maps More...
 
std::vector< uint32_t > marg_map
 [prod_idx] to index in u's down message More...
 
std::size_t parent_clique = 0
 clique index of p More...
 

Detailed Description

Index tables for the downward (distribute) message from a parent clique p to one child clique u.

The product space is that of clique p, combined with the separators to the siblings of u. The message multiplies p's potential, the down message p received from its own parent (if any) and the up messages of u's siblings, then sums onto the separator between p and u. Indexing follows CollectOp.

Definition at line 47 of file workspace.hpp.

Member Data Documentation

◆ down_map

std::vector<uint32_t> bncore::DistributeOp::down_map

[prod_idx] to index in p's down message; empty unless has_parent_down

Definition at line 51 of file workspace.hpp.

Referenced by bncore::BatchWorkspace::build_message_schedule(), and bncore::BatchWorkspace::calibrate().

◆ has_parent_down

bool bncore::DistributeOp::has_parent_down = false

true when p has a parent of its own

Definition at line 50 of file workspace.hpp.

Referenced by bncore::BatchWorkspace::build_message_schedule(), and bncore::BatchWorkspace::calibrate().

◆ marg_map

std::vector<uint32_t> bncore::DistributeOp::marg_map

[prod_idx] to index in u's down message

Definition at line 54 of file workspace.hpp.

Referenced by bncore::BatchWorkspace::build_message_schedule(), and bncore::BatchWorkspace::calibrate().

◆ parent_clique

std::size_t bncore::DistributeOp::parent_clique = 0

clique index of p

Definition at line 55 of file workspace.hpp.

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

◆ pot_map

std::vector<uint32_t> bncore::DistributeOp::pot_map

[prod_idx] to flat index in parent clique p's potential

Definition at line 49 of file workspace.hpp.

Referenced by bncore::BatchWorkspace::build_message_schedule(), and bncore::BatchWorkspace::calibrate().

◆ product_states

std::size_t bncore::DistributeOp::product_states

number of states of the product space

Definition at line 48 of file workspace.hpp.

Referenced by bncore::BatchWorkspace::build_message_schedule(), and bncore::BatchWorkspace::calibrate().

◆ sibling_cliques

std::vector<std::size_t> bncore::DistributeOp::sibling_cliques

other children of p, parallel to sibling_maps

Definition at line 53 of file workspace.hpp.

Referenced by bncore::BatchWorkspace::build_message_schedule(), and bncore::BatchWorkspace::calibrate().

◆ sibling_maps

std::vector<std::vector<uint32_t> > bncore::DistributeOp::sibling_maps

[sibling_i][prod_idx] to index in that sibling's up message

Definition at line 52 of file workspace.hpp.

Referenced by bncore::BatchWorkspace::build_message_schedule(), and bncore::BatchWorkspace::calibrate().


The documentation for this struct was generated from the following file: