21namespace shamrock::solvergraph {
24 std::vector<std::shared_ptr<INode>> nodes;
29 : nodes(std::forward<std::vector<std::shared_ptr<INode>>>(_nodes)), name(name) {
30 if (nodes.size() == 0) {
32 "OperationSequence must have at least one node");
42 return nodes[0]->get_dot_graph_node_start();
45 return nodes[nodes.size() - 1]->get_dot_graph_node_end();
Inode is node between data edges, takes multiple inputs, multiple outputs.
virtual std::string _impl_get_dot_graph_node_end() const
get the dot graph of the node end
std::string _impl_get_tex() const
get the tex of the node
virtual std::string _impl_get_dot_graph_node_start() const
get the dot graph of the node start
std::string _impl_get_label() const
get the label of the node
void _impl_evaluate_internal()
evaluate the node
std::string _impl_get_dot_graph_partial() const
get the dot graph of the node partial
void throw_with_loc(std::string message, SourceLocation loc=SourceLocation{})
Throw an exception and append the source location to it.