![]()  | 
  
    Project
    
   | 
 
Classes | |
| struct | BindingNode | 
| An expression tree node corresponding to a column binding.  More... | |
| struct | ColumnOperationSpec | 
| struct | ConditionalNode | 
| A conditional node.  More... | |
| struct | DatumSpec | 
| struct | Filter | 
| A struct, containing the root of the expression tree.  More... | |
| struct | LiteralNode | 
| An expression tree node corresponding to a literal value.  More... | |
| struct | LiteralStorage | 
| struct | Node | 
| A generic tree node.  More... | |
| struct | NodeRecord | 
| helper struct used to parse trees  More... | |
| struct | OpNode | 
| An expression tree node corresponding to binary or unary operation.  More... | |
| struct | ParameterNode | 
| A placeholder node for parameters taken from an array.  More... | |
| struct | Parser | 
| struct | PlaceholderNode | 
| A placeholder node for simple type configurable.  More... | |
| struct | Tokenizer | 
Concepts | |
| concept | is_literal_like | 
| concepts  | |
| concept | is_binding | 
| concept | is_operation | 
| concept | is_conditional | 
| concept | arithmetic | 
| helper concepts  | |
| concept | is_filter | 
Typedefs | |
| using | LiteralValue = LiteralStorage< int, bool, float, double, uint8_t, int64_t, int16_t, uint16_t, int8_t, uint32_t, uint64_t > | 
| using | Projector = Filter | 
| using | Operations = std::vector< ColumnOperationSpec > | 
Enumerations | |
| enum | Token : int {  EoL = -1 , Identifier = -2 , IntegerNumber = -3 , FloatNumber = -4 , BinaryOp = -5 , Unexpected = -100 }  | 
| String parsing.  More... | |
Functions | |
| std::ostream & | operator<< (std::ostream &os, DatumSpec const &spec) | 
| void | unknownParameterUsed (const char *name) | 
| const char * | stringType (atype::type t) | 
| template<typename T > | |
| constexpr auto | selectArrowType () | 
| SELECT_ARROW_TYPE (bool, BOOL) | |
| SELECT_ARROW_TYPE (float, FLOAT) | |
| SELECT_ARROW_TYPE (double, DOUBLE) | |
| SELECT_ARROW_TYPE (uint8_t, UINT8) | |
| SELECT_ARROW_TYPE (int8_t, INT8) | |
| SELECT_ARROW_TYPE (uint16_t, UINT16) | |
| SELECT_ARROW_TYPE (int16_t, INT16) | |
| SELECT_ARROW_TYPE (uint32_t, UINT32) | |
| SELECT_ARROW_TYPE (int32_t, INT32) | |
| SELECT_ARROW_TYPE (uint64_t, UINT64) | |
| SELECT_ARROW_TYPE (int64_t, INT64) | |
| std::shared_ptr< arrow::DataType > | concreteArrowType (atype::type type) | 
| std::string | upcastTo (atype::type f) | 
| template<typename AT , typename T > | |
| PlaceholderNode | as (Configurable< T > const &v) | 
| template<typename L > | |
| void | walk (Node *head, L &&pred) | 
| Tree-walker helper.   | |
| BINARY_OP_NODES (|, BitwiseOr) | |
| BINARY_OP_NODES (+, Addition) | |
| BINARY_OP_NODES (-, Subtraction) | |
| BINARY_OP_NODES (/, Division) | |
| BINARY_OP_NODES (>, GreaterThan) | |
| BINARY_OP_NODES (>=, GreaterThanOrEqual) | |
| BINARY_OP_NODES (<, LessThan) | |
| BINARY_OP_NODES (<=, LessThanOrEqual) | |
| BINARY_OP_NODES (==, Equal) | |
| BINARY_OP_NODES (!=, NotEqual) | |
| BINARY_OP_NODES (||, LogicalOr) | |
| template<arithmetic T> | |
| Node | npow (Node &&left, T right) | 
| functions   | |
| BINARY_FUNC_NODES (Atan2, natan2) | |
| UNARY_FUNC_NODES (Round, nround) | |
| UNARY_FUNC_NODES (Sqrt, nsqrt) | |
| UNARY_FUNC_NODES (Exp, nexp) | |
| UNARY_FUNC_NODES (Log, nlog) | |
| UNARY_FUNC_NODES (Log10, nlog10) | |
| UNARY_FUNC_NODES (Abs, nabs) | |
| UNARY_FUNC_NODES (Sin, nsin) | |
| UNARY_FUNC_NODES (Cos, ncos) | |
| UNARY_FUNC_NODES (Tan, ntan) | |
| UNARY_FUNC_NODES (Asin, nasin) | |
| UNARY_FUNC_NODES (Acos, nacos) | |
| UNARY_FUNC_NODES (Atan, natan) | |
| UNARY_FUNC_NODES (BitwiseNot, nbitwise_not) | |
| Node | ifnode (Node &&condition_, Node &&then_, Node &&else_) | 
| conditionals   | |
| template<arithmetic L> | |
| Node | ifnode (Node &&condition_, Node &&then_, L else_) | 
| template<arithmetic L> | |
| Node | ifnode (Node &&condition_, L then_, Node &&else_) | 
| template<arithmetic L1, arithmetic L2> | |
| Node | ifnode (Node &&condition_, L1 then_, L2 else_) | 
| template<typename T > | |
| Node | ifnode (Configurable< T > const &condition_, Node &&then_, Node &&else_) | 
| template<typename L > | |
| Node | ifnode (Node &&condition_, Node &&then_, Configurable< L > const &else_) | 
| template<typename L > | |
| Node | ifnode (Node &&condition_, Configurable< L > const &then_, Node &&else_) | 
| template<typename L1 , typename L2 > | |
| Node | ifnode (Node &&condition_, Configurable< L1 > const &then_, Configurable< L2 > const &else_) | 
| Node | par (int index) | 
| Parameters.   | |
| template<typename T > | |
| Node | binned (std::vector< T > const &binning, std::vector< T > const ¶meters, Node &&binned, Node &&pexp, Node &&out) | 
| binned functional   | |
| template<typename T > | |
| Node | updateParameters (Node const &pexp, int bins, std::vector< T > const ¶meters, int bin) | 
| template<typename T > | |
| Node | clamp (Node &&expr, T low, T hi) | 
| clamping functional   | |
| Node | protect0 (Node &&expr) | 
| division by 0 protector   | |
| template<typename T > | |
| Node | ncfg (T defaultValue, std::string path) | 
| context-independent configurable   | |
| gandiva::Selection | createSelection (std::shared_ptr< arrow::Table > const &table, Filter const &expression) | 
| Function for creating gandiva selection from our internal filter tree.   | |
| gandiva::Selection | createSelection (std::shared_ptr< arrow::Table > const &table, std::shared_ptr< gandiva::Filter > const &gfilter) | 
| Function for creating gandiva selection from prepared gandiva expressions tree.   | |
| Operations | createOperations (Filter const &expression) | 
| Function to create an internal operation sequence from a filter tree.   | |
| bool | isTableCompatible (std::set< uint32_t > const &hashes, Operations const &specs) | 
| Function to check compatibility of a given arrow schema with operation sequence.   | |
| gandiva::NodePtr | createExpressionTree (Operations const &opSpecs, gandiva::SchemaPtr const &Schema) | 
| Function to create gandiva expression tree from operation sequence.   | |
| std::shared_ptr< gandiva::Filter > | createFilter (gandiva::SchemaPtr const &Schema, gandiva::ConditionPtr condition) | 
| Function to create gandiva filter from gandiva condition.   | |
| std::shared_ptr< gandiva::Filter > | createFilter (gandiva::SchemaPtr const &Schema, Operations const &opSpecs) | 
| Function to create gandiva filter from operation sequence.   | |
| std::shared_ptr< gandiva::Projector > | createProjector (gandiva::SchemaPtr const &Schema, Operations const &opSpecs, gandiva::FieldPtr result) | 
| Function to create gandiva projector from operation sequence.   | |
| std::shared_ptr< gandiva::Projector > | createProjector (gandiva::SchemaPtr const &Schema, Projector &&p, gandiva::FieldPtr result) | 
| Function to create gandiva projector directly from expression.   | |
| void | updateExpressionInfos (expressions::Filter const &filter, std::vector< ExpressionInfo > &eInfos) | 
| Function for attaching gandiva filters to to compatible task inputs.   | |
| gandiva::ConditionPtr | makeCondition (gandiva::NodePtr node) | 
| Function to create gandiva condition expression from generic gandiva expression tree.   | |
| gandiva::ExpressionPtr | makeExpression (gandiva::NodePtr node, gandiva::FieldPtr result) | 
| Function to create gandiva projecting expression from generic gandiva expression tree.   | |
| void | updatePlaceholders (Filter &filter, InitContext &context) | 
| Update placeholder nodes from context.   | |
| std::shared_ptr< gandiva::Projector > | createProjectorHelper (size_t nColumns, expressions::Projector *projectors, std::shared_ptr< arrow::Schema > schema, std::vector< std::shared_ptr< arrow::Field > > const &fields) | 
| template<typename... C> | |
| std::shared_ptr< gandiva::Projector > | createProjectors (framework::pack< C... >, std::vector< std::shared_ptr< arrow::Field > > const &fields, gandiva::SchemaPtr schema) | 
| void | updateFilterInfo (ExpressionInfo &info, std::shared_ptr< arrow::Table > &table) | 
| template<typename T > | |
| constexpr auto | makeDatum (T const &) | 
| template<typename T > | |
| constexpr auto | makeOp (T const &, size_t const &) | 
| auto | createProjection (std::shared_ptr< arrow::Table > const &table, std::shared_ptr< gandiva::Projector > const &gprojector) | 
Variables | |
| BINARY_OP_NODES & | BitwiseAnd | 
| BINARY_OP_NODES^ | BitwiseXor | 
| BINARY_OP_NODES * | Multiplication | 
| BINARY_OP_NODES && | LogicalAnd | 
| constexpr std::array< std::string_view, BasicOp::Conditional+1 > | mapping | 
| a map between BasicOp and tokens in string expressions   | |
| constexpr std::array< std::string_view, 8 > | cfgtypes | 
| constexpr std::array< std::string_view, 9 > | mathConstants | 
| math constants to recognize in string expressions   | |
| constexpr std::array< float, 9 > | mathConstantsValues | 
| values of math constants to substiture   | |
| constexpr std::array< const char *, BasicOp::Conditional+1 > | basicOperationsMap | 
| using o2::framework::expressions::LiteralValue = typedef LiteralStorage<int, bool, float, double, uint8_t, int64_t, int16_t, uint16_t, int8_t, uint32_t, uint64_t> | 
Definition at line 80 of file Expressions.h.
| using o2::framework::expressions::Operations = typedef std::vector<ColumnOperationSpec> | 
Definition at line 666 of file Expressions.h.
| using o2::framework::expressions::Projector = typedef Filter | 
Definition at line 658 of file Expressions.h.
String parsing.
| Enumerator | |
|---|---|
| EoL | |
| Identifier | |
| IntegerNumber | |
| FloatNumber | |
| BinaryOp | |
| Unexpected | |
Definition at line 741 of file Expressions.h.
| PlaceholderNode o2::framework::expressions::as | ( | Configurable< T > const & | v | ) | 
Definition at line 188 of file Expressions.h.
| o2::framework::expressions::BINARY_FUNC_NODES | ( | Atan2 | , | 
| natan2 | |||
| ) | 
| o2::framework::expressions::BINARY_OP_NODES | ( | ! | , | 
| NotEqual | |||
| ) | 
| o2::framework::expressions::BINARY_OP_NODES | ( | + | , | 
| Addition | |||
| ) | 
| o2::framework::expressions::BINARY_OP_NODES | ( | - | , | 
| Subtraction | |||
| ) | 
| o2::framework::expressions::BINARY_OP_NODES | ( | / | , | 
| Division | |||
| ) | 
| o2::framework::expressions::BINARY_OP_NODES | ( | ) | 
| o2::framework::expressions::BINARY_OP_NODES | ( | <= | , | 
| LessThanOrEqual | |||
| ) | 
| o2::framework::expressions::BINARY_OP_NODES | ( | Equal | ) | 
| o2::framework::expressions::BINARY_OP_NODES | ( | GreaterThan | ) | 
| o2::framework::expressions::BINARY_OP_NODES | ( | >= | , | 
| GreaterThanOrEqual | |||
| ) | 
| o2::framework::expressions::BINARY_OP_NODES | ( | | | , | 
| BitwiseOr | |||
| ) | 
| o2::framework::expressions::BINARY_OP_NODES | ( | || | , | 
| LogicalOr | |||
| ) | 
      
  | 
  inline | 
