Hi,
I am using concrete version 0.1.11. What I did was I have two ciphers c1 and c2. I first add them to get c1 = c1 + c2. c1 has used up one bit of padding. Now I try to subtract c1 and c2, but since c2 has one padding bit more than c1, I use remove_padding_inplace function to remove the extra padding bit. Now I try to subtract c1 and c2. But when I run this, I get Deltas are not same error.
How does concrete take care of deltas while removing the extra padding bits? Is there a function to make sure deltas are same too?
Here is the snippet
let encoder = Encoder(0., 10., 4, 2).unwrap();
let mut c1 = LWE::encode_encrypt(&sk, 4. &encoder).unwrap();
let mut c2 = LWE::encode_encrypt(&sk, 4. &encoder).unwrap();
c1.add_with_padding_inplace(&c2).unwrap();
c2.remove_padding_inplace(1).unwrap();
c2.sub_with_padding_inplace(&c1).unwrap();