arnaucube
arnaucube/poulpyPublic Self-hosted repository
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}