BeBOP Optimized Sparse Kernel Interface Library  1.0.1h
Data Structures | Defines | Typedefs | Functions
kerinfo.h File Reference

Define the kernels available to the library. More...

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 $A^TA$.
#define OSKI_KERNEL_MatTransMatMult_REC   OSKI_KERNEL(MatTransMatMult, "MatTransMatMult")
 MATTRANSMATMULT descriptor.
#define OSKI_KERNEL_MatPowMult   5
 MatPowMult -- Multiplication by a matrix power, $A^k$.
#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_toski_LookupKernelInfo (oski_id_t id)
 Lookup information about a kernel.

Detailed Description

Define the kernels available to the library.

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:
1.1.1.1

Revision history:


Define Documentation

oski/kerinfo.h has been included.

#define OSKI_KERNEL (   macro_tag,
  name 
)    {OSKI_KERNEL_##macro_tag, name}

Macro used to define a new kernel.

Parameters:
macro_tagSuffix for constant macro defining the kernel's unique id number.
nameString name used to identify this kernel.
Returns:
Defines an initialization record for oski_kerinfo_t.

NULL (end) record.

Referenced by oski_LookupKernelInfo().

#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