X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdata%2Fcasereader.h;h=3df80cb08fb8d38acc302e0654a0217dd666287a;hb=1fe087cbcce6a9eb41928b7af6b58c7a2aac47f8;hp=31e448fbc2215ccc00f9fb087307c283246edf7e;hpb=43b1296aafe7582e7dbe6c2b6a8b478d7d9b0fcf;p=pspp diff --git a/src/data/casereader.h b/src/data/casereader.h index 31e448fbc2..3df80cb08f 100644 --- a/src/data/casereader.h +++ b/src/data/casereader.h @@ -70,6 +70,7 @@ void casereader_swap (struct casereader *, struct casereader *); bool casereader_peek (struct casereader *, casenumber, struct ccase *) WARN_UNUSED_RESULT; +bool casereader_is_empty (struct casereader *); bool casereader_error (const struct casereader *); void casereader_force_error (struct casereader *); @@ -97,6 +98,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 * @@ -105,10 +107,39 @@ casereader_create_counter (struct casereader *, casenumber *counter, struct casereader * casereader_create_translator (struct casereader *, size_t output_value_cnt, - void (*translate) (const struct ccase *input, + void (*translate) (struct ccase *input, struct ccase *output, 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 */