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


L\+A\+Ss-\/\+D\+D\+Ss ddss\+\_\+dtpgetrf routine.  


{\ttfamily \#include \char`\"{}../include/lass.\+h\char`\"{}}\\*
Include dependency graph for ddss\+\_\+dtpgetrf.\+c\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{ddss__dtpgetrf_8c__incl}
\end{center}
\end{figure}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
int \hyperlink{ddss__dtpgetrf_8c_a9dbc6a9cef83bf50e0163fe4a2689f9a}{ddss\+\_\+dtpgetrf} (int M, int N, double $\ast$A, int L\+DA, int $\ast$I\+P\+IV)
\end{DoxyCompactItemize}


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

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} 

Boro Sofranac \href{mailto:boro.sofranac@bsc.es}{\tt boro.\+sofranac@bsc.\+es} 
\end{DoxyAuthor}
\begin{DoxyDate}{Date}
2018-\/04-\/08   2018-\/05-\/08 
\end{DoxyDate}


\subsection{Function Documentation}
\index{ddss\+\_\+dtpgetrf.\+c@{ddss\+\_\+dtpgetrf.\+c}!ddss\+\_\+dtpgetrf@{ddss\+\_\+dtpgetrf}}
\index{ddss\+\_\+dtpgetrf@{ddss\+\_\+dtpgetrf}!ddss\+\_\+dtpgetrf.\+c@{ddss\+\_\+dtpgetrf.\+c}}
\subsubsection[{\texorpdfstring{ddss\+\_\+dtpgetrf(int M, int N, double $\ast$\+A, int L\+D\+A, int $\ast$\+I\+P\+I\+V)}{ddss_dtpgetrf(int M, int N, double *A, int LDA, int *IPIV)}}]{\setlength{\rightskip}{0pt plus 5cm}int ddss\+\_\+dtpgetrf (
\begin{DoxyParamCaption}
\item[{int}]{M, }
\item[{int}]{N, }
\item[{double $\ast$}]{A, }
\item[{int}]{L\+DA, }
\item[{int $\ast$}]{I\+P\+IV}
\end{DoxyParamCaption}
)}\hypertarget{ddss__dtpgetrf_8c_a9dbc6a9cef83bf50e0163fe4a2689f9a}{}\label{ddss__dtpgetrf_8c_a9dbc6a9cef83bf50e0163fe4a2689f9a}
Performs the LU factorization with tiled pivoting ( row interchanges ) of a general M-\/by-\/N matrix A\+: \begin{DoxyVerb}A = P * L * U
\end{DoxyVerb}


where P is a permutation matrix, L is a lower triangular ( lower trapezoidal if M $>$ N ) matrix with unit diagonal elements and U is an upper triangular ( upper trapezoidal if M $<$ N ) matrix.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em M} & int. M specifies the number of rows of the matrix A. M $>$= 0.\\
\hline
\mbox{\tt in}  & {\em N} & int. N specifies the number of columns of the matrix A. N $>$= 0.\\
\hline
\mbox{\tt in,out}  & {\em A} & double $\ast$. A is a pointer to a regular matrix of dimension M-\/by-\/N. On exit, if return value is Success, the matrix A is overwriten by the factors L and U. The unit diagonal elements of L are not stored.\\
\hline
\mbox{\tt in}  & {\em L\+DA} & int. L\+DA specifies the number of columns of A ( row-\/major order ). L\+DA must be at least max( 1, N ).\\
\hline
\mbox{\tt out}  & {\em I\+P\+IV} & int $\ast$. ipiv is a pointer to an array of dimesion at least max( 1, min ( M, N ) ). ipiv( i ) = j, 1 $<$= i $<$= min( M, N ) implies that rows i and j have been interchanged.\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em Success} & successful exit \\
\hline
{\em No\+Success} & unsuccessful exit\\
\hline
\end{DoxyRetVals}
\begin{DoxySeeAlso}{See also}
\hyperlink{lass_8h_a78d204c4ad618df9e1d81e0668bc2149}{kdtpgetrf} 
\end{DoxySeeAlso}


Definition at line 77 of file ddss\+\_\+dtpgetrf.\+c.



References kdtpgetrf().


\begin{DoxyCode}
78 \{
79 
80     \textcolor{comment}{// Argument checking}
81     \textcolor{keywordflow}{if} ( M < 0 )
82     \{
83         fprintf( stderr, \textcolor{stringliteral}{"Illegal value of M, in ddss\_dtpgetrf code\(\backslash\)n"} );
84         \textcolor{keywordflow}{return} NoSuccess;
85     \}
86 
87     \textcolor{keywordflow}{if} ( N < 0 )
88     \{
89         fprintf( stderr, \textcolor{stringliteral}{"Illegal value of N, in ddss\_dtpgetrf code\(\backslash\)n"} );
90         \textcolor{keywordflow}{return} NoSuccess;
91     \}
92 
93     \textcolor{keywordflow}{if} ( LDA < MAX( 1, N ) )
94     \{
95         fprintf( stderr, \textcolor{stringliteral}{"Illegal value of LDA, in ddss\_dtpgetrf code\(\backslash\)n"} );
96         \textcolor{keywordflow}{return} NoSuccess;
97     \}
98 
99     \textcolor{comment}{// Qick return}
100     \textcolor{keywordflow}{if} ( MIN( M, N ) == 0 )
101     \{
102         \textcolor{keywordflow}{return} Success;
103     \}
104 
105     \textcolor{keywordflow}{return} \hyperlink{kdtpgetrf_8c_aa6fc273b5c4ac8c9875d3f398763fab9}{kdtpgetrf}( M, N, A, LDA, IPIV );
106 
107 \} 
\end{DoxyCode}
