pspp-dev
[Top][All Lists]
Advanced

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

[warnings 5/7] Fix some constness problems that led to warnings.


From: Ben Pfaff
Subject: [warnings 5/7] Fix some constness problems that led to warnings.
Date: Fri, 17 Sep 2010 21:36:30 -0700

---
 src/language/stats/oneway.c     |    5 +++--
 src/language/stats/regression.q |    4 ++--
 src/math/categoricals.c         |   26 ++++++++++++++------------
 src/math/categoricals.h         |    4 ++--
 src/math/covariance.c           |   30 +++++++++++++-----------------
 src/math/covariance.h           |    6 +++---
 6 files changed, 37 insertions(+), 38 deletions(-)

diff --git a/src/language/stats/oneway.c b/src/language/stats/oneway.c
index aa8a255..9a69500 100644
--- a/src/language/stats/oneway.c
+++ b/src/language/stats/oneway.c
@@ -418,7 +418,8 @@ run_oneway (const struct oneway_spec *cmd,
                                                       cmd->wv, cmd->exclude, 
                                                       makeit,
                                                       updateit,
-                                                      cmd->vars[v], 
ws.dd_total[v]);
+                                                      CONST_CAST (struct 
variable *, cmd->vars[v]),
+                                                       ws.dd_total[v]);
 
       ws.vws[v].cov = covariance_2pass_create (1, &cmd->vars[v],
                                               cats, 
@@ -580,7 +581,7 @@ run_oneway (const struct oneway_spec *cmd,
   
   for (v = 0; v < cmd->n_vars; ++v)
     {
-      struct categoricals *cats = covariance_get_categoricals (ws.vws[v].cov);
+      const struct categoricals *cats = covariance_get_categoricals 
(ws.vws[v].cov);
 
       categoricals_done (cats);
       
diff --git a/src/language/stats/regression.q b/src/language/stats/regression.q
index 8f9979a..668804d 100644
--- a/src/language/stats/regression.q
+++ b/src/language/stats/regression.q
@@ -1,5 +1,5 @@
 /* PSPP - a program for statistical analysis.
-   Copyright (C) 2005, 2009 Free Software Foundation, Inc.
+   Copyright (C) 2005, 2009, 2010 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -810,10 +810,10 @@ fill_covariance (gsl_matrix *cov, struct covariance 
*all_cov,
   size_t dep_subscript;
   size_t *rows;
   const gsl_matrix *ssizes;
-  const gsl_matrix *cm;
   const gsl_matrix *mean_matrix;
   const gsl_matrix *ssize_matrix;
   double result = 0.0;
+  gsl_matrix *cm;
   
   cm = covariance_calculate_unnormalized (all_cov);
   rows = xnmalloc (cov->size1 - 1, sizeof (*rows));
diff --git a/src/math/categoricals.c b/src/math/categoricals.c
index c8b337e..29c1e0f 100644
--- a/src/math/categoricals.c
+++ b/src/math/categoricals.c
@@ -1,5 +1,5 @@
 /* PSPP - a program for statistical analysis.
-   Copyright (C) 2009 Free Software Foundation, Inc.
+   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -16,19 +16,20 @@
 
 #include <config.h>
 
-#include <stdio.h>
+#include "math/categoricals.h"
 
-#include "categoricals.h"
+#include <stdio.h>
 
-#include <gl/xalloc.h>
-#include <data/variable.h>
-#include <data/case.h>
-#include <data/value.h>
-#include <libpspp/hmap.h>
-#include <libpspp/pool.h>
-#include <libpspp/array.h>
+#include "data/case.h"
+#include "data/value.h"
+#include "data/variable.h"
+#include "libpspp/array.h"
+#include "libpspp/cast.h"
+#include "libpspp/hmap.h"
+#include "libpspp/pool.h"
+#include "libpspp/str.h"
 
-#include <libpspp/str.h>
+#include "gl/xalloc.h"
 
 struct value_node
 {
@@ -311,7 +312,7 @@ categoricals_total (const struct categoricals *cat)
 /* This function must be called *before* any call to categoricals_get_*_by 
subscript an
  *after* all calls to categoricals_update */
 void
-categoricals_done (struct categoricals *cat)
+categoricals_done (const struct categoricals *cat_)
 {
   /* Implementation Note: Whilst this function is O(n) in cat->n_cats_total, 
in most
      uses it will be more efficient that using a tree based structure, since it
@@ -319,6 +320,7 @@ categoricals_done (struct categoricals *cat)
 
      1 call of O(n) + 10^9 calls of O(1) is better than 10^9 calls of O(log n).
   */
+  struct categoricals *cat = CONST_CAST (struct categoricals *, cat_);
   int v;
   int idx = 0;
   cat->reverse_variable_map = pool_calloc (cat->pool,
diff --git a/src/math/categoricals.h b/src/math/categoricals.h
index 09ced7d..85fcc1a 100644
--- a/src/math/categoricals.h
+++ b/src/math/categoricals.h
@@ -1,5 +1,5 @@
 /* PSPP - a program for statistical analysis.
-   Copyright (C) 2009 Free Software Foundation, Inc.
+   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -61,7 +61,7 @@ size_t categoricals_total (const struct categoricals *cat);
 */
 size_t categoricals_get_n_variables (const struct categoricals *cat);
 
-void categoricals_done (struct categoricals *cat);
+void categoricals_done (const struct categoricals *);
 
 const struct variable * categoricals_get_variable_by_subscript (const struct 
categoricals *cat, int subscript);
 
diff --git a/src/math/covariance.c b/src/math/covariance.c
index aa7f417..cf486de 100644
--- a/src/math/covariance.c
+++ b/src/math/covariance.c
@@ -1,5 +1,5 @@
 /* PSPP - a program for statistical analysis.
-   Copyright (C) 2009 Free Software Foundation, Inc.
+   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -529,7 +529,7 @@ cm_to_gsl (struct covariance *cov)
 }
 
 
-static const gsl_matrix *
+static gsl_matrix *
 covariance_calculate_double_pass (struct covariance *cov)
 {
   size_t i, j;
@@ -553,7 +553,7 @@ covariance_calculate_double_pass (struct covariance *cov)
   return  cm_to_gsl (cov);
 }
 
-static const gsl_matrix *
+static gsl_matrix *
 covariance_calculate_single_pass (struct covariance *cov)
 {
   size_t i, j;
@@ -598,12 +598,10 @@ covariance_calculate_single_pass (struct covariance *cov)
 }
 
 
-/* 
-   Return a pointer to gsl_matrix containing the pairwise covariances.
-   The matrix remains owned by the COV object, and must not be freed.
-   Call this function only after all data have been accumulated.
-*/
-const gsl_matrix *
+/* Return a pointer to a newly allocated gsl_matrix containing the pairwise
+   covariances.  The caller takes ownership of the returned matrix.  Call this
+   function only after all data have been accumulated. */
+gsl_matrix *
 covariance_calculate (struct covariance *cov)
 {
   if ( cov->state <= 0 )
@@ -625,7 +623,7 @@ covariance_calculate (struct covariance *cov)
 /*
   Covariance computed without dividing by the sample size.
  */
-static const gsl_matrix *
+static gsl_matrix *
 covariance_calculate_double_pass_unnormalized (struct covariance *cov)
 {
   size_t i, j;
@@ -647,7 +645,7 @@ covariance_calculate_double_pass_unnormalized (struct 
covariance *cov)
   return  cm_to_gsl (cov);
 }
 
-static const gsl_matrix *
+static gsl_matrix *
 covariance_calculate_single_pass_unnormalized (struct covariance *cov)
 {
   size_t i, j;
@@ -679,12 +677,10 @@ covariance_calculate_single_pass_unnormalized (struct 
covariance *cov)
 }
 
 
-/* 
-   Return a pointer to gsl_matrix containing the pairwise covariances.
-   The matrix remains owned by the COV object, and must not be freed.
-   Call this function only after all data have been accumulated.
-*/
-const gsl_matrix *
+/* Return a pointer to a newly allocated gsl_matrix containing the pairwise
+   covariances.  The caller takes ownership of the returned matrix.  Call this
+   function only after all data have been accumulated. */
+gsl_matrix *
 covariance_calculate_unnormalized (struct covariance *cov)
 {
   if ( cov->state <= 0 )
diff --git a/src/math/covariance.h b/src/math/covariance.h
index cb83e15..3605ba8 100644
--- a/src/math/covariance.h
+++ b/src/math/covariance.h
@@ -1,5 +1,5 @@
 /* PSPP - a program for statistical analysis.
-   Copyright (C) 2009 Free Software Foundation, Inc.
+   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -40,8 +40,8 @@ void covariance_accumulate (struct covariance *, const struct 
ccase *);
 void covariance_accumulate_pass1 (struct covariance *, const struct ccase *);
 void covariance_accumulate_pass2 (struct covariance *, const struct ccase *);
 
-const gsl_matrix * covariance_calculate (struct covariance *cov);
-const gsl_matrix * covariance_calculate_unnormalized (struct covariance *);
+gsl_matrix *covariance_calculate (struct covariance *cov);
+gsl_matrix * covariance_calculate_unnormalized (struct covariance *);
 
 void covariance_destroy (struct covariance *cov);
 
-- 
1.7.1




reply via email to

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