Browse Source

Typo/bug fix in logarithm calculations.

git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@733 bbc10eb1-c90d-0410-af57-cb519fbb1720
master
Dave Parker 18 years ago
parent
commit
539c794980
  1. 2
      prism/src/prism/PrismUtils.java
  2. 4
      prism/src/simulator/simexpression.cc

2
prism/src/prism/PrismUtils.java

@ -60,7 +60,7 @@ public class PrismUtils
public static double log(double x, double b)
{
// If base is <0 or ==1 (or +Inf/NaN), then result is NaN
// If base is <=0 or ==1 (or +Inf/NaN), then result is NaN
if (b <= 0 || b == 1 || (Double.isInfinite(b)) || Double.isNaN(b)) return Double.NaN;
// Otherwise, log_b (x) is log(x) / log(b)

4
prism/src/simulator/simexpression.cc

@ -1410,8 +1410,8 @@ double CLog::EvaluateDouble()
base = rexpr->Evaluate();
else
base = rexpr->EvaluateDouble();
// If base is <0 or ==1 (or +Inf/NaN), then result is NaN
if (base < 0 || base == 1.0 || base == HUGE_VAL || base != base) { res = 0.0; res /= res; }
// If base is <=0 or ==1 (or +Inf/NaN), then result is NaN
if (base <= 0 || base == 1.0 || base == HUGE_VAL || base != base) { res = 0.0; res /= res; }
// If arg is <0 or NaN, then result is NaN
else if (val < 0 || val != val) { res = 0.0; res /= res; }
// If arg is +Inf, then result is +Inf

Loading…
Cancel
Save