LAMA
lama::CUDALAPACK Class Reference

#include <CUDALAPACK.hpp>

Public Member Functions

template<>
void laswp (const enum CBLAS_ORDER order, const IndexType n, float *A_d, const IndexType lda, const IndexType k1, const IndexType k2, const IndexType *ipiv_h, const IndexType incx, SyncToken *syncToken)
template<>
void laswp (const enum CBLAS_ORDER order, const IndexType n, double *A_d, const IndexType lda, const IndexType k1, const IndexType k2, const IndexType *ipiv_h, const IndexType incx, SyncToken *syncToken)

Static Public Member Functions

template<typename T >
static void laswp (const enum CBLAS_ORDER order, const IndexType n, T *A, const IndexType lda, const IndexType k1, const IndexType k2, const IndexType *ipiv, const IndexType incx, SyncToken *syncToken)
 lamch_cpu returns the specified machine parameters.

Member Function Documentation

template<>
void lama::CUDALAPACK::laswp ( const enum CBLAS_ORDER  order,
const IndexType  n,
float *  A_d,
const IndexType  lda,
const IndexType  k1,
const IndexType  k2,
const IndexType ipiv_h,
const IndexType  incx,
SyncToken syncToken 
)
template<>
void lama::CUDALAPACK::laswp ( const enum CBLAS_ORDER  order,
const IndexType  n,
double *  A_d,
const IndexType  lda,
const IndexType  k1,
const IndexType  k2,
const IndexType ipiv_h,
const IndexType  incx,
SyncToken syncToken 
)
template<typename T >
static void lama::CUDALAPACK::laswp ( const enum CBLAS_ORDER  order,
const IndexType  n,
T *  A,
const IndexType  lda,
const IndexType  k1,
const IndexType  k2,
const IndexType ipiv,
const IndexType  incx,
SyncToken syncToken 
) [static]

lamch_cpu returns the specified machine parameters.

