use crate::*;
/// Centered modular multiplication with optional runtime context.
///
/// This operation must multiply two values of the same type
/// and return a value of that type equal to their product
/// divided by a modulo. It optionally takes
/// an extra parameter that describes the
/// underlying algebraic structure at runtime.
///
/// The operation must not fail in any case.