projects
/
pspp-builds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge commit 'origin/stable'
[pspp-builds.git]
/
src
/
language
/
stats
/
t-test.q
diff --git
a/src/language/stats/t-test.q
b/src/language/stats/t-test.q
index 40bf97788b35e157082ebaf37a460f5216946c7c..5f5fc56f021d1ba60d125a8b23561b6dae79031b 100644
(file)
--- a/
src/language/stats/t-test.q
+++ b/
src/language/stats/t-test.q
@@
-1,5
+1,5
@@
/* PSPP - a program for statistical analysis.
/* PSPP - a program for statistical analysis.
- Copyright (C) 1997-9, 2000 Free Software Foundation, Inc.
+ Copyright (C) 1997-9, 2000
, 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
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
@@
-81,8
+81,8
@@
struct group_properties
/* The comparison criterion */
enum comparison criterion;
/* The comparison criterion */
enum comparison criterion;
- /* The
width of the
independent variable */
-
int indep_width
;
+ /* The independent variable */
+
struct variable *indep_var
;
union {
/* The value of the independent variable at which groups are determined to
union {
/* The value of the independent variable at which groups are determined to
@@
-1497,7
+1497,7
@@
common_calc (const struct dictionary *dict,
gs->n += weight;
gs->sum += weight * val->f;
gs->n += weight;
gs->sum += weight * val->f;
- gs->ssq += weight *
val->f * val->f
;
+ gs->ssq += weight *
pow2 (val->f)
;
}
}
return 0;
}
}
return 0;
@@
-1534,12
+1534,12
@@
common_postcalc (struct cmd_t_test *cmd)
gs->mean=gs->sum / gs->n;
gs->s_std_dev= sqrt (
gs->mean=gs->sum / gs->n;
gs->s_std_dev= sqrt (
- ( (gs->ssq / gs->n ) -
gs->mean * gs->mean
)
+ ( (gs->ssq / gs->n ) -
pow2 (gs->mean)
)
) ;
gs->std_dev= sqrt (
gs->n/ (gs->n-1) *
) ;
gs->std_dev= sqrt (
gs->n/ (gs->n-1) *
- ( (gs->ssq / gs->n ) -
gs->mean * gs->mean
)
+ ( (gs->ssq / gs->n ) -
pow2 (gs->mean)
)
) ;
gs->se_mean = gs->std_dev / sqrt (gs->n);
) ;
gs->se_mean = gs->std_dev / sqrt (gs->n);
@@
-1714,7
+1714,7
@@
group_precalc (struct cmd_t_test *cmd )
/* There's always 2 groups for a T - TEST */
ttpr->n_groups = 2;
/* There's always 2 groups for a T - TEST */
ttpr->n_groups = 2;
- gp.indep_
width = var_get_width (indep_var)
;
+ gp.indep_
var = indep_var
;
ttpr->group_hash = hsh_create (2,
(hsh_compare_func *) compare_group_binary,
ttpr->group_hash = hsh_create (2,
(hsh_compare_func *) compare_group_binary,
@@
-1810,12
+1810,12
@@
group_postcalc ( struct cmd_t_test *cmd )
gs->mean = gs->sum / gs->n;
gs->s_std_dev= sqrt (
gs->mean = gs->sum / gs->n;
gs->s_std_dev= sqrt (
- ( (gs->ssq / gs->n ) -
gs->mean * gs->mean
)
+ ( (gs->ssq / gs->n ) -
pow2 (gs->mean)
)
) ;
gs->std_dev= sqrt (
gs->n/ (gs->n-1) *
) ;
gs->std_dev= sqrt (
gs->n/ (gs->n-1) *
- ( (gs->ssq / gs->n ) -
gs->mean * gs->mean
)
+ ( (gs->ssq / gs->n ) -
pow2 (gs->mean)
)
) ;
gs->se_mean = gs->std_dev / sqrt (gs->n);
) ;
gs->se_mean = gs->std_dev / sqrt (gs->n);
@@
-1837,23
+1837,24
@@
calculate (struct cmd_t_test *cmd,
struct casereader *pass1, *pass2, *pass3;
struct taint *taint;
struct casereader *pass1, *pass2, *pass3;
struct taint *taint;
- struct ccase c;
+ struct ccase
*
c;
enum mv_class exclude = cmd->miss != TTS_INCLUDE ? MV_ANY : MV_SYSTEM;
enum mv_class exclude = cmd->miss != TTS_INCLUDE ? MV_ANY : MV_SYSTEM;
- if (!casereader_peek (input, 0, &c))
+ c = casereader_peek (input, 0);
+ if (c == NULL)
{
casereader_destroy (input);
return;
}
{
casereader_destroy (input);
return;
}
- output_split_file_values (ds,
&
c);
- case_
destroy (&
c);
+ output_split_file_values (ds, c);
+ case_
unref (
c);
if ( cmd->miss == TTS_LISTWISE )
input = casereader_create_filter_missing (input,
cmd->v_variables,
cmd->n_variables,
if ( cmd->miss == TTS_LISTWISE )
input = casereader_create_filter_missing (input,
cmd->v_variables,
cmd->n_variables,
- exclude, NULL);
+ exclude, NULL
, NULL
);
input = casereader_create_filter_weight (input, dict, NULL, NULL);
input = casereader_create_filter_weight (input, dict, NULL, NULL);
@@
-1861,8
+1862,8
@@
calculate (struct cmd_t_test *cmd,
casereader_split (input, &pass1, &pass2);
common_precalc (cmd);
casereader_split (input, &pass1, &pass2);
common_precalc (cmd);
- for (;
casereader_read (pass1, &c); case_destroy (&
c))
- common_calc (dict,
&
c, cmd, exclude);
+ for (;
(c = casereader_read (pass1)) != NULL; case_unref (
c))
+ common_calc (dict, c, cmd, exclude);
casereader_destroy (pass1);
common_postcalc (cmd);
casereader_destroy (pass1);
common_postcalc (cmd);
@@
-1870,22
+1871,22
@@
calculate (struct cmd_t_test *cmd,
{
case T_1_SAMPLE:
one_sample_precalc (cmd);
{
case T_1_SAMPLE:
one_sample_precalc (cmd);
- for (;
casereader_read (pass2, &c); case_destroy (&
c))
- one_sample_calc (dict,
&
c, cmd, exclude);
+ for (;
(c = casereader_read (pass2)) != NULL; case_unref (
c))
+ one_sample_calc (dict, c, cmd, exclude);
one_sample_postcalc (cmd);
break;
case T_PAIRED:
paired_precalc (cmd);
one_sample_postcalc (cmd);
break;
case T_PAIRED:
paired_precalc (cmd);
- for (;
casereader_read (pass2, &c); case_destroy (&
c))
- paired_calc (dict,
&
c, cmd, exclude);
+ for (;
(c = casereader_read (pass2)) != NULL; case_unref (
c))
+ paired_calc (dict, c, cmd, exclude);
paired_postcalc (cmd);
break;
case T_IND_SAMPLES:
pass3 = casereader_clone (pass2);
group_precalc (cmd);
paired_postcalc (cmd);
break;
case T_IND_SAMPLES:
pass3 = casereader_clone (pass2);
group_precalc (cmd);
- for (;
casereader_read (pass2, &c); case_destroy (&
c))
- group_calc (dict,
&
c, cmd, exclude);
+ for (;
(c = casereader_read (pass2)) != NULL; case_unref (
c))
+ group_calc (dict, c, cmd, exclude);
group_postcalc (cmd);
levene (dict, pass3, indep_var, cmd->n_variables, cmd->v_variables,
group_postcalc (cmd);
levene (dict, pass3, indep_var, cmd->n_variables, cmd->v_variables,
@@
-1926,10
+1927,6
@@
compare_group_binary (const struct group_statistics *a,
if ( p->criterion == CMP_LE )
{
if ( p->criterion == CMP_LE )
{
- /* less-than comparision is not meaningfull for
- alpha variables, so we shouldn't ever arrive here */
- assert (p->indep_width == 0 ) ;
-
flag_a = ( a->id.f < p->v.critical_value ) ;
flag_b = ( b->id.f < p->v.critical_value ) ;
}
flag_a = ( a->id.f < p->v.critical_value ) ;
flag_b = ( b->id.f < p->v.critical_value ) ;
}
@@
-1956,8
+1953,6
@@
hash_group_binary (const struct group_statistics *g,
if ( p->criterion == CMP_LE )
{
if ( p->criterion == CMP_LE )
{
- /* Not meaningfull to do a less than compare for alpha values ? */
- assert (p->indep_width == 0 ) ;
flag = ( g->id.f < p->v.critical_value ) ;
}
else if ( p->criterion == CMP_EQ)
flag = ( g->id.f < p->v.critical_value ) ;
}
else if ( p->criterion == CMP_EQ)
@@
-1977,10
+1972,10
@@
short
which_group (const struct group_statistics *g,
const struct group_properties *p)
{
which_group (const struct group_statistics *g,
const struct group_properties *p)
{
- if ( 0 == compare_values
(&g->id, &p->v.g_value[0], p->indep_width
))
+ if ( 0 == compare_values
_short (&g->id, &p->v.g_value[0], p->indep_var
))
return 0;
return 0;
- if ( 0 == compare_values
(&g->id, &p->v.g_value[1], p->indep_width
))
+ if ( 0 == compare_values
_short (&g->id, &p->v.g_value[1], p->indep_var
))
return 1;
return 2;
return 1;
return 2;