\section{F\+F\+T\+Convolution$<$ Border\+Mode, pad\+Last\+Dim $>$ Class Template Reference}
\label{classmlpack_1_1ann_1_1FFTConvolution}\index{F\+F\+T\+Convolution$<$ Border\+Mode, pad\+Last\+Dim $>$@{F\+F\+T\+Convolution$<$ Border\+Mode, pad\+Last\+Dim $>$}}


Computes the two-\/dimensional convolution through fft.  


\subsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$typename eT , typename Border  = Border\+Mode$>$ }\\static std\+::enable\+\_\+if$<$ std\+::is\+\_\+same$<$ Border, \textbf{ Valid\+Convolution} $>$\+::value, void $>$\+::type \textbf{ Convolution} (const arma\+::\+Mat$<$ eT $>$ \&input, const arma\+::\+Mat$<$ eT $>$ \&filter, arma\+::\+Mat$<$ eT $>$ \&output)
\item 
{\footnotesize template$<$typename eT , typename Border  = Border\+Mode$>$ }\\static std\+::enable\+\_\+if$<$ std\+::is\+\_\+same$<$ Border, \textbf{ Full\+Convolution} $>$\+::value, void $>$\+::type \textbf{ Convolution} (const arma\+::\+Mat$<$ eT $>$ \&input, const arma\+::\+Mat$<$ eT $>$ \&filter, arma\+::\+Mat$<$ eT $>$ \&output)
\item 
{\footnotesize template$<$typename eT $>$ }\\static void \textbf{ Convolution} (const arma\+::\+Cube$<$ eT $>$ \&input, const arma\+::\+Cube$<$ eT $>$ \&filter, arma\+::\+Cube$<$ eT $>$ \&output)
\item 
{\footnotesize template$<$typename eT $>$ }\\static void \textbf{ Convolution} (const arma\+::\+Mat$<$ eT $>$ \&input, const arma\+::\+Cube$<$ eT $>$ \&filter, arma\+::\+Cube$<$ eT $>$ \&output)
\item 
{\footnotesize template$<$typename eT $>$ }\\static void \textbf{ Convolution} (const arma\+::\+Cube$<$ eT $>$ \&input, const arma\+::\+Mat$<$ eT $>$ \&filter, arma\+::\+Cube$<$ eT $>$ \&output)
\end{DoxyCompactItemize}


\subsection{Detailed Description}
\subsubsection*{template$<$typename Border\+Mode = Full\+Convolution, const bool pad\+Last\+Dim = false$>$\newline
class mlpack\+::ann\+::\+F\+F\+T\+Convolution$<$ Border\+Mode, pad\+Last\+Dim $>$}

Computes the two-\/dimensional convolution through fft. 

This class allows specification of the type of the border type. The convolution can be computed with the valid border type or the full border type (default).

\doxyref{Full\+Convolution}{p.}{classmlpack_1_1ann_1_1FullConvolution}\+: returns the full two-\/dimensional convolution. \doxyref{Valid\+Convolution}{p.}{classmlpack_1_1ann_1_1ValidConvolution}\+: returns only those parts of the convolution that are computed without the zero-\/padded edges.


\begin{DoxyTemplParams}{Template Parameters}
{\em Border\+Mode} & Type of the border mode (\doxyref{Full\+Convolution}{p.}{classmlpack_1_1ann_1_1FullConvolution} or \doxyref{Valid\+Convolution}{p.}{classmlpack_1_1ann_1_1ValidConvolution}). \\
\hline
{\em pad\+Last\+Dim} & Pad the last dimension of the input to to turn it from odd to even. \\
\hline
\end{DoxyTemplParams}


Definition at line 37 of file fft\+\_\+convolution.\+hpp.



