1 #ifndef _GNM_COLLECT_H_
2 # define _GNM_COLLECT_H_
10 COLLECT_IGNORE_STRINGS
= 0x01,
11 COLLECT_ZERO_STRINGS
= 0x02,
12 COLLECT_COERCE_STRINGS
= 0x04,
14 COLLECT_IGNORE_BOOLS
= 0x10,
15 COLLECT_ZEROONE_BOOLS
= 0x20,
17 COLLECT_IGNORE_ERRORS
= 0x100,
18 COLLECT_ZERO_ERRORS
= 0x200,
20 COLLECT_IGNORE_BLANKS
= 0x1000,
21 COLLECT_ZERO_BLANKS
= 0x2000,
23 COLLECT_IGNORE_SUBTOTAL
= 0x4000,
25 COLLECT_SORT
= 0x10000,
26 COLLECT_ORDER_IRRELEVANT
= 0x20000,
28 /* Not for general usage. */
29 COLLECT_INFO
= 0x1000000
32 typedef int (*float_range_function_t
) (gnm_float
const *xs
, int n
, gnm_float
*res
);
33 typedef int (*float_range_function2_t
) (gnm_float
const *xs
, gnm_float
const *ys
, int n
, gnm_float
*res
);
34 typedef int (*float_range_function2d_t
) (gnm_float
const *xs
, gnm_float
const *ys
, int n
, gnm_float
*res
, gpointer data
);
35 typedef int (*string_range_function_t
) (GPtrArray
*xs
, char**res
, gpointer user
);
37 gnm_float
*collect_floats_value (GnmValue
const *val
,
40 int *n
, GnmValue
**error
);
41 gnm_float
*collect_floats (int argc
, GnmExprConstPtr
const *argv
,
42 GnmEvalPos
const *ep
, CollectFlags flags
,
43 int *n
, GnmValue
**error
, GSList
**info
,
46 gnm_float
*collect_floats_value_with_info (GnmValue
const *val
, GnmEvalPos
const *ep
,
47 CollectFlags flags
, int *n
, GSList
**info
,
50 GnmValue
*collect_float_pairs (GnmValue
const *v0
, GnmValue
const *v1
,
51 GnmEvalPos
const *ep
, CollectFlags flags
,
52 gnm_float
**xs0
, gnm_float
**xs1
, int *n
,
55 GnmValue
*float_range_function (int argc
, GnmExprConstPtr
const *argv
,
57 float_range_function_t func
,
59 GnmStdError func_error
);
61 GnmValue
*float_range_function2 (GnmValue
const *val0
, GnmValue
const *val1
,
63 float_range_function2_t func
,
65 GnmStdError func_error
);
67 GnmValue
*float_range_function2d (GnmValue
const *val0
, GnmValue
const *val1
,
69 float_range_function2d_t func
,
71 GnmStdError func_error
,
74 GnmValue
*string_range_function (int argc
, GnmExprConstPtr
const *argv
,
76 string_range_function_t func
,
79 GnmStdError func_error
);
81 GSList
*gnm_slist_sort_merge (GSList
* list_1
, GSList
* list_2
);
83 void gnm_strip_missing (gnm_float
* data
, int *n
, GSList
*missing
);
88 #endif /* _GNM_COLLECT_H_ */