BinOps
object BinOps extends BinOpMat with BinOpMatInPlace with BinOpVec with BinOpVecInPlace with BinOpFrame with BinOpSeries
Contains implementations of primitive binary ops that are NA-aware
Double primitive has NA bit pattern baked into its representation, but for others we must check for the appropriate sentinel value.
Note scala.Function2 is not specialized on Boolean inputs, only output
trait BinOpSeries
trait BinOpFrame
trait BinOpVecInPlace
trait BinOpVec
trait BinOpMatInPlace
trait BinOpMat
class Object
trait Matchable
class Any
BinOps.type
Type members
Inherited classlikes
final class FrFrEOp[OP <: ScalarOp, X, Y, A, B, C](opv: BinOp[OP, Vec[A], Vec[B], Vec[C]])(implicit evidence$2: ScalarTag[X], evidence$3: Order[X], evidence$4: ScalarTag[Y], evidence$5: Order[Y], evidence$6: ScalarTag[B], evidence$7: ScalarTag[C]) extends BinOp[OP, Frame[X, Y, A], Frame[X, Y, B], Frame[X, Y, C]]
- Inherited from:
- BinOpFrame
Binary element-wise operation on two Mats
Binary element-wise operation on two Mats
Broadcasts according to the following rules (same as numpy). If any of the pairs of dimensions are the same, or one of the pair is size 1, then the dimensions are compatible. If the compatible dimension is size 1, then it is virtually expanded to match the size of the corresponding dimension of the other operand.
- Inherited from:
- BinOpMat
final class MatMatElemOpIp[OP <: ScalarOp, @specialized(Int, Long, Double) A, @specialized(Int, Long, Double) B](op: BinOp[OP, A, B, A]) extends BinOpInPlace[OP, Mat[A], Mat[B]]
- Inherited from:
- BinOpMatInPlace
final class MatSclrElemOpIp[OP <: ScalarOp, @specialized(Int, Long, Double) A, @specialized(Int, Long, Double) B](val op: BinOp[OP, A, B, A]) extends BinOpInPlace[OP, Mat[A], B]
- Inherited from:
- BinOpMatInPlace
final class VecSclrElemOpIp[OP <: ScalarOp, @specialized(Boolean, Int, Long, Double) A, @specialized(Boolean, Int, Long, Double) B](val op: BinOp[OP, A, B, A]) extends BinOpInPlace[OP, Vec[A], B]
- Inherited from:
- BinOpVecInPlace
final class VecVecElemOpIp[OP <: ScalarOp, @specialized(Boolean, Int, Long, Double) A, @specialized(Boolean, Int, Long, Double) B](op: BinOp[OP, A, B, A]) extends BinOpInPlace[OP, Vec[A], Vec[B]]
- Inherited from:
- BinOpVecInPlace
Implicits
Implicits
Inherited implicits
implicit def MatMatElemOpDDD[Op <: ScalarOp](implicit op: BinOp[Op, Double, Double, Double]): MatMatElemOp[Op, Double, Double, Double]
- Inherited from:
- BinOpMat
implicit def MatMatElemOpDID[Op <: ScalarOp](implicit op: BinOp[Op, Double, Int, Double]): MatMatElemOp[Op, Double, Int, Double]
- Inherited from:
- BinOpMat
implicit def MatMatElemOpDLD[Op <: ScalarOp](implicit op: BinOp[Op, Double, Long, Double]): MatMatElemOp[Op, Double, Long, Double]
- Inherited from:
- BinOpMat
implicit def MatMatElemOpIDD[Op <: ScalarOp](implicit op: BinOp[Op, Int, Double, Double]): MatMatElemOp[Op, Int, Double, Double]
- Inherited from:
- BinOpMat
implicit def MatMatElemOpIII[Op <: ScalarOp](implicit op: BinOp[Op, Int, Int, Int]): MatMatElemOp[Op, Int, Int, Int]
- Inherited from:
- BinOpMat
implicit def MatMatElemOpILL[Op <: ScalarOp](implicit op: BinOp[Op, Int, Long, Long]): MatMatElemOp[Op, Int, Long, Long]
- Inherited from:
- BinOpMat
implicit def MatMatElemOpIpDDD[Op <: ScalarOp](implicit op: BinOp[Op, Double, Double, Double]): MatMatElemOpIp[Op, Double, Double]
- Inherited from:
- BinOpMatInPlace
implicit def MatMatElemOpIpDID[Op <: ScalarOp](implicit op: BinOp[Op, Double, Int, Double]): MatMatElemOpIp[Op, Double, Int]
- Inherited from:
- BinOpMatInPlace
implicit def MatMatElemOpIpDLD[Op <: ScalarOp](implicit op: BinOp[Op, Double, Long, Double]): MatMatElemOpIp[Op, Double, Long]
- Inherited from:
- BinOpMatInPlace
implicit def MatMatElemOpIpIII[Op <: ScalarOp](implicit op: BinOp[Op, Int, Int, Int]): MatMatElemOpIp[Op, Int, Int]
- Inherited from:
- BinOpMatInPlace
implicit def MatMatElemOpIpLIL[Op <: ScalarOp](implicit op: BinOp[Op, Long, Int, Long]): MatMatElemOpIp[Op, Long, Int]
- Inherited from:
- BinOpMatInPlace
implicit def MatMatElemOpIpLLL[Op <: ScalarOp](implicit op: BinOp[Op, Long, Long, Long]): MatMatElemOpIp[Op, Long, Long]
- Inherited from:
- BinOpMatInPlace
implicit def MatMatElemOpLDD[Op <: ScalarOp](implicit op: BinOp[Op, Long, Double, Double]): MatMatElemOp[Op, Long, Double, Double]
- Inherited from:
- BinOpMat
implicit def MatMatElemOpLIL[Op <: ScalarOp](implicit op: BinOp[Op, Long, Int, Long]): MatMatElemOp[Op, Long, Int, Long]
- Inherited from:
- BinOpMat
implicit def MatMatElemOpLLL[Op <: ScalarOp](implicit op: BinOp[Op, Long, Long, Long]): MatMatElemOp[Op, Long, Long, Long]
- Inherited from:
- BinOpMat
implicit def MatSclrElmOpBBB[Op <: ScalarOp](implicit op: BinOp[Op, Boolean, Boolean, Boolean]): MatSclrElemOp[Op, Boolean, Boolean, Boolean]
- Inherited from:
- BinOpMat
implicit def MatSclrElmOpDDB[Op <: ScalarOp](implicit op: BinOp[Op, Double, Double, Boolean]): MatSclrElemOp[Op, Double, Double, Boolean]
- Inherited from:
- BinOpMat
implicit def MatSclrElmOpDDD[Op <: ScalarOp](implicit op: BinOp[Op, Double, Double, Double]): MatSclrElemOp[Op, Double, Double, Double]
- Inherited from:
- BinOpMat
implicit def MatSclrElmOpDIB[Op <: ScalarOp](implicit op: BinOp[Op, Double, Int, Boolean]): MatSclrElemOp[Op, Double, Int, Boolean]
- Inherited from:
- BinOpMat
implicit def MatSclrElmOpDID[Op <: ScalarOp](implicit op: BinOp[Op, Double, Int, Double]): MatSclrElemOp[Op, Double, Int, Double]
- Inherited from:
- BinOpMat
implicit def MatSclrElmOpDLB[Op <: ScalarOp](implicit op: BinOp[Op, Double, Long, Boolean]): MatSclrElemOp[Op, Double, Long, Boolean]
- Inherited from:
- BinOpMat
implicit def MatSclrElmOpDLD[Op <: ScalarOp](implicit op: BinOp[Op, Double, Long, Double]): MatSclrElemOp[Op, Double, Long, Double]
- Inherited from:
- BinOpMat
implicit def MatSclrElmOpIDB[Op <: ScalarOp](implicit op: BinOp[Op, Int, Double, Boolean]): MatSclrElemOp[Op, Int, Double, Boolean]
- Inherited from:
- BinOpMat
implicit def MatSclrElmOpIDD[Op <: ScalarOp](implicit op: BinOp[Op, Int, Double, Double]): MatSclrElemOp[Op, Int, Double, Double]
- Inherited from:
- BinOpMat
implicit def MatSclrElmOpIIB[Op <: ScalarOp](implicit op: BinOp[Op, Int, Int, Boolean]): MatSclrElemOp[Op, Int, Int, Boolean]
- Inherited from:
- BinOpMat
implicit def MatSclrElmOpIII[Op <: ScalarOp](implicit op: BinOp[Op, Int, Int, Int]): MatSclrElemOp[Op, Int, Int, Int]
- Inherited from:
- BinOpMat
implicit def MatSclrElmOpILL[Op <: ScalarOp](implicit op: BinOp[Op, Int, Long, Long]): MatSclrElemOp[Op, Int, Long, Long]
- Inherited from:
- BinOpMat
implicit def MatSclrElmOpIpDDD[Op <: ScalarOp](implicit op: BinOp[Op, Double, Double, Double]): MatSclrElemOpIp[Op, Double, Double]
- Inherited from:
- BinOpMatInPlace
implicit def MatSclrElmOpIpDID[Op <: ScalarOp](implicit op: BinOp[Op, Double, Int, Double]): MatSclrElemOpIp[Op, Double, Int]
- Inherited from:
- BinOpMatInPlace
implicit def MatSclrElmOpIpDLD[Op <: ScalarOp](implicit op: BinOp[Op, Double, Long, Double]): MatSclrElemOpIp[Op, Double, Long]
- Inherited from:
- BinOpMatInPlace
implicit def MatSclrElmOpIpIII[Op <: ScalarOp](implicit op: BinOp[Op, Int, Int, Int]): MatSclrElemOpIp[Op, Int, Int]
- Inherited from:
- BinOpMatInPlace
implicit def MatSclrElmOpIpLIL[Op <: ScalarOp](implicit op: BinOp[Op, Long, Int, Long]): MatSclrElemOpIp[Op, Long, Int]
- Inherited from:
- BinOpMatInPlace
implicit def MatSclrElmOpIpLLL[Op <: ScalarOp](implicit op: BinOp[Op, Long, Long, Long]): MatSclrElemOpIp[Op, Long, Long]
- Inherited from:
- BinOpMatInPlace
implicit def MatSclrElmOpLDB[Op <: ScalarOp](implicit op: BinOp[Op, Long, Double, Boolean]): MatSclrElemOp[Op, Long, Double, Boolean]
- Inherited from:
- BinOpMat
implicit def MatSclrElmOpLDD[Op <: ScalarOp](implicit op: BinOp[Op, Long, Double, Double]): MatSclrElemOp[Op, Long, Double, Double]
- Inherited from:
- BinOpMat
implicit def MatSclrElmOpLIB[Op <: ScalarOp](implicit op: BinOp[Op, Long, Int, Boolean]): MatSclrElemOp[Op, Long, Int, Boolean]
- Inherited from:
- BinOpMat
implicit def MatSclrElmOpLIL[Op <: ScalarOp](implicit op: BinOp[Op, Long, Int, Long]): MatSclrElemOp[Op, Long, Int, Long]
- Inherited from:
- BinOpMat
implicit def MatSclrElmOpLLB[Op <: ScalarOp](implicit op: BinOp[Op, Long, Long, Boolean]): MatSclrElemOp[Op, Long, Long, Boolean]
- Inherited from:
- BinOpMat
implicit def MatSclrElmOpLLL[Op <: ScalarOp](implicit op: BinOp[Op, Long, Long, Long]): MatSclrElemOp[Op, Long, Long, Long]
- Inherited from:
- BinOpMat
implicit def VecSclrElmOpBBB[Op <: ScalarOp](implicit op: BinOp[Op, Boolean, Boolean, Boolean]): VecSclrElemOp[Op, Boolean, Boolean, Boolean]
- Inherited from:
- BinOpVec
implicit def VecSclrElmOpBBBIp[Op <: ScalarOp](implicit op: BinOp[Op, Boolean, Boolean, Boolean]): VecSclrElemOpIp[Op, Boolean, Boolean]
- Inherited from:
- BinOpVecInPlace
implicit def VecSclrElmOpDDB[Op <: ScalarOp](implicit op: BinOp[Op, Double, Double, Boolean]): VecSclrElemOp[Op, Double, Double, Boolean]
- Inherited from:
- BinOpVec
implicit def VecSclrElmOpDDD[Op <: ScalarOp](implicit op: BinOp[Op, Double, Double, Double]): VecSclrElemOp[Op, Double, Double, Double]
- Inherited from:
- BinOpVec
implicit def VecSclrElmOpDDDIp[Op <: ScalarOp](implicit op: BinOp[Op, Double, Double, Double]): VecSclrElemOpIp[Op, Double, Double]
- Inherited from:
- BinOpVecInPlace
implicit def VecSclrElmOpDIB[Op <: ScalarOp](implicit op: BinOp[Op, Double, Int, Boolean]): VecSclrElemOp[Op, Double, Int, Boolean]
- Inherited from:
- BinOpVec
implicit def VecSclrElmOpDID[Op <: ScalarOp](implicit op: BinOp[Op, Double, Int, Double]): VecSclrElemOp[Op, Double, Int, Double]
- Inherited from:
- BinOpVec
implicit def VecSclrElmOpDIDIp[Op <: ScalarOp](implicit op: BinOp[Op, Double, Int, Double]): VecSclrElemOpIp[Op, Double, Int]
- Inherited from:
- BinOpVecInPlace
implicit def VecSclrElmOpDLB[Op <: ScalarOp](implicit op: BinOp[Op, Double, Long, Boolean]): VecSclrElemOp[Op, Double, Long, Boolean]
- Inherited from:
- BinOpVec
implicit def VecSclrElmOpDLD[Op <: ScalarOp](implicit op: BinOp[Op, Double, Long, Double]): VecSclrElemOp[Op, Double, Long, Double]
- Inherited from:
- BinOpVec
implicit def VecSclrElmOpDLDIp[Op <: ScalarOp](implicit op: BinOp[Op, Double, Long, Double]): VecSclrElemOpIp[Op, Double, Long]
- Inherited from:
- BinOpVecInPlace
implicit def VecSclrElmOpIDB[Op <: ScalarOp](implicit op: BinOp[Op, Int, Double, Boolean]): VecSclrElemOp[Op, Int, Double, Boolean]
- Inherited from:
- BinOpVec
implicit def VecSclrElmOpIDD[Op <: ScalarOp](implicit op: BinOp[Op, Int, Double, Double]): VecSclrElemOp[Op, Int, Double, Double]
- Inherited from:
- BinOpVec
implicit def VecSclrElmOpIIB[Op <: ScalarOp](implicit op: BinOp[Op, Int, Int, Boolean]): VecSclrElemOp[Op, Int, Int, Boolean]
- Inherited from:
- BinOpVec
implicit def VecSclrElmOpIII[Op <: ScalarOp](implicit op: BinOp[Op, Int, Int, Int]): VecSclrElemOp[Op, Int, Int, Int]
- Inherited from:
- BinOpVec
implicit def VecSclrElmOpIIIIp[Op <: ScalarOp](implicit op: BinOp[Op, Int, Int, Int]): VecSclrElemOpIp[Op, Int, Int]
- Inherited from:
- BinOpVecInPlace
implicit def VecSclrElmOpILB[Op <: ScalarOp](implicit op: BinOp[Op, Int, Long, Boolean]): VecSclrElemOp[Op, Int, Long, Boolean]
- Inherited from:
- BinOpVec
implicit def VecSclrElmOpILL[Op <: ScalarOp](implicit op: BinOp[Op, Int, Long, Long]): VecSclrElemOp[Op, Int, Long, Long]
- Inherited from:
- BinOpVec
implicit def VecSclrElmOpLDB[Op <: ScalarOp](implicit op: BinOp[Op, Long, Double, Boolean]): VecSclrElemOp[Op, Long, Double, Boolean]
- Inherited from:
- BinOpVec
implicit def VecSclrElmOpLDD[Op <: ScalarOp](implicit op: BinOp[Op, Long, Double, Double]): VecSclrElemOp[Op, Long, Double, Double]
- Inherited from:
- BinOpVec
implicit def VecSclrElmOpLIB[Op <: ScalarOp](implicit op: BinOp[Op, Long, Int, Boolean]): VecSclrElemOp[Op, Long, Int, Boolean]
- Inherited from:
- BinOpVec
implicit def VecSclrElmOpLIL[Op <: ScalarOp](implicit op: BinOp[Op, Long, Int, Long]): VecSclrElemOp[Op, Long, Int, Long]
- Inherited from:
- BinOpVec
implicit def VecSclrElmOpLILIp[Op <: ScalarOp](implicit op: BinOp[Op, Long, Int, Long]): VecSclrElemOpIp[Op, Long, Int]
- Inherited from:
- BinOpVecInPlace
implicit def VecSclrElmOpLLB[Op <: ScalarOp](implicit op: BinOp[Op, Long, Long, Boolean]): VecSclrElemOp[Op, Long, Long, Boolean]
- Inherited from:
- BinOpVec
implicit def VecSclrElmOpLLL[Op <: ScalarOp](implicit op: BinOp[Op, Long, Long, Long]): VecSclrElemOp[Op, Long, Long, Long]
- Inherited from:
- BinOpVec
implicit def VecSclrElmOpLLLIp[Op <: ScalarOp](implicit op: BinOp[Op, Long, Long, Long]): VecSclrElemOpIp[Op, Long, Long]
- Inherited from:
- BinOpVecInPlace
implicit def VecVecElemOpBBB[Op <: ScalarOp](implicit op: BinOp[Op, Boolean, Boolean, Boolean]): VecVecElemOp[Op, Boolean, Boolean, Boolean]
- Inherited from:
- BinOpVec
implicit def VecVecElemOpBBBIp[Op <: ScalarOp](implicit op: BinOp[Op, Boolean, Boolean, Boolean]): VecVecElemOpIp[Op, Boolean, Boolean]
- Inherited from:
- BinOpVecInPlace
implicit def VecVecElemOpDDB[Op <: ScalarOp](implicit op: BinOp[Op, Double, Double, Boolean]): VecVecElemOp[Op, Double, Double, Boolean]
- Inherited from:
- BinOpVec
implicit def VecVecElemOpDIB[Op <: ScalarOp](implicit op: BinOp[Op, Double, Int, Boolean]): VecVecElemOp[Op, Double, Int, Boolean]
- Inherited from:
- BinOpVec
implicit def VecVecElemOpDLB[Op <: ScalarOp](implicit op: BinOp[Op, Double, Long, Boolean]): VecVecElemOp[Op, Double, Long, Boolean]
- Inherited from:
- BinOpVec
implicit def VecVecElemOpIDB[Op <: ScalarOp](implicit op: BinOp[Op, Int, Double, Boolean]): VecVecElemOp[Op, Int, Double, Boolean]
- Inherited from:
- BinOpVec
implicit def VecVecElemOpIIB[Op <: ScalarOp](implicit op: BinOp[Op, Int, Int, Boolean]): VecVecElemOp[Op, Int, Int, Boolean]
- Inherited from:
- BinOpVec
implicit def VecVecElemOpILB[Op <: ScalarOp](implicit op: BinOp[Op, Int, Long, Boolean]): VecVecElemOp[Op, Int, Long, Boolean]
- Inherited from:
- BinOpVec
implicit def VecVecElemOpLDB[Op <: ScalarOp](implicit op: BinOp[Op, Long, Double, Boolean]): VecVecElemOp[Op, Long, Double, Boolean]
- Inherited from:
- BinOpVec
implicit def VecVecElemOpLIB[Op <: ScalarOp](implicit op: BinOp[Op, Long, Int, Boolean]): VecVecElemOp[Op, Long, Int, Boolean]
- Inherited from:
- BinOpVec
implicit def VecVecElemOpLLB[Op <: ScalarOp](implicit op: BinOp[Op, Long, Long, Boolean]): VecVecElemOp[Op, Long, Long, Boolean]
- Inherited from:
- BinOpVec
implicit def VecVecOuterOpDDD(implicit opM: BinOp[Multiply, Double, Double, Double]): VecVecOuter[Double, Double, Double]
- Inherited from:
- BinOpVec
implicit def VecVecOuterOpDID(implicit opM: BinOp[Multiply, Double, Int, Double]): VecVecOuter[Double, Int, Double]
- Inherited from:
- BinOpVec
implicit def VecVecOuterOpDLD(implicit opM: BinOp[Multiply, Double, Long, Double]): VecVecOuter[Double, Long, Double]
- Inherited from:
- BinOpVec
implicit def VecVecOuterOpIDD(implicit opM: BinOp[Multiply, Int, Double, Double]): VecVecOuter[Int, Double, Double]
- Inherited from:
- BinOpVec
implicit def VecVecOuterOpIII(implicit opM: BinOp[Multiply, Int, Int, Int]): VecVecOuter[Int, Int, Int]
- Inherited from:
- BinOpVec
implicit def VecVecOuterOpILL(implicit opM: BinOp[Multiply, Int, Long, Long]): VecVecOuter[Int, Long, Long]
- Inherited from:
- BinOpVec
implicit def VecVecOuterOpLDD(implicit opM: BinOp[Multiply, Long, Double, Double]): VecVecOuter[Long, Double, Double]
- Inherited from:
- BinOpVec
implicit def VecVecOuterOpLIL(implicit opM: BinOp[Multiply, Long, Int, Long]): VecVecOuter[Long, Int, Long]
- Inherited from:
- BinOpVec
implicit def VecVecOuterOpLLL(implicit opM: BinOp[Multiply, Long, Long, Long]): VecVecOuter[Long, Long, Long]
- Inherited from:
- BinOpVec
implicit def VecVelElemOpDDD[Op <: ScalarOp](implicit op: BinOp[Op, Double, Double, Double]): VecVecElemOp[Op, Double, Double, Double]
- Inherited from:
- BinOpVec
implicit def VecVelElemOpDDDIp[Op <: ScalarOp](implicit op: BinOp[Op, Double, Double, Double]): VecVecElemOpIp[Op, Double, Double]
- Inherited from:
- BinOpVecInPlace
implicit def VecVelElemOpDID[Op <: ScalarOp](implicit op: BinOp[Op, Double, Int, Double]): VecVecElemOp[Op, Double, Int, Double]
- Inherited from:
- BinOpVec
implicit def VecVelElemOpDIDIp[Op <: ScalarOp](implicit op: BinOp[Op, Double, Int, Double]): VecVecElemOpIp[Op, Double, Int]
- Inherited from:
- BinOpVecInPlace
implicit def VecVelElemOpDLD[Op <: ScalarOp](implicit op: BinOp[Op, Double, Long, Double]): VecVecElemOp[Op, Double, Long, Double]
- Inherited from:
- BinOpVec
implicit def VecVelElemOpDLDIp[Op <: ScalarOp](implicit op: BinOp[Op, Double, Long, Double]): VecVecElemOpIp[Op, Double, Long]
- Inherited from:
- BinOpVecInPlace
implicit def VecVelElemOpIDD[Op <: ScalarOp](implicit op: BinOp[Op, Int, Double, Double]): VecVecElemOp[Op, Int, Double, Double]
- Inherited from:
- BinOpVec
implicit def VecVelElemOpIII[Op <: ScalarOp](implicit op: BinOp[Op, Int, Int, Int]): VecVecElemOp[Op, Int, Int, Int]
- Inherited from:
- BinOpVec
implicit def VecVelElemOpIIIIp[Op <: ScalarOp](implicit op: BinOp[Op, Int, Int, Int]): VecVecElemOpIp[Op, Int, Int]
- Inherited from:
- BinOpVecInPlace
implicit def VecVelElemOpILL[Op <: ScalarOp](implicit op: BinOp[Op, Int, Long, Long]): VecVecElemOp[Op, Int, Long, Long]
- Inherited from:
- BinOpVec
implicit def VecVelElemOpLDD[Op <: ScalarOp](implicit op: BinOp[Op, Long, Double, Double]): VecVecElemOp[Op, Long, Double, Double]
- Inherited from:
- BinOpVec
implicit def VecVelElemOpLIL[Op <: ScalarOp](implicit op: BinOp[Op, Long, Int, Long]): VecVecElemOp[Op, Long, Int, Long]
- Inherited from:
- BinOpVec
implicit def VecVelElemOpLILIp[Op <: ScalarOp](implicit op: BinOp[Op, Long, Int, Long]): VecVecElemOpIp[Op, Long, Int]
- Inherited from:
- BinOpVecInPlace
implicit def VecVelElemOpLLL[Op <: ScalarOp](implicit op: BinOp[Op, Long, Long, Long]): VecVecElemOp[Op, Long, Long, Long]
- Inherited from:
- BinOpVec
implicit def VecVelElemOpLLLIp[Op <: ScalarOp](implicit op: BinOp[Op, Long, Long, Long]): VecVecElemOpIp[Op, Long, Long]
- Inherited from:
- BinOpVecInPlace