cblas_?tpmv
cblas_?tpmv
Computes a matrix-vector product using a triangular packed matrix.
Syntax
void
cblas_stpmv
(
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_dtpmv
(
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_ctpmv
(
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_ztpmv
(
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
?tpmv
routines perform one of the matrix-vector operations defined asx
:= A
*x
x
:= A
'*x
x
:= conjg(A
')*x
where:
x
is an n
-element vector,A
is an n
-by-n
unit, or non-unit, upper or lower triangular matrix, supplied in packed form.Input Parameters
- Layout
- Specifies whether two-dimensional array storage is row-major (CblasRowMajor) or column-major (CblasColMajor).
- uplo
- Specifies whether the matrixAis upper or lower triangular:uplo=CblasUpperif, then the matrix is low triangular.uplo=CblasLower
- trans
- Specifies the operation:if, thentrans=CblasNoTrans;x:=A*xif, thentrans=CblasTrans;x:=A'*xif, thentrans=CblasConjTrans.x:= conjg(A')*x
- diag
- Specifies whether the matrixAis unit triangular:ifthen the matrix is unit triangular;diag=CblasUnitif, then the matrix is not unit triangular.diag=CblasNonUnit
- n
- Specifies the order of the matrixA. The value ofnmust be at least zero.
- ap
- Array, size at least((.n*(n+ 1))/2)ForLayout=CblasColMajor:Before entry with, the arrayuplo=CblasUpperapmust contain the upper triangular matrix packed sequentially, column-by-column, so that respectively, and so on. Before entry withuplo=CblasLower, the arraycontainsap[0]A1, 1,andap[1]containap[2]A1, 2andA2, 2apmust contain the lower triangular matrix packed sequentially, column-by-column, so thatrespectively, and so on. Whencontainsap[0]A1, 1,andap[1]containap[2]A2, 1andA3, 1, the diagonal elements ofdiag=CblasUnitaare not referenced, but are assumed to be unity.ForLayout=CblasRowMajor:Before entry withuplo=CblasUpper, the arrayapmust contain the upper triangular matrix packed sequentially, row-by-row,ap[0]containsA1, 1,ap[1]andap[2]containA1, 2andA1, 3respectively, and so on.Before entry withuplo=CblasLower, the arrayapmust contain the lower triangular matrix packed sequentially, row-by-row, so thatap[0]containsA1, 1,ap[1]andap[2]containA2, 1andA2, 2respectively, and so on.
- x
- Array, size at least(1 + (. Before entry, the incremented arrayn- 1)*abs(incx))xmust contain then-element vectorx.
- incx
- Specifies the increment for the elements ofx.The value ofincxmust not be zero.
Output Parameters
- x
- Overwritten with the transformed vectorx.