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 are 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.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.Vec; these instances provide implicit support for org.saddle.ops.NumericOps methods which are inherited by Vec.
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
The type of the class inheriting the NumericOps trait
All operations on Saddle objects are defined via instances of subtypes of the 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.
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
Provides type aliases for a few basic operations