Parameters:
[in]paramThe machine parameter to be returned. The following values will return the respective parameter results. CblasEps The relative machine precision CblasSfmin The safe minimum, so that 1/sfmin does not overflow CblasBase The base of the machine CblasEpsNBase The product of eps and base CblasT The number of digits in the mantisse CblasMd 1.0 when rounding occurs in addition, 0.0 otherwise CblasEmin The minimum exponent before (gradual) underflow CblasRmin The underflow_threshold - base**(emin-1) CblasEmax The largest exponent before overflow CblasRmax The overflow_threshold - (base**emax)*(1-eps)
Returns:
The respective value. getrf_cpu computes the LU factorization of a general m-by-n matrix A in floating point single precision as A = P*L*U, where P is a permutation matrix, L is lower triangular with unit diagonal elements (lower trapezoidal if m > n) and U is upper triangular (upper trapezoidal if m < n). The routine uses partial pivoting, with row interchanges. L and U will be stored within A whereby the diagonal elements of L will not be stored.
Parameters:
[in]mNumber of rows of matrix A; m must be at least zero. m specifies, how many rows of A will be touched by this function.
[in]nNumber of columns of matrix A; n must be at least zero. n specifies, how many columns of A will be touched by this function.
[in,out]aOn input, a is holding the array, containing the matrix A. On output it will be overwritten by L and U, whereby the diagonal elements of L will not be stored.
[in]ldaThe first dimension of array a. lda specifies the actual number of rows of A. lda is used to compute the position of the next column, i.e. if position (r,c) is going to be accessed its position will be computed by (c*lda + r).
[in,out]ipivThe array holding the permutation of the matrix. Its size must be at least min(m,n). It contains the info that row i has been changed with ipiv[i]. ipiv is assumed to be stored in C-Style, i.e the values, representing the indexes of the matrix are assumed to be starting with zero and ending with m-1. It will also leave with this assumption, but in between, it is first incremented and afterwards decremented, to fit the Fortran interface.
Returns:
info If info=0, the execution is successful. If info = -i, the i-th parameter had an illegal value. If info = i, uii is 0. The factorization has been completed, but U is exactly singular. Division by 0 will occur if you use the factor U for solving a system of linear equations. trtrs solves the following equation system: op(A)*X = B where op(A) is either A, AT or AH; and B is a matrix of right hand sides and will contain the solution of all equations on output.
Parameters:
[in]orderSpecifies, whether the matrix is stored in column major order (i.e. CblasColMajor) or in row major order (i.e. CblasRowMajor).
[in]uploSpecifies, whether matrix A is upper triangular (i.e. CblasUpper) or lower triangular (i.e. CblasLower).
[in]transSpecifies op(A). if trans == CblasNoTrans, op(A) = A; if trans == CblasTrans, op(A) = AT; if trans == CblasConjTrans, op(A) = AH;
[in]diagSpecifies, whether the triangualr matrix A is a unit triangular matrix, i.e. the diagonal elements of A are one. if diag == CblasNonUnit, the diagonal elements of A are not assumed to be one; if diag == CblasUnit, the diagonal elements of A are assumed to be one and therefor not referenced;
[in]nThe number of columns of A and rows of B; n must be at least 0.
[in]nrhsThe number of columns of B; nrhs must be at least 0.
[in]AThe array containing matrix A.
[in]ldaThe first dimension of A, i.e. the actual number of rows of A.
[in,out]BOn input B is the array holding the right hand sides of the equations, on output, it will hold the solution for each equation system.
[in]ldbThe first dimension of B, i.e. the actual number of columns of B. tptrs solves the following equation system: op(A)*X = B where op(A) is either A, AT or AH; and B is a matrix of right hand sides and will contain the solution of all equations on output.
[in]orderSpecifies, whether the matrix is stored in column major order (i.e. CblasColMajor) or in row major order (i.e. CblasRowMajor).
[in]uploSpecifies, whether matrix A is upper triangular (i.e. CblasUpper) or lower triangular (i.e. CblasLower).
[in]transSpecifies op(A). if trans == CblasNoTrans, op(A) = A; if trans == CblasTrans, op(A) = AT; if trans == CblasConjTrans, op(A) = AH;
[in]diagSpecifies, whether the triangualr matrix A is a unit triangular matrix, i.e. the diagonal elements of A are one. if diag == CblasNonUnit, the diagonal elements of A are not assumed to be one; if diag == CblasUnit, the diagonal elements of A are assumed to be one and therefor not referenced;
[in]nThe number of columns of A and rows of B; n must be at least 0.
[in]nrhsThe number of columns of B; nrhs must be at least 0.
[in]APThe array containing matrix A.
[in,out]BOn input B is the array holding the right hand sides of the equations, on output, it will hold the solution for each equation system.
[in]ldbThe first dimension of B, i.e. the actual number of columns of B. laswp_cpu performs a series of row interchanges on the matrix A. One row interchange is initiated for each of rows k1 through k2 of A.
[in]orderSpecifies, whether the matrix is stored in column major order (i.e. CblasColMajor) or in row major order (i.e. CblasRowMajor). Since a translation of the data would be too expensiv, if it was stored in row major order, the BLAS level1 function SSWAP will be called instead. The beginning column of the vector in A will then be LDA-N.
[in]nThe number of columns of the matrix A.
[in,out]AArray of dimension (LDA,N). On entry, the matrix of column dimension N to which the row interchanges will be applied. On exit, the permuted matrix.
[in]ldaIf the matrix is stored in column major order, lda specifies the actual number of rows of A. If else the matrix is stored in row major order, lda specifies the actual number of columns of A.
[in]k1The first element of ipiv for which a row interchange will be done.
[in]k2The last element of ipiv for which a row interchange will be done.
[in]ipivArray of dimension (k2*abs(incx)). The vector of pivot indices. Only the elements in positions k1 through k2 of ipiv are accessed. ipiv(k) = l implies rows k and l are to be interchanged.
[in]incxThe increment between successive values of ipiv. If ipiv is negative, the pivots are applied in reverse order.

The documentation for this class was generated from the following files: