X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fstats%2Freliability.q;h=25aff211dd739b8d63f8af886a565cadafdde11d;hb=e6e91e018e8d6c278aff859be10f5ddfcc06dd6d;hp=edacdf12a1a5aea5fb615b91d07cfc0f80fb39cd;hpb=2287a5970f043d5e18ebaf0013d0a2968c6f6051;p=pspp diff --git a/src/language/stats/reliability.q b/src/language/stats/reliability.q index edacdf12a1..25aff211dd 100644 --- a/src/language/stats/reliability.q +++ b/src/language/stats/reliability.q @@ -1,5 +1,5 @@ /* PSPP - a program for statistical analysis. - Copyright (C) 2008 Free Software Foundation, Inc. + Copyright (C) 2008, 2009 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 @@ -262,8 +262,11 @@ cmd_reliability (struct lexer *lexer, struct dataset *ds) free (c->items); moments1_destroy (c->total); - for (x = 0 ; x < c->n_items; ++x) - moments1_destroy (c->m[x]); + + if ( c->m) + for (x = 0 ; x < c->n_items; ++x) + moments1_destroy (c->m[x]); + free (c->m); } @@ -301,7 +304,7 @@ run_reliability (struct casereader *input, struct dataset *ds UNUSED, { int i; int si; - struct ccase c; + struct ccase *c; casenumber n_missing ; casenumber n_valid = 0; @@ -335,7 +338,7 @@ run_reliability (struct casereader *input, struct dataset *ds UNUSED, s, NULL); } - for (; casereader_read (input, &c); case_destroy (&c)) + for (; (c = casereader_read (input)) != NULL; case_unref (c)) { double weight = 1.0; n_valid ++; @@ -345,9 +348,9 @@ run_reliability (struct casereader *input, struct dataset *ds UNUSED, struct cronbach *s = &rel->sc[si]; for (i = 0 ; i < s->n_items ; ++i ) - moments1_add (s->m[i], case_data (&c, s->items[i])->f, weight); + moments1_add (s->m[i], case_data (c, s->items[i])->f, weight); - moments1_add (s->total, case_data_idx (&c, s->totals_idx)->f, weight); + moments1_add (s->total, case_data_idx (c, s->totals_idx)->f, weight); } } casereader_destroy (input); @@ -640,10 +643,10 @@ reliability_statistics_model_split (struct tab_table *tbl, tab_float (tbl, 3, 8, TAB_RIGHT, g, 8, 3); tmp = (1.0 - r*r) * rel->sc[1].n_items * rel->sc[2].n_items / - SQR (rel->sc[0].n_items); + pow2 (rel->sc[0].n_items); - uly = sqrt( SQR (SQR (r)) + 4 * SQR (r) * tmp); - uly -= SQR (r); + uly = sqrt( pow4 (r) + 4 * pow2 (r) * tmp); + uly -= pow2 (r); uly /= 2 * tmp; tab_float (tbl, 3, 7, TAB_RIGHT, uly, 8, 3);