Files | Classes | Enumerations
Expression Evaluation

Files

file  expressions.hpp
 

Classes

struct  cudf::ast::expression
 A generic expression that can be evaluated to return a value. More...
 
class  cudf::ast::generic_scalar_device_view
 A type-erased scalar_device_view where the value is a fixed width type or a string. More...
 
class  cudf::ast::literal
 A literal value used in an abstract syntax tree. More...
 
class  cudf::ast::column_reference
 A expression referring to data from a column in a table. More...
 
class  cudf::ast::operation
 An operation expression holds an operator and zero or more operands. More...
 
class  cudf::ast::column_name_reference
 A expression referring to data from a column in a table. More...
 
class  cudf::ast::tree
 An AST expression tree. It owns and contains multiple dependent expressions. All the expressions are destroyed when the tree is destructed. More...
 

Enumerations

enum class  cudf::ast::ast_operator : int32_t {
  ADD , SUB , MUL , DIV ,
  TRUE_DIV , FLOOR_DIV , MOD , PYMOD ,
  POW , EQUAL , NULL_EQUAL , NOT_EQUAL ,
  LESS , GREATER , LESS_EQUAL , GREATER_EQUAL ,
  BITWISE_AND , BITWISE_OR , BITWISE_XOR , LOGICAL_AND ,
  NULL_LOGICAL_AND , LOGICAL_OR , NULL_LOGICAL_OR , IDENTITY ,
  IS_NULL , SIN , COS , TAN ,
  ARCSIN , ARCCOS , ARCTAN , SINH ,
  COSH , TANH , ARCSINH , ARCCOSH ,
  ARCTANH , EXP , LOG , SQRT ,
  CBRT , CEIL , FLOOR , ABS ,
  RINT , BIT_INVERT , NOT , CAST_TO_INT64 ,
  CAST_TO_UINT64 , CAST_TO_FLOAT64
}
 Enum of supported operators. More...
 
enum class  cudf::ast::table_reference { LEFT , RIGHT , OUTPUT }
 Enum of table references. More...
 

Detailed Description

Enumeration Type Documentation

◆ ast_operator

enum cudf::ast::ast_operator : int32_t
strong

Enum of supported operators.

Enumerator
ADD 

operator +

SUB 

operator -

MUL 

operator *

DIV 

operator / using common type of lhs and rhs

TRUE_DIV 

operator / after promoting type to floating point

FLOOR_DIV 

operator / after promoting to 64 bit floating point and then flooring the result

MOD 

operator %

PYMOD 

operator % using Python's sign rules for negatives

POW 

lhs ^ rhs

EQUAL 

operator ==

NULL_EQUAL 

operator == with Spark rules: NULL_EQUAL(null, null) is true, NULL_EQUAL(null, valid) is false, and NULL_EQUAL(valid, valid) == EQUAL(valid, valid)

NOT_EQUAL 

operator !=

LESS 

operator <

GREATER 

operator >

LESS_EQUAL 

operator <=

GREATER_EQUAL 

operator >=

BITWISE_AND 

operator &

BITWISE_OR 

operator |

BITWISE_XOR 

operator ^

LOGICAL_AND 

operator &&

NULL_LOGICAL_AND 

operator && with Spark rules: NULL_LOGICAL_AND(null, null) is null, NULL_LOGICAL_AND(null, true) is null, NULL_LOGICAL_AND(null, false) is false, and NULL_LOGICAL_AND(valid, valid) == LOGICAL_AND(valid, valid)

LOGICAL_OR 

operator ||

NULL_LOGICAL_OR 

operator || with Spark rules: NULL_LOGICAL_OR(null, null) is null, NULL_LOGICAL_OR(null, true) is true, NULL_LOGICAL_OR(null, false) is null, and NULL_LOGICAL_OR(valid, valid) == LOGICAL_OR(valid, valid)

IDENTITY 

Identity function.

IS_NULL 

Check if operand is null.

SIN 

Trigonometric sine.

COS 

Trigonometric cosine.

TAN 

Trigonometric tangent.

ARCSIN 

Trigonometric sine inverse.

ARCCOS 

Trigonometric cosine inverse.

ARCTAN 

Trigonometric tangent inverse.

SINH 

Hyperbolic sine.

COSH 

Hyperbolic cosine.

TANH 

Hyperbolic tangent.

ARCSINH 

Hyperbolic sine inverse.

ARCCOSH 

Hyperbolic cosine inverse.

ARCTANH 

Hyperbolic tangent inverse.

EXP 

Exponential (base e, Euler number)

LOG 

Natural Logarithm (base e)

SQRT 

Square-root (x^0.5)

CBRT 

Cube-root (x^(1.0/3))

CEIL 

Smallest integer value not less than arg.

FLOOR 

largest integer value not greater than arg

ABS 

Absolute value.

RINT 

Rounds the floating-point argument arg to an integer value.

BIT_INVERT 

Bitwise Not (~)

NOT 

Logical Not (!)

CAST_TO_INT64 

Cast value to int64_t.

CAST_TO_UINT64 

Cast value to uint64_t.

CAST_TO_FLOAT64 

Cast value to double.

Definition at line 96 of file expressions.hpp.

◆ table_reference

Enum of table references.

This determines which table to use in cases with two tables (e.g. joins).

Enumerator
LEFT 

Column index in the left table.

RIGHT 

Column index in the right table.

OUTPUT 

Column index in the output table.

Definition at line 165 of file expressions.hpp.