\hypertarget{ddss__tiled2flat_8c}{}\section{src/ddss\+\_\+tiled2flat.c File Reference}
\label{ddss__tiled2flat_8c}\index{src/ddss\+\_\+tiled2flat.\+c@{src/ddss\+\_\+tiled2flat.\+c}}


L\+A\+Ss-\/\+D\+D\+Ss ddss\+\_\+tiled2flat routines.  


{\ttfamily \#include \char`\"{}../include/lass.\+h\char`\"{}}\\*
Include dependency graph for ddss\+\_\+tiled2flat.\+c\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{ddss__tiled2flat_8c__incl}
\end{center}
\end{figure}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{ddss__tiled2flat_8c_aeeb6b69c6b4db8333c660ef6824cdf6a}{ddss\+\_\+dtiled2flat} (int M, int N, double $\ast$A, int L\+DA, int MT, int NT, double($\ast$T\+I\+L\+E\+\_\+A)\mbox{[}NT\mbox{]}\mbox{[}T\+I\+L\+E\+\_\+\+S\+I\+ZE $\ast$T\+I\+L\+E\+\_\+\+S\+I\+ZE\mbox{]})
\item 
void \hyperlink{ddss__tiled2flat_8c_adb1f9312d77184467236d25bc73f21b0}{ddss\+\_\+dtiled2flat\+\_\+nb} (int M, int N, double $\ast$A, int L\+DA, int MT, int NT, double($\ast$T\+I\+L\+E\+\_\+A)\mbox{[}NT\mbox{]}\mbox{[}T\+I\+L\+E\+\_\+\+S\+I\+ZE $\ast$T\+I\+L\+E\+\_\+\+S\+I\+ZE\mbox{]})
\item 
void \hyperlink{ddss__tiled2flat_8c_a7a0f7b98f2430148a5f99fc403309816}{ddss\+\_\+dsymtiled2flat} (int M, int N, double $\ast$A, int L\+DA, int MT, int NT, double($\ast$T\+I\+L\+E\+\_\+A)\mbox{[}NT\mbox{]}\mbox{[}T\+I\+L\+E\+\_\+\+S\+I\+ZE $\ast$T\+I\+L\+E\+\_\+\+S\+I\+ZE\mbox{]}, enum D\+D\+S\+S\+\_\+\+U\+P\+LO U\+P\+LO)
\item 
void \hyperlink{ddss__tiled2flat_8c_a9089190fbb27ac8ceaaaa558ab2f5e37}{ddss\+\_\+dsymtiled2flat\+\_\+nb} (int M, int N, double $\ast$A, int L\+DA, int MT, int NT, double($\ast$T\+I\+L\+E\+\_\+A)\mbox{[}NT\mbox{]}\mbox{[}T\+I\+L\+E\+\_\+\+S\+I\+ZE $\ast$T\+I\+L\+E\+\_\+\+S\+I\+ZE\mbox{]}, enum D\+D\+S\+S\+\_\+\+U\+P\+LO U\+P\+LO)
\item 
void \hyperlink{ddss__tiled2flat_8c_a7f57f81b35bf76a41998f387c9afd541}{ddss\+\_\+dscatter\+\_\+tile} (int M, int N, double $\ast$A, int L\+DA, double $\ast$T\+I\+L\+E\+\_\+A, int M\+ID, int N\+ID)
\end{DoxyCompactItemize}


\subsection{Detailed Description}
L\+A\+Ss-\/\+D\+D\+Ss ddss\+\_\+tiled2flat routines. 

L\+A\+Ss-\/\+D\+D\+Ss is a software package provided by\+: Barcelona Supercomputing Center -\/ Centro Nacional de Supercomputacion

\begin{DoxyAuthor}{Author}
Pedro Valero-\/\+Lara \href{mailto:pedro.valero@bsc.es}{\tt pedro.\+valero@bsc.\+es} 
\end{DoxyAuthor}
\begin{DoxyDate}{Date}
2017-\/05-\/10   
\end{DoxyDate}


\subsection{Function Documentation}
\index{ddss\+\_\+tiled2flat.\+c@{ddss\+\_\+tiled2flat.\+c}!ddss\+\_\+dscatter\+\_\+tile@{ddss\+\_\+dscatter\+\_\+tile}}
\index{ddss\+\_\+dscatter\+\_\+tile@{ddss\+\_\+dscatter\+\_\+tile}!ddss\+\_\+tiled2flat.\+c@{ddss\+\_\+tiled2flat.\+c}}
\subsubsection[{\texorpdfstring{ddss\+\_\+dscatter\+\_\+tile(int M, int N, double $\ast$\+A, int L\+D\+A, double $\ast$\+T\+I\+L\+E\+\_\+\+A, int M\+I\+D, int N\+I\+D)}{ddss_dscatter_tile(int M, int N, double *A, int LDA, double *TILE_A, int MID, int NID)}}]{\setlength{\rightskip}{0pt plus 5cm}void ddss\+\_\+dscatter\+\_\+tile (
\begin{DoxyParamCaption}
\item[{int}]{M, }
\item[{int}]{N, }
\item[{double $\ast$}]{A, }
\item[{int}]{L\+DA, }
\item[{double $\ast$}]{T\+I\+L\+E\+\_\+A, }
\item[{int}]{M\+ID, }
\item[{int}]{N\+ID}
\end{DoxyParamCaption}
)}\hypertarget{ddss__tiled2flat_8c_a7f57f81b35bf76a41998f387c9afd541}{}\label{ddss__tiled2flat_8c_a7f57f81b35bf76a41998f387c9afd541}
ddss\+\_\+dscatter\+\_\+tile\+: Performs the copy of a tile from the tile matrix T\+I\+L\+E\+\_\+A to the flat matrix A for the MT, NT tile.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em M} & int. M specifies the number of rows of the flat matrix.\\
\hline
\mbox{\tt in}  & {\em N} & int. N specifies the number of columns of the flat matrix.\\
\hline
\mbox{\tt in,out}  & {\em A} & double $\ast$. A is a pointer to the flat matrix.\\
\hline
\mbox{\tt in}  & {\em L\+DA} & int. L\+DA specifies the number of columns ( row-\/major order ) of matrix A.\\
\hline
\mbox{\tt in}  & {\em T\+I\+L\+E\+\_\+A} & double $\ast$. T\+I\+L\+E\+\_\+A is a pointer to the tile matrix.\\
\hline
\mbox{\tt in}  & {\em M\+ID} & int. M\+ID specifies the row id of the tile.\\
\hline
\mbox{\tt in}  & {\em N\+ID} & int. N\+ID specifies the column id of the tile.\\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
\hyperlink{lass_8h_a931442adba78807015ff9a076fb2ae49}{ddss\+\_\+tile\+\_\+size} 

