Classes | Namespaces | Typedefs | Enumerations | Functions | Variables
binaryop.hpp File Reference

Column APIs for binary ops. More...

#include <cudf/column/column.hpp>
#include <cudf/scalar/scalar.hpp>
#include <cudf/utilities/export.hpp>
#include <rmm/mr/device/per_device_resource.hpp>
#include <rmm/resource_ref.hpp>
#include <memory>

Go to the source code of this file.

Classes

struct  cudf::binary_op_common_type< L, R, typename >
 Binary operation common type default. More...
 
struct  cudf::binary_op_common_type< L, R, std::enable_if_t< has_common_type_v< L, R > > >
 Binary operation common type specialization. More...
 

Namespaces

 cudf
 cuDF interfaces
 

Typedefs

template<typename L , typename R >
using cudf::binary_op_common_type_t = typename binary_op_common_type< L, R >::type
 Binary operation common type helper.
 

Enumerations

enum class  cudf::binary_operator : int32_t {
  cudf::ADD , cudf::SUB , cudf::MUL , cudf::DIV ,
  cudf::TRUE_DIV , cudf::FLOOR_DIV , cudf::MOD , cudf::PMOD ,
  cudf::PYMOD , cudf::POW , cudf::INT_POW , cudf::LOG_BASE ,
  cudf::ATAN2 , cudf::SHIFT_LEFT , cudf::SHIFT_RIGHT , cudf::SHIFT_RIGHT_UNSIGNED ,
  cudf::BITWISE_AND , cudf::BITWISE_OR , cudf::BITWISE_XOR , cudf::LOGICAL_AND ,
  cudf::LOGICAL_OR , cudf::EQUAL , cudf::NOT_EQUAL , cudf::LESS ,
  cudf::GREATER , cudf::LESS_EQUAL , cudf::GREATER_EQUAL , cudf::NULL_EQUALS ,
  cudf::NULL_NOT_EQUALS , cudf::NULL_MAX , cudf::NULL_MIN , cudf::GENERIC_BINARY ,
  cudf::NULL_LOGICAL_AND , cudf::NULL_LOGICAL_OR , cudf::INVALID_BINARY
}
 Types of binary operations that can be performed on data. More...
 

Functions

std::unique_ptr< column > cudf::binary_operation (scalar const &lhs, column_view const &rhs, binary_operator op, data_type output_type, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=rmm::mr::get_current_device_resource())
 Performs a binary operation between a scalar and a column. More...
 
std::unique_ptr< column > cudf::binary_operation (column_view const &lhs, scalar const &rhs, binary_operator op, data_type output_type, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=rmm::mr::get_current_device_resource())
 Performs a binary operation between a column and a scalar. More...
 
std::unique_ptr< column > cudf::binary_operation (column_view const &lhs, column_view const &rhs, binary_operator op, data_type output_type, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=rmm::mr::get_current_device_resource())
 Performs a binary operation between two columns. More...
 
std::unique_ptr< column > cudf::binary_operation (column_view const &lhs, column_view const &rhs, std::string const &ptx, data_type output_type, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=rmm::mr::get_current_device_resource())
 Performs a binary operation between two columns using a user-defined PTX function. More...
 
int32_t cudf::binary_operation_fixed_point_scale (binary_operator op, int32_t left_scale, int32_t right_scale)
 Computes the scale for a fixed_point number based on given binary operator op More...
 
cudf::data_type cudf::binary_operation_fixed_point_output_type (binary_operator op, cudf::data_type const &lhs, cudf::data_type const &rhs)
 Computes the data_type for a fixed_point number based on given binary operator op More...
 
bool cudf::binops::is_supported_operation (data_type out, data_type lhs, data_type rhs, binary_operator op)
 Returns true if the binary operator is supported for the given input types. More...
 
std::pair< rmm::device_buffer, size_type > cudf::binops::scalar_col_valid_mask_and (column_view const &col, scalar const &s, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=rmm::mr::get_current_device_resource())
 Computes output valid mask for op between a column and a scalar. More...
 
void cudf::binops::compiled::detail::apply_sorting_struct_binary_op (mutable_column_view &out, column_view const &lhs, column_view const &rhs, bool is_lhs_scalar, bool is_rhs_scalar, binary_operator op, rmm::cuda_stream_view stream)
 struct binary operation using NaN aware sorting physical element comparators More...
 

Variables

template<typename L , typename R >
constexpr bool cudf::binary_op_has_common_type_v
 Checks if binary operation types have a common type. More...
 

Detailed Description

Column APIs for binary ops.

Definition in file binaryop.hpp.

Function Documentation

◆ apply_sorting_struct_binary_op()

void cudf::binops::compiled::detail::apply_sorting_struct_binary_op ( mutable_column_view out,
column_view const &  lhs,
column_view const &  rhs,
bool  is_lhs_scalar,
bool  is_rhs_scalar,
binary_operator  op,
rmm::cuda_stream_view  stream 
)

struct binary operation using NaN aware sorting physical element comparators

Parameters
outmutable view of output column
lhsview of left operand column
rhsview of right operand column
is_lhs_scalartrue if lhs is a single element column representing a scalar
is_rhs_scalartrue if rhs is a single element column representing a scalar
opbinary operator identifier
streamCUDA stream used for device memory operations

◆ is_supported_operation()

bool cudf::binops::is_supported_operation ( data_type  out,
data_type  lhs,
data_type  rhs,
binary_operator  op 
)

Returns true if the binary operator is supported for the given input types.

Parameters
outThe output data type
lhsThe left-hand cudf::data_type
rhsThe right-hand cudf::data_type
opThe binary operator
Returns
true if the binary operator is supported for the given input types

◆ scalar_col_valid_mask_and()

std::pair<rmm::device_buffer, size_type> cudf::binops::scalar_col_valid_mask_and ( column_view const &  col,
scalar const &  s,
rmm::cuda_stream_view  stream = cudf::get_default_stream(),
rmm::device_async_resource_ref  mr = rmm::mr::get_current_device_resource() 
)

Computes output valid mask for op between a column and a scalar.

Parameters
colColumn to compute the valid mask from
sScalar to compute the valid mask from
streamCUDA stream used for device memory operations and kernel launches
mrDevice memory resource used to allocate the returned valid mask
Returns
Computed validity mask