tfhe_ntt::native64

Struct Plan52

Source
pub struct Plan52(/* private fields */);
Available on crate feature nightly only.
Expand description

Negacyclic NTT plan for multiplying two 64bit polynomials.
This can be more efficient than Plan32, but requires the AVX512 instruction set.

Implementations§

Source§

impl Plan52

Source

pub fn try_new(n: usize) -> Option<Self>

Returns a negacyclic NTT plan for the given polynomial size, or None if no suitable roots of unity can be found for the wanted parameters, or if the AVX512 instruction set isn’t detected.

Source

pub fn ntt_size(&self) -> usize

Returns the polynomial size of the negacyclic NTT plan.

Source

pub fn ntt_0(&self) -> &Plan

Source

pub fn ntt_1(&self) -> &Plan

Source

pub fn ntt_2(&self) -> &Plan

Source

pub fn fwd( &self, value: &[u64], mod_p0: &mut [u64], mod_p1: &mut [u64], mod_p2: &mut [u64], )

Source

pub fn inv( &self, value: &mut [u64], mod_p0: &mut [u64], mod_p1: &mut [u64], mod_p2: &mut [u64], )

Source

pub fn negacyclic_polymul(&self, prod: &mut [u64], lhs: &[u64], rhs: &[u64])

Computes the negacyclic polynomial product of lhs and rhs, and stores the result in prod.

Trait Implementations§

Source§

impl Clone for Plan52

Source§

fn clone(&self) -> Plan52

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Plan52

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl Freeze for Plan52

§

impl RefUnwindSafe for Plan52

§

impl Send for Plan52

§

impl Sync for Plan52

§

impl Unpin for Plan52

§

impl UnwindSafe for Plan52

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.