#include <oski/config.h>
Go to the source code of this file.
Defines | |
#define | INC_OSKI_BLAS_NAMES_H |
blas_names.h included. | |
#define | F77_FUNC(x, y) x |
Default definition for F77_FUNC if none exists. | |
Macros for creating BLAS routine names. | |
#define | MAKE_BLAS_NAME0(tag, name, TAG, NAME) F77_FUNC(tag ## name, TAG ## NAME) |
Creates an Fortran-77 name by concatenating a type tag and a base name. | |
#define | MAKE_BLAS_NAME0_I(itag, tag, name, ITAG, TAG, NAME) F77_FUNC(itag ## tag ## name, ITAG ## TAG ## NAME) |
Generate a non-standard BLAS name which includes an additional prefix to indicate the integer precision. | |
#define | MAKE_BLAS_NAME1(tag, name, TAG, NAME) MAKE_BLAS_NAME0(tag, name, TAG, NAME) |
Creates a Fortran 77 name by concatenating a type tag and a base name. | |
#define | MAKE_BLAS_NAME1_I(itag, tag, name, ITAG, TAG, NAME) MAKE_BLAS_NAME0_I(itag, tag, name, ITAG, TAG, NAME) |
Generates a non-standard BLAS name which includes an additional prefix to indicate the integer precision. | |
#define | MAKE_BLAS_NAME(name, NAME) MAKE_BLAS_NAME1(VAL_TAG, name, VAL_TAG_CAPS, NAME) |
Make the standard name of a BLAS routine. | |
#define | MAKE_BLAS_NAME_I(name, NAME) |
Make the non-standard name of a BLAS routine which uses a non-standard integer precision. | |
BLAS routine names, hidden behind macros. | |
#define | BLAS_xSCAL MAKE_BLAS_NAME_I(scal, SCAL) |
#define | BLAS_xAXPY MAKE_BLAS_NAME_I(axpy, AXPY) |
#define | BLAS_xGEMV MAKE_BLAS_NAME_I(gemv, GEMV) |
#define | BLAS_xTRSV MAKE_BLAS_NAME_I(trsv, TRSV) |
Functions | |
void | BLAS_xSCAL (const oski_index_t *len, oski_value_t *alpha, oski_value_t *x, const oski_index_t *stride) |
BLAS vector scale routine, ?scal, which computes ![]() | |
void | BLAS_xAXPY (const oski_index_t *len, const oski_value_t *alpha, const oski_value_t *x, const oski_index_t *incx, oski_value_t *y, const oski_index_t *incy) |
BLAS vector AXPY operation, ?axpy, which computes ![]() | |
void | BLAS_xGEMV (const char *op, const oski_index_t *m, const oski_index_t *n, const oski_value_t *alpha, const oski_value_t *A, const oski_index_t *lda, const oski_value_t *x, const oski_index_t *incx, const oski_value_t *beta, oski_value_t *y, const oski_index_t *incy) |
BLAS matrix-vector multiply routine, ?gemv, which computes the dense matrix-vector multiply operation, ![]() | |
void | BLAS_xTRSV (const char *shape, const char *op, const char *diag, const oski_index_t *n, const oski_value_t *A, const oski_index_t *lda, oski_value_t *x, const oski_index_t *incx) |
BLAS triangular solve routine, ?trsv, which computes dense triangular solve operation, ![]() |
This file depends on config.h, and so is intended for use only at library build time.
#define INC_OSKI_BLAS_NAMES_H |
blas_names.h included.
#define MAKE_BLAS_NAME | ( | name, | |||
NAME | ) | MAKE_BLAS_NAME1(VAL_TAG, name, VAL_TAG_CAPS, NAME) |
Make the standard name of a BLAS routine.
Given the base BLAS routine name, in both lowercase and uppercase versions (e.g., gemm and GEMM, trsv and TRSV), create a Fortran 77 compatible name, given the C-to-Fortran calling conventions determined at configure time.
#define MAKE_BLAS_NAME0 | ( | tag, | |||
name, | |||||
TAG, | |||||
NAME | ) | F77_FUNC(tag ## name, TAG ## NAME) |
Creates an Fortran-77 name by concatenating a type tag and a base name.
This macro directly concatenates. To allow for macro expansion, see MAKE_BLAS_NAME1().
[in] | tag | Lowercase, single-letter type tag. |
[in] | name | Lowercase base name. |
[in] | TAG | Uppercase, single-letter type tag. |
[in] | NAME | Uppercase base name. |
#define MAKE_BLAS_NAME1 | ( | tag, | |||
name, | |||||
TAG, | |||||
NAME | ) | MAKE_BLAS_NAME0(tag, name, TAG, NAME) |
Creates a Fortran 77 name by concatenating a type tag and a base name.
This macro immediately calls MAKE_BLAS_NAME0(), thereby allowing the tags and base names to be macros that are expanded just before concatenation.
#define MAKE_BLAS_NAME_I | ( | name, | |||
NAME | ) |
Value:
MAKE_BLAS_NAME1_I(IND_TAG, VAL_TAG, name, \ IND_TAG_CAPS, VAL_TAG_CAPS, NAME)
void BLAS_xAXPY | ( | const oski_index_t * | len, | |
const oski_value_t * | alpha, | |||
const oski_value_t * | x, | |||
const oski_index_t * | incx, | |||
oski_value_t * | y, | |||
const oski_index_t * | incy | |||
) |
BLAS vector AXPY operation, ?axpy, which computes .
[in] | len | Length of x and y. |
[in] | alpha | Scalar multiplier, ![]() |
[in] | x | Vector ![]() |
[in] | incx | Distance between consecutive elements of ![]() |
[in,out] | y | Vector ![]() |
[in] | incy | Distance between consecutive elements of ![]() |
void BLAS_xGEMV | ( | const char * | op, | |
const oski_index_t * | m, | |||
const oski_index_t * | n, | |||
const oski_value_t * | alpha, | |||
const oski_value_t * | A, | |||
const oski_index_t * | lda, | |||
const oski_value_t * | x, | |||
const oski_index_t * | incx, | |||
const oski_value_t * | beta, | |||
oski_value_t * | y, | |||
const oski_index_t * | incy | |||
) |
BLAS matrix-vector multiply routine, ?gemv, which computes the dense matrix-vector multiply operation, .
[in] | op | Transpose operation ('n', 't'), |
[in] | m | Number of rows in ![]() |
[in] | n | Number of columns in ![]() |
[in] | A | Array storing ![]() |
[in] | lda | Leading dimension of A. |
[in] | alpha | Scalar ![]() |
[in] | x | Vector ![]() |
[in] | incx | Distance between ![]() |
[in] | beta | Scalar ![]() |
[in,out] | y | Vector ![]() |
[in] | incy | Distance between ![]() |
References IS_VAL_ONE, IS_VAL_ZERO, and OSKI_ERR_BAD_MATOP.
void BLAS_xSCAL | ( | const oski_index_t * | len, | |
oski_value_t * | alpha, | |||
oski_value_t * | x, | |||
const oski_index_t * | stride | |||
) |
BLAS vector scale routine, ?scal, which computes .
[in] | len | Length of the vector. |
[in] | alpha | Scalar multiplier, ![]() |
[in,out] | x | Vector, ![]() |
[in] | stride | Distance between consecutive elements. |
void BLAS_xTRSV | ( | const char * | shape, | |
const char * | op, | |||
const char * | diag, | |||
const oski_index_t * | n, | |||
const oski_value_t * | A, | |||
const oski_index_t * | lda, | |||
oski_value_t * | x, | |||
const oski_index_t * | incx | |||
) |
BLAS triangular solve routine, ?trsv, which computes dense triangular solve operation, .
[in] | shape | Lower or upper triangular ('l' or 'u'). |
[in] | op | Transpose operation ('n', 't', 'c'). |
[in] | diag | Has unit diag or not ('u', 'n'). |
[in] | n | Dimension of ![]() |
[in] | A | Values of the dense matrix ![]() |
[in] | lda | Leading dimension of A. |
[in,out] | x | Initial right-hand side, which is overwritten by the solution on output. |
[in] | incx | Distance between elements of x. |
References xTRSV().