[][src]Trait un_algebra::group::mul_group::NumMulGroup

pub trait NumMulGroup: NumMulMonoid {
    fn invert(&self) -> Self;
fn is_invertible(&self, eps: &Self::Eps) -> bool; fn div(&self, other: &Self) -> Self { ... }
fn axiom_left_invert(&self, eps: &Self::Eps) -> bool { ... }
fn axiom_right_invert(&self, eps: &Self::Eps) -> bool { ... } }

A "numeric" algebraic multiplicative group.

NumAddGroup trait is for types that only form multiplicative groups when "numeric" comparisons are used, e.g. floating point types.

Required methods

fn invert(&self) -> Self

The unique multiplicative inverse of a group element. Inversion is only defined for invertible group elements.

fn is_invertible(&self, eps: &Self::Eps) -> bool

Test for an invertible group element.

Loading content...

Provided methods

fn div(&self, other: &Self) -> Self

The multiplicative "division" of two group elements.

fn axiom_left_invert(&self, eps: &Self::Eps) -> bool

Numerically test the (left) axiom of inversion.

fn axiom_right_invert(&self, eps: &Self::Eps) -> bool

Numerically test the (right) axiom of inversion.

Loading content...

Implementations on Foreign Types

impl NumMulGroup for f32[src]

fn invert(&self) -> Self[src]

Inversion is just floating point inversion.

fn is_invertible(&self, eps: &Self::Eps) -> bool[src]

Non-zero elements are invertible.

fn div(&self, other: &Self) -> Self[src]

fn axiom_left_invert(&self, eps: &Self::Eps) -> bool[src]

fn axiom_right_invert(&self, eps: &Self::Eps) -> bool[src]

impl NumMulGroup for f64[src]

fn invert(&self) -> Self[src]

Inversion is just floating point inversion.

fn is_invertible(&self, eps: &Self::Eps) -> bool[src]

Non-zero elements are invertible.

fn div(&self, other: &Self) -> Self[src]

fn axiom_left_invert(&self, eps: &Self::Eps) -> bool[src]

fn axiom_right_invert(&self, eps: &Self::Eps) -> bool[src]

impl<A: NumMulGroup> NumMulGroup for (A,)[src]

1-tuples form a numeric multiplicative group when their items do.

fn invert(&self) -> Self[src]

Inversion is by matching element.

fn is_invertible(&self, eps: &Self::Eps) -> bool[src]

Invertibility is across the tuple.

fn div(&self, other: &Self) -> Self[src]

fn axiom_left_invert(&self, eps: &Self::Eps) -> bool[src]

fn axiom_right_invert(&self, eps: &Self::Eps) -> bool[src]

impl<T: NumMulGroup> NumMulGroup for (T, T)[src]

Homogeneous 2-tuples form a numeric multiplicative group when their items do. Numeric comparisons require a common numeric error type.

fn invert(&self) -> Self[src]

Inversion is by matching element.

fn is_invertible(&self, eps: &Self::Eps) -> bool[src]

Invertibility is across the tuple.

fn div(&self, other: &Self) -> Self[src]

fn axiom_left_invert(&self, eps: &Self::Eps) -> bool[src]

fn axiom_right_invert(&self, eps: &Self::Eps) -> bool[src]

impl<T: NumMulGroup> NumMulGroup for (T, T, T)[src]

Homogeneous 3-tuples form a numeric multiplicative group when their items do. Numeric comparisons require a common numeric error type.

fn invert(&self) -> Self[src]

Inversion is by matching element.

fn is_invertible(&self, eps: &Self::Eps) -> bool[src]

Invertibility is across the tuple.

fn div(&self, other: &Self) -> Self[src]

fn axiom_left_invert(&self, eps: &Self::Eps) -> bool[src]

fn axiom_right_invert(&self, eps: &Self::Eps) -> bool[src]

impl<T: Copy + Default + NumMulGroup> NumMulGroup for [T; 0][src]

fn div(&self, other: &Self) -> Self[src]

fn axiom_left_invert(&self, eps: &Self::Eps) -> bool[src]

fn axiom_right_invert(&self, eps: &Self::Eps) -> bool[src]

impl<T: Copy + Default + NumMulGroup> NumMulGroup for [T; 1][src]

fn div(&self, other: &Self) -> Self[src]

fn axiom_left_invert(&self, eps: &Self::Eps) -> bool[src]

fn axiom_right_invert(&self, eps: &Self::Eps) -> bool[src]

impl<T: Copy + Default + NumMulGroup> NumMulGroup for [T; 2][src]

fn div(&self, other: &Self) -> Self[src]

fn axiom_left_invert(&self, eps: &Self::Eps) -> bool[src]

fn axiom_right_invert(&self, eps: &Self::Eps) -> bool[src]

impl<T: Copy + Default + NumMulGroup> NumMulGroup for [T; 3][src]

fn div(&self, other: &Self) -> Self[src]

fn axiom_left_invert(&self, eps: &Self::Eps) -> bool[src]

fn axiom_right_invert(&self, eps: &Self::Eps) -> bool[src]

impl<T: Copy + Default + NumMulGroup> NumMulGroup for [T; 4][src]

fn div(&self, other: &Self) -> Self[src]

fn axiom_left_invert(&self, eps: &Self::Eps) -> bool[src]

fn axiom_right_invert(&self, eps: &Self::Eps) -> bool[src]

impl<T: Copy + Default + NumMulGroup> NumMulGroup for [T; 5][src]

fn div(&self, other: &Self) -> Self[src]

fn axiom_left_invert(&self, eps: &Self::Eps) -> bool[src]

fn axiom_right_invert(&self, eps: &Self::Eps) -> bool[src]

impl<T: Copy + Default + NumMulGroup> NumMulGroup for [T; 6][src]

fn div(&self, other: &Self) -> Self[src]

fn axiom_left_invert(&self, eps: &Self::Eps) -> bool[src]

fn axiom_right_invert(&self, eps: &Self::Eps) -> bool[src]

impl<T: Copy + Default + NumMulGroup> NumMulGroup for [T; 7][src]

fn div(&self, other: &Self) -> Self[src]

fn axiom_left_invert(&self, eps: &Self::Eps) -> bool[src]

fn axiom_right_invert(&self, eps: &Self::Eps) -> bool[src]

impl<T: Copy + Default + NumMulGroup> NumMulGroup for [T; 8][src]

fn div(&self, other: &Self) -> Self[src]

fn axiom_left_invert(&self, eps: &Self::Eps) -> bool[src]

fn axiom_right_invert(&self, eps: &Self::Eps) -> bool[src]

impl<T: Copy + Default + NumMulGroup> NumMulGroup for [T; 9][src]

fn div(&self, other: &Self) -> Self[src]

fn axiom_left_invert(&self, eps: &Self::Eps) -> bool[src]

fn axiom_right_invert(&self, eps: &Self::Eps) -> bool[src]

impl<T: Copy + Default + NumMulGroup> NumMulGroup for [T; 10][src]

fn div(&self, other: &Self) -> Self[src]

fn axiom_left_invert(&self, eps: &Self::Eps) -> bool[src]

fn axiom_right_invert(&self, eps: &Self::Eps) -> bool[src]

impl<T: Copy + Default + NumMulGroup> NumMulGroup for [T; 11][src]

fn div(&self, other: &Self) -> Self[src]

fn axiom_left_invert(&self, eps: &Self::Eps) -> bool[src]

fn axiom_right_invert(&self, eps: &Self::Eps) -> bool[src]

impl<T: Copy + Default + NumMulGroup> NumMulGroup for [T; 12][src]

fn div(&self, other: &Self) -> Self[src]

fn axiom_left_invert(&self, eps: &Self::Eps) -> bool[src]

fn axiom_right_invert(&self, eps: &Self::Eps) -> bool[src]

impl<T: Copy + Default + NumMulGroup> NumMulGroup for [T; 13][src]

fn div(&self, other: &Self) -> Self[src]

fn axiom_left_invert(&self, eps: &Self::Eps) -> bool[src]

fn axiom_right_invert(&self, eps: &Self::Eps) -> bool[src]

impl<T: Copy + Default + NumMulGroup> NumMulGroup for [T; 14][src]

fn div(&self, other: &Self) -> Self[src]

fn axiom_left_invert(&self, eps: &Self::Eps) -> bool[src]

fn axiom_right_invert(&self, eps: &Self::Eps) -> bool[src]

impl<T: Copy + Default + NumMulGroup> NumMulGroup for [T; 15][src]

fn div(&self, other: &Self) -> Self[src]

fn axiom_left_invert(&self, eps: &Self::Eps) -> bool[src]

fn axiom_right_invert(&self, eps: &Self::Eps) -> bool[src]

impl<T: Copy + Default + NumMulGroup> NumMulGroup for [T; 16][src]

fn div(&self, other: &Self) -> Self[src]

fn axiom_left_invert(&self, eps: &Self::Eps) -> bool[src]

fn axiom_right_invert(&self, eps: &Self::Eps) -> bool[src]

Loading content...

Implementors

Loading content...