pub trait MicrokernelWithArgmax<T: TropicalWithArgmax<Index = u32>>: Microkernel<T> {
// Required method
unsafe fn execute_with_argmax(
&self,
mr: usize,
nr: usize,
k: usize,
k_offset: usize,
a: *const T::Scalar,
b: *const T::Scalar,
c: *mut T,
argmax: *mut u32,
ldc: usize,
);
}Expand description
Trait for microkernels that track argmax during computation.
Required Methods§
Sourceunsafe fn execute_with_argmax(
&self,
mr: usize,
nr: usize,
k: usize,
k_offset: usize,
a: *const T::Scalar,
b: *const T::Scalar,
c: *mut T,
argmax: *mut u32,
ldc: usize,
)
unsafe fn execute_with_argmax( &self, mr: usize, nr: usize, k: usize, k_offset: usize, a: *const T::Scalar, b: *const T::Scalar, c: *mut T, argmax: *mut u32, ldc: usize, )
Execute the microkernel with argmax tracking.
Same as execute, but also fills argmax with the k-index that
produced each optimal C[i,j] value.
§Safety
Same requirements as execute, plus:
argmaxmust point to at leastmr * ldcelements
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.