#[repr(u8)]pub enum TernaryNaNPropagationMode {
Show 13 variants
AlwaysCanonical = 0,
FirstSecondThird = 1,
FirstThirdSecond = 2,
SecondFirstThird = 3,
SecondThirdFirst = 4,
ThirdFirstSecond = 5,
ThirdSecondFirst = 6,
FirstSecondThirdPreferringSNaN = 7,
FirstThirdSecondPreferringSNaN = 8,
SecondFirstThirdPreferringSNaN = 9,
SecondThirdFirstPreferringSNaN = 10,
ThirdFirstSecondPreferringSNaN = 11,
ThirdSecondFirstPreferringSNaN = 12,
}Expand description
Select how NaN payloads should be propagated
Variants§
AlwaysCanonical = 0
NaN payloads are always canonical
FirstSecondThird = 1
If the first argument is a NaN, then the result uses the first argument’s payload, else if the second argument is a NaN, then the result uses the second argument’s payload, else if the third argument is a NaN, then the result uses the third argument’s payload, else the result is the canonical NaN.
FirstThirdSecond = 2
If the first argument is a NaN, then the result uses the first argument’s payload, else if the third argument is a NaN, then the result uses the third argument’s payload, else if the second argument is a NaN, then the result uses the second argument’s payload, else the result is the canonical NaN.
SecondFirstThird = 3
If the second argument is a NaN, then the result uses the second argument’s payload, else if the first argument is a NaN, then the result uses the first argument’s payload, else if the third argument is a NaN, then the result uses the third argument’s payload, else the result is the canonical NaN.
SecondThirdFirst = 4
If the second argument is a NaN, then the result uses the second argument’s payload, else if the third argument is a NaN, then the result uses the third argument’s payload, else if the first argument is a NaN, then the result uses the first argument’s payload, else the result is the canonical NaN.
ThirdFirstSecond = 5
If the third argument is a NaN, then the result uses the third argument’s payload, else if the first argument is a NaN, then the result uses the first argument’s payload, else if the second argument is a NaN, then the result uses the second argument’s payload, else the result is the canonical NaN.
ThirdSecondFirst = 6
If the third argument is a NaN, then the result uses the third argument’s payload, else if the second argument is a NaN, then the result uses the second argument’s payload, else if the first argument is a NaN, then the result uses the first argument’s payload, else the result is the canonical NaN.
FirstSecondThirdPreferringSNaN = 7
If the first argument is a signaling NaN, then the result uses the first argument’s payload, else if the second argument is a signaling NaN, then the result uses the second argument’s payload, else if the third argument is a signaling NaN, then the result uses the third argument’s payload, else if the first argument is a NaN, then the result uses the first argument’s payload, else if the second argument is a NaN, then the result uses the second argument’s payload, else if the third argument is a NaN, then the result uses the third argument’s payload, else the result is the canonical NaN.
FirstThirdSecondPreferringSNaN = 8
If the first argument is a signaling NaN, then the result uses the first argument’s payload, else if the third argument is a signaling NaN, then the result uses the third argument’s payload, else if the second argument is a signaling NaN, then the result uses the second argument’s payload, else if the first argument is a NaN, then the result uses the first argument’s payload, else if the third argument is a NaN, then the result uses the third argument’s payload, else if the second argument is a NaN, then the result uses the second argument’s payload, else the result is the canonical NaN.
SecondFirstThirdPreferringSNaN = 9
If the second argument is a signaling NaN, then the result uses the second argument’s payload, else if the first argument is a signaling NaN, then the result uses the first argument’s payload, else if the third argument is a signaling NaN, then the result uses the third argument’s payload, else if the second argument is a NaN, then the result uses the second argument’s payload, else if the first argument is a NaN, then the result uses the first argument’s payload, else if the third argument is a NaN, then the result uses the third argument’s payload, else the result is the canonical NaN.
SecondThirdFirstPreferringSNaN = 10
If the second argument is a signaling NaN, then the result uses the second argument’s payload, else if the third argument is a signaling NaN, then the result uses the third argument’s payload, else if the first argument is a signaling NaN, then the result uses the first argument’s payload, else if the second argument is a NaN, then the result uses the second argument’s payload, else if the third argument is a NaN, then the result uses the third argument’s payload, else if the first argument is a NaN, then the result uses the first argument’s payload, else the result is the canonical NaN.
ThirdFirstSecondPreferringSNaN = 11
If the third argument is a signaling NaN, then the result uses the third argument’s payload, else if the first argument is a signaling NaN, then the result uses the first argument’s payload, else if the second argument is a signaling NaN, then the result uses the second argument’s payload, else if the third argument is a NaN, then the result uses the third argument’s payload, else if the first argument is a NaN, then the result uses the first argument’s payload, else if the second argument is a NaN, then the result uses the second argument’s payload, else the result is the canonical NaN.
ThirdSecondFirstPreferringSNaN = 12
If the third argument is a signaling NaN, then the result uses the third argument’s payload, else if the second argument is a signaling NaN, then the result uses the second argument’s payload, else if the first argument is a signaling NaN, then the result uses the first argument’s payload, else if the third argument is a NaN, then the result uses the third argument’s payload, else if the second argument is a NaN, then the result uses the second argument’s payload, else if the first argument is a NaN, then the result uses the first argument’s payload, else the result is the canonical NaN.
Implementations§
Source§impl TernaryNaNPropagationMode
impl TernaryNaNPropagationMode
Sourcepub fn calculate_propagation_results(
self,
first_class: FloatClass,
second_class: FloatClass,
third_class: FloatClass,
) -> TernaryNaNPropagationResults
pub fn calculate_propagation_results( self, first_class: FloatClass, second_class: FloatClass, third_class: FloatClass, ) -> TernaryNaNPropagationResults
calculate the result of NaN propagation for a floating-point operation
Trait Implementations§
Source§impl Clone for TernaryNaNPropagationMode
impl Clone for TernaryNaNPropagationMode
Source§fn clone(&self) -> TernaryNaNPropagationMode
fn clone(&self) -> TernaryNaNPropagationMode
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for TernaryNaNPropagationMode
Source§impl Debug for TernaryNaNPropagationMode
impl Debug for TernaryNaNPropagationMode
Source§impl Default for TernaryNaNPropagationMode
impl Default for TernaryNaNPropagationMode
Source§fn default() -> TernaryNaNPropagationMode
fn default() -> TernaryNaNPropagationMode
impl Eq for TernaryNaNPropagationMode
Source§impl From<TernaryNaNPropagationMode> for BinaryNaNPropagationMode
impl From<TernaryNaNPropagationMode> for BinaryNaNPropagationMode
Source§fn from(v: TernaryNaNPropagationMode) -> Self
fn from(v: TernaryNaNPropagationMode) -> Self
Source§impl Hash for TernaryNaNPropagationMode
impl Hash for TernaryNaNPropagationMode
Source§impl PartialEq for TernaryNaNPropagationMode
impl PartialEq for TernaryNaNPropagationMode
Source§fn eq(&self, other: &TernaryNaNPropagationMode) -> bool
fn eq(&self, other: &TernaryNaNPropagationMode) -> bool
self and other values to be equal, and is used by ==.