binned functional
Definition at line 566 of file Expressions.h.
clamping functional
Definition at line 596 of file Expressions.h.
| std::shared_ptr< arrow::DataType > o2::framework::expressions::concreteArrowType | ( | atype::type | type | ) | 
Definition at line 208 of file Expressions.cxx.
| gandiva::NodePtr o2::framework::expressions::createExpressionTree | ( | Operations const & | opSpecs, | 
| gandiva::SchemaPtr const & | Schema | ||
| ) | 
Function to create gandiva expression tree from operation sequence.
Definition at line 634 of file Expressions.cxx.
| std::shared_ptr< gandiva::Filter > o2::framework::expressions::createFilter | ( | gandiva::SchemaPtr const & | Schema, | 
| gandiva::ConditionPtr | condition | ||
| ) | 
Function to create gandiva filter from gandiva condition.
Definition at line 519 of file Expressions.cxx.
| std::shared_ptr< gandiva::Filter > o2::framework::expressions::createFilter | ( | gandiva::SchemaPtr const & | Schema, | 
| Operations const & | opSpecs | ||
| ) | 
Function to create gandiva filter from operation sequence.
Definition at line 506 of file Expressions.cxx.
| Operations o2::framework::expressions::createOperations | ( | Filter const & | expression | ) | 
Function to create an internal operation sequence from a filter tree.
Definition at line 313 of file Expressions.cxx.
| auto o2::framework::expressions::createProjection | ( | std::shared_ptr< arrow::Table > const & | table, | 
| std::shared_ptr< gandiva::Projector > const & | gprojector | ||
| ) | 
Definition at line 613 of file Expressions.cxx.
| std::shared_ptr< gandiva::Projector > o2::framework::expressions::createProjector | ( | gandiva::SchemaPtr const & | Schema, | 
| Operations const & | opSpecs, | ||
| gandiva::FieldPtr | result | ||
| ) | 
Function to create gandiva projector from operation sequence.
Definition at line 532 of file Expressions.cxx.
| std::shared_ptr< gandiva::Projector > o2::framework::expressions::createProjector | ( | gandiva::SchemaPtr const & | Schema, | 
| Projector && | p, | ||
| gandiva::FieldPtr | result | ||
| ) | 
Function to create gandiva projector directly from expression.
Definition at line 545 of file Expressions.cxx.
| std::shared_ptr< gandiva::Projector > o2::framework::expressions::createProjectorHelper | ( | size_t | nColumns, | 
| expressions::Projector * | projectors, | ||
| std::shared_ptr< arrow::Schema > | schema, | ||
| std::vector< std::shared_ptr< arrow::Field > > const & | fields | ||
| ) | 
Definition at line 550 of file Expressions.cxx.
| std::shared_ptr< gandiva::Projector > o2::framework::expressions::createProjectors | ( | framework::pack< C... > | , | 
| std::vector< std::shared_ptr< arrow::Field > > const & | fields, | ||
| gandiva::SchemaPtr | schema | ||
| ) | 
Definition at line 704 of file Expressions.h.
| gandiva::Selection o2::framework::expressions::createSelection | ( | std::shared_ptr< arrow::Table > const & | table, | 
| Filter const & | expression | ||
| ) | 
Function for creating gandiva selection from our internal filter tree.
Definition at line 607 of file Expressions.cxx.
| gandiva::Selection o2::framework::expressions::createSelection | ( | std::shared_ptr< arrow::Table > const & | table, | 
| std::shared_ptr< gandiva::Filter > const & | gfilter | ||
| ) | 
Function for creating gandiva selection from prepared gandiva expressions tree.
Definition at line 576 of file Expressions.cxx.
      
  | 
  inline | 
