BinOpVec

trait BinOpVec

Provides concrete implementations of binary operations for org.saddle.Vec; these instances provide implicit support for org.saddle.ops.NumericOps methods which are inherited by Vec.

class Object
trait Matchable
class Any
object BinOps.type

Type members

Classlikes

final class VecSclrElemOp[OP <: ScalarOp, @specialized(Boolean, Int, Long, Double) A, @specialized(Boolean, Int, Long, Double) B, @specialized(Boolean, Int, Long, Double) C](val op: BinOp[OP, A, B, C])(implicit evidence$1: ScalarTag[C]) extends BinOp[OP, Vec[A], B, Vec[C]]
final class VecVecDot[@specialized(Int, Long, Double) A, @specialized(Int, Long, Double) B, @specialized(Int, Long, Double) C](opadd: BinOp[Add, C, C, C], opmul: BinOp[Multiply, A, B, C])(implicit evidence$3: ScalarTag[C], evidence$4: Numeric[C]) extends BinOp[InnerProd, Vec[A], Vec[B], C]
final class VecVecElemOp[OP <: ScalarOp, @specialized(Boolean, Int, Long, Double) A, @specialized(Boolean, Int, Long, Double) B, @specialized(Boolean, Int, Long, Double) C](op: BinOp[OP, A, B, C])(implicit evidence$2: ScalarTag[C]) extends BinOp[OP, Vec[A], Vec[B], Vec[C]]
final class VecVecOuter[@specialized(Int, Long, Double) A, @specialized(Int, Long, Double) B, @specialized(Int, Long, Double) C](opmul: BinOp[Multiply, A, B, C])(implicit evidence$5: ScalarTag[C]) extends BinOp[OuterProd, Vec[A], Vec[B], Mat[C]]

Implicits

Implicits

