r348: fix linefeed problem
[ctsim.git] / libctsupport / mathfuncs.cpp
index c9b18ac3da75ca61cf6c10e82bfe5689a4bca0a7..c6dd98dafc0c3188eccda386b43e5eb7a81a3f03 100644 (file)
@@ -2,7 +2,7 @@
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2000 Kevin Rosenberg
 **
-**  $Id: mathfuncs.cpp,v 1.6 2001/01/02 05:34:57 kevin Exp $
+**  $Id: mathfuncs.cpp,v 1.7 2001/01/02 16:02:13 kevin Exp $
 **
 **  This program is free software; you can redistribute it and/or modify
 **  it under the terms of the GNU General Public License (version 2) as
@@ -81,57 +81,57 @@ normalizeAngle (double theta)
   
   return (theta);
 }
-\r
-\r
-void \r
-vectorNumericStatistics (std::vector<double> vec, const int nPoints, double& min, double& max, double& mean, double& mode, double& median, double& stddev)\r
-{\r
-  if (nPoints <= 0)\r
-    return;\r
-  \r
-  mean = 0;\r
-  min = vec[0];\r
-  max = vec[0];\r
-  int i;\r
-  for (i = 0; i < nPoints; i++) {\r
-    double v = vec[i];\r
-    if (v > max)\r
-      max = v;\r
-    if (v < min)\r
-      min = v;\r
-    mean += v;\r
-  }\r
-  mean /= nPoints;\r
-  \r
-  static const int nbin = 1024;\r
-  int hist[ nbin ] = {0};\r
-  double spread = max - min;\r
-  mode = 0;\r
-  stddev = 0;\r
-  for (i = 0; i < nPoints; i++) {\r
-    double v = vec[i];\r
-    int b = static_cast<int>((((v - min) / spread) * (nbin - 1)) + 0.5);\r
-    hist[b]++;\r
-    double diff = (v - mean);\r
-    stddev += diff * diff;\r
-  }\r
-  stddev = sqrt (stddev / nPoints);\r
-  \r
-  int max_binindex = 0;\r
-  int max_bin = -1;\r
-  for (int ibin = 0; ibin < nbin; ibin++) {\r
-    if (hist[ibin] > max_bin) {\r
-      max_bin = hist[ibin];\r
-      max_binindex = ibin;\r
-    }\r
-  }\r
-  \r
-  mode = (max_binindex * spread / (nbin - 1)) + min;\r
-  \r
-  std::sort(vec.begin(), vec.end());\r
-  \r
-  if (nPoints % 2)  // Odd\r
-    median = vec[((nPoints - 1) / 2)];\r
-  else        // Even\r
-    median = (vec[ (nPoints / 2) - 1 ] + vec[ nPoints / 2 ]) / 2;\r
-}\r
+
+
+void 
+vectorNumericStatistics (std::vector<double> vec, const int nPoints, double& min, double& max, double& mean, double& mode, double& median, double& stddev)
+{
+  if (nPoints <= 0)
+    return;
+  
+  mean = 0;
+  min = vec[0];
+  max = vec[0];
+  int i;
+  for (i = 0; i < nPoints; i++) {
+    double v = vec[i];
+    if (v > max)
+      max = v;
+    if (v < min)
+      min = v;
+    mean += v;
+  }
+  mean /= nPoints;
+  
+  static const int nbin = 1024;
+  int hist[ nbin ] = {0};
+  double spread = max - min;
+  mode = 0;
+  stddev = 0;
+  for (i = 0; i < nPoints; i++) {
+    double v = vec[i];
+    int b = static_cast<int>((((v - min) / spread) * (nbin - 1)) + 0.5);
+    hist[b]++;
+    double diff = (v - mean);
+    stddev += diff * diff;
+  }
+  stddev = sqrt (stddev / nPoints);
+  
+  int max_binindex = 0;
+  int max_bin = -1;
+  for (int ibin = 0; ibin < nbin; ibin++) {
+    if (hist[ibin] > max_bin) {
+      max_bin = hist[ibin];
+      max_binindex = ibin;
+    }
+  }
+  
+  mode = (max_binindex * spread / (nbin - 1)) + min;
+  
+  std::sort(vec.begin(), vec.end());
+  
+  if (nPoints % 2)  // Odd
+    median = vec[((nPoints - 1) / 2)];
+  else        // Even
+    median = (vec[ (nPoints / 2) - 1 ] + vec[ nPoints / 2 ]) / 2;
+}