\doxysubsection{Direct\+Evaluation\texorpdfstring{$<$}{<} TIN, TOUT \texorpdfstring{$>$}{>} Class Template Reference}
\hypertarget{classfunc_1_1DirectEvaluation}{}\label{classfunc_1_1DirectEvaluation}\index{DirectEvaluation$<$ TIN, TOUT $>$@{DirectEvaluation$<$ TIN, TOUT $>$}}


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}.  




{\ttfamily \#include $<$Direct\+Evaluation.\+hpp$>$}

Inheritance diagram for Direct\+Evaluation\texorpdfstring{$<$}{<} TIN, TOUT \texorpdfstring{$>$}{>}\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classfunc_1_1DirectEvaluation}
\end{center}
\end{figure}
\doxysubsubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{classfunc_1_1DirectEvaluation_ae2d4d0f685be01975971c02b9e04bc3f}{Direct\+Evaluation}} (const \mbox{\hyperlink{classfunc_1_1FunctionContainer}{Function\+Container}}$<$ TIN, TOUT $>$ \&func\+\_\+container, TIN min=0.\+0, TIN max=1.\+0, unsigned int hist\+Size=10, TOUT aerr=0.\+0, TIN rerr=0.\+0, std\+::ostream \texorpdfstring{$\ast$}{*}streamer=nullptr)
\item 
TOUT \mbox{\hyperlink{classfunc_1_1DirectEvaluation_a10047eb2c0e68f488037419e770084e6}{operator()}} (TIN x) const final
\begin{DoxyCompactList}\small\item\em Evaluate the underlying {\ttfamily std\+::function} and optionally record the argument x. \end{DoxyCompactList}\item 
std\+::string \mbox{\hyperlink{classfunc_1_1DirectEvaluation_accba19b44801ed79bb97513319885f31}{name}} () const final
\item 
TIN \mbox{\hyperlink{classfunc_1_1DirectEvaluation_a0476b531891a0e1e33696d1a737661d0}{min\+\_\+arg}} () const final
\item 
TIN \mbox{\hyperlink{classfunc_1_1DirectEvaluation_a546555a620601a06a71c12a15f7a2769}{max\+\_\+arg}} () const final
\item 
unsigned int \mbox{\hyperlink{classfunc_1_1DirectEvaluation_a001c4e4c752e91195b970be3edee0b6d}{order}} () const final
\item 
std\+::size\+\_\+t \mbox{\hyperlink{classfunc_1_1DirectEvaluation_a5e82e200bee26238c342218d6d4f7042}{size}} () const final
\item 
unsigned int \mbox{\hyperlink{classfunc_1_1DirectEvaluation_a269a97d89895944456f32f2be1d37109}{num\+\_\+subintervals}} () const final
\item 
TIN \mbox{\hyperlink{classfunc_1_1DirectEvaluation_a0b483cc80497aa809bead8161f14a284}{step\+\_\+size}} () const final
\item 
std\+::pair$<$ TIN, TIN $>$ \mbox{\hyperlink{classfunc_1_1DirectEvaluation_aea8465ad30b6260a0948d4305d984d9d}{bounds\+\_\+of\+\_\+subinterval}} (unsigned int interval\+Number) const final
\item 
void \mbox{\hyperlink{classfunc_1_1DirectEvaluation_a16138bbe5fe761854a353362ba7d9b2f}{print\+\_\+json}} (std\+::ostream \&out) const final
\end{DoxyCompactItemize}
\doxyparagraph*{Public Member Functions inherited from \mbox{\hyperlink{classfunc_1_1LookupTable}{Lookup\+Table$<$ TIN, TIN $>$}}}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{classfunc_1_1LookupTable_acd94ebee613378fb31e86a83d34eaf4c}{Lookup\+Table}} ()=default
\end{DoxyCompactItemize}
\doxysubsubsubsection*{Additional Inherited Members}
\doxyparagraph*{Public Types inherited from \mbox{\hyperlink{classfunc_1_1LookupTable}{Lookup\+Table$<$ TIN, TIN $>$}}}
\begin{DoxyCompactItemize}
\item 
using {\bfseries input\+\_\+type}
\item 
using {\bfseries output\+\_\+type}
\end{DoxyCompactItemize}


\doxysubsubsection{Detailed Description}
\subsubsection*{template$<$typename TIN, typename TOUT = TIN$>$\newline
class func\+::\+Direct\+Evaluation$<$ TIN, TOUT $>$}
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}. 