\hyperlink{ddss__tiled2flat_8c_aeeb6b69c6b4db8333c660ef6824cdf6a}{ddss\+\_\+dtiled2flat} 
\end{DoxySeeAlso}


Definition at line 414 of file ddss\+\_\+tiled2flat.\+c.



References ddss\+\_\+tile\+\_\+size().



Referenced by ddss\+\_\+dsymtiled2flat(), ddss\+\_\+dsymtiled2flat\+\_\+nb(), ddss\+\_\+dtiled2flat(), and ddss\+\_\+dtiled2flat\+\_\+nb().


\begin{DoxyCode}
416 \{
417 
418     \textcolor{comment}{//Local variables}
419     \textcolor{keywordtype}{int} i, j;
420     \textcolor{keywordtype}{int} tile\_size\_m, tile\_size\_n;
421      
422     tile\_size\_m = \hyperlink{ddss__tile_8c_a931442adba78807015ff9a076fb2ae49}{ddss\_tile\_size}( M, MID );
423     tile\_size\_n = \hyperlink{ddss__tile_8c_a931442adba78807015ff9a076fb2ae49}{ddss\_tile\_size}( N, NID );
424 
425     \textcolor{keywordflow}{for} ( i = 0; i < tile\_size\_m; i++ )
426     \{
427         \textcolor{keywordflow}{for} ( j = 0; j < tile\_size\_n; j++ )
428         \{
429             A[i * LDA + j] = TILE\_A[i * tile\_size\_n + j];
430         \}
431     \}
432 
433 \}
\end{DoxyCode}
\index{ddss\+\_\+tiled2flat.\+c@{ddss\+\_\+tiled2flat.\+c}!ddss\+\_\+dsymtiled2flat@{ddss\+\_\+dsymtiled2flat}}
\index{ddss\+\_\+dsymtiled2flat@{ddss\+\_\+dsymtiled2flat}!ddss\+\_\+tiled2flat.\+c@{ddss\+\_\+tiled2flat.\+c}}
\subsubsection[{\texorpdfstring{ddss\+\_\+dsymtiled2flat(int M, int N, double $\ast$\+A, int L\+D\+A, int M\+T, int N\+T, double($\ast$\+T\+I\+L\+E\+\_\+\+A)[NT][T\+I\+L\+E\+\_\+\+S\+I\+Z\+E $\ast$\+T\+I\+L\+E\+\_\+\+S\+I\+ZE], enum D\+D\+S\+S\+\_\+\+U\+P\+L\+O U\+P\+L\+O)}{ddss_dsymtiled2flat(int M, int N, double *A, int LDA, int MT, int NT, double(*TILE_A)[NT][TILE_SIZE *TILE_SIZE], enum DDSS_UPLO UPLO)}}]{\setlength{\rightskip}{0pt plus 5cm}void ddss\+\_\+dsymtiled2flat (
\begin{DoxyParamCaption}
\item[{int}]{M, }
\item[{int}]{N, }
\item[{double $\ast$}]{A, }
\item[{int}]{L\+DA, }
\item[{int}]{MT, }
\item[{int}]{NT, }
\item[{double($\ast$)}]{T\+I\+L\+E\+\_\+A\mbox{[}\+N\+T\mbox{]}\mbox{[}\+T\+I\+L\+E\+\_\+\+S\+I\+Z\+E $\ast$\+T\+I\+L\+E\+\_\+\+S\+I\+Z\+E\mbox{]}, }
\item[{enum D\+D\+S\+S\+\_\+\+U\+P\+LO}]{U\+P\+LO}
\end{DoxyParamCaption}
)}\hypertarget{ddss__tiled2flat_8c_a7a0f7b98f2430148a5f99fc403309816}{}\label{ddss__tiled2flat_8c_a7a0f7b98f2430148a5f99fc403309816}
ddss\+\_\+dsymtiled2flat\+: Performs the change of the data layout from tile layout to flat layout for symmetric matrices according to row-\/major order.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em M} & int. M specifies the number of rows of the flat matrix.\\
\hline
\mbox{\tt in}  & {\em N} & int. N specifies the number of columns of the flat matrix.\\
\hline
\mbox{\tt in,out}  & {\em A} & double $\ast$. A is a pointer to the flat matrix.\\
\hline
\mbox{\tt in}  & {\em L\+DA} & int. L\+DA specifies the number of columns ( row-\/major order ) of matrix A.\\
\hline
\mbox{\tt in}  & {\em MT} & int. MT specifies the number of rows of the matrix T\+I\+L\+E\+\_\+A.\\
\hline
\mbox{\tt in}  & {\em NT} & int. NT specifies the number of columns of the matrix T\+I\+L\+E\+\_\+A.\\
\hline
\mbox{\tt in}  & {\em T\+I\+L\+E\+\_\+A} & double $\ast$. T\+I\+L\+E\+\_\+A is a pointer to the tile matrix.\\
\hline
\mbox{\tt in}  & {\em U\+P\+LO} & enum D\+D\+S\+S\+\_\+\+U\+P\+LO. U\+P\+LO specifies the form of A is stored\+:
\begin{DoxyItemize}
\item Lower\+: Lower triangle of A is stored. The upper traingular part is not referenced.
\item Upper\+: Upper triangle of A is stored. The lower triangular part is not referenced.
\end{DoxyItemize}\\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
\hyperlink{ddss__tiled2flat_8c_a7f57f81b35bf76a41998f387c9afd541}{ddss\+\_\+dscatter\+\_\+tile} 

