Go to the source code of this file.
Data Structures | |
struct | tagBebop_kerinfo_t |
Kernel descriptor record. More... | |
Defines | |
#define | INC_OSKI_KERINFO_H |
oski/kerinfo.h has been included. | |
#define | OSKI_KERNEL(macro_tag, name) {OSKI_KERNEL_##macro_tag, name} |
Macro used to define a new kernel. | |
#define | OSKI_KERNEL_END INVALID_ID |
NULL (end) record. | |
#define | OSKI_KERNEL_END_REC OSKI_KERNEL(END, NULL) |
END descriptor. | |
Available kernels. | |
To make a new kernel available to the system, define a record here.
By default, we predefine the kernels listed below. | |
#define | OSKI_KERNEL_MatMult 1 |
MATMULT -- Sparse matrix-vector multiply. | |
#define | OSKI_KERNEL_MatMult_REC OSKI_KERNEL(MatMult, "MatMult") |
MATMULT descriptor. | |
#define | OSKI_KERNEL_MatTrisolve 2 |
MatTrisolve -- Sparse triangular solve. | |
#define | OSKI_KERNEL_MatTrisolve_REC OSKI_KERNEL(MatTrisolve, "MatTrisolve") |
MatTrisolve descriptor. | |
#define | OSKI_KERNEL_MatMultAndMatTransMult 3 |
MatMultAndMatTransMult -- Simultaneous multiplication by a sparse matrix and its transpose. | |
#define | OSKI_KERNEL_MatMultAndMatTransMult_REC OSKI_KERNEL(MatMultAndMatTransMult, "MatMultAndMatTransMult") |
MatMultAndMatTransMult descriptor. | |
#define | OSKI_KERNEL_MatTransMatMult 4 |
MatTransMatMult -- Multiplication by sparse ![]() | |
#define | OSKI_KERNEL_MatTransMatMult_REC OSKI_KERNEL(MatTransMatMult, "MatTransMatMult") |
MATTRANSMATMULT descriptor. | |
#define | OSKI_KERNEL_MatPowMult 5 |
MatPowMult -- Multiplication by a matrix power, ![]() | |
#define | OSKI_KERNEL_MatPowMult_REC OSKI_KERNEL(MatPowMult, "MatPowMult") |
MatPowMult descriptor. | |
Typedefs | |
typedef struct tagBebop_kerinfo_t | oski_kerinfo_t |
Kernel descriptor record. | |
Functions | |
const oski_kerinfo_t * | oski_LookupKernelInfo (oski_id_t id) |
Lookup information about a kernel. |
This module (see also: kerinfo.c) defines all available sparse matrix kernels that users may call. Among other reasons, the library this information to create fully-qualified dynamic library names for the matrix type-specific kernel implementations.
Information about new kernels should be defined here. Optionally, the corresponding test program should be modified to check for the new kernels (see "tests" subdirectory for the 'info' test).
Revision history:
#define INC_OSKI_KERINFO_H |
oski/kerinfo.h has been included.
#define OSKI_KERNEL | ( | macro_tag, | |||
name | ) | {OSKI_KERNEL_##macro_tag, name} |
Macro used to define a new kernel.
macro_tag | Suffix for constant macro defining the kernel's unique id number. | |
name | String name used to identify this kernel. |
#define OSKI_KERNEL_END INVALID_ID |
#define OSKI_KERNEL_MatMult 1 |
MATMULT -- Sparse matrix-vector multiply.
Referenced by DumpTrace(), oski_CountTraceFlopsPerNz(), oski_EstimateTraceTime(), oski_MatMult(), and oski_SetHintMatMult().
#define OSKI_KERNEL_MatTrisolve 2 |
MatTrisolve -- Sparse triangular solve.
Referenced by DumpTrace(), oski_CountTraceFlopsPerNz(), oski_EstimateTraceTime(), oski_MatTrisolve(), and oski_SetHintMatTrisolve().