Developer Reference for Intel® oneAPI Math Kernel Library for C
?tpsv
Solves a system of linear equations whose coefficients are in a triangular packed matrix.
Syntax
void cblas_stpsv(const CBLAS_LAYOUT Layout, const CBLAS_UPLO uplo,
const CBLAS_TRANSPOSE trans, const CBLAS_DIAG diag, const MKL_INT n,
const float *ap, float *x, const MKL_INT incx);
void cblas_dtpsv(const CBLAS_LAYOUT Layout, const CBLAS_UPLO uplo,
const CBLAS_TRANSPOSE trans, const CBLAS_DIAG diag, const MKL_INT n,
const double *ap, double *x, const MKL_INT incx);
void cblas_ctpsv(const CBLAS_LAYOUT Layout, const CBLAS_UPLO uplo,
const CBLAS_TRANSPOSE trans, const CBLAS_DIAG diag, const MKL_INT n,
const void *ap, void *x, const MKL_INT incx);
void cblas_ztpsv(const CBLAS_LAYOUT Layout, const CBLAS_UPLO uplo,
const CBLAS_TRANSPOSE trans, const CBLAS_DIAG diag, const MKL_INT n,
const void *ap, void *x, const MKL_INT incx);
Include Files
mkl.h
Description
The ?tpsv routines solve one of the following systems of equations
A*x = b , or A'*x = b , or conjg(A')*x = b ,
where:
b and x are n -element vectors,
A is an n -by- n unit, or non-unit, upper or lower triangular matrix, supplied in packed form.
This routine does not test for singularity or near-singularity.
Such tests must be performed before calling this routine.
Input Parameters
- Layout
-
Specifies whether two-dimensional array storage is row-major ( CblasRowMajor ) or column-major ( CblasColMajor ).
uplo
Specifies whether the matrix A is upper or lower triangular:
if uplo = CblasLower , then the matrix is low triangular.
trans
Specifies the system of equations:
if trans = CblasNoTrans , then A*x = b ;
if trans = CblasTrans , then A'*x = b ;
if trans = CblasConjTrans , then conjg(A')*x = b .
diag
Specifies whether the matrix A is unit triangular:
if diag = CblasUnit then the matrix is unit triangular;
if diag = CblasNonUnit , then the matrix is not unit triangular.
- n
-
Specifies the order of the matrix A . The value of n must be at least zero.
- ap
-
REAL for stpsv DOUBLE PRECISION for dtpsv COMPLEX for ctpsv DOUBLE COMPLEX for ztpsv Array, size at least ((n*(n + 1))/2) . For Layout = CblasColMajor :
Before entry with uplo = CblasUpper , the array ap must contain the upper triangular part of the triangular matrix packed sequentially, column-by-column, so that ap[0] contains A1, 1 , ap[1] and ap[2] contain A1, 2 and A2, 2 respectively, and so on.
Before entry with uplo = CblasLower , the array ap must contain the lower triangular part of the triangular matrix packed sequentially, column-by-column, so that ap[0] contains A1, 1 , ap[1] and ap[2] contain A2, 1 and A3, 1 respectively, and so on.
For Layout = CblasRowMajor : Before entry with uplo = CblasUpper , the array ap must contain the upper triangular part of the triangular matrix packed sequentially, row-by-row, ap[0] contains A1, 1 , ap[1] and ap[2] contain A1, 2 and A1, 3 respectively, and so on. Before entry with uplo = CblasLower , the array ap must contain the lower triangular part of the triangular matrix packed sequentially, row-by-row, so that ap[0] contains A1, 1 , ap[1] and ap[2] contain A2, 1 and A2, 2 respectively, and so on.
When diag = CblasUnit , the diagonal elements of a are not referenced, but are assumed to be unity.
- x
-
REAL for stpsv DOUBLE PRECISION for dtpsv COMPLEX for ctpsv DOUBLE COMPLEX for ztpsv Array, size at least (1 + (n - 1)*abs(incx)) . Before entry, the incremented array x must contain the n -element right-hand side vector b .
- incx
-
Specifies the increment for the elements of x .
The value of incx must not be zero.
Output Parameters
- x
-
Overwritten with the solution vector x .
BLAS 95 Interface Notes
There exist FORTRAN 77 and FORTRAN 95 interfaces for this routine. See the Intel® oneMKL Fortran Developer Reference for details.