blas_names.h File Reference


Detailed Description

Header containing mangled F77 BLAS routine names.

This file depends on config.h, and so is intended for use only at library build time.

#include <oski/config.h>

Go to the source code of this file.

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)

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.

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 $x \leftarrow \alpha\cdot x$.
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 $y \leftarrow y + \alpha\cdot x$.
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, $y \leftarrow \beta\cdot y + \alpha\cdot\mathrm{op}(A)\cdot x$.
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, $x \leftarrow \mathrm{op}(A^{-1})\cdot x$.


Define Documentation

#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().

Parameters:
[in] tag Lowercase, single-letter type tag.
[in] name Lowercase base name.
[in] TAG Uppercase, single-letter type tag.
[in] NAME Uppercase base name.
Returns:
A Fortran 77 name following the naming conventions determined at configure-time (e.g., adding a trailing underscore).
See also:
MAKE_BLAS_NAME1()

F77_FUNC()

#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.

See also:
MAKE_BLAS_NAME0()

#define MAKE_BLAS_NAME_I name,
NAME   ) 
 

Value:

MAKE_BLAS_NAME1_I(IND_TAG, VAL_TAG, name, \
                          IND_TAG_CAPS, VAL_TAG_CAPS, NAME)
Make the non-standard name of a BLAS routine which uses a non-standard integer precision.


Function Documentation

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 $y \leftarrow y + \alpha\cdot x$.

Parameters:
[in] len Length of x and y.
[in] alpha Scalar multiplier, $\alpha$.
[in] x Vector $x$.
[in] incx Distance between consecutive elements of $x$.
[in,out] y Vector $y$.
[in] incy Distance between consecutive elements of $x$.

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, $y \leftarrow \beta\cdot y + \alpha\cdot\mathrm{op}(A)\cdot x$.

Parameters:
[in] op Transpose operation ('n', 't'),
[in] m Number of rows in $A$.
[in] n Number of columns in $A$.
[in] A Array storing $A$, in column major format.
[in] lda Leading dimension of A.
[in] alpha Scalar $\alpha$.
[in] x Vector $x$.
[in] incx Distance between $x_i, x_{i+1}$ in x.
[in] beta Scalar $\beta$.
[in,out] y Vector $y$.
[in] incy Distance between $y_i, y_{i+1}$ in y.

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 $x \leftarrow \alpha\cdot x$.

Parameters:
[in] len Length of the vector.
[in] alpha Scalar multiplier, $\alpha$.
[in,out] x Vector, $x$.
[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, $x \leftarrow \mathrm{op}(A^{-1})\cdot x$.

Parameters:
[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 $A$.
[in] A Values of the dense matrix $A$, in column major layout.
[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.


Generated on Wed Sep 19 16:41:21 2007 for BeBOP Optimized Sparse Kernel Interface Library by  doxygen 1.4.6