X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fmath%2Fcovariance-matrix.h;h=c16e5cbc4dfde7d3056b05a32363769e43175251;hb=refs%2Fheads%2Fpivot-table;hp=eee5e16a64512cfc648f0f66931ee1244afbdfaa;hpb=685407ad62911e5edb1ec093a01ec9e46563af44;p=pspp diff --git a/src/math/covariance-matrix.h b/src/math/covariance-matrix.h index eee5e16a64..c16e5cbc4d 100644 --- a/src/math/covariance-matrix.h +++ b/src/math/covariance-matrix.h @@ -21,14 +21,41 @@ #ifndef COVARIANCE_MATRIX_H #define COVARIANCE_MATRIX_H -#include "design-matrix.h" +#include +#include + +struct moments1; +struct ccase; +struct hsh_table; +struct covariance_matrix; +enum +{ ONE_PASS, + TWO_PASS +}; -struct design_matrix * -covariance_matrix_create (int, const struct variable *[]); - -void covariance_matrix_destroy (struct design_matrix *); - -void covariance_pass_one (struct design_matrix *, double, double, - double, double, const struct variable *, - const struct variable *, const union value *, const union value *); +/* + 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_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