projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Increase width of N and DEF cells in T-TEST.
[pspp]
/
src
/
language
/
stats
/
oneway.q
diff --git
a/src/language/stats/oneway.q
b/src/language/stats/oneway.q
index a792a2fb2b38d09717483fb254a041c9ce183964..9b45119f8664f1ae948a5bfc838479fa8115f921 100644
(file)
--- a/
src/language/stats/oneway.q
+++ b/
src/language/stats/oneway.q
@@
-1,7
+1,6
@@
/* PSPP - One way ANOVA. -*-c-*-
/* PSPP - One way ANOVA. -*-c-*-
-Copyright (C) 1997-9, 2000 Free Software Foundation, Inc.
-Author: John Darrington 2004
+Copyright (C) 1997-9, 2000, 2007 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
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
@@
-72,13
+71,13
@@
static bool bad_weight_warn = true;
static struct cmd_oneway cmd;
/* The independent variable */
static struct cmd_oneway cmd;
/* The independent variable */
-static struct variable *indep_var;
+static
const
struct variable *indep_var;
/* Number of dependent variables */
static size_t n_vars;
/* The dependent variables */
/* Number of dependent variables */
static size_t n_vars;
/* The dependent variables */
-static struct variable **vars;
+static
const
struct variable **vars;
/* A hash table containing all the distinct values of the independent
/* A hash table containing all the distinct values of the independent
@@
-176,7
+175,8
@@
output_oneway(void)
sum += subc_list_double_at(&cmd.dl_contrast[i],j);
if ( sum != 0.0 )
sum += subc_list_double_at(&cmd.dl_contrast[i],j);
if ( sum != 0.0 )
- msg(SW,_("Coefficients for contrast %d do not total zero"),i + 1);
+ msg(SW,_("Coefficients for contrast %d do not total zero"),
+ (int) i + 1);
}
if ( stat_tables & STAT_DESC )
}
if ( stat_tables & STAT_DESC )
@@
-225,7
+225,7
@@
oneway_custom_variables (struct lexer *lexer,
&& lex_token (lexer) != T_ALL)
return 2;
&& lex_token (lexer) != T_ALL)
return 2;
- if (!parse_variables (lexer, dict, &vars, &n_vars,
+ if (!parse_variables
_const
(lexer, dict, &vars, &n_vars,
PV_DUPLICATE
| PV_NUMERIC | PV_NO_SCRATCH) )
{
PV_DUPLICATE
| PV_NUMERIC | PV_NO_SCRATCH) )
{
@@
-435,7
+435,8
@@
show_descriptives(void)
gs = gs_array[count];
tab_text (t, 1, row + count,
gs = gs_array[count];
tab_text (t, 1, row + count,
- TAB_LEFT | TAT_TITLE ,value_to_string(&gs->id,indep_var));
+ TAB_LEFT | TAT_TITLE, var_get_value_name(indep_var,
+ &gs->id));
/* Now fill in the numbers ... */
/* Now fill in the numbers ... */
@@
-621,7
+622,7
@@
show_contrast_coeffs (short *bad_contrast)
group_value = group_values[count];
tab_text (t, count + 2, 1, TAB_CENTER | TAT_TITLE,
group_value = group_values[count];
tab_text (t, count + 2, 1, TAB_CENTER | TAT_TITLE,
- va
lue_to_string(group_value, indep_var
));
+ va
r_get_value_name (indep_var, group_value
));
for (i = 0 ; i < cmd.sbc_contrast ; ++i )
{
for (i = 0 ; i < cmd.sbc_contrast ; ++i )
{
@@
-867,7
+868,7
@@
precalc ( struct cmd_oneway *cmd UNUSED )
(hsh_compare_func *) compare_group,
(hsh_hash_func *) hash_group,
(hsh_free_func *) free_group,
(hsh_compare_func *) compare_group,
(hsh_hash_func *) hash_group,
(hsh_free_func *) free_group,
- (void *)
indep_var->width
);
+ (void *)
var_get_width (indep_var)
);
totals->sum=0;
totals->sum=0;
@@
-879,6
+880,12
@@
precalc ( struct cmd_oneway *cmd UNUSED )
}
}
}
}
+static void
+free_value (void *value_, const void *aux UNUSED)
+{
+ union value *value = value_;
+ free (value);
+}
static bool
run_oneway(const struct ccase *first, const struct casefile *cf,
static bool
run_oneway(const struct ccase *first, const struct casefile *cf,
@@
-895,12
+902,13
@@
run_oneway(const struct ccase *first, const struct casefile *cf,
global_group_hash = hsh_create(4,
(hsh_compare_func *) compare_values,
(hsh_hash_func *) hash_value,
global_group_hash = hsh_create(4,
(hsh_compare_func *) compare_values,
(hsh_hash_func *) hash_value,
-
0
,
- (void *)
indep_var->width
);
+
free_value
,
+ (void *)
var_get_width (indep_var)
);
precalc(cmd);
precalc(cmd);
- filter = casefilter_create ( (cmd->incl != ONEWAY_INCLUDE),
+ filter = casefilter_create ( (cmd->incl != ONEWAY_INCLUDE
+ ? MV_ANY : MV_SYSTEM),
vars, n_vars );
for(r = casefile_get_reader (cf, filter);
vars, n_vars );
for(r = casefile_get_reader (cf, filter);
@@
-911,13
+919,17
@@
run_oneway(const struct ccase *first, const struct casefile *cf,
const double weight =
dict_get_case_weight (dataset_dict (ds), &c, &bad_weight_warn);
const double weight =
dict_get_case_weight (dataset_dict (ds), &c, &bad_weight_warn);
-
- const union value *indep_val;
+ const union value *indep_val;
+ void **p;
+
if ( casefilter_variable_missing (filter, &c, indep_var))
continue;
if ( casefilter_variable_missing (filter, &c, indep_var))
continue;
- indep_val = case_data (&c, indep_var->fv);
+ indep_val = case_data (&c, indep_var);
+ p = hsh_probe (global_group_hash, indep_val);
+ if (*p == NULL)
+ *p = value_dup (indep_val, var_get_width (indep_var));
hsh_insert ( global_group_hash, (void *) indep_val );
hsh_insert ( global_group_hash, (void *) indep_val );
@@
-925,7
+937,7
@@
run_oneway(const struct ccase *first, const struct casefile *cf,
{
const struct variable *v = vars[i];
{
const struct variable *v = vars[i];
- const union value *val = case_data (&c, v
->fv
);
+ const union value *val = case_data (&c, v);
struct group_proc *gp = group_proc_get (vars[i]);
struct hsh_table *group_hash = gp->group_hash;
struct group_proc *gp = group_proc_get (vars[i]);
struct hsh_table *group_hash = gp->group_hash;