LASs - Linear Algebra Routines on OmpSs 1.0.0 LASs

- Main Page
- Files

- File List
- File Members

ddss_dnpgetrf.c
Go to the documentation of this file.
1 #include "../include/lass.h"
2
3 /**
4 *
5 * @file ddss_dnpgetrf.c
6 *
7 * @brief LASs-DDSs ddss_dnpgetrf routine.
8 *
9 * LASs-DDSs is a software package provided by:
10 * Barcelona Supercomputing Center - Centro Nacional de Supercomputacion
11 *
12 * @author Pedro Valero-Lara pedro.valero@bsc.es
13 * @author Boro Sofranac boro.sofranac@bsc.es
14 * @date 2018-04-06
15 * @reviewer
16 * @modified
17 *
18 **/
19
20 /**
21 *
22 * @ingroup DDSS
23 *
24 * Performs the LU factorization without pivoting of a general M-by-N matrix A:
25 *
26 * A = L * U
27 *
28 * where L is a lower triangular ( lower trapezoidal if M > N ) matrix with
29 * unit diagonal elements and U is an upper triangular ( upper trapezoidal
30 * if M < N ) matrix.
31 *
32 **/
33
34 /**
35 *
36 * @param[in]
37 * M int.
38 * M specifies the number of rows of the matrix A. M >= 0.
39 *
40 * @param[in]
41 * N int.
42 * N specifies the number of columns of the matrix A. N >= 0.
43 *
44 * @param[in,out]
45 * A double *.
46 * A is a pointer to a regular matrix of dimension M-by-N.
47 * On exit, if return value is Success, the matrix A is overwriten by
48 * the factors L and U. The unit diagonal elements of L are not stored.
49 *
50 * @param[in]
51 * LDA int.
52 * LDA specifies the number of columns of A ( row-major order ).
53 * LDA must be at least max( 1, N ).
54 *
55 **/
56
57 /**
58 *
59 * @retval Success successful exit
60 * @retval NoSuccess unsuccessful exit
61 *
62 **/
63
64 /**
65 *
66 * @sa knpdgetrf
67 *
68 **/
69
70 int ddss_dnpgetrf( int M, int N, double *A, int LDA )
71 {
72
73 // Argument checking
74 if ( M < 0 )
75 {
76 fprintf( stderr, "Illegal value of M, in ddss_dnpgetrf code\n" );
77 return NoSuccess;
78 }
79
80 if ( N < 0 )
81 {
82 fprintf( stderr, "Illegal value of N, in ddss_dnpgetrf code\n" );
83 return NoSuccess;
84 }
85
86 if ( LDA < MAX( 1, N ) )
87 {
88 fprintf( stderr, "Illegal value of LDA, in ddss_dnpgetrf code\n" );
89 return NoSuccess;
90 }
91
92 // Qick return
93 if ( MIN( M, N ) == 0 )
94 {
95 return Success;
96 }
97
98 return kdnpgetrf( M, N, A, LDA );
99
100 }
ddss_dnpgetrf
int ddss_dnpgetrf(int M, int N, double *A, int LDA)
Definition: ddss_dnpgetrf.c:70
kdnpgetrf
enum LASS_RETURN kdnpgetrf(int M, int N, double *A, int LDA)
Definition: kdnpgetrf.c:74