Function concrete_core::crypto::cross::cmux[][src]

pub fn cmux<RlweCont0, RlweCont1, RgswCont, FftCont1, FftCont2, FftCont3, Scalar>(
    fft: &mut Fft,
    dec_i_fft: &mut FourierPolynomial<FftCont1>,
    tmp_dec_i_fft: &mut FourierPolynomial<FftCont2>,
    res_fft: &mut [FourierPolynomial<FftCont3>],
    glwe_0: &mut GlweCiphertext<RlweCont0>,
    glwe_1: &mut GlweCiphertext<RlweCont1>,
    ggsw: &GgswCiphertext<RgswCont>
) where
    GgswCiphertext<RgswCont>: AsRefTensor<Element = Complex64>,
    FourierPolynomial<FftCont1>: AsMutTensor<Element = Complex64>,
    FourierPolynomial<FftCont2>: AsMutTensor<Element = Complex64>,
    FourierPolynomial<FftCont3>: AsMutTensor<Element = Complex64>,
    GlweCiphertext<RlweCont0>: AsMutTensor<Element = Scalar>,
    GlweCiphertext<RlweCont1>: AsMutTensor<Element = Scalar>,
    Scalar: UnsignedTorus

Executes the CMUX operations of two GLWE ciphertexts conditioned on a GGSW ciphertext

Note

The result is stored in the glwe_0 ciphertext.