projects
/
pspp-builds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Reworked settings so as to use one large struct instead of lots of static
[pspp-builds.git]
/
src
/
language
/
stats
/
frequencies.q
diff --git
a/src/language/stats/frequencies.q
b/src/language/stats/frequencies.q
index 93e16f7f2126bed8396fa45b6a043963734a6441..e7509052b05b2aa93dfadbe3eb72a6cc97383e35 100644
(file)
--- a/
src/language/stats/frequencies.q
+++ b/
src/language/stats/frequencies.q
@@
-38,12
+38,10
@@
#include <language/command.h>
#include <language/dictionary/split-file.h>
#include <language/lexer/lexer.h>
#include <language/command.h>
#include <language/dictionary/split-file.h>
#include <language/lexer/lexer.h>
-#include <libpspp/alloc.h>
#include <libpspp/array.h>
#include <libpspp/bit-vector.h>
#include <libpspp/compiler.h>
#include <libpspp/hash.h>
#include <libpspp/array.h>
#include <libpspp/bit-vector.h>
#include <libpspp/compiler.h>
#include <libpspp/hash.h>
-#include <libpspp/magic.h>
#include <libpspp/message.h>
#include <libpspp/misc.h>
#include <libpspp/pool.h>
#include <libpspp/message.h>
#include <libpspp/misc.h>
#include <libpspp/pool.h>
@@
-60,6
+58,7
@@
#include "freq.h"
#include "minmax.h"
#include "freq.h"
#include "minmax.h"
+#include "xalloc.h"
#include "gettext.h"
#define _(msgid) gettext (msgid)
#include "gettext.h"
#define _(msgid) gettext (msgid)
@@
-311,7
+310,7
@@
internal_cmd_frequencies (struct lexer *lexer, struct dataset *ds)
if (!parse_frequencies (lexer, ds, &cmd, NULL))
return CMD_FAILURE;
if (!parse_frequencies (lexer, ds, &cmd, NULL))
return CMD_FAILURE;
- if (cmd.onepage_limit ==
NOT_LONG
)
+ if (cmd.onepage_limit ==
LONG_MIN
)
cmd.onepage_limit = 50;
/* Figure out statistics to calculate. */
cmd.onepage_limit = 50;
/* Figure out statistics to calculate. */
@@
-539,10
+538,11
@@
precalc (struct casereader *input, struct dataset *ds)
struct ccase c;
size_t i;
struct ccase c;
size_t i;
- if (!casereader_peek (input, 0, &c))
- return;
- output_split_file_values (ds, &c);
- case_destroy (&c);
+ if (casereader_peek (input, 0, &c))
+ {
+ output_split_file_values (ds, &c);
+ case_destroy (&c);
+ }
pool_destroy (data_pool);
data_pool = pool_create ();
pool_destroy (data_pool);
data_pool = pool_create ();
@@
-637,12
+637,12
@@
postcalc (void)
}
/* Returns the comparison function that should be used for
}
/* Returns the comparison function that should be used for
- sorting a frequency table by FRQ_SORT using VA
R
_TYPE
- va
riabl
es. */
+ sorting a frequency table by FRQ_SORT using VA
L
_TYPE
+ va
lu
es. */
static hsh_compare_func *
static hsh_compare_func *
-get_freq_comparator (int frq_sort, enum va
r_type var
_type)
+get_freq_comparator (int frq_sort, enum va
l_type val
_type)
{
{
- bool is_numeric = va
r_type == VAR
_NUMERIC;
+ bool is_numeric = va
l_type == VAL
_NUMERIC;
switch (frq_sort)
{
case FRQ_AVALUE:
switch (frq_sort)
{
case FRQ_AVALUE:
@@
-766,7
+766,7
@@
frq_custom_variables (struct lexer *lexer, struct dataset *ds, struct cmd_freque
vf->groups = NULL;
vf->width = var_get_width (v);
vf->print = *var_get_print_format (v);
vf->groups = NULL;
vf->width = var_get_width (v);
vf->print = *var_get_print_format (v);
- if (vf->width > MAX_SHORT_STRING && get_algorithm () == COMPATIBLE)
+ if (vf->width > MAX_SHORT_STRING &&
settings_
get_algorithm () == COMPATIBLE)
{
enum fmt_type type = var_get_print_format (v)->type;
vf->width = MAX_SHORT_STRING;
{
enum fmt_type type = var_get_print_format (v)->type;
vf->width = MAX_SHORT_STRING;
@@
-1257,7
+1257,7
@@
calc_stats (const struct variable *v, double d[frq_n_stats])
double tp;
if ( percentiles[i].flag2 ) continue ;
double tp;
if ( percentiles[i].flag2 ) continue ;
- if (
get_algorithm
() != COMPATIBLE )
+ if (
settings_get_algorithm
() != COMPATIBLE )
tp =
(ft->valid_cases - 1) * percentiles[i].p;
else
tp =
(ft->valid_cases - 1) * percentiles[i].p;
else
@@
-1308,7
+1308,7
@@
calc_stats (const struct variable *v, double d[frq_n_stats])
double s;
double dummy;
double s;
double dummy;
- if (
get_algorithm
() != COMPATIBLE )
+ if (
settings_get_algorithm
() != COMPATIBLE )
{
s = modf((ft->valid_cases - 1) * percentiles[i].p , &dummy);
}
{
s = modf((ft->valid_cases - 1) * percentiles[i].p , &dummy);
}
@@
-1499,7
+1499,7
@@
freq_tab_to_slice_array(const struct freq_tab *frq_tab,
{
const struct freq *frq = &frq_tab->valid[i];
{
const struct freq *frq = &frq_tab->valid[i];
-
slices[i].label = var_get_value_name (var, frq->value
);
+
var_append_value_name (var, frq->value, &slices[i].label
);
slices[i].magnetude = frq->count;
}
slices[i].magnetude = frq->count;
}
@@
-1513,12
+1513,17
@@
static void
do_piechart(const struct variable *var, const struct freq_tab *frq_tab)
{
struct slice *slices;
do_piechart(const struct variable *var, const struct freq_tab *frq_tab)
{
struct slice *slices;
- int n_slices;
+ int n_slices
, i
;
slices = freq_tab_to_slice_array(frq_tab, var, &n_slices);
piechart_plot(var_to_string(var), slices, n_slices);
slices = freq_tab_to_slice_array(frq_tab, var, &n_slices);
piechart_plot(var_to_string(var), slices, n_slices);
+ for (i = 0 ; i < n_slices ; ++i )
+ {
+ ds_destroy (&slices[i].label);
+ }
+
free(slices);
}
free(slices);
}