\hyperlink{lass_8h_a931442adba78807015ff9a076fb2ae49}{ddss\+\_\+tile\+\_\+size} 
\end{DoxySeeAlso}


Definition at line 223 of file ddss\+\_\+tiled2flat.\+c.



References ddss\+\_\+dscatter\+\_\+tile().



Referenced by kdpotrf(), kdsyr2k(), and kdsyrk().


\begin{DoxyCode}
225 \{
226 
227     \textcolor{comment}{// Local variables}
228     \textcolor{keywordtype}{int} m, n;
229     
230     \textcolor{keywordflow}{if} ( UPLO == Upper )
231     \{
232         \textcolor{keywordflow}{for} ( m = 0; m < MT; m++ )
233         \{
234             \textcolor{keywordflow}{for} ( n = NT-1; n >= m; n-- )
235             \{
236 \textcolor{preprocessor}{                #pragma oss task inout(TILE\_A[m][n]) \(\backslash\)}
237 \textcolor{preprocessor}{                label( dsymmtiled2flat )}
238                 \{ 
239                     \hyperlink{ddss__tiled2flat_8c_a7f57f81b35bf76a41998f387c9afd541}{ddss\_dscatter\_tile}( M, N, 
240                         &A[m * TILE\_SIZE * N + n * TILE\_SIZE], LDA, 
241                         TILE\_A[m][n], m, n );
242                 \}
243             \}
244         \}
245     \}   
246     \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} ( UPLO == Lower )
247     \{
248         \textcolor{keywordflow}{for} ( m = 0; m < MT; m++ )
249         \{
250             \textcolor{keywordflow}{for} ( n = 0; n <= m; n++ )
251             \{
252 \textcolor{preprocessor}{                #pragma oss task inout(TILE\_A[m][n]) \(\backslash\)}
253 \textcolor{preprocessor}{                label( dsymmtiled2flat )}
254                 \{ 
255                     \hyperlink{ddss__tiled2flat_8c_a7f57f81b35bf76a41998f387c9afd541}{ddss\_dscatter\_tile}( M, N, 
256                         &A[m * TILE\_SIZE * N + n * TILE\_SIZE], LDA, 
257                         TILE\_A[m][n], m, n );
258                 \}
259             \}
260         \}
261     \}       
262 
263 \textcolor{preprocessor}{    #pragma oss taskwait    }
264 \}
\end{DoxyCode}
\index{ddss\+\_\+tiled2flat.\+c@{ddss\+\_\+tiled2flat.\+c}!ddss\+\_\+dsymtiled2flat\+\_\+nb@{ddss\+\_\+dsymtiled2flat\+\_\+nb}}
\index{ddss\+\_\+dsymtiled2flat\+\_\+nb@{ddss\+\_\+dsymtiled2flat\+\_\+nb}!ddss\+\_\+tiled2flat.\+c@{ddss\+\_\+tiled2flat.\+c}}
\subsubsection[{\texorpdfstring{ddss\+\_\+dsymtiled2flat\+\_\+nb(int M, int N, double $\ast$\+A, int L\+D\+A, int M\+T, int N\+T, double($\ast$\+T\+I\+L\+E\+\_\+\+A)[NT][T\+I\+L\+E\+\_\+\+S\+I\+Z\+E $\ast$\+T\+I\+L\+E\+\_\+\+S\+I\+ZE], enum D\+D\+S\+S\+\_\+\+U\+P\+L\+O U\+P\+L\+O)}{ddss_dsymtiled2flat_nb(int M, int N, double *A, int LDA, int MT, int NT, double(*TILE_A)[NT][TILE_SIZE *TILE_SIZE], enum DDSS_UPLO UPLO)}}]{\setlength{\rightskip}{0pt plus 5cm}void ddss\+\_\+dsymtiled2flat\+\_\+nb (
\begin{DoxyParamCaption}
\item[{int}]{M, }
\item[{int}]{N, }
\item[{double $\ast$}]{A, }
\item[{int}]{L\+DA, }
\item[{int}]{MT, }
\item[{int}]{NT, }
\item[{double($\ast$)}]{T\+I\+L\+E\+\_\+A\mbox{[}\+N\+T\mbox{]}\mbox{[}\+T\+I\+L\+E\+\_\+\+S\+I\+Z\+E $\ast$\+T\+I\+L\+E\+\_\+\+S\+I\+Z\+E\mbox{]}, }
\item[{enum D\+D\+S\+S\+\_\+\+U\+P\+LO}]{U\+P\+LO}
\end{DoxyParamCaption}
)}\hypertarget{ddss__tiled2flat_8c_a9089190fbb27ac8ceaaaa558ab2f5e37}{}\label{ddss__tiled2flat_8c_a9089190fbb27ac8ceaaaa558ab2f5e37}
ddss\+\_\+dsymtiled2flat\+\_\+nb\+: Performs the change of the data layout from tile layout to flat layout for symmetric matrices according to row-\/major order in a non-\/blocking execution mode.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em M} & int. M specifies the number of rows of the flat matrix.\\
\hline
\mbox{\tt in}  & {\em N} & int. N specifies the number of columns of the flat matrix.\\
\hline
\mbox{\tt in,out}  & {\em A} & double $\ast$. A is a pointer to the flat matrix.\\
\hline
\mbox{\tt in}  & {\em L\+DA} & int. L\+DA specifies the number of columns ( row-\/major order ) of matrix A.\\
\hline
\mbox{\tt in}  & {\em MT} & int. MT specifies the number of rows of the matrix T\+I\+L\+E\+\_\+A.\\
\hline
\mbox{\tt in}  & {\em NT} & int. NT specifies the number of columns of the matrix T\+I\+L\+E\+\_\+A.\\
\hline
\mbox{\tt in}  & {\em T\+I\+L\+E\+\_\+A} & double $\ast$. T\+I\+L\+E\+\_\+A is a pointer to the tile matrix.\\
\hline
\mbox{\tt in}  & {\em U\+P\+LO} & enum D\+D\+S\+S\+\_\+\+U\+P\+LO. U\+P\+LO specifies the form of A is stored\+:
\begin{DoxyItemize}
\item Lower\+: Lower triangle of A is stored. The upper traingular part is not referenced.
\item Upper\+: Upper triangle of A is stored. The lower triangular part is not referenced.
\end{DoxyItemize}\\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
\hyperlink{ddss__tiled2flat_8c_a7f57f81b35bf76a41998f387c9afd541}{ddss\+\_\+dscatter\+\_\+tile} 

\hyperlink{lass_8h_a931442adba78807015ff9a076fb2ae49}{ddss\+\_\+tile\+\_\+size} 
\end{DoxySeeAlso}


Definition at line 324 of file ddss\+\_\+tiled2flat.\+c.



References ddss\+\_\+dscatter\+\_\+tile().



Referenced by kdposv().


\begin{DoxyCode}
326 \{
327 
328     \textcolor{comment}{// Local variables}
329     \textcolor{keywordtype}{int} m, n;
330 
331     \textcolor{keywordflow}{if} ( UPLO == Upper )
332     \{
333         \textcolor{keywordflow}{for} ( m = 0; m < MT; m++ )
334         \{
335             \textcolor{keywordflow}{for} ( n = NT-1; n >= m; n-- )
336             \{
337 \textcolor{preprocessor}{                #pragma oss task inout(TILE\_A[m][n]) \(\backslash\)}
338 \textcolor{preprocessor}{                label( dsymmtiled2flat\_nb )}
339                 \{
340                     \hyperlink{ddss__tiled2flat_8c_a7f57f81b35bf76a41998f387c9afd541}{ddss\_dscatter\_tile}( M, N,
341                         &A[m * TILE\_SIZE * N + n * TILE\_SIZE], LDA,
342                         TILE\_A[m][n], m, n );
343                 \}
344             \}
345         \}
346     \}
347     \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} ( UPLO == Lower )
348     \{
349         \textcolor{keywordflow}{for} ( m = 0; m < MT; m++ )
350         \{
351             \textcolor{keywordflow}{for} ( n = 0; n <= m; n++ )
352             \{
353 \textcolor{preprocessor}{                #pragma oss task inout(TILE\_A[m][n]) \(\backslash\)}
354 \textcolor{preprocessor}{                label( dsymmtiled2flat\_nb )}
355                 \{
356                     \hyperlink{ddss__tiled2flat_8c_a7f57f81b35bf76a41998f387c9afd541}{ddss\_dscatter\_tile}( M, N,
357                         &A[m * TILE\_SIZE * N + n * TILE\_SIZE], LDA,
358                         TILE\_A[m][n], m, n );
359                 \}
360             \}
361         \}
362     \}
363 
364 \}
\end{DoxyCode}
\index{ddss\+\_\+tiled2flat.\+c@{ddss\+\_\+tiled2flat.\+c}!ddss\+\_\+dtiled2flat@{ddss\+\_\+dtiled2flat}}
\index{ddss\+\_\+dtiled2flat@{ddss\+\_\+dtiled2flat}!ddss\+\_\+tiled2flat.\+c@{ddss\+\_\+tiled2flat.\+c}}
\subsubsection[{\texorpdfstring{ddss\+\_\+dtiled2flat(int M, int N, double $\ast$\+A, int L\+D\+A, int M\+T, int N\+T, double($\ast$\+T\+I\+L\+E\+\_\+\+A)[NT][T\+I\+L\+E\+\_\+\+S\+I\+Z\+E $\ast$\+T\+I\+L\+E\+\_\+\+S\+I\+ZE])}{ddss_dtiled2flat(int M, int N, double *A, int LDA, int MT, int NT, double(*TILE_A)[NT][TILE_SIZE *TILE_SIZE])}}]{\setlength{\rightskip}{0pt plus 5cm}void ddss\+\_\+dtiled2flat (
\begin{DoxyParamCaption}
\item[{int}]{M, }
\item[{int}]{N, }
\item[{double $\ast$}]{A, }
\item[{int}]{L\+DA, }
\item[{int}]{MT, }
\item[{int}]{NT, }
\item[{double($\ast$)}]{T\+I\+L\+E\+\_\+A\mbox{[}\+N\+T\mbox{]}\mbox{[}\+T\+I\+L\+E\+\_\+\+S\+I\+Z\+E $\ast$\+T\+I\+L\+E\+\_\+\+S\+I\+Z\+E\mbox{]}}
\end{DoxyParamCaption}
)}\hypertarget{ddss__tiled2flat_8c_aeeb6b69c6b4db8333c660ef6824cdf6a}{}\label{ddss__tiled2flat_8c_aeeb6b69c6b4db8333c660ef6824cdf6a}
ddss\+\_\+dtiled2flat\+: Performs the change of the data layout from tile layout to flat layout according to row-\/major order.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em M} & int. M specifies the number of rows of the flat matrix.\\
\hline
\mbox{\tt in}  & {\em N} & int. N specifies the number of columns of the flat matrix.\\
\hline
\mbox{\tt in,out}  & {\em A} & double $\ast$. A is a pointer to the flat matrix.\\
\hline
\mbox{\tt in}  & {\em L\+DA} & int. L\+DA specifies the number of columns ( row-\/major order ) of matrix A.\\
\hline
\mbox{\tt in}  & {\em MT} & int. MT specifies the number of rows of the matrix T\+I\+L\+E\+\_\+A.\\
\hline
\mbox{\tt in}  & {\em NT} & int. NT specifies the number of columns of the matrix T\+I\+L\+E\+\_\+A.\\
\hline
\mbox{\tt in}  & {\em T\+I\+L\+E\+\_\+A} & double $\ast$. T\+I\+L\+E\+\_\+A is a pointer to the tile matrix.\\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
\hyperlink{ddss__tiled2flat_8c_a7f57f81b35bf76a41998f387c9afd541}{ddss\+\_\+dscatter\+\_\+tile} 

\hyperlink{lass_8h_a931442adba78807015ff9a076fb2ae49}{ddss\+\_\+tile\+\_\+size} 
\end{DoxySeeAlso}


Definition at line 68 of file ddss\+\_\+tiled2flat.\+c.



References ddss\+\_\+dscatter\+\_\+tile().



Referenced by kdgemm(), kdnpgesv(), kdnpgetrf(), kdposv(), kdsymm(), kdtpgesv(), kdtpgetrf(), kdtrmm(), and kdtrsm().


\begin{DoxyCode}
70 \{
71 
72     \textcolor{comment}{// Local variables}
73     \textcolor{keywordtype}{int} m, n;
74 
75     \textcolor{keywordflow}{for} ( m = 0; m < MT; m++ )
76     \{
77         \textcolor{keywordflow}{for} ( n = 0; n < NT; n++ )
78         \{
79 \textcolor{preprocessor}{            #pragma oss task inout(TILE\_A[m][n]) \(\backslash\)}
80 \textcolor{preprocessor}{            label( dtiled2flat)}
81             \{
82                 \hyperlink{ddss__tiled2flat_8c_a7f57f81b35bf76a41998f387c9afd541}{ddss\_dscatter\_tile}( M, N, 
83                     &A[m * TILE\_SIZE * N + n * TILE\_SIZE], LDA, 
84                     TILE\_A[m][n], m, n );
85             \}
86         \}
87     \}
88 
89 \textcolor{preprocessor}{    #pragma oss taskwait}
90 
91 \}
\end{DoxyCode}
\index{ddss\+\_\+tiled2flat.\+c@{ddss\+\_\+tiled2flat.\+c}!ddss\+\_\+dtiled2flat\+\_\+nb@{ddss\+\_\+dtiled2flat\+\_\+nb}}
\index{ddss\+\_\+dtiled2flat\+\_\+nb@{ddss\+\_\+dtiled2flat\+\_\+nb}!ddss\+\_\+tiled2flat.\+c@{ddss\+\_\+tiled2flat.\+c}}
\subsubsection[{\texorpdfstring{ddss\+\_\+dtiled2flat\+\_\+nb(int M, int N, double $\ast$\+A, int L\+D\+A, int M\+T, int N\+T, double($\ast$\+T\+I\+L\+E\+\_\+\+A)[NT][T\+I\+L\+E\+\_\+\+S\+I\+Z\+E $\ast$\+T\+I\+L\+E\+\_\+\+S\+I\+ZE])}{ddss_dtiled2flat_nb(int M, int N, double *A, int LDA, int MT, int NT, double(*TILE_A)[NT][TILE_SIZE *TILE_SIZE])}}]{\setlength{\rightskip}{0pt plus 5cm}void ddss\+\_\+dtiled2flat\+\_\+nb (
\begin{DoxyParamCaption}
\item[{int}]{M, }
\item[{int}]{N, }
\item[{double $\ast$}]{A, }
\item[{int}]{L\+DA, }
\item[{int}]{MT, }
\item[{int}]{NT, }
\item[{double($\ast$)}]{T\+I\+L\+E\+\_\+A\mbox{[}\+N\+T\mbox{]}\mbox{[}\+T\+I\+L\+E\+\_\+\+S\+I\+Z\+E $\ast$\+T\+I\+L\+E\+\_\+\+S\+I\+Z\+E\mbox{]}}
\end{DoxyParamCaption}
)}\hypertarget{ddss__tiled2flat_8c_adb1f9312d77184467236d25bc73f21b0}{}\label{ddss__tiled2flat_8c_adb1f9312d77184467236d25bc73f21b0}
ddss\+\_\+dtiled2flat\+\_\+nb\+: Performs the change of the data layout from tile layout to flat layout according to row-\/major order in a non-\/blocking execution mode.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em M} & int. M specifies the number of rows of the flat matrix.\\
\hline
\mbox{\tt in}  & {\em N} & int. N specifies the number of columns of the flat matrix.\\
\hline
\mbox{\tt in,out}  & {\em A} & double $\ast$. A is a pointer to the flat matrix.\\
\hline
\mbox{\tt in}  & {\em L\+DA} & int. L\+DA specifies the number of columns ( row-\/major order ) of matrix A.\\
\hline
\mbox{\tt in}  & {\em MT} & int. MT specifies the number of rows of the matrix T\+I\+L\+E\+\_\+A.\\
\hline
\mbox{\tt in}  & {\em NT} & int. NT specifies the number of columns of the matrix T\+I\+L\+E\+\_\+A.\\
\hline
\mbox{\tt in}  & {\em T\+I\+L\+E\+\_\+A} & double $\ast$. T\+I\+L\+E\+\_\+A is a pointer to the tile matrix.\\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
\hyperlink{ddss__tiled2flat_8c_a7f57f81b35bf76a41998f387c9afd541}{ddss\+\_\+dscatter\+\_\+tile} 

\hyperlink{lass_8h_a931442adba78807015ff9a076fb2ae49}{ddss\+\_\+tile\+\_\+size} 
\end{DoxySeeAlso}


Definition at line 142 of file ddss\+\_\+tiled2flat.\+c.



References ddss\+\_\+dscatter\+\_\+tile().



Referenced by kdnpgesv().


\begin{DoxyCode}
144 \{
145 
146     \textcolor{comment}{// Local variables}
147     \textcolor{keywordtype}{int} m, n;
148 
149     \textcolor{keywordflow}{for} ( m = 0; m < MT; m++ )
150     \{
151         \textcolor{keywordflow}{for} ( n = 0; n < NT; n++ )
152         \{
153 \textcolor{preprocessor}{            #pragma oss task inout(TILE\_A[m][n]) \(\backslash\)}
154 \textcolor{preprocessor}{            label( dtiled2flat)}
155             \{
156                 \hyperlink{ddss__tiled2flat_8c_a7f57f81b35bf76a41998f387c9afd541}{ddss\_dscatter\_tile}( M, N, 
157                     &A[m * TILE\_SIZE * N + n * TILE\_SIZE], LDA, 
158                     TILE\_A[m][n], m, n );
159             \}
160         \}
161     \}
162 
163 \}
\end{DoxyCode}
