def _add_constant()

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};")