pub fn eval_sum(c1: &Ciphertext, c2: &Ciphertext) -> Ciphertext {
    unsafe { pari_init(10000000, 2) };
    let c_new = Ciphertext {
        c1: c1.c1.compose(&c2.c1).reduce(),
        c2: c1.c2.compose(&c2.c2).reduce(),
    };
    c_new
}
/// Homomorphically adds two ciphertexts so that the resulting ciphertext is the sum of the two input ciphertexts
Homomorphically adds two ciphertexts so that the resulting ciphertext is the sum of the two input ciphertexts
Homomorphically adds two ciphertexts so that the resulting ciphertext is the sum of the two input ciphertexts
pub fn eval_sum(c1: &Ciphertext, c2: &Ciphertext) -> Ciphertext {
    unsafe { pari_init(10000000, 2) };
    let c_new = Ciphertext {
        c1: c1.c1.compose(&c2.c1).reduce(),
        c2: c1.c2.compose(&c2.c2).reduce(),
    };
    c_new
}
pub fn eval_sum ( c1 : & Ciphertext , c2 : & Ciphertext ) -> Ciphertext { unsafe { pari_init ( 10000000 , 2 ) } ; let c_new = Ciphertext { c1 : c1 . c1 . compose ( & c2 . c1 ) . reduce ( ) , c2 : c1 . c2 . compose ( & c2 . c2 ) . reduce ( ) , } ; c_new }
Homomorphically adds two ciphertexts so that the resulting ciphertext is the sum of the two input ciphertexts
Homomorphically adds two ciphertexts so that the resulting ciphertext is the sum of the two input ciphertexts
c1
&Ciphertext
c2
&Ciphertext
c1
&Ciphertext
c2
&Ciphertext