pub trait FancyArithmetic: Fancy {
// Required methods
fn add(
&mut self,
x: &Self::Item,
y: &Self::Item,
) -> Result<Self::Item, Self::Error>;
fn sub(
&mut self,
x: &Self::Item,
y: &Self::Item,
) -> Result<Self::Item, Self::Error>;
fn cmul(
&mut self,
x: &Self::Item,
c: u16,
) -> Result<Self::Item, Self::Error>;
fn mul(
&mut self,
x: &Self::Item,
y: &Self::Item,
) -> Result<Self::Item, Self::Error>;
fn proj(
&mut self,
x: &Self::Item,
q: u16,
tt: Option<Vec<u16>>,
) -> Result<Self::Item, Self::Error>;
// Provided methods
fn add_many(
&mut self,
args: &[Self::Item],
) -> Result<Self::Item, Self::Error> { ... }
fn mod_change(
&mut self,
x: &Self::Item,
to_modulus: u16,
) -> Result<Self::Item, Self::Error> { ... }
}Expand description
DSL for arithmetic computation.
Required Methods§
Sourcefn add(
&mut self,
x: &Self::Item,
y: &Self::Item,
) -> Result<Self::Item, Self::Error>
fn add( &mut self, x: &Self::Item, y: &Self::Item, ) -> Result<Self::Item, Self::Error>
Add x and y.
Sourcefn sub(
&mut self,
x: &Self::Item,
y: &Self::Item,
) -> Result<Self::Item, Self::Error>
fn sub( &mut self, x: &Self::Item, y: &Self::Item, ) -> Result<Self::Item, Self::Error>
Subtract x and y.
Sourcefn cmul(&mut self, x: &Self::Item, c: u16) -> Result<Self::Item, Self::Error>
fn cmul(&mut self, x: &Self::Item, c: u16) -> Result<Self::Item, Self::Error>
Multiply x times the constant c.