pub struct HyperBallBuilder<'a, G1: RandomAccessGraph + Sync, G2: RandomAccessGraph + Sync, D: Succ<Input = usize, Output = usize>, L: MergeEstimationLogic<Item = G1::Label>, A: EstimatorArrayMut<L>> { /* private fields */ }
Expand description
A builder for HyperBall
.
After creating a builder with HyperBallBuilder::new
you can configure it
using setters such as HyperBallBuilder
its methods, then call
HyperBallBuilder::build
on it to create a HyperBall
instance.
Implementations§
Source§impl<'a, G1: RandomAccessGraph + Sync, G2: RandomAccessGraph + Sync, D: Succ<Input = usize, Output = usize>> HyperBallBuilder<'a, G1, G2, D, HyperLogLog<G1::Label, BuildHasherDefault<DefaultHasher>, usize>, SliceEstimatorArray<HyperLogLog<G1::Label, BuildHasherDefault<DefaultHasher>, usize>, usize, Box<[usize]>>>
impl<'a, G1: RandomAccessGraph + Sync, G2: RandomAccessGraph + Sync, D: Succ<Input = usize, Output = usize>> HyperBallBuilder<'a, G1, G2, D, HyperLogLog<G1::Label, BuildHasherDefault<DefaultHasher>, usize>, SliceEstimatorArray<HyperLogLog<G1::Label, BuildHasherDefault<DefaultHasher>, usize>, usize, Box<[usize]>>>
Sourcepub fn with_hyper_log_log(
graph: &'a G1,
transposed: Option<&'a G2>,
cumul_outdeg: &'a D,
log2m: usize,
weights: Option<&'a [usize]>,
) -> Result<Self>
pub fn with_hyper_log_log( graph: &'a G1, transposed: Option<&'a G2>, cumul_outdeg: &'a D, log2m: usize, weights: Option<&'a [usize]>, ) -> Result<Self>
A builder for HyperBall
using a specified EstimationLogic
.
§Arguments
graph
: the graph to analyze.transpose
: optionally, the transpose ofgraph
. IfNone
, no systolic iterations will be performed by the resultingHyperBall
.cumul_outdeg
: the outdegree cumulative function of the graph.log2m
: the base-2 logarithm of the number m of register per HyperLogLog cardinality estimator.weights
: the weights to use. IfNone
every node is assumed to be of weight equal to 1.
Source§impl<'a, D: Succ<Input = usize, Output = usize>, G: RandomAccessGraph + Sync, L: MergeEstimationLogic<Item = G::Label> + PartialEq, A: EstimatorArrayMut<L>> HyperBallBuilder<'a, G, G, D, L, A>
impl<'a, D: Succ<Input = usize, Output = usize>, G: RandomAccessGraph + Sync, L: MergeEstimationLogic<Item = G::Label> + PartialEq, A: EstimatorArrayMut<L>> HyperBallBuilder<'a, G, G, D, L, A>
Sourcepub fn new(graph: &'a G, cumul_outdeg: &'a D, array_0: A, array_1: A) -> Self
pub fn new(graph: &'a G, cumul_outdeg: &'a D, array_0: A, array_1: A) -> Self
Creates a new builder with default parameters.
§Arguments
graph
: the graph to analyze.cumul_outdeg
: the outdegree cumulative function of the graph.array_0
: a first array of estimators.array_1
: A second array of estimators of the same length and with the same logic ofarray_0
.
Source§impl<'a, G1: RandomAccessGraph + Sync, G2: RandomAccessGraph + Sync, D: Succ<Input = usize, Output = usize>, L: MergeEstimationLogic<Item = G1::Label>, A: EstimatorArrayMut<L>> HyperBallBuilder<'a, G1, G2, D, L, A>
impl<'a, G1: RandomAccessGraph + Sync, G2: RandomAccessGraph + Sync, D: Succ<Input = usize, Output = usize>, L: MergeEstimationLogic<Item = G1::Label>, A: EstimatorArrayMut<L>> HyperBallBuilder<'a, G1, G2, D, L, A>
Sourcepub fn with_transpose(
graph: &'a G1,
transpose: &'a G2,
cumul_outdeg: &'a D,
array_0: A,
array_1: A,
) -> Self
pub fn with_transpose( graph: &'a G1, transpose: &'a G2, cumul_outdeg: &'a D, array_0: A, array_1: A, ) -> Self
Creates a new builder with default parameters using also the transpose.
graph
: the graph to analyze.transpose
: optionally, the transpose ofgraph
. IfNone
, no systolic iterations will be performed by the resultingHyperBall
.cumul_outdeg
: the outdegree cumulative function of the graph.array_0
: a first array of estimators.array_1
: A second array of estimators of the same length and with the same logic ofarray_0
.
Sourcepub fn sum_of_distances(self, do_sum_of_distances: bool) -> Self
pub fn sum_of_distances(self, do_sum_of_distances: bool) -> Self
Sets whether to compute the sum of distances.
Sourcepub fn sum_of_inverse_distances(self, do_sum_of_inverse_distances: bool) -> Self
pub fn sum_of_inverse_distances(self, do_sum_of_inverse_distances: bool) -> Self
Sets whether to compute the sum of inverse distances.
Sourcepub fn granularity(self, granularity: Granularity) -> Self
pub fn granularity(self, granularity: Granularity) -> Self
Sets the base granularity used in the parallel phases of the iterations.
Sourcepub fn discount_function(
self,
discount_function: impl Fn(usize) -> f64 + Sync + 'a,
) -> Self
pub fn discount_function( self, discount_function: impl Fn(usize) -> f64 + Sync + 'a, ) -> Self
Adds a new discount function whose sum over all spheres should be computed.
Sourcepub fn no_discount_function(self) -> Self
pub fn no_discount_function(self) -> Self
Removes all custom discount functions.
Source§impl<'a, G1: RandomAccessGraph + Sync, G2: RandomAccessGraph + Sync, D: Succ<Input = usize, Output = usize>, L: MergeEstimationLogic<Item = G1::Label> + Sync + Display, A: EstimatorArrayMut<L>> HyperBallBuilder<'a, G1, G2, D, L, A>
impl<'a, G1: RandomAccessGraph + Sync, G2: RandomAccessGraph + Sync, D: Succ<Input = usize, Output = usize>, L: MergeEstimationLogic<Item = G1::Label> + Sync + Display, A: EstimatorArrayMut<L>> HyperBallBuilder<'a, G1, G2, D, L, A>
Auto Trait Implementations§
impl<'a, G1, G2, D, L, A> Freeze for HyperBallBuilder<'a, G1, G2, D, L, A>where
A: Freeze,
impl<'a, G1, G2, D, L, A> !RefUnwindSafe for HyperBallBuilder<'a, G1, G2, D, L, A>
impl<'a, G1, G2, D, L, A> !Send for HyperBallBuilder<'a, G1, G2, D, L, A>
impl<'a, G1, G2, D, L, A> Sync for HyperBallBuilder<'a, G1, G2, D, L, A>
impl<'a, G1, G2, D, L, A> Unpin for HyperBallBuilder<'a, G1, G2, D, L, A>
impl<'a, G1, G2, D, L, A> !UnwindSafe for HyperBallBuilder<'a, G1, G2, D, L, A>
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, U> CastableInto<U> for Twhere
U: CastableFrom<T>,
impl<T, U> CastableInto<U> for Twhere
U: CastableFrom<T>,
Source§impl<T, U> CastableInto<U> for Twhere
U: CastableFrom<T>,
impl<T, U> CastableInto<U> for Twhere
U: CastableFrom<T>,
Source§impl<T> DowncastableFrom<T> for T
impl<T> DowncastableFrom<T> for T
Source§fn downcast_from(value: T) -> T
fn downcast_from(value: T) -> T
Truncate the current UnsignedInt to a possibly smaller size
Source§impl<T> DowncastableFrom<T> for T
impl<T> DowncastableFrom<T> for T
Source§fn downcast_from(value: T) -> T
fn downcast_from(value: T) -> T
Truncate the current UnsignedInt to a possibly smaller size
Source§impl<T, U> DowncastableInto<U> for Twhere
U: DowncastableFrom<T>,
impl<T, U> DowncastableInto<U> for Twhere
U: DowncastableFrom<T>,
Source§impl<T, U> DowncastableInto<U> for Twhere
U: DowncastableFrom<T>,
impl<T, U> DowncastableInto<U> for Twhere
U: DowncastableFrom<T>,
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> UpcastableFrom<T> for T
impl<T> UpcastableFrom<T> for T
Source§fn upcast_from(value: T) -> T
fn upcast_from(value: T) -> T
Extend the current UnsignedInt to a possibly bigger size.
Source§impl<T> UpcastableFrom<T> for T
impl<T> UpcastableFrom<T> for T
Source§fn upcast_from(value: T) -> T
fn upcast_from(value: T) -> T
Extend the current UnsignedInt to a possibly bigger size.