86 pastix_complex64_t *valptr;
89 if( bcsc->Uvalues != NULL )
93 valptr = (pastix_complex64_t*)(bcsc->Uvalues);
94 for( bloc=0; bloc<bcsc->cscfnbr; bloc++ )
96 for( j=0; j<bcsc->cscftab[bloc].colnbr; j++ )
99 for( i = bcsc->cscftab[bloc].coltab[j]; i < bcsc->cscftab[bloc].coltab[j+1]; i++ )
101 sum += cabs(valptr[i]);
111 valptr = (pastix_complex64_t*)bcsc->Lvalues;
113 MALLOC_INTERN( sumrow, bcsc->gN,
double);
114 memset( sumrow, 0, bcsc->gN *
sizeof(
double) );
116 for( bloc=0; bloc < bcsc->cscfnbr; bloc++ )
118 for( j=0; j < bcsc->cscftab[bloc].colnbr; j++ )
120 for( i = bcsc->cscftab[bloc].coltab[j]; i < bcsc->cscftab[bloc].coltab[j+1]; i++ )
122 sumrow[ bcsc->rowtab[i] ] += cabs(valptr[i]);
127 for( i=0; i<bcsc->gN; i++)
134 memFree_null( sumrow );
207 double *valptr = (
double*)bcsc->Lvalues;
210 for( bloc=0; bloc < bcsc->cscfnbr; bloc++ )
212 for( j=0; j < bcsc->cscftab[bloc].colnbr; j++ )
214 for( i = bcsc->cscftab[bloc].coltab[j]; i < bcsc->cscftab[bloc].coltab[j+1]; i++, valptr++ )
216 frobenius_update( 1, &scale, &sum, valptr);
217#if defined(PRECISION_z) || defined(PRECISION_c)
219 frobenius_update( 1, &scale, &sum, valptr);
225 norm = scale*sqrt(sum);