Note for now much of the docs is LLM written. This was done to save time and focus on code development. The docs have been LOOSLEY reviewed. However, the code itself has been either fully written by hand or fully reviewed. Therefore, the docs should at the moment be seen as a loose resource rather than authoratiative (and this is on top of the general ability for docs to drift)
122 lines
5.3 KiB
Groff
122 lines
5.3 KiB
Groff
.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 <graph\&.hpp>\fP
|
|
.SS "Public Types"
|
|
|
|
.in +1c
|
|
.ti -1c
|
|
.RI "using \fBMask\fP = std::array<bool, \fBsize\fP>"
|
|
.br
|
|
.ti -1c
|
|
.RI "using \fBMatrix\fP = std::array<\fBMask\fP, \fBsize\fP>"
|
|
.br
|
|
.ti -1c
|
|
.RI "using \fBOrder\fP = std::array<std::size_t, \fBsize\fP>"
|
|
.br
|
|
.in -1c
|
|
.SS "Static Public Member Functions"
|
|
|
|
.in +1c
|
|
.ti -1c
|
|
.RI "template<typename ComputationT> 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<typename\&.\&.\&. Keys> 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<Computations>()\&.\&.\&.}"
|
|
.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<typename\&.\&.\&. Computations>
|
|
.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<typename\&.\&.\&. Computations> using \fBserif::utils::dependencies::detail::Graph\fP< Computations >::Mask = std::array<bool, \fBsize\fP>"
|
|
|
|
.SS "template<typename\&.\&.\&. Computations> using \fBserif::utils::dependencies::detail::Graph\fP< Computations >::Matrix = std::array<\fBMask\fP, \fBsize\fP>"
|
|
|
|
.SS "template<typename\&.\&.\&. Computations> using \fBserif::utils::dependencies::detail::Graph\fP< Computations >::Order = std::array<std::size_t, \fBsize\fP>"
|
|
|
|
.SH "Member Function Documentation"
|
|
.PP
|
|
.SS "template<typename\&.\&.\&. Computations> 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<typename\&.\&.\&. Computations> 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<typename\&.\&.\&. Computations> template<typename ComputationT> 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<typename\&.\&.\&. Computations> template<typename\&.\&.\&. Keys> 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<typename\&.\&.\&. Computations> \fBMatrix\fP \fBserif::utils::dependencies::detail::Graph\fP< Computations >::edges {\fBprerequisites\fP<Computations>()\&.\&.\&.}\fR [static]\fP, \fR [constexpr]\fP"
|
|
|
|
.PP
|
|
edges[consumer][producer] is true when the consumer reads the producer's result\&.
|
|
.SS "template<typename\&.\&.\&. Computations> \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<typename\&.\&.\&. Computations> 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\&.
|