1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
//! Provides the IBlasBinary binary trait for Collenchyma's Framework implementation. use super::operation::*; /// Describes the operation binding for a Blas Binary implementation. pub trait IBlasBinary<F> { /// Describes the Asum Operation. type Asum: IOperationAsum<F>; /// Describes the Axpy Operation. type Axpy: IOperationAxpy<F>; /// Describes the Copy Operation. type Copy: IOperationCopy<F>; /// Describes the Dot Operation. type Dot: IOperationDot<F>; /// Describes the Nrm2 Operation. type Nrm2: IOperationNrm2<F>; /// Describes the Scale Operation. type Scale: IOperationScale<F>; /// Describes the Swap Operation. type Swap: IOperationSwap<F>; /// Returns an initialized Asum operation. fn asum(&self) -> Self::Asum; /// Returns an initialized Axpy operation. fn axpy(&self) -> Self::Axpy; /// Returns an initialized Copy operation. fn copy(&self) -> Self::Copy; /// Returns an initialized Dot operation. fn dot(&self) -> Self::Dot; /// Returns an initialized Nrm2 operation. fn nrm2(&self) -> Self::Nrm2; /// Returns an initialized Scale operation. fn scale(&self) -> Self::Scale; /// Returns an initialized Swap operation. fn swap(&self) -> Self::Swap; }