\doxysubsection{Lookup\+Table\texorpdfstring{$<$}{<} TIN, TOUT \texorpdfstring{$>$}{>} Class Template Reference}
\hypertarget{classfunc_1_1LookupTable}{}\label{classfunc_1_1LookupTable}\index{LookupTable$<$ TIN, TOUT $>$@{LookupTable$<$ TIN, TOUT $>$}}


Abstract interface for representing an approximation to a user provided mathematical function.  




{\ttfamily \#include $<$Lookup\+Table.\+hpp$>$}

\doxysubsubsubsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{classfunc_1_1LookupTable_a03a221f4ece65d5c4079e9c425b14f96}\label{classfunc_1_1LookupTable_a03a221f4ece65d5c4079e9c425b14f96} 
using {\bfseries input\+\_\+type} = TIN
\item 
\Hypertarget{classfunc_1_1LookupTable_a3e4a981e1869adbf64c236447374d077}\label{classfunc_1_1LookupTable_a3e4a981e1869adbf64c236447374d077} 
using {\bfseries output\+\_\+type} = TOUT
\end{DoxyCompactItemize}
\doxysubsubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{classfunc_1_1LookupTable_acd94ebee613378fb31e86a83d34eaf4c}{Lookup\+Table}} ()=default
\item 
virtual TOUT \mbox{\hyperlink{classfunc_1_1LookupTable_a98d7b95619613d5c14544be6d29f509a}{operator()}} (TIN x) const =0
\item 
\Hypertarget{classfunc_1_1LookupTable_a7f04e718c6856c4d3d77a496b6acad0d}\label{classfunc_1_1LookupTable_a7f04e718c6856c4d3d77a496b6acad0d} 
virtual std\+::string {\bfseries name} () const =0
\item 
\Hypertarget{classfunc_1_1LookupTable_a06c743f3832feed8ea56c9d2868580c0}\label{classfunc_1_1LookupTable_a06c743f3832feed8ea56c9d2868580c0} 
virtual TIN {\bfseries min\+\_\+arg} () const =0
\item 
\Hypertarget{classfunc_1_1LookupTable_aca289fc6b71918f33f8f1100802a3de8}\label{classfunc_1_1LookupTable_aca289fc6b71918f33f8f1100802a3de8} 
virtual TIN {\bfseries max\+\_\+arg} () const =0
\item 
\Hypertarget{classfunc_1_1LookupTable_ae6e301a2b81e70223cf6c8ac073b3f81}\label{classfunc_1_1LookupTable_ae6e301a2b81e70223cf6c8ac073b3f81} 
virtual unsigned int {\bfseries order} () const =0
\item 
virtual std\+::size\+\_\+t \mbox{\hyperlink{classfunc_1_1LookupTable_a7e0d8d511be465045bd2668c6ed87511}{size}} () const =0
\item 
\Hypertarget{classfunc_1_1LookupTable_a3af9f23a15ec871df2f70d0cdeb939ad}\label{classfunc_1_1LookupTable_a3af9f23a15ec871df2f70d0cdeb939ad} 
virtual unsigned int {\bfseries num\+\_\+subintervals} () const =0
\item 
virtual TIN \mbox{\hyperlink{classfunc_1_1LookupTable_ad4f4f723419c390d853d9ca26d502d52}{step\+\_\+size}} () const =0
\item 
virtual std\+::pair$<$ TIN, TIN $>$ \mbox{\hyperlink{classfunc_1_1LookupTable_a73491e1847a085ff73e160eb21ad8c14}{bounds\+\_\+of\+\_\+subinterval}} (unsigned int interval\+Number) const =0
\item 
virtual void \mbox{\hyperlink{classfunc_1_1LookupTable_a4b12bfc8ece1a97fa5ed8412d072e35d}{print\+\_\+json}} (std\+::ostream \&out) const =0
\end{DoxyCompactItemize}


\doxysubsubsection{Detailed Description}
\subsubsection*{template$<$typename TIN, typename TOUT = TIN$>$\newline
class func\+::\+Lookup\+Table$<$ TIN, TOUT $>$}
Abstract interface for representing an approximation to a user provided mathematical function. 