Usage example\+: 
\begin{DoxyCode}{0}
\DoxyCodeLine{\mbox{\hyperlink{classfunc_1_1DirectEvaluation_ae2d4d0f685be01975971c02b9e04bc3f}{DirectEvaluation<double>}}\ de(\{MyFunction\},0,10);}
\DoxyCodeLine{\textcolor{keywordtype}{double}\ fx\ =\ de(0.87354);}
\DoxyCodeLine{\textcolor{comment}{//\ sim\ code\ calling\ de\ goes\ here}}
\DoxyCodeLine{de.print\_details(std::cout);\ \textcolor{comment}{//\ prints\ max/min\ recorded\ args\ if\ FUNC\_DEBUG\ is\ defined}}

\end{DoxyCode}


\textbackslash{}notes When compiled with {\ttfamily -\/DFUNC\+\_\+\+DEBUG}, the {\ttfamily \doxylink{classfunc_1_1ArgumentRecord}{Argument\+Record}} uses min and max constructor arguments to construct a histogram\textquotesingle{}s bounds. This histogram record arguments passed to the {\ttfamily \doxylink{classfunc_1_1DirectEvaluation}{Direct\+Evaluation}} and there is no issue if sampled arguments are out of bounds. \begin{DoxyNote}{Note}
View the histogram with {\ttfamily print\+\_\+details()}, or construct {\ttfamily \doxylink{classfunc_1_1DirectEvaluation}{Direct\+Evaluation}} with a pointer to ostream and get output upon destruction. 
\end{DoxyNote}


\label{doc-constructors}
\Hypertarget{classfunc_1_1DirectEvaluation_doc-constructors}
\doxysubsubsection{Constructor \& Destructor Documentation}
\Hypertarget{classfunc_1_1DirectEvaluation_ae2d4d0f685be01975971c02b9e04bc3f}\index{DirectEvaluation$<$ TIN, TOUT $>$@{DirectEvaluation$<$ TIN, TOUT $>$}!DirectEvaluation@{DirectEvaluation}}
\index{DirectEvaluation@{DirectEvaluation}!DirectEvaluation$<$ TIN, TOUT $>$@{DirectEvaluation$<$ TIN, TOUT $>$}}
\doxyparagraph{\texorpdfstring{DirectEvaluation()}{DirectEvaluation()}}
{\footnotesize\ttfamily \label{classfunc_1_1DirectEvaluation_ae2d4d0f685be01975971c02b9e04bc3f} 
template$<$typename TIN, typename TOUT = TIN$>$ \\
\mbox{\hyperlink{classfunc_1_1DirectEvaluation}{Direct\+Evaluation}} (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classfunc_1_1FunctionContainer}{Function\+Container}}$<$ TIN, TOUT $>$ \&}]{func\+\_\+container}{, }\item[{TIN}]{min}{ = {\ttfamily 0.0}, }\item[{TIN}]{max}{ = {\ttfamily 1.0}, }\item[{unsigned int}]{hist\+Size}{ = {\ttfamily 10}, }\item[{TOUT}]{aerr}{ = {\ttfamily 0.0}, }\item[{TIN}]{rerr}{ = {\ttfamily 0.0}, }\item[{std\+::ostream \texorpdfstring{$\ast$}{*}}]{streamer}{ = {\ttfamily nullptr}}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

Simply store the first member of func\+\_\+container and pass each argument to it whenever {\ttfamily operator()} is called. Optionally set up argument recording if FUNC\+\_\+\+DEBUG is defined used at compile time 

\label{doc-func-members}
\Hypertarget{classfunc_1_1DirectEvaluation_doc-func-members}
\doxysubsubsection{Member Function Documentation}
\Hypertarget{classfunc_1_1DirectEvaluation_aea8465ad30b6260a0948d4305d984d9d}\index{DirectEvaluation$<$ TIN, TOUT $>$@{DirectEvaluation$<$ TIN, TOUT $>$}!bounds\_of\_subinterval@{bounds\_of\_subinterval}}
\index{bounds\_of\_subinterval@{bounds\_of\_subinterval}!DirectEvaluation$<$ TIN, TOUT $>$@{DirectEvaluation$<$ TIN, TOUT $>$}}
\doxyparagraph{\texorpdfstring{bounds\_of\_subinterval()}{bounds\_of\_subinterval()}}
{\footnotesize\ttfamily \label{classfunc_1_1DirectEvaluation_aea8465ad30b6260a0948d4305d984d9d} 
template$<$typename TIN, typename TOUT = TIN$>$ \\
std\+::pair$<$ TIN, TIN $>$ bounds\+\_\+of\+\_\+subinterval (\begin{DoxyParamCaption}\item[{unsigned int}]{interval\+Number}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [final]}, {\ttfamily [virtual]}}



Implements \mbox{\hyperlink{classfunc_1_1LookupTable}{Lookup\+Table$<$ TIN, TIN $>$}}.

\Hypertarget{classfunc_1_1DirectEvaluation_a546555a620601a06a71c12a15f7a2769}\index{DirectEvaluation$<$ TIN, TOUT $>$@{DirectEvaluation$<$ TIN, TOUT $>$}!max\_arg@{max\_arg}}
\index{max\_arg@{max\_arg}!DirectEvaluation$<$ TIN, TOUT $>$@{DirectEvaluation$<$ TIN, TOUT $>$}}
\doxyparagraph{\texorpdfstring{max\_arg()}{max\_arg()}}
{\footnotesize\ttfamily \label{classfunc_1_1DirectEvaluation_a546555a620601a06a71c12a15f7a2769} 
template$<$typename TIN, typename TOUT = TIN$>$ \\
TIN max\+\_\+arg (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [final]}, {\ttfamily [virtual]}}



Implements \mbox{\hyperlink{classfunc_1_1LookupTable}{Lookup\+Table$<$ TIN, TIN $>$}}.

\Hypertarget{classfunc_1_1DirectEvaluation_a0476b531891a0e1e33696d1a737661d0}\index{DirectEvaluation$<$ TIN, TOUT $>$@{DirectEvaluation$<$ TIN, TOUT $>$}!min\_arg@{min\_arg}}
\index{min\_arg@{min\_arg}!DirectEvaluation$<$ TIN, TOUT $>$@{DirectEvaluation$<$ TIN, TOUT $>$}}
\doxyparagraph{\texorpdfstring{min\_arg()}{min\_arg()}}
{\footnotesize\ttfamily \label{classfunc_1_1DirectEvaluation_a0476b531891a0e1e33696d1a737661d0} 
template$<$typename TIN, typename TOUT = TIN$>$ \\
TIN min\+\_\+arg (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [final]}, {\ttfamily [virtual]}}



Implements \mbox{\hyperlink{classfunc_1_1LookupTable}{Lookup\+Table$<$ TIN, TIN $>$}}.

\Hypertarget{classfunc_1_1DirectEvaluation_accba19b44801ed79bb97513319885f31}\index{DirectEvaluation$<$ TIN, TOUT $>$@{DirectEvaluation$<$ TIN, TOUT $>$}!name@{name}}
\index{name@{name}!DirectEvaluation$<$ TIN, TOUT $>$@{DirectEvaluation$<$ TIN, TOUT $>$}}
\doxyparagraph{\texorpdfstring{name()}{name()}}
{\footnotesize\ttfamily \label{classfunc_1_1DirectEvaluation_accba19b44801ed79bb97513319885f31} 
template$<$typename TIN, typename TOUT = TIN$>$ \\
std\+::string name (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [final]}, {\ttfamily [virtual]}}



Implements \mbox{\hyperlink{classfunc_1_1LookupTable}{Lookup\+Table$<$ TIN, TIN $>$}}.

\Hypertarget{classfunc_1_1DirectEvaluation_a269a97d89895944456f32f2be1d37109}\index{DirectEvaluation$<$ TIN, TOUT $>$@{DirectEvaluation$<$ TIN, TOUT $>$}!num\_subintervals@{num\_subintervals}}
\index{num\_subintervals@{num\_subintervals}!DirectEvaluation$<$ TIN, TOUT $>$@{DirectEvaluation$<$ TIN, TOUT $>$}}
\doxyparagraph{\texorpdfstring{num\_subintervals()}{num\_subintervals()}}
{\footnotesize\ttfamily \label{classfunc_1_1DirectEvaluation_a269a97d89895944456f32f2be1d37109} 
template$<$typename TIN, typename TOUT = TIN$>$ \\
unsigned int num\+\_\+subintervals (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [final]}, {\ttfamily [virtual]}}



Implements \mbox{\hyperlink{classfunc_1_1LookupTable}{Lookup\+Table$<$ TIN, TIN $>$}}.

\Hypertarget{classfunc_1_1DirectEvaluation_a10047eb2c0e68f488037419e770084e6}\index{DirectEvaluation$<$ TIN, TOUT $>$@{DirectEvaluation$<$ TIN, TOUT $>$}!operator()@{operator()}}
\index{operator()@{operator()}!DirectEvaluation$<$ TIN, TOUT $>$@{DirectEvaluation$<$ TIN, TOUT $>$}}
\doxyparagraph{\texorpdfstring{operator()()}{operator()()}}
{\footnotesize\ttfamily \label{classfunc_1_1DirectEvaluation_a10047eb2c0e68f488037419e770084e6} 
template$<$typename TIN, typename TOUT = TIN$>$ \\
TOUT operator() (\begin{DoxyParamCaption}\item[{TIN}]{x}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [final]}, {\ttfamily [virtual]}}



Evaluate the underlying {\ttfamily std\+::function} and optionally record the argument x. 



Implements \mbox{\hyperlink{classfunc_1_1LookupTable}{Lookup\+Table$<$ TIN, TIN $>$}}.

\Hypertarget{classfunc_1_1DirectEvaluation_a001c4e4c752e91195b970be3edee0b6d}\index{DirectEvaluation$<$ TIN, TOUT $>$@{DirectEvaluation$<$ TIN, TOUT $>$}!order@{order}}
\index{order@{order}!DirectEvaluation$<$ TIN, TOUT $>$@{DirectEvaluation$<$ TIN, TOUT $>$}}
\doxyparagraph{\texorpdfstring{order()}{order()}}
{\footnotesize\ttfamily \label{classfunc_1_1DirectEvaluation_a001c4e4c752e91195b970be3edee0b6d} 
template$<$typename TIN, typename TOUT = TIN$>$ \\
unsigned int order (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [final]}, {\ttfamily [virtual]}}



Implements \mbox{\hyperlink{classfunc_1_1LookupTable}{Lookup\+Table$<$ TIN, TIN $>$}}.

\Hypertarget{classfunc_1_1DirectEvaluation_a16138bbe5fe761854a353362ba7d9b2f}\index{DirectEvaluation$<$ TIN, TOUT $>$@{DirectEvaluation$<$ TIN, TOUT $>$}!print\_json@{print\_json}}
\index{print\_json@{print\_json}!DirectEvaluation$<$ TIN, TOUT $>$@{DirectEvaluation$<$ TIN, TOUT $>$}}
\doxyparagraph{\texorpdfstring{print\_json()}{print\_json()}}
{\footnotesize\ttfamily \label{classfunc_1_1DirectEvaluation_a16138bbe5fe761854a353362ba7d9b2f} 
template$<$typename TIN, typename TOUT = TIN$>$ \\
void print\+\_\+json (\begin{DoxyParamCaption}\item[{std\+::ostream \&}]{out}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [final]}, {\ttfamily [virtual]}}

\begin{DoxyNote}{Note}
Every class implementing \doxylink{classfunc_1_1LookupTable}{Lookup\+Table} should call their implementation of nlohmann\textquotesingle{}s to\+\_\+json from print\+\_\+json 
\end{DoxyNote}


Implements \mbox{\hyperlink{classfunc_1_1LookupTable_a4b12bfc8ece1a97fa5ed8412d072e35d}{Lookup\+Table$<$ TIN, TIN $>$}}.

\Hypertarget{classfunc_1_1DirectEvaluation_a5e82e200bee26238c342218d6d4f7042}\index{DirectEvaluation$<$ TIN, TOUT $>$@{DirectEvaluation$<$ TIN, TOUT $>$}!size@{size}}
\index{size@{size}!DirectEvaluation$<$ TIN, TOUT $>$@{DirectEvaluation$<$ TIN, TOUT $>$}}
\doxyparagraph{\texorpdfstring{size()}{size()}}
{\footnotesize\ttfamily \label{classfunc_1_1DirectEvaluation_a5e82e200bee26238c342218d6d4f7042} 
template$<$typename TIN, typename TOUT = TIN$>$ \\
std\+::size\+\_\+t size (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [final]}, {\ttfamily [virtual]}}



Implements \mbox{\hyperlink{classfunc_1_1LookupTable}{Lookup\+Table$<$ TIN, TIN $>$}}.

\Hypertarget{classfunc_1_1DirectEvaluation_a0b483cc80497aa809bead8161f14a284}\index{DirectEvaluation$<$ TIN, TOUT $>$@{DirectEvaluation$<$ TIN, TOUT $>$}!step\_size@{step\_size}}
\index{step\_size@{step\_size}!DirectEvaluation$<$ TIN, TOUT $>$@{DirectEvaluation$<$ TIN, TOUT $>$}}
\doxyparagraph{\texorpdfstring{step\_size()}{step\_size()}}
{\footnotesize\ttfamily \label{classfunc_1_1DirectEvaluation_a0b483cc80497aa809bead8161f14a284} 
template$<$typename TIN, typename TOUT = TIN$>$ \\
TIN step\+\_\+size (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [final]}, {\ttfamily [virtual]}}



Implements \mbox{\hyperlink{classfunc_1_1LookupTable}{Lookup\+Table$<$ TIN, TIN $>$}}.



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
Direct\+Evaluation.\+hpp\end{DoxyCompactItemize}
