Struct faer_core::complex_native::c32
source · #[repr(C)]pub struct c32 {
pub re: f32,
pub im: f32,
}Fields§
§re: f32§im: f32Implementations§
Trait Implementations§
source§impl ComplexField for c32
impl ComplexField for c32
type Real = f32
source§fn from_f64(value: f64) -> Self
fn from_f64(value: f64) -> Self
Converts
The conversion may be lossy when converting to a type with less precision.
value from f64 to Self.The conversion may be lossy when converting to a type with less precision.
source§fn scale_real(&self, rhs: &Self::Real) -> Self
fn scale_real(&self, rhs: &Self::Real) -> Self
Returns the input, scaled by
rhs.source§fn scale_power_of_two(&self, rhs: &Self::Real) -> Self
fn scale_power_of_two(&self, rhs: &Self::Real) -> Self
Returns the input, scaled by
rhs.source§fn score(&self) -> Self::Real
fn score(&self) -> Self::Real
Returns either the norm or squared norm of the number. Read more
source§fn from_real(real: Self::Real) -> Self
fn from_real(real: Self::Real) -> Self
Returns a complex number whose real part is equal to
real, and a zero imaginary part.fn slice_as_simd<S: Simd>( slice: &[Self::Unit] ) -> (&[Self::SimdUnit<S>], &[Self::Unit])
fn slice_as_mut_simd<S: Simd>( slice: &mut [Self::Unit] ) -> (&mut [Self::SimdUnit<S>], &mut [Self::Unit])
fn partial_load_last_unit<S: Simd>( simd: S, slice: &[Self::Unit] ) -> Self::SimdUnit<S>
fn partial_store_last_unit<S: Simd>( simd: S, slice: &mut [Self::Unit], values: Self::SimdUnit<S> )
fn partial_load_unit<S: Simd>( simd: S, slice: &[Self::Unit] ) -> Self::SimdUnit<S>
fn partial_store_unit<S: Simd>( simd: S, slice: &mut [Self::Unit], values: Self::SimdUnit<S> )
fn simd_splat_unit<S: Simd>(simd: S, unit: Self::Unit) -> Self::SimdUnit<S>
fn simd_neg<S: Simd>( simd: S, values: <Self as Entity>::Group<<Self as Entity>::SimdUnit<S>> ) -> <Self as Entity>::Group<<Self as Entity>::SimdUnit<S>>
fn simd_conj<S: Simd>( simd: S, values: <Self as Entity>::Group<<Self as Entity>::SimdUnit<S>> ) -> <Self as Entity>::Group<<Self as Entity>::SimdUnit<S>>
fn simd_add<S: Simd>( simd: S, lhs: <Self as Entity>::Group<<Self as Entity>::SimdUnit<S>>, rhs: <Self as Entity>::Group<<Self as Entity>::SimdUnit<S>> ) -> <Self as Entity>::Group<<Self as Entity>::SimdUnit<S>>
fn simd_sub<S: Simd>( simd: S, lhs: <Self as Entity>::Group<<Self as Entity>::SimdUnit<S>>, rhs: <Self as Entity>::Group<<Self as Entity>::SimdUnit<S>> ) -> <Self as Entity>::Group<<Self as Entity>::SimdUnit<S>>
fn simd_mul<S: Simd>( simd: S, lhs: <Self as Entity>::Group<<Self as Entity>::SimdUnit<S>>, rhs: <Self as Entity>::Group<<Self as Entity>::SimdUnit<S>> ) -> <Self as Entity>::Group<<Self as Entity>::SimdUnit<S>>
fn simd_scale_real<S: Simd>( simd: S, lhs: <Self::Real as Entity>::Group<<Self::Real as Entity>::SimdUnit<S>>, rhs: <Self as Entity>::Group<<Self as Entity>::SimdUnit<S>> ) -> <Self as Entity>::Group<<Self as Entity>::SimdUnit<S>>
fn simd_conj_mul<S: Simd>( simd: S, lhs: <Self as Entity>::Group<<Self as Entity>::SimdUnit<S>>, rhs: <Self as Entity>::Group<<Self as Entity>::SimdUnit<S>> ) -> <Self as Entity>::Group<<Self as Entity>::SimdUnit<S>>
fn simd_mul_adde<S: Simd>( simd: S, lhs: <Self as Entity>::Group<<Self as Entity>::SimdUnit<S>>, rhs: <Self as Entity>::Group<<Self as Entity>::SimdUnit<S>>, acc: <Self as Entity>::Group<<Self as Entity>::SimdUnit<S>> ) -> <Self as Entity>::Group<<Self as Entity>::SimdUnit<S>>
fn simd_conj_mul_adde<S: Simd>( simd: S, lhs: <Self as Entity>::Group<<Self as Entity>::SimdUnit<S>>, rhs: <Self as Entity>::Group<<Self as Entity>::SimdUnit<S>>, acc: <Self as Entity>::Group<<Self as Entity>::SimdUnit<S>> ) -> <Self as Entity>::Group<<Self as Entity>::SimdUnit<S>>
fn simd_reduce_add<S: Simd>( simd: S, values: <Self as Entity>::Group<<Self as Entity>::SimdUnit<S>> ) -> Self
fn simd_abs2_adde<S: Simd>( simd: S, values: <Self as Entity>::Group<<Self as Entity>::SimdUnit<S>>, acc: <Self::Real as Entity>::Group<<Self::Real as Entity>::SimdUnit<S>> ) -> <Self::Real as Entity>::Group<<Self::Real as Entity>::SimdUnit<S>>
fn simd_abs2<S: Simd>( simd: S, values: <Self as Entity>::Group<<Self as Entity>::SimdUnit<S>> ) -> <Self::Real as Entity>::Group<<Self::Real as Entity>::SimdUnit<S>>
fn simd_score<S: Simd>( simd: S, values: <Self as Entity>::Group<<Self as Entity>::SimdUnit<S>> ) -> <Self::Real as Entity>::Group<<Self::Real as Entity>::SimdUnit<S>>
source§fn mul_adde(lhs: &Self, rhs: &Self, acc: &Self) -> Self
fn mul_adde(lhs: &Self, rhs: &Self, acc: &Self) -> Self
Returns an estimate of
lhs * rhs + acc.source§fn conj_mul_adde(lhs: &Self, rhs: &Self, acc: &Self) -> Self
fn conj_mul_adde(lhs: &Self, rhs: &Self, acc: &Self) -> Self
Returns an estimate of
conjugate(lhs) * rhs + acc.fn partial_load<S: Simd>( simd: S, slice: Self::Group<&[Self::Unit]> ) -> <Self as Entity>::Group<<Self as Entity>::SimdUnit<S>>
fn partial_store<S: Simd>( simd: S, slice: Self::Group<&mut [Self::Unit]>, values: <Self as Entity>::Group<<Self as Entity>::SimdUnit<S>> )
fn partial_load_last<S: Simd>( simd: S, slice: Self::Group<&[Self::Unit]> ) -> <Self as Entity>::Group<<Self as Entity>::SimdUnit<S>>
fn partial_store_last<S: Simd>( simd: S, slice: Self::Group<&mut [Self::Unit]>, values: <Self as Entity>::Group<<Self as Entity>::SimdUnit<S>> )
fn simd_splat<S: Simd>( simd: S, value: Self ) -> <Self as Entity>::Group<<Self as Entity>::SimdUnit<S>>
source§impl Conjugate for c32
impl Conjugate for c32
§type Conj = c32conj
type Conj = c32conj
Must have the same layout as
Self, and Conj::Unit must have the same layout as Unit.§type Canonical = c32
type Canonical = c32
Must have the same layout as
Self, and Canonical::Unit must have the same layout as
Unit.source§fn canonicalize(self) -> Self::Canonical
fn canonicalize(self) -> Self::Canonical
Performs the implicit conjugation operation on the given value, returning the canonical
form.
source§impl Entity for c32
impl Entity for c32
type Unit = c32
type Index = u32
type SimdUnit<S: Simd> = <S as Simd>::c32s
type SimdMask<S: Simd> = <S as Simd>::m32s
type SimdIndex<S: Simd> = <S as Simd>::u32s
type Group<T> = T
§type GroupThreadSafe<T: Send + Sync> = T
type GroupThreadSafe<T: Send + Sync> = T
Must be the same as
Group<T>.type Iter<I: Iterator> = I
const N_COMPONENTS: usize = 1usize
const HAS_SIMD: bool = true
const UNIT: Self::GroupCopy<()> = ()
fn from_units(group: Self::Group<Self::Unit>) -> Self
fn into_units(self) -> Self::Group<Self::Unit>
fn as_ref<T>(group: &Self::Group<T>) -> Self::Group<&T>
fn as_mut<T>(group: &mut Self::Group<T>) -> Self::Group<&mut T>
fn map<T, U>(group: Self::Group<T>, f: impl FnMut(T) -> U) -> Self::Group<U>
fn map_with_context<Ctx, T, U>( ctx: Ctx, group: Self::Group<T>, f: impl FnMut(Ctx, T) -> (Ctx, U) ) -> (Ctx, Self::Group<U>)
fn zip<T, U>( first: Self::Group<T>, second: Self::Group<U> ) -> Self::Group<(T, U)>
fn unzip<T, U>(zipped: Self::Group<(T, U)>) -> (Self::Group<T>, Self::Group<U>)
fn into_iter<I: IntoIterator>(iter: Self::Group<I>) -> Self::Iter<I::IntoIter>
fn from_copy<T: Copy>(group: Self::GroupCopy<T>) -> Self::Group<T>
fn into_copy<T: Copy>(group: Self::Group<T>) -> Self::GroupCopy<T>
fn unzip2<T>(zipped: Self::Group<[T; 2]>) -> [Self::Group<T>; 2]
fn unzip4<T>(zipped: Self::Group<[T; 4]>) -> [Self::Group<T>; 4]
fn unzip8<T>(zipped: Self::Group<[T; 8]>) -> [Self::Group<T>; 8]
fn as_arrays<const N: usize, T>( group: Self::Group<&[T]> ) -> (Self::Group<&[[T; N]]>, Self::Group<&[T]>)
fn as_arrays_mut<const N: usize, T>( group: Self::Group<&mut [T]> ) -> (Self::Group<&mut [[T; N]]>, Self::Group<&mut [T]>)
fn deref<T: Clone>(group: Self::Group<&T>) -> Self::Group<T>
fn rb<'short, T: Reborrow<'short>>( value: Self::Group<&'short T> ) -> Self::Group<T::Target>
fn rb_mut<'short, T: ReborrowMut<'short>>( value: Self::Group<&'short mut T> ) -> Self::Group<T::Target>
fn into_const<T: IntoConst>(value: Self::Group<T>) -> Self::Group<T::Target>
fn map_copy<T: Copy, U: Copy>( group: Self::GroupCopy<T>, f: impl FnMut(T) -> U ) -> Self::GroupCopy<U>
fn copy<T: Copy>(group: &Self::Group<T>) -> Self::Group<T>
impl Copy for c32
impl Pod for c32
impl StructuralPartialEq for c32
Auto Trait Implementations§
impl RefUnwindSafe for c32
impl Send for c32
impl Sync for c32
impl Unpin for c32
impl UnwindSafe for c32
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> CheckedBitPattern for Twhere
T: AnyBitPattern,
impl<T> CheckedBitPattern for Twhere T: AnyBitPattern,
§type Bits = T
type Bits = T
Self must have the same layout as the specified Bits except for
the possible invalid bit patterns being checked during
is_valid_bit_pattern.source§fn is_valid_bit_pattern(_bits: &T) -> bool
fn is_valid_bit_pattern(_bits: &T) -> bool
If this function returns true, then it must be valid to reinterpret
bits
as &Self.