CompareBase

Trait CompareBase 

Source
pub trait CompareBase<T = Self> {
    // Provided methods
    fn compare_base(&self, other: &T) -> bool { ... }
    fn call_compare_base_error(&self, other: &T) -> Option<MathError> { ... }
}
Expand description

Is implemented by every type where a base-check might be needed. This also includes every type of matrix, because it allows for geneceric implementations. Per default, a basecheck simply returs that the bases match and no error is returned.

Provided Methods§

Source

fn compare_base(&self, other: &T) -> bool

Compares the base elements of the objects and returns true if they match and an operation between the two provided types is possible.

Parameters:

  • other: The other object whose base is compared to self

Returns true if the bases match and false otherwise. The default implementation just returns true.

Source

fn call_compare_base_error(&self, other: &T) -> Option<MathError>

Calls an error that gives small explanation how the base elements differ. This function only calls the error and does not check if the two actually differ.

Parameters:

  • other: The other object whose base is compared to self

Returns a MathError, typically MathError::MismatchingModulus. The default implementation just returns None.

Implementors§

Source§

impl CompareBase for MatPolyOverZ

Source§

impl CompareBase for MatZ

Source§

impl CompareBase for PolyOverZ

Source§

impl CompareBase for MatNTTPolynomialRingZq

Source§

impl CompareBase for MatPolynomialRingZq

Source§

impl CompareBase for MatZq

Source§

impl CompareBase for NTTPolynomialRingZq

Source§

impl CompareBase for PolyOverZq

Source§

impl CompareBase for PolynomialRingZq

Source§

impl CompareBase for Zq

Source§

impl CompareBase for MatQ

Source§

impl CompareBase for PolyOverQ

Source§

impl CompareBase<&MatPolyOverZ> for MatPolyOverZ

Source§

impl CompareBase<&MatPolyOverZ> for MatNTTPolynomialRingZq

Source§

impl CompareBase<&MatPolyOverZ> for MatPolynomialRingZq

Source§

impl CompareBase<&MatZ> for MatPolyOverZ

Source§

impl CompareBase<&MatZ> for MatZ

Source§

impl CompareBase<&MatZ> for MatNTTPolynomialRingZq

Source§

impl CompareBase<&MatZ> for MatPolynomialRingZq

Source§

impl CompareBase<&MatZ> for MatZq

Source§

impl CompareBase<&MatZ> for MatQ

Source§

impl CompareBase<&PolyOverZ> for MatPolyOverZ

Source§

impl CompareBase<&PolyOverZ> for MatNTTPolynomialRingZq

Source§

impl CompareBase<&PolyOverZ> for MatPolynomialRingZq

Source§

impl CompareBase<&PolyOverZ> for NTTPolynomialRingZq

Source§

impl CompareBase<&PolyOverZ> for PolyOverZq

Source§

impl CompareBase<&PolyOverZ> for PolynomialRingZq

Source§

impl CompareBase<&MatNTTPolynomialRingZq> for MatNTTPolynomialRingZq

Source§

impl CompareBase<&MatPolynomialRingZq> for MatNTTPolynomialRingZq

Source§

impl CompareBase<&MatPolynomialRingZq> for MatPolynomialRingZq

Source§

impl CompareBase<&MatZq> for MatNTTPolynomialRingZq

Source§

impl CompareBase<&MatZq> for MatPolynomialRingZq

Source§

impl CompareBase<&MatZq> for MatZq

Source§

impl CompareBase<&NTTPolynomialRingZq> for NTTPolynomialRingZq

Source§

impl CompareBase<&PolyOverZq> for MatNTTPolynomialRingZq

Source§

impl CompareBase<&PolyOverZq> for MatPolynomialRingZq

Source§

impl CompareBase<&PolyOverZq> for NTTPolynomialRingZq

Source§

impl CompareBase<&PolyOverZq> for PolyOverZq

Source§

impl CompareBase<&PolyOverZq> for PolynomialRingZq

Source§

impl CompareBase<&PolynomialRingZq> for MatNTTPolynomialRingZq

Source§

impl CompareBase<&PolynomialRingZq> for MatPolynomialRingZq

Source§

