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 ObsFilter* lookup_obs_filter(
const std::string& name){
19 ObsFilter* f =
dynamic_cast<ObsFilter*
>(GenValue::get_value(name));
21 CRITICAL(
"ObsFilter: "+f->get_name() +
"has improper type.",-1);
26 template <
typename... ArgTypes>
27 Value<std::vector<std::tuple<ArgTypes...>>>*
28 zip(
Value<std::vector<ArgTypes>>*... args,
const std::string& alias=
""){
29 return new Zip<ArgTypes...>(args..., alias);
32 template <
typename Ret,
typename... ArgTypes>
33 Map<Ret(ArgTypes...)>*
34 map(Function<Ret(ArgTypes...)>& fn,
35 Value<std::vector<std::tuple<ArgTypes...>>>* arg,
const std::string& alias=
""){
36 return new Map<Ret(ArgTypes...)>(fn, arg, alias);
40 template <
typename... ArgTypes>
43 return new Tuple<ArgTypes...>(args..., alias);
46 template <
typename Ret,
typename... ArgTypes>
47 Apply<Ret(ArgTypes...)>*
48 apply(Function<Ret(ArgTypes...)>& fn,
50 return new Apply<Ret(ArgTypes...)>(fn, arg, alias);
53 template <
typename T1,
typename T2>
59 template <
typename T1,
typename T2>
61 pair(
const std::string& name1,
const std::string& name2,
const std::string& alias=
""){
62 return pair<T1,T2>(lookup<T1>(name1), lookup<T2>(name2), alias);
68 max(
Value<std::vector<T>>* v,
const std::string alias){
69 return new Max<T>(v, alias);
74 max(
const std::string& v_name,
const std::string alias){
75 return max(lookup<std::vector<T>>(v_name), alias);
80 min(
Value<std::vector<T>>* v,
const std::string alias){
81 return new Min<T>(v, alias);
86 min(
const std::string& v_name,
const std::string alias){
87 return min(lookup<std::vector<T>>(v_name), alias);
92 range(
Value<std::vector<T>>* v,
const std::string alias){
98 range(
const std::string& v_name,
const std::string alias){
99 return range(lookup<std::vector<T>>(v_name), alias);
102 template <
typename T>
104 mean(
Value<std::vector<T>>* v,
const std::string alias){
108 template <
typename T>
110 mean(
const std::string& v_name,
const std::string alias){
111 return mean(lookup<std::vector<T>>(v_name), alias);
114 template <
typename T>
116 count(Function<
bool(T)>& selector,
Value<std::vector<T>>* v,
const std::string alias){
117 return new Count<T>(selector, v, alias);
120 template <
typename T>
122 count(Function<
bool(T)>& selector,
const std::string& v_name,
const std::string alias){
123 return count<T>(selector, lookup<std::vector<T>>(v_name), alias);
126 template <
typename FST,
typename SND>
128 cart_product(
Value<std::vector<FST>>* val1,
Value<std::vector<SND>>* val2,
const std::string alias){
132 template <
typename FST,
typename SND>
134 cart_product(
const std::string& val1_name,
const std::string& val2_name,
const std::string alias =
""){
135 return cart_product<FST,SND>(lookup<std::vector<FST>>(val1_name), lookup<std::vector<SND>>(val2_name), alias);
138 ObsFilter* obs_filter(
const std::string& name, std::function<
bool()> filter_function,
const std::string& impl=
""){
139 return new ObsFilter(name, filter_function, impl);
Find and return the maximum value of a vector.
Definition: value.hpp:788
Zips a series of vectors together.
Definition: value.hpp:546
Calculate the range of the values in a vector.
Definition: value.hpp:829
Takes a series of Value objects and bundles them together into a std::tuple object.
Definition: value.hpp:670
Returns the count of elements in the input vector passing a test function.
Definition: value.hpp:717
Find and return the minimum value of a vector.
Definition: value.hpp:801
Creates a std::pair type from a two other Value objects.
Definition: value.hpp:467
The namespace containing all filval classes and functions.
Definition: api.hpp:6
Calculate the mean value of a vector.
Definition: value.hpp:814
A generic value.
Definition: value.hpp:352
Find and return the minimum value of a vector and its index.
Definition: value.hpp:904