\doxysubsection{cxx17utils.\+hpp File Reference}
\hypertarget{cxx17utils_8hpp}{}\label{cxx17utils_8hpp}\index{cxx17utils.hpp@{cxx17utils.hpp}}


Beta features for building multivariate LUTs via currying. Each feature requires C++17.  


{\ttfamily \#include "{}Lookup\+Table.\+hpp"{}}\newline
{\ttfamily \#include $<$boost/math/tools/minima.\+hpp$>$}\newline
{\ttfamily \#include $<$boost/math/tools/roots.\+hpp$>$}\newline
{\ttfamily \#include $<$boost/math/special\+\_\+functions/next.\+hpp$>$}\newline
{\ttfamily \#include $<$boost/math/special\+\_\+functions/sign.\+hpp$>$}\newline
{\ttfamily \#include $<$boost/multiprecision/cpp\+\_\+bin\+\_\+float.\+hpp$>$}\newline
\doxysubsubsubsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{structfunc_1_1curriedLUT}{curried\+LUT$<$ N, TIN, TOUT, classname $>$}}
\item 
struct \mbox{\hyperlink{structfunc_1_1curriedLUT_3_010_00_01TIN_00_01TOUT_00_01classname_01_4}{curried\+LUT$<$ 0, TIN, TOUT, classname $>$}}
\end{DoxyCompactItemize}
\doxysubsubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{cxx17utils_8hpp_a9cb4dc195113178d2313082e2c3d47d9}\label{cxx17utils_8hpp_a9cb4dc195113178d2313082e2c3d47d9} 
{\footnotesize template$<$unsigned int N, typename TERR, class LUT, typename F$>$ }\\TERR {\bfseries metric} (LUT L, F f)
\begin{DoxyCompactList}\small\item\em Compute the error in a multivariate LUT. \end{DoxyCompactList}\item 
{\footnotesize template$<$unsigned int N, typename TIN, typename TOUT, template$<$ typename... $>$ class classname, class F, typename... TIN2$>$ }\\constexpr \mbox{\hyperlink{structfunc_1_1curriedLUT}{curried\+LUT}}$<$ N-\/1, TIN, TOUT, classname $>$\+::type \mbox{\hyperlink{cxx17utils_8hpp_a0c6a439cab5d8702d7bcdc629d333a58}{ndim\+LUT}} (F f, const std\+::vector$<$ \mbox{\hyperlink{structfunc_1_1LookupTableParameters}{Lookup\+Table\+Parameters}}$<$ TIN $>$ $>$ \&params, TIN2... other)
\begin{DoxyCompactList}\small\item\em BETA FEATURE\+: Define a LUT with N input variables. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsubsection{Detailed Description}
Beta features for building multivariate LUTs via currying. Each feature requires C++17. 



\label{doc-func-members}
\Hypertarget{cxx17utils_8hpp_doc-func-members}
\doxysubsubsection{Function Documentation}
\Hypertarget{cxx17utils_8hpp_a0c6a439cab5d8702d7bcdc629d333a58}\index{cxx17utils.hpp@{cxx17utils.hpp}!ndimLUT@{ndimLUT}}
\index{ndimLUT@{ndimLUT}!cxx17utils.hpp@{cxx17utils.hpp}}
\doxyparagraph{\texorpdfstring{ndimLUT()}{ndimLUT()}}
{\footnotesize\ttfamily \label{cxx17utils_8hpp_a0c6a439cab5d8702d7bcdc629d333a58} 
template$<$unsigned int N, typename TIN, typename TOUT, template$<$ typename... $>$ class classname, class F, typename... TIN2$>$ \\
curried\+LUT$<$ N-\/1, TIN, TOUT, classname $>$\+::type ndim\+LUT (\begin{DoxyParamCaption}\item[{F}]{f}{, }\item[{const std\+::vector$<$ \mbox{\hyperlink{structfunc_1_1LookupTableParameters}{Lookup\+Table\+Parameters}}$<$ TIN $>$ $>$ \&}]{params}{, }\item[{TIN2...}]{other}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [constexpr]}}



BETA FEATURE\+: Define a LUT with N input variables. 

Call as func\+::ndim\+LUT$<$ndim,type1,type2,luttype$>$(f, params) See examples/2\+D\+\_\+lut.\+cpp for example usage

\begin{DoxyRefDesc}{Todo}
\item[\mbox{\hyperlink{todo__todo000009}{Todo}}]This is not compatible with function derivatives (needed for nonuniform partition \& Taylor tables). Is that impossible to support anyways? 

Template argument classname should be variadic! Is this possible? \end{DoxyRefDesc}
