# Function ral::processor::evaluate_expressions¶

## Function Documentation¶

std::vector<std::unique_ptr<ral::frame::BlazingColumn>> ral::processor::evaluate_expressions(const cudf::table_view &table, const std::vector<std::string> &expressions)

Evaluates multiple expressions consisting of arithmetic operations and SQL functions.

The computation of the results consist of two steps:

1. We evaluate all complex operations operations one by one. Complex operations are operations that can’t be mapped as f(input_table[row]) => output_table[row] for a given row in a table e.g. string functions

2. We batch all simple operations and evaluate all of them in a single GPU kernel call. Simple operations are operations that can be mapped as f(input_table[row]) => output_table[row] for a given row in a table e.g. arithmetic operations and cast between primitive types