#[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 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more