\hypertarget{blas__interface_8cpp}{}\doxysection{tensor/blas\+\_\+interface.cpp File Reference}
\label{blas__interface_8cpp}\index{tensor/blas\_interface.cpp@{tensor/blas\_interface.cpp}}


This is dummy header for blas support.  


{\ttfamily \#include $<$blas\+\_\+interface.\+h$>$}\newline
{\ttfamily \#include $<$nntrainer\+\_\+error.\+h$>$}\newline
{\ttfamily \#include $<$cmath$>$}\newline
Include dependency graph for blas\+\_\+interface.\+cpp\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{blas__interface_8cpp__incl}
\end{center}
\end{figure}
\doxysubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item 
 \mbox{\hyperlink{namespacenntrainer}{nntrainer}}
\end{DoxyCompactItemize}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define {\bfseries sgemv\+\_\+loop}(ci,  cj,  cM,  cN)
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{namespacenntrainer_aa3a8d8e69827a57f6c9d5f3678f8e7aa}\label{namespacenntrainer_aa3a8d8e69827a57f6c9d5f3678f8e7aa}} 
static void {\bfseries nntrainer\+::saxpy\+\_\+raw} (const unsigned int N, const float alpha, const float $\ast$X, const int incX, float $\ast$Y, const int incY)
\item 
\mbox{\Hypertarget{namespacenntrainer_a5cde83a6b37d3d931e984681fe7ba391}\label{namespacenntrainer_a5cde83a6b37d3d931e984681fe7ba391}} 
static void {\bfseries nntrainer\+::sgemv\+\_\+raw} (C\+B\+L\+A\+S\+\_\+\+O\+R\+D\+ER order, C\+B\+L\+A\+S\+\_\+\+T\+R\+A\+N\+S\+P\+O\+SE TransA, const unsigned int M, const unsigned int N, const float alpha, const float $\ast$A, const unsigned int lda, const float $\ast$X, const int incX, const float beta, float $\ast$Y, const int incY)
\item 
\mbox{\Hypertarget{namespacenntrainer_a613a1a2610bbba273386c7ab0bc15080}\label{namespacenntrainer_a613a1a2610bbba273386c7ab0bc15080}} 
static float {\bfseries nntrainer\+::sdot\+\_\+raw} (const unsigned int N, const float $\ast$X, const unsigned int incX, const float $\ast$Y, const unsigned int incY)
\item 
\mbox{\Hypertarget{namespacenntrainer_acebe8994ab7ab802909ca11056e13954}\label{namespacenntrainer_acebe8994ab7ab802909ca11056e13954}} 
static void {\bfseries nntrainer\+::scopy\+\_\+raw} (const unsigned int N, const float $\ast$X, const int incX, float $\ast$Y, const int incY)
\item 
\mbox{\Hypertarget{namespacenntrainer_a0913de2df502c7e74ebe12d168c61e80}\label{namespacenntrainer_a0913de2df502c7e74ebe12d168c61e80}} 
static void {\bfseries nntrainer\+::sscal\+\_\+raw} (const unsigned int N, const float alpha, float $\ast$X, const int incX)
\item 
\mbox{\Hypertarget{namespacenntrainer_a3e14492d0d649a3cd582d3ddc6e1c167}\label{namespacenntrainer_a3e14492d0d649a3cd582d3ddc6e1c167}} 
static float {\bfseries nntrainer\+::snrm2\+\_\+raw} (const unsigned int N, const float $\ast$X, const int incX)
\item 
\mbox{\Hypertarget{namespacenntrainer_a1e2a98157cb599db58ac2dd64e3e1df7}\label{namespacenntrainer_a1e2a98157cb599db58ac2dd64e3e1df7}} 
static void {\bfseries nntrainer\+::sgemm\+\_\+raw} (C\+B\+L\+A\+S\+\_\+\+O\+R\+D\+ER order, C\+B\+L\+A\+S\+\_\+\+T\+R\+A\+N\+S\+P\+O\+SE TransA, C\+B\+L\+A\+S\+\_\+\+T\+R\+A\+N\+S\+P\+O\+SE TransB, const unsigned int M, const unsigned int N, const unsigned int K, const float alpha, const float $\ast$A, const unsigned int lda, const float $\ast$B, const unsigned int ldb, const float beta, float $\ast$C, const unsigned int ldc)
\item 
\mbox{\Hypertarget{namespacenntrainer_a7f37211a0dd44b80ce0e19bae63964e8}\label{namespacenntrainer_a7f37211a0dd44b80ce0e19bae63964e8}} 
static unsigned int {\bfseries nntrainer\+::isamax\+\_\+raw} (const unsigned int N, const float $\ast$X, const int incX)
\item 
\mbox{\Hypertarget{namespacenntrainer_a90100d09c8e06bf3e624ba377f902077}\label{namespacenntrainer_a90100d09c8e06bf3e624ba377f902077}} 
void {\bfseries nntrainer\+::saxpy} (const unsigned int N, const float alpha, const float $\ast$X, const int incX, float $\ast$Y, const int incY)
\item 
\mbox{\Hypertarget{namespacenntrainer_a501a0a276e788996e7dd3671a1fc0420}\label{namespacenntrainer_a501a0a276e788996e7dd3671a1fc0420}} 
void {\bfseries nntrainer\+::sgemm} (C\+B\+L\+A\+S\+\_\+\+O\+R\+D\+ER order, C\+B\+L\+A\+S\+\_\+\+T\+R\+A\+N\+S\+P\+O\+SE TransA, C\+B\+L\+A\+S\+\_\+\+T\+R\+A\+N\+S\+P\+O\+SE TransB, const unsigned int M, const unsigned int N, const unsigned int K, const float alpha, const float $\ast$A, const unsigned int lda, const float $\ast$B, const unsigned int ldb, const float beta, float $\ast$C, const unsigned int ldc)
\item 
\mbox{\Hypertarget{namespacenntrainer_a45b3e45b64ec9c5faed10f568674af3e}\label{namespacenntrainer_a45b3e45b64ec9c5faed10f568674af3e}} 
void {\bfseries nntrainer\+::scopy} (const unsigned int N, const float $\ast$X, const int incX, float $\ast$Y, const int incY)
\item 
\mbox{\Hypertarget{namespacenntrainer_a3868aa05f1f0bec2bb81caab19206bca}\label{namespacenntrainer_a3868aa05f1f0bec2bb81caab19206bca}} 
void {\bfseries nntrainer\+::sscal} (const int N, const float alpha, float $\ast$X, const int incX)
\item 
\mbox{\Hypertarget{namespacenntrainer_a64dff3b9ed767fdea5b1594367e22244}\label{namespacenntrainer_a64dff3b9ed767fdea5b1594367e22244}} 
float {\bfseries nntrainer\+::snrm2} (const int N, const float $\ast$X, const int incX)
\item 
\mbox{\Hypertarget{namespacenntrainer_a1f5ae85b2bd03a52f9eb3bc3418dbb61}\label{namespacenntrainer_a1f5ae85b2bd03a52f9eb3bc3418dbb61}} 
float {\bfseries nntrainer\+::sdot} (const unsigned int N, const float $\ast$X, const unsigned int incX, const float $\ast$Y, const unsigned int incY)
\item 
\mbox{\Hypertarget{namespacenntrainer_abbdc17aa51b65df4456049988ddde524}\label{namespacenntrainer_abbdc17aa51b65df4456049988ddde524}} 
void {\bfseries nntrainer\+::sgemv} (C\+B\+L\+A\+S\+\_\+\+O\+R\+D\+ER order, C\+B\+L\+A\+S\+\_\+\+T\+R\+A\+N\+S\+P\+O\+SE TransA, const unsigned int M, const unsigned int N, const float alpha, const float $\ast$A, const unsigned int lda, const float $\ast$X, const int incX, const float beta, float $\ast$Y, const int incY)
\item 
\mbox{\Hypertarget{namespacenntrainer_af94efc26ab684c880f1c140edd09ab4f}\label{namespacenntrainer_af94efc26ab684c880f1c140edd09ab4f}} 
unsigned int {\bfseries nntrainer\+::isamax} (const unsigned int N, const float $\ast$X, const int incX)
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
This is dummy header for blas support. 

Copyright (C) 2020 Jijoong Moon \href{mailto:jijoong.moon@samsung.com}{\texttt{ jijoong.\+moon@samsung.\+com}}

\begin{DoxyDate}{Date}
28 Aug 2020 
\end{DoxyDate}
\begin{DoxySeeAlso}{See also}
\href{https://github.com/nnstreamer/nntrainer}{\texttt{ https\+://github.\+com/nnstreamer/nntrainer}} 
\end{DoxySeeAlso}
\begin{DoxyAuthor}{Author}
Jijoong Moon \href{mailto:jijoong.moon@samsung.com}{\texttt{ jijoong.\+moon@samsung.\+com}} 
\end{DoxyAuthor}
\begin{DoxyRefDesc}{Bug}
\item[\mbox{\hyperlink{bug__bug000197}{Bug}}]No known bugs except for N\+YI items \end{DoxyRefDesc}


\doxysubsection{Macro Definition Documentation}
\mbox{\Hypertarget{blas__interface_8cpp_a1b2acf93281a3f69171a9d4d4b783ca7}\label{blas__interface_8cpp_a1b2acf93281a3f69171a9d4d4b783ca7}} 
\index{blas\_interface.cpp@{blas\_interface.cpp}!sgemv\_loop@{sgemv\_loop}}
\index{sgemv\_loop@{sgemv\_loop}!blas\_interface.cpp@{blas\_interface.cpp}}
\doxysubsubsection{\texorpdfstring{sgemv\_loop}{sgemv\_loop}}
{\footnotesize\ttfamily \#define sgemv\+\_\+loop(\begin{DoxyParamCaption}\item[{}]{ci,  }\item[{}]{cj,  }\item[{}]{cM,  }\item[{}]{cN }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{  \textcolor{keywordflow}{do} \{                                       \(\backslash\)}
\DoxyCodeLine{    double y0;                               \(\backslash\)}
\DoxyCodeLine{    unsigned \textcolor{keywordtype}{int} i, j;                       \(\backslash\)}
\DoxyCodeLine{    for (ci = 0; ci != cM; ci++) \{           \(\backslash\)}
\DoxyCodeLine{      y0 = Y[ci * incy] * beta;              \(\backslash\)}
\DoxyCodeLine{      for (cj = 0; cj != cN; cj++)           \(\backslash\)}
\DoxyCodeLine{        y0 += A[i + j * lda] * X[cj * incx]; \(\backslash\)}
\DoxyCodeLine{      Y[ci * incy] = y0;                     \(\backslash\)}
\DoxyCodeLine{    \}                                        \(\backslash\)}
\DoxyCodeLine{  \} \textcolor{keywordflow}{while} (0);}

\end{DoxyCode}


Definition at line 19 of file blas\+\_\+interface.\+cpp.

