mirror of
https://github.com/arnaucube/poulpy.git
synced 2026-02-10 05:06:44 +01:00
glwe ops
This commit is contained in:
@@ -8,3 +8,9 @@ pub trait ModuleNew<B: Backend> {
|
||||
pub trait ModuleN {
|
||||
fn n(&self) -> usize;
|
||||
}
|
||||
|
||||
pub trait ModuleLogN where Self: ModuleN{
|
||||
fn log_n(&self) -> usize{
|
||||
(u64::BITS - (self.n() as u64-1).leading_zeros()) as usize
|
||||
}
|
||||
}
|
||||
@@ -2,7 +2,7 @@ use std::{fmt::Display, marker::PhantomData, ptr::NonNull};
|
||||
|
||||
use rand_distr::num_traits::Zero;
|
||||
|
||||
use crate::{GALOISGENERATOR, api::ModuleN};
|
||||
use crate::{api::{ModuleLogN, ModuleN}, GALOISGENERATOR};
|
||||
|
||||
#[allow(clippy::missing_safety_doc)]
|
||||
pub trait Backend: Sized {
|
||||
@@ -86,6 +86,8 @@ where
|
||||
}
|
||||
}
|
||||
|
||||
impl<BE: Backend> ModuleLogN for Module<BE> where Self: ModuleN{}
|
||||
|
||||
impl<BE: Backend> CyclotomicOrder for Module<BE> where Self: ModuleN {}
|
||||
|
||||
pub trait GaloisElement
|
||||
|
||||
Reference in New Issue
Block a user