impl CompareBase<&PolynomialRingZq> for NTTPolynomialRingZq

Source§

impl CompareBase<&PolynomialRingZq> for PolynomialRingZq

Source§

impl CompareBase<&Zq> for MatNTTPolynomialRingZq

Source§

impl CompareBase<&Zq> for MatPolynomialRingZq

Source§

impl CompareBase<&Zq> for MatZq

Source§

impl CompareBase<&Zq> for NTTPolynomialRingZq

Source§

impl CompareBase<&Zq> for PolyOverZq

Source§

impl CompareBase<&Zq> for PolynomialRingZq

Source§

impl CompareBase<&Zq> for Zq

Source§

impl CompareBase<&MatQ> for MatQ

Source§

impl CompareBase<MatPolyOverZ> for MatNTTPolynomialRingZq

Source§

impl CompareBase<MatPolyOverZ> for MatPolynomialRingZq

Source§

impl CompareBase<MatZ> for MatPolyOverZ

Source§

impl CompareBase<MatZ> for MatNTTPolynomialRingZq

Source§

impl CompareBase<MatZ> for MatPolynomialRingZq

Source§

impl CompareBase<MatZ> for MatZq

Source§

impl CompareBase<MatZ> for MatQ

Source§

impl CompareBase<PolyOverZ> for MatPolyOverZ

Source§

impl CompareBase<PolyOverZ> for MatNTTPolynomialRingZq

Source§

impl CompareBase<PolyOverZ> for MatPolynomialRingZq

Source§

impl CompareBase<PolyOverZ> for NTTPolynomialRingZq

Source§

impl CompareBase<PolyOverZ> for PolyOverZq

Source§

impl CompareBase<PolyOverZ> for PolynomialRingZq

Source§

impl CompareBase<PolyOverZ> for PolyOverQ

Source§

impl CompareBase<MatPolynomialRingZq> for MatNTTPolynomialRingZq

Source§

impl CompareBase<MatZq> for MatNTTPolynomialRingZq

Source§

impl CompareBase<MatZq> for MatPolynomialRingZq

Source§

impl CompareBase<PolyOverZq> for MatNTTPolynomialRingZq

Source§

impl CompareBase<PolyOverZq> for MatPolynomialRingZq

Source§

impl CompareBase<PolyOverZq> for NTTPolynomialRingZq

Source§

impl CompareBase<PolyOverZq> for PolynomialRingZq

Source§

impl CompareBase<PolynomialRingZq> for MatNTTPolynomialRingZq

Source§

impl CompareBase<PolynomialRingZq> for MatPolynomialRingZq

Source§

impl CompareBase<PolynomialRingZq> for NTTPolynomialRingZq

Source§

impl CompareBase<Zq> for MatNTTPolynomialRingZq

Source§

impl CompareBase<Zq> for MatPolynomialRingZq

Source§

impl CompareBase<Zq> for MatZq

Source§

impl CompareBase<Zq> for NTTPolynomialRingZq

Source§

impl CompareBase<Zq> for PolyOverZq

Source§

impl CompareBase<Zq> for PolynomialRingZq

Source§

impl<Integer: Into<Z>> CompareBase<Integer> for MatPolyOverZ

Source§

impl<Integer: Into<Z>> CompareBase<Integer> for MatZ

Source§

impl<Integer: Into<Z>> CompareBase<Integer> for PolyOverZ

Source§

impl<Integer: Into<Z>> CompareBase<Integer> for MatNTTPolynomialRingZq

Source§

impl<Integer: Into<Z>> CompareBase<Integer> for MatPolynomialRingZq

Source§

impl<Integer: Into<Z>> CompareBase<Integer> for MatZq

Source§

impl<Integer: Into<Z>> CompareBase<Integer> for NTTPolynomialRingZq

Source§

impl<Integer: Into<Z>> CompareBase<Integer> for PolyOverZq

Source§

impl<Integer: Into<Z>> CompareBase<Integer> for PolynomialRingZq

Source§

impl<Integer: Into<Z>> CompareBase<Integer> for Zq

Source§

impl<Rational: Into<Q>> CompareBase<Rational> for MatQ

Source§

impl<Rational: Into<Q>> CompareBase<Rational> for PolyOverQ