25 struct SolverBackup_s {
64 MALLOC_INTERN( b, 1, SolverBackup_t );
65 memset( b, 0,
sizeof(SolverBackup_t) );
69 Task *task = solvmtx->tasktab;
71 MALLOC_INTERN(b->task_ctrbcnt, solvmtx->tasknbr,
pastix_int_t);
73 for (i=0; i<solvmtx->tasknbr; i++, task++)
75 b->task_ctrbcnt[i] = task->
ctrbcnt;
84 for (i=0; i<solvmtx->
bloknbr; i++, blok++) {
85 b->symbol_cblknum[i] = blok->
fcblknm;
89 b->symbol_nodenbr = solvmtx->
nodenbr;
93 for (i=0; i<solvmtx->
cblknbr; i++, cblk++)
142 const SolverBackup_t *b )
146 if ( solvmtx == NULL || b == NULL ) {
156 if (solvmtx->tasknbr)
158 Task *task = solvmtx->tasktab;
160 for (i=0; i<solvmtx->tasknbr; i++, task++)
162 task->
ctrbcnt = b->task_ctrbcnt[i];
170 for (i=0; i<solvmtx->
bloknbr; i++, blok++) {
171 blok->
fcblknm = b->symbol_cblknum[i];
175 solvmtx->
nodenbr = b->symbol_nodenbr;
203 memFree_null(b->task_ctrbcnt);
206 if (b->fanin_ctrbnbr)
208 memFree_null(b->fanin_ctrbnbr);
209 memFree_null(b->fanin_prionum);
212 if (b->symbol_cblknum) {
213 memFree_null(b->symbol_cblknum);
BEGIN_C_DECLS typedef int pastix_int_t
int solverBackupRestore(SolverMatrix *solvmtx, const SolverBackup_t *b)
Restore initial values.
void solverBackupExit(SolverBackup_t *b)
Free the solver backup data structure.
SolverBackup_t * solverBackupInit(const SolverMatrix *solvmtx)
Initialize the backup structure.
@ PASTIX_ERR_BADPARAMETER
SolverBlok *restrict bloktab
pastix_int_t volatile ctrbcnt
SolverCblk *restrict cblktab
Solver column block structure.
Solver column block structure.
The task structure for the numerical factorization.