mirror of
https://github.com/arnaucube/poulpy.git
synced 2026-02-10 13:16:44 +01:00
fixed rounding rescaling
This commit is contained in:
@@ -79,6 +79,9 @@ pub trait ScalarOperations<O> {
|
||||
// Assigns a - b to b.
|
||||
fn sa_sub_sb_into_sb<const SARANGE: u8, const REDUCE: REDUCEMOD>(&self, a: &O, b: &mut O);
|
||||
|
||||
// Assigns a - b to a.
|
||||
fn sa_sub_sb_into_sa<const SARANGE: u8, const REDUCE: REDUCEMOD>(&self, b: &O, a: &mut O);
|
||||
|
||||
// Assigns -a to a.
|
||||
fn sa_neg_into_sa<const SBRANGE: u8, const REDUCE: REDUCEMOD>(&self, a: &mut O);
|
||||
|
||||
@@ -155,6 +158,24 @@ pub trait ScalarOperations<O> {
|
||||
c: &barrett::Barrett<u64>,
|
||||
d: &mut u64
|
||||
);
|
||||
|
||||
// Assigns (a - b + c) * d to e.
|
||||
fn sb_sub_sa_add_sc_mul_sd_into_se<const SBRANGE: u8,const REDUCE: REDUCEMOD>(
|
||||
&self,
|
||||
a: &u64,
|
||||
b: &u64,
|
||||
c: &u64,
|
||||
d: &barrett::Barrett<u64>,
|
||||
e: &mut u64
|
||||
);
|
||||
|
||||
fn sb_sub_sa_add_sc_mul_sd_into_sa<const SBRANGE: u8,const REDUCE: REDUCEMOD>(
|
||||
&self,
|
||||
b: &u64,
|
||||
c: &u64,
|
||||
d: &barrett::Barrett<u64>,
|
||||
a: &mut u64
|
||||
);
|
||||
}
|
||||
|
||||
pub trait VectorOperations<O> {
|
||||
@@ -187,6 +208,9 @@ pub trait VectorOperations<O> {
|
||||
// vec(b) <- vec(a) - vec(b).
|
||||
fn va_sub_vb_into_vb<const CHUNK: usize, const VBRANGE: u8, const REDUCE: REDUCEMOD>(&self, a: &[O], b: &mut [O]);
|
||||
|
||||
// vec(a) <- vec(a) - vec(b).
|
||||
fn va_sub_vb_into_va<const CHUNK: usize, const VBRANGE: u8, const REDUCE: REDUCEMOD>(&self, b: &[O], a: &mut [O]);
|
||||
|
||||
// vec(c) <- vec(a) - vec(b).
|
||||
fn va_sub_vb_into_vc<const CHUNK: usize, const VBRANGE: u8, const REDUCE: REDUCEMOD>(
|
||||
&self,
|
||||
@@ -271,4 +295,23 @@ pub trait VectorOperations<O> {
|
||||
sc: &barrett::Barrett<u64>,
|
||||
va: &mut [u64],
|
||||
);
|
||||
|
||||
// vec(e) <- (vec(b) - vec(a) + scalar(c)) * scalar(e).
|
||||
fn vb_sub_va_add_sc_mul_sd_into_ve<const CHUNK: usize, const VBRANGE: u8, const REDUCE: REDUCEMOD>(
|
||||
&self,
|
||||
va: &[u64],
|
||||
vb: &[u64],
|
||||
sc: &u64,
|
||||
sd: &barrett::Barrett<u64>,
|
||||
ve: &mut [u64],
|
||||
);
|
||||
|
||||
// vec(a) <- (vec(b) - vec(a) + scalar(c)) * scalar(e).
|
||||
fn vb_sub_va_add_sc_mul_sd_into_va<const CHUNK: usize, const VBRANGE: u8, const REDUCE: REDUCEMOD>(
|
||||
&self,
|
||||
vb: &[u64],
|
||||
sc: &u64,
|
||||
sd: &barrett::Barrett<u64>,
|
||||
va: &mut [u64],
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user