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) -> IndexFor<Self>;
fn faer_index_to_usize(a: IndexFor<Self>) -> usize;
fn faer_max_index() -> IndexFor<Self>;
fn faer_simd_less_than<S: Simd>(
simd: S,
a: SimdGroupFor<Self, S>,
b: SimdGroupFor<Self, S>,
) -> SimdMaskFor<Self, S>;
fn faer_simd_less_than_or_equal<S: Simd>(
simd: S,
a: SimdGroupFor<Self, S>,
b: SimdGroupFor<Self, S>,
) -> SimdMaskFor<Self, S>;
fn faer_simd_greater_than<S: Simd>(
simd: S,
a: SimdGroupFor<Self, S>,
b: SimdGroupFor<Self, S>,
) -> SimdMaskFor<Self, S>;
fn faer_simd_greater_than_or_equal<S: Simd>(
simd: S,
a: SimdGroupFor<Self, S>,
b: SimdGroupFor<Self, S>,
) -> SimdMaskFor<Self, S>;
fn faer_simd_select<S: Simd>(
simd: S,
mask: SimdMaskFor<Self, S>,
if_true: SimdGroupFor<Self, S>,
if_false: SimdGroupFor<Self, S>,
) -> SimdGroupFor<Self, S>;
fn faer_simd_index_select<S: Simd>(
simd: S,
mask: SimdMaskFor<Self, S>,
if_true: SimdIndexFor<Self, S>,
if_false: SimdIndexFor<Self, S>,
) -> SimdIndexFor<Self, S>;
fn faer_simd_index_seq<S: Simd>(simd: S) -> SimdIndexFor<Self, S>;
fn faer_simd_index_splat<S: Simd>(
simd: S,
value: IndexFor<Self>,
) -> SimdIndexFor<Self, S>;
fn faer_simd_index_add<S: Simd>(
simd: S,
a: SimdIndexFor<Self, S>,
b: SimdIndexFor<Self, S>,
) -> SimdIndexFor<Self, S>;
fn faer_simd_index_rotate_left<S: Simd>(
simd: S,
values: SimdIndexFor<Self, S>,
amount: usize,
) -> SimdIndexFor<Self, S>;
fn faer_simd_abs<S: Simd>(
simd: S,
values: SimdGroupFor<Self, S>,
) -> SimdGroupFor<Self, S>;
}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) -> IndexFor<Self>
fn faer_index_to_usize(a: IndexFor<Self>) -> usize
fn faer_max_index() -> IndexFor<Self>
fn faer_simd_less_than<S: Simd>( simd: S, a: SimdGroupFor<Self, S>, b: SimdGroupFor<Self, S>, ) -> SimdMaskFor<Self, S>
fn faer_simd_less_than_or_equal<S: Simd>( simd: S, a: SimdGroupFor<Self, S>, b: SimdGroupFor<Self, S>, ) -> SimdMaskFor<Self, S>
fn faer_simd_greater_than<S: Simd>( simd: S, a: SimdGroupFor<Self, S>, b: SimdGroupFor<Self, S>, ) -> SimdMaskFor<Self, S>
fn faer_simd_greater_than_or_equal<S: Simd>( simd: S, a: SimdGroupFor<Self, S>, b: SimdGroupFor<Self, S>, ) -> SimdMaskFor<Self, S>
fn faer_simd_select<S: Simd>( simd: S, mask: SimdMaskFor<Self, S>, if_true: SimdGroupFor<Self, S>, if_false: SimdGroupFor<Self, S>, ) -> SimdGroupFor<Self, S>
fn faer_simd_index_select<S: Simd>( simd: S, mask: SimdMaskFor<Self, S>, if_true: SimdIndexFor<Self, S>, if_false: SimdIndexFor<Self, S>, ) -> SimdIndexFor<Self, S>
fn faer_simd_index_seq<S: Simd>(simd: S) -> SimdIndexFor<Self, S>
fn faer_simd_index_splat<S: Simd>( simd: S, value: IndexFor<Self>, ) -> SimdIndexFor<Self, S>
fn faer_simd_index_add<S: Simd>( simd: S, a: SimdIndexFor<Self, S>, b: SimdIndexFor<Self, S>, ) -> SimdIndexFor<Self, S>
fn faer_simd_index_rotate_left<S: Simd>( simd: S, values: SimdIndexFor<Self, S>, amount: usize, ) -> SimdIndexFor<Self, S>
fn faer_simd_abs<S: Simd>( simd: S, values: SimdGroupFor<Self, S>, ) -> SimdGroupFor<Self, S>
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.