math: Improve comments.
[pspp] / src / math / percentiles.c
index a387d3d4c270b1685984b6758e899f98f239a5f6..79514eb2504f95d9fd3bfad37c3854aa8fe8c510 100644 (file)
 
 #include "gl/xalloc.h"
 
-#include "gettext.h"
-#define _(msgid) gettext (msgid)
-#define N_(msgid) msgid
-
+/* Return the value of the percentile. */
 double
 percentile_calculate (const struct percentile *ptl, enum pc_alg alg)
 {
@@ -143,16 +140,17 @@ static void
 destroy (struct statistic *stat)
 {
   struct percentile *ptl = UP_CAST (stat, struct percentile, parent.parent);
-  struct order_stats *os = &ptl->parent;
-  free (os->k);
   free (ptl);
 }
 
 
+/* Create the Pth percentile.
+   W is the total sum of weights in the data set.
+*/
 struct percentile *
 percentile_create (double p, double W)
 {
-  struct percentile *ptl = xzalloc (sizeof (*ptl));
+  struct percentile *ptl = XZALLOC (struct percentile);
   struct order_stats *os = &ptl->parent;
   struct statistic *stat = &os->parent;
 
@@ -163,7 +161,7 @@ percentile_create (double p, double W)
   ptl->w = W;
 
   os->n_k = 2;
-  os->k = xcalloc (2, sizeof (*os->k));
+  os->k = ptl->k;
   os->k[0].tc = W * p;
   os->k[1].tc = (W + 1.0) * p;