pub trait ModuleCoreAlloc {
type OwnedBuf: Data;
type ZnxWord: ZnxWord;
Show 38 methods
// Required methods
fn glwe_alloc_from_infos<A: GLWEInfos>(
&self,
infos: &A,
) -> GLWE<Self::OwnedBuf, Self::ZnxWord>;
fn glwe_alloc(
&self,
base2k: Base2K,
k: TorusPrecision,
rank: Rank,
) -> GLWE<Self::OwnedBuf, Self::ZnxWord>;
fn glwe_alloc_with_size(
&self,
base2k: Base2K,
size: usize,
rank: Rank,
) -> GLWE<Self::OwnedBuf, Self::ZnxWord>;
fn gglwe_alloc_from_infos<A: GGLWEInfos>(
&self,
infos: &A,
) -> GGLWE<Self::OwnedBuf, Self::ZnxWord>;
fn gglwe_alloc(
&self,
base2k: Base2K,
dnum: Dnum,
dsize: Dsize,
k_aux: TorusPrecision,
rank_in: Rank,
rank_out: Rank,
) -> GGLWE<Self::OwnedBuf, Self::ZnxWord>;
fn ggsw_alloc_from_infos<A: GGSWInfos>(
&self,
infos: &A,
) -> GGSW<Self::OwnedBuf, Self::ZnxWord>;
fn ggsw_alloc(
&self,
base2k: Base2K,
dnum: Dnum,
dsize: Dsize,
k_aux: TorusPrecision,
rank: Rank,
) -> GGSW<Self::OwnedBuf, Self::ZnxWord>;
fn glwe_plaintext_alloc_from_infos<A: GLWEInfos>(
&self,
infos: &A,
) -> GLWEPlaintext<Self::OwnedBuf, Self::ZnxWord>;
fn glwe_plaintext_alloc(
&self,
base2k: Base2K,
k: TorusPrecision,
) -> GLWEPlaintext<Self::OwnedBuf, Self::ZnxWord>;
fn glwe_secret_alloc_from_infos<A: GLWEInfos>(
&self,
infos: &A,
) -> GLWESecret<Self::OwnedBuf, Self::ZnxWord>;
fn glwe_secret_alloc(
&self,
rank: Rank,
) -> GLWESecret<Self::OwnedBuf, Self::ZnxWord>;
fn glwe_secret_tensor_alloc_from_infos<A: GLWEInfos>(
&self,
infos: &A,
) -> GLWESecretTensor<Self::OwnedBuf, Self::ZnxWord>;
fn glwe_secret_tensor_alloc(
&self,
rank: Rank,
) -> GLWESecretTensor<Self::OwnedBuf, Self::ZnxWord>;
fn glwe_tensor_alloc_from_infos<A: GLWEInfos>(
&self,
infos: &A,
) -> GLWETensor<Self::OwnedBuf, Self::ZnxWord>;
fn glwe_tensor_alloc(
&self,
base2k: Base2K,
k: TorusPrecision,
rank: Rank,
) -> GLWETensor<Self::OwnedBuf, Self::ZnxWord>;
fn glwe_public_key_alloc_from_infos<A: GLWEInfos>(
&self,
infos: &A,
) -> GLWEPublicKey<Self::OwnedBuf, Self::ZnxWord>;
fn glwe_public_key_alloc(
&self,
base2k: Base2K,
k: TorusPrecision,
rank: Rank,
) -> GLWEPublicKey<Self::OwnedBuf, Self::ZnxWord>;
fn glwe_switching_key_alloc_from_infos<A: GGLWEInfos>(
&self,
infos: &A,
) -> GLWESwitchingKey<Self::OwnedBuf, Self::ZnxWord>;
fn glwe_switching_key_alloc(
&self,
base2k: Base2K,
dnum: Dnum,
dsize: Dsize,
k_aux: TorusPrecision,
rank_in: Rank,
rank_out: Rank,
) -> GLWESwitchingKey<Self::OwnedBuf, Self::ZnxWord>;
fn glwe_automorphism_key_alloc_from_infos<A: GGLWEInfos>(
&self,
infos: &A,
) -> GLWEAutomorphismKey<Self::OwnedBuf, Self::ZnxWord>;
fn glwe_automorphism_key_alloc(
&self,
base2k: Base2K,
dnum: Dnum,
dsize: Dsize,
k_aux: TorusPrecision,
rank: Rank,
) -> GLWEAutomorphismKey<Self::OwnedBuf, Self::ZnxWord>;
fn glwe_tensor_key_alloc_from_infos<A: GGLWEInfos>(
&self,
infos: &A,
) -> GLWETensorKey<Self::OwnedBuf, Self::ZnxWord>;
fn glwe_tensor_key_alloc(
&self,
base2k: Base2K,
dnum: Dnum,
dsize: Dsize,
k_aux: TorusPrecision,
rank: Rank,
) -> GLWETensorKey<Self::OwnedBuf, Self::ZnxWord>;
fn glwe_to_lwe_key_alloc_from_infos<A: GGLWEInfos>(
&self,
infos: &A,
) -> GLWEToLWEKey<Self::OwnedBuf, Self::ZnxWord>;
fn glwe_to_lwe_key_alloc(
&self,
base2k: Base2K,
dnum: Dnum,
k_aux: TorusPrecision,
rank_in: Rank,
) -> GLWEToLWEKey<Self::OwnedBuf, Self::ZnxWord>;
fn gglwe_to_ggsw_key_alloc_from_infos<A: GGLWEInfos>(
&self,
infos: &A,
) -> GGLWEToGGSWKey<Self::OwnedBuf, Self::ZnxWord>;
fn gglwe_to_ggsw_key_alloc(
&self,
base2k: Base2K,
dnum: Dnum,
dsize: Dsize,
k_aux: TorusPrecision,
rank: Rank,
) -> GGLWEToGGSWKey<Self::OwnedBuf, Self::ZnxWord>;
fn lwe_alloc_from_infos<A: LWEInfos>(
&self,
infos: &A,
) -> LWE<Self::OwnedBuf, Self::ZnxWord>;
fn lwe_alloc(
&self,
n: Degree,
base2k: Base2K,
k: TorusPrecision,
) -> LWE<Self::OwnedBuf, Self::ZnxWord>;
fn lwe_matrix_alloc_from_infos<A: LWEMatrixInfos>(
&self,
infos: &A,
) -> LWEMatrix<Self::OwnedBuf, Self::ZnxWord>;
fn lwe_matrix_alloc(
&self,
rows: usize,
lwe_n: Degree,
base2k: Base2K,
k: TorusPrecision,
) -> LWEMatrix<Self::OwnedBuf, Self::ZnxWord>;
fn lwe_plaintext_alloc_from_infos<A: LWEInfos>(
&self,
infos: &A,
) -> LWEPlaintext<Self::OwnedBuf, Self::ZnxWord>;
fn lwe_plaintext_alloc(
&self,
base2k: Base2K,
k: TorusPrecision,
) -> LWEPlaintext<Self::OwnedBuf, Self::ZnxWord>;
fn lwe_secret_alloc(
&self,
n: Degree,
) -> LWESecret<Self::OwnedBuf, Self::ZnxWord>;
fn lwe_switching_key_alloc_from_infos<A: GGLWEInfos>(
&self,
infos: &A,
) -> LWESwitchingKey<Self::OwnedBuf, Self::ZnxWord>;
fn lwe_switching_key_alloc(
&self,
n: Degree,
base2k: Base2K,
dnum: Dnum,
k_aux: TorusPrecision,
) -> LWESwitchingKey<Self::OwnedBuf, Self::ZnxWord>;
fn lwe_to_glwe_key_alloc_from_infos<A: GGLWEInfos>(
&self,
infos: &A,
) -> LWEToGLWEKey<Self::OwnedBuf, Self::ZnxWord>;
fn lwe_to_glwe_key_alloc(
&self,
n: Degree,
base2k: Base2K,
dnum: Dnum,
k_aux: TorusPrecision,
rank_out: Rank,
) -> LWEToGLWEKey<Self::OwnedBuf, Self::ZnxWord>;
}Expand description
Backend-native wrapper allocation helpers hung off a Module.
This mirrors the poulpy-hal allocation model: callers allocate through a
module/context object instead of using static layout constructors directly.
Required Associated Types§
Required Methods§
fn glwe_alloc_from_infos<A: GLWEInfos>( &self, infos: &A, ) -> GLWE<Self::OwnedBuf, Self::ZnxWord>
fn glwe_alloc( &self, base2k: Base2K, k: TorusPrecision, rank: Rank, ) -> GLWE<Self::OwnedBuf, Self::ZnxWord>
Sourcefn glwe_alloc_with_size(
&self,
base2k: Base2K,
size: usize,
rank: Rank,
) -> GLWE<Self::OwnedBuf, Self::ZnxWord>
fn glwe_alloc_with_size( &self, base2k: Base2K, size: usize, rank: Rank, ) -> GLWE<Self::OwnedBuf, Self::ZnxWord>
Allocates a GLWE with exactly size limbs (so max_size() == size),
labelling k as the full physical width size · base2k. Unlike
Self::glwe_alloc (which derives size = ceil(k / base2k) from a target
k), this takes the limb count directly, decoupling the buffer size from
the effective k — relabel the effective k afterwards with SetK.
fn gglwe_alloc_from_infos<A: GGLWEInfos>( &self, infos: &A, ) -> GGLWE<Self::OwnedBuf, Self::ZnxWord>
fn gglwe_alloc( &self, base2k: Base2K, dnum: Dnum, dsize: Dsize, k_aux: TorusPrecision, rank_in: Rank, rank_out: Rank, ) -> GGLWE<Self::OwnedBuf, Self::ZnxWord>
fn ggsw_alloc_from_infos<A: GGSWInfos>( &self, infos: &A, ) -> GGSW<Self::OwnedBuf, Self::ZnxWord>
fn ggsw_alloc( &self, base2k: Base2K, dnum: Dnum, dsize: Dsize, k_aux: TorusPrecision, rank: Rank, ) -> GGSW<Self::OwnedBuf, Self::ZnxWord>
fn glwe_plaintext_alloc_from_infos<A: GLWEInfos>( &self, infos: &A, ) -> GLWEPlaintext<Self::OwnedBuf, Self::ZnxWord>
fn glwe_plaintext_alloc( &self, base2k: Base2K, k: TorusPrecision, ) -> GLWEPlaintext<Self::OwnedBuf, Self::ZnxWord>
fn glwe_secret_alloc_from_infos<A: GLWEInfos>( &self, infos: &A, ) -> GLWESecret<Self::OwnedBuf, Self::ZnxWord>
fn glwe_secret_alloc( &self, rank: Rank, ) -> GLWESecret<Self::OwnedBuf, Self::ZnxWord>
fn glwe_secret_tensor_alloc_from_infos<A: GLWEInfos>( &self, infos: &A, ) -> GLWESecretTensor<Self::OwnedBuf, Self::ZnxWord>
fn glwe_secret_tensor_alloc( &self, rank: Rank, ) -> GLWESecretTensor<Self::OwnedBuf, Self::ZnxWord>
fn glwe_tensor_alloc_from_infos<A: GLWEInfos>( &self, infos: &A, ) -> GLWETensor<Self::OwnedBuf, Self::ZnxWord>
fn glwe_tensor_alloc( &self, base2k: Base2K, k: TorusPrecision, rank: Rank, ) -> GLWETensor<Self::OwnedBuf, Self::ZnxWord>
fn glwe_public_key_alloc_from_infos<A: GLWEInfos>( &self, infos: &A, ) -> GLWEPublicKey<Self::OwnedBuf, Self::ZnxWord>
fn glwe_public_key_alloc( &self, base2k: Base2K, k: TorusPrecision, rank: Rank, ) -> GLWEPublicKey<Self::OwnedBuf, Self::ZnxWord>
fn glwe_switching_key_alloc_from_infos<A: GGLWEInfos>( &self, infos: &A, ) -> GLWESwitchingKey<Self::OwnedBuf, Self::ZnxWord>
fn glwe_switching_key_alloc( &self, base2k: Base2K, dnum: Dnum, dsize: Dsize, k_aux: TorusPrecision, rank_in: Rank, rank_out: Rank, ) -> GLWESwitchingKey<Self::OwnedBuf, Self::ZnxWord>
fn glwe_automorphism_key_alloc_from_infos<A: GGLWEInfos>( &self, infos: &A, ) -> GLWEAutomorphismKey<Self::OwnedBuf, Self::ZnxWord>
fn glwe_automorphism_key_alloc( &self, base2k: Base2K, dnum: Dnum, dsize: Dsize, k_aux: TorusPrecision, rank: Rank, ) -> GLWEAutomorphismKey<Self::OwnedBuf, Self::ZnxWord>
fn glwe_tensor_key_alloc_from_infos<A: GGLWEInfos>( &self, infos: &A, ) -> GLWETensorKey<Self::OwnedBuf, Self::ZnxWord>
fn glwe_tensor_key_alloc( &self, base2k: Base2K, dnum: Dnum, dsize: Dsize, k_aux: TorusPrecision, rank: Rank, ) -> GLWETensorKey<Self::OwnedBuf, Self::ZnxWord>
fn glwe_to_lwe_key_alloc_from_infos<A: GGLWEInfos>( &self, infos: &A, ) -> GLWEToLWEKey<Self::OwnedBuf, Self::ZnxWord>
fn glwe_to_lwe_key_alloc( &self, base2k: Base2K, dnum: Dnum, k_aux: TorusPrecision, rank_in: Rank, ) -> GLWEToLWEKey<Self::OwnedBuf, Self::ZnxWord>
fn gglwe_to_ggsw_key_alloc_from_infos<A: GGLWEInfos>( &self, infos: &A, ) -> GGLWEToGGSWKey<Self::OwnedBuf, Self::ZnxWord>
fn gglwe_to_ggsw_key_alloc( &self, base2k: Base2K, dnum: Dnum, dsize: Dsize, k_aux: TorusPrecision, rank: Rank, ) -> GGLWEToGGSWKey<Self::OwnedBuf, Self::ZnxWord>
fn lwe_alloc_from_infos<A: LWEInfos>( &self, infos: &A, ) -> LWE<Self::OwnedBuf, Self::ZnxWord>
fn lwe_alloc( &self, n: Degree, base2k: Base2K, k: TorusPrecision, ) -> LWE<Self::OwnedBuf, Self::ZnxWord>
fn lwe_matrix_alloc_from_infos<A: LWEMatrixInfos>( &self, infos: &A, ) -> LWEMatrix<Self::OwnedBuf, Self::ZnxWord>
fn lwe_matrix_alloc( &self, rows: usize, lwe_n: Degree, base2k: Base2K, k: TorusPrecision, ) -> LWEMatrix<Self::OwnedBuf, Self::ZnxWord>
fn lwe_plaintext_alloc_from_infos<A: LWEInfos>( &self, infos: &A, ) -> LWEPlaintext<Self::OwnedBuf, Self::ZnxWord>
fn lwe_plaintext_alloc( &self, base2k: Base2K, k: TorusPrecision, ) -> LWEPlaintext<Self::OwnedBuf, Self::ZnxWord>
fn lwe_secret_alloc( &self, n: Degree, ) -> LWESecret<Self::OwnedBuf, Self::ZnxWord>
fn lwe_switching_key_alloc_from_infos<A: GGLWEInfos>( &self, infos: &A, ) -> LWESwitchingKey<Self::OwnedBuf, Self::ZnxWord>
fn lwe_switching_key_alloc( &self, n: Degree, base2k: Base2K, dnum: Dnum, k_aux: TorusPrecision, ) -> LWESwitchingKey<Self::OwnedBuf, Self::ZnxWord>
fn lwe_to_glwe_key_alloc_from_infos<A: GGLWEInfos>( &self, infos: &A, ) -> LWEToGLWEKey<Self::OwnedBuf, Self::ZnxWord>
fn lwe_to_glwe_key_alloc( &self, n: Degree, base2k: Base2K, dnum: Dnum, k_aux: TorusPrecision, rank_out: Rank, ) -> LWEToGLWEKey<Self::OwnedBuf, Self::ZnxWord>
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".