Fully implement arbitrary delimiters on DATA LIST, extending the half
[pspp-builds.git] / src / aggregate.c
index 9ffa35f5b53bfee2af7a7aaa0a039890866c3f60..4f2f1f45800fad3ad719ba32e57e1421b3c4c77d 100644 (file)
@@ -53,7 +53,7 @@ struct agr_var
     int int1, int2;
     char *string;
     int missing;
-    struct moments *moments;
+    struct moments1 *moments;
   };
 
 /* Aggregation functions. */
@@ -387,8 +387,8 @@ parse_aggregate_functions (struct agr_proc *agr)
          
          if (token == T_STRING)
            {
-             ds_truncate (&tokstr, 120);
-             dest_label[n_dest - 1] = xstrdup (ds_value (&tokstr));
+             ds_truncate (&tokstr, 255);
+             dest_label[n_dest - 1] = xstrdup (ds_c_str (&tokstr));
              lex_get ();
            }
        }
@@ -454,7 +454,7 @@ parse_aggregate_functions (struct agr_proc *agr)
                lex_match (',');
                if (token == T_STRING)
                  {
-                   arg[i].c = xstrdup (ds_value (&tokstr));
+                   arg[i].c = xstrdup (ds_c_str (&tokstr));
                    type = ALPHA;
                  }
                else if (token == T_NUM)
@@ -666,7 +666,7 @@ agr_destroy (struct agr_proc *agr)
          free (iter->string);
        }
       else if (iter->function == SD)
-        moments_destroy (iter->moments);
+        moments1_destroy (iter->moments);
       free (iter);
     }
   free (agr->prev_break);
@@ -831,7 +831,7 @@ accumulate_aggregate_info (struct agr_proc *agr,
             iter->dbl[1] += weight;
             break;
          case SD:
-            moments_pass_two (iter->moments, v->f, weight);
+            moments1_add (iter->moments, v->f, weight);
             break;
          case MAX:
            iter->dbl[0] = max (iter->dbl[0], v->f);
@@ -996,7 +996,7 @@ dump_aggregate_info (struct agr_proc *agr, struct ccase *output)
               double variance;
 
               /* FIXME: we should use two passes. */
-              moments_calculate (i->moments, NULL, NULL, &variance,
+              moments1_calculate (i->moments, NULL, NULL, &variance,
                                  NULL, NULL);
               if (variance != SYSMIS)
                 v->f = sqrt (variance);
@@ -1098,9 +1098,9 @@ initialize_aggregate_info (struct agr_proc *agr)
          break;
         case SD:
           if (iter->moments == NULL)
-            iter->moments = moments_create (MOMENT_VARIANCE);
+            iter->moments = moments1_create (MOMENT_VARIANCE);
           else
-            moments_clear (iter->moments);
+            moments1_clear (iter->moments);
           break;
        default:
          iter->dbl[0] = iter->dbl[1] = iter->dbl[2] = 0.0;