103 assert( bloknbr >= 1 );
105 cblkrecv->next = NULL;
106 cblkrecv->ownerid = -1;
111 for( i=0; i<bloknbr; i++, blok++ ) {
159 for( ; blok<lblok; blok++ ) {
164 assert( fcblk[0].bloknum + i < fcblk[1].bloknum );
210 if ( *faninptr == NULL ) {
212 (*faninptr)->ownerid = ownerid;
214 assert( (*faninptr)->ownerid == ownerid );
261 while( (rcblk != NULL) && (rcblk->ownerid != ownerid) ) {
267 if ( rcblk == NULL ) {
269 rcblk->ownerid = ownerid;
270 if ( prev == NULL ) {
275 assert( prev->next == NULL );
280 assert( rcblk->ownerid == ownerid );
314 for ( j=symbcblk[0].bloknum; j<symbcblk[1].
bloknum;
315 j++, symbblok++, ftgtblok++ )
324 assert( bloknbr >= 1 );
BEGIN_C_DECLS typedef int pastix_int_t
int solver_recv_get_bloknbr(const solver_cblk_recv_t *ftgtptr, const symbol_cblk_t *symbcblk, const symbol_blok_t *symbblok)
Compute the number of valid blocks in fanin/recv cblk.
static void solver_recv_add_contrib(solver_cblk_recv_t *rcblk, const symbol_matrix_t *symbmtx, const symbol_cblk_t *cblk, const symbol_blok_t *blok, const symbol_cblk_t *fcblk)
TODO.
void solver_recv_update_fanin(solver_cblk_recv_t **faninptr, const symbol_matrix_t *symbmtx, const symbol_cblk_t *cblk, const symbol_blok_t *blok, const symbol_cblk_t *fcblk, int ownerid)
Register a new contribution to a fanin cblk.
void solver_recv_update_recv(solver_cblk_recv_t **recvptr, const symbol_matrix_t *symbmtx, const symbol_cblk_t *cblk, const symbol_blok_t *blok, const symbol_cblk_t *fcblk, int ownerid)
Register a new contribution to a recv cblk.
static void solver_recv_update_rows(solver_blok_recv_t *blok, pastix_int_t frownum, pastix_int_t lrownum)
Update rows indices of a reception/fanin blok.
static void solver_recv_update_cols(solver_cblk_recv_t *cblk, pastix_int_t fcolnum, pastix_int_t lcolnum)
Update columns indices of a reception/fanin cblk.
static solver_cblk_recv_t * solver_recv_cblk_init(const symbol_matrix_t *symbmtx, const symbol_cblk_t *cblk)
Create a new reception/fanin cblk and initialize to the default values.
static int is_symbblock_inside_fblock(const symbol_blok_t *blok, const symbol_blok_t *fblok)
Check if a block is included inside another one.
Symbol column block structure.
solver_blok_recv_t bloktab[1]
Solver recv block structure.
Solver recv column block structure.