\subsection{Member Function Documentation}
\mbox{\label{classmlpack_1_1ann_1_1FFTConvolution_a2982c8389e46e6ba1a839e8cd23eb5f9}} 
\index{mlpack\+::ann\+::\+F\+F\+T\+Convolution@{mlpack\+::ann\+::\+F\+F\+T\+Convolution}!Convolution@{Convolution}}
\index{Convolution@{Convolution}!mlpack\+::ann\+::\+F\+F\+T\+Convolution@{mlpack\+::ann\+::\+F\+F\+T\+Convolution}}
\subsubsection{Convolution()\hspace{0.1cm}{\footnotesize\ttfamily [1/5]}}
{\footnotesize\ttfamily static std\+::enable\+\_\+if$<$ std\+::is\+\_\+same$<$Border, \textbf{ Valid\+Convolution}$>$\+::value, void$>$\+::type \textbf{ Convolution} (\begin{DoxyParamCaption}\item[{const arma\+::\+Mat$<$ eT $>$ \&}]{input,  }\item[{const arma\+::\+Mat$<$ eT $>$ \&}]{filter,  }\item[{arma\+::\+Mat$<$ eT $>$ \&}]{output }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Definition at line 54 of file fft\+\_\+convolution.\+hpp.



Referenced by S\+V\+D\+Convolution$<$ Border\+Mode $>$\+::\+Convolution(), and F\+F\+T\+Convolution$<$ Border\+Mode, pad\+Last\+Dim $>$\+::\+Convolution().

\mbox{\label{classmlpack_1_1ann_1_1FFTConvolution_a428d120c7c27537f279f5a185d6e1f37}} 
\index{mlpack\+::ann\+::\+F\+F\+T\+Convolution@{mlpack\+::ann\+::\+F\+F\+T\+Convolution}!Convolution@{Convolution}}
\index{Convolution@{Convolution}!mlpack\+::ann\+::\+F\+F\+T\+Convolution@{mlpack\+::ann\+::\+F\+F\+T\+Convolution}}
\subsubsection{Convolution()\hspace{0.1cm}{\footnotesize\ttfamily [2/5]}}
{\footnotesize\ttfamily static std\+::enable\+\_\+if$<$ std\+::is\+\_\+same$<$Border, \textbf{ Full\+Convolution}$>$\+::value, void$>$\+::type \textbf{ Convolution} (\begin{DoxyParamCaption}\item[{const arma\+::\+Mat$<$ eT $>$ \&}]{input,  }\item[{const arma\+::\+Mat$<$ eT $>$ \&}]{filter,  }\item[{arma\+::\+Mat$<$ eT $>$ \&}]{output }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Definition at line 89 of file fft\+\_\+convolution.\+hpp.

\mbox{\label{classmlpack_1_1ann_1_1FFTConvolution_aa37ddacedb28e6dce994110781a184f6}} 
\index{mlpack\+::ann\+::\+F\+F\+T\+Convolution@{mlpack\+::ann\+::\+F\+F\+T\+Convolution}!Convolution@{Convolution}}
\index{Convolution@{Convolution}!mlpack\+::ann\+::\+F\+F\+T\+Convolution@{mlpack\+::ann\+::\+F\+F\+T\+Convolution}}
\subsubsection{Convolution()\hspace{0.1cm}{\footnotesize\ttfamily [3/5]}}
{\footnotesize\ttfamily static void \textbf{ Convolution} (\begin{DoxyParamCaption}\item[{const arma\+::\+Cube$<$ eT $>$ \&}]{input,  }\item[{const arma\+::\+Cube$<$ eT $>$ \&}]{filter,  }\item[{arma\+::\+Cube$<$ eT $>$ \&}]{output }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Definition at line 135 of file fft\+\_\+convolution.\+hpp.



References F\+F\+T\+Convolution$<$ Border\+Mode, pad\+Last\+Dim $>$\+::\+Convolution().

\mbox{\label{classmlpack_1_1ann_1_1FFTConvolution_ae95a7b7e102c7b7b92666bd6e7e04c22}} 
\index{mlpack\+::ann\+::\+F\+F\+T\+Convolution@{mlpack\+::ann\+::\+F\+F\+T\+Convolution}!Convolution@{Convolution}}
\index{Convolution@{Convolution}!mlpack\+::ann\+::\+F\+F\+T\+Convolution@{mlpack\+::ann\+::\+F\+F\+T\+Convolution}}
\subsubsection{Convolution()\hspace{0.1cm}{\footnotesize\ttfamily [4/5]}}
{\footnotesize\ttfamily static void \textbf{ Convolution} (\begin{DoxyParamCaption}\item[{const arma\+::\+Mat$<$ eT $>$ \&}]{input,  }\item[{const arma\+::\+Cube$<$ eT $>$ \&}]{filter,  }\item[{arma\+::\+Cube$<$ eT $>$ \&}]{output }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Definition at line 166 of file fft\+\_\+convolution.\+hpp.



References F\+F\+T\+Convolution$<$ Border\+Mode, pad\+Last\+Dim $>$\+::\+Convolution().

\mbox{\label{classmlpack_1_1ann_1_1FFTConvolution_ae14e839c68e6e5d32d8083c3d364ef64}} 
\index{mlpack\+::ann\+::\+F\+F\+T\+Convolution@{mlpack\+::ann\+::\+F\+F\+T\+Convolution}!Convolution@{Convolution}}
\index{Convolution@{Convolution}!mlpack\+::ann\+::\+F\+F\+T\+Convolution@{mlpack\+::ann\+::\+F\+F\+T\+Convolution}}
\subsubsection{Convolution()\hspace{0.1cm}{\footnotesize\ttfamily [5/5]}}
{\footnotesize\ttfamily static void \textbf{ Convolution} (\begin{DoxyParamCaption}\item[{const arma\+::\+Cube$<$ eT $>$ \&}]{input,  }\item[{const arma\+::\+Mat$<$ eT $>$ \&}]{filter,  }\item[{arma\+::\+Cube$<$ eT $>$ \&}]{output }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Definition at line 194 of file fft\+\_\+convolution.\+hpp.



References F\+F\+T\+Convolution$<$ Border\+Mode, pad\+Last\+Dim $>$\+::\+Convolution().



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
/var/www/mlpack.\+ratml.\+org/mlpack.\+org/\+\_\+src/mlpack-\/3.\+3.\+1/src/mlpack/methods/ann/convolution\+\_\+rules/\textbf{ fft\+\_\+convolution.\+hpp}\end{DoxyCompactItemize}
