Merge commit 'origin/stable'
[pspp-builds.git] / src / math / ts / innovations.c
index f69cf89874c530564f7a2182d46915939dd6a19a..3ab2f3edce165ed0a709688e711867986683eee3 100644 (file)
  */
 
 #include <config.h>
+
+#include <math.h>
+#include <stdlib.h>
+
 #include <gsl/gsl_matrix.h>
 #include <gsl/gsl_vector.h>
-#include <gsl/gsl_math.h>
-#include <stdlib.h>
-#include <libpspp/alloc.h>
 #include <libpspp/compiler.h>
+#include <libpspp/misc.h>
 #include <math/coefficient.h>
 #include <math/ts/innovations.h>
 
+#include "xalloc.h"
+
 static void
 get_mean (const gsl_matrix *data,
          struct innovations_estimate **est)
@@ -55,7 +59,7 @@ get_mean (const gsl_matrix *data,
       for (n = 0; n < data->size2; n++)
        {
          tmp = gsl_matrix_get (data, i, n);
-         if (!gsl_isnan (tmp))
+         if (!isnan (tmp))
            {
              est[n]->n_obs += 1.0;
              d = (tmp - est[n]->mean) / est[n]->n_obs;
@@ -76,9 +80,9 @@ update_cov (struct innovations_estimate **est, gsl_vector_const_view x,
     {
       xj = gsl_vector_get (&x.vector, j);
       yj = gsl_vector_get (&y.vector, j);
-      if (!gsl_isnan (xj))
+      if (!isnan (xj))
        {
-         if (!gsl_isnan (yj))
+         if (!isnan (yj))
            {
              xj -= est[j]->mean;
              yj -= est[j]->mean;
@@ -160,7 +164,7 @@ innovations_update_scale (struct innovations_estimate *est, double *theta,
       for (j = 0; j < i; j++)
        {
          k = i - j - 1;
-         result -= theta[k] * theta[k] * est->scale[j];
+         result -= pow2 (theta[k]) * est->scale[j];
        }
       est->scale[i] = result;
     }