LADEL main
Sparse LDL factorization package with rank 1 and rowadd/rowdel updates
ladel_matvec.h
Go to the documentation of this file.
1/**
2 * @file ladel_matvec.h
3 * @author Ben Hermans
4 * @brief Routines to compute matrix vector products.
5 */
6
7#ifndef LADEL_MATVEC_H
8#define LADEL_MATVEC_H
9
10#ifdef __cplusplus
11extern "C" {
12#endif
13
14#include "ladel_global.h"
15#include "ladel_types.h"
16
17/**
18 * Computes @f$y = Mx@f$ or @f$y += Mx@f$ (for @a reset==TRUE of @a FALSE respectively).
19 *
20 * @param M Matrix
21 * @param x Vector
22 * @param y Resulting matrix vector product
23 * @param reset If @a TRUE, @a y is first set to zero before adding @f$Mx@f$
24 */
25void ladel_matvec( const ladel_sparse_matrix *M,
26 const ladel_double *x,
27 ladel_double *y,
28 ladel_int reset);
29
30/**
31 * Computes @f$y = M^Tx@f$ or @f$y += M^Tx@f$ (for @a reset==TRUE of @a FALSE respectively).
32 *
33 * @param M Matrix
34 * @param x Vector
35 * @param y Resulting matrix vector product
36 * @param reset If @a TRUE, @a y is first set to zero before adding @f$M^Tx@f$
37 */
39 const ladel_double *x,
40 ladel_double *y,
41 ladel_int reset);
42
43/**
44 * Computes (for a symmetric matrix M) @f$y = Mx@f$ or @f$y += Mx@f$ (for @a reset==TRUE of @a FALSE respectively).
45 *
46 * @param M Symmetric Matrix (@a M->symmetry==UPPER or @a LOWER)
47 * @param x Vector
48 * @param y Resulting matrix vector product
49 * @param reset If @a TRUE, @a y is first set to zero before adding @f$Mx@f$
50 */
52 const ladel_double *x,
53 ladel_double *y,
54 ladel_int reset);
55
56#ifdef __cplusplus
57}
58#endif
59
60#endif /* LADEL_MATVEC_H */
Memory allocation routines.
void ladel_tpose_matvec(const ladel_sparse_matrix *M, const ladel_double *x, ladel_double *y, ladel_int reset)
Computes or (for reset==TRUE of FALSE respectively).
Definition: ladel_matvec.c:16
void ladel_symmetric_matvec(const ladel_sparse_matrix *M, const ladel_double *x, ladel_double *y, ladel_int reset)
Computes (for a symmetric matrix M) or (for reset==TRUE of FALSE respectively).
Definition: ladel_matvec.c:27
void ladel_matvec(const ladel_sparse_matrix *M, const ladel_double *x, ladel_double *y, ladel_int reset)
Computes or (for reset==TRUE of FALSE respectively).
Definition: ladel_matvec.c:5
Structures and types used in LADEL routines.
int64_t ladel_int
Type for integer numbers (default: int64_t)
Definition: ladel_types.h:24
double ladel_double
Type for floating point numbers (default: double)
Definition: ladel_types.h:20
Sparse matrix in compressed column storage.
Definition: ladel_types.h:35