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)
69 lines
4.7 KiB
TeX
69 lines
4.7 KiB
TeX
\doxysection{src/include/serif/utils/dependencies/timing.hpp File Reference}
|
|
\hypertarget{timing_8hpp}{}\label{timing_8hpp}\index{src/include/serif/utils/dependencies/timing.hpp@{src/include/serif/utils/dependencies/timing.hpp}}
|
|
{\ttfamily \#include $<$algorithm$>$}\newline
|
|
{\ttfamily \#include $<$chrono$>$}\newline
|
|
{\ttfamily \#include $<$cstddef$>$}\newline
|
|
{\ttfamily \#include $<$cstdint$>$}\newline
|
|
{\ttfamily \#include $<$memory$>$}\newline
|
|
{\ttfamily \#include $<$string$>$}\newline
|
|
{\ttfamily \#include $<$vector$>$}\newline
|
|
{\ttfamily \#include "{}nameof.\+hpp"{}}\newline
|
|
{\ttfamily \#include "{}serif/utils/dependencies/observers.\+hpp"{}}\newline
|
|
Include dependency graph for timing.\+hpp\+:
|
|
\nopagebreak
|
|
\begin{figure}[H]
|
|
\begin{center}
|
|
\leavevmode
|
|
\includegraphics[width=350pt]{timing_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=207pt]{timing_8hpp__dep__incl}
|
|
\end{center}
|
|
\end{figure}
|
|
\doxysubsubsection*{Classes}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
struct \mbox{\hyperlink{structserif_1_1utils_1_1dependencies_1_1_node_timing}{serif\+::utils\+::dependencies\+::\+Node\+Timing}}
|
|
\begin{DoxyCompactList}\small\item\em Wall time for attempted node work, independently of later cache or Newton acceptance. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structserif_1_1utils_1_1dependencies_1_1_graph_timing_run}{serif\+::utils\+::dependencies\+::\+Graph\+Timing\+Run}}
|
|
\begin{DoxyCompactList}\small\item\em One graph binding\textquotesingle{}s declaration-\/ordered catalog, including nodes which never execute. \end{DoxyCompactList}\item
|
|
class \mbox{\hyperlink{classserif_1_1utils_1_1dependencies_1_1_graph_timing}{serif\+::utils\+::dependencies\+::\+Graph\+Timing}}
|
|
\begin{DoxyCompactList}\small\item\em Collect independent graph bindings without mixing timers into numerical restart history. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structserif_1_1utils_1_1dependencies_1_1_steady_node_clock}{serif\+::utils\+::dependencies\+::\+Steady\+Node\+Clock}}
|
|
\begin{DoxyCompactList}\small\item\em Read monotonic elapsed wall time without changing physical computations. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structserif_1_1utils_1_1dependencies_1_1_graph_timing_factory}{serif\+::utils\+::dependencies\+::\+Graph\+Timing\+Factory$<$ Clock $>$}}
|
|
\begin{DoxyCompactList}\small\item\em Bind one generic timing observer after the model\textquotesingle{}s complete graph type is known. \end{DoxyCompactList}\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_node_timing_clock}{serif\+::utils\+::dependencies\+::\+Node\+Timing\+Clock}}
|
|
\begin{DoxyCompactList}\small\item\em Restrict injected clocks to ordinary arithmetic chrono values safe in a closing callback. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
|
\doxysubsubsection*{Functions}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
{\footnotesize template$<$Node\+Timing\+Clock Clock = Steady\+Node\+Clock$>$ }\\auto \mbox{\hyperlink{namespaceserif_1_1utils_1_1dependencies_a48e42d1b80ff447550fed30ad60f0687}{serif\+::utils\+::dependencies\+::time\+\_\+graph\+\_\+nodes}} (\mbox{\hyperlink{classserif_1_1utils_1_1dependencies_1_1_graph_timing}{Graph\+Timing}} \&timing, Clock clock=\{\})
|
|
\begin{DoxyCompactList}\small\item\em Opt into node timings; a custom clock supports deterministic accounting tests without sleeps. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
|
\doxysubsubsection*{Variables}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
{\footnotesize template$<$typename Time\+Point$>$ }\\constexpr bool \mbox{\hyperlink{namespaceserif_1_1utils_1_1dependencies_1_1detail_afe5c2c82beaeb0fe84e0c663cc6c49d6}{serif\+::utils\+::dependencies\+::detail\+::node\+\_\+time\+\_\+point\+\_\+v}} = false
|
|
\item
|
|
{\footnotesize template$<$typename Clock, typename Duration$>$ }\\constexpr bool \mbox{\hyperlink{namespaceserif_1_1utils_1_1dependencies_1_1detail_a21f39eb3f6e5ae2be643efdc777f71e1}{serif\+::utils\+::dependencies\+::detail\+::node\+\_\+time\+\_\+point\+\_\+v$<$ std\+::chrono\+::time\+\_\+point$<$ Clock, Duration $>$ $>$}} = std\+::is\+\_\+arithmetic\+\_\+v$<$typename Duration\+::rep$>$
|
|
\end{DoxyCompactItemize}
|