Trait RealField
pub trait RealField:
ComplexField<Real = Self>
+ PartialOrd
+ Num
+ NumAssignOps {
Show 21 methods
// Required methods
fn faer_epsilon() -> Self;
fn faer_zero_threshold() -> Self;
fn faer_min_positive() -> Self;
fn faer_min_positive_inv() -> Self;
fn faer_min_positive_sqrt() -> Self;
fn faer_min_positive_sqrt_inv() -> Self;
fn faer_div(self, rhs: Self) -> Self;
fn faer_usize_to_index(a: usize) -> Self::Index;
fn faer_index_to_usize(a: Self::Index) -> usize;
fn faer_max_index() -> Self::Index;
fn faer_simd_less_than<S>(
simd: S,
a: <Self::Group as ForCopyType>::FaerOfCopy<Self::SimdUnit<S>>,
b: <Self::Group as ForCopyType>::FaerOfCopy<Self::SimdUnit<S>>,
) -> Self::SimdMask<S>
where S: Simd;
fn faer_simd_less_than_or_equal<S>(
simd: S,
a: <Self::Group as ForCopyType>::FaerOfCopy<Self::SimdUnit<S>>,
b: <Self::Group as ForCopyType>::FaerOfCopy<Self::SimdUnit<S>>,
) -> Self::SimdMask<S>
where S: Simd;
fn faer_simd_greater_than<S>(
simd: S,
a: <Self::Group as ForCopyType>::FaerOfCopy<Self::SimdUnit<S>>,
b: <Self::Group as ForCopyType>::FaerOfCopy<Self::SimdUnit<S>>,
) -> Self::SimdMask<S>
where S: Simd;
fn faer_simd_greater_than_or_equal<S>(
simd: S,
a: <Self::Group as ForCopyType>::FaerOfCopy<Self::SimdUnit<S>>,
b: <Self::Group as ForCopyType>::FaerOfCopy<Self::SimdUnit<S>>,
) -> Self::SimdMask<S>
where S: Simd;
fn faer_simd_select<S>(
simd: S,
mask: Self::SimdMask<S>,
if_true: <Self::Group as ForCopyType>::FaerOfCopy<Self::SimdUnit<S>>,
if_false: <Self::Group as ForCopyType>::FaerOfCopy<Self::SimdUnit<S>>,
) -> <Self::Group as ForCopyType>::FaerOfCopy<Self::SimdUnit<S>>
where S: Simd;
fn faer_simd_index_select<S>(
simd: S,
mask: Self::SimdMask<S>,
if_true: Self::SimdIndex<S>,
if_false: Self::SimdIndex<S>,
) -> Self::SimdIndex<S>
where S: Simd;
fn faer_simd_index_seq<S>(simd: S) -> Self::SimdIndex<S>
where S: Simd;
fn faer_simd_index_splat<S>(
simd: S,
value: Self::Index,
) -> Self::SimdIndex<S>
where S: Simd;
fn faer_simd_index_add<S>(
simd: S,
a: Self::SimdIndex<S>,
b: Self::SimdIndex<S>,
) -> Self::SimdIndex<S>
where S: Simd;
fn faer_simd_index_rotate_left<S>(
simd: S,
values: Self::SimdIndex<S>,
amount: usize,
) -> Self::SimdIndex<S>
where S: Simd;
fn faer_simd_abs<S>(
simd: S,
values: <Self::Group as ForCopyType>::FaerOfCopy<Self::SimdUnit<S>>,
) -> <Self::Group as ForCopyType>::FaerOfCopy<Self::SimdUnit<S>>
where S: Simd;
}
Expand description
Unstable trait containing the operations that a real number type needs to implement.
Required Methods§
fn faer_epsilon() -> Self
fn faer_zero_threshold() -> Self
fn faer_min_positive() -> Self
fn faer_min_positive_inv() -> Self
fn faer_min_positive_sqrt() -> Self
fn faer_min_positive_sqrt_inv() -> Self
fn faer_div(self, rhs: Self) -> Self
fn faer_usize_to_index(a: usize) -> Self::Index
fn faer_index_to_usize(a: Self::Index) -> usize
fn faer_max_index() -> Self::Index
fn faer_simd_less_than<S>(
simd: S,
a: <Self::Group as ForCopyType>::FaerOfCopy<Self::SimdUnit<S>>,
b: <Self::Group as ForCopyType>::FaerOfCopy<Self::SimdUnit<S>>,
) -> Self::SimdMask<S>where
S: Simd,
fn faer_simd_less_than_or_equal<S>(
simd: S,
a: <Self::Group as ForCopyType>::FaerOfCopy<Self::SimdUnit<S>>,
b: <Self::Group as ForCopyType>::FaerOfCopy<Self::SimdUnit<S>>,
) -> Self::SimdMask<S>where
S: Simd,
fn faer_simd_greater_than<S>(
simd: S,
a: <Self::Group as ForCopyType>::FaerOfCopy<Self::SimdUnit<S>>,
b: <Self::Group as ForCopyType>::FaerOfCopy<Self::SimdUnit<S>>,
) -> Self::SimdMask<S>where
S: Simd,
fn faer_simd_greater_than_or_equal<S>(
simd: S,
a: <Self::Group as ForCopyType>::FaerOfCopy<Self::SimdUnit<S>>,
b: <Self::Group as ForCopyType>::FaerOfCopy<Self::SimdUnit<S>>,
) -> Self::SimdMask<S>where
S: Simd,
fn faer_simd_select<S>(
simd: S,
mask: Self::SimdMask<S>,
if_true: <Self::Group as ForCopyType>::FaerOfCopy<Self::SimdUnit<S>>,
if_false: <Self::Group as ForCopyType>::FaerOfCopy<Self::SimdUnit<S>>,
) -> <Self::Group as ForCopyType>::FaerOfCopy<Self::SimdUnit<S>>where
S: Simd,
fn faer_simd_index_select<S>(
simd: S,
mask: Self::SimdMask<S>,
if_true: Self::SimdIndex<S>,
if_false: Self::SimdIndex<S>,
) -> Self::SimdIndex<S>where
S: Simd,
fn faer_simd_index_seq<S>(simd: S) -> Self::SimdIndex<S>where
S: Simd,
fn faer_simd_index_splat<S>(simd: S, value: Self::Index) -> Self::SimdIndex<S>where
S: Simd,
fn faer_simd_index_add<S>(
simd: S,
a: Self::SimdIndex<S>,
b: Self::SimdIndex<S>,
) -> Self::SimdIndex<S>where
S: Simd,
fn faer_simd_index_rotate_left<S>(
simd: S,
values: Self::SimdIndex<S>,
amount: usize,
) -> Self::SimdIndex<S>where
S: Simd,
fn faer_simd_abs<S>(
simd: S,
values: <Self::Group as ForCopyType>::FaerOfCopy<Self::SimdUnit<S>>,
) -> <Self::Group as ForCopyType>::FaerOfCopy<Self::SimdUnit<S>>where
S: Simd,
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.