pub struct Partitioning { /* private fields */ }Expand description
A space with the levels that partition it, outermost first: what a kernel’s loops iterate.
Implementations§
Source§impl Partitioning
impl Partitioning
Sourcepub fn arrival_counters(&self) -> usize
pub fn arrival_counters(&self) -> usize
The arrival counters a LastArrival under this partitioning counts its runs in through:
one u32 a box of its shared cube level, holding zero.
Sourcepub fn arrival_slots(&self, axes: &[Axis]) -> Shape
pub fn arrival_slots(&self, axes: &[Axis]) -> Shape
The shape of a LastArrival’s slots for an output over axes, in that order: two cube
boxes a run of the shared cube level, stacked along the first of axes.
Source§impl Partitioning
impl Partitioning
Sourcepub fn relay_counters(&self) -> usize
pub fn relay_counters(&self) -> usize
The turn counters a Relay under this partitioning passes its boxes on through: one
u32 a cube, holding zero.
Source§impl Partitioning
impl Partitioning
Source§impl Partitioning
impl Partitioning
Sourcepub fn over(&self, level: &Level) -> Walk
pub fn over(&self, level: &Level) -> Walk
The regions of level over this space, a level of the kernel’s own.
Sourcepub fn __expand_walk(
scope: &Scope,
this: &<Self as CubeType>::ExpandType,
) -> <Walk as CubeType>::ExpandType
pub fn __expand_walk( scope: &Scope, this: &<Self as CubeType>::ExpandType, ) -> <Walk as CubeType>::ExpandType
The regions of the first level: what for cube in space iterates.
Sourcepub fn __expand_over(
scope: &Scope,
this: &<Self as CubeType>::ExpandType,
level: &Level,
) -> <Walk as CubeType>::ExpandType
pub fn __expand_over( scope: &Scope, this: &<Self as CubeType>::ExpandType, level: &Level, ) -> <Walk as CubeType>::ExpandType
The regions of level over this space, a level of the kernel’s own.
Source§impl Partitioning
impl Partitioning
Sourcepub fn new(space: Space, levels: Vec<Level>) -> Self
pub fn new(space: Space, levels: Vec<Level>) -> Self
space cut by levels, outermost first. Panics where two levels distribute over one
scope: a scope’s instances take one level’s tiles.
Sourcepub fn all_dynamic(self) -> Self
pub fn all_dynamic(self) -> Self
This partitioning with every extent Dynamic.
Sourcepub fn table<'a>(&'a self, labels: &'a [(Axis, &'a str)]) -> LevelTable<'a>
pub fn table<'a>(&'a self, labels: &'a [(Axis, &'a str)]) -> LevelTable<'a>
This partitioning’s table with a name for each axis; unnamed axes print their index.
Sourcepub fn overhangs(&self, axis: Axis) -> bool
pub fn overhangs(&self, axis: Axis) -> bool
Whether some level’s edge fails to divide the extent of axis handed to it.
Sourcepub fn level_distributed(&self, scope: ComputeScope) -> Option<&Level>
pub fn level_distributed(&self, scope: ComputeScope) -> Option<&Level>
The one level distributed over scope’s workers, if any.
Sourcepub fn box_of(&self, scope: ComputeScope) -> Space
pub fn box_of(&self, scope: ComputeScope) -> Space
The box one of scope’s instances covers: the space cut down through the level distributed
over it. Panics where no level distributes over scope.
Sourcepub fn walks(&self) -> impl Iterator<Item = &Level> + '_
pub fn walks(&self) -> impl Iterator<Item = &Level> + '_
The levels one instance walks, outermost first.
Sourcepub fn cube_count(&self) -> CubeCount
pub fn cube_count(&self) -> CubeCount
The cube grid these levels distribute to.
Sourcepub fn planes_per_cube(&self) -> u32
pub fn planes_per_cube(&self) -> u32
Planes one cube holds: the levels’ plane cuts, each plane group’s planes, plus any that only fill; where the planes or units span the launch, the cubes their order groups them in.
Sourcepub fn fillers(&self) -> u32
pub fn fillers(&self) -> u32
Planes the cube holds that fill a walk’s stages and take no tile
(Levels::filled_by).
Sourcepub fn units(&self) -> u32
pub fn units(&self) -> u32
Units one instance holds; 1 where no level cuts to units or they take tiles in turns.
Trait Implementations§
Source§impl Clone for Partitioning
impl Clone for Partitioning
Source§impl CubeType for Partitioning
impl CubeType for Partitioning
type ExpandType = PartitioningExpand
Source§impl Debug for Partitioning
impl Debug for Partitioning
Source§impl Display for Partitioning
Prints the table with no axis named; see Partitioning::table.
impl Display for Partitioning
Prints the table with no axis named; see Partitioning::table.
impl Eq for Partitioning
Source§impl Hash for Partitioning
impl Hash for Partitioning
Source§impl IntoIterator for Partitioning
Host-side stand-in for for plane in space; never runs.
impl IntoIterator for Partitioning
Host-side stand-in for for plane in space; never runs.
Source§impl IntoIterator for &Partitioning
impl IntoIterator for &Partitioning
Source§impl LaunchArg for Partitioning
impl LaunchArg for Partitioning
Source§type RuntimeArg = PartitioningLaunch
type RuntimeArg = PartitioningLaunch
Source§type CompilationArg = PartitioningCompilationArg
type CompilationArg = PartitioningCompilationArg
fn register( arg: Self::RuntimeArg, launcher: &mut KernelLauncher, ) -> Self::CompilationArg
Source§fn expand(
arg: &Self::CompilationArg,
builder: &mut KernelBuilder,
) -> <Self as CubeType>::ExpandType
fn expand( arg: &Self::CompilationArg, builder: &mut KernelBuilder, ) -> <Self as CubeType>::ExpandType
KernelBuilder.Source§impl PartialEq for Partitioning
impl PartialEq for Partitioning
impl StructuralPartialEq for Partitioning
Auto Trait Implementations§
impl Freeze for Partitioning
impl RefUnwindSafe for Partitioning
impl Send for Partitioning
impl Sync for Partitioning
impl Unpin for Partitioning
impl UnsafeUnpin for Partitioning
impl UnwindSafe for Partitioning
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneExpand for Twhere
T: Clone,
impl<T> CloneExpand for Twhere
T: Clone,
fn __expand_clone_method(&self, _: &Scope) -> T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> CompilationArg for T
impl<T> CompilationArg for T
Source§fn dynamic_cast<Arg>(&self) -> Argwhere
Arg: CompilationArg,
fn dynamic_cast<Arg>(&self) -> Argwhere
Arg: CompilationArg,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<K, Q> Equivalent<Q> for K
impl<K, Q> Equivalent<Q> for K
Source§fn equivalent(&self, key: &Q) -> bool
fn equivalent(&self, key: &Q) -> bool
key and return true if they are equal.impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<T> TuneInputs for T
impl<T> TuneInputs for T
Source§impl<T> ViewLayoutLaunchArg for T
impl<T> ViewLayoutLaunchArg for T
Source§type RuntimeArg = <T as LaunchArg>::RuntimeArg
type RuntimeArg = <T as LaunchArg>::RuntimeArg
Source§type CompilationArg = <T as LaunchArg>::CompilationArg
type CompilationArg = <T as LaunchArg>::CompilationArg
fn register<B>(
arg: <T as ViewLayoutLaunchArg>::RuntimeArg,
_buffer: &B,
_ty: Type,
launcher: &mut KernelLauncher,
) -> <T as ViewLayoutLaunchArg>::CompilationArgwhere
B: MemoryArg,
Source§fn expand(
arg: &<T as ViewLayoutLaunchArg>::CompilationArg,
_ty: Type,
builder: &mut KernelBuilder,
) -> <T as CubeType>::ExpandType
fn expand( arg: &<T as ViewLayoutLaunchArg>::CompilationArg, _ty: Type, builder: &mut KernelBuilder, ) -> <T as CubeType>::ExpandType
KernelBuilder.Source§fn expand_output(
arg: &Self::CompilationArg,
ty: Type,
builder: &mut KernelBuilder,
) -> Self::ExpandType
fn expand_output( arg: &Self::CompilationArg, ty: Type, builder: &mut KernelBuilder, ) -> Self::ExpandType
KernelBuilder.