LASs - Linear Algebra Routines on OmpSs 1.0.0 LASs

- Main Page
- Files

- File List
- File Members

Functions
ddss_dtpgesv.c File Reference

LASs-DDSs ddss_dtpgesv routine. More...

`#include "../include/lass.h"`
Include dependency graph for ddss_dtpgesv.c:

Go to the source code of this file.

## Functions
int | ddss_dtpgesv (int N, int NRHS, double *A, int LDA, int *IPIV, double *B, int LDB)

## Detailed Description

LASs-DDSs ddss_dtpgesv routine.

LASs-DDSs is a software package provided by: Barcelona Supercomputing Center - Centro Nacional de Supercomputacion

Author
  Pedro Valero-Lara pedro.nosp@m..val.nosp@m.ero@b.nosp@m.sc.e.nosp@m.s

Date
  2018-09-20

Definition in file ddss_dtpgesv.c.

## Function Documentation

int ddss_dtpgesv | ( | int | N,
|  | int | NRHS,
|  | double * | A,
|  | int | LDA,
|  | int * | IPIV,
|  | double * | B,
|  | int | LDB
| ) |  |

Solves a system of linear equations A X = B, where A is a N-by-N general matrix and X and B are N-by-NRHS matrices. The matrix A is factorized using the LU descomposition with tiled-pivoting. The matrix A is descomposed as:

    A = P * L * U

where P is a permutation matrix, L is a lower triangular matrix with unit diagonal elements and U is an upper triangular matrix.

Parameters

  [in] | N | int. N specifies the order of the square matrix A. N >= 0.

NRHS int. NRHS specifies the number of right-hand-sides (number of columns of B). NRHS >= 0.

Parameters

  [in,out] | A | double *. A is a pointer to a regular matrix of dimension N-by-LDA. 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.
  [in] | LDA | int. LDA specifies the number of columns of A ( row-major order ). LDA must be at least max( 1, N ).
  [out] | IPIV | int *. 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.
  [in,out] | B | double *. B is a pointer to a matrix of dimension N by NRHS, which stores the right-hand-sides of the systems of linear equations. (row-major order). On exit, if return value is Success, the matrix B is overwriten by the solution matrix X.
  [in] | LDB | int. LDB specifies the number of columns of B ( row-major order ). LDB must be at least max( 1, NRHS ).

Return values

  Success | successful exit
  NoSuccess | unsuccessful exit

See also
  kdtpgesv

Definition at line 89 of file ddss_dtpgesv.c.

References kdtpgesv().

93 {
94
95 // Argument checking
96 if ( N < 0 )
97 {
98 fprintf( stderr, "Illegal value of N, in ddss_dtpgesv code\n" );
99 return NoSuccess;
100 }
101
102 if ( NRHS < 0 )
103 {
104 fprintf( stderr, "Illegal value of NRHS, in ddss_dtpgesv code\n" );
105 return NoSuccess;
106 }
107
108 if ( LDA < MAX( 1, N ) )
109 {
110 fprintf( stderr, "Illegal value of LDA, in ddss_dtpgesv code\n" );
111 return NoSuccess;
112 }
113
114 if ( LDB < MAX( 1, NRHS ) )
115 {
116 fprintf( stderr, "Illegal value of LDB, in ddss_dtpgesv code\n" );
117 return NoSuccess;
118 }
119
120 // Quick return
121 if ( MAX( N, 0 ) == 0 || MAX( NRHS, 0 ) == 0 )
122 {
123 return Success;
124 }
125
126 return kdtpgesv( N, NRHS, A, LDA, IPIV, B, LDB );
127
128 }
kdtpgesv
enum LASS_RETURN kdtpgesv(int N, int NRHS, double *A, int LDA, int *IPIV, double *B, int LDB)
Definition: kdtpgesv.c:91