pspp-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Pspp-cvs] pspp/src/math/ts innovations.c


From: Jason H Stover
Subject: [Pspp-cvs] pspp/src/math/ts innovations.c
Date: Sat, 01 Jul 2006 01:45:12 +0000

CVSROOT:        /cvsroot/pspp
Module name:    pspp
Changes by:     Jason H Stover <jstover>        06/07/01 01:45:12

Modified files:
        src/math/ts    : innovations.c 

Log message:
        corrected increment of lag

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/pspp/src/math/ts/innovations.c?cvsroot=pspp&r1=1.6&r2=1.7

Patches:
Index: innovations.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/math/ts/innovations.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- innovations.c       21 Jun 2006 09:20:52 -0000      1.6
+++ innovations.c       1 Jul 2006 01:45:11 -0000       1.7
@@ -83,15 +83,18 @@
   Read the first MAX_LAG cases.
  */
 static bool
-innovations_init_cases (struct casereader *r, struct ccase **c, size_t max_lag)
+innovations_init_cases (struct casereader *r, struct ccase **inn_cs, size_t 
max_lag)
 {
   bool value = true;
   size_t lag = 0;
 
+  assert (r != NULL);
+  assert (inn_cs != NULL);
   while (value && lag < max_lag)
     {
+      assert (inn_cs[lag] != NULL);
+      value = casereader_read (r, inn_cs[lag]);
       lag++;
-      value = casereader_read (r, c[lag]);
     }
   return value;
 }
@@ -117,7 +120,7 @@
                struct innovations_estimate **est, size_t max_lag)
 {
   struct casereader *r;
-  struct ccase **c;
+  struct ccase **inn_c;
   size_t lag;
   size_t n;
   bool read_case = false;
@@ -126,27 +129,27 @@
   const union value *tmp;
   const union value *tmp2;
 
-  c = xnmalloc (max_lag, sizeof (*c));
+  inn_c = xnmalloc (max_lag, sizeof (*inn_c));
   
   for (lag = 0; lag < max_lag; lag++)
     {
-      c[lag] = xmalloc (sizeof *c[lag]);
+      inn_c[lag] = xmalloc (sizeof *inn_c[lag]);
     }
 
   r = casefile_get_reader (cf);
-  read_case = innovations_init_cases (r, c, max_lag);
+  read_case = innovations_init_cases (r, inn_c, max_lag);
 
   while (read_case)
     {
       for (n = 0; n < n_vars; n++)
        {
-         tmp2 = case_data (c[0], est[n]->variable->fv);
+         tmp2 = case_data (inn_c[0], est[n]->variable->fv);
          if (!mv_is_value_missing (&est[n]->variable->miss, tmp2))
            {
              x = tmp2->f - est[n]->mean;
              for (lag = 1; lag <= max_lag; lag++)
                {
-                 tmp = case_data (c[lag], est[n]->variable->fv);
+                 tmp = case_data (inn_c[lag], est[n]->variable->fv);
                  if (!mv_is_value_missing (&est[n]->variable->miss, tmp))
                    {
                      d = (tmp->f - est[n]->mean);
@@ -155,7 +158,7 @@
                }
            }
        }
-      read_case = innovations_update_cases (r, c, max_lag);
+      read_case = innovations_update_cases (r, inn_c, max_lag);
     }
   for (lag = 0; lag <= max_lag; lag++)
     {
@@ -166,9 +169,9 @@
     }
   for (lag = 0; lag < max_lag; lag++)
     {
-      free (c[lag]);
+      free (inn_c[lag]);
     }
-  free (c);
+  free (inn_c);
 }
 static double
 innovations_convolve (double **theta, struct innovations_estimate *est,
@@ -273,7 +276,7 @@
 
 struct innovations_estimate ** 
 pspp_innovations (const struct variable **vars, 
-                 size_t *n_vars,
+                 size_t n_vars,
                  size_t lag, 
                  const struct casefile *cf)
 {
@@ -281,8 +284,8 @@
   size_t i;
   size_t j;
 
-  est = xnmalloc (*n_vars, sizeof *est);
-  for (i = 0; i < *n_vars; i++)
+  est = xnmalloc (n_vars, sizeof *est);
+  for (i = 0; i < n_vars; i++)
     {
       if (vars[i]->type == NUMERIC)
        {
@@ -300,15 +303,15 @@
        }
       else
        {
-         *n_vars--;
+         n_vars--;
 /*       msg (MW, _("Cannot compute autocovariance for a non-numeric variable 
%s"), */
 /*                  var_to_string (vars[i])); */
        }
     }
 
-  get_mean_variance (*n_vars, cf, est);
-  get_covariance (*n_vars, cf, est, lag);
-  get_coef (*n_vars, cf, est, lag);
+  get_mean_variance (n_vars, cf, est);
+  get_covariance (n_vars, cf, est, lag);
+  get_coef (n_vars, cf, est, lag);
   
   return est;
 }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]