Enum ocl::SpatialDims [] [src]

pub enum SpatialDims {
    Unspecified,
    One(usize),
    Two(usizeusize),
    Three(usizeusizeusize),
}

Specifies a size or offset in up to three dimensions.

Using SpatialDims to specify dimensions for your application may not be appropriate. Custom types implementing the traits MemLen and WorkDims should be created to express more complex relationships between data shape and work size for kernels which do not have a 1:1 correspondence between data set length and global work size.

[FIXME]: Describe the ways a SpatialDims can be created using various From implementations.

[UNSTABLE]: This type and its methods may be renamed or otherwise changed at any time. This is still a work in progress.

Variants

UnspecifiedOne(usize)Two(usizeusize)Three(usizeusizeusize)

Methods

impl SpatialDims
[src]

fn new(d0: Option<usize>, d1: Option<usize>, d2: Option<usize>) -> OclResult<SpatialDims>

Returns a new SpatialDims.

Dimensions must be specified in order from d0 -> d1 -> d2; i.e. d1 cannot be Some(x) if d0 is None.

Explicitly setting all zeros as values is not recommended as it is invalid to OpenCL functions. Use ::Unspecified to represent NULL instead.

fn dim_count(&self) -> u32

Returns the number of dimensions defined by this SpatialDims.

fn to_lens(&self) -> OclResult<[usize; 3]>

Returns a 3D size or an error if unspecified.

fn to_offset(&self) -> OclResult<[usize; 3]>

Returns a 3D offset or an error if unspecified.

fn to_len(&self) -> usize

Returns the product of all contained dimensional values (equivalent to a length, area, or volume) or zero if unspecified.

Check ::is_unspecified if it matters whether or not the zero length has been explicitly set however, explicitly setting all zeros as dimensions is not recommended as it is an invalid value to OpenCL functions. Use ::Unspecified to represent NULL instead.

fn try_to_padded_len(&self, incr: usize) -> OclResult<usize>

Takes the length and rounds it up to the nearest incr or an error.

fn is_unspecified(&self) -> bool

Returns true if this SpatialDims is an Unspecified variant.

Trait Implementations

impl Copy for SpatialDims
[src]

impl Debug for SpatialDims
[src]

fn fmt(&self, __arg_0: &mut Formatter) -> Result

Formats the value using the given formatter.

impl Clone for SpatialDims
[src]

fn clone(&self) -> SpatialDims

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)
1.0.0

Performs copy-assignment from source. Read more

impl MemLen for SpatialDims
[src]

fn to_len_padded(&self, incr: usize) -> usize

Returns the length of a volumue of memory padded to the next multiple of incr. Read more

fn to_len(&self) -> usize

Returns the exact number of elements of a volume of memory (equivalent to Vec::len()). Read more

fn to_lens(&self) -> [usize; 3]

Returns the exact lengths of each dimension of a volume of memory.

impl WorkDims for SpatialDims
[src]

fn dim_count(&self) -> u32

Returns the number of dimensions defined.

fn to_work_size(&self) -> Option<[usize; 3]>

Returns an array representing the amount of work to be done by a kernel. Read more

fn to_work_offset(&self) -> Option<[usize; 3]>

Returns an array representing the offset of a work item or memory location. Read more

impl Index<usize> for SpatialDims
[src]

type Output = usize

The returned type after indexing

fn index<'a>(&'a self, index: usize) -> &usize

The method for the indexing (Foo[Bar]) operation

impl<T: Num + ToPrimitive + Debug + Copy> From<(T,)> for SpatialDims
[src]

fn from(val: (T,)) -> SpatialDims

Performs the conversion.

impl<'a, T: Num + ToPrimitive + Debug + Copy> From<&'a (T,)> for SpatialDims
[src]

fn from(val: &(T,)) -> SpatialDims

Performs the conversion.

impl<T: Num + ToPrimitive + Debug + Copy> From<[T; 1]> for SpatialDims
[src]

fn from(val: [T; 1]) -> SpatialDims

Performs the conversion.

impl<'a, T: Num + ToPrimitive + Debug + Copy> From<&'a [T; 1]> for SpatialDims
[src]

fn from(val: &[T; 1]) -> SpatialDims

Performs the conversion.

impl<T: Num + ToPrimitive + Debug + Copy> From<(T, T)> for SpatialDims
[src]

fn from(pair: (T, T)) -> SpatialDims

Performs the conversion.

impl<'a, T: Num + ToPrimitive + Debug + Copy> From<&'a (T, T)> for SpatialDims
[src]

fn from(pair: &(T, T)) -> SpatialDims

Performs the conversion.

impl<T: Num + ToPrimitive + Debug + Copy> From<[T; 2]> for SpatialDims
[src]

fn from(pair: [T; 2]) -> SpatialDims

Performs the conversion.

impl<'a, T: Num + ToPrimitive + Debug + Copy> From<&'a [T; 2]> for SpatialDims
[src]

fn from(pair: &[T; 2]) -> SpatialDims

Performs the conversion.

impl<T: Num + ToPrimitive + Debug + Copy> From<(T, T, T)> for SpatialDims
[src]

fn from(set: (T, T, T)) -> SpatialDims

Performs the conversion.

impl<'a, T: Num + ToPrimitive + Debug + Copy> From<&'a (T, T, T)> for SpatialDims
[src]

fn from(set: &(T, T, T)) -> SpatialDims

Performs the conversion.

impl<T: Num + ToPrimitive + Debug + Copy> From<[T; 3]> for SpatialDims
[src]

fn from(set: [T; 3]) -> SpatialDims

Performs the conversion.

impl<'a, T: Num + ToPrimitive + Debug + Copy> From<&'a [T; 3]> for SpatialDims
[src]

fn from(set: &[T; 3]) -> SpatialDims

Performs the conversion.