PaStiX Handbook  6.3.2
extracblk.h
Go to the documentation of this file.
1 /**
2  *
3  * @file extracblk.h
4  *
5  * PaStiX analyse headers for extra symbolic structure functions.
6  *
7  * @copyright 1998-2023 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
8  * Univ. Bordeaux. All rights reserved.
9  *
10  * @version 6.3.2
11  * @author Mathieu Faverge
12  * @date 2023-07-21
13  *
14  * @addtogroup blend_dev_split
15  * @{
16  * This module contains all subroutines to initialize the candidates array
17  * for each supernode, as well as supernode properties that are defined by
18  * level such as 2D layouts and 2D tasks.
19  *
20  **/
21 #ifndef _extracblk_h_
22 #define _extracblk_h_
23 
24 /**
25  * @brief Extra symbol cblk structure
26  */
27 typedef struct extracblk_s {
28  pastix_int_t cblknbr; /**< Number of cblk allocated */
29  pastix_int_t addcblk; /**< Number of cblk created */
30  pastix_int_t addblok; /**< Number of blok created */
31  pastix_int_t addblof; /**< Number of blok created due to facing cblk splited */
32  pastix_int_t *sptcblk; /**< Index for splitted cblk in the cblktab */
33  pastix_int_t *sptcbnb; /**< Number of splitted cblk for a cblk */
34  pastix_int_t curcblk; /**< Cursor for cblktab */
35  pastix_int_t sizcblk; /**< Size of allocated cblktab */
36  symbol_cblk_t *cblktab; /**< Array of column blocks [+1,based] */
38 
39 void extraCblkInit ( pastix_int_t cblknbr,
40  ExtraCblk_t *extracblk );
41 void extraCblkExit ( ExtraCblk_t *extracblk );
42 void extraCblkAdd ( ExtraCblk_t *extracblk,
43  pastix_int_t fcolnum,
44  pastix_int_t lcolnum,
45  int8_t selevtx );
46 void extraCblkMerge( const ExtraCblk_t *extracblk,
47  symbol_matrix_t *newsymb,
48  Cand **candtab );
49 
50 #endif /* _extracblk_h_ */
51 
52 /**
53  *@}
54  */
BEGIN_C_DECLS typedef int pastix_int_t
Definition: datatypes.h:51
Processor candidate group to own a column blok.
Definition: cand.h:28
pastix_int_t sizcblk
Definition: extracblk.h:35
pastix_int_t addblok
Definition: extracblk.h:30
pastix_int_t cblknbr
Definition: extracblk.h:28
pastix_int_t addcblk
Definition: extracblk.h:29
pastix_int_t addblof
Definition: extracblk.h:31
symbol_cblk_t * cblktab
Definition: extracblk.h:36
pastix_int_t curcblk
Definition: extracblk.h:34
pastix_int_t * sptcbnb
Definition: extracblk.h:33
pastix_int_t * sptcblk
Definition: extracblk.h:32
void extraCblkAdd(ExtraCblk_t *extracblk, pastix_int_t fcolnum, pastix_int_t lcolnum, int8_t selevtx)
Add a new additional cblk defined by its first and last columns.
Definition: extracblk.c:187
void extraCblkExit(ExtraCblk_t *extracblk)
Free the extracblk structure.
Definition: extracblk.c:154
struct extracblk_s ExtraCblk_t
Extra symbol cblk structure.
void extraCblkMerge(const ExtraCblk_t *extracblk, symbol_matrix_t *newsymb, Cand **candtab)
Merge the existing symbol structure with the additional information from the extracblk structure.
Definition: extracblk.c:222
void extraCblkInit(pastix_int_t cblknbr, ExtraCblk_t *extracblk)
Initialize the extracblk structure.
Definition: extracblk.c:127
Extra symbol cblk structure.
Definition: extracblk.h:27
Symbol column block structure.
Definition: symbol.h:45
Symbol matrix structure.
Definition: symbol.h:77