-
-void
-levene(const struct dictionary *dict,
- struct casereader *reader,
- const struct variable *v_indep, size_t n_dep,
- const struct variable **v_dep,
- enum mv_class exclude)
-{
- struct casereader *pass1, *pass2;
- struct ccase *c;
- struct levene_info l;
-
- l.n_dep = n_dep;
- l.v_indep = v_indep;
- l.v_dep = v_dep;
- l.exclude = exclude;
- l.lz = xnmalloc (l.n_dep, sizeof *l.lz);
- l.lz_denominator = xnmalloc (l.n_dep, sizeof *l.lz_denominator);
-
- casereader_split (reader, &pass1, &pass2);
-
- levene_precalc (&l);
- for (; (c = casereader_read (pass1)) != NULL; case_unref (c))
- levene_calc (dict, c, &l);
- casereader_destroy (pass1);
- levene_postcalc (&l);
-
- levene2_precalc(&l);
- for (; (c = casereader_read (pass2)) != NULL; case_unref (c))
- levene2_calc (dict, c, &l);
- casereader_destroy (pass2);
- levene2_postcalc (&l);
-
- free (l.lz_denominator);
- free (l.lz);
-}
-
-static void
-levene_precalc (const struct levene_info *l)