diff -N -r -c HLib-1.3old//Library/surfacebem.c HLib-1.3/Library/surfacebem.c *** HLib-1.3old//Library/surfacebem.c 2006-02-24 17:25:31.000000000 +0100 --- HLib-1.3/Library/surfacebem.c 2008-09-02 17:19:20.000000000 +0200 *************** *** 93,120 **** bfactory, f->e, f->rows); else if(row->sons == 0) { ! if(col->sons == 0) recfill_surfacebem_supermatrix(M->s[0], row, col, bfactory); ! else for(j=0; jsons; j++) recfill_surfacebem_supermatrix(M->s[j], row, col->son[j], bfactory); } else { ! if(col->sons == 0) for(i=0; isons; i++) recfill_surfacebem_supermatrix(M->s[i], row->son[i], col, bfactory); ! else for(i=0; isons; i++) for(j=0; jsons; j++) ! recfill_surfacebem_supermatrix(M->s[i+j*row->sons], ! row->son[i], col->son[j], bfactory); } } --- 93,130 ---- bfactory, f->e, f->rows); else if(row->sons == 0) { ! assert(M->block_rows == 1); ! if(col->sons == 0) { ! assert(M->block_cols == 1); recfill_surfacebem_supermatrix(M->s[0], row, col, bfactory); ! } ! else { ! assert(M->block_cols == col->sons); for(j=0; jsons; j++) recfill_surfacebem_supermatrix(M->s[j], row, col->son[j], bfactory); + } } else { ! assert(M->block_rows == row->sons); ! if(col->sons == 0) { ! assert(M->block_cols == 1); for(i=0; isons; i++) recfill_surfacebem_supermatrix(M->s[i], row->son[i], col, bfactory); ! } ! else { ! assert(M->block_cols == col->sons); for(i=0; isons; i++) for(j=0; jsons; j++) ! recfill_surfacebem_supermatrix(M->s[j+i*row->sons], ! row->son[j], col->son[i], bfactory); + } } }