#include "command.h"
#include "error.h"
#include "lexer.h"
-#include "settings.h"
+#include "random.h"
#include "str.h"
#include "var.h"
/* SAMPLE transformation. */
struct sample_trns
{
- struct trns_header h;
int type; /* One of TYPE_*. */
int n, N; /* TYPE_A_FROM_B: n from N. */
int m, t; /* TYPE_A_FROM_B: # picked so far; # so far. */
};
static trns_proc_func sample_trns_proc;
+static trns_free_func sample_trns_free;
int
cmd_sample (void)
lex_get ();
trns = xmalloc (sizeof *trns);
- trns->h.proc = sample_trns_proc;
- trns->h.free = NULL;
trns->type = type;
trns->n = a;
trns->N = b;
trns->m = trns->t = 0;
trns->frac = frac;
- add_transformation ((struct trns_header *) trns);
+ add_transformation (sample_trns_proc, sample_trns_free, trns);
return lex_end_of_command ();
}
/* Executes a SAMPLE transformation. */
static int
-sample_trns_proc (struct trns_header * trns, struct ccase *c UNUSED,
+sample_trns_proc (void *t_, struct ccase *c UNUSED,
int case_num UNUSED)
{
- struct sample_trns *t = (struct sample_trns *) trns;
+ struct sample_trns *t = t_;
double U;
if (t->type == TYPE_FRACTION)
return -1;
}
}
+
+static void
+sample_trns_free (void *t_)
+{
+ struct sample_trns *t = t_;
+ free (t);
+}