\doxysubsection{Function\+Container.\+hpp File Reference}
\hypertarget{FunctionContainer_8hpp}{}\label{FunctionContainer_8hpp}\index{FunctionContainer.hpp@{FunctionContainer.hpp}}


Define a Function\+Container with the (necessary) convenience function {\ttfamily get\+\_\+nth\+\_\+func()}, the "{}variadic"{} macro {\ttfamily \#FUNC\+\_\+\+SET\+\_\+F}.  


{\ttfamily \#include $<$stdexcept$>$}\newline
{\ttfamily \#include $<$functional$>$}\newline
{\ttfamily \#include "{}config.\+hpp"{}}\newline
{\ttfamily \#include $<$boost/math/differentiation/autodiff.\+hpp$>$}\newline
\doxysubsubsubsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{structfunc_1_1nth__differentiable}{nth\+\_\+differentiable$<$ TIN, TOUT, N $>$}}
\begin{DoxyCompactList}\small\item\em These structs provide an indexed typedef for Boost\textquotesingle{}s autodiff\+\_\+fvar type. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structfunc_1_1nth__differentiable_3_01TIN_00_01TOUT_00_010_01_4}{nth\+\_\+differentiable$<$ TIN, TOUT, 0 $>$}}
\begin{DoxyCompactList}\small\item\em Base case for {\ttfamily \doxylink{structfunc_1_1nth__differentiable}{nth\+\_\+differentiable}} when N=0. \end{DoxyCompactList}\item 
class \mbox{\hyperlink{classfunc_1_1FunctionContainer}{Function\+Container$<$ TIN, TOUT $>$}}
\begin{DoxyCompactList}\small\item\em Wrapper for {\ttfamily std\+::function\texorpdfstring{$<$}{<}TOUT(\+TIN)\texorpdfstring{$>$}{>}} and some optional {\ttfamily std\+::function}s of Boost\textquotesingle{}s automatic differentiation type. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \mbox{\hyperlink{FunctionContainer_8hpp_aef1860d5b2dbc4116c865e5d7a82f46c}{FUNC\+\_\+\+SET\+\_\+\+F\+\_\+\+ONE\+\_\+\+TYPE}}(F,  TYPE)
\item 
\#define \mbox{\hyperlink{FunctionContainer_8hpp_a15d9435d032eb317678f9225a447e35c}{FUNC\+\_\+\+SET\+\_\+\+F\+\_\+\+TWO\+\_\+\+TYPE}}(F,  TIN,  TOUT)
\item 
\#define \mbox{\hyperlink{FunctionContainer_8hpp_a1716fbb5d35620c85284000281108c24}{FUNC\+\_\+\+GET\+\_\+\+MACRO\+\_\+\+FUNCTION\+\_\+\+CONTAINER}}(\+\_\+1,  \+\_\+2,  \+\_\+3,  NAME, ...)
\item 
\#define \mbox{\hyperlink{FunctionContainer_8hpp_af3f31bcf88f2eb106cc78940a7282fd2}{FUNC\+\_\+\+SET\+\_\+F}}(...)
\begin{DoxyCompactList}\small\item\em Macro to list out Function\+Container constructor arguments. Call as {\ttfamily FUNC\+\_\+\+SET\+\_\+F(foo,template-\/type...)} where. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{FunctionContainer_8hpp_aae5a4c74a0c075791fe26cd15c887bfc}\label{FunctionContainer_8hpp_aae5a4c74a0c075791fe26cd15c887bfc} 
{\footnotesize template$<$typename T, unsigned int N$>$ }\\using {\bfseries ad\+Var} = autodiff\+\_\+fvar$<$T,N$>$
\end{DoxyCompactItemize}


\doxysubsubsection{Detailed Description}
Define a Function\+Container with the (necessary) convenience function {\ttfamily get\+\_\+nth\+\_\+func()}, the "{}variadic"{} macro {\ttfamily \#FUNC\+\_\+\+SET\+\_\+F}. 

\begin{DoxyNote}{Note}
Boost\textquotesingle{}s autodiff.\+cpp is only included if CMake found a new enough version of Boost 
\end{DoxyNote}


\label{doc-define-members}
\Hypertarget{FunctionContainer_8hpp_doc-define-members}
\doxysubsubsection{Macro Definition Documentation}
\Hypertarget{FunctionContainer_8hpp_a1716fbb5d35620c85284000281108c24}\index{FunctionContainer.hpp@{FunctionContainer.hpp}!FUNC\_GET\_MACRO\_FUNCTION\_CONTAINER@{FUNC\_GET\_MACRO\_FUNCTION\_CONTAINER}}
\index{FUNC\_GET\_MACRO\_FUNCTION\_CONTAINER@{FUNC\_GET\_MACRO\_FUNCTION\_CONTAINER}!FunctionContainer.hpp@{FunctionContainer.hpp}}
\doxyparagraph{\texorpdfstring{FUNC\_GET\_MACRO\_FUNCTION\_CONTAINER}{FUNC\_GET\_MACRO\_FUNCTION\_CONTAINER}}
{\footnotesize\ttfamily \label{FunctionContainer_8hpp_a1716fbb5d35620c85284000281108c24} 
\#define FUNC\+\_\+\+GET\+\_\+\+MACRO\+\_\+\+FUNCTION\+\_\+\+CONTAINER(\begin{DoxyParamCaption}\item[{}]{\+\_\+1}{, }\item[{}]{\+\_\+2}{, }\item[{}]{\+\_\+3}{, }\item[{}]{NAME}{, }\item[{}]{}...{}\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{NAME}

\end{DoxyCode}
\Hypertarget{FunctionContainer_8hpp_af3f31bcf88f2eb106cc78940a7282fd2}\index{FunctionContainer.hpp@{FunctionContainer.hpp}!FUNC\_SET\_F@{FUNC\_SET\_F}}
\index{FUNC\_SET\_F@{FUNC\_SET\_F}!FunctionContainer.hpp@{FunctionContainer.hpp}}
\doxyparagraph{\texorpdfstring{FUNC\_SET\_F}{FUNC\_SET\_F}}
{\footnotesize\ttfamily \label{FunctionContainer_8hpp_af3f31bcf88f2eb106cc78940a7282fd2} 
\#define FUNC\+\_\+\+SET\+\_\+F(\begin{DoxyParamCaption}\item[{}]{}...{}\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{FUNC\_GET\_MACRO\_FUNCTION\_CONTAINER(\_\_VA\_ARGS\_\_,\ FUNC\_SET\_F\_TWO\_TYPE,\ FUNC\_SET\_F\_ONE\_TYPE,\ )(\_\_VA\_ARGS\_\_)}

\end{DoxyCode}


Macro to list out Function\+Container constructor arguments. Call as {\ttfamily FUNC\+\_\+\+SET\+\_\+F(foo,template-\/type...)} where. 


\begin{DoxyItemize}
\item foo is your function name, and
\item template-\/type is as list of the 1 or 2 types it maps between. 
\end{DoxyItemize}\Hypertarget{FunctionContainer_8hpp_aef1860d5b2dbc4116c865e5d7a82f46c}\index{FunctionContainer.hpp@{FunctionContainer.hpp}!FUNC\_SET\_F\_ONE\_TYPE@{FUNC\_SET\_F\_ONE\_TYPE}}
\index{FUNC\_SET\_F\_ONE\_TYPE@{FUNC\_SET\_F\_ONE\_TYPE}!FunctionContainer.hpp@{FunctionContainer.hpp}}
\doxyparagraph{\texorpdfstring{FUNC\_SET\_F\_ONE\_TYPE}{FUNC\_SET\_F\_ONE\_TYPE}}
{\footnotesize\ttfamily \label{FunctionContainer_8hpp_aef1860d5b2dbc4116c865e5d7a82f46c} 
\#define FUNC\+\_\+\+SET\+\_\+\+F\+\_\+\+ONE\+\_\+\+TYPE(\begin{DoxyParamCaption}\item[{}]{F}{, }\item[{}]{TYPE}{}\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{\ \ F<TYPE>,\ F<func::adVar<TYPE,1>>,\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}
\DoxyCodeLine{\ \ F<func::adVar<TYPE,2>>,\ F<func::adVar<TYPE,3>>,\ \(\backslash\)}
\DoxyCodeLine{\ \ F<func::adVar<TYPE,4>>,\ F<func::adVar<TYPE,5>>,\ \(\backslash\)}
\DoxyCodeLine{\ \ F<func::adVar<TYPE,6>>,\ F<func::adVar<TYPE,7>>}

\end{DoxyCode}
\Hypertarget{FunctionContainer_8hpp_a15d9435d032eb317678f9225a447e35c}\index{FunctionContainer.hpp@{FunctionContainer.hpp}!FUNC\_SET\_F\_TWO\_TYPE@{FUNC\_SET\_F\_TWO\_TYPE}}
\index{FUNC\_SET\_F\_TWO\_TYPE@{FUNC\_SET\_F\_TWO\_TYPE}!FunctionContainer.hpp@{FunctionContainer.hpp}}
\doxyparagraph{\texorpdfstring{FUNC\_SET\_F\_TWO\_TYPE}{FUNC\_SET\_F\_TWO\_TYPE}}
{\footnotesize\ttfamily \label{FunctionContainer_8hpp_a15d9435d032eb317678f9225a447e35c} 
\#define FUNC\+\_\+\+SET\+\_\+\+F\+\_\+\+TWO\+\_\+\+TYPE(\begin{DoxyParamCaption}\item[{}]{F}{, }\item[{}]{TIN}{, }\item[{}]{TOUT}{}\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{\ \ F<TIN,TOUT>,\ F<func::adVar<TIN,1>,func::adVar<TOUT,1>>,\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}
\DoxyCodeLine{\ \ F<func::adVar<TIN,2>,func::adVar<TOUT,2>>,\ F<func::adVar<TIN,3>,func::adVar<TOUT,3>>,\ \(\backslash\)}
\DoxyCodeLine{\ \ F<func::adVar<TIN,4>,func::adVar<TOUT,4>>,\ F<func::adVar<TIN,5>,func::adVar<TOUT,5>>,\ \(\backslash\)}
\DoxyCodeLine{\ \ F<func::adVar<TIN,6>,func::adVar<TOUT,6>>,\ F<func::adVar<TIN,7>,func::adVar<TOUT,7>>}

\end{DoxyCode}
