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