\doxylink{classfunc_1_1LookupTable}{Lookup\+Table} possesses no member variables, or runnable code. Implementations of this class handle actual data (reading, writing, hashing, etc). The \doxylink{classfunc_1_1LookupTable}{Lookup\+Table} interface is necessary for our \doxylink{classfunc_1_1LookupTableFactory}{Lookup\+Table\+Factory}, \doxylink{classfunc_1_1LookupTableGenerator}{Lookup\+Table\+Generator}, and \doxylink{classfunc_1_1LookupTableComparator}{Lookup\+Table\+Comparator}.

\begin{DoxyWarning}{Warning}
\{ We make no promises about checking array bounds (as this notably reduces performance) \} 
\end{DoxyWarning}


\label{doc-constructors}
\Hypertarget{classfunc_1_1LookupTable_doc-constructors}
\doxysubsubsection{Constructor \& Destructor Documentation}
\Hypertarget{classfunc_1_1LookupTable_acd94ebee613378fb31e86a83d34eaf4c}\index{LookupTable$<$ TIN, TOUT $>$@{LookupTable$<$ TIN, TOUT $>$}!LookupTable@{LookupTable}}
\index{LookupTable@{LookupTable}!LookupTable$<$ TIN, TOUT $>$@{LookupTable$<$ TIN, TOUT $>$}}
\doxyparagraph{\texorpdfstring{LookupTable()}{LookupTable()}}
{\footnotesize\ttfamily \label{classfunc_1_1LookupTable_acd94ebee613378fb31e86a83d34eaf4c} 
template$<$typename TIN, typename TOUT = TIN$>$ \\
\mbox{\hyperlink{classfunc_1_1LookupTable}{Lookup\+Table}} (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [default]}}

Every implementation of \doxylink{classfunc_1_1LookupTable}{Lookup\+Table} will have a constructor that looks like this\+: Lookup\+Table(const Function\+Container$<$\+TIN,\+TOUT$>$\& func\+\_\+container, const Lookup\+Table\+Parameters$<$\+TIN$>$\& par) \{\} 

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



Implemented in \mbox{\hyperlink{classfunc_1_1CompositeLookupTable_aea8465ad30b6260a0948d4305d984d9d}{Composite\+Lookup\+Table$<$ TIN, TOUT $>$}}.

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



Implemented in \mbox{\hyperlink{classfunc_1_1CompositeLookupTable_a10047eb2c0e68f488037419e770084e6}{Composite\+Lookup\+Table$<$ TIN, TOUT $>$}}, \mbox{\hyperlink{classfunc_1_1DirectEvaluation_a10047eb2c0e68f488037419e770084e6}{Direct\+Evaluation$<$ TIN, TOUT $>$}}, \mbox{\hyperlink{classfunc_1_1FailureProofTable_a10047eb2c0e68f488037419e770084e6}{Failure\+Proof\+Table$<$ LUT\+\_\+\+TYPE $>$}}, \mbox{\hyperlink{classfunc_1_1LinearRawInterpTable_a19a1de294ffbb53d7d95c3044b220d1c}{Linear\+Raw\+Interp\+Table$<$ TIN, TOUT, GT $>$}}, \mbox{\hyperlink{classfunc_1_1LinearRawInterpTable_a19a1de294ffbb53d7d95c3044b220d1c}{Linear\+Raw\+Interp\+Table$<$ TIN, TOUT, Grid\+Types\+::\+UNIFORM $>$}}, \mbox{\hyperlink{classfunc_1_1MetaTable_a19a1de294ffbb53d7d95c3044b220d1c}{Meta\+Table$<$ N, TIN, TOUT, GT $>$}}, \mbox{\hyperlink{classfunc_1_1MetaTable_a19a1de294ffbb53d7d95c3044b220d1c}{Meta\+Table$<$ 1, TIN, TIN, Grid\+Types\+::\+UNIFORM $>$}}, \mbox{\hyperlink{classfunc_1_1MetaTable_a19a1de294ffbb53d7d95c3044b220d1c}{Meta\+Table$<$ 4, TIN, TIN, Grid\+Types\+::\+UNIFORM $>$}}, \mbox{\hyperlink{classfunc_1_1MetaTable_a19a1de294ffbb53d7d95c3044b220d1c}{Meta\+Table$<$ M+\+N+1, TIN, TIN, Grid\+Types\+::\+UNIFORM $>$}}, \mbox{\hyperlink{classfunc_1_1MetaTable_a19a1de294ffbb53d7d95c3044b220d1c}{Meta\+Table$<$ N+1, TIN, TIN, Grid\+Types\+::\+UNIFORM $>$}}, \mbox{\hyperlink{classfunc_1_1MetaTable_a19a1de294ffbb53d7d95c3044b220d1c}{Meta\+Table$<$ N+1, TIN, TOUT, Grid\+Types\+::\+UNIFORM $>$}}, \mbox{\hyperlink{classfunc_1_1PadeTable_a10047eb2c0e68f488037419e770084e6}{Pade\+Table$<$ M, N, TIN, TOUT, GT $>$}}, and \mbox{\hyperlink{classfunc_1_1PadeTable_a10047eb2c0e68f488037419e770084e6}{Pade\+Table$<$ M, N, TIN, TOUT, Grid\+Types\+::\+UNIFORM $>$}}.

