diff options
author | giraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8> | 2019-01-20 19:23:11 +0000 |
---|---|---|
committer | giraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8> | 2019-01-20 19:23:11 +0000 |
commit | 4b8daa32342e426270aca945853934e8e25f0af1 (patch) | |
tree | 5a9f25739cc003e45a7a5ef8dfbd47c7f8c63c92 /generator/pgmkernel.c | |
parent | 6d06b8e0c26536edaedf04ae56849667b85c1325 (diff) | |
download | netpbm-mirror-4b8daa32342e426270aca945853934e8e25f0af1.tar.gz netpbm-mirror-4b8daa32342e426270aca945853934e8e25f0af1.tar.xz netpbm-mirror-4b8daa32342e426270aca945853934e8e25f0af1.zip |
Fix handling of floating point imprecision in unnormalizing samples
git-svn-id: http://svn.code.sf.net/p/netpbm/code/trunk@3514 9d0c8265-081b-0410-96cb-a4ca84ce46f8
Diffstat (limited to 'generator/pgmkernel.c')
-rw-r--r-- | generator/pgmkernel.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/generator/pgmkernel.c b/generator/pgmkernel.c index ec634c16..37072c38 100644 --- a/generator/pgmkernel.c +++ b/generator/pgmkernel.c @@ -223,11 +223,13 @@ main(int argc, const char * argv[]) { unsigned int col; for (col = 0; col < (cmdline.cols +1) / 2; ++col) { + double const epsilon = 1e-15; double const dx2 = SQR(col - xcenter); double const normalized = t(dx2, dy2, cmdline.weight) / 2 / tMax; - gray const grayval = ROUNDU(cmdline.maxval * (0.5 + normalized)); + gray const grayval = + ROUNDU(cmdline.maxval * (0.5 + normalized + epsilon)); halfKernel[arow][col ] = grayval; halfKernel[arow][cmdline.cols - col - 1] = grayval; |