org.saddle.ops

Provides type aliases for a few basic operations

Type members

Classlikes

trait Add extends ScalarOp
trait AndOp extends ScalarOp
@implicitNotFound(msg = "No BinOp ${O} instance available to operate on values of type ${X} and ${Y}")
trait BinOp[O <: OpType, @specialized(Boolean, Int, Long, Double) -X, @specialized(Boolean, Int, Long, Double) -Y, @specialized(Boolean, Int, Long, Double) +Z]()

Concrete implementations of BinOp provide primitive-specialized support for performing binary operations on elements of the following objects, as well as the objects themselves:

Concrete implementations of BinOp provide primitive-specialized support for performing binary operations on elements of the following objects, as well as the objects themselves:

Appropriate BinOp instances have to be made available in an implicit context in order for the org.saddle.ops.NumericOps methods inherited by the structures above to operate in a seamless fashion.

For example:

 Vec(1,2,3) * Vec(4,5,6) == Vec(4,10,18)

The multiplication above relies on two BinOp implementations: the first is BinOp[Multiply, Vec, Vec, Vec], whose implementation in turn relies on BinOp[Multiply, Int, Int, Int].

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

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

trait BinOpInPlace[O <: OpType, @specialized(Boolean, Int, Long, Double) -X, @specialized(Boolean, Int, Long, Double) -Y]()
trait BinOpMat

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

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

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

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

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.

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.

Contains implementations of primitive binary ops that are NA-aware

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 BitAnd extends ScalarOp
trait BitOr extends ScalarOp
trait BitShl extends ScalarOp
trait BitShr extends ScalarOp
trait BitUShr extends ScalarOp
trait BitXor extends ScalarOp
trait Divide extends ScalarOp
trait EqOp extends ScalarOp
trait GtOp extends ScalarOp
trait GteOp extends ScalarOp
trait InnerProd extends MatrixOp
trait LtOp extends ScalarOp
trait LteOp extends ScalarOp
trait MatrixOp extends OpType
trait Mod extends ScalarOp
trait Multiply extends ScalarOp
trait NeqOp extends ScalarOp
trait NumericOps[+This]

NumericOps provides a mix-in trait for mathematical objects, which in Saddle include:

NumericOps provides a mix-in trait for mathematical objects, which in Saddle include:

The methods of this trait allow certain element-wise operations involving these objects to be expressed more naturally as mathematical expressions.

For instance:

   Vec(1,2,4) << 1 == Vec(2,4,8)
   Vec(1,2,4) + Vec(3,5,7) == Vec(4,7,11)
   Vec(1,2,4) dot Vec(3,5,7) == 41
Type parameters:
This

The type of the class inheriting the NumericOps trait

sealed trait OpType

All operations on Saddle objects are defined via instances of subtypes of the trait OpType. The instances further derive from ScalarOp or MatrixOp, depending on whether the second operand is a scalar or higher-dimensional object.

All operations on Saddle objects are defined via instances of subtypes of the trait OpType. The instances further derive from ScalarOp or MatrixOp, depending on whether the second operand is a scalar or higher-dimensional object.

trait OrOp extends ScalarOp
trait OuterProd extends MatrixOp
trait Power extends ScalarOp
trait ScalarOp extends OpType
trait Subtract extends ScalarOp
trait XorOp extends ScalarOp

Types

type AddOp[T] = BinOp[Add, T, T, T]
type DivOp[T] = BinOp[Divide, T, T, T]
type MulOp[T] = BinOp[Multiply, T, T, T]
type SubOp[T] = BinOp[Subtract, T, T, T]