Interface BinaryOperable

All Known Implementing Classes:
ColumnVector, ColumnView, Scalar

public interface BinaryOperable
  • Method Details

    • implicitConversion

      static DType implicitConversion(BinaryOp op, BinaryOperable lhs, BinaryOperable rhs)
      Finds the proper DType for an implicit output. This follows the typical rules of C++, Java, and most SQL implementations. FLOAT64/double > FLOAT32/float > INT64/long > INT32/int > INT16/short > INT8/byte/char

      Currently most TIMESTAMPs are treated the same as INT64. TIMESTAMP_DAYS is treated the same as INT32. All time information is stripped from them. This may change in the future.

      BOOL8 is treated like an INT8. Math on boolean operations makes little sense. If you want to stay as a BOOL8 you will need to explicitly specify the output type. For decimal types, DECIMAL32 and DECIMAL64 takes in another parameter `scale`. DType is created with scale=0 as scale is required. Dtype is discarded for binary operations for decimal types in cudf as a new DType is created for output type with the new scale.

    • getType

      DType getType()
      Get the type of this data.
    • binaryOp

      ColumnVector binaryOp(BinaryOp op, BinaryOperable rhs, DType outType)
      Multiple different binary operations.
      Parameters:
      op - the operation to perform
      rhs - the rhs of the operation
      outType - the type of output you want.
      Returns:
      the result
    • add

      default ColumnVector add(BinaryOperable rhs, DType outType)
      Add one vector to another with the given output type. this + rhs Output type is ignored for the operations between decimal types and it is always decimal type.
    • add

      default ColumnVector add(BinaryOperable rhs)
      Add + operator. this + rhs
    • sub

      default ColumnVector sub(BinaryOperable rhs, DType outType)
      Subtract one vector from another with the given output type. this - rhs Output type is ignored for the operations between decimal types and it is always decimal type.
    • sub

      default ColumnVector sub(BinaryOperable rhs)
      Subtract one vector from another. this - rhs
    • mul

      default ColumnVector mul(BinaryOperable rhs, DType outType)
      Multiply two vectors together with the given output type. this * rhs Output type is ignored for the operations between decimal types and it is always decimal type.
    • mul

      default ColumnVector mul(BinaryOperable rhs)
      Multiply two vectors together. this * rhs
    • div

      default ColumnVector div(BinaryOperable rhs, DType outType)
      Divide one vector by another with the given output type. this / rhs Output type is ignored for the operations between decimal types and it is always decimal type.
    • div

      default ColumnVector div(BinaryOperable rhs)
      Divide one vector by another. this / rhs
    • trueDiv

      default ColumnVector trueDiv(BinaryOperable rhs, DType outType)
      Divide one vector by another converting to FLOAT64 in between with the given output type. (double)this / (double)rhs
    • trueDiv

      default ColumnVector trueDiv(BinaryOperable rhs)
      Divide one vector by another converting to FLOAT64 in between. (double)this / (double)rhs
    • floorDiv

      default ColumnVector floorDiv(BinaryOperable rhs, DType outType)
      Divide one vector by another and calculate the floor of the result with the given output type. Math.floor(this/rhs)
    • floorDiv

      default ColumnVector floorDiv(BinaryOperable rhs)
      Divide one vector by another and calculate the floor of the result. Math.floor(this/rhs)
    • mod

      default ColumnVector mod(BinaryOperable rhs, DType outType)
      Compute the modulus with the given output type. this % rhs
    • mod

      default ColumnVector mod(BinaryOperable rhs)
      Compute the modulus. this % rhs
    • pow

      default ColumnVector pow(BinaryOperable rhs, DType outType)
      Compute the power with the given output type. Math.pow(this, rhs)
    • pow

      default ColumnVector pow(BinaryOperable rhs)
      Compute the power. Math.pow(this, rhs)
    • equalTo

      default ColumnVector equalTo(BinaryOperable rhs, DType outType)
      this == rhs 1 is true 0 is false with the output cast to the given type.
    • equalTo

      default ColumnVector equalTo(BinaryOperable rhs)
      this == rhs 1 is true 0 is false. The output type is BOOL8.
    • notEqualTo

      default ColumnVector notEqualTo(BinaryOperable rhs, DType outType)
      this != rhs 1 is true 0 is false with the output cast to the given type.
    • notEqualTo

      default ColumnVector notEqualTo(BinaryOperable rhs)
      this != rhs 1 is true 0 is false. The output type is BOOL8.
    • lessThan

      default ColumnVector lessThan(BinaryOperable rhs, DType outType)
      this < rhs 1 is true 0 is false with the output cast to the given type.
    • lessThan

      default ColumnVector lessThan(BinaryOperable rhs)
      this < rhs 1 is true 0 is false. The output type is BOOL8.
    • greaterThan

      default ColumnVector greaterThan(BinaryOperable rhs, DType outType)
      this > rhs 1 is true 0 is false with the output cast to the given type.
    • greaterThan

      default ColumnVector greaterThan(BinaryOperable rhs)
      this > rhs 1 is true 0 is false. The output type is BOOL8.
    • lessOrEqualTo

      default ColumnVector lessOrEqualTo(BinaryOperable rhs, DType outType)
      this <= rhs 1 is true 0 is false with the output cast to the given type.
    • lessOrEqualTo

      default ColumnVector lessOrEqualTo(BinaryOperable rhs)
      this <= rhs 1 is true 0 is false. The output type is BOOL8.
    • greaterOrEqualTo

      default ColumnVector greaterOrEqualTo(BinaryOperable rhs, DType outType)
      this >= rhs 1 is true 0 is false with the output cast to the given type.
    • greaterOrEqualTo

      default ColumnVector greaterOrEqualTo(BinaryOperable rhs)
      this >= rhs 1 is true 0 is false. The output type is BOOL8.
    • bitAnd

      default ColumnVector bitAnd(BinaryOperable rhs, DType outType)
      Bit wise and (&) with the given output type. this & rhs
    • bitAnd

      default ColumnVector bitAnd(BinaryOperable rhs)
      Bit wise and (&). this & rhs
    • bitOr

      default ColumnVector bitOr(BinaryOperable rhs, DType outType)
      Bit wise or (|) with the given output type. this | rhs
    • bitOr

      default ColumnVector bitOr(BinaryOperable rhs)
      Bit wise or (|). this | rhs
    • bitXor

      default ColumnVector bitXor(BinaryOperable rhs, DType outType)
      Bit wise xor (^) with the given output type. this ^ rhs
    • bitXor

      default ColumnVector bitXor(BinaryOperable rhs)
      Bit wise xor (^). this ^ rhs
    • and

      default ColumnVector and(BinaryOperable rhs, DType outType)
      Logical and (&&) with the given output type. this && rhs
    • and

      default ColumnVector and(BinaryOperable rhs)
      Logical and (&&). this && rhs
    • or

      default ColumnVector or(BinaryOperable rhs, DType outType)
      Logical or (||) with the given output type. this || rhs
    • or

      default ColumnVector or(BinaryOperable rhs)
      Logical or (||). this || rhs
    • shiftLeft

      default ColumnVector shiftLeft(BinaryOperable shiftBy, DType outType)
      Bitwise left shifts the values of this vector by shiftBy. If "this" and shiftBy are both vectors then, this[i] << shiftBy[i] If "this" is a scalar and shiftBy is a vector then returns a vector of size shiftBy.rows with the scalar << shiftBy[i] If "this" is a vector and shiftBy is a scalar then returns a vector of size this.rows with this[i] << shiftBy
    • shiftLeft

      default ColumnVector shiftLeft(BinaryOperable shiftBy)
      Bitwise left shift the values of this vector by the shiftBy. If "this" and shiftBy are both vectors then, this[i] << shiftBy[i] If "this" is a scalar and shiftBy is a vector then returns a vector of size shiftBy.rows with the scalar << shiftBy[i] If "this" is a vector and shiftBy is a scalar then returns a vector of size this.rows with this[i] << shiftBy
    • shiftRight

      default ColumnVector shiftRight(BinaryOperable shiftBy, DType outType)
      Bitwise right shift this vector by the shiftBy. If "this" and shiftBy are both vectors then, this[i] >> shiftBy[i] If "this" is a scalar and shiftBy is a vector then returns a vector of size shiftBy.rows with the scalar >> shiftBy[i] If "this" is a vector and shiftBy is a scalar then returns a vector of size this.rows with this[i] >> shiftBy
    • shiftRight

      default ColumnVector shiftRight(BinaryOperable shiftBy)
      Bitwise right shift this vector by the shiftBy. If "this" and shiftBy are both vectors then, this[i] >> shiftBy[i] If "this" is a scalar and shiftBy is a vector then returns a vector of size shiftBy.rows with the scalar >> shiftBy[i] If "this" is a vector and shiftBy is a scalar then returns a vector of size this.rows with this[i] >> shiftBy
    • shiftRightUnsigned

      default ColumnVector shiftRightUnsigned(BinaryOperable shiftBy, DType outType)
      This method bitwise right shifts the values of this vector by the shiftBy. This method always fills 0 irrespective of the sign of the number. If "this" and shiftBy are both vectors then, this[i] >>> shiftBy[i] If "this" is a scalar and shiftBy is a vector then returns a vector of size shiftBy.rows with the scalar >>> shiftBy[i] If "this" is a vector and shiftBy is a scalar then returns a vector of size this.rows with this[i] >>> shiftBy
    • shiftRightUnsigned

      default ColumnVector shiftRightUnsigned(BinaryOperable shiftBy)
      This method bitwise right shifts the values of this vector by the shiftBy. This method always fills 0 irrespective of the sign of the number. If "this" and shiftBy are both vectors then, this[i] >>> shiftBy[i] If "this" is a scalar and shiftBy is a vector then returns a vector of size shiftBy.rows with the scalar >>> shiftBy[i] If "this" is a vector and shiftBy is a scalar then returns a vector of size this.rows with this[i] >>> shiftBy
    • log

      default ColumnVector log(BinaryOperable rhs, DType outType)
      Calculate the log with the specified base
    • log

      default ColumnVector log(BinaryOperable rhs)
      Calculate the log with the specified base, output is the same as this.
    • arctan2

      default ColumnVector arctan2(BinaryOperable xCoordinate, DType outType)
      The function arctan2(y,x) or atan2(y,x) is defined as the angle in the Euclidean plane, given in radians, between the positive x axis and the ray to the point (x, y) ≠ (0, 0).
    • arctan2

      default ColumnVector arctan2(BinaryOperable xCoordinate)
      The function arctan2(y,x) or atan2(y,x) is defined as the angle in the Euclidean plane, given in radians, between the positive x axis and the ray to the point (x, y) ≠ (0, 0).
    • pmod

      default ColumnVector pmod(BinaryOperable rhs, DType outputType)
      Returns the positive value of lhs mod rhs. r = lhs % rhs if r < 0 then (r + rhs) % rhs else r
    • pmod

      default ColumnVector pmod(BinaryOperable rhs)
      Returns the positive value of lhs mod rhs. r = lhs % rhs if r < 0 then (r + rhs) % rhs else r
    • equalToNullAware

      default ColumnVector equalToNullAware(BinaryOperable rhs, DType outType)
      like equalTo but NULL == NULL is TRUE and NULL == not NULL is FALSE
    • equalToNullAware

      default ColumnVector equalToNullAware(BinaryOperable rhs)
      like equalTo but NULL == NULL is TRUE and NULL == not NULL is FALSE
    • notEqualToNullAware

      default ColumnVector notEqualToNullAware(BinaryOperable rhs, DType outType)
      like notEqualTo but NULL != NULL is TRUE and NULL != not NULL is FALSE
    • notEqualToNullAware

      default ColumnVector notEqualToNullAware(BinaryOperable rhs)
      like notEqualTo but NULL != NULL is TRUE and NULL != not NULL is FALSE
    • maxNullAware

      default ColumnVector maxNullAware(BinaryOperable rhs, DType outType)
      Returns the max non null value.
    • maxNullAware

      default ColumnVector maxNullAware(BinaryOperable rhs)
      Returns the max non null value.
    • minNullAware

      default ColumnVector minNullAware(BinaryOperable rhs, DType outType)
      Returns the min non null value.
    • minNullAware

      default ColumnVector minNullAware(BinaryOperable rhs)
      Returns the min non null value.