ReproBLAS
|
binnedBLAS.h defines BLAS Methods that operate on binned types. More...
Go to the source code of this file.
Functions | |
float | binnedBLAS_samax (const int N, const float *X, const int incX) |
Find maximum absolute value in vector of single precision. More... | |
double | binnedBLAS_damax (const int N, const double *X, const int incX) |
Find maximum absolute value in vector of double precision. More... | |
void | binnedBLAS_camax_sub (const int N, const void *X, const int incX, void *amax) |
Find maximum magnitude in vector of complex single precision. More... | |
void | binnedBLAS_zamax_sub (const int N, const void *X, const int incX, void *amax) |
Find maximum magnitude in vector of complex double precision. More... | |
float | binnedBLAS_samaxm (const int N, const float *X, const int incX, const float *Y, const int incY) |
Find maximum absolute value pairwise product between vectors of single precision. More... | |
double | binnedBLAS_damaxm (const int N, const double *X, const int incX, const double *Y, const int incY) |
Find maximum absolute value pairwise product between vectors of double precision. More... | |
void | binnedBLAS_camaxm_sub (const int N, const void *X, const int incX, const void *Y, const int incY, void *amaxm) |
Find maximum magnitude pairwise product between vectors of complex single precision. More... | |
void | binnedBLAS_zamaxm_sub (const int N, const void *X, const int incX, const void *Y, const int incY, void *amaxm) |
Find maximum magnitude pairwise product between vectors of complex double precision. More... | |
void | binnedBLAS_dbdsum (const int fold, const int N, const double *X, const int incX, double_binned *Y) |
Add to binned double precision Y the sum of double precision vector X. More... | |
void | binnedBLAS_dmdsum (const int fold, const int N, const double *X, const int incX, double *priY, const int incpriY, double *carY, const int inccarY) |
Add to manually specified binned double precision Y the sum of double precision vector X. More... | |
void | binnedBLAS_dbdasum (const int fold, const int N, const double *X, const int incX, double_binned *Y) |
Add to binned double precision Y the absolute sum of double precision vector X. More... | |
void | binnedBLAS_dmdasum (const int fold, const int N, const double *X, const int incX, double *priY, const int incpriY, double *carY, const int inccarY) |
Add to manually specified binned double precision Y the absolute sum of double precision vector X. More... | |
double | binnedBLAS_dbdssq (const int fold, const int N, const double *X, const int incX, const double scaleY, double_binned *Y) |
Add to scaled binned double precision Y the scaled sum of squares of elements of double precision vector X. More... | |
double | binnedBLAS_dmdssq (const int fold, const int N, const double *X, const int incX, const double scaleY, double *priY, const int incpriY, double *carY, const int inccarY) |
Add to scaled manually specified binned double precision Y the scaled sum of squares of elements of double precision vector X. More... | |
void | binnedBLAS_dbddot (const int fold, const int N, const double *X, const int incX, const double *Y, const int incY, double_binned *Z) |
Add to binned double precision Z the dot product of double precision vectors X and Y. More... | |
void | binnedBLAS_dmddot (const int fold, const int N, const double *X, const int incX, const double *Y, const int incY, double *manZ, const int incmanZ, double *carZ, const int inccarZ) |
Add to manually specified binned double precision Z the dot product of double precision vectors X and Y. More... | |
void | binnedBLAS_zbzsum (const int fold, const int N, const void *X, const int incX, double_binned *Y) |
Add to binned complex double precision Y the sum of complex double precision vector X. More... | |
void | binnedBLAS_zmzsum (const int fold, const int N, const void *X, const int incX, double *priY, const int incpriY, double *carY, const int inccarY) |
Add to manually specified binned complex double precision Y the sum of complex double precision vector X. More... | |
void | binnedBLAS_dbzasum (const int fold, const int N, const void *X, const int incX, double_binned *Y) |
Add to binned double precision Y the absolute sum of complex double precision vector X. More... | |
void | binnedBLAS_dmzasum (const int fold, const int N, const void *X, const int incX, double *priY, const int incpriY, double *carY, const int inccarY) |
Add to manually specified binned double precision Y the absolute sum of complex double precision vector X. More... | |
double | binnedBLAS_dbzssq (const int fold, const int N, const void *X, const int incX, const double scaleY, double_binned *Y) |
Add to scaled binned double precision Y the scaled sum of squares of elements of complex double precision vector X. More... | |
double | binnedBLAS_dmzssq (const int fold, const int N, const void *X, const int incX, const double scaleY, double *priY, const int incpriY, double *carY, const int inccarY) |
Add to scaled manually specified binned double precision Y the scaled sum of squares of elements of complex double precision vector X. More... | |
void | binnedBLAS_zbzdotu (const int fold, const int N, const void *X, const int incX, const void *Y, const int incY, double_binned *Z) |
Add to binned complex double precision Z the unconjugated dot product of complex double precision vectors X and Y. More... | |
void | binnedBLAS_zmzdotu (const int fold, const int N, const void *X, const int incX, const void *Y, const int incY, double *manZ, const int incmanZ, double *carZ, const int inccarZ) |
Add to manually specified binned complex double precision Z the unconjugated dot product of complex double precision vectors X and Y. More... | |
void | binnedBLAS_zbzdotc (const int fold, const int N, const void *X, const int incX, const void *Y, const int incY, double_binned *Z) |
Add to binned complex double precision Z the conjugated dot product of complex double precision vectors X and Y. More... | |
void | binnedBLAS_zmzdotc (const int fold, const int N, const void *X, const int incX, const void *Y, const int incY, double *manZ, const int incmanZ, double *carZ, const int inccarZ) |
Add to manually specified binned complex double precision Z the conjugated dot product of complex double precision vectors X and Y. More... | |
void | binnedBLAS_sbssum (const int fold, const int N, const float *X, const int incX, float_binned *Y) |
Add to binned single precision Y the sum of single precision vector X. More... | |
void | binnedBLAS_smssum (const int fold, const int N, const float *X, const int incX, float *priY, const int incpriY, float *carY, const int inccarY) |
Add to manually specified binned single precision Y the sum of single precision vector X. More... | |
void | binnedBLAS_sbsasum (const int fold, const int N, const float *X, const int incX, float_binned *Y) |
Add to binned single precision Y the absolute sum of single precision vector X. More... | |
void | binnedBLAS_smsasum (const int fold, const int N, const float *X, const int incX, float *priY, const int incpriY, float *carY, const int inccarY) |
Add to manually specified binned single precision Y the absolute sum of double precision vector X. More... | |
float | binnedBLAS_sbsssq (const int fold, const int N, const float *X, const int incX, const float scaleY, float_binned *Y) |
Add to scaled binned single precision Y the scaled sum of squares of elements of single precision vector X. More... | |
float | binnedBLAS_smsssq (const int fold, const int N, const float *X, const int incX, const float scaleY, float *priY, const int incpriY, float *carY, const int inccarY) |
Add to scaled manually specified binned single precision Y the scaled sum of squares of elements of single precision vector X. More... | |
void | binnedBLAS_sbsdot (const int fold, const int N, const float *X, const int incX, const float *Y, const int incY, float_binned *Z) |
Add to binned single precision Z the dot product of single precision vectors X and Y. More... | |
void | binnedBLAS_smsdot (const int fold, const int N, const float *X, const int incX, const float *Y, const int incY, float *manZ, const int incmanZ, float *carZ, const int inccarZ) |
Add to manually specified binned single precision Z the dot product of single precision vectors X and Y. More... | |
void | binnedBLAS_cbcsum (const int fold, const int N, const void *X, const int incX, float_binned *Y) |
Add to binned complex single precision Y the sum of complex single precision vector X. More... | |
void | binnedBLAS_cmcsum (const int fold, const int N, const void *X, const int incX, float *priY, const int incpriY, float *carY, const int inccarY) |
Add to manually specified binned complex single precision Y the sum of complex single precision vector X. More... | |
void | binnedBLAS_sbcasum (const int fold, const int N, const void *X, const int incX, float_binned *Y) |
Add to binned single precision Y the absolute sum of complex single precision vector X. More... | |
void | binnedBLAS_smcasum (const int fold, const int N, const void *X, const int incX, float *priY, const int incpriY, float *carY, const int inccarY) |
Add to manually specified binned single precision Y the absolute sum of complex single precision vector X. More... | |
float | binnedBLAS_sbcssq (const int fold, const int N, const void *X, const int incX, const float scaleY, float_binned *Y) |
Add to scaled binned single precision Y the scaled sum of squares of elements of complex single precision vector X. More... | |
float | binnedBLAS_smcssq (const int fold, const int N, const void *X, const int incX, const float scaleY, float *priY, const int incpriY, float *carY, const int inccarY) |
Add to scaled manually specified binned single precision Y the scaled sum of squares of elements of complex single precision vector X. More... | |
void | binnedBLAS_cbcdotu (const int fold, const int N, const void *X, const int incX, const void *Y, const int incY, float_binned *Z) |
Add to binned complex single precision Z the unconjugated dot product of complex single precision vectors X and Y. More... | |
void | binnedBLAS_cmcdotu (const int fold, const int N, const void *X, const int incX, const void *Y, const int incY, float *manZ, const int incmanZ, float *carZ, const int inccarZ) |
Add to manually specified binned complex single precision Z the unconjugated dot product of complex single precision vectors X and Y. More... | |
void | binnedBLAS_cbcdotc (const int fold, const int N, const void *X, const int incX, const void *Y, const int incY, float_binned *Z) |
Add to binned complex single precision Z the conjugated dot product of complex single precision vectors X and Y. More... | |
void | binnedBLAS_cmcdotc (const int fold, const int N, const void *X, const int incX, const void *Y, const int incY, float *manZ, const int incmanZ, float *carZ, const int inccarZ) |
Add to manually specified binned complex single precision Z the conjugated dot product of complex single precision vectors X and Y. More... | |
void | binnedBLAS_dbdgemv (const int fold, const char Order, const char TransA, const int M, const int N, const double alpha, const double *A, const int lda, const double *X, const int incX, double_binned *Y, const int incY) |
Add to binned double precision vector Y the matrix-vector product of double precision matrix A and double precision vector X. More... | |
void | binnedBLAS_dbdgemm (const int fold, const char Order, const char TransA, const char TransB, const int M, const int N, const int K, const double alpha, const double *A, const int lda, const double *B, const int ldb, double_binned *C, const int ldc) |
Add to binned double precision matrix C the matrix-matrix product of double precision matrices A and B. More... | |
void | binnedBLAS_sbsgemv (const int fold, const char Order, const char TransA, const int M, const int N, const float alpha, const float *A, const int lda, const float *X, const int incX, float_binned *Y, const int incY) |
Add to binned single precision vector Y the matrix-vector product of single precision matrix A and single precision vector X. More... | |
void | binnedBLAS_sbsgemm (const int fold, const char Order, const char TransA, const char TransB, const int M, const int N, const int K, const float alpha, const float *A, const int lda, const float *B, const int ldb, float_binned *C, const int ldc) |
Add to binned single precision matrix C the matrix-matrix product of single precision matrices A and B. More... | |
void | binnedBLAS_zbzgemv (const int fold, const char Order, const char TransA, const int M, const int N, const void *alpha, const void *A, const int lda, const void *X, const int incX, double_complex_binned *Y, const int incY) |
Add to binned complex double precision vector Y the matrix-vector product of complex double precision matrix A and complex double precision vector X. More... | |
void | binnedBLAS_zbzgemm (const int fold, const char Order, const char TransA, const char TransB, const int M, const int N, const int K, const void *alpha, const void *A, const int lda, const void *B, const int ldb, double_complex_binned *C, const int ldc) |
Add to binned complex double precision matrix C the matrix-matrix product of complex double precision matrices A and B. More... | |
void | binnedBLAS_cbcgemv (const int fold, const char Order, const char TransA, const int M, const int N, const void *alpha, const void *A, const int lda, const void *X, const int incX, float_complex_binned *Y, const int incY) |
Add to binned complex single precision vector Y the matrix-vector product of complex single precision matrix A and complex single precision vector X. More... | |
void | binnedBLAS_cbcgemm (const int fold, const char Order, const char TransA, const char TransB, const int M, const int N, const int K, const void *alpha, const void *A, const int lda, const void *B, const int ldb, float_complex_binned *C, const int ldc) |
Add to binned complex single precision matrix C the matrix-matrix product of complex single precision matrices A and B. More... | |
binnedBLAS.h defines BLAS Methods that operate on binned types.
This header is modeled after cblas.h, and as such functions are prefixed with character sets describing the data types they operate upon. For example, the function dfoo
would perform the function foo
on double
possibly returning a double
.
If two character sets are prefixed, the first set of characters describes the output and the second the input type. For example, the function dzbar
would perform the function bar
on double
complex
and return a double
.
Such character sets are listed as follows:
double
)*void
)float
)*void
)double
, double
)double
, double
)float
, float
)float
, float
)Throughout the library, complex types are specified via *void
pointers. These routines will sometimes be suffixed by sub, to represent that a function has been made into a subroutine. This allows programmers to use whatever complex types they are already using, as long as the memory pointed to is of the form of two adjacent floating point types, the first and second representing real and imaginary components of the complex number.
The goal of using binned types is to obtain either more accurate or reproducible summation of floating point numbers. In reproducible summation, floating point numbers are split into several slices along predefined boundaries in the exponent range. The space between two boundaries is called a bin. Binned types are composed of several accumulators, each accumulating the slices in a particular bin. The accumulators correspond to the largest consecutive nonzero bins seen so far.
The parameter fold
describes how many accumulators are used in the binned types supplied to a subroutine (an binned type with k
accumulators is k-fold
). The default value for this parameter can be set in config.h. If you are unsure of what value to use for fold
, we recommend 3. Note that the fold
of binned types must be the same for all binned types that interact with each other. Operations on more than one binned type assume all binned types being operated upon have the same fold
. Note that the fold
of an binned type may not be changed once the type has been allocated. A common use case would be to set the value of fold
as a global macro in your code and supply it to all binned functions that you use.
Power users of the library may find themselves wanting to manually specify the underlying primary and carry vectors of an binned type themselves. If you do not know what these are, don't worry about the manually specified binned types.
void binnedBLAS_camax_sub | ( | const int | N, |
const void * | X, | ||
const int | incX, | ||
void * | amax | ||
) |
Find maximum magnitude in vector of complex single precision.
Returns the magnitude of the element of maximum magnitude in an array.
N | vector length |
X | complex single precision vector |
incX | X vector stride (use every incX'th element) |
amax | scalar return |
void binnedBLAS_camaxm_sub | ( | const int | N, |
const void * | X, | ||
const int | incX, | ||
const void * | Y, | ||
const int | incY, | ||
void * | amaxm | ||
) |
Find maximum magnitude pairwise product between vectors of complex single precision.
Returns the magnitude of the pairwise product of maximum magnitude between X and Y.
N | vector length |
X | complex single precision vector |
incX | X vector stride (use every incX'th element) |
Y | complex single precision vector |
incY | Y vector stride (use every incY'th element) |
amaxm | scalar return |
void binnedBLAS_cbcdotc | ( | const int | fold, |
const int | N, | ||
const void * | X, | ||
const int | incX, | ||
const void * | Y, | ||
const int | incY, | ||
float_complex_binned * | Z | ||
) |
Add to binned complex single precision Z the conjugated dot product of complex single precision vectors X and Y.
Add to Z the binned sum of the pairwise products of X and conjugated Y.
fold | the fold of the binned types |
N | vector length |
X | complex single precision vector |
incX | X vector stride (use every incX'th element) |
Y | complex single precision vector |
incY | Y vector stride (use every incY'th element) |
Z | binned scalar Z |
void binnedBLAS_cbcdotu | ( | const int | fold, |
const int | N, | ||
const void * | X, | ||
const int | incX, | ||
const void * | Y, | ||
const int | incY, | ||
float_complex_binned * | Z | ||
) |
Add to binned complex single precision Z the unconjugated dot product of complex single precision vectors X and Y.
Add to Z the binned sum of the pairwise products of X and Y.
fold | the fold of the binned types |
N | vector length |
X | complex single precision vector |
incX | X vector stride (use every incX'th element) |
Y | complex single precision vector |
incY | Y vector stride (use every incY'th element) |
Z | binned scalar Z |
void binnedBLAS_cbcgemm | ( | const int | fold, |
const char | Order, | ||
const char | TransA, | ||
const char | TransB, | ||
const int | M, | ||
const int | N, | ||
const int | K, | ||
const void * | alpha, | ||
const void * | A, | ||
const int | lda, | ||
const void * | B, | ||
const int | ldb, | ||
float_complex_binned * | C, | ||
const int | ldc | ||
) |
Add to binned complex single precision matrix C the matrix-matrix product of complex single precision matrices A and B.
Performs one of the matrix-matrix operations
C := alpha*op(A)*op(B) + C,
where op(X) is one of
op(X) = X or op(X) = X**T or op(X) = X**H,
alpha is a scalar, A and B are matrices with op(A) an M by K matrix and op(B) a K by N matrix, and C is an binned M by N matrix.
fold | the fold of the binned types |
Order | a character specifying the matrix ordering ('r' or 'R' for row-major, 'c' or 'C' for column major) |
TransA | a character specifying whether or not to transpose A before taking the matrix-matrix product ('n' or 'N' not to transpose, 't' or 'T' to transpose, 'c' or 'C' to conjugate transpose) |
TransB | a character specifying whether or not to transpose B before taking the matrix-matrix product ('n' or 'N' not to transpose, 't' or 'T' to transpose, 'c' or 'C' to conjugate transpose) |
M | number of rows of matrix op(A) and of the matrix C. |
N | number of columns of matrix op(B) and of the matrix C. |
K | number of columns of matrix op(A) and columns of the matrix op(B). |
alpha | scalar alpha |
A | complex single precision matrix of dimension (ma, lda) in row-major or (lda, na) in column-major. (ma, na) is (M, K) if A is not transposed and (K, M) otherwise. |
lda | the first dimension of A as declared in the calling program. lda must be at least na in row major or ma in column major. |
B | complex single precision matrix of dimension (mb, ldb) in row-major or (ldb, nb) in column-major. (mb, nb) is (K, N) if B is not transposed and (N, K) otherwise. |
ldb | the first dimension of B as declared in the calling program. ldb must be at least nb in row major or mb in column major. |
C | binned complex single precision matrix of dimension (M, ldc) in row-major or (ldc, N) in column-major. |
ldc | the first dimension of C as declared in the calling program. ldc must be at least N in row major or M in column major. |
void binnedBLAS_cbcgemv | ( | const int | fold, |
const char | Order, | ||
const char | TransA, | ||
const int | M, | ||
const int | N, | ||
const void * | alpha, | ||
const void * | A, | ||
const int | lda, | ||
const void * | X, | ||
const int | incX, | ||
float_complex_binned * | Y, | ||
const int | incY | ||
) |
Add to binned complex single precision vector Y the matrix-vector product of complex single precision matrix A and complex single precision vector X.
Performs one of the matrix-vector operations
y := alpha*A*x + y or y := alpha*A**T*x + y or y := alpha*A**H*x + y,
where alpha is a scalar, x is a vector, y is an binned vector, and A is an M by N matrix.
fold | the fold of the binned types |
Order | a character specifying the matrix ordering ('r' or 'R' for row-major, 'c' or 'C' for column major) |
TransA | a character specifying whether or not to transpose A before taking the matrix-vector product ('n' or 'N' not to transpose, 't' or 'T' to transpose, 'c' or 'C' to conjugate transpose) |
M | number of rows of matrix A |
N | number of columns of matrix A |
alpha | scalar alpha |
A | complex single precision matrix of dimension (M, lda) in row-major or (lda, N) in column-major |
lda | the first dimension of A as declared in the calling program |
X | complex single precision vector of at least size N if not transposed or size M otherwise |
incX | X vector stride (use every incX'th element) |
Y | binned complex single precision vector Y of at least size M if not transposed or size N otherwise |
incY | Y vector stride (use every incY'th element) |
void binnedBLAS_cbcsum | ( | const int | fold, |
const int | N, | ||
const void * | X, | ||
const int | incX, | ||
float_complex_binned * | Y | ||
) |
Add to binned complex single precision Y the sum of complex single precision vector X.
Add to Y the binned sum of X.
fold | the fold of the binned types |
N | vector length |
X | complex single precision vector |
incX | X vector stride (use every incX'th element) |
Y | binned scalar Y |
void binnedBLAS_cmcdotc | ( | const int | fold, |
const int | N, | ||
const void * | X, | ||
const int | incX, | ||
const void * | Y, | ||
const int | incY, | ||
float * | priZ, | ||
const int | incpriZ, | ||
float * | carZ, | ||
const int | inccarZ | ||
) |
Add to manually specified binned complex single precision Z the conjugated dot product of complex single precision vectors X and Y.
Add to Z the binned sum of the pairwise products of X and conjugated Y.
fold | the fold of the binned types |
N | vector length |
X | complex single precision vector |
incX | X vector stride (use every incX'th element) |
Y | complex single precision vector |
incY | Y vector stride (use every incY'th element) |
priZ | Z's primary vector |
incpriZ | stride within Z's primary vector (use every incpriZ'th element) |
carZ | Z's carry vector |
inccarZ | stride within Z's carry vector (use every inccarZ'th element) |
void binnedBLAS_cmcdotu | ( | const int | fold, |
const int | N, | ||
const void * | X, | ||
const int | incX, | ||
const void * | Y, | ||
const int | incY, | ||
float * | priZ, | ||
const int | incpriZ, | ||
float * | carZ, | ||
const int | inccarZ | ||
) |
Add to manually specified binned complex single precision Z the unconjugated dot product of complex single precision vectors X and Y.
Add to Z the binned sum of the pairwise products of X and Y.
fold | the fold of the binned types |
N | vector length |
X | complex single precision vector |
incX | X vector stride (use every incX'th element) |
Y | complex single precision vector |
incY | Y vector stride (use every incY'th element) |
priZ | Z's primary vector |
incpriZ | stride within Z's primary vector (use every incpriZ'th element) |
carZ | Z's carry vector |
inccarZ | stride within Z's carry vector (use every inccarZ'th element) |
void binnedBLAS_cmcsum | ( | const int | fold, |
const int | N, | ||
const void * | X, | ||
const int | incX, | ||
float * | priY, | ||
const int | incpriY, | ||
float * | carY, | ||
const int | inccarY | ||
) |
Add to manually specified binned complex single precision Y the sum of complex single precision vector X.
Add to Y the binned sum of X.
fold | the fold of the binned types |
fold | the fold of the binned types |
N | vector length |
X | complex single precision vector |
incX | X vector stride (use every incX'th element) |
priY | Y's primary vector |
incpriY | stride within Y's primary vector (use every incpriY'th element) |
carY | Y's carry vector |
inccarY | stride within Y's carry vector (use every inccarY'th element) |
double binnedBLAS_damax | ( | const int | N, |
const double * | X, | ||
const int | incX | ||
) |
Find maximum absolute value in vector of double precision.
Returns the absolute value of the element of maximum absolute value in an array.
N | vector length |
X | double precision vector |
incX | X vector stride (use every incX'th element) |
double binnedBLAS_damaxm | ( | const int | N, |
const double * | X, | ||
const int | incX, | ||
const double * | Y, | ||
const int | incY | ||
) |
Find maximum absolute value pairwise product between vectors of double precision.
Returns the absolute value of the pairwise product of maximum absolute value between X and Y.
N | vector length |
X | double precision vector |
incX | X vector stride (use every incX'th element) |
Y | double precision vector |
incY | Y vector stride (use every incY'th element) |
void binnedBLAS_dbdasum | ( | const int | fold, |
const int | N, | ||
const double * | X, | ||
const int | incX, | ||
double_binned * | Y | ||
) |
Add to binned double precision Y the absolute sum of double precision vector X.
Add to Y the binned sum of absolute values of elements in X.
fold | the fold of the binned types |
N | vector length |
X | double precision vector |
incX | X vector stride (use every incX'th element) |
Y | binned scalar Y |
void binnedBLAS_dbddot | ( | const int | fold, |
const int | N, | ||
const double * | X, | ||
const int | incX, | ||
const double * | Y, | ||
const int | incY, | ||
double_binned * | Z | ||
) |
Add to binned double precision Z the dot product of double precision vectors X and Y.
Add to Z the binned sum of the pairwise products of X and Y.
fold | the fold of the binned types |
N | vector length |
X | double precision vector |
incX | X vector stride (use every incX'th element) |
Y | double precision vector |
incY | Y vector stride (use every incY'th element) |
Z | binned scalar Z |
void binnedBLAS_dbdgemm | ( | const int | fold, |
const char | Order, | ||
const char | TransA, | ||
const char | TransB, | ||
const int | M, | ||
const int | N, | ||
const int | K, | ||
const double | alpha, | ||
const double * | A, | ||
const int | lda, | ||
const double * | B, | ||
const int | ldb, | ||
double_binned * | C, | ||
const int | ldc | ||
) |
Add to binned double precision matrix C the matrix-matrix product of double precision matrices A and B.
Performs one of the matrix-matrix operations
C := alpha*op(A)*op(B) + C,
where op(X) is one of
op(X) = X or op(X) = X**T,
alpha is a scalar, A and B are matrices with op(A) an M by K matrix and op(B) a K by N matrix, and C is an binned M by N matrix.
fold | the fold of the binned types |
Order | a character specifying the matrix ordering ('r' or 'R' for row-major, 'c' or 'C' for column major) |
TransA | a character specifying whether or not to transpose A before taking the matrix-matrix product ('n' or 'N' not to transpose, 't' or 'T' or 'c' or 'C' to transpose) |
TransB | a character specifying whether or not to transpose B before taking the matrix-matrix product ('n' or 'N' not to transpose, 't' or 'T' or 'c' or 'C' to transpose) |
M | number of rows of matrix op(A) and of the matrix C. |
N | number of columns of matrix op(B) and of the matrix C. |
K | number of columns of matrix op(A) and columns of the matrix op(B). |
alpha | scalar alpha |
A | double precision matrix of dimension (ma, lda) in row-major or (lda, na) in column-major. (ma, na) is (M, K) if A is not transposed and (K, M) otherwise. |
lda | the first dimension of A as declared in the calling program. lda must be at least na in row major or ma in column major. |
B | double precision matrix of dimension (mb, ldb) in row-major or (ldb, nb) in column-major. (mb, nb) is (K, N) if B is not transposed and (N, K) otherwise. |
ldb | the first dimension of B as declared in the calling program. ldb must be at least nb in row major or mb in column major. |
C | binned double precision matrix of dimension (M, ldc) in row-major or (ldc, N) in column-major. |
ldc | the first dimension of C as declared in the calling program. ldc must be at least N in row major or M in column major. |
void binnedBLAS_dbdgemv | ( | const int | fold, |
const char | Order, | ||
const char | TransA, | ||
const int | M, | ||
const int | N, | ||
const double | alpha, | ||
const double * | A, | ||
const int | lda, | ||
const double * | X, | ||
const int | incX, | ||
double_binned * | Y, | ||
const int | incY | ||
) |
Add to binned double precision vector Y the matrix-vector product of double precision matrix A and double precision vector X.
Performs one of the matrix-vector operations
y := alpha*A*x + y or y := alpha*A**T*x + y,
where alpha is a scalar, x is a vector, y is an binned vector, and A is an M by N matrix.
fold | the fold of the binned types |
Order | a character specifying the matrix ordering ('r' or 'R' for row-major, 'c' or 'C' for column major) |
TransA | a character specifying whether or not to transpose A before taking the matrix-vector product ('n' or 'N' not to transpose, 't' or 'T' or 'c' or 'C' to transpose) |
M | number of rows of matrix A |
N | number of columns of matrix A |
alpha | scalar alpha |
A | double precision matrix of dimension (M, lda) in row-major or (lda, N) in column-major |
lda | the first dimension of A as declared in the calling program |
X | double precision vector of at least size N if not transposed or size M otherwise |
incX | X vector stride (use every incX'th element) |
Y | binned double precision vector Y of at least size M if not transposed or size N otherwise |
incY | Y vector stride (use every incY'th element) |
double binnedBLAS_dbdssq | ( | const int | fold, |
const int | N, | ||
const double * | X, | ||
const int | incX, | ||
const double | scaleY, | ||
double_binned * | Y | ||
) |
Add to scaled binned double precision Y the scaled sum of squares of elements of double precision vector X.
Add to Y the scaled binned sum of the squares of each element of X. The scaling of each square is performed using binned_dscale()
fold | the fold of the binned types |
N | vector length |
X | double precision vector |
incX | X vector stride (use every incX'th element) |
scaleY | the scaling factor of Y |
Y | binned scalar Y |
void binnedBLAS_dbdsum | ( | const int | fold, |
const int | N, | ||
const double * | X, | ||
const int | incX, | ||
double_binned * | Y | ||
) |
Add to binned double precision Y the sum of double precision vector X.
Add to Y the binned sum of X.
fold | the fold of the binned types |
N | vector length |
X | double precision vector |
incX | X vector stride (use every incX'th element) |
Y | binned scalar Y |
void binnedBLAS_dbzasum | ( | const int | fold, |
const int | N, | ||
const void * | X, | ||
const int | incX, | ||
double_binned * | Y | ||
) |
Add to binned double precision Y the absolute sum of complex double precision vector X.
Add to Y the binned sum of magnitudes of elements of X.
fold | the fold of the binned types |
N | vector length |
X | complex double precision vector |
incX | X vector stride (use every incX'th element) |
Y | binned scalar Y |
double binnedBLAS_dbzssq | ( | const int | fold, |
const int | N, | ||
const void * | X, | ||
const int | incX, | ||
const double | scaleY, | ||
double_binned * | Y | ||
) |
Add to scaled binned double precision Y the scaled sum of squares of elements of complex double precision vector X.
Add to Y the scaled binned sum of the squares of each element of X. The scaling of each square is performed using binned_dscale()
fold | the fold of the binned types |
N | vector length |
X | complex double precision vector |
incX | X vector stride (use every incX'th element) |
scaleY | the scaling factor of Y |
Y | binned scalar Y |
void binnedBLAS_dmdasum | ( | const int | fold, |
const int | N, | ||
const double * | X, | ||
const int | incX, | ||
double * | priY, | ||
const int | incpriY, | ||
double * | carY, | ||
const int | inccarY | ||
) |
Add to manually specified binned double precision Y the absolute sum of double precision vector X.
Add to Y the binned sum of absolute values of elements in X.
fold | the fold of the binned types |
N | vector length |
X | double precision vector |
incX | X vector stride (use every incX'th element) |
priY | Y's primary vector |
incpriY | stride within Y's primary vector (use every incpriY'th element) |
carY | Y's carry vector |
inccarY | stride within Y's carry vector (use every inccarY'th element) |
void binnedBLAS_dmddot | ( | const int | fold, |
const int | N, | ||
const double * | X, | ||
const int | incX, | ||
const double * | Y, | ||
const int | incY, | ||
double * | priZ, | ||
const int | incpriZ, | ||
double * | carZ, | ||
const int | inccarZ | ||
) |
Add to manually specified binned double precision Z the dot product of double precision vectors X and Y.
Add to Z the binned sum of the pairwise products of X and Y.
fold | the fold of the binned types |
N | vector length |
X | double precision vector |
incX | X vector stride (use every incX'th element) |
Y | double precision vector |
incY | Y vector stride (use every incY'th element) |
priZ | Z's primary vector |
incpriZ | stride within Z's primary vector (use every incpriZ'th element) |
carZ | Z's carry vector |
inccarZ | stride within Z's carry vector (use every inccarZ'th element) |
double binnedBLAS_dmdssq | ( | const int | fold, |
const int | N, | ||
const double * | X, | ||
const int | incX, | ||
const double | scaleY, | ||
double * | priY, | ||
const int | incpriY, | ||
double * | carY, | ||
const int | inccarY | ||
) |
Add to scaled manually specified binned double precision Y the scaled sum of squares of elements of double precision vector X.
Add to Y the scaled binned sum of the squares of each element of X. The scaling of each square is performed using binned_dscale()
fold | the fold of the binned types |
N | vector length |
X | double precision vector |
incX | X vector stride (use every incX'th element) |
scaleY | the scaling factor of Y |
priY | Y's primary vector |
incpriY | stride within Y's primary vector (use every incpriY'th element) |
carY | Y's carry vector |
inccarY | stride within Y's carry vector (use every inccarY'th element) |
void binnedBLAS_dmdsum | ( | const int | fold, |
const int | N, | ||
const double * | X, | ||
const int | incX, | ||
double * | priY, | ||
const int | incpriY, | ||
double * | carY, | ||
const int | inccarY | ||
) |
Add to manually specified binned double precision Y the sum of double precision vector X.
Set Y to the binned sum of X.
fold | the fold of the binned types |
N | vector length |
X | double precision vector |
incX | X vector stride (use every incX'th element) |
priY | Y's primary vector |
incpriY | stride within Y's primary vector (use every incpriY'th element) |
carY | Y's carry vector |
inccarY | stride within Y's carry vector (use every inccarY'th element) |
void binnedBLAS_dmzasum | ( | const int | fold, |
const int | N, | ||
const void * | X, | ||
const int | incX, | ||
double * | priY, | ||
const int | incpriY, | ||
double * | carY, | ||
const int | inccarY | ||
) |
Add to manually specified binned double precision Y the absolute sum of complex double precision vector X.
Add to Y the binned sum of magnitudes of elements of X.
fold | the fold of the binned types |
N | vector length |
X | complex double precision vector |
incX | X vector stride (use every incX'th element) |
priY | Y's primary vector |
incpriY | stride within Y's primary vector (use every incpriY'th element) |
carY | Y's carry vector |
inccarY | stride within Y's carry vector (use every inccarY'th element) |
double binnedBLAS_dmzssq | ( | const int | fold, |
const int | N, | ||
const void * | X, | ||
const int | incX, | ||
const double | scaleY, | ||
double * | priY, | ||
const int | incpriY, | ||
double * | carY, | ||
const int | inccarY | ||
) |
Add to scaled manually specified binned double precision Y the scaled sum of squares of elements of complex double precision vector X.
Add to Y the scaled binned sum of the squares of each element of X. The scaling of each square is performed using binned_dscale()
fold | the fold of the binned types |
N | vector length |
X | complex double precision vector |
incX | X vector stride (use every incX'th element) |
scaleY | the scaling factor of Y |
priY | Y's primary vector |
incpriY | stride within Y's primary vector (use every incpriY'th element) |
carY | Y's carry vector |
inccarY | stride within Y's carry vector (use every inccarY'th element) |
float binnedBLAS_samax | ( | const int | N, |
const float * | X, | ||
const int | incX | ||
) |
Find maximum absolute value in vector of single precision.
Returns the absolute value of the element of maximum absolute value in an array.
N | vector length |
X | single precision vector |
incX | X vector stride (use every incX'th element) |
float binnedBLAS_samaxm | ( | const int | N, |
const float * | X, | ||
const int | incX, | ||
const float * | Y, | ||
const int | incY | ||
) |
Find maximum absolute value pairwise product between vectors of single precision.
Returns the absolute value of the pairwise product of maximum absolute value between X and Y.
N | vector length |
X | single precision vector |
incX | X vector stride (use every incX'th element) |
Y | single precision vector |
incY | Y vector stride (use every incY'th element) |
void binnedBLAS_sbcasum | ( | const int | fold, |
const int | N, | ||
const void * | X, | ||
const int | incX, | ||
float_binned * | Y | ||
) |
Add to binned single precision Y the absolute sum of complex single precision vector X.
Add to Y the binned sum of magnitudes of elements of X.
fold | the fold of the binned types |
N | vector length |
X | complex single precision vector |
incX | X vector stride (use every incX'th element) |
Y | binned scalar Y |
float binnedBLAS_sbcssq | ( | const int | fold, |
const int | N, | ||
const void * | X, | ||
const int | incX, | ||
const float | scaleY, | ||
float_binned * | Y | ||
) |
Add to scaled binned single precision Y the scaled sum of squares of elements of complex single precision vector X.
Add to Y the scaled binned sum of the squares of each element of X. The scaling of each square is performed using binned_sscale()
fold | the fold of the binned types |
N | vector length |
X | complex single precision vector |
incX | X vector stride (use every incX'th element) |
scaleY | the scaling factor of Y |
Y | binned scalar Y |
void binnedBLAS_sbsasum | ( | const int | fold, |
const int | N, | ||
const float * | X, | ||
const int | incX, | ||
float_binned * | Y | ||
) |
Add to binned single precision Y the absolute sum of single precision vector X.
Add to Y the binned sum of absolute values of elements in X.
fold | the fold of the binned types |
N | vector length |
X | single precision vector |
incX | X vector stride (use every incX'th element) |
Y | binned scalar Y |
void binnedBLAS_sbsdot | ( | const int | fold, |
const int | N, | ||
const float * | X, | ||
const int | incX, | ||
const float * | Y, | ||
const int | incY, | ||
float_binned * | Z | ||
) |
Add to binned single precision Z the dot product of single precision vectors X and Y.
Add to Z the binned sum of the pairwise products of X and Y.
fold | the fold of the binned types |
N | vector length |
X | single precision vector |
incX | X vector stride (use every incX'th element) |
Y | single precision vector |
incY | Y vector stride (use every incY'th element) |
Z | binned scalar Z |
void binnedBLAS_sbsgemm | ( | const int | fold, |
const char | Order, | ||
const char | TransA, | ||
const char | TransB, | ||
const int | M, | ||
const int | N, | ||
const int | K, | ||
const float | alpha, | ||
const float * | A, | ||
const int | lda, | ||
const float * | B, | ||
const int | ldb, | ||
float_binned * | C, | ||
const int | ldc | ||
) |
Add to binned single precision matrix C the matrix-matrix product of single precision matrices A and B.
Performs one of the matrix-matrix operations
C := alpha*op(A)*op(B) + C,
where op(X) is one of
op(X) = X or op(X) = X**T,
alpha is a scalar, A and B are matrices with op(A) an M by K matrix and op(B) a K by N matrix, and C is an binned M by N matrix.
fold | the fold of the binned types |
Order | a character specifying the matrix ordering ('r' or 'R' for row-major, 'c' or 'C' for column major) |
TransA | a character specifying whether or not to transpose A before taking the matrix-matrix product ('n' or 'N' not to transpose, 't' or 'T' or 'c' or 'C' to transpose) |
TransB | a character specifying whether or not to transpose B before taking the matrix-matrix product ('n' or 'N' not to transpose, 't' or 'T' or 'c' or 'C' to transpose) |
M | number of rows of matrix op(A) and of the matrix C. |
N | number of columns of matrix op(B) and of the matrix C. |
K | number of columns of matrix op(A) and columns of the matrix op(B). |
alpha | scalar alpha |
A | single precision matrix of dimension (ma, lda) in row-major or (lda, na) in column-major. (ma, na) is (M, K) if A is not transposed and (K, M) otherwise. |
lda | the first dimension of A as declared in the calling program. lda must be at least na in row major or ma in column major. |
B | single precision matrix of dimension (mb, ldb) in row-major or (ldb, nb) in column-major. (mb, nb) is (K, N) if B is not transposed and (N, K) otherwise. |
ldb | the first dimension of B as declared in the calling program. ldb must be at least nb in row major or mb in column major. |
C | binned single precision matrix of dimension (M, ldc) in row-major or (ldc, N) in column-major. |
ldc | the first dimension of C as declared in the calling program. ldc must be at least N in row major or M in column major. |
void binnedBLAS_sbsgemv | ( | const int | fold, |
const char | Order, | ||
const char | TransA, | ||
const int | M, | ||
const int | N, | ||
const float | alpha, | ||
const float * | A, | ||
const int | lda, | ||
const float * | X, | ||
const int | incX, | ||
float_binned * | Y, | ||
const int | incY | ||
) |
Add to binned single precision vector Y the matrix-vector product of single precision matrix A and single precision vector X.
Performs one of the matrix-vector operations
y := alpha*A*x + y or y := alpha*A**T*x + y,
where alpha is a scalar, x is a vector, y is an binned vector, and A is an M by N matrix.
fold | the fold of the binned types |
Order | a character specifying the matrix ordering ('r' or 'R' for row-major, 'c' or 'C' for column major) |
TransA | a character specifying whether or not to transpose A before taking the matrix-vector product ('n' or 'N' not to transpose, 't' or 'T' or 'c' or 'C' to transpose) |
M | number of rows of matrix A |
N | number of columns of matrix A |
alpha | scalar alpha |
A | single precision matrix of dimension (M, lda) in row-major or (lda, N) in column-major |
lda | the first dimension of A as declared in the calling program |
X | single precision vector of at least size N if not transposed or size M otherwise |
incX | X vector stride (use every incX'th element) |
Y | binned single precision vector Y of at least size M if not transposed or size N otherwise |
incY | Y vector stride (use every incY'th element) |
float binnedBLAS_sbsssq | ( | const int | fold, |
const int | N, | ||
const float * | X, | ||
const int | incX, | ||
const float | scaleY, | ||
float_binned * | Y | ||
) |
Add to scaled binned single precision Y the scaled sum of squares of elements of single precision vector X.
Add to Y the scaled binned sum of the squares of each element of X. The scaling of each square is performed using binned_sscale()
fold | the fold of the binned types |
N | vector length |
X | single precision vector |
incX | X vector stride (use every incX'th element) |
scaleY | the scaling factor of Y |
Y | binned scalar Y |
void binnedBLAS_sbssum | ( | const int | fold, |
const int | N, | ||
const float * | X, | ||
const int | incX, | ||
float_binned * | Y | ||
) |
Add to binned single precision Y the sum of single precision vector X.
Add to Y the binned sum of X.
fold | the fold of the binned types |
N | vector length |
X | single precision vector |
incX | X vector stride (use every incX'th element) |
Y | binned scalar Y |
void binnedBLAS_smcasum | ( | const int | fold, |
const int | N, | ||
const void * | X, | ||
const int | incX, | ||
float * | priY, | ||
const int | incpriY, | ||
float * | carY, | ||
const int | inccarY | ||
) |
Add to manually specified binned single precision Y the absolute sum of complex single precision vector X.
Add to Y the binned sum of magnitudes of elements of X.
fold | the fold of the binned types |
N | vector length |
X | complex single precision vector |
incX | X vector stride (use every incX'th element) |
priY | Y's primary vector |
incpriY | stride within Y's primary vector (use every incpriY'th element) |
carY | Y's carry vector |
inccarY | stride within Y's carry vector (use every inccarY'th element) |
float binnedBLAS_smcssq | ( | const int | fold, |
const int | N, | ||
const void * | X, | ||
const int | incX, | ||
const float | scaleY, | ||
float * | priY, | ||
const int | incpriY, | ||
float * | carY, | ||
const int | inccarY | ||
) |
Add to scaled manually specified binned single precision Y the scaled sum of squares of elements of complex single precision vector X.
Add to Y the scaled binned sum of the squares of each element of X. The scaling of each square is performed using binned_sscale()
fold | the fold of the binned types |
N | vector length |
X | complex single precision vector |
incX | X vector stride (use every incX'th element) |
scaleY | the scaling factor of Y |
priY | Y's primary vector |
incpriY | stride within Y's primary vector (use every incpriY'th element) |
carY | Y's carry vector |
inccarY | stride within Y's carry vector (use every inccarY'th element) |
void binnedBLAS_smsasum | ( | const int | fold, |
const int | N, | ||
const float * | X, | ||
const int | incX, | ||
float * | priY, | ||
const int | incpriY, | ||
float * | carY, | ||
const int | inccarY | ||
) |
Add to manually specified binned single precision Y the absolute sum of double precision vector X.
Add to Y to the binned sum of absolute values of elements in X.
fold | the fold of the binned types |
N | vector length |
X | single precision vector |
incX | X vector stride (use every incX'th element) |
priY | Y's primary vector |
incpriY | stride within Y's primary vector (use every incpriY'th element) |
carY | Y's carry vector |
inccarY | stride within Y's carry vector (use every inccarY'th element) |
void binnedBLAS_smsdot | ( | const int | fold, |
const int | N, | ||
const float * | X, | ||
const int | incX, | ||
const float * | Y, | ||
const int | incY, | ||
float * | priZ, | ||
const int | incpriZ, | ||
float * | carZ, | ||
const int | inccarZ | ||
) |
Add to manually specified binned single precision Z the dot product of single precision vectors X and Y.
Add to Z the binned sum of the pairwise products of X and Y.
fold | the fold of the binned types |
N | vector length |
X | single precision vector |
incX | X vector stride (use every incX'th element) |
Y | single precision vector |
incY | Y vector stride (use every incY'th element) |
priZ | Z's primary vector |
incpriZ | stride within Z's primary vector (use every incpriZ'th element) |
carZ | Z's carry vector |
inccarZ | stride within Z's carry vector (use every inccarZ'th element) |
float binnedBLAS_smsssq | ( | const int | fold, |
const int | N, | ||
const float * | X, | ||
const int | incX, | ||
const float | scaleY, | ||
float * | priY, | ||
const int | incpriY, | ||
float * | carY, | ||
const int | inccarY | ||
) |
Add to scaled manually specified binned single precision Y the scaled sum of squares of elements of single precision vector X.
Add to Y the scaled binned sum of the squares of each element of X. The scaling of each square is performed using binned_sscale()
fold | the fold of the binned types |
N | vector length |
X | single precision vector |
incX | X vector stride (use every incX'th element) |
scaleY | the scaling factor of Y |
priY | Y's primary vector |
incpriY | stride within Y's primary vector (use every incpriY'th element) |
carY | Y's carry vector |
inccarY | stride within Y's carry vector (use every inccarY'th element) |
void binnedBLAS_smssum | ( | const int | fold, |
const int | N, | ||
const float * | X, | ||
const int | incX, | ||
float * | priY, | ||
const int | incpriY, | ||
float * | carY, | ||
const int | inccarY | ||
) |
Add to manually specified binned single precision Y the sum of single precision vector X.
Add to Y the binned sum of X.
fold | the fold of the binned types |
N | vector length |
X | single precision vector |
incX | X vector stride (use every incX'th element) |
priY | Y's primary vector |
incpriY | stride within Y's primary vector (use every incpriY'th element) |
carY | Y's carry vector |
inccarY | stride within Y's carry vector (use every inccarY'th element) |
void binnedBLAS_zamax_sub | ( | const int | N, |
const void * | X, | ||
const int | incX, | ||
void * | amax | ||
) |
Find maximum magnitude in vector of complex double precision.
Returns the magnitude of the element of maximum magnitude in an array.
N | vector length |
X | complex double precision vector |
incX | X vector stride (use every incX'th element) |
amax | scalar return |
void binnedBLAS_zamaxm_sub | ( | const int | N, |
const void * | X, | ||
const int | incX, | ||
const void * | Y, | ||
const int | incY, | ||
void * | amaxm | ||
) |
Find maximum magnitude pairwise product between vectors of complex double precision.
Returns the magnitude of the pairwise product of maximum magnitude between X and Y.
N | vector length |
X | complex double precision vector |
incX | X vector stride (use every incX'th element) |
Y | complex double precision vector |
incY | Y vector stride (use every incY'th element) |
amaxm | scalar return |
void binnedBLAS_zbzdotc | ( | const int | fold, |
const int | N, | ||
const void * | X, | ||
const int | incX, | ||
const void * | Y, | ||
const int | incY, | ||
double_complex_binned * | Z | ||
) |
Add to binned complex double precision Z the conjugated dot product of complex double precision vectors X and Y.
Add to Z the binned sum of the pairwise products of X and conjugated Y.
fold | the fold of the binned types |
N | vector length |
X | complex double precision vector |
incX | X vector stride (use every incX'th element) |
Y | complex double precision vector |
incY | Y vector stride (use every incY'th element) |
Z | scalar return Z |
void binnedBLAS_zbzdotu | ( | const int | fold, |
const int | N, | ||
const void * | X, | ||
const int | incX, | ||
const void * | Y, | ||
const int | incY, | ||
double_complex_binned * | Z | ||
) |
Add to binned complex double precision Z the unconjugated dot product of complex double precision vectors X and Y.
Add to Z the binned sum of the pairwise products of X and Y.
fold | the fold of the binned types |
N | vector length |
X | complex double precision vector |
incX | X vector stride (use every incX'th element) |
Y | complex double precision vector |
incY | Y vector stride (use every incY'th element) |
Z | binned scalar Z |
void binnedBLAS_zbzgemm | ( | const int | fold, |
const char | Order, | ||
const char | TransA, | ||
const char | TransB, | ||
const int | M, | ||
const int | N, | ||
const int | K, | ||
const void * | alpha, | ||
const void * | A, | ||
const int | lda, | ||
const void * | B, | ||
const int | ldb, | ||
double_complex_binned * | C, | ||
const int | ldc | ||
) |
Add to binned complex double precision matrix C the matrix-matrix product of complex double precision matrices A and B.
Performs one of the matrix-matrix operations
C := alpha*op(A)*op(B) + C,
where op(X) is one of
op(X) = X or op(X) = X**T or op(X) = X**H,
alpha is a scalar, A and B are matrices with op(A) an M by K matrix and op(B) a K by N matrix, and C is an binned M by N matrix.
fold | the fold of the binned types |
Order | a character specifying the matrix ordering ('r' or 'R' for row-major, 'c' or 'C' for column major) |
TransA | a character specifying whether or not to transpose A before taking the matrix-matrix product ('n' or 'N' not to transpose, 't' or 'T' to transpose, 'c' or 'C' to conjugate transpose) |
TransB | a character specifying whether or not to transpose B before taking the matrix-matrix product ('n' or 'N' not to transpose, 't' or 'T' to transpose, 'c' or 'C' to conjugate transpose) |
M | number of rows of matrix op(A) and of the matrix C. |
N | number of columns of matrix op(B) and of the matrix C. |
K | number of columns of matrix op(A) and columns of the matrix op(B). |
alpha | scalar alpha |
A | complex double precision matrix of dimension (ma, lda) in row-major or (lda, na) in column-major. (ma, na) is (M, K) if A is not transposed and (K, M) otherwise. |
lda | the first dimension of A as declared in the calling program. lda must be at least na in row major or ma in column major. |
B | complex double precision matrix of dimension (mb, ldb) in row-major or (ldb, nb) in column-major. (mb, nb) is (K, N) if B is not transposed and (N, K) otherwise. |
ldb | the first dimension of B as declared in the calling program. ldb must be at least nb in row major or mb in column major. |
C | binned complex double precision matrix of dimension (M, ldc) in row-major or (ldc, N) in column-major. |
ldc | the first dimension of C as declared in the calling program. ldc must be at least N in row major or M in column major. |
void binnedBLAS_zbzgemv | ( | const int | fold, |
const char | Order, | ||
const char | TransA, | ||
const int | M, | ||
const int | N, | ||
const void * | alpha, | ||
const void * | A, | ||
const int | lda, | ||
const void * | X, | ||
const int | incX, | ||
double_complex_binned * | Y, | ||
const int | incY | ||
) |
Add to binned complex double precision vector Y the matrix-vector product of complex double precision matrix A and complex double precision vector X.
Performs one of the matrix-vector operations
y := alpha*A*x + y or y := alpha*A**T*x + y or y := alpha*A**H*x + y,
where alpha is a scalar, x is a vector, y is an binned vector, and A is an M by N matrix.
fold | the fold of the binned types |
Order | a character specifying the matrix ordering ('r' or 'R' for row-major, 'c' or 'C' for column major) |
TransA | a character specifying whether or not to transpose A before taking the matrix-vector product ('n' or 'N' not to transpose, 't' or 'T' to transpose, 'c' or 'C' to conjugate transpose) |
M | number of rows of matrix A |
N | number of columns of matrix A |
alpha | scalar alpha |
A | complex double precision matrix of dimension (M, lda) in row-major or (lda, N) in column-major |
lda | the first dimension of A as declared in the calling program |
X | complex double precision vector of at least size N if not transposed or size M otherwise |
incX | X vector stride (use every incX'th element) |
Y | binned complex double precision vector Y of at least size M if not transposed or size N otherwise |
incY | Y vector stride (use every incY'th element) |
void binnedBLAS_zbzsum | ( | const int | fold, |
const int | N, | ||
const void * | X, | ||
const int | incX, | ||
double_complex_binned * | Y | ||
) |
Add to binned complex double precision Y the sum of complex double precision vector X.
Add to Y the binned sum of X.
fold | the fold of the binned types |
N | vector length |
X | complex double precision vector |
incX | X vector stride (use every incX'th element) |
Y | binned scalar Y |
void binnedBLAS_zmzdotc | ( | const int | fold, |
const int | N, | ||
const void * | X, | ||
const int | incX, | ||
const void * | Y, | ||
const int | incY, | ||
double * | priZ, | ||
const int | incpriZ, | ||
double * | carZ, | ||
const int | inccarZ | ||
) |
Add to manually specified binned complex double precision Z the conjugated dot product of complex double precision vectors X and Y.
Add to Z the binned sum of the pairwise products of X and conjugated Y.
fold | the fold of the binned types |
N | vector length |
X | complex double precision vector |
incX | X vector stride (use every incX'th element) |
Y | complex double precision vector |
incY | Y vector stride (use every incY'th element) |
priZ | Z's primary vector |
incpriZ | stride within Z's primary vector (use every incpriZ'th element) |
carZ | Z's carry vector |
inccarZ | stride within Z's carry vector (use every inccarZ'th element) |
void binnedBLAS_zmzdotu | ( | const int | fold, |
const int | N, | ||
const void * | X, | ||
const int | incX, | ||
const void * | Y, | ||
const int | incY, | ||
double * | priZ, | ||
const int | incpriZ, | ||
double * | carZ, | ||
const int | inccarZ | ||
) |
Add to manually specified binned complex double precision Z the unconjugated dot product of complex double precision vectors X and Y.
Add to Z to the binned sum of the pairwise products of X and Y.
fold | the fold of the binned types |
N | vector length |
X | complex double precision vector |
incX | X vector stride (use every incX'th element) |
Y | complex double precision vector |
incY | Y vector stride (use every incY'th element) |
priZ | Z's primary vector |
incpriZ | stride within Z's primary vector (use every incpriZ'th element) |
carZ | Z's carry vector |
inccarZ | stride within Z's carry vector (use every inccarZ'th element) |
void binnedBLAS_zmzsum | ( | const int | fold, |
const int | N, | ||
const void * | X, | ||
const int | incX, | ||
double * | priY, | ||
const int | incpriY, | ||
double * | carY, | ||
const int | inccarY | ||
) |
Add to manually specified binned complex double precision Y the sum of complex double precision vector X.
Add to Y the binned sum of X.
fold | the fold of the binned types |
N | vector length |
X | complex double precision vector |
incX | X vector stride (use every incX'th element) |
priY | Y's primary vector |
incpriY | stride within Y's primary vector (use every incpriY'th element) |
carY | Y's carry vector |
inccarY | stride within Y's carry vector (use every inccarY'th element) |