about summary refs log tree commit diff
path: root/analyzer
diff options
context:
space:
mode:
authorgiraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8>2016-05-06 01:49:34 +0000
committergiraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8>2016-05-06 01:49:34 +0000
commit9ba114c3ad06f0e09c27c5f1af294359acc092bd (patch)
tree675713563e01ea22a0ad3e899c7eab4bbf1ab658 /analyzer
parentfcef5f472bbdcce7a6ac989555fc5795e37c8030 (diff)
downloadnetpbm-mirror-9ba114c3ad06f0e09c27c5f1af294359acc092bd.tar.gz
netpbm-mirror-9ba114c3ad06f0e09c27c5f1af294359acc092bd.tar.xz
netpbm-mirror-9ba114c3ad06f0e09c27c5f1af294359acc092bd.zip
Remove use of C99 isfinite
git-svn-id: http://svn.code.sf.net/p/netpbm/code/trunk@2757 9d0c8265-081b-0410-96cb-a4ca84ce46f8
Diffstat (limited to 'analyzer')
-rw-r--r--analyzer/pnmpsnr.c19
1 files changed, 17 insertions, 2 deletions
diff --git a/analyzer/pnmpsnr.c b/analyzer/pnmpsnr.c
index 19f013a4..1ddefac2 100644
--- a/analyzer/pnmpsnr.c
+++ b/analyzer/pnmpsnr.c
@@ -2,7 +2,7 @@
  *  pnmpsnr.c: Compute error (RMSE, PSNR) between images
  *
  *
- *  Derived from pnmpnsmr by Ulrich Hafner, part of his fiasco package,
+ *  Derived from pnmpnsmr by Ullrich Hafner, part of his fiasco package,
  *  On 2001.03.04.
 
  *  Copyright (C) 1994-2000 Ullrich Hafner <hafner@bigfoot.de>
@@ -402,6 +402,21 @@ psnrFromSumSqDiff(struct SqDiff const sumSqDiff,
 
 
 
+static bool
+psnrIsFinite(double const psnr) {
+
+    /* We would just use C standard isfinite(), but that is not standard
+       before C99.  Neither is INFINITY.
+
+       A finite PSNR, in this program, cannot be anywhere near 1,000,000,
+       because of limits of the program, so we just compare to that.
+    */
+
+    return psnr < 1000000.0;
+}
+
+
+
 static void
 reportPsnrHuman(struct Psnr   const psnr,
                 ColorSpace    const colorSpace,
@@ -417,7 +432,7 @@ reportPsnrHuman(struct Psnr   const psnr,
 
         pm_asprintf(&label, "%s:", colorSpace.componentName[i]);
 
-        if (isfinite(psnr.psnr[i]))
+        if (psnrIsFinite(psnr.psnr[i]))
             pm_message("  %-6.6s %.2f dB", label, psnr.psnr[i]);
         else
             pm_message("  %-6.6s no difference", label);