a_and_at.h File Reference

Sparse simultaneous multiplication by $A$ and $A^T$. More...

#include <oski/matmult.h>

Go to the source code of this file.

Data Structures

struct  oski_traceargs_MatMultAndMatTransMult_t
 Store features of the input arguments to the oski_MatMultAndMatTransMult() kernel. More...

Defines

#define INC_OSKI_A_AND_AT_H
 oski/a_and_at.h included.
Name mangling.
#define oski_MatMultAndMatTransMult_funcpt   MANGLE_(oski_MatMultAndMatTransMult_funcpt)
#define oski_MatReprMultAndMatReprTransMult_funcpt   MANGLE_(oski_MatReprMultAndMatReprTransMult_funcpt)
#define oski_MatMultAndMatTransMult   MANGLE_(oski_MatMultAndMatTransMult)
#define oski_CheckArgsMatMultAndMatTransMult   MANGLE_(oski_CheckArgsMatMultAndMatTransMult)
#define oski_traceargs_MatMultAndMatTransMult_t   MANGLE_(oski_traceargs_MatMultAndMatTransMult_t)
#define oski_MakeArglistMatMultAndMatTransMult   MANGLE_(oski_MakeArglistMatMultAndMatTransMult)

Typedefs

typedef int(* oski_MatMultAndMatTransMult_funcpt )(const oski_matrix_t A_tunable, oski_value_t alpha, const oski_vecview_t x_view, oski_value_t beta, oski_vecview_t y_view, oski_matop_t opA, oski_value_t omega, const oski_vecview_t w_view, oski_value_t zeta, oski_vecview_t z_view)
 Function pointer type for oski_MatMultAndMatTransMult().
typedef int(* oski_MatReprMultAndMatReprTransMult_funcpt )(const void *A, const oski_matcommon_t *props, oski_value_t alpha, const oski_vecview_t x_view, oski_value_t beta, oski_vecview_t y_view, oski_matop_t opA, oski_value_t omega, const oski_vecview_t w_view, oski_value_t zeta, oski_vecview_t z_view)
 Function pointer type for a matrix type-specific implementation of oski_MatMultAndMatTransMult().

Functions

int oski_MatMultAndMatTransMult (const oski_matrix_t A_tunable, oski_value_t alpha, const oski_vecview_t x_view, oski_value_t beta, oski_vecview_t y_view, oski_matop_t opA, oski_value_t omega, const oski_vecview_t w_view, oski_value_t zeta, oski_vecview_t z_view)
 Computes $y \leftarrow \alpha\cdot Ax + \beta\cdot y$ and $z \leftarrow \omega\cdot\mathrm{op}(A)x + \zeta\cdot z$, where $\mathrm{op}(A) \in \{A, A^T, A^H\}$.
int oski_CheckArgsMatMultAndMatTransMult (const oski_matrix_t A_tunable, oski_value_t alpha, const oski_vecview_t x_view, oski_value_t beta, oski_vecview_t y_view, oski_matop_t op, oski_value_t omega, const oski_vecview_t w_view, oski_value_t zeta, oski_vecview_t z_view, const char *caller)
 Verify the arguments to a function with a calling signature like oski_MatMultAndMatTransMult().

Tracing.

#define GET_XFLOP_MatMultAndMatTransMult(args)   (4.0*((const oski_traceargs_MatMultAndMatTransMult_t *)(args))->num_vecs)
 Compute the "flop factor.".
void oski_MakeArglistMatMultAndMatTransMult (oski_value_t alpha, const oski_vecview_t x_view, oski_value_t beta, const oski_vecview_t y_view, oski_matop_t opA, oski_value_t omega, const oski_vecview_t w_view, oski_value_t zeta, const oski_vecview_t z_view, oski_traceargs_MatMultAndMatTransMult_t *args)
 Initialize a static argument signature for a call to oski_MatMultAndMatTransMult().


Detailed Description

Sparse simultaneous multiplication by $A$ and $A^T$.


Define Documentation

#define INC_OSKI_A_AND_AT_H

oski/a_and_at.h included.


Function Documentation

int oski_CheckArgsMatMultAndMatTransMult ( const oski_matrix_t  A_tunable,
oski_value_t  alpha,
const oski_vecview_t  x,
oski_value_t  beta,
oski_vecview_t  y,
oski_matop_t  op,
oski_value_t  omega,
const oski_vecview_t  w,
oski_value_t  zeta,
oski_vecview_t  z,
const char *  caller 
)

Verify the arguments to a function with a calling signature like oski_MatMultAndMatTransMult().

Allows for symbolic arguments.

Verify the arguments to a function with a calling signature like oski_MatMultAndMatTransMult().

Returns:
0 if all arguments are OK, or an error code (plus a call to the error handler) otherwise.

References ERR_BAD_MAT, INVALID_MAT, MACRO_TO_STRING, OP_NORMAL, and OSKI_ERR_BAD_MAT_MS.


Generated on Fri Apr 8 22:35:18 2011 for BeBOP Optimized Sparse Kernel Interface Library by  doxygen 1.5.9