.TH "serif::utils::dependencies::detail::Graph< Computations >" 3 "Version v0.0.1a" "SERiF" \" -*- nroff -*- .ad l .nh .SH NAME serif::utils::dependencies::detail::Graph< Computations > \- Immutable topology of computed nodes; context sources are resolved separately\&. .SH SYNOPSIS .br .PP .PP \fR#include \fP .SS "Public Types" .in +1c .ti -1c .RI "using \fBMask\fP = std::array" .br .ti -1c .RI "using \fBMatrix\fP = std::array<\fBMask\fP, \fBsize\fP>" .br .ti -1c .RI "using \fBOrder\fP = std::array" .br .in -1c .SS "Static Public Member Functions" .in +1c .ti -1c .RI "template static consteval \fBMask\fP \fBprerequisites\fP ()" .br .RI "Record only computed prerequisites; other input keys are supplied by a context\&. " .ti -1c .RI "static consteval \fBOrder\fP \fBmake_order\fP ()" .br .RI "\fBOrder\fP prerequisites before their users, preferring the earliest ready declaration at each step\&. " .ti -1c .RI "static consteval bool \fBacyclic\fP ()" .br .RI "A missing position identifies a cycle, including a computation requiring itself\&. " .ti -1c .RI "template static consteval \fBMask\fP \fBrequired\fP (\fBKeyList\fP< Keys\&.\&.\&. >)" .br .RI "Expand requested results to include all computed prerequisites in one reverse traversal\&. " .in -1c .SS "Static Public Attributes" .in +1c .ti -1c .RI "static constexpr std::size_t \fBsize\fP = sizeof\&.\&.\&.(Computations)" .br .ti -1c .RI "static constexpr \fBMatrix\fP \fBedges\fP {\fBprerequisites\fP()\&.\&.\&.}" .br .RI "edges[consumer][producer] is true when the consumer reads the producer's result\&. " .ti -1c .RI "static constexpr \fBOrder\fP \fBorder\fP = \fBmake_order\fP()" .br .RI "Each execution position maps to a declaration index; size marks an unresolved cycle\&. " .in -1c .SH "Detailed Description" .PP .SS "template .br struct serif::utils::dependencies::detail::Graph< Computations >"Immutable topology of computed nodes; context sources are resolved separately\&. .SH "Member Typedef Documentation" .PP .SS "template using \fBserif::utils::dependencies::detail::Graph\fP< Computations >::Mask = std::array" .SS "template using \fBserif::utils::dependencies::detail::Graph\fP< Computations >::Matrix = std::array<\fBMask\fP, \fBsize\fP>" .SS "template using \fBserif::utils::dependencies::detail::Graph\fP< Computations >::Order = std::array" .SH "Member Function Documentation" .PP .SS "template static consteval bool \fBserif::utils::dependencies::detail::Graph\fP< Computations >::acyclic ()\fR [inline]\fP, \fR [static]\fP, \fR [nodiscard]\fP, \fR [consteval]\fP" .PP A missing position identifies a cycle, including a computation requiring itself\&. .SS "template static consteval \fBOrder\fP \fBserif::utils::dependencies::detail::Graph\fP< Computations >::make_order ()\fR [inline]\fP, \fR [static]\fP, \fR [nodiscard]\fP, \fR [consteval]\fP" .PP \fBOrder\fP prerequisites before their users, preferring the earliest ready declaration at each step\&. .PP \fBNote\fP .RS 4 Remaining prerequisite counts avoid rescanning each candidate's entire input list\&. Both the initial count and subsequent updates are quadratic in graph size, keeping complete stellar graphs within constexpr limits\&. .RE .PP .SS "template template static consteval \fBMask\fP \fBserif::utils::dependencies::detail::Graph\fP< Computations >::prerequisites ()\fR [inline]\fP, \fR [static]\fP, \fR [nodiscard]\fP, \fR [consteval]\fP" .PP Record only computed prerequisites; other input keys are supplied by a context\&. .SS "template template static consteval \fBMask\fP \fBserif::utils::dependencies::detail::Graph\fP< Computations >::required (\fBKeyList\fP< Keys\&.\&.\&. > )\fR [inline]\fP, \fR [static]\fP, \fR [nodiscard]\fP, \fR [consteval]\fP" .PP Expand requested results to include all computed prerequisites in one reverse traversal\&. .PP \fBNote\fP .RS 4 Every user appears after its prerequisites in the topological order\&. Visiting users first therefore marks their inputs before those inputs are visited, independently of declaration order\&. .RE .PP .SH "Member Data Documentation" .PP .SS "template \fBMatrix\fP \fBserif::utils::dependencies::detail::Graph\fP< Computations >::edges {\fBprerequisites\fP()\&.\&.\&.}\fR [static]\fP, \fR [constexpr]\fP" .PP edges[consumer][producer] is true when the consumer reads the producer's result\&. .SS "template \fBOrder\fP \fBserif::utils::dependencies::detail::Graph\fP< Computations >::order = \fBmake_order\fP()\fR [static]\fP, \fR [constexpr]\fP" .PP Each execution position maps to a declaration index; size marks an unresolved cycle\&. .SS "template std::size_t \fBserif::utils::dependencies::detail::Graph\fP< Computations >::size = sizeof\&.\&.\&.(Computations)\fR [static]\fP, \fR [constexpr]\fP" .SH "Author" .PP Generated automatically by Doxygen for SERiF from the source code\&.