diff -N -r -c HLib-1.3/Library/hca.c HLib-1.3new/Library/hca.c *** HLib-1.3/Library/hca.c 2004-12-12 17:42:32.000000000 +0100 --- HLib-1.3new/Library/hca.c 2008-04-29 12:09:52.000000000 +0200 *************** *** 493,498 **** --- 493,499 ---- double *U, *V; int ldU,ldV; double *row_pivot, *col_pivot, *diag_pivot, *C, *D, *c, *d, inv, inv2; + int rcprod = row->size * col->size; ad = rk_arithmetics_adaptive(); p=bfactory->p; *************** *** 505,511 **** k = bfactory->aca_coefficients(row, col, bfactory, eps, row_pivot, col_pivot, diag_pivot); } ! if(k > 2*row->size || k > 2*col->size || p*p*p*p > row->size * col->size){ f = new_fullmatrix(r->rows,r->cols); bfactory->integrate_nearfield(row->start, row->size, col->start, col->size, --- 506,512 ---- k = bfactory->aca_coefficients(row, col, bfactory, eps, row_pivot, col_pivot, diag_pivot); } ! if(k > 2*row->size || k > 2*col->size || (p*p*p*p > rcprod && rcprod / row->size == col->size)){ f = new_fullmatrix(r->rows,r->cols); bfactory->integrate_nearfield(row->start, row->size, col->start, col->size,