Added mat_znx_dft_mul_x_pow_minus_one

This commit is contained in:
Jean-Philippe Bossuat
2025-06-11 18:04:57 +02:00
parent 4455afdabd
commit c77a819653
7 changed files with 297 additions and 35 deletions

View File

@@ -70,7 +70,7 @@ impl<C: AsRef<[u8]>> GetRow<FFT64> for AutomorphismKey<C, FFT64> {
col_j: usize,
res: &mut GLWECiphertextFourier<R, FFT64>,
) {
module.vmp_extract_row(&mut res.data, &self.key.0.data, row_i, col_j);
module.mat_znx_dft_get_row(&mut res.data, &self.key.0.data, row_i, col_j);
}
}
@@ -82,7 +82,7 @@ impl<C: AsMut<[u8]> + AsRef<[u8]>> SetRow<FFT64> for AutomorphismKey<C, FFT64> {
col_j: usize,
a: &GLWECiphertextFourier<R, FFT64>,
) {
module.vmp_prepare_row(&mut self.key.0.data, row_i, col_j, &a.data);
module.mat_znx_dft_set_row(&mut self.key.0.data, row_i, col_j, &a.data);
}
}

View File

@@ -219,7 +219,7 @@ impl<C: AsRef<[u8]>> GetRow<FFT64> for GGLWECiphertext<C, FFT64> {
col_j: usize,
res: &mut GLWECiphertextFourier<R, FFT64>,
) {
module.vmp_extract_row(&mut res.data, &self.data, row_i, col_j);
module.mat_znx_dft_get_row(&mut res.data, &self.data, row_i, col_j);
}
}
@@ -231,6 +231,6 @@ impl<C: AsMut<[u8]> + AsRef<[u8]>> SetRow<FFT64> for GGLWECiphertext<C, FFT64> {
col_j: usize,
a: &GLWECiphertextFourier<R, FFT64>,
) {
module.vmp_prepare_row(&mut self.data, row_i, col_j, &a.data);
module.mat_znx_dft_set_row(&mut self.data, row_i, col_j, &a.data);
}
}

View File

@@ -429,7 +429,7 @@ impl<DataSelf: AsMut<[u8]> + AsRef<[u8]>> GGSWCiphertext<DataSelf, FFT64> {
module.vec_znx_dft(1, 0, &mut ci_dft, col_i, &tmp_res.data, col_i);
});
module.vmp_prepare_row(&mut self.data, row_i, 0, &ci_dft);
module.mat_znx_dft_set_row(&mut self.data, row_i, 0, &ci_dft);
// Generates
//
@@ -525,7 +525,7 @@ impl<DataSelf: AsMut<[u8]> + AsRef<[u8]>> GGSWCiphertext<DataSelf, FFT64> {
module.vec_znx_dft(1, 0, &mut ci_dft, col_i, &tmp_res.data, col_i);
});
module.vmp_prepare_row(&mut self.data, row_i, 0, &ci_dft);
module.mat_znx_dft_set_row(&mut self.data, row_i, 0, &ci_dft);
// Generates
//
@@ -688,7 +688,7 @@ impl<DataSelf: AsRef<[u8]>> GetRow<FFT64> for GGSWCiphertext<DataSelf, FFT64> {
col_j: usize,
res: &mut GLWECiphertextFourier<R, FFT64>,
) {
module.vmp_extract_row(&mut res.data, &self.data, row_i, col_j);
module.mat_znx_dft_get_row(&mut res.data, &self.data, row_i, col_j);
}
}
@@ -700,6 +700,6 @@ impl<DataSelf: AsMut<[u8]> + AsRef<[u8]>> SetRow<FFT64> for GGSWCiphertext<DataS
col_j: usize,
a: &GLWECiphertextFourier<R, FFT64>,
) {
module.vmp_prepare_row(&mut self.data, row_i, col_j, &a.data);
module.mat_znx_dft_set_row(&mut self.data, row_i, col_j, &a.data);
}
}

View File

@@ -75,7 +75,7 @@ impl<C: AsRef<[u8]>> GetRow<FFT64> for GLWESwitchingKey<C, FFT64> {
col_j: usize,
res: &mut GLWECiphertextFourier<R, FFT64>,
) {
module.vmp_extract_row(&mut res.data, &self.0.data, row_i, col_j);
module.mat_znx_dft_get_row(&mut res.data, &self.0.data, row_i, col_j);
}
}
@@ -87,7 +87,7 @@ impl<C: AsMut<[u8]> + AsRef<[u8]>> SetRow<FFT64> for GLWESwitchingKey<C, FFT64>
col_j: usize,
a: &GLWECiphertextFourier<R, FFT64>,
) {
module.vmp_prepare_row(&mut self.0.data, row_i, col_j, &a.data);
module.mat_znx_dft_set_row(&mut self.0.data, row_i, col_j, &a.data);
}
}