pub trait ReduceArgs:
Send
+ Sync
+ 'static
+ Clone {
type Input<E: Numeric, S: Size>: LaunchArg + RudaType;
type Output<E: Numeric, S: Size>: LaunchArg + RudaType;
type State<P: ReduceDType>: RudaType;
Show 32 methods
// Required methods
fn init_state<P: ReduceDType>(
input: &Self::Input<P::In, P::SizeIn>,
output: &mut Self::Output<P::Out, P::SizeOut>,
) -> Self::State<P>;
fn read_input<P: ReduceDType>(
state: &Self::State<P>,
index: usize,
) -> Vector<P::In, P::SizeIn>;
fn read_output<P: ReduceDType>(
state: &Self::State<P>,
index: usize,
) -> Vector<P::Out, P::SizeOut>;
fn write_output<P: ReduceDType>(
state: &mut Self::State<P>,
index: usize,
value: Vector<P::Out, P::SizeOut>,
);
fn len_input<P: ReduceDType>(state: &Self::State<P>) -> usize;
fn len_output<P: ReduceDType>(state: &Self::State<P>) -> usize;
fn buffer_len_input<P: ReduceDType>(state: &Self::State<P>) -> usize;
fn buffer_len_output<P: ReduceDType>(state: &Self::State<P>) -> usize;
fn rank_input<P: ReduceDType>(state: &Self::State<P>) -> usize;
fn rank_output<P: ReduceDType>(state: &Self::State<P>) -> usize;
fn shape_input<P: ReduceDType>(state: &Self::State<P>, dim: usize) -> usize;
fn shape_output<P: ReduceDType>(state: &Self::State<P>, dim: usize) -> usize;
fn stride_input<P: ReduceDType>(state: &Self::State<P>, dim: usize) -> usize;
fn stride_output<P: ReduceDType>(
state: &Self::State<P>,
dim: usize,
) -> usize;
fn vector_size_input<P: ReduceDType>(state: &Self::State<P>) -> VectorSize;
fn vector_size_output<P: ReduceDType>(state: &Self::State<P>) -> VectorSize;
fn __expand_init_state<P: ReduceDType>(
scope: &mut Scope,
input: <Self::Input<P::In, P::SizeIn> as RudaType>::ExpandType,
output: <Self::Output<P::Out, P::SizeOut> as RudaType>::ExpandType,
) -> <Self::State<P> as RudaType>::ExpandType;
fn __expand_read_input<P: ReduceDType>(
scope: &mut Scope,
state: <Self::State<P> as RudaType>::ExpandType,
index: <usize as RudaType>::ExpandType,
) -> <Vector<P::In, P::SizeIn> as RudaType>::ExpandType;
fn __expand_read_output<P: ReduceDType>(
scope: &mut Scope,
state: <Self::State<P> as RudaType>::ExpandType,
index: <usize as RudaType>::ExpandType,
) -> <Vector<P::Out, P::SizeOut> as RudaType>::ExpandType;
fn __expand_write_output<P: ReduceDType>(
scope: &mut Scope,
state: <Self::State<P> as RudaType>::ExpandType,
index: <usize as RudaType>::ExpandType,
value: <Vector<P::Out, P::SizeOut> as RudaType>::ExpandType,
) -> <() as RudaType>::ExpandType;
fn __expand_len_input<P: ReduceDType>(
scope: &mut Scope,
state: <Self::State<P> as RudaType>::ExpandType,
) -> <usize as RudaType>::ExpandType;
fn __expand_len_output<P: ReduceDType>(
scope: &mut Scope,
state: <Self::State<P> as RudaType>::ExpandType,
) -> <usize as RudaType>::ExpandType;
fn __expand_buffer_len_input<P: ReduceDType>(
scope: &mut Scope,
state: <Self::State<P> as RudaType>::ExpandType,
) -> <usize as RudaType>::ExpandType;
fn __expand_buffer_len_output<P: ReduceDType>(
scope: &mut Scope,
state: <Self::State<P> as RudaType>::ExpandType,
) -> <usize as RudaType>::ExpandType;
fn __expand_rank_input<P: ReduceDType>(
scope: &mut Scope,
state: <Self::State<P> as RudaType>::ExpandType,
) -> <usize as RudaType>::ExpandType;
fn __expand_rank_output<P: ReduceDType>(
scope: &mut Scope,
state: <Self::State<P> as RudaType>::ExpandType,
) -> <usize as RudaType>::ExpandType;
fn __expand_shape_input<P: ReduceDType>(
scope: &mut Scope,
state: <Self::State<P> as RudaType>::ExpandType,
dim: <usize as RudaType>::ExpandType,
) -> <usize as RudaType>::ExpandType;
fn __expand_shape_output<P: ReduceDType>(
scope: &mut Scope,
state: <Self::State<P> as RudaType>::ExpandType,
dim: <usize as RudaType>::ExpandType,
) -> <usize as RudaType>::ExpandType;
fn __expand_stride_input<P: ReduceDType>(
scope: &mut Scope,
state: <Self::State<P> as RudaType>::ExpandType,
dim: <usize as RudaType>::ExpandType,
) -> <usize as RudaType>::ExpandType;
fn __expand_stride_output<P: ReduceDType>(
scope: &mut Scope,
state: <Self::State<P> as RudaType>::ExpandType,
dim: <usize as RudaType>::ExpandType,
) -> <usize as RudaType>::ExpandType;
fn __expand_vector_size_input<P: ReduceDType>(
scope: &mut Scope,
state: <Self::State<P> as RudaType>::ExpandType,
) -> VectorSize;
fn __expand_vector_size_output<P: ReduceDType>(
scope: &mut Scope,
state: <Self::State<P> as RudaType>::ExpandType,
) -> VectorSize;
}Required Associated Types§
type Input<E: Numeric, S: Size>: LaunchArg + RudaType
type Output<E: Numeric, S: Size>: LaunchArg + RudaType
type State<P: ReduceDType>: RudaType
Required Methods§
fn init_state<P: ReduceDType>( input: &Self::Input<P::In, P::SizeIn>, output: &mut Self::Output<P::Out, P::SizeOut>, ) -> Self::State<P>
fn read_input<P: ReduceDType>( state: &Self::State<P>, index: usize, ) -> Vector<P::In, P::SizeIn>
fn read_output<P: ReduceDType>( state: &Self::State<P>, index: usize, ) -> Vector<P::Out, P::SizeOut>
fn write_output<P: ReduceDType>( state: &mut Self::State<P>, index: usize, value: Vector<P::Out, P::SizeOut>, )
fn len_input<P: ReduceDType>(state: &Self::State<P>) -> usize
fn len_output<P: ReduceDType>(state: &Self::State<P>) -> usize
fn buffer_len_input<P: ReduceDType>(state: &Self::State<P>) -> usize
fn buffer_len_output<P: ReduceDType>(state: &Self::State<P>) -> usize
fn rank_input<P: ReduceDType>(state: &Self::State<P>) -> usize
fn rank_output<P: ReduceDType>(state: &Self::State<P>) -> usize
fn shape_input<P: ReduceDType>(state: &Self::State<P>, dim: usize) -> usize
fn shape_output<P: ReduceDType>(state: &Self::State<P>, dim: usize) -> usize
fn stride_input<P: ReduceDType>(state: &Self::State<P>, dim: usize) -> usize
fn stride_output<P: ReduceDType>(state: &Self::State<P>, dim: usize) -> usize
fn vector_size_input<P: ReduceDType>(state: &Self::State<P>) -> VectorSize
fn vector_size_output<P: ReduceDType>(state: &Self::State<P>) -> VectorSize
fn __expand_init_state<P: ReduceDType>( scope: &mut Scope, input: <Self::Input<P::In, P::SizeIn> as RudaType>::ExpandType, output: <Self::Output<P::Out, P::SizeOut> as RudaType>::ExpandType, ) -> <Self::State<P> as RudaType>::ExpandType
fn __expand_read_input<P: ReduceDType>( scope: &mut Scope, state: <Self::State<P> as RudaType>::ExpandType, index: <usize as RudaType>::ExpandType, ) -> <Vector<P::In, P::SizeIn> as RudaType>::ExpandType
fn __expand_read_output<P: ReduceDType>( scope: &mut Scope, state: <Self::State<P> as RudaType>::ExpandType, index: <usize as RudaType>::ExpandType, ) -> <Vector<P::Out, P::SizeOut> as RudaType>::ExpandType
fn __expand_write_output<P: ReduceDType>( scope: &mut Scope, state: <Self::State<P> as RudaType>::ExpandType, index: <usize as RudaType>::ExpandType, value: <Vector<P::Out, P::SizeOut> as RudaType>::ExpandType, ) -> <() as RudaType>::ExpandType
fn __expand_len_input<P: ReduceDType>( scope: &mut Scope, state: <Self::State<P> as RudaType>::ExpandType, ) -> <usize as RudaType>::ExpandType
fn __expand_len_output<P: ReduceDType>( scope: &mut Scope, state: <Self::State<P> as RudaType>::ExpandType, ) -> <usize as RudaType>::ExpandType
fn __expand_buffer_len_input<P: ReduceDType>( scope: &mut Scope, state: <Self::State<P> as RudaType>::ExpandType, ) -> <usize as RudaType>::ExpandType
fn __expand_buffer_len_output<P: ReduceDType>( scope: &mut Scope, state: <Self::State<P> as RudaType>::ExpandType, ) -> <usize as RudaType>::ExpandType
fn __expand_rank_input<P: ReduceDType>( scope: &mut Scope, state: <Self::State<P> as RudaType>::ExpandType, ) -> <usize as RudaType>::ExpandType
fn __expand_rank_output<P: ReduceDType>( scope: &mut Scope, state: <Self::State<P> as RudaType>::ExpandType, ) -> <usize as RudaType>::ExpandType
fn __expand_shape_input<P: ReduceDType>( scope: &mut Scope, state: <Self::State<P> as RudaType>::ExpandType, dim: <usize as RudaType>::ExpandType, ) -> <usize as RudaType>::ExpandType
fn __expand_shape_output<P: ReduceDType>( scope: &mut Scope, state: <Self::State<P> as RudaType>::ExpandType, dim: <usize as RudaType>::ExpandType, ) -> <usize as RudaType>::ExpandType
fn __expand_stride_input<P: ReduceDType>( scope: &mut Scope, state: <Self::State<P> as RudaType>::ExpandType, dim: <usize as RudaType>::ExpandType, ) -> <usize as RudaType>::ExpandType
fn __expand_stride_output<P: ReduceDType>( scope: &mut Scope, state: <Self::State<P> as RudaType>::ExpandType, dim: <usize as RudaType>::ExpandType, ) -> <usize as RudaType>::ExpandType
fn __expand_vector_size_input<P: ReduceDType>( scope: &mut Scope, state: <Self::State<P> as RudaType>::ExpandType, ) -> VectorSize
fn __expand_vector_size_output<P: ReduceDType>( scope: &mut Scope, state: <Self::State<P> as RudaType>::ExpandType, ) -> VectorSize
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".