pub struct ProductModel { /* private fields */ }Expand description
Implementation of the LogNormal price distribution model. The model takes the following expectations:
- the most popular price value
- the most popular price range
- the expected share of the popular price range of all prices (normally - 2/3 of all)
The model then finds the parameters of the LogNormal distribution that best fit the given expectations and uses these to sample prices for modeled products.
Implementations§
Source§impl ProductModel
impl ProductModel
The expected share of the popular price range of all prices (normally - 2/3 of all)
pub fn tolerance(&self) -> f64
Sourcepub fn pivot_price(&self) -> f64
pub fn pivot_price(&self) -> f64
The median price at which customer losts 1/2 of interest in the product, compared to the maximum.
Sourcepub fn interest_loss_rate(&self) -> f64
pub fn interest_loss_rate(&self) -> f64
The higher the value – the steeper the interest loss curve around the pivot price.
pub fn new() -> Arc<Self>
Sourcepub fn builder() -> ProductModelBuilder
pub fn builder() -> ProductModelBuilder
Creates a new builder for this struct.
Source§impl ProductModel
impl ProductModel
pub fn next_price(&self) -> f64
pub fn customer_interest(&self, price: f64) -> f64
pub fn supply_distribution( &self, expected_mean: f64, supplier_inaccuracy: f64, supplier_tardiness: f64, ) -> Result<SkewNormal<f64>>
Trait Implementations§
Source§impl Debug for ProductModel
impl Debug for ProductModel
Source§impl Default for ProductModel
impl Default for ProductModel
impl FXStruct for ProductModel
Auto Trait Implementations§
impl !Freeze for ProductModel
impl !RefUnwindSafe for ProductModel
impl Send for ProductModel
impl Sync for ProductModel
impl Unpin for ProductModel
impl !UnwindSafe for ProductModel
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> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::RequestSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
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§fn to_subset_unchecked(&self) -> SS
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.