pub struct NormalSigned<S>(/* private fields */);Expand description
Scalars in the closed interval [-1, 1]
Implementations§
Source§impl<S> NormalSigned<S>
impl<S> NormalSigned<S>
pub fn zero() -> Selfwhere
S: Zero,
pub fn is_zero(&self) -> boolwhere
S: Zero,
Sourcepub fn new(value: S) -> Option<Self>where
S: OrderedRing,
pub fn new(value: S) -> Option<Self>where
S: OrderedRing,
Returns ‘None’ when called with a value outside of the closed interval [-1,1].
§Example
assert!(NormalSigned::new (2.0).is_none());
assert!(NormalSigned::new (1.0).is_some());
assert!(NormalSigned::new (0.5).is_some());
assert!(NormalSigned::new (0.0).is_some());
assert!(NormalSigned::new (-1.0).is_some());
assert!(NormalSigned::new (-2.0).is_none());Sourcepub fn clamp(value: S) -> Self
pub fn clamp(value: S) -> Self
Clamps to the closed interval [-1,1].
§Example
assert_eq!(*NormalSigned::clamp (2.0), 1.0);
assert_eq!(*NormalSigned::clamp (-2.0), -1.0);Sourcepub fn noisy(value: S) -> Selfwhere
S: OrderedRing,
pub fn noisy(value: S) -> Selfwhere
S: OrderedRing,
Sourcepub fn map_clamp<F>(self, fun: F) -> Self
pub fn map_clamp<F>(self, fun: F) -> Self
Map an operation on the underlying scalar, clamping results to the closed interval [-1,1].
§Example
assert_eq!(*NormalSigned::<f64>::one().map_clamp (|x| 2.0 * x), 1.0);
assert_eq!(*NormalSigned::<f64>::one().map_clamp (|x| -2.0 * x), -1.0);Sourcepub fn map_noisy<F>(self, fun: F) -> Selfwhere
S: OrderedRing,
F: FnMut(S) -> S,
pub fn map_noisy<F>(self, fun: F) -> Selfwhere
S: OrderedRing,
F: FnMut(S) -> S,
Map an operation on the underlying scalar, panicking if the result is outside the interval [-1, 1].
§Example
assert_eq!(*NormalSigned::<f64>::one().map_noisy (|x| 0.5 * x), 0.5);§Panics
Panics of the result is outside [-1, 1]:
ⓘ
let v = NormalSigned::<f64>::one().map_noisy (|x| -2.0 * x); // panic!ⓘ
let v = NormalSigned::<f64>::one().map_noisy (|x| 2.0 * x); // panic!Source§impl NormalSigned<f32>
impl NormalSigned<f32>
Source§impl NormalSigned<f64>
impl NormalSigned<f64>
Source§impl<S> NormalSigned<S>
impl<S> NormalSigned<S>
Trait Implementations§
Source§impl<S: Clone> Clone for NormalSigned<S>
impl<S: Clone> Clone for NormalSigned<S>
Source§fn clone(&self) -> NormalSigned<S>
fn clone(&self) -> NormalSigned<S>
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl<S: Copy> Copy for NormalSigned<S>
Source§impl<S: Debug> Debug for NormalSigned<S>
impl<S: Debug> Debug for NormalSigned<S>
Source§impl<S: Default> Default for NormalSigned<S>
impl<S: Default> Default for NormalSigned<S>
Source§fn default() -> NormalSigned<S>
fn default() -> NormalSigned<S>
Returns the “default value” for a type. Read more
Source§impl<S> Deref for NormalSigned<S>
impl<S> Deref for NormalSigned<S>
Source§impl<S> Display for NormalSigned<S>where
S: Display,
impl<S> Display for NormalSigned<S>where
S: Display,
impl<S: Field> Eq for NormalSigned<S>
Source§impl<S: OrderedField> From<Normalized<S>> for NormalSigned<S>
impl<S: OrderedField> From<Normalized<S>> for NormalSigned<S>
Source§fn from(Normalized: Normalized<S>) -> Self
fn from(Normalized: Normalized<S>) -> Self
Converts to this type from the input type.
Source§impl<S: Field> Mul for NormalSigned<S>
impl<S: Field> Mul for NormalSigned<S>
Source§impl<S: Field> Neg for NormalSigned<S>
impl<S: Field> Neg for NormalSigned<S>
Source§impl<S> NumCast for NormalSigned<S>where
S: NumCast + OrderedRing,
impl<S> NumCast for NormalSigned<S>where
S: NumCast + OrderedRing,
Source§fn from<T: ToPrimitive>(n: T) -> Option<NormalSigned<S>>
fn from<T: ToPrimitive>(n: T) -> Option<NormalSigned<S>>
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 moreSource§impl<S: Field> One for NormalSigned<S>
impl<S: Field> One for NormalSigned<S>
Source§impl<S: OrderedField> Ord for NormalSigned<S>
impl<S: OrderedField> Ord for NormalSigned<S>
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
Source§impl<S: PartialEq> PartialEq for NormalSigned<S>
impl<S: PartialEq> PartialEq for NormalSigned<S>
Source§fn eq(&self, other: &NormalSigned<S>) -> bool
fn eq(&self, other: &NormalSigned<S>) -> bool
Tests for
self and other values to be equal, and is used by ==.Source§impl<S: PartialOrd> PartialOrd for NormalSigned<S>
impl<S: PartialOrd> PartialOrd for NormalSigned<S>
impl<S> StructuralPartialEq for NormalSigned<S>
Source§impl<S> ToPrimitive for NormalSigned<S>where
S: ToPrimitive,
impl<S> ToPrimitive for NormalSigned<S>where
S: ToPrimitive,
Source§fn to_isize(&self) -> Option<isize>
fn to_isize(&self) -> Option<isize>
Converts the value of
self to an isize. If the value cannot be
represented by an isize, then None is returned.Source§fn to_i8(&self) -> Option<i8>
fn to_i8(&self) -> Option<i8>
Converts the value of
self to an i8. If the value cannot be
represented by an i8, then None is returned.Source§fn to_i16(&self) -> Option<i16>
fn to_i16(&self) -> Option<i16>
Converts the value of
self to an i16. If the value cannot be
represented by an i16, then None is returned.Source§fn to_i32(&self) -> Option<i32>
fn to_i32(&self) -> Option<i32>
Converts the value of
self to an i32. If the value cannot be
represented by an i32, then None is returned.Source§fn to_i64(&self) -> Option<i64>
fn to_i64(&self) -> Option<i64>
Converts the value of
self to an i64. If the value cannot be
represented by an i64, then None is returned.Source§fn to_usize(&self) -> Option<usize>
fn to_usize(&self) -> Option<usize>
Converts the value of
self to a usize. If the value cannot be
represented by a usize, then None is returned.Source§fn to_u8(&self) -> Option<u8>
fn to_u8(&self) -> Option<u8>
Converts the value of
self to a u8. If the value cannot be
represented by a u8, then None is returned.Source§fn to_u16(&self) -> Option<u16>
fn to_u16(&self) -> Option<u16>
Converts the value of
self to a u16. If the value cannot be
represented by a u16, then None is returned.Source§fn to_u32(&self) -> Option<u32>
fn to_u32(&self) -> Option<u32>
Converts the value of
self to a u32. If the value cannot be
represented by a u32, then None is returned.Source§fn to_u64(&self) -> Option<u64>
fn to_u64(&self) -> Option<u64>
Converts the value of
self to a u64. If the value cannot be
represented by a u64, then None is returned.Source§fn to_f32(&self) -> Option<f32>
fn to_f32(&self) -> Option<f32>
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§fn to_f64(&self) -> Option<f64>
fn to_f64(&self) -> Option<f64>
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 moreAuto Trait Implementations§
impl<S> Freeze for NormalSigned<S>where
S: Freeze,
impl<S> RefUnwindSafe for NormalSigned<S>where
S: RefUnwindSafe,
impl<S> Send for NormalSigned<S>where
S: Send,
impl<S> Sync for NormalSigned<S>where
S: Sync,
impl<S> Unpin for NormalSigned<S>where
S: Unpin,
impl<S> UnsafeUnpin for NormalSigned<S>where
S: UnsafeUnpin,
impl<S> UnwindSafe for NormalSigned<S>where
S: UnwindSafe,
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
Source§impl<T> CheckedAs for T
impl<T> CheckedAs for T
Source§fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
Casts the value.
Source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
Source§fn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
Casts the value.
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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 moreSource§impl<Src, Dst> LosslessTryInto<Dst> for Srcwhere
Dst: LosslessTryFrom<Src>,
impl<Src, Dst> LosslessTryInto<Dst> for Srcwhere
Dst: LosslessTryFrom<Src>,
Source§fn lossless_try_into(self) -> Option<Dst>
fn lossless_try_into(self) -> Option<Dst>
Performs the conversion.
Source§impl<Src, Dst> LossyInto<Dst> for Srcwhere
Dst: LossyFrom<Src>,
impl<Src, Dst> LossyInto<Dst> for Srcwhere
Dst: LossyFrom<Src>,
Source§fn lossy_into(self) -> Dst
fn lossy_into(self) -> Dst
Performs the conversion.
impl<T> MaybeSerDes for T
Source§impl<T> OverflowingAs for T
impl<T> OverflowingAs for T
Source§fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
Casts the value.
Source§impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
Source§fn overflowing_cast_from(src: Src) -> (Dst, bool)
fn overflowing_cast_from(src: Src) -> (Dst, bool)
Casts the value.
Source§impl<T> SaturatingAs for T
impl<T> SaturatingAs for T
Source§fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
Casts the value.
Source§impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
Source§fn saturating_cast_from(src: Src) -> Dst
fn saturating_cast_from(src: Src) -> Dst
Casts the value.
Source§impl<T> StrictAs for T
impl<T> StrictAs for T
Source§fn strict_as<Dst>(self) -> Dstwhere
T: StrictCast<Dst>,
fn strict_as<Dst>(self) -> Dstwhere
T: StrictCast<Dst>,
Casts the value.
Source§impl<Src, Dst> StrictCastFrom<Src> for Dstwhere
Src: StrictCast<Dst>,
impl<Src, Dst> StrictCastFrom<Src> for Dstwhere
Src: StrictCast<Dst>,
Source§fn strict_cast_from(src: Src) -> Dst
fn strict_cast_from(src: Src) -> Dst
Casts the value.
Source§impl<T> UnwrappedAs for T
impl<T> UnwrappedAs for T
Source§fn unwrapped_as<Dst>(self) -> Dstwhere
T: UnwrappedCast<Dst>,
fn unwrapped_as<Dst>(self) -> Dstwhere
T: UnwrappedCast<Dst>,
Casts the value.
Source§impl<Src, Dst> UnwrappedCastFrom<Src> for Dstwhere
Src: UnwrappedCast<Dst>,
impl<Src, Dst> UnwrappedCastFrom<Src> for Dstwhere
Src: UnwrappedCast<Dst>,
Source§fn unwrapped_cast_from(src: Src) -> Dst
fn unwrapped_cast_from(src: Src) -> Dst
Casts the value.
Source§impl<T> WrappingAs for T
impl<T> WrappingAs for T
Source§fn wrapping_as<Dst>(self) -> Dstwhere
T: WrappingCast<Dst>,
fn wrapping_as<Dst>(self) -> Dstwhere
T: WrappingCast<Dst>,
Casts the value.
Source§impl<Src, Dst> WrappingCastFrom<Src> for Dstwhere
Src: WrappingCast<Dst>,
impl<Src, Dst> WrappingCastFrom<Src> for Dstwhere
Src: WrappingCast<Dst>,
Source§fn wrapping_cast_from(src: Src) -> Dst
fn wrapping_cast_from(src: Src) -> Dst
Casts the value.