pub struct FFTRNSBasedConvolution<R = ZnBase, I = BigIntRing, A = Global>where
I: RingStore + Clone,
I::Type: IntegerRing,
R: ZnRing + CanHomFrom<I::Type> + CanHomFrom<StaticRingBase<i64>> + FromModulusCreateableZnRing,
ZnBase: CanHomFrom<I::Type>,
A: Allocator + Clone,{ /* private fields */ }Expand description
§Availability
This API is marked as unstable and is only available when the unstable-enable crate feature is enabled. This comes with no stability guarantees, and could be changed or removed at any time.
Implementations§
Source§impl<R, I, A> FFTRNSBasedConvolution<R, I, A>where
I: RingStore + Clone,
I::Type: IntegerRing,
R: ZnRing + CanHomFrom<I::Type> + CanHomFrom<StaticRingBase<i64>> + FromModulusCreateableZnRing,
ZnBase: CanHomFrom<I::Type>,
A: Allocator + Clone,
impl<R, I, A> FFTRNSBasedConvolution<R, I, A>where
I: RingStore + Clone,
I::Type: IntegerRing,
R: ZnRing + CanHomFrom<I::Type> + CanHomFrom<StaticRingBase<i64>> + FromModulusCreateableZnRing,
ZnBase: CanHomFrom<I::Type>,
A: Allocator + Clone,
Trait Implementations§
Source§impl<R, I, A> Clone for FFTRNSBasedConvolution<R, I, A>where
I: RingStore + Clone,
I::Type: IntegerRing,
R: ZnRing + CanHomFrom<I::Type> + CanHomFrom<StaticRingBase<i64>> + FromModulusCreateableZnRing + Clone,
ZnBase: CanHomFrom<I::Type>,
A: Allocator + Clone,
impl<R, I, A> Clone for FFTRNSBasedConvolution<R, I, A>where
I: RingStore + Clone,
I::Type: IntegerRing,
R: ZnRing + CanHomFrom<I::Type> + CanHomFrom<StaticRingBase<i64>> + FromModulusCreateableZnRing + Clone,
ZnBase: CanHomFrom<I::Type>,
A: Allocator + Clone,
Source§impl<I2, R, I, A> ConvolutionAlgorithm<I2> for FFTRNSBasedConvolution<R, I, A>where
I2: ?Sized + IntegerRing,
I: RingStore + Clone,
I::Type: IntegerRing,
R: ZnRing + CanHomFrom<I::Type> + CanHomFrom<StaticRingBase<i64>> + FromModulusCreateableZnRing,
ZnBase: CanHomFrom<I::Type>,
A: Allocator + Clone,
impl<I2, R, I, A> ConvolutionAlgorithm<I2> for FFTRNSBasedConvolution<R, I, A>where
I2: ?Sized + IntegerRing,
I: RingStore + Clone,
I::Type: IntegerRing,
R: ZnRing + CanHomFrom<I::Type> + CanHomFrom<StaticRingBase<i64>> + FromModulusCreateableZnRing,
ZnBase: CanHomFrom<I::Type>,
A: Allocator + Clone,
Source§fn compute_convolution<S: RingStore<Type = I2>, V1: VectorView<I2::Element>, V2: VectorView<I2::Element>>(
&self,
lhs: V1,
rhs: V2,
dst: &mut [I2::Element],
ring: S,
)
fn compute_convolution<S: RingStore<Type = I2>, V1: VectorView<I2::Element>, V2: VectorView<I2::Element>>( &self, lhs: V1, rhs: V2, dst: &mut [I2::Element], ring: S, )
Source§impl<'a, R, I, A> From<&'a FFTRNSBasedConvolution<R, I, A>> for &'a FFTRNSBasedConvolutionZn<R, I, A>where
I: RingStore + Clone,
I::Type: IntegerRing,
R: ZnRing + CanHomFrom<I::Type> + CanHomFrom<StaticRingBase<i64>> + FromModulusCreateableZnRing,
ZnBase: CanHomFrom<I::Type>,
A: Allocator + Clone,
impl<'a, R, I, A> From<&'a FFTRNSBasedConvolution<R, I, A>> for &'a FFTRNSBasedConvolutionZn<R, I, A>where
I: RingStore + Clone,
I::Type: IntegerRing,
R: ZnRing + CanHomFrom<I::Type> + CanHomFrom<StaticRingBase<i64>> + FromModulusCreateableZnRing,
ZnBase: CanHomFrom<I::Type>,
A: Allocator + Clone,
Source§fn from(value: &'a FFTRNSBasedConvolution<R, I, A>) -> Self
fn from(value: &'a FFTRNSBasedConvolution<R, I, A>) -> Self
Converts to this type from the input type.
Source§impl<'a, R, I, A> From<&'a FFTRNSBasedConvolutionZn<R, I, A>> for &'a FFTRNSBasedConvolution<R, I, A>where
I: RingStore + Clone,
I::Type: IntegerRing,
R: ZnRing + CanHomFrom<I::Type> + CanHomFrom<StaticRingBase<i64>> + FromModulusCreateableZnRing,
ZnBase: CanHomFrom<I::Type>,
A: Allocator + Clone,
impl<'a, R, I, A> From<&'a FFTRNSBasedConvolutionZn<R, I, A>> for &'a FFTRNSBasedConvolution<R, I, A>where
I: RingStore + Clone,
I::Type: IntegerRing,
R: ZnRing + CanHomFrom<I::Type> + CanHomFrom<StaticRingBase<i64>> + FromModulusCreateableZnRing,
ZnBase: CanHomFrom<I::Type>,
A: Allocator + Clone,
Source§fn from(value: &'a FFTRNSBasedConvolutionZn<R, I, A>) -> Self
fn from(value: &'a FFTRNSBasedConvolutionZn<R, I, A>) -> Self
Converts to this type from the input type.
Source§impl<R, I, A> From<FFTRNSBasedConvolution<R, I, A>> for FFTRNSBasedConvolutionZn<R, I, A>where
I: RingStore + Clone,
I::Type: IntegerRing,
R: ZnRing + CanHomFrom<I::Type> + CanHomFrom<StaticRingBase<i64>> + FromModulusCreateableZnRing,
ZnBase: CanHomFrom<I::Type>,
A: Allocator + Clone,
impl<R, I, A> From<FFTRNSBasedConvolution<R, I, A>> for FFTRNSBasedConvolutionZn<R, I, A>where
I: RingStore + Clone,
I::Type: IntegerRing,
R: ZnRing + CanHomFrom<I::Type> + CanHomFrom<StaticRingBase<i64>> + FromModulusCreateableZnRing,
ZnBase: CanHomFrom<I::Type>,
A: Allocator + Clone,
Source§fn from(value: FFTRNSBasedConvolution<R, I, A>) -> Self
fn from(value: FFTRNSBasedConvolution<R, I, A>) -> Self
Converts to this type from the input type.
Source§impl<R, I, A> From<FFTRNSBasedConvolutionZn<R, I, A>> for FFTRNSBasedConvolution<R, I, A>where
I: RingStore + Clone,
I::Type: IntegerRing,
R: ZnRing + CanHomFrom<I::Type> + CanHomFrom<StaticRingBase<i64>> + FromModulusCreateableZnRing,
ZnBase: CanHomFrom<I::Type>,
A: Allocator + Clone,
impl<R, I, A> From<FFTRNSBasedConvolutionZn<R, I, A>> for FFTRNSBasedConvolution<R, I, A>where
I: RingStore + Clone,
I::Type: IntegerRing,
R: ZnRing + CanHomFrom<I::Type> + CanHomFrom<StaticRingBase<i64>> + FromModulusCreateableZnRing,
ZnBase: CanHomFrom<I::Type>,
A: Allocator + Clone,
Source§fn from(value: FFTRNSBasedConvolutionZn<R, I, A>) -> Self
fn from(value: FFTRNSBasedConvolutionZn<R, I, A>) -> Self
Converts to this type from the input type.
Auto Trait Implementations§
impl<R = ZnBase, I = RingValue<MPZBase>, A = Global> !Freeze for FFTRNSBasedConvolution<R, I, A>
impl<R = ZnBase, I = RingValue<MPZBase>, A = Global> !RefUnwindSafe for FFTRNSBasedConvolution<R, I, A>
impl<R, I, A> Send for FFTRNSBasedConvolution<R, I, A>
impl<R = ZnBase, I = RingValue<MPZBase>, A = Global> !Sync for FFTRNSBasedConvolution<R, I, A>
impl<R, I, A> Unpin for FFTRNSBasedConvolution<R, I, A>
impl<R, I, A> UnwindSafe for FFTRNSBasedConvolution<R, I, A>where
I: UnwindSafe + RefUnwindSafe,
A: UnwindSafe + RefUnwindSafe,
<<I as RingStore>::Type as RingBase>::Element: RefUnwindSafe,
R: RefUnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more