projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Whitespace changes only.
[pspp]
/
src
/
language
/
xforms
/
sample.c
diff --git
a/src/language/xforms/sample.c
b/src/language/xforms/sample.c
index fd5bd5ec40e2d2358541caa006090c2eae7030f5..dafaecee646a84176385396e2b1c90d192d4637b 100644
(file)
--- a/
src/language/xforms/sample.c
+++ b/
src/language/xforms/sample.c
@@
-1,6
+1,5
@@
/* PSPP - computes sample statistics.
Copyright (C) 1997-9, 2000 Free Software Foundation, Inc.
/* PSPP - computes sample statistics.
Copyright (C) 1997-9, 2000 Free Software Foundation, Inc.
- Written by Ben Pfaff <blp@gnu.org>.
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
@@
-18,18
+17,21
@@
02110-1301, USA. */
#include <config.h>
02110-1301, USA. */
#include <config.h>
+
#include <gsl/gsl_rng.h>
#include <limits.h>
#include <stdio.h>
#include <math.h>
#include <gsl/gsl_rng.h>
#include <limits.h>
#include <stdio.h>
#include <math.h>
-#include <libpspp/alloc.h>
+
+#include <data/procedure.h>
+#include <data/variable.h>
#include <language/command.h>
#include <language/command.h>
+#include <language/lexer/lexer.h>
+#include <libpspp/alloc.h>
#include <libpspp/compiler.h>
#include <libpspp/message.h>
#include <libpspp/compiler.h>
#include <libpspp/message.h>
-#include <language/lexer/lexer.h>
-#include <math/random.h>
#include <libpspp/str.h>
#include <libpspp/str.h>
-#include <
data/variable
.h>
+#include <
math/random
.h>
#include "gettext.h"
#define _(msgid) gettext (msgid)
#include "gettext.h"
#define _(msgid) gettext (msgid)
@@
-54,7
+56,7
@@
static trns_proc_func sample_trns_proc;
static trns_free_func sample_trns_free;
int
static trns_free_func sample_trns_free;
int
-cmd_sample (
void
)
+cmd_sample (
struct lexer *lexer, struct dataset *ds
)
{
struct sample_trns *trns;
{
struct sample_trns *trns;
@@
-62,34
+64,34
@@
cmd_sample (void)
int a, b;
unsigned frac;
int a, b;
unsigned frac;
- if (!lex_force_num ())
+ if (!lex_force_num (
lexer
))
return CMD_FAILURE;
return CMD_FAILURE;
- if (!lex_is_integer ())
+ if (!lex_is_integer (
lexer
))
{
unsigned long min = gsl_rng_min (get_rng ());
unsigned long max = gsl_rng_max (get_rng ());
type = TYPE_FRACTION;
{
unsigned long min = gsl_rng_min (get_rng ());
unsigned long max = gsl_rng_max (get_rng ());
type = TYPE_FRACTION;
- if (
tokval <= 0 || tokval
>= 1)
+ if (
lex_tokval (lexer) <= 0 || lex_tokval (lexer)
>= 1)
{
msg (SE, _("The sampling factor must be between 0 and 1 "
"exclusive."));
return CMD_FAILURE;
}
{
msg (SE, _("The sampling factor must be between 0 and 1 "
"exclusive."));
return CMD_FAILURE;
}
- frac =
tokval
* (max - min) + min;
+ frac =
lex_tokval (lexer)
* (max - min) + min;
a = b = 0;
}
else
{
type = TYPE_A_FROM_B;
a = b = 0;
}
else
{
type = TYPE_A_FROM_B;
- a = lex_integer ();
- lex_get ();
- if (!lex_force_match_id ("FROM"))
+ a = lex_integer (
lexer
);
+ lex_get (
lexer
);
+ if (!lex_force_match_id (
lexer,
"FROM"))
return CMD_FAILURE;
return CMD_FAILURE;
- if (!lex_force_int ())
+ if (!lex_force_int (
lexer
))
return CMD_FAILURE;
return CMD_FAILURE;
- b = lex_integer ();
+ b = lex_integer (
lexer
);
if (a >= b)
{
msg (SE, _("Cannot sample %d observations from a population of "
if (a >= b)
{
msg (SE, _("Cannot sample %d observations from a population of "
@@
-100,7
+102,7
@@
cmd_sample (void)
frac = 0;
}
frac = 0;
}
- lex_get ();
+ lex_get (
lexer
);
trns = xmalloc (sizeof *trns);
trns->type = type;
trns = xmalloc (sizeof *trns);
trns->type = type;
@@
-108,15
+110,15
@@
cmd_sample (void)
trns->N = b;
trns->m = trns->t = 0;
trns->frac = frac;
trns->N = b;
trns->m = trns->t = 0;
trns->frac = frac;
- add_transformation (sample_trns_proc, sample_trns_free, trns);
+ add_transformation (
ds,
sample_trns_proc, sample_trns_free, trns);
- return lex_end_of_command ();
+ return lex_end_of_command (
lexer
);
}
/* Executes a SAMPLE transformation. */
static int
sample_trns_proc (void *t_, struct ccase *c UNUSED,
}
/* Executes a SAMPLE transformation. */
static int
sample_trns_proc (void *t_, struct ccase *c UNUSED,
-
int
case_num UNUSED)
+
casenumber
case_num UNUSED)
{
struct sample_trns *t = t_;
double U;
{
struct sample_trns *t = t_;
double U;