\doxysection{src/include/serif/utils/dependencies/computation\+\_\+graph.hpp File Reference} \hypertarget{computation__graph_8hpp}{}\label{computation__graph_8hpp}\index{src/include/serif/utils/dependencies/computation\_graph.hpp@{src/include/serif/utils/dependencies/computation\_graph.hpp}} {\ttfamily \#include $<$concepts$>$}\newline {\ttfamily \#include $<$cstddef$>$}\newline {\ttfamily \#include $<$tuple$>$}\newline {\ttfamily \#include $<$type\+\_\+traits$>$}\newline {\ttfamily \#include $<$utility$>$}\newline {\ttfamily \#include "{}serif/utils/dependencies/computation.\+hpp"{}}\newline {\ttfamily \#include "{}serif/utils/dependencies/key\+\_\+list\+\_\+operations.\+hpp"{}}\newline {\ttfamily \#include "{}serif/utils/dependencies/detail/graph.\+hpp"{}}\newline Include dependency graph for computation\+\_\+graph.\+hpp\+: \nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=350pt]{computation__graph_8hpp__incl} \end{center} \end{figure} This graph shows which files directly or indirectly include this file\+: \nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=350pt]{computation__graph_8hpp__dep__incl} \end{center} \end{figure} \doxysubsubsection*{Classes} \begin{DoxyCompactItemize} \item class \mbox{\hyperlink{classserif_1_1utils_1_1dependencies_1_1_computation_graph}{serif\+::utils\+::dependencies\+::\+Computation\+Graph$<$ Computations $>$}} \end{DoxyCompactItemize} \doxysubsubsection*{Namespaces} \begin{DoxyCompactItemize} \item namespace \mbox{\hyperlink{namespaceserif}{serif}} \item namespace \mbox{\hyperlink{namespaceserif_1_1utils}{serif\+::utils}} \item namespace \mbox{\hyperlink{namespaceserif_1_1utils_1_1dependencies}{serif\+::utils\+::dependencies}} \item namespace \mbox{\hyperlink{namespaceserif_1_1utils_1_1dependencies_1_1detail}{serif\+::utils\+::dependencies\+::detail}} \end{DoxyCompactItemize} \doxysubsubsection*{Concepts} \begin{DoxyCompactItemize} \item concept \mbox{\hyperlink{conceptserif_1_1utils_1_1dependencies_1_1_compatible_computations}{serif\+::utils\+::dependencies\+::\+Compatible\+Computations}} \begin{DoxyCompactList}\small\item\em A computational graph needs unique producers, valid input ownership, and no cycles. \end{DoxyCompactList}\item concept \mbox{\hyperlink{conceptserif_1_1utils_1_1dependencies_1_1_is_computation_graph}{serif\+::utils\+::dependencies\+::\+Is\+Computation\+Graph}} \end{DoxyCompactItemize} \doxysubsubsection*{Functions} \begin{DoxyCompactItemize} \item {\footnotesize template$<$typename... Computations$>$ \newline requires Compatible\+Computations$<$Computations...$>$ \&\& (std\+::constructible\+\_\+from$<$std\+::remove\+\_\+cvref\+\_\+t$<$Computations$>$, Computations$>$ \&\& ...)}\\auto \mbox{\hyperlink{namespaceserif_1_1utils_1_1dependencies_aaa065b5bd3823bd3835f159462af09d0}{serif\+::utils\+::dependencies\+::make\+\_\+computation\+\_\+graph}} (Computations \&\&... computations) \begin{DoxyCompactList}\small\item\em Reject duplicate producers and cyclic computational graphs at the declaration site. \end{DoxyCompactList}\end{DoxyCompactItemize} \doxysubsubsection*{Variables} \begin{DoxyCompactItemize} \item {\footnotesize template$<$typename ComputationT, typename Result\+KeysT$>$ }\\constexpr bool \mbox{\hyperlink{namespaceserif_1_1utils_1_1dependencies_1_1detail_a262bca57d5e15e662d4c92abfaac3ed8}{serif\+::utils\+::dependencies\+::detail\+::valid\+\_\+input\+\_\+ownership\+\_\+v}} \begin{DoxyCompactList}\small\item\em Owning nodes can retain computed inputs; context resources remain borrowed. \end{DoxyCompactList}\item {\footnotesize template$<$typename T$>$ }\\constexpr bool \mbox{\hyperlink{namespaceserif_1_1utils_1_1dependencies_a785d1764613ef1db8cfbb8d3d8d401e5}{serif\+::utils\+::dependencies\+::is\+\_\+computation\+\_\+graph\+\_\+v}} = false \item {\footnotesize template$<$typename... Computations$>$ }\\constexpr bool \mbox{\hyperlink{namespaceserif_1_1utils_1_1dependencies_a5bede32254345d0f43a09fc929dd07a9}{serif\+::utils\+::dependencies\+::is\+\_\+computation\+\_\+graph\+\_\+v$<$ Computation\+Graph$<$ Computations... $>$ $>$}} = true \end{DoxyCompactItemize}