\Hypertarget{classfunc_1_1LookupTable_a4b12bfc8ece1a97fa5ed8412d072e35d}\index{LookupTable$<$ TIN, TOUT $>$@{LookupTable$<$ TIN, TOUT $>$}!print\_json@{print\_json}}
\index{print\_json@{print\_json}!LookupTable$<$ TIN, TOUT $>$@{LookupTable$<$ TIN, TOUT $>$}}
\doxyparagraph{\texorpdfstring{print\_json()}{print\_json()}}
{\footnotesize\ttfamily \label{classfunc_1_1LookupTable_a4b12bfc8ece1a97fa5ed8412d072e35d} 
template$<$typename TIN, typename TOUT = TIN$>$ \\
virtual void print\+\_\+json (\begin{DoxyParamCaption}\item[{std\+::ostream \&}]{out}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure 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}


Implemented in \mbox{\hyperlink{classfunc_1_1CompositeLookupTable_a16138bbe5fe761854a353362ba7d9b2f}{Composite\+Lookup\+Table$<$ TIN, TOUT $>$}}, \mbox{\hyperlink{classfunc_1_1DirectEvaluation_a16138bbe5fe761854a353362ba7d9b2f}{Direct\+Evaluation$<$ TIN, TOUT $>$}}, \mbox{\hyperlink{classfunc_1_1FailureProofTable_a16138bbe5fe761854a353362ba7d9b2f}{Failure\+Proof\+Table$<$ LUT\+\_\+\+TYPE $>$}}, \mbox{\hyperlink{classfunc_1_1MetaTable_a16138bbe5fe761854a353362ba7d9b2f}{Meta\+Table$<$ N, TIN, TOUT, GT $>$}}, \mbox{\hyperlink{classfunc_1_1MetaTable_a16138bbe5fe761854a353362ba7d9b2f}{Meta\+Table$<$ 1, TIN, TIN, Grid\+Types\+::\+UNIFORM $>$}}, \mbox{\hyperlink{classfunc_1_1MetaTable_a16138bbe5fe761854a353362ba7d9b2f}{Meta\+Table$<$ 4, TIN, TIN, Grid\+Types\+::\+UNIFORM $>$}}, \mbox{\hyperlink{classfunc_1_1MetaTable_a16138bbe5fe761854a353362ba7d9b2f}{Meta\+Table$<$ M+\+N+1, TIN, TIN, Grid\+Types\+::\+UNIFORM $>$}}, \mbox{\hyperlink{classfunc_1_1MetaTable_a16138bbe5fe761854a353362ba7d9b2f}{Meta\+Table$<$ N+1, TIN, TIN, Grid\+Types\+::\+UNIFORM $>$}}, and \mbox{\hyperlink{classfunc_1_1MetaTable_a16138bbe5fe761854a353362ba7d9b2f}{Meta\+Table$<$ N+1, TIN, TOUT, Grid\+Types\+::\+UNIFORM $>$}}.

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



Implemented in \mbox{\hyperlink{classfunc_1_1CompositeLookupTable_a5e82e200bee26238c342218d6d4f7042}{Composite\+Lookup\+Table$<$ TIN, TOUT $>$}}.

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



Implemented in \mbox{\hyperlink{classfunc_1_1CompositeLookupTable_a0b483cc80497aa809bead8161f14a284}{Composite\+Lookup\+Table$<$ TIN, TOUT $>$}}.



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