X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdata%2Fcasereader.h;h=deab5641661ec111d6751254f77c73ca77200550;hb=14aac9fe7a7efbb6c9bded2ed5969a643cb76645;hp=ba65cb18e7cc7f7d9f54dce259a44e9774e10542;hpb=0bd3b06bbdf530044eeb6b1518edbffd7124fcb7;p=pspp-builds.git diff --git a/src/data/casereader.h b/src/data/casereader.h index ba65cb18..deab5641 100644 --- a/src/data/casereader.h +++ b/src/data/casereader.h @@ -1,5 +1,5 @@ /* PSPP - a program for statistical analysis. - Copyright (C) 2007 Free Software Foundation, Inc. + Copyright (C) 2007, 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 @@ -59,7 +59,7 @@ struct dictionary; struct casereader; struct casewriter; -bool casereader_read (struct casereader *, struct ccase *); +struct ccase *casereader_read (struct casereader *); bool casereader_destroy (struct casereader *); struct casereader *casereader_clone (const struct casereader *); @@ -68,8 +68,7 @@ void casereader_split (struct casereader *, struct casereader *casereader_rename (struct casereader *); void casereader_swap (struct casereader *, struct casereader *); -bool casereader_peek (struct casereader *, casenumber, struct ccase *) - WARN_UNUSED_RESULT; +struct ccase *casereader_peek (struct casereader *, casenumber); bool casereader_is_empty (struct casereader *); bool casereader_error (const struct casereader *); @@ -98,6 +97,7 @@ struct casereader * casereader_create_filter_missing (struct casereader *, const struct variable **vars, size_t var_cnt, enum mv_class, + casenumber *n_missing, struct casewriter *exclude); struct casereader * @@ -106,14 +106,38 @@ casereader_create_counter (struct casereader *, casenumber *counter, struct casereader * casereader_create_translator (struct casereader *, size_t output_value_cnt, - void (*translate) (struct ccase *input, - struct ccase *output, - void *aux), + struct ccase *(*translate) (struct ccase *, + void *aux), bool (*destroy) (void *aux), void *aux); +/* A function which creates a numberic value from an existing case */ +typedef double new_value_func (const struct ccase *, casenumber, void *); + +struct casereader * +casereader_create_append_numeric (struct casereader *subreader, + new_value_func func, void *aux, + void (*destroy) (void *aux)); + struct casereader * casereader_create_arithmetic_sequence (struct casereader *, double first, double increment); +enum rank_error + { + RANK_ERR_NONE = 0, + RANK_ERR_NEGATIVE_WEIGHT = 0x01, + RANK_ERR_UNSORTED = 0x02 + }; + + +typedef void distinct_func (double v, casenumber n, double w, void *aux); + +struct casereader * +casereader_create_append_rank (struct casereader *, + const struct variable *v, const struct variable *w, + enum rank_error *err, + distinct_func *distinct_callback, void *aux); + + #endif /* data/casereader.h */