9 Value<T>* lookup(
const std::string& name){
10 GenValue* gv = GenValue::get_value(name);
13 CRITICAL(
"Value: "+gv->get_name() +
"has improper type.",-1);
18 Filter* lookup_filter(
const std::string& name){
19 Filter* f =
dynamic_cast<Filter*
>(GenValue::get_value(name));
21 CRITICAL(
"Filter: "+f->get_name() +
"has improper type.",-1);
26 template <
typename... ArgTypes>
27 Zip<ArgTypes...>* zip(
Value<std::vector<ArgTypes>>*... args,
const std::string& alias=
""){
28 return new Zip<ArgTypes...>(args..., alias);
31 template <
typename Ret,
typename... ArgTypes>
32 Map<Ret(ArgTypes...)>* map(Function<Ret(ArgTypes...)>& fn,
34 return new Map<Ret(ArgTypes...)>(fn, arg, alias);
38 template <
typename... ArgTypes>
40 return new Tuple<ArgTypes...>(args..., alias);
43 template <
typename Ret,
typename... ArgTypes>
44 Apply<Ret(ArgTypes...)>* apply(Function<Ret(ArgTypes...)>& fn,
46 return new Apply<Ret(ArgTypes...)>(fn, arg, alias);
51 template <
typename T1,
typename T2>
56 template <
typename T1,
typename T2>
57 Pair<T1, T2>* pair(
const std::string& name1,
const std::string& name2,
const std::string& alias=
""){
58 return pair<T1,T2>(lookup<T1>(name1), lookup<T2>(name2), alias);
63 Max<T>* max(
Value<std::vector<T>>* v,
const std::string alias){
64 return new Max<T>(v, alias);
68 Max<T>* max(
const std::string& v_name,
const std::string alias){
69 return max(lookup<std::vector<T>>(v_name), alias);
73 Min<T>* min(
Value<std::vector<T>>* v,
const std::string alias){
74 return new Min<T>(v, alias);
78 Min<T>* min(
const std::string& v_name,
const std::string alias){
79 return min(lookup<std::vector<T>>(v_name), alias);
83 Range<T>* range(
Value<std::vector<T>>* v,
const std::string alias){
88 Range<T>* range(
const std::string& v_name,
const std::string alias){
89 return range(lookup<std::vector<T>>(v_name), alias);
93 Mean<T>* mean(
Value<std::vector<T>>* v,
const std::string alias){
98 Mean<T>* mean(
const std::string& v_name,
const std::string alias){
99 return mean(lookup<std::vector<T>>(v_name), alias);
102 template <
typename T>
103 Count<T>* count(Function<
bool(T)>& selector,
Value<std::vector<T>>* v,
const std::string alias){
104 return new Count<T>(selector, v, alias);
107 template <
typename T>
108 Count<T>* count(Function<
bool(T)>& selector,
const std::string& v_name,
const std::string alias){
109 return count<T>(selector, lookup<std::vector<T>>(v_name), alias);
112 Filter* filter(
const std::string& name, std::function<
bool()> filter_function,
const std::string& impl=
""){
113 return new Filter(name, filter_function, impl);
Find and return the maximum value of a vector.
Definition: value.hpp:726
Zips a series of vectors together.
Definition: value.hpp:533
Calculate the range of the values in a vector.
Definition: value.hpp:767
Takes a series of Value objects and bundles them together into a std::tuple object.
Definition: value.hpp:631
Returns the count of elements in the input vector passing a test function.
Definition: value.hpp:678
Find and return the minimum value of a vector.
Definition: value.hpp:739
Creates a std::pair type from a two other Value objects.
Definition: value.hpp:454
The namespace containing all filval classes and functions.
Definition: api.hpp:6
Calculate the mean value of a vector.
Definition: value.hpp:752
A generic value.
Definition: value.hpp:339