poulpy/poulpy-backend/src/cpu_spqlios/ntt120/svp_ppol.rs
poulpy-backend/src/cpu_spqlios/ntt120/svp_ppol.rsRaw
1use poulpy_hal::{
2 layouts::{Backend, SvpPPolOwned},
3 oep::{SvpPPolAllocBytesImpl, SvpPPolAllocImpl, SvpPPolFromBytesImpl},
4};
5
6use crate::cpu_spqlios::NTT120;
7
8unsafe impl SvpPPolFromBytesImpl<Self> for NTT120 {
9 fn svp_ppol_from_bytes_impl(n: usize, cols: usize, bytes: Vec<u8>) -> SvpPPolOwned<NTT120> {
10 SvpPPolOwned::from_bytes(n, cols, bytes)
11 }
12}
13
14unsafe impl SvpPPolAllocImpl<Self> for NTT120 {
15 fn svp_ppol_alloc_impl(n: usize, cols: usize) -> SvpPPolOwned<NTT120> {
16 SvpPPolOwned::alloc(n, cols)
17 }
18}
19
20unsafe impl SvpPPolAllocBytesImpl<Self> for NTT120 {
21 fn svp_ppol_alloc_bytes_impl(n: usize, cols: usize) -> usize {
22 NTT120::layout_prep_word_count() * n * cols * size_of::<i64>()
23 }
24}