pub enum Plane {
Show 17 variants
Elect,
All(UnaryOperands),
Any(UnaryOperands),
Ballot(UnaryOperands),
Broadcast(BinaryOperands),
Shuffle(BinaryOperands),
ShuffleXor(BinaryOperands),
ShuffleUp(BinaryOperands),
ShuffleDown(BinaryOperands),
Sum(UnaryOperands),
InclusiveSum(UnaryOperands),
ExclusiveSum(UnaryOperands),
Prod(UnaryOperands),
InclusiveProd(UnaryOperands),
ExclusiveProd(UnaryOperands),
Min(UnaryOperands),
Max(UnaryOperands),
}Expand description
All plane operations.
Note that not all backends support plane (warp/subgroup) operations.
Use the crate::features::Features::plane flag to enable them.
Variants§
Elect
All(UnaryOperands)
Any(UnaryOperands)
Ballot(UnaryOperands)
Broadcast(BinaryOperands)
Shuffle(BinaryOperands)
ShuffleXor(BinaryOperands)
ShuffleUp(BinaryOperands)
ShuffleDown(BinaryOperands)
Sum(UnaryOperands)
InclusiveSum(UnaryOperands)
ExclusiveSum(UnaryOperands)
Prod(UnaryOperands)
InclusiveProd(UnaryOperands)
ExclusiveProd(UnaryOperands)
Min(UnaryOperands)
Max(UnaryOperands)
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Plane
impl<'de> Deserialize<'de> for Plane
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for Plane
Source§impl OperationReflect for Plane
impl OperationReflect for Plane
Source§type OpCode = PlaneOpCode
type OpCode = PlaneOpCode
Type of the op codes for this operation
Source§fn args(&self) -> Option<Vec<Value>>
fn args(&self) -> Option<Vec<Value>>
Get the list of arguments for this operation. If not all arguments are
Value, returns
None instead.fn args_mut(&mut self) -> Option<Vec<&mut Value>>
Source§fn from_code_and_args(op_code: Self::OpCode, args: &[Value]) -> Option<Self>
fn from_code_and_args(op_code: Self::OpCode, args: &[Value]) -> Option<Self>
Create typed operation from an opcode and a list of arguments. Returns
None if not all
arguments are Value.Source§fn sanitize_args(&mut self, scope: &Scope)
fn sanitize_args(&mut self, scope: &Scope)
Sanitize args, i.e. loading inputs from pointers for ops that take values
fn read_pointers(&self) -> Vec<Value>
fn write_pointers(&self) -> Vec<Value>
Source§fn is_commutative(&self) -> bool
fn is_commutative(&self) -> bool
Whether this operation is commutative (arguments can be freely reordered). Ignored for
single argument operations.
impl StructuralPartialEq for Plane
Auto Trait Implementations§
impl Freeze for Plane
impl RefUnwindSafe for Plane
impl Send for Plane
impl Sync for Plane
impl Unpin for Plane
impl UnsafeUnpin for Plane
impl UnwindSafe for Plane
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
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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
Compare self to
key and return true if they are equal.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> ⓘ
Converts
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> ⓘ
Converts
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 more