mirror of
https://github.com/Sunscreen-tech/Sunscreen.git
synced 2026-01-09 13:48:06 -05:00
Export OverlaySize trait (#393)
This commit is contained in:
@@ -1507,7 +1507,7 @@ mod test {
|
||||
assert_eq!(bit_vec.len(), 9 * vals.len());
|
||||
|
||||
let sign_extend = |mut x: u16| {
|
||||
let sign = (x & 0x1 << 8) >> 8;
|
||||
let sign = (x & (0x1 << 8)) >> 8;
|
||||
|
||||
for i in 9..16 {
|
||||
x |= sign << i;
|
||||
|
||||
@@ -479,7 +479,7 @@ impl<const INT_BITS: usize> TryIntoPlaintext for Fractional<INT_BITS> {
|
||||
}
|
||||
|
||||
for i in 0..f64::MANTISSA_DIGITS {
|
||||
let bit_value = (mantissa & 0x1 << i) >> i;
|
||||
let bit_value = (mantissa & (0x1 << i)) >> i;
|
||||
let bit_power = power - (f64::MANTISSA_DIGITS - i - 1) as i64;
|
||||
|
||||
let coeff_index = if bit_power >= 0 {
|
||||
|
||||
@@ -93,7 +93,7 @@ impl TryIntoPlaintext for Signed {
|
||||
seal_plaintext.resize(sig_bits);
|
||||
|
||||
for i in 0..sig_bits {
|
||||
let bit_value = (signed_val & 0x1 << i) >> i;
|
||||
let bit_value = (signed_val & (0x1 << i)) >> i;
|
||||
|
||||
let coeff_value = if self.val < 0 {
|
||||
bit_value * (params.plain_modulus - bit_value)
|
||||
|
||||
@@ -371,7 +371,7 @@ mod tests {
|
||||
let mut signed_encoding = [0; <Signed as LinkWithZkp>::DEGREE_BOUND];
|
||||
let abs_val = val.unsigned_abs();
|
||||
for (i, c) in signed_encoding.iter_mut().take(64).enumerate() {
|
||||
let bit = (abs_val & 0x1 << i) >> i;
|
||||
let bit = (abs_val & (0x1 << i)) >> i;
|
||||
*c = if val.is_negative() {
|
||||
bit * (plain_modulus - bit)
|
||||
} else {
|
||||
|
||||
@@ -462,9 +462,12 @@ macro_rules! dst_iter {
|
||||
|
||||
pub type NoWrapper<T> = T;
|
||||
|
||||
/// Describes how large an entity will be for the given parameters.
|
||||
pub trait OverlaySize {
|
||||
/// The inputs that determine this entity's size
|
||||
type Inputs: Copy + Clone;
|
||||
|
||||
/// Get the size of the entity.
|
||||
fn size(t: Self::Inputs) -> usize;
|
||||
}
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
#[macro_use]
|
||||
mod dst;
|
||||
pub use dst::OverlaySize;
|
||||
|
||||
/// Methods for iterating over data structures.
|
||||
pub(crate) mod iteration;
|
||||
|
||||
Reference in New Issue
Block a user