\doxysubsection{LUT Utilities }
\hypertarget{group__Utils}{}\label{group__Utils}\index{LUT Utilities@{LUT Utilities}}
\doxysubsubsubsection*{Files}
\begin{DoxyCompactItemize}
\item 
file \mbox{\hyperlink{cxx17utils_8hpp}{cxx17utils.\+hpp}}
\begin{DoxyCompactList}\small\item\em Beta features for building multivariate LUTs via currying. Each feature requires C++17. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsubsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \mbox{\hyperlink{classfunc_1_1ArgumentRecord}{Argument\+Record$<$ TIN $>$}}
\begin{DoxyCompactList}\small\item\em A class used internally by FunC. Wraps a vector of unsigned int that act as a histogram for recording the usage of a function\textquotesingle{}s domain. \end{DoxyCompactList}\item 
class \mbox{\hyperlink{classfunc_1_1CompositeLookupTable}{Composite\+Lookup\+Table$<$ TIN, TOUT $>$}}
\begin{DoxyCompactList}\small\item\em Approximate a single $1$D function with \$\+M\$ LUTs over pairwise disjoint subintervals of its domain. {\ttfamily \doxylink{classfunc_1_1CompositeLookupTable}{Composite\+Lookup\+Table}} works well for functions with disconnected domains, or unused regions, or regions with difficult to approximate behaviour. \end{DoxyCompactList}\item 
class \mbox{\hyperlink{classfunc_1_1DirectEvaluation}{Direct\+Evaluation$<$ TIN, TOUT $>$}}
\begin{DoxyCompactList}\small\item\em Wrap a {\ttfamily std\+::function} and optionally plot that function\textquotesingle{}s domain usage with an {\ttfamily \doxylink{classfunc_1_1ArgumentRecord}{Argument\+Record}} (builds a histogram). To determine useful LUT bounds, users should replace their mathematical function with this class and compile with {\ttfamily -\/DFUNC\+\_\+\+DEBUG}. \end{DoxyCompactList}\item 
class \mbox{\hyperlink{classfunc_1_1FailureProofTable}{Failure\+Proof\+Table$<$ LUT\+\_\+\+TYPE $>$}}
\begin{DoxyCompactList}\small\item\em A wrapper for any implementation of \doxylink{classfunc_1_1LookupTable}{Lookup\+Table} $L$. The {\ttfamily operator()(x)} ensures $x$ is within the bounds of $L$ before returning $L(x)$. Returns $f(x)$ for out of bounds arguments. If {\ttfamily FUNC\+\_\+\+DEBUG} is defined then out of bounds arguments are recorded in a histogram. \end{DoxyCompactList}\item 
class \mbox{\hyperlink{classfunc_1_1LookupTableComparator}{Lookup\+Table\+Comparator$<$ TIN, TOUT $>$}}
\begin{DoxyCompactList}\small\item\em Compare the average time taken to call the {\ttfamily operator()} of any \doxylink{classfunc_1_1LookupTable}{Lookup\+Table} implementation. \end{DoxyCompactList}\item 
class \mbox{\hyperlink{classfunc_1_1LookupTableFactory}{Lookup\+Table\+Factory$<$ TIN, TOUT $>$}}
\begin{DoxyCompactList}\small\item\em Factory design patter for \doxylink{classfunc_1_1LookupTable}{Lookup\+Table} implementations. \end{DoxyCompactList}\item 
class \mbox{\hyperlink{classfunc_1_1RngInterface}{Rng\+Interface$<$ POINT\+\_\+\+TYPE $>$}}
\begin{DoxyCompactList}\small\item\em Abstract interface for classes that can generate random numbers. \end{DoxyCompactList}\item 
class \mbox{\hyperlink{classfunc_1_1StdRng}{Std\+Rng$<$ POINT\+\_\+\+TYPE, DIST\+\_\+\+TYPE, RNG\+\_\+\+TYPE $>$}}
\begin{DoxyCompactList}\small\item\em An implementation of \doxylink{classfunc_1_1RngInterface}{Rng\+Interface}, intended to be used with the generators/ distributions defined in std\+::random. Only \doxylink{classfunc_1_1LookupTableComparator}{Lookup\+Table\+Comparator} uses this class, and it\textquotesingle{}s for sampling random arguments. \end{DoxyCompactList}\item 
class \mbox{\hyperlink{classfunc_1_1Timer}{Timer}}
\begin{DoxyCompactList}\small\item\em Starts a timer when created. Stops when {\ttfamily \doxylink{classfunc_1_1Timer_a8c528baf37154d347366083f0f816846}{stop()}} is called and returns the duration in seconds with {\ttfamily \doxylink{classfunc_1_1Timer_adf529da375562b5aeb2f963055a03d19}{duration()}}. \end{DoxyCompactList}\item 
class \mbox{\hyperlink{classfunc_1_1LookupTableGenerator}{Lookup\+Table\+Generator$<$ TIN, TOUT, TERR $>$}}
\begin{DoxyCompactList}\small\item\em Generate a FunC \doxylink{classfunc_1_1LookupTable}{Lookup\+Table} from a given name and one of the following\+: stepsize, tolerance, memory size limit, or filename with generate\+\_\+by\+\_\+step, generate\+\_\+by\+\_\+tol, generate\+\_\+by\+\_\+impl\+\_\+size, and generate\+\_\+by\+\_\+file respectively. This class is also equipped to compute the error in a LUT built with any given stepsize and plot a LUT against its exact function. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsubsection{Detailed Description}
Each of these classes perform an operation on LUTs. This includes a factory design pattern, profiling, argument recording, computing the error of a LUT, and bounds checking. 