Struct feanor_math::rings::float_complex::Complex64
source · pub struct Complex64;Implementations§
source§impl Complex64
impl Complex64
pub const RING: RingValue<Complex64> = _
pub const I: Complex64El = _
pub fn abs(&self, Complex64El: Complex64El) -> f64
pub fn conjugate(&self, Complex64El: Complex64El) -> Complex64El
pub fn exp(&self, Complex64El: Complex64El) -> Complex64El
pub fn closest_gaussian_int(&self, Complex64El: Complex64El) -> (i64, i64)
pub fn ln_main_branch(&self, Complex64El: Complex64El) -> Complex64El
pub fn is_absolute_approx_eq( &self, lhs: Complex64El, rhs: Complex64El, absolute_threshold: f64 ) -> bool
pub fn is_relative_approx_eq( &self, lhs: Complex64El, rhs: Complex64El, relative_limit: f64 ) -> bool
pub fn is_approx_eq( &self, lhs: Complex64El, rhs: Complex64El, precision: u64 ) -> bool
pub fn from_f64(&self, x: f64) -> Complex64El
pub fn root_of_unity(&self, i: i64, n: i64) -> Complex64El
Trait Implementations§
source§impl CanHomFrom<Complex64> for Complex64
impl CanHomFrom<Complex64> for Complex64
type Homomorphism = ()
fn has_canonical_hom(&self, from: &Self) -> Option<()>
fn map_in( &self, _from: &Self, el: <Self as RingBase>::Element, _: &Self::Homomorphism ) -> <Self as RingBase>::Element
fn map_in_ref( &self, from: &S, el: &S::Element, hom: &Self::Homomorphism ) -> Self::Element
fn mul_assign_map_in( &self, from: &S, lhs: &mut Self::Element, rhs: S::Element, hom: &Self::Homomorphism )
fn mul_assign_map_in_ref( &self, from: &S, lhs: &mut Self::Element, rhs: &S::Element, hom: &Self::Homomorphism )
source§impl CanonicalIso<Complex64> for Complex64
impl CanonicalIso<Complex64> for Complex64
source§impl DivisibilityRing for Complex64
impl DivisibilityRing for Complex64
source§fn checked_left_div(
&self,
lhs: &Self::Element,
rhs: &Self::Element
) -> Option<Self::Element>
fn checked_left_div( &self, lhs: &Self::Element, rhs: &Self::Element ) -> Option<Self::Element>
Checks whether there is an element
x such that rhs * x = lhs, and
returns it if it exists. Note that this does not have to be unique, if
rhs is a left zero-divisor. In particular, this function will return any
element in the ring if lhs = rhs = 0.fn is_unit(&self, x: &Self::Element) -> bool
source§impl EuclideanRing for Complex64
impl EuclideanRing for Complex64
fn euclidean_div_rem( &self, _lhs: Self::Element, _rhs: &Self::Element ) -> (Self::Element, Self::Element)
fn euclidean_deg(&self, _: &Self::Element) -> Option<usize>
fn euclidean_div( &self, lhs: Self::Element, rhs: &Self::Element ) -> Self::Element
fn euclidean_rem( &self, lhs: Self::Element, rhs: &Self::Element ) -> Self::Element
source§impl PartialEq for Complex64
impl PartialEq for Complex64
source§impl PrincipalIdealRing for Complex64
impl PrincipalIdealRing for Complex64
source§impl RingBase for Complex64
impl RingBase for Complex64
type Element = Complex64El
fn clone_el(&self, val: &Self::Element) -> Self::Element
fn add_assign( &self, Complex64El: &mut Self::Element, Complex64El: Self::Element )
fn negate_inplace(&self, Complex64El: &mut Self::Element)
fn mul_assign( &self, Complex64El: &mut Self::Element, Complex64El: Self::Element )
fn from_int(&self, value: i32) -> Self::Element
fn eq_el(&self, _: &Self::Element, _: &Self::Element) -> bool
source§fn pow_gen<R: IntegerRingStore>(
&self,
x: Self::Element,
power: &El<R>,
integers: R
) -> Self::Elementwhere
R::Type: IntegerRing,
fn pow_gen<R: IntegerRingStore>(
&self,
x: Self::Element,
power: &El<R>,
integers: R
) -> Self::Elementwhere
R::Type: IntegerRing,
Raises
x to the power of an arbitrary, nonnegative integer given by
a custom integer ring implementation. Read morefn is_commutative(&self) -> bool
fn is_noetherian(&self) -> bool
source§fn is_approximate(&self) -> bool
fn is_approximate(&self) -> bool
Returns whether this ring computes with approximations to elements.
This would usually be the case for rings that are based on
f32 or
f64, to represent real or complex numbers. Read morefn dbg<'a>( &self, Complex64El: &Self::Element, out: &mut Formatter<'a> ) -> Result
source§fn characteristic<I: IntegerRingStore>(&self, ZZ: &I) -> Option<El<I>>where
I::Type: IntegerRing,
fn characteristic<I: IntegerRingStore>(&self, ZZ: &I) -> Option<El<I>>where
I::Type: IntegerRing,
Returns the characteristic of this ring as an element of the given
implementation of
ZZ. Read morefn add_assign_ref(&self, lhs: &mut Self::Element, rhs: &Self::Element)
fn sub_assign_ref(&self, lhs: &mut Self::Element, rhs: &Self::Element)
fn mul_assign_ref(&self, lhs: &mut Self::Element, rhs: &Self::Element)
fn zero(&self) -> Self::Element
fn one(&self) -> Self::Element
fn neg_one(&self) -> Self::Element
fn is_zero(&self, value: &Self::Element) -> bool
fn is_one(&self, value: &Self::Element) -> bool
fn is_neg_one(&self, value: &Self::Element) -> bool
fn square(&self, value: &mut Self::Element)
fn negate(&self, value: Self::Element) -> Self::Element
fn sub_assign(&self, lhs: &mut Self::Element, rhs: Self::Element)
fn mul_assign_int(&self, lhs: &mut Self::Element, rhs: i32)
fn mul_int(&self, lhs: Self::Element, rhs: i32) -> Self::Element
fn mul_int_ref(&self, lhs: &Self::Element, rhs: i32) -> Self::Element
source§fn sub_self_assign(&self, lhs: &mut Self::Element, rhs: Self::Element)
fn sub_self_assign(&self, lhs: &mut Self::Element, rhs: Self::Element)
Computes
lhs := rhs - lhs.source§fn sub_self_assign_ref(&self, lhs: &mut Self::Element, rhs: &Self::Element)
fn sub_self_assign_ref(&self, lhs: &mut Self::Element, rhs: &Self::Element)
Computes
lhs := rhs - lhs.fn add_ref(&self, lhs: &Self::Element, rhs: &Self::Element) -> Self::Element
fn add_ref_fst(&self, lhs: &Self::Element, rhs: Self::Element) -> Self::Element
fn add_ref_snd(&self, lhs: Self::Element, rhs: &Self::Element) -> Self::Element
fn add(&self, lhs: Self::Element, rhs: Self::Element) -> Self::Element
fn sub_ref(&self, lhs: &Self::Element, rhs: &Self::Element) -> Self::Element
fn sub_ref_fst(&self, lhs: &Self::Element, rhs: Self::Element) -> Self::Element
fn sub_ref_snd(&self, lhs: Self::Element, rhs: &Self::Element) -> Self::Element
fn sub(&self, lhs: Self::Element, rhs: Self::Element) -> Self::Element
fn mul_ref(&self, lhs: &Self::Element, rhs: &Self::Element) -> Self::Element
fn mul_ref_fst(&self, lhs: &Self::Element, rhs: Self::Element) -> Self::Element
fn mul_ref_snd(&self, lhs: Self::Element, rhs: &Self::Element) -> Self::Element
fn mul(&self, lhs: Self::Element, rhs: Self::Element) -> Self::Element
fn sum<I>(&self, els: I) -> Self::Element
fn prod<I>(&self, els: I) -> Self::Element
impl Copy for Complex64
impl Domain for Complex64
impl StructuralPartialEq for Complex64
Auto Trait Implementations§
impl RefUnwindSafe for Complex64
impl Send for Complex64
impl Sync for Complex64
impl Unpin for Complex64
impl UnwindSafe for Complex64
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<R, S> CooleyTuckeyButterfly<S> for R
impl<R, S> CooleyTuckeyButterfly<S> for R
source§default fn butterfly<V, H>(
&self,
hom: &H,
values: &mut V,
twiddle: &<S as RingBase>::Element,
i1: usize,
i2: usize
)
default fn butterfly<V, H>( &self, hom: &H, values: &mut V, twiddle: &<S as RingBase>::Element, i1: usize, i2: usize )
Should compute
(values[i1], values[i2]) := (values[i1] + twiddle * values[i2], values[i1] - twiddle * values[i2])