18 #include "order/order_internal.h"
50 if (ordeptr == NULL) {
51 pastix_print_error(
"pastixOrderCheck: invalid ordeptr pointer" );
56 pastix_print_error(
"pastixOrderCheck: invalid number of vertices and/or column blocks" );
62 pastix_print_error(
"pastixOrderCheck: invalid vertex node base number" );
68 assert( ordeptr->
cblknbr == 0 );
73 if ( ordeptr->
permtab == NULL ) {
74 pastix_print_error(
"pastixOrderCheck: permtab array is missing" );
77 if ( ordeptr->
peritab == NULL ) {
78 pastix_print_error(
"pastixOrderCheck: peritab array is missing" );
81 if ( ordeptr->
rangtab == NULL ) {
82 pastix_print_error(
"pastixOrderCheck: rangtab array is missing" );
85 if ( ordeptr->
treetab == NULL ) {
86 pastix_print_error(
"pastixOrderCheck: treetab array is missing" );
90 assert(baseval == ordeptr->
rangtab[0]);
92 peritax = ordeptr->
peritab - baseval;
100 for (rangnum = 0; rangnum < ordeptr->
cblknbr; rangnum ++)
102 if ((ordeptr->
rangtab[rangnum] < baseval) ||
103 (ordeptr->
rangtab[rangnum] > vnodmax) ||
106 pastix_print_error(
"pastixOrderCheck: invalid range array" );
111 permtax = ordeptr->
permtab - baseval;
116 for (vnodnum = baseval;
117 vnodnum <= vnodmax; vnodnum ++)
121 vnodold = peritax[vnodnum];
122 if ((vnodold < baseval) ||
123 (vnodold > vnodmax) ||
124 (permtax[vnodold] != vnodnum))
126 pastix_print_error(
"pastixOrderCheck: invalid permutation arrays" );
134 cblkmax = ordeptr->
cblknbr - baseval;
135 for (rangnum = 0; rangnum < ordeptr->
cblknbr-1; rangnum ++)
137 if ((ordeptr->
treetab[rangnum] > cblkmax ) ||
138 ((ordeptr->
treetab[rangnum] != -1) &&
139 (ordeptr->
treetab[rangnum] < (baseval+rangnum)) ) )
141 pastix_print_error(
"pastixOrderCheck: invalid range array in treetab" );
145 if ((rangnum > 0) && (ordeptr->
treetab[rangnum] != (baseval-1)))
147 pastix_print_error(
"pastixOrderCheck: invalid father for cblknbr-1 node" );
BEGIN_C_DECLS typedef int pastix_int_t
@ PASTIX_ERR_BADPARAMETER
int pastixOrderCheck(const pastix_order_t *ordeptr)
This routine checks the correctness of the ordering structure.