Struct lpn::oracle::LpnOracle [−][src]
This struct represents the oracle of the LPN problem.
We need to obtain the queries needed before applying reductions or transformations.
Fields
samples: Vec<Sample>
The samples held by this oracle.
Can be obtained via get_samples
secret: Sample
The secret of this problem
delta: f64
The bias of this problem
delta_s: f64
The bias of the secret
Implementations
impl LpnOracle
[src]
pub fn new(k: u32, tau: f64) -> LpnOracle
[src]
Create a new LPN problem with a random secret
pub fn new_with_secret(secret: Sample, k: u32, tau: f64) -> LpnOracle
[src]
Create a new LPN problem with a set secret
pub fn get_samples(&mut self, n: usize)
[src]
Get new samples from the oracle
These samples are stored in oracle.samples
Uses parallelism
pub fn get_samples_drop(&mut self, n: usize, trailing_zeros: usize)
[src]
Get samples from the oracle with a trailing number of zero bits
Uses parallelism
pub fn get_k(&self) -> usize
[src]
pub unsafe fn set_k(&mut self, new_k: usize)
[src]
Override what the value of k is, without running truncate.
pub fn truncate(&mut self, new_k: usize)
[src]
Updates the problem to have fewer bits
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for LpnOracle
impl Send for LpnOracle
impl Sync for LpnOracle
impl Unpin for LpnOracle
impl UnwindSafe for LpnOracle
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T, U> Cast<U> for T where
U: FromCast<T>,
[src]
U: FromCast<T>,
impl<T> From<T> for T
[src]
impl<T> FromBits<T> for T
[src]
impl<T> FromCast<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> IntoBits<U> for T where
U: FromBits<T>,
[src]
U: FromBits<T>,
impl<T> Pointable for T
pub const ALIGN: usize
type Init = T
The type for initializers.
pub unsafe fn init(init: <T as Pointable>::Init) -> usize
pub unsafe fn deref<'a>(ptr: usize) -> &'a T
pub unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T
pub unsafe fn drop(ptr: usize)
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,