Source code for cbp.graph.graph_utils

from cbp.utils.np_utils import reduction_ndarray


[docs]def get_node2root(node): rtn = [] tmp = node while True: rtn.append(tmp) tmp = tmp.parent if not tmp: break return rtn
[docs]def itsbp_inner_loop(loop_link, is_silent): if len(loop_link) == 2: return for sender, receiver in zip(loop_link[0:-1], loop_link[1:]): sender.send_message(receiver, is_silent)
[docs]def cal_marginal_from_tensor(prob_tensor, varnode_list): rtn_marginal = [] for i, _ in enumerate(varnode_list): rtn_marginal.append(reduction_ndarray(prob_tensor, i)) return rtn_marginal