TECA
The Toolkit for Extreme Climate Analysis
teca_variant_array_operator.h File Reference
Include dependency graph for teca_variant_array_operator.h:

Go to the source code of this file.

Classes

struct  teca_variant_array_operator::ternary_condition
 
struct  teca_variant_array_operator::add
 
struct  teca_variant_array_operator::subtract
 
struct  teca_variant_array_operator::multiply
 
struct  teca_variant_array_operator::divide
 
struct  teca_variant_array_operator::modulo
 
struct  teca_variant_array_operator::logical_and
 
struct  teca_variant_array_operator::logical_or
 
struct  teca_variant_array_operator::less
 
struct  teca_variant_array_operator::less_equal
 
struct  teca_variant_array_operator::greater
 
struct  teca_variant_array_operator::greater_equal
 
struct  teca_variant_array_operator::equal
 
struct  teca_variant_array_operator::not_equal
 
struct  teca_variant_array_operator::power
 
struct  teca_variant_array_operator::logical_not
 
struct  teca_variant_array_operator::resolver
 

Namespaces

 teca_variant_array_operator
 Codes dealing with run time specified operations on teca_variant_arrays.
 

Macros

#define binary_operator(_name, _op)
 
#define binary_operator_fun(_name, _op)
 
#define unary_operator(_name, _op)
 

Functions

template<typename operator_t >
p_teca_variant_array teca_variant_array_operator::apply (const const_p_teca_variant_array &arg1, const const_p_teca_variant_array &arg2, const const_p_teca_variant_array &arg3, const operator_t&op)
 
template<typename operator_t >
p_teca_variant_array teca_variant_array_operator::apply_i (const const_p_teca_variant_array &larg, const const_p_teca_variant_array &rarg, const operator_t&op)
 
template<typename operator_t >
p_teca_variant_array teca_variant_array_operator::apply (const const_p_teca_variant_array &larg, const const_p_teca_variant_array &rarg, const operator_t&op)
 
template<typename operator_t >
p_teca_variant_array teca_variant_array_operator::apply (const const_p_teca_variant_array &arg, const operator_t&op)
 

Macro Definition Documentation

◆ binary_operator

#define binary_operator (   _name,
  _op 
)
Value:
struct _name \
{ \
template<typename nt_larg, typename nt_rarg, \
nt_out operator()(const nt_larg &larg, const nt_rarg &rarg) const \
{ return static_cast<nt_out>(larg) _op static_cast<nt_out>(rarg); } \
static constexpr const char *name(){ return #_op; } \
};

◆ binary_operator_fun

#define binary_operator_fun (   _name,
  _op 
)
Value:
struct _name \
{ \
template<typename nt_larg, typename nt_rarg, \
nt_out operator()(const nt_larg &larg, const nt_rarg &rarg) const \
{ return _op(static_cast<nt_out>(larg), static_cast<nt_out>(rarg)); } \
static constexpr const char *name(){ return #_op; } \
};

◆ unary_operator

#define unary_operator (   _name,
  _op 
)
Value:
struct _name \
{ \
template<typename nt_arg> \
nt_arg operator()(const nt_arg &arg) const \
{ return static_cast<nt_arg>(_op arg); } \
static constexpr const char *name(){ return #_op; } \
};
teca_type_select::elevate
Select the higher precision type.
Definition: teca_type_select.h:18