\hypertarget{logic_8cpp}{}\doxysection{tests/logic.cpp File Reference}
\label{logic_8cpp}\index{tests/logic.cpp@{tests/logic.cpp}}
{\ttfamily \#include \char`\"{}catch.\+hpp\char`\"{}}\newline
{\ttfamily \#include \char`\"{}kblib/logic.\+h\char`\"{}}\newline
{\ttfamily \#include $<$array$>$}\newline
{\ttfamily \#include $<$iostream$>$}\newline
{\ttfamily \#include $<$string$>$}\newline
Include dependency graph for logic.\+cpp\+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{logic_8cpp__incl}
\end{center}
\end{figure}
\doxysubsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{structtag}{tag$<$ Is $>$}}
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$int I1, int I2$>$ }\\auto \mbox{\hyperlink{logic_8cpp_a3a0a1ef4b637f7b37612b8e25385b7dc}{multi\+\_\+template}} () -\/$>$ int
\item 
{\footnotesize template$<$std\+::size\+\_\+t COL, typename T , std\+::size\+\_\+t rows, std\+::size\+\_\+t cols, std\+::size\+\_\+t... row$>$ }\\constexpr auto \mbox{\hyperlink{logic_8cpp_a805bb6d31c9ec8c55eafeef1fcdb7883}{get\+\_\+col}} (const std\+::array$<$ std\+::array$<$ T, cols $>$, rows $>$ \&in, std\+::index\+\_\+sequence$<$ row... $>$) -\/$>$ std\+::array$<$ T, rows $>$
\item 
{\footnotesize template$<$typename T , std\+::size\+\_\+t rows, std\+::size\+\_\+t cols, std\+::size\+\_\+t... row, std\+::size\+\_\+t... col$>$ }\\constexpr auto \mbox{\hyperlink{logic_8cpp_ab28114b9c9bb4301d0547e9aa909dfec}{transpose\+\_\+arr\+\_\+impl}} (const std\+::array$<$ std\+::array$<$ T, cols $>$, rows $>$ \&in, std\+::index\+\_\+sequence$<$ col... $>$) -\/$>$ std\+::array$<$ std\+::array$<$ T, rows $>$, cols $>$
\item 
{\footnotesize template$<$typename T , std\+::size\+\_\+t rows, std\+::size\+\_\+t cols$>$ }\\constexpr auto \mbox{\hyperlink{logic_8cpp_afa0bc1c7d143daefbe4fd916f27e5942}{transpose\+\_\+arr}} (std\+::array$<$ std\+::array$<$ T, cols $>$, rows $>$ in) -\/$>$ std\+::array$<$ std\+::array$<$ T, rows $>$, cols $>$
\item 
\mbox{\hyperlink{logic_8cpp_ad16dc06d9e2eb754b0b8723f29893e24}{TEST\+\_\+\+CASE}} (\char`\"{}transpose\char`\"{})
\item 
{\footnotesize template$<$int I2, int... Is1$>$ }\\constexpr auto \mbox{\hyperlink{logic_8cpp_aaa064b9b6ece4f367f4d6125f79de658}{gen\+\_\+row}} (\mbox{\hyperlink{structtag}{tag}}$<$ Is1... $>$) -\/$>$ std\+::array$<$ int($\ast$)(), 8 $>$
\item 
{\footnotesize template$<$typename Tag1 , int... Is2$>$ }\\constexpr auto \mbox{\hyperlink{logic_8cpp_a8d6a1b8417cd0b02611f105d420cc55e}{gen\+\_\+dispatch\+\_\+table}} () -\/$>$ std\+::array$<$ std\+::array$<$ int($\ast$)(), 8 $>$, 8 $>$
\item 
auto \mbox{\hyperlink{logic_8cpp_a903c75c159dec31c7388c4a715087c00}{multi\+\_\+dispatcher}} (int i1, int i2) -\/$>$ int
\item 
\mbox{\hyperlink{logic_8cpp_a88f35363cda236fcadf3fd92bd50c06a}{TEST\+\_\+\+CASE}} (\char`\"{}run-\/time template dispatching\char`\"{})
\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
constexpr std\+::array$<$ std\+::array$<$ int($\ast$)(), 8 $>$, 8 $>$ \mbox{\hyperlink{logic_8cpp_a0cf41a8e5759d8937331aa9fe0925b02}{dispatch\+\_\+table}}
\end{DoxyCompactItemize}


\doxysubsection{Function Documentation}
\mbox{\Hypertarget{logic_8cpp_a8d6a1b8417cd0b02611f105d420cc55e}\label{logic_8cpp_a8d6a1b8417cd0b02611f105d420cc55e}} 
\index{logic.cpp@{logic.cpp}!gen\_dispatch\_table@{gen\_dispatch\_table}}
\index{gen\_dispatch\_table@{gen\_dispatch\_table}!logic.cpp@{logic.cpp}}
\doxysubsubsection{\texorpdfstring{gen\_dispatch\_table()}{gen\_dispatch\_table()}}
{\footnotesize\ttfamily template$<$typename Tag1 , int... Is2$>$ \\
constexpr auto gen\+\_\+dispatch\+\_\+table (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) -\/$>$ std\+::array$<$std\+::array$<$int ($\ast$)(), 8$>$, 8$>$ \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{logic_8cpp_source_l00063}{63}} of file \mbox{\hyperlink{logic_8cpp_source}{logic.\+cpp}}.

\mbox{\Hypertarget{logic_8cpp_aaa064b9b6ece4f367f4d6125f79de658}\label{logic_8cpp_aaa064b9b6ece4f367f4d6125f79de658}} 
\index{logic.cpp@{logic.cpp}!gen\_row@{gen\_row}}
\index{gen\_row@{gen\_row}!logic.cpp@{logic.cpp}}
\doxysubsubsection{\texorpdfstring{gen\_row()}{gen\_row()}}
{\footnotesize\ttfamily template$<$int I2, int... Is1$>$ \\
constexpr auto gen\+\_\+row (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structtag}{tag}}$<$ Is1... $>$}]{ }\end{DoxyParamCaption}) -\/$>$ std\+::array$<$int ($\ast$)(), 8$>$ \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{logic_8cpp_source_l00058}{58}} of file \mbox{\hyperlink{logic_8cpp_source}{logic.\+cpp}}.

\mbox{\Hypertarget{logic_8cpp_a805bb6d31c9ec8c55eafeef1fcdb7883}\label{logic_8cpp_a805bb6d31c9ec8c55eafeef1fcdb7883}} 
\index{logic.cpp@{logic.cpp}!get\_col@{get\_col}}
\index{get\_col@{get\_col}!logic.cpp@{logic.cpp}}
\doxysubsubsection{\texorpdfstring{get\_col()}{get\_col()}}
{\footnotesize\ttfamily template$<$std\+::size\+\_\+t COL, typename T , std\+::size\+\_\+t rows, std\+::size\+\_\+t cols, std\+::size\+\_\+t... row$>$ \\
constexpr auto get\+\_\+col (\begin{DoxyParamCaption}\item[{const std\+::array$<$ std\+::array$<$ T, cols $>$, rows $>$ \&}]{in,  }\item[{std\+::index\+\_\+sequence$<$ row... $>$}]{ }\end{DoxyParamCaption}) -\/$>$ std\+::array$<$T, rows$>$ \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{logic_8cpp_source_l00019}{19}} of file \mbox{\hyperlink{logic_8cpp_source}{logic.\+cpp}}.

\mbox{\Hypertarget{logic_8cpp_a903c75c159dec31c7388c4a715087c00}\label{logic_8cpp_a903c75c159dec31c7388c4a715087c00}} 
\index{logic.cpp@{logic.cpp}!multi\_dispatcher@{multi\_dispatcher}}
\index{multi\_dispatcher@{multi\_dispatcher}!logic.cpp@{logic.cpp}}
\doxysubsubsection{\texorpdfstring{multi\_dispatcher()}{multi\_dispatcher()}}
{\footnotesize\ttfamily auto multi\+\_\+dispatcher (\begin{DoxyParamCaption}\item[{int}]{i1,  }\item[{int}]{i2 }\end{DoxyParamCaption}) -\/$>$ int }



Definition at line \mbox{\hyperlink{logic_8cpp_source_l00072}{72}} of file \mbox{\hyperlink{logic_8cpp_source}{logic.\+cpp}}.

\mbox{\Hypertarget{logic_8cpp_a3a0a1ef4b637f7b37612b8e25385b7dc}\label{logic_8cpp_a3a0a1ef4b637f7b37612b8e25385b7dc}} 
\index{logic.cpp@{logic.cpp}!multi\_template@{multi\_template}}
\index{multi\_template@{multi\_template}!logic.cpp@{logic.cpp}}
\doxysubsubsection{\texorpdfstring{multi\_template()}{multi\_template()}}
{\footnotesize\ttfamily template$<$int I1, int I2$>$ \\
auto multi\+\_\+template (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) -\/$>$ int }



Definition at line \mbox{\hyperlink{logic_8cpp_source_l00010}{10}} of file \mbox{\hyperlink{logic_8cpp_source}{logic.\+cpp}}.

\mbox{\Hypertarget{logic_8cpp_a88f35363cda236fcadf3fd92bd50c06a}\label{logic_8cpp_a88f35363cda236fcadf3fd92bd50c06a}} 
\index{logic.cpp@{logic.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!logic.cpp@{logic.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\char`\"{}run-\/time template dispatching\char`\"{}}]{ }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{logic_8cpp_source_l00087}{87}} of file \mbox{\hyperlink{logic_8cpp_source}{logic.\+cpp}}.

\mbox{\Hypertarget{logic_8cpp_ad16dc06d9e2eb754b0b8723f29893e24}\label{logic_8cpp_ad16dc06d9e2eb754b0b8723f29893e24}} 
\index{logic.cpp@{logic.cpp}!TEST\_CASE@{TEST\_CASE}}
\index{TEST\_CASE@{TEST\_CASE}!logic.cpp@{logic.cpp}}
\doxysubsubsection{\texorpdfstring{TEST\_CASE()}{TEST\_CASE()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily TEST\+\_\+\+CASE (\begin{DoxyParamCaption}\item[{\char`\"{}transpose\char`\"{}}]{ }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{logic_8cpp_source_l00048}{48}} of file \mbox{\hyperlink{logic_8cpp_source}{logic.\+cpp}}.

\mbox{\Hypertarget{logic_8cpp_afa0bc1c7d143daefbe4fd916f27e5942}\label{logic_8cpp_afa0bc1c7d143daefbe4fd916f27e5942}} 
\index{logic.cpp@{logic.cpp}!transpose\_arr@{transpose\_arr}}
\index{transpose\_arr@{transpose\_arr}!logic.cpp@{logic.cpp}}
\doxysubsubsection{\texorpdfstring{transpose\_arr()}{transpose\_arr()}}
{\footnotesize\ttfamily template$<$typename T , std\+::size\+\_\+t rows, std\+::size\+\_\+t cols$>$ \\
constexpr auto transpose\+\_\+arr (\begin{DoxyParamCaption}\item[{std\+::array$<$ std\+::array$<$ T, cols $>$, rows $>$}]{in }\end{DoxyParamCaption}) -\/$>$ std\+::array$<$std\+::array$<$T, rows$>$, cols$>$ \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{logic_8cpp_source_l00034}{34}} of file \mbox{\hyperlink{logic_8cpp_source}{logic.\+cpp}}.

\mbox{\Hypertarget{logic_8cpp_ab28114b9c9bb4301d0547e9aa909dfec}\label{logic_8cpp_ab28114b9c9bb4301d0547e9aa909dfec}} 
\index{logic.cpp@{logic.cpp}!transpose\_arr\_impl@{transpose\_arr\_impl}}
\index{transpose\_arr\_impl@{transpose\_arr\_impl}!logic.cpp@{logic.cpp}}
\doxysubsubsection{\texorpdfstring{transpose\_arr\_impl()}{transpose\_arr\_impl()}}
{\footnotesize\ttfamily template$<$typename T , std\+::size\+\_\+t rows, std\+::size\+\_\+t cols, std\+::size\+\_\+t... row, std\+::size\+\_\+t... col$>$ \\
constexpr auto transpose\+\_\+arr\+\_\+impl (\begin{DoxyParamCaption}\item[{const std\+::array$<$ std\+::array$<$ T, cols $>$, rows $>$ \&}]{in,  }\item[{std\+::index\+\_\+sequence$<$ col... $>$}]{ }\end{DoxyParamCaption}) -\/$>$ std\+::array$<$std\+::array$<$T, rows$>$, cols$>$ \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{logic_8cpp_source_l00027}{27}} of file \mbox{\hyperlink{logic_8cpp_source}{logic.\+cpp}}.



\doxysubsection{Variable Documentation}
\mbox{\Hypertarget{logic_8cpp_a0cf41a8e5759d8937331aa9fe0925b02}\label{logic_8cpp_a0cf41a8e5759d8937331aa9fe0925b02}} 
\index{logic.cpp@{logic.cpp}!dispatch\_table@{dispatch\_table}}
\index{dispatch\_table@{dispatch\_table}!logic.cpp@{logic.cpp}}
\doxysubsubsection{\texorpdfstring{dispatch\_table}{dispatch\_table}}
{\footnotesize\ttfamily constexpr std\+::array$<$std\+::array$<$int ($\ast$)(), 8$>$, 8$>$ dispatch\+\_\+table\hspace{0.3cm}{\ttfamily [constexpr]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= gen\_dispatch\_table<tag<6, 13, 14, 19, 22, 22, 24, 27>, 1, 3, 5, 6, 18, 21,}
\DoxyCodeLine{                         25, 31>()}

\end{DoxyCode}


Definition at line \mbox{\hyperlink{logic_8cpp_source_l00068}{68}} of file \mbox{\hyperlink{logic_8cpp_source}{logic.\+cpp}}.

