pub struct FFTRNSBasedConvolutionZn<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.
Trait Implementations§
Source§impl<R, I, A> Clone for FFTRNSBasedConvolutionZn<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 FFTRNSBasedConvolutionZn<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<R2, R, I, A> ConvolutionAlgorithm<R2> for FFTRNSBasedConvolutionZn<R, I, A>where
R2: ?Sized + ZnRing + CanHomFrom<I::Type>,
I: RingStore + Clone,
I::Type: IntegerRing,
R: ZnRing + CanHomFrom<I::Type> + CanHomFrom<StaticRingBase<i64>> + FromModulusCreateableZnRing,
ZnBase: CanHomFrom<I::Type>,
A: Allocator + Clone,
impl<R2, R, I, A> ConvolutionAlgorithm<R2> for FFTRNSBasedConvolutionZn<R, I, A>where
R2: ?Sized + ZnRing + CanHomFrom<I::Type>,
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 = R2>, V1: VectorView<R2::Element>, V2: VectorView<R2::Element>>(
&self,
lhs: V1,
rhs: V2,
dst: &mut [R2::Element],
ring: S,
)
fn compute_convolution<S: RingStore<Type = R2>, V1: VectorView<R2::Element>, V2: VectorView<R2::Element>>( &self, lhs: V1, rhs: V2, dst: &mut [R2::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 FFTRNSBasedConvolutionZn<R, I, A>
impl<R = ZnBase, I = RingValue<MPZBase>, A = Global> !RefUnwindSafe for FFTRNSBasedConvolutionZn<R, I, A>
impl<R, I, A> Send for FFTRNSBasedConvolutionZn<R, I, A>
impl<R = ZnBase, I = RingValue<MPZBase>, A = Global> !Sync for FFTRNSBasedConvolutionZn<R, I, A>
impl<R, I, A> Unpin for FFTRNSBasedConvolutionZn<R, I, A>
impl<R, I, A> UnwindSafe for FFTRNSBasedConvolutionZn<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