Merge commit 'origin/stable'
[pspp-builds.git] / src / math / covariance-matrix.h
index 573d3e7ec27b8a2fda2387cb8423e85e9f31991c..c16e5cbc4dfde7d3056b05a32363769e43175251 100644 (file)
 #define COVARIANCE_MATRIX_H
 
 #include <math/design-matrix.h>
+#include <math/interaction.h>
 
 struct moments1;
 struct ccase;
 struct hsh_table;
+struct covariance_matrix;
+enum
+{ ONE_PASS,
+  TWO_PASS
+};
 
-struct design_matrix *
-covariance_matrix_create (size_t, const struct variable *[]);
-
-void covariance_matrix_destroy (struct design_matrix *);
+/*
+  How to deal with missing values.
+ */
+enum
+{ LISTWISE,
+  PAIRWISE
+};
+struct design_matrix *covariance_matrix_create (size_t, const struct variable *[]);
 
+void covariance_matrix_destroy (struct covariance_matrix *);
 void covariance_pass_two (struct design_matrix *, double,
-                         double, double, const struct variable *, 
-                         const struct variable *, const union value *, const union value *);
-void covariance_accumulate (struct hsh_table *, struct moments1 **,
-                           const struct ccase *, const struct variable **, size_t);
-struct hsh_table * covariance_hsh_create (size_t);
-struct design_matrix * covariance_accumulator_to_matrix (struct hsh_table *, const struct moments1 **,
-                                                        const struct variable **, size_t, size_t);
+                         double, double, const struct variable *,
+                         const struct variable *, const union value *,
+                         const union value *);
+void covariance_matrix_compute (struct covariance_matrix *);
+struct covariance_matrix *covariance_matrix_init (size_t,
+                                                 const struct variable *[],
+                                                 int, int, enum mv_class);
+void covariance_matrix_free (struct covariance_matrix *);
+void covariance_matrix_accumulate (struct covariance_matrix *,
+                                  const struct ccase *, void **, size_t);
+struct design_matrix *covariance_to_design (const struct covariance_matrix *);
+double covariance_matrix_get_element (const struct covariance_matrix *, size_t, size_t);
+void covariance_interaction_set (struct covariance_matrix *, 
+                                const struct interaction_variable **, size_t);
 #endif