From 23033404b0a4f3101a3090981329780b088d8050 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 17 Jul 2017 18:18:21 -0400 Subject: [PATCH] skip table consistency check for bitmapped tables --- src/pair_table.cpp | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/src/pair_table.cpp b/src/pair_table.cpp index b36843ff44..782fb43f9a 100644 --- a/src/pair_table.cpp +++ b/src/pair_table.cpp @@ -453,20 +453,25 @@ void PairTable::read_table(Table *tb, char *file, char *keyword) double r,e,f,rprev,rnext,eprev,enext,fleft,fright; int ferror = 0; - for (int i = 1; i < tb->ninput-1; i++) { - r = tb->rfile[i]; - rprev = tb->rfile[i-1]; - rnext = tb->rfile[i+1]; - e = tb->efile[i]; - eprev = tb->efile[i-1]; - enext = tb->efile[i+1]; - f = tb->ffile[i]; - fleft = - (e-eprev) / (r-rprev); - fright = - (enext-e) / (rnext-r); - if (f < fleft && f < fright) ferror++; - if (f > fleft && f > fright) ferror++; - //printf("Values %d: %g %g %g\n",i,r,e,f); - //printf(" secant %d %d %g: %g %g %g\n",i,ferror,r,fleft,fright,f); + + // bitmapped tables do not follow regular ordering, so we cannot check them here + + if (tb->rflag != BMP) { + for (int i = 1; i < tb->ninput-1; i++) { + r = tb->rfile[i]; + rprev = tb->rfile[i-1]; + rnext = tb->rfile[i+1]; + e = tb->efile[i]; + eprev = tb->efile[i-1]; + enext = tb->efile[i+1]; + f = tb->ffile[i]; + fleft = - (e-eprev) / (r-rprev); + fright = - (enext-e) / (rnext-r); + if (f < fleft && f < fright) ferror++; + if (f > fleft && f > fright) ferror++; + //printf("Values %d: %g %g %g\n",i,r,e,f); + //printf(" secant %d %d %g: %g %g %g\n",i,ferror,r,fleft,fright,f); + } } if (ferror) {