MAGMA  2.3.0 Matrix Algebra for GPU and Multicore Architectures
trsv: Triangular matrix-vector solve

$$x = op(A^{-1})\; b$$ More...

## Functions

void magmablas_ctrsv_batched (magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag, magma_int_t n, magmaFloatComplex **A_array, magma_int_t lda, magmaFloatComplex **b_array, magma_int_t incb, magma_int_t batchCount, magma_queue_t queue)
ctrsv solves one of the matrix equations on gpu More...

void magmablas_dtrsv_batched (magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag, magma_int_t n, double **A_array, magma_int_t lda, double **b_array, magma_int_t incb, magma_int_t batchCount, magma_queue_t queue)
dtrsv solves one of the matrix equations on gpu More...

void magmablas_strsv_batched (magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag, magma_int_t n, float **A_array, magma_int_t lda, float **b_array, magma_int_t incb, magma_int_t batchCount, magma_queue_t queue)
strsv solves one of the matrix equations on gpu More...

void magmablas_ztrsv_batched (magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag, magma_int_t n, magmaDoubleComplex **A_array, magma_int_t lda, magmaDoubleComplex **b_array, magma_int_t incb, magma_int_t batchCount, magma_queue_t queue)
ztrsv solves one of the matrix equations on gpu More...

## Detailed Description

$$x = op(A^{-1})\; b$$

## Function Documentation

 void magmablas_ctrsv_batched ( magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag, magma_int_t n, magmaFloatComplex ** A_array, magma_int_t lda, magmaFloatComplex ** b_array, magma_int_t incb, magma_int_t batchCount, magma_queue_t queue )

ctrsv solves one of the matrix equations on gpu

op(A)*x = b,   or
x*op(A) = b,


where alpha is a scalar, X and B are vectors, A is a unit, or non-unit, upper or lower triangular matrix and op(A) is one of

op(A) = A,    or
op(A) = A^T,  or
op(A) = A^H.


The vector x is overwritten on b.

Parameters
 [in] uplo magma_uplo_t. On entry, uplo specifies whether the matrix A is an upper or lower triangular matrix as follows: = MagmaUpper: A is an upper triangular matrix. = MagmaLower: A is a lower triangular matrix. [in] trans magma_trans_t. On entry, trans specifies the form of op(A) to be used in the matrix multiplication as follows: = MagmaNoTrans: op(A) = A. = MagmaTrans: op(A) = A^T. = MagmaConjTrans: op(A) = A^H. [in] diag magma_diag_t. On entry, diag specifies whether or not A is unit triangular as follows: = MagmaUnit: A is assumed to be unit triangular. = MagmaNonUnit: A is not assumed to be unit triangular. [in] n INTEGER. On entry, n N specifies the order of the matrix A. n >= 0. [in] A_array Array of pointers, dimension (batchCount). Each is a COMPLEX array A of dimension ( lda, n ), Before entry with uplo = MagmaUpper, the leading n by n upper triangular part of the array A must contain the upper triangular matrix and the strictly lower triangular part of A is not referenced. Before entry with uplo = MagmaLower, the leading n by n lower triangular part of the array A must contain the lower triangular matrix and the strictly upper triangular part of A is not referenced. Note that when diag = MagmaUnit, the diagonal elements of A are not referenced either, but are assumed to be unity. [in] lda INTEGER. On entry, lda specifies the first dimension of A. lda >= max( 1, n ). [in] b_array Array of pointers, dimension (batchCount). Each is a COMPLEX array of dimension n On exit, b is overwritten with the solution vector X. [in] incb INTEGER. On entry, incb specifies the increment for the elements of b. incb must not be zero. Unchanged on exit. [in] batchCount INTEGER The number of matrices to operate on. [in] queue magma_queue_t Queue to execute in.
 void magmablas_dtrsv_batched ( magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag, magma_int_t n, double ** A_array, magma_int_t lda, double ** b_array, magma_int_t incb, magma_int_t batchCount, magma_queue_t queue )

dtrsv solves one of the matrix equations on gpu

op(A)*x = b,   or
x*op(A) = b,


where alpha is a scalar, X and B are vectors, A is a unit, or non-unit, upper or lower triangular matrix and op(A) is one of

op(A) = A,    or
op(A) = A^T,  or
op(A) = A^H.


The vector x is overwritten on b.

Parameters
 [in] uplo magma_uplo_t. On entry, uplo specifies whether the matrix A is an upper or lower triangular matrix as follows: = MagmaUpper: A is an upper triangular matrix. = MagmaLower: A is a lower triangular matrix. [in] trans magma_trans_t. On entry, trans specifies the form of op(A) to be used in the matrix multiplication as follows: = MagmaNoTrans: op(A) = A. = MagmaTrans: op(A) = A^T. = MagmaConjTrans: op(A) = A^H. [in] diag magma_diag_t. On entry, diag specifies whether or not A is unit triangular as follows: = MagmaUnit: A is assumed to be unit triangular. = MagmaNonUnit: A is not assumed to be unit triangular. [in] n INTEGER. On entry, n N specifies the order of the matrix A. n >= 0. [in] A_array Array of pointers, dimension (batchCount). Each is a DOUBLE PRECISION array A of dimension ( lda, n ), Before entry with uplo = MagmaUpper, the leading n by n upper triangular part of the array A must contain the upper triangular matrix and the strictly lower triangular part of A is not referenced. Before entry with uplo = MagmaLower, the leading n by n lower triangular part of the array A must contain the lower triangular matrix and the strictly upper triangular part of A is not referenced. Note that when diag = MagmaUnit, the diagonal elements of A are not referenced either, but are assumed to be unity. [in] lda INTEGER. On entry, lda specifies the first dimension of A. lda >= max( 1, n ). [in] b_array Array of pointers, dimension (batchCount). Each is a DOUBLE PRECISION array of dimension n On exit, b is overwritten with the solution vector X. [in] incb INTEGER. On entry, incb specifies the increment for the elements of b. incb must not be zero. Unchanged on exit. [in] batchCount INTEGER The number of matrices to operate on. [in] queue magma_queue_t Queue to execute in.
 void magmablas_strsv_batched ( magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag, magma_int_t n, float ** A_array, magma_int_t lda, float ** b_array, magma_int_t incb, magma_int_t batchCount, magma_queue_t queue )

strsv solves one of the matrix equations on gpu

op(A)*x = b,   or
x*op(A) = b,


where alpha is a scalar, X and B are vectors, A is a unit, or non-unit, upper or lower triangular matrix and op(A) is one of

op(A) = A,    or
op(A) = A^T,  or
op(A) = A^H.


The vector x is overwritten on b.

Parameters
 [in] uplo magma_uplo_t. On entry, uplo specifies whether the matrix A is an upper or lower triangular matrix as follows: = MagmaUpper: A is an upper triangular matrix. = MagmaLower: A is a lower triangular matrix. [in] trans magma_trans_t. On entry, trans specifies the form of op(A) to be used in the matrix multiplication as follows: = MagmaNoTrans: op(A) = A. = MagmaTrans: op(A) = A^T. = MagmaConjTrans: op(A) = A^H. [in] diag magma_diag_t. On entry, diag specifies whether or not A is unit triangular as follows: = MagmaUnit: A is assumed to be unit triangular. = MagmaNonUnit: A is not assumed to be unit triangular. [in] n INTEGER. On entry, n N specifies the order of the matrix A. n >= 0. [in] A_array Array of pointers, dimension (batchCount). Each is a REAL array A of dimension ( lda, n ), Before entry with uplo = MagmaUpper, the leading n by n upper triangular part of the array A must contain the upper triangular matrix and the strictly lower triangular part of A is not referenced. Before entry with uplo = MagmaLower, the leading n by n lower triangular part of the array A must contain the lower triangular matrix and the strictly upper triangular part of A is not referenced. Note that when diag = MagmaUnit, the diagonal elements of A are not referenced either, but are assumed to be unity. [in] lda INTEGER. On entry, lda specifies the first dimension of A. lda >= max( 1, n ). [in] b_array Array of pointers, dimension (batchCount). Each is a REAL array of dimension n On exit, b is overwritten with the solution vector X. [in] incb INTEGER. On entry, incb specifies the increment for the elements of b. incb must not be zero. Unchanged on exit. [in] batchCount INTEGER The number of matrices to operate on. [in] queue magma_queue_t Queue to execute in.
 void magmablas_ztrsv_batched ( magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag, magma_int_t n, magmaDoubleComplex ** A_array, magma_int_t lda, magmaDoubleComplex ** b_array, magma_int_t incb, magma_int_t batchCount, magma_queue_t queue )

ztrsv solves one of the matrix equations on gpu

op(A)*x = b,   or
x*op(A) = b,


where alpha is a scalar, X and B are vectors, A is a unit, or non-unit, upper or lower triangular matrix and op(A) is one of

op(A) = A,    or
op(A) = A^T,  or
op(A) = A^H.


The vector x is overwritten on b.

Parameters
 [in] uplo magma_uplo_t. On entry, uplo specifies whether the matrix A is an upper or lower triangular matrix as follows: = MagmaUpper: A is an upper triangular matrix. = MagmaLower: A is a lower triangular matrix. [in] trans magma_trans_t. On entry, trans specifies the form of op(A) to be used in the matrix multiplication as follows: = MagmaNoTrans: op(A) = A. = MagmaTrans: op(A) = A^T. = MagmaConjTrans: op(A) = A^H. [in] diag magma_diag_t. On entry, diag specifies whether or not A is unit triangular as follows: = MagmaUnit: A is assumed to be unit triangular. = MagmaNonUnit: A is not assumed to be unit triangular. [in] n INTEGER. On entry, n N specifies the order of the matrix A. n >= 0. [in] A_array Array of pointers, dimension (batchCount). Each is a COMPLEX_16 array A of dimension ( lda, n ), Before entry with uplo = MagmaUpper, the leading n by n upper triangular part of the array A must contain the upper triangular matrix and the strictly lower triangular part of A is not referenced. Before entry with uplo = MagmaLower, the leading n by n lower triangular part of the array A must contain the lower triangular matrix and the strictly upper triangular part of A is not referenced. Note that when diag = MagmaUnit, the diagonal elements of A are not referenced either, but are assumed to be unity. [in] lda INTEGER. On entry, lda specifies the first dimension of A. lda >= max( 1, n ). [in] b_array Array of pointers, dimension (batchCount). Each is a COMPLEX_16 array of dimension n On exit, b is overwritten with the solution vector X. [in] incb INTEGER. On entry, incb specifies the increment for the elements of b. incb must not be zero. Unchanged on exit. [in] batchCount INTEGER The number of matrices to operate on. [in] queue magma_queue_t Queue to execute in.