LADEL main
Sparse LDL factorization package with rank 1 and rowadd/rowdel updates
ladel_pattern.h
Go to the documentation of this file.
1/**
2 * @file ladel_pattern.h
3 * @author Ben Hermans
4 * @brief Routines to compute the pattern of the result of a backsolve.
5 * @details These routines are used to compute the pattern of the (next) row in L during the numerical factorization,
6 * or more generally as a first step in performing a backsolve operation with a sparse right hand side.
7 */
8
9#ifndef LADEL_PATTERN_H
10#define LADEL_PATTERN_H
11
12#ifdef __cplusplus
13extern "C" {
14#endif
15
16#include "ladel_types.h"
17
18/**
19 * Computes the pattern of the (next) row in L.
20 *
21 * @note This pattern is stored in sym->pattern[start] through sym->pattern[m-1], where start is the return
22 * value of this function.
23 *
24 * @param M Matrix to be factorized
25 * @param sym Symbolics of the factorization
26 * @param row Row in L of which to compute the pattern
27 * @return Starting index for the pattern
28 */
30 ladel_symbolics *sym,
31 ladel_int row);
32
33/**
34 * Computes a depth-first search of the given pattern through the elimination tree.
35 *
36 * This routine computes the pattern of the result of a backsolve (with a sparse right hand side).
37 *
38 * @note This pattern is stored in sym->pattern[start] through sym->pattern[m-1], where start is the return
39 * value of this function.
40 *
41 * @param W Right hand side vector of the backsolve
42 * @param sym Symbolics struct
43 * @param col_in_W Column in W to consider
44 * @param maximum_row Perform the Gaussian elimination only up until this row (not included)
45 * @return Starting index for the pattern
46 */
48 ladel_symbolics *sym,
49 ladel_int col_in_W,
50 ladel_int maximum_row);
51
52#ifdef __cplusplus
53}
54#endif
55
56#endif /*LADEL_PATTERN_H*/
ladel_int ladel_nonzero_pattern_of_row_in_L(ladel_sparse_matrix *M, ladel_symbolics *sym, ladel_int row)
Computes the pattern of the (next) row in L.
Definition: ladel_pattern.c:5
ladel_int ladel_etree_dfs(ladel_sparse_matrix *W, ladel_symbolics *sym, ladel_int col_in_W, ladel_int maximum_row)
Computes a depth-first search of the given pattern through the elimination tree.
Definition: ladel_pattern.c:40
Structures and types used in LADEL routines.
int64_t ladel_int
Type for integer numbers (default: int64_t)
Definition: ladel_types.h:24
Sparse matrix in compressed column storage.
Definition: ladel_types.h:35
Structure capturing symbolic information used for and during the factorization.
Definition: ladel_types.h:54