A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://docs.rs/ordered-float/latest/ordered_float/struct.NotNan.html below:

NotNan in ordered_float - Rust

pub struct NotNan<T>();
Expand description

A wrapper around floats providing an implementation of Eq, Ord and Hash.

A NaN value cannot be stored in this type.

use ordered_float::NotNan;

let mut v = [NotNan::new(2.0).unwrap(), NotNan::new(1.0).unwrap()];
v.sort();
assert_eq!(v, [1.0, 2.0]);

Because NotNan implements Ord and Eq, it can be used as a key in a HashSet, HashMap, BTreeMap, or BTreeSet (unlike the primitive f32 or f64 types):

let mut s: HashSet<NotNan<f32>> = HashSet::new();
let key = NotNan::new(1.0).unwrap();
s.insert(key);
assert!(s.contains(&key));

-0.0 and +0.0 are still considered equal. This different sign may show up in printing, or when dividing by zero (the sign of the zero becomes the sign of the resulting infinity). Therefore, NotNan may be unsuitable for use as a key in interning and memoization applications which require equal results from equal inputs, unless signed zeros make no difference or are canonicalized before insertion.

Arithmetic on NotNan values will panic if it produces a NaN value:

let a = NotNan::new(std::f32::INFINITY).unwrap();
let b = NotNan::new(std::f32::NEG_INFINITY).unwrap();

let c = a + b;
§Representation

NotNan has #[repr(transparent)], so it is sound to use transmute or pointer casts to convert between any type T and NotNan<T>, as long as this does not create a NaN value. However, consider using [bytemuck] as a safe alternative if possible. [bytemuck]: https://docs.rs/bytemuck/1/

Source§ Source

Create a NotNan value.

Returns Err if val is NaN

Source§ Source

Get the value out.

Source

Create a NotNan value from a value that is guaranteed to not be NaN

§Safety

Behaviour is undefined if val is NaN

Source

👎Deprecated since 2.5.0: Please use the new_unchecked function instead.

Create a NotNan value from a value that is guaranteed to not be NaN

§Safety

Behaviour is undefined if val is NaN

Source§ Source§ Source§ Source§ Source§ Source§ Source§

Adds a float directly.

This returns a T and not a NotNan<T> because if the added value is NaN, this will be NaN

Source§ Source§ Source§ Source§ Source§ Source§

Convert a value to another, using the as operator.

Source§ Source§

Convert a value to another, using the as operator.

Source§ Source§

Convert a value to another, using the as operator.

Source§ Source§

Convert a value to another, using the as operator.

Source§ Source§

Convert a value to another, using the as operator.

Source§ Source§

Convert a value to another, using the as operator.

Source§ Source§

Convert a value to another, using the as operator.

Source§ Source§

Convert a value to another, using the as operator.

Source§ Source§

Convert a value to another, using the as operator.

Source§ Source§

Convert a value to another, using the as operator.

Source§ Source§

Convert a value to another, using the as operator.

Source§ Source§

Convert a value to another, using the as operator.

Source§ Source§

Convert a value to another, using the as operator.

Source§ Source§

Convert a value to another, using the as operator.

Source§ Source§

Convert a value to another, using the as operator.

Source§ Source§

Convert a value to another, using the as operator.

Source§ Source§

Convert a value to another, using the as operator.

Source§ Source§

Convert a value to another, using the as operator.

Source§ Source§

Convert a value to another, using the as operator.

Source§ Source§

Convert a value to another, using the as operator.

Source§ Source§

Convert a value to another, using the as operator.

Source§ Source§

Convert a value to another, using the as operator.

Source§ Source§

Convert a value to another, using the as operator.

Source§ Source§

Convert a value to another, using the as operator.

Source§ Source§

Convert a value to another, using the as operator.

Source§ Source§

Convert a value to another, using the as operator.

Source§ Source§

Convert a value to another, using the as operator.

Source§ Source§

Convert a value to another, using the as operator.

Source§ Source§

Convert a value to another, using the as operator.

Source§ Source§

Convert a value to another, using the as operator.

Source§ Source§

Convert a value to another, using the as operator.

Source§ Source§

Convert a value to another, using the as operator.

Source§ Source§