Definition at line 535 of file Expressions.h.
      
  | 
  inline | 
Definition at line 547 of file Expressions.h.
      
  | 
  inline | 
Definition at line 553 of file Expressions.h.
      
  | 
  inline | 
Definition at line 523 of file Expressions.h.
      
  | 
  inline | 
Definition at line 529 of file Expressions.h.
      
  | 
  inline | 
Definition at line 541 of file Expressions.h.
      
  | 
  inline | 
Definition at line 517 of file Expressions.h.
conditionals
Definition at line 511 of file Expressions.h.
| bool o2::framework::expressions::isTableCompatible | ( | std::set< uint32_t > const & | hashes, | 
| Operations const & | specs | ||
| ) | 
Function to check compatibility of a given arrow schema with operation sequence.
Definition at line 771 of file Expressions.cxx.
| gandiva::ConditionPtr o2::framework::expressions::makeCondition | ( | gandiva::NodePtr | node | ) | 
Function to create gandiva condition expression from generic gandiva expression tree.
Definition at line 495 of file Expressions.cxx.
      
  | 
  inlineconstexpr | 
Definition at line 173 of file Expressions.cxx.
| gandiva::ExpressionPtr o2::framework::expressions::makeExpression | ( | gandiva::NodePtr | node, | 
| gandiva::FieldPtr | result | ||
| ) | 
Function to create gandiva projecting expression from generic gandiva expression tree.
Definition at line 500 of file Expressions.cxx.
      
  | 
  inlineconstexpr | 
Definition at line 191 of file Expressions.cxx.
      
  | 
  inline | 
context-independent configurable
Definition at line 611 of file Expressions.h.
functions
Definition at line 430 of file Expressions.h.
| std::ostream & o2::framework::expressions::operator<< | ( | std::ostream & | os, | 
| DatumSpec const & | spec | ||
| ) | 
Definition at line 254 of file Expressions.cxx.
Definition at line 559 of file Expressions.h.
division by 0 protector
Definition at line 603 of file Expressions.h.
| o2::framework::expressions::SELECT_ARROW_TYPE | ( | bool | , | 
| BOOL | |||
| ) | 
| o2::framework::expressions::SELECT_ARROW_TYPE | ( | double | , | 
| DOUBLE | |||
| ) | 
| o2::framework::expressions::SELECT_ARROW_TYPE | ( | float | , | 
| FLOAT | |||
| ) | 
| o2::framework::expressions::SELECT_ARROW_TYPE | ( | int16_t | , | 
| INT16 | |||
| ) | 
| o2::framework::expressions::SELECT_ARROW_TYPE | ( | int32_t | , | 
| INT32 | |||
| ) | 
| o2::framework::expressions::SELECT_ARROW_TYPE | ( | int64_t | , | 
| INT64 | |||
| ) | 
| o2::framework::expressions::SELECT_ARROW_TYPE | ( | int8_t | , | 
| INT8 | |||
| ) | 
| o2::framework::expressions::SELECT_ARROW_TYPE | ( | uint16_t | , | 
| UINT16 | |||
| ) | 
| o2::framework::expressions::SELECT_ARROW_TYPE | ( | uint32_t | , | 
| UINT32 | |||
| ) | 
| o2::framework::expressions::SELECT_ARROW_TYPE | ( | uint64_t | , | 
| UINT64 | |||
| ) | 
| o2::framework::expressions::SELECT_ARROW_TYPE | ( | uint8_t | , | 
| UINT8 | |||
| ) | 
      
  | 
  constexpr | 
Definition at line 83 of file Expressions.h.
| const char * o2::framework::expressions::stringType | ( | atype::type | t | ) | 
Definition at line 282 of file Expressions.cxx.
| o2::framework::expressions::UNARY_FUNC_NODES | ( | Abs | , | 
| nabs | |||
| ) | 
| o2::framework::expressions::UNARY_FUNC_NODES | ( | Acos | , | 
| nacos | |||
| ) | 
| o2::framework::expressions::UNARY_FUNC_NODES | ( | Asin | , | 
| nasin | |||
| ) | 
| o2::framework::expressions::UNARY_FUNC_NODES | ( | Atan | , | 
| natan | |||
| ) | 
| o2::framework::expressions::UNARY_FUNC_NODES | ( | BitwiseNot | , | 
| nbitwise_not | |||
| ) | 
| o2::framework::expressions::UNARY_FUNC_NODES | ( | Cos | , | 
| ncos | |||
| ) | 
| o2::framework::expressions::UNARY_FUNC_NODES | ( | Exp | , | 
| nexp | |||
| ) | 
| o2::framework::expressions::UNARY_FUNC_NODES | ( | Log | , | 
| nlog | |||
| ) | 
| o2::framework::expressions::UNARY_FUNC_NODES | ( | Log10 | , | 
| nlog10 | |||
| ) | 
| o2::framework::expressions::UNARY_FUNC_NODES | ( | Round | , | 
| nround | |||
| ) | 
| o2::framework::expressions::UNARY_FUNC_NODES | ( | Sin | , | 
| nsin | |||
| ) | 
| o2::framework::expressions::UNARY_FUNC_NODES | ( | Sqrt | , | 
| nsqrt | |||
| ) | 
| o2::framework::expressions::UNARY_FUNC_NODES | ( | Tan | , | 
| ntan | |||
| ) | 
Definition at line 28 of file Expressions.cxx.
| std::string o2::framework::expressions::upcastTo | ( | atype::type | f | ) | 
Definition at line 238 of file Expressions.cxx.
| void o2::framework::expressions::updateExpressionInfos | ( | expressions::Filter const & | filter, | 
| std::vector< ExpressionInfo > & | eInfos | ||
| ) | 
Function for attaching gandiva filters to to compatible task inputs.
If the tree is already set, add a new tree to it with logical 'and'
If the tree is already set, add a new tree to it with logical 'and'
Definition at line 787 of file Expressions.cxx.
| void o2::framework::expressions::updateFilterInfo | ( | ExpressionInfo & | info, | 
| std::shared_ptr< arrow::Table > & | table | ||
| ) | 
Definition at line 806 of file Expressions.cxx.
      
  | 
  inline | 
Definition at line 582 of file Expressions.h.
| void o2::framework::expressions::updatePlaceholders | ( | Filter & | filter, | 
| InitContext & | context | ||
| ) | 
Update placeholder nodes from context.
Definition at line 270 of file Expressions.cxx.
Tree-walker helper.
Definition at line 333 of file Expressions.h.
      
  | 
  constexpr | 
a map between BasicOp and gandiva node definitions note that logical 'and' and 'or' are created separately
Definition at line 104 of file Expressions.cxx.
| BINARY_OP_NODES& o2::framework::expressions::BitwiseAnd | 
Definition at line 412 of file Expressions.h.
| BINARY_OP_NODES^ o2::framework::expressions::BitwiseXor | 
Definition at line 413 of file Expressions.h.
      
  | 
  constexpr | 
Definition at line 67 of file Expressions.cxx.
| BINARY_OP_NODES&& o2::framework::expressions::LogicalAnd | 
Definition at line 425 of file Expressions.h.
      
  | 
  constexpr | 
a map between BasicOp and tokens in string expressions
Definition at line 34 of file Expressions.cxx.
      
  | 
  constexpr | 
math constants to recognize in string expressions
Definition at line 79 of file Expressions.cxx.
      
  | 
  constexpr | 
values of math constants to substiture
Definition at line 91 of file Expressions.cxx.
| BINARY_OP_NODES* o2::framework::expressions::Multiplication | 
Definition at line 417 of file Expressions.h.