implicit def VecSclrElmOpBBB[Op <: ScalarOp](implicit op: BinOp[Op, Boolean, Boolean, Boolean]): VecSclrElemOp[Op, Boolean, Boolean, Boolean]
implicit def VecSclrElmOpDDB[Op <: ScalarOp](implicit op: BinOp[Op, Double, Double, Boolean]): VecSclrElemOp[Op, Double, Double, Boolean]
implicit def VecSclrElmOpDDD[Op <: ScalarOp](implicit op: BinOp[Op, Double, Double, Double]): VecSclrElemOp[Op, Double, Double, Double]
implicit def VecSclrElmOpDIB[Op <: ScalarOp](implicit op: BinOp[Op, Double, Int, Boolean]): VecSclrElemOp[Op, Double, Int, Boolean]
implicit def VecSclrElmOpDID[Op <: ScalarOp](implicit op: BinOp[Op, Double, Int, Double]): VecSclrElemOp[Op, Double, Int, Double]
implicit def VecSclrElmOpDLB[Op <: ScalarOp](implicit op: BinOp[Op, Double, Long, Boolean]): VecSclrElemOp[Op, Double, Long, Boolean]
implicit def VecSclrElmOpDLD[Op <: ScalarOp](implicit op: BinOp[Op, Double, Long, Double]): VecSclrElemOp[Op, Double, Long, Double]
implicit def VecSclrElmOpIDB[Op <: ScalarOp](implicit op: BinOp[Op, Int, Double, Boolean]): VecSclrElemOp[Op, Int, Double, Boolean]
implicit def VecSclrElmOpIDD[Op <: ScalarOp](implicit op: BinOp[Op, Int, Double, Double]): VecSclrElemOp[Op, Int, Double, Double]
implicit def VecSclrElmOpIIB[Op <: ScalarOp](implicit op: BinOp[Op, Int, Int, Boolean]): VecSclrElemOp[Op, Int, Int, Boolean]
implicit def VecSclrElmOpIII[Op <: ScalarOp](implicit op: BinOp[Op, Int, Int, Int]): VecSclrElemOp[Op, Int, Int, Int]
implicit def VecSclrElmOpILB[Op <: ScalarOp](implicit op: BinOp[Op, Int, Long, Boolean]): VecSclrElemOp[Op, Int, Long, Boolean]
implicit def VecSclrElmOpILL[Op <: ScalarOp](implicit op: BinOp[Op, Int, Long, Long]): VecSclrElemOp[Op, Int, Long, Long]
implicit def VecSclrElmOpLDB[Op <: ScalarOp](implicit op: BinOp[Op, Long, Double, Boolean]): VecSclrElemOp[Op, Long, Double, Boolean]
implicit def VecSclrElmOpLDD[Op <: ScalarOp](implicit op: BinOp[Op, Long, Double, Double]): VecSclrElemOp[Op, Long, Double, Double]
implicit def VecSclrElmOpLIB[Op <: ScalarOp](implicit op: BinOp[Op, Long, Int, Boolean]): VecSclrElemOp[Op, Long, Int, Boolean]
implicit def VecSclrElmOpLIL[Op <: ScalarOp](implicit op: BinOp[Op, Long, Int, Long]): VecSclrElemOp[Op, Long, Int, Long]
implicit def VecSclrElmOpLLB[Op <: ScalarOp](implicit op: BinOp[Op, Long, Long, Boolean]): VecSclrElemOp[Op, Long, Long, Boolean]
implicit def VecSclrElmOpLLL[Op <: ScalarOp](implicit op: BinOp[Op, Long, Long, Long]): VecSclrElemOp[Op, Long, Long, Long]
implicit def VecVecDotOpDDD(implicit opA: BinOp[Add, Double, Double, Double], opM: BinOp[Multiply, Double, Double, Double]): VecVecDot[Double, Double, Double]
implicit def VecVecDotOpDID(implicit opA: BinOp[Add, Double, Double, Double], opM: BinOp[Multiply, Double, Int, Double]): VecVecDot[Double, Int, Double]
implicit def VecVecDotOpDLD(implicit opA: BinOp[Add, Double, Double, Double], opM: BinOp[Multiply, Double, Long, Double]): VecVecDot[Double, Long, Double]
implicit def VecVecDotOpIDD(implicit opA: BinOp[Add, Double, Double, Double], opM: BinOp[Multiply, Int, Double, Double]): VecVecDot[Int, Double, Double]
implicit def VecVecDotOpIII(implicit opA: BinOp[Add, Int, Int, Int], opM: BinOp[Multiply, Int, Int, Int]): VecVecDot[Int, Int, Int]
implicit def VecVecDotOpILL(implicit opA: BinOp[Add, Long, Long, Long], opM: BinOp[Multiply, Int, Long, Long]): VecVecDot[Int, Long, Long]
implicit def VecVecDotOpLDD(implicit opA: BinOp[Add, Double, Double, Double], opM: BinOp[Multiply, Long, Double, Double]): VecVecDot[Long, Double, Double]
implicit def VecVecDotOpLIL(implicit opA: BinOp[Add, Long, Long, Long], opM: BinOp[Multiply, Long, Int, Long]): VecVecDot[Long, Int, Long]
implicit def VecVecDotOpLLL(implicit opA: BinOp[Add, Long, Long, Long], opM: BinOp[Multiply, Long, Long, Long]): VecVecDot[Long, Long, Long]
implicit def VecVecElemOpBBB[Op <: ScalarOp](implicit op: BinOp[Op, Boolean, Boolean, Boolean]): VecVecElemOp[Op, Boolean, Boolean, Boolean]
implicit def VecVecElemOpDDB[Op <: ScalarOp](implicit op: BinOp[Op, Double, Double, Boolean]): VecVecElemOp[Op, Double, Double, Boolean]
implicit def VecVecElemOpDIB[Op <: ScalarOp](implicit op: BinOp[Op, Double, Int, Boolean]): VecVecElemOp[Op, Double, Int, Boolean]
implicit def VecVecElemOpDLB[Op <: ScalarOp](implicit op: BinOp[Op, Double, Long, Boolean]): VecVecElemOp[Op, Double, Long, Boolean]
implicit def VecVecElemOpIDB[Op <: ScalarOp](implicit op: BinOp[Op, Int, Double, Boolean]): VecVecElemOp[Op, Int, Double, Boolean]
implicit def VecVecElemOpIIB[Op <: ScalarOp](implicit op: BinOp[Op, Int, Int, Boolean]): VecVecElemOp[Op, Int, Int, Boolean]
implicit def VecVecElemOpILB[Op <: ScalarOp](implicit op: BinOp[Op, Int, Long, Boolean]): VecVecElemOp[Op, Int, Long, Boolean]
implicit def VecVecElemOpLDB[Op <: ScalarOp](implicit op: BinOp[Op, Long, Double, Boolean]): VecVecElemOp[Op, Long, Double, Boolean]
implicit def VecVecElemOpLIB[Op <: ScalarOp](implicit op: BinOp[Op, Long, Int, Boolean]): VecVecElemOp[Op, Long, Int, Boolean]
implicit def VecVecElemOpLLB[Op <: ScalarOp](implicit op: BinOp[Op, Long, Long, Boolean]): VecVecElemOp[Op, Long, Long, Boolean]
implicit def VecVecOuterOpDDD(implicit opM: BinOp[Multiply, Double, Double, Double]): VecVecOuter[Double, Double, Double]
implicit def VecVecOuterOpDID(implicit opM: BinOp[Multiply, Double, Int, Double]): VecVecOuter[Double, Int, Double]
implicit def VecVecOuterOpDLD(implicit opM: BinOp[Multiply, Double, Long, Double]): VecVecOuter[Double, Long, Double]
implicit def VecVecOuterOpIDD(implicit opM: BinOp[Multiply, Int, Double, Double]): VecVecOuter[Int, Double, Double]
implicit def VecVecOuterOpIII(implicit opM: BinOp[Multiply, Int, Int, Int]): VecVecOuter[Int, Int, Int]
implicit def VecVecOuterOpILL(implicit opM: BinOp[Multiply, Int, Long, Long]): VecVecOuter[Int, Long, Long]
implicit def VecVecOuterOpLDD(implicit opM: BinOp[Multiply, Long, Double, Double]): VecVecOuter[Long, Double, Double]
implicit def VecVecOuterOpLIL(implicit opM: BinOp[Multiply, Long, Int, Long]): VecVecOuter[Long, Int, Long]
implicit def VecVecOuterOpLLL(implicit opM: BinOp[Multiply, Long, Long, Long]): VecVecOuter[Long, Long, Long]
implicit def VecVelElemOpDDD[Op <: ScalarOp](implicit op: BinOp[Op, Double, Double, Double]): VecVecElemOp[Op, Double, Double, Double]
implicit def VecVelElemOpDID[Op <: ScalarOp](implicit op: BinOp[Op, Double, Int, Double]): VecVecElemOp[Op, Double, Int, Double]
implicit def VecVelElemOpDLD[Op <: ScalarOp](implicit op: BinOp[Op, Double, Long, Double]): VecVecElemOp[Op, Double, Long, Double]
implicit def VecVelElemOpIDD[Op <: ScalarOp](implicit op: BinOp[Op, Int, Double, Double]): VecVecElemOp[Op, Int, Double, Double]
implicit def VecVelElemOpIII[Op <: ScalarOp](implicit op: BinOp[Op, Int, Int, Int]): VecVecElemOp[Op, Int, Int, Int]
implicit def VecVelElemOpILL[Op <: ScalarOp](implicit op: BinOp[Op, Int, Long, Long]): VecVecElemOp[Op, Int, Long, Long]
implicit def VecVelElemOpLDD[Op <: ScalarOp](implicit op: BinOp[Op, Long, Double, Double]): VecVecElemOp[Op, Long, Double, Double]
implicit def VecVelElemOpLIL[Op <: ScalarOp](implicit op: BinOp[Op, Long, Int, Long]): VecVecElemOp[Op, Long, Int, Long]
implicit def VecVelElemOpLLL[Op <: ScalarOp](implicit op: BinOp[Op, Long, Long, Long]): VecVecElemOp[Op, Long, Long, Long]