Struct opendp::measures::ZeroConcentratedDivergence
source · pub struct ZeroConcentratedDivergence<Q>(PhantomData<fn() -> Q>);
Expand description
$\rho$-zero concentrated differential privacy.
The greatest zero-concentrated divergence between any randomly selected subset of the support.
§Proof Definition
§d
-closeness
For any two vectors $u, v \in \texttt{D}$ and any $d$ of generic type $\texttt{Q}$, define $P$ and $Q$ to be the distributions of $M(u)$ and $M(v)$. We say that $u, v$ are $d$-close under the alpha-Renyi divergence measure (abbreviated as $D_{\alpha}$) whenever
D_{\alpha}(P \| Q) = \frac{1}{1 - \alpha} \mathbb{E}_{x \sim Q} \Big[\ln \left( \dfrac{P(x)}{Q(x)} \right)^\alpha \Big] \leq d \alpha.
for all possible choices of $\alpha \in (1, \infty)$.
Tuple Fields§
§0: PhantomData<fn() -> Q>
Trait Implementations§
source§impl<Q: InfAdd + Zero + Clone> BasicCompositionMeasure for ZeroConcentratedDivergence<Q>
impl<Q: InfAdd + Zero + Clone> BasicCompositionMeasure for ZeroConcentratedDivergence<Q>
source§impl<Q> Clone for ZeroConcentratedDivergence<Q>
impl<Q> Clone for ZeroConcentratedDivergence<Q>
source§impl<Q> Debug for ZeroConcentratedDivergence<Q>
impl<Q> Debug for ZeroConcentratedDivergence<Q>
source§impl<Q> Default for ZeroConcentratedDivergence<Q>
impl<Q> Default for ZeroConcentratedDivergence<Q>
source§impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f32>, QI> for AtomDomain<i128>
impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f32>, QI> for AtomDomain<i128>
type InputMetric = AbsoluteDistance<QI>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f32, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f32>>>
source§impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f32>, QI> for AtomDomain<i16>
impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f32>, QI> for AtomDomain<i16>
type InputMetric = AbsoluteDistance<QI>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f32, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f32>>>
source§impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f32>, QI> for AtomDomain<i32>
impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f32>, QI> for AtomDomain<i32>
type InputMetric = AbsoluteDistance<QI>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f32, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f32>>>
source§impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f32>, QI> for AtomDomain<i64>
impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f32>, QI> for AtomDomain<i64>
type InputMetric = AbsoluteDistance<QI>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f32, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f32>>>
source§impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f32>, QI> for AtomDomain<i8>
impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f32>, QI> for AtomDomain<i8>
type InputMetric = AbsoluteDistance<QI>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f32, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f32>>>
source§impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f32>, QI> for AtomDomain<isize>
impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f32>, QI> for AtomDomain<isize>
type InputMetric = AbsoluteDistance<QI>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f32, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f32>>>
source§impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f32>, QI> for AtomDomain<u128>
impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f32>, QI> for AtomDomain<u128>
type InputMetric = AbsoluteDistance<QI>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f32, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f32>>>
source§impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f32>, QI> for AtomDomain<u16>
impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f32>, QI> for AtomDomain<u16>
type InputMetric = AbsoluteDistance<QI>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f32, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f32>>>
source§impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f32>, QI> for AtomDomain<u32>
impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f32>, QI> for AtomDomain<u32>
type InputMetric = AbsoluteDistance<QI>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f32, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f32>>>
source§impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f32>, QI> for AtomDomain<u64>
impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f32>, QI> for AtomDomain<u64>
type InputMetric = AbsoluteDistance<QI>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f32, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f32>>>
source§impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f32>, QI> for AtomDomain<u8>
impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f32>, QI> for AtomDomain<u8>
type InputMetric = AbsoluteDistance<QI>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f32, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f32>>>
source§impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f32>, QI> for AtomDomain<usize>
impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f32>, QI> for AtomDomain<usize>
type InputMetric = AbsoluteDistance<QI>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f32, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f32>>>
source§impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f32>, QI> for VectorDomain<AtomDomain<i128>>
impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f32>, QI> for VectorDomain<AtomDomain<i128>>
type InputMetric = LpDistance<2, QI>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f32, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f32>>>
source§impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f32>, QI> for VectorDomain<AtomDomain<i16>>
impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f32>, QI> for VectorDomain<AtomDomain<i16>>
type InputMetric = LpDistance<2, QI>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f32, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f32>>>
source§impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f32>, QI> for VectorDomain<AtomDomain<i32>>
impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f32>, QI> for VectorDomain<AtomDomain<i32>>
type InputMetric = LpDistance<2, QI>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f32, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f32>>>
source§impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f32>, QI> for VectorDomain<AtomDomain<i64>>
impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f32>, QI> for VectorDomain<AtomDomain<i64>>
type InputMetric = LpDistance<2, QI>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f32, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f32>>>
source§impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f32>, QI> for VectorDomain<AtomDomain<i8>>
impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f32>, QI> for VectorDomain<AtomDomain<i8>>
type InputMetric = LpDistance<2, QI>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f32, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f32>>>
source§impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f32>, QI> for VectorDomain<AtomDomain<isize>>
impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f32>, QI> for VectorDomain<AtomDomain<isize>>
type InputMetric = LpDistance<2, QI>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f32, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f32>>>
source§impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f32>, QI> for VectorDomain<AtomDomain<u128>>
impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f32>, QI> for VectorDomain<AtomDomain<u128>>
type InputMetric = LpDistance<2, QI>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f32, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f32>>>
source§impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f32>, QI> for VectorDomain<AtomDomain<u16>>
impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f32>, QI> for VectorDomain<AtomDomain<u16>>
type InputMetric = LpDistance<2, QI>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f32, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f32>>>
source§impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f32>, QI> for VectorDomain<AtomDomain<u32>>
impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f32>, QI> for VectorDomain<AtomDomain<u32>>
type InputMetric = LpDistance<2, QI>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f32, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f32>>>
source§impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f32>, QI> for VectorDomain<AtomDomain<u64>>
impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f32>, QI> for VectorDomain<AtomDomain<u64>>
type InputMetric = LpDistance<2, QI>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f32, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f32>>>
source§impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f32>, QI> for VectorDomain<AtomDomain<u8>>
impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f32>, QI> for VectorDomain<AtomDomain<u8>>
type InputMetric = LpDistance<2, QI>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f32, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f32>>>
source§impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f32>, QI> for VectorDomain<AtomDomain<usize>>
impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f32>, QI> for VectorDomain<AtomDomain<usize>>
type InputMetric = LpDistance<2, QI>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f32, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f32>>>
source§impl GaussianDomain<ZeroConcentratedDivergence<f32>, f32> for AtomDomain<f32>
impl GaussianDomain<ZeroConcentratedDivergence<f32>, f32> for AtomDomain<f32>
type InputMetric = AbsoluteDistance<f32>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f32, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f32>>>
source§impl GaussianDomain<ZeroConcentratedDivergence<f32>, f32> for VectorDomain<AtomDomain<f32>>
impl GaussianDomain<ZeroConcentratedDivergence<f32>, f32> for VectorDomain<AtomDomain<f32>>
type InputMetric = LpDistance<2, f32>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f32, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f32>>>
source§impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f64>, QI> for AtomDomain<i128>
impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f64>, QI> for AtomDomain<i128>
type InputMetric = AbsoluteDistance<QI>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f64, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f64>>>
source§impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f64>, QI> for AtomDomain<i16>
impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f64>, QI> for AtomDomain<i16>
type InputMetric = AbsoluteDistance<QI>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f64, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f64>>>
source§impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f64>, QI> for AtomDomain<i32>
impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f64>, QI> for AtomDomain<i32>
type InputMetric = AbsoluteDistance<QI>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f64, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f64>>>
source§impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f64>, QI> for AtomDomain<i64>
impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f64>, QI> for AtomDomain<i64>
type InputMetric = AbsoluteDistance<QI>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f64, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f64>>>
source§impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f64>, QI> for AtomDomain<i8>
impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f64>, QI> for AtomDomain<i8>
type InputMetric = AbsoluteDistance<QI>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f64, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f64>>>
source§impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f64>, QI> for AtomDomain<isize>
impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f64>, QI> for AtomDomain<isize>
type InputMetric = AbsoluteDistance<QI>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f64, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f64>>>
source§impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f64>, QI> for AtomDomain<u128>
impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f64>, QI> for AtomDomain<u128>
type InputMetric = AbsoluteDistance<QI>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f64, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f64>>>
source§impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f64>, QI> for AtomDomain<u16>
impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f64>, QI> for AtomDomain<u16>
type InputMetric = AbsoluteDistance<QI>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f64, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f64>>>
source§impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f64>, QI> for AtomDomain<u32>
impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f64>, QI> for AtomDomain<u32>
type InputMetric = AbsoluteDistance<QI>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f64, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f64>>>
source§impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f64>, QI> for AtomDomain<u64>
impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f64>, QI> for AtomDomain<u64>
type InputMetric = AbsoluteDistance<QI>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f64, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f64>>>
source§impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f64>, QI> for AtomDomain<u8>
impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f64>, QI> for AtomDomain<u8>
type InputMetric = AbsoluteDistance<QI>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f64, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f64>>>
source§impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f64>, QI> for AtomDomain<usize>
impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f64>, QI> for AtomDomain<usize>
type InputMetric = AbsoluteDistance<QI>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f64, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f64>>>
source§impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f64>, QI> for VectorDomain<AtomDomain<i128>>
impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f64>, QI> for VectorDomain<AtomDomain<i128>>
type InputMetric = LpDistance<2, QI>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f64, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f64>>>
source§impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f64>, QI> for VectorDomain<AtomDomain<i16>>
impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f64>, QI> for VectorDomain<AtomDomain<i16>>
type InputMetric = LpDistance<2, QI>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f64, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f64>>>
source§impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f64>, QI> for VectorDomain<AtomDomain<i32>>
impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f64>, QI> for VectorDomain<AtomDomain<i32>>
type InputMetric = LpDistance<2, QI>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f64, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f64>>>
source§impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f64>, QI> for VectorDomain<AtomDomain<i64>>
impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f64>, QI> for VectorDomain<AtomDomain<i64>>
type InputMetric = LpDistance<2, QI>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f64, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f64>>>
source§impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f64>, QI> for VectorDomain<AtomDomain<i8>>
impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f64>, QI> for VectorDomain<AtomDomain<i8>>
type InputMetric = LpDistance<2, QI>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f64, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f64>>>
source§impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f64>, QI> for VectorDomain<AtomDomain<isize>>
impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f64>, QI> for VectorDomain<AtomDomain<isize>>
type InputMetric = LpDistance<2, QI>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f64, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f64>>>
source§impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f64>, QI> for VectorDomain<AtomDomain<u128>>
impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f64>, QI> for VectorDomain<AtomDomain<u128>>
type InputMetric = LpDistance<2, QI>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f64, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f64>>>
source§impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f64>, QI> for VectorDomain<AtomDomain<u16>>
impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f64>, QI> for VectorDomain<AtomDomain<u16>>
type InputMetric = LpDistance<2, QI>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f64, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f64>>>
source§impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f64>, QI> for VectorDomain<AtomDomain<u32>>
impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f64>, QI> for VectorDomain<AtomDomain<u32>>
type InputMetric = LpDistance<2, QI>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f64, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f64>>>
source§impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f64>, QI> for VectorDomain<AtomDomain<u64>>
impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f64>, QI> for VectorDomain<AtomDomain<u64>>
type InputMetric = LpDistance<2, QI>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f64, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f64>>>
source§impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f64>, QI> for VectorDomain<AtomDomain<u8>>
impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f64>, QI> for VectorDomain<AtomDomain<u8>>
type InputMetric = LpDistance<2, QI>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f64, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f64>>>
source§impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f64>, QI> for VectorDomain<AtomDomain<usize>>
impl<QI: Number> GaussianDomain<ZeroConcentratedDivergence<f64>, QI> for VectorDomain<AtomDomain<usize>>
type InputMetric = LpDistance<2, QI>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f64, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f64>>>
source§impl GaussianDomain<ZeroConcentratedDivergence<f64>, f64> for AtomDomain<f64>
impl GaussianDomain<ZeroConcentratedDivergence<f64>, f64> for AtomDomain<f64>
type InputMetric = AbsoluteDistance<f64>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f64, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f64>>>
source§impl GaussianDomain<ZeroConcentratedDivergence<f64>, f64> for VectorDomain<AtomDomain<f64>>
impl GaussianDomain<ZeroConcentratedDivergence<f64>, f64> for VectorDomain<AtomDomain<f64>>
type InputMetric = LpDistance<2, f64>
fn make_gaussian( input_domain: Self, input_metric: Self::InputMetric, scale: f64, k: Option<i32> ) -> Fallible<Measurement<Self, Self::Carrier, Self::InputMetric, ZeroConcentratedDivergence<f64>>>
source§impl<MI, QO> GaussianMeasure<MI> for ZeroConcentratedDivergence<QO>
impl<MI, QO> GaussianMeasure<MI> for ZeroConcentratedDivergence<QO>
type Atom = QO
fn new_forward_map( scale: Self::Atom, relaxation: Self::Atom ) -> Fallible<PrivacyMap<MI, Self>>
source§impl<Q> Measure for ZeroConcentratedDivergence<Q>
impl<Q> Measure for ZeroConcentratedDivergence<Q>
Auto Trait Implementations§
impl<Q> Freeze for ZeroConcentratedDivergence<Q>
impl<Q> RefUnwindSafe for ZeroConcentratedDivergence<Q>
impl<Q> Send for ZeroConcentratedDivergence<Q>
impl<Q> Sync for ZeroConcentratedDivergence<Q>
impl<Q> Unpin for ZeroConcentratedDivergence<Q>
impl<Q> UnwindSafe for ZeroConcentratedDivergence<Q>
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<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self
from the equivalent element of its
superset. Read moresource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self
is actually part of its subset T
(and can be converted to it).source§unsafe fn to_subset_unchecked(&self) -> SS
unsafe fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset
but without any property checks. Always succeeds.source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self
to the equivalent element of its superset.