in src/beanmachine/ppl/compiler/gen_bmg_cpp.py [0:0]
def _add_constant(self, node: bn.ConstantNode) -> None: # noqa
graph_id = len(self.node_to_graph_id)
self.node_to_graph_id[node] = graph_id
t = type(node)
v = node.value
m = ""
if t is bn.PositiveRealNode:
f = f"add_constant_pos_real({_value_to_cpp(float(v))})"
elif t is bn.NegativeRealNode:
f = f"add_constant_neg_real({_value_to_cpp(float(v))})"
elif t is bn.ProbabilityNode:
f = f"add_constant_probability({_value_to_cpp(float(v))})"
elif t is bn.BooleanNode:
f = f"add_constant({_value_to_cpp(bool(v))})"
elif t is bn.NaturalNode:
f = f"add_constant({_value_to_cpp(int(v))})"
elif t is bn.RealNode:
f = f"add_constant({_value_to_cpp(float(v))})"
elif t is bn.ConstantTensorNode:
f = f"add_constant({_value_to_cpp(v)})"
elif t is bn.ConstantPositiveRealMatrixNode:
m = _value_to_cpp_eigen(v, f"m{graph_id}")
f = f"add_constant_pos_matrix(m{graph_id})"
elif t is bn.ConstantRealMatrixNode:
m = _value_to_cpp_eigen(v, f"m{graph_id}")
f = f"add_constant_real_matrix(m{graph_id})"
elif t is bn.ConstantNegativeRealMatrixNode:
m = _value_to_cpp_eigen(v, f"m{graph_id}")
f = f"add_constant_neg_matrix(m{graph_id})"
elif t is bn.ConstantProbabilityMatrixNode:
m = _value_to_cpp_eigen(v, f"m{graph_id}")
f = f"add_constant_probability_matrix(m{graph_id})"
elif t is bn.ConstantSimplexMatrixNode:
m = _value_to_cpp_eigen(v, f"m{graph_id}")
f = f"add_constant_col_simplex_matrix(m{graph_id})"
elif t is bn.ConstantNaturalMatrixNode:
m = _value_to_cpp_eigen(v, f"m{graph_id}")
f = f"add_constant_natural_matrix(m{graph_id})"
elif t is bn.ConstantBooleanMatrixNode:
m = _value_to_cpp_eigen(v, f"m{graph_id}")
f = f"add_constant_bool_matrix(m{graph_id})"
else:
f = "UNKNOWN"
if m != "":
self._code.append(m)
self._code.append(f"uint n{graph_id} = g.{f};")