Convert a value to another, using the as operator.

Source§ Source§

Convert a value to another, using the as operator.

Source§ Source§

Convert a value to another, using the as operator.

Source§ Source§

Convert a value to another, using the as operator.

Source§ Source§

Convert a value to another, using the as operator.

Source§ Source§

Convert a value to another, using the as operator.

Source§ Source§

Convert a value to another, using the as operator.

Source§ Source§

Convert a value to another, using the as operator.

Source§ Source§

Convert a value to another, using the as operator.

Source§ Source§

Convert a value to another, using the as operator.

Source§ Source§

Convert a value to another, using the as operator.

Source§ Source§

Convert a value to another, using the as operator.

Source§ Source§

Convert a value to another, using the as operator.

Source§ Source§

Convert a value to another, using the as operator.

Source§ Source§

Convert a value to another, using the as operator.

Source§ Source§

Convert a value to another, using the as operator.

Source§ Source§

Converts this type into a shared reference of the (usually inferred) input type.

Source§ Source§ Source§ Source§

Returns the smallest finite number this type can represent

Source§

Returns the largest finite number this type can represent

Source§ Source§ Source§ Source§ Source§

The resulting type after dereferencing.

Source§

Dereferences the value.

Source§ Source§ Source§ Source§ Source§ Source§ Source§

Divides a float directly.

This returns a T and not a NotNan<T> because if the divided-by value is NaN, this will be NaN

Source§ Source§ Source§ Source§ Source§ Source§ Source§

Converts to this type from the input type.

Source§ Source§

Converts to this type from the input type.

Source§ Source§

Converts to this type from the input type.

Source§ Source§

Converts to this type from the input type.

Source§ Source§

Converts to this type from the input type.

Source§ Source§

Converts to this type from the input type.

Source§ Source§

Converts to this type from the input type.

Source§ Source§

Converts to this type from the input type.

Source§ Source§

Converts to this type from the input type.

Source§ Source§

Converts to this type from the input type.

Source§ Source§

Converts to this type from the input type.

Source§ Source§

Converts to this type from the input type.

Source§ Source§

Converts to this type from the input type.

Source§ Source§

Converts an i64 to return an optional value of this type. If the value cannot be represented by this type, then None is returned.

Source§

Converts an u64 to return an optional value of this type. If the value cannot be represented by this type, then None is returned.

Source§

Converts an isize to return an optional value of this type. If the value cannot be represented by this type, then None is returned.

Source§

Converts an i8 to return an optional value of this type. If the value cannot be represented by this type, then None is returned.

Source§

Converts an i16 to return an optional value of this type. If the value cannot be represented by this type, then None is returned.

Source§

Converts an i32 to return an optional value of this type. If the value cannot be represented by this type, then None is returned.

Source§

Converts a usize to return an optional value of this type. If the value cannot be represented by this type, then None is returned.

Source§

Converts an u8 to return an optional value of this type. If the value cannot be represented by this type, then None is returned.

Source§

Converts an u16 to return an optional value of this type. If the value cannot be represented by this type, then None is returned.

Source§

Converts an u32 to return an optional value of this type. If the value cannot be represented by this type, then None is returned.

Source§

Converts a f32 to return an optional value of this type. If the value cannot be represented by this type, then None is returned.

Source§

Converts a

f64

to return an optional value of this type. If the value cannot be represented by this type, then

None

is returned.

Read more Source§

Converts an

i128

to return an optional value of this type. If the value cannot be represented by this type, then

None

is returned.

Read more Source§

Converts an

u128

to return an optional value of this type. If the value cannot be represented by this type, then

None

is returned.

Read more Source§ Source§

Convert a &str to NotNan. Returns an error if the string fails to parse, or if the resulting value is NaN

use ordered_float::NotNan;

assert!("-10".parse::<NotNan<f32>>().is_ok());
assert!("abc".parse::<NotNan<f32>>().is_err());
assert!("NaN".parse::<NotNan<f32>>().is_err());
Source§

The associated error which can be returned from parsing.

Source§ Source§ Source§ Source§ Source§ Source§ Source§

Multiplies a float directly.

This returns a T and not a NotNan<T> because if the multiplied value is NaN, this will be NaN

Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§

Creates a number from another value that can be converted into a primitive via the

ToPrimitive

trait. If the source value cannot be represented by the target type, then

None

is returned.

Read more Source§ Source§

Returns the multiplicative identity element of

Self

,

1

.

Read more Source§

Sets self to the multiplicative identity element of Self, 1.

Source§

Returns

true

if

self

is equal to the multiplicative identity.

Read more Source§ Source§ Source§

Tests for self and other values to be equal, and is used by ==.

1.0.0 · Source§

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.

Source§ Source§

Tests for self and other values to be equal, and is used by ==.

1.0.0 · Source§

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.

Source§ Source§

This method returns an ordering between

self

and

other

values if one exists.

Read more 1.0.0 · Source§

Tests less than (for

self

and

other

) and is used by the

<

operator.

Read more 1.0.0 · Source§

Tests less than or equal to (for

self

and

other

) and is used by the

<=

operator.

Read more 1.0.0 · Source§

Tests greater than (for

self

and

other

) and is used by the

>

operator.

Read more 1.0.0 · Source§

Tests greater than or equal to (for

self

and

other

) and is used by the

>=

operator.

Read more Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§ Source§

Takes an iterator and generates Self from the elements by multiplying the items.

Source§ Source§

Takes an iterator and generates Self from the elements by multiplying the items.

Source§ Source§ Source§ Source§ Source§ Source§

Calculates % with a float directly.

This returns a T and not a NotNan<T> because if the RHS is NaN, this will be NaN

Source§ Source§ Source§ Source§ Source§ Source§ Source§

The positive difference of two numbers.

Read more Source§ Source§

Returns true if the number is positive and false if the number is zero or negative.

Source§

Returns true if the number is negative and false if the number is zero or positive.

Source§ Source§ Source§ Source§ Source§ Source§

Subtracts a float directly.

This returns a T and not a NotNan<T> because if the substracted value is NaN, this will be NaN

Source§ Source§ Source§ Source§ Source§ Source§

Takes an iterator and generates Self from the elements by “summing up” the items.

Source§

Adds a float directly.

Panics if the provided value is NaN.

Source§

Takes an iterator and generates Self from the elements by “summing up” the items.

Source§ Source§

Converts the value of self to an i64. If the value cannot be represented by an i64, then None is returned.

Source§

Converts the value of self to a u64. If the value cannot be represented by a u64, then None is returned.

Source§

Converts the value of self to an isize. If the value cannot be represented by an isize, then None is returned.

Source§

Converts the value of self to an i8. If the value cannot be represented by an i8, then None is returned.

Source§

Converts the value of self to an i16. If the value cannot be represented by an i16, then None is returned.

Source§

Converts the value of self to an i32. If the value cannot be represented by an i32, then None is returned.

Source§

Converts the value of self to a usize. If the value cannot be represented by a usize, then None is returned.

Source§

Converts the value of self to a u8. If the value cannot be represented by a u8, then None is returned.

Source§

Converts the value of self to a u16. If the value cannot be represented by a u16, then None is returned.

Source§

Converts the value of self to a u32. If the value cannot be represented by a u32, then None is returned.

Source§

Converts the value of self to an f32. Overflows may map to positive or negative inifinity, otherwise None is returned if the value cannot be represented by an f32.

Source§

Converts the value of

self

to an

f64

. Overflows may map to positive or negative inifinity, otherwise

None

is returned if the value cannot be represented by an

f64

.

Read more Source§

Converts the value of

self

to an

i128

. If the value cannot be represented by an

i128

(

i64

under the default implementation), then

None

is returned.

Read more Source§

Converts the value of

self

to a

u128

. If the value cannot be represented by a

u128

(

u64

under the default implementation), then

None

is returned.

Read more Source§ Source§

The type returned in the event of a conversion error.

Source§

Performs the conversion.

Source§ Source§

The type returned in the event of a conversion error.

Source§

Performs the conversion.

Source§ Source§

Returns the additive identity element of

Self

,

0

.

Read more Source§

Returns true if self is equal to the additive identity.

Source§

Sets self to the additive identity element of Self, 0.

Source§ Source§ Source§

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4