pub trait OrderedRing: RingBase {
// Required method
fn cmp(&self, lhs: &Self::Element, rhs: &Self::Element) -> Ordering;
// Provided methods
fn abs_cmp(&self, lhs: &Self::Element, rhs: &Self::Element) -> Ordering { ... }
fn is_leq(&self, lhs: &Self::Element, rhs: &Self::Element) -> bool { ... }
fn is_geq(&self, lhs: &Self::Element, rhs: &Self::Element) -> bool { ... }
fn is_lt(&self, lhs: &Self::Element, rhs: &Self::Element) -> bool { ... }
fn is_gt(&self, lhs: &Self::Element, rhs: &Self::Element) -> bool { ... }
fn is_neg(&self, value: &Self::Element) -> bool { ... }
fn is_pos(&self, value: &Self::Element) -> bool { ... }
fn abs(&self, value: Self::Element) -> Self::Element { ... }
fn max<'a>(
&self,
fst: &'a Self::Element,
snd: &'a Self::Element,
) -> &'a Self::Element { ... }
}
Expand description
Trait for rings that have a total ordering on their elements. The ordering must be compatible with addition and multiplication in the usual sense.
In particular, this should only be implemented for rings that are subrings of the real numbers.
Required Methods§
Sourcefn cmp(&self, lhs: &Self::Element, rhs: &Self::Element) -> Ordering
fn cmp(&self, lhs: &Self::Element, rhs: &Self::Element) -> Ordering
Returns whether lhs
is Ordering::Less
, Ordering::Equal
or Ordering::Greater
than rhs
.
Provided Methods§
Sourcefn abs_cmp(&self, lhs: &Self::Element, rhs: &Self::Element) -> Ordering
fn abs_cmp(&self, lhs: &Self::Element, rhs: &Self::Element) -> Ordering
Returns whether abs(lhs)
is Ordering::Less
, Ordering::Equal
or Ordering::Greater
than abs(rhs)
.
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.
Implementors§
impl OrderedRing for Real64Base
impl OrderedRing for MPZBase
Available on crate feature
mpir
only.