// Examples: // mm(floor(uniform(30,35)), normal(50,20), [.25,.5]) // mm(floor(normal(28,4)), normal(32,2), uniform(20,24), [.5,.2,.1]) // mm(5 to 20, floor(normal(20,2)), [.5, .5])" // floor(3 to 4) // uniform(0,1) > 0.3 ? lognormal(6.652, -0.41): 0 let timeDist = DistPlusIngredients.make( ~guesstimatorString="(floor(10 to 15))", ~domain=RightLimited({xPoint: 50.0, excludingProbabilityMass: 0.3}), ~unit= DistTypes.TimeDistribution({zero: MomentRe.momentNow(), unit: `years}), (), ); let setup = dist => dist |> DistPlusIngredients.toDistPlus( ~sampleCount=10000, ~outputXYPoints=2000, ~truncateTo=Some(1000), ) |> E.O.React.fmapOrNull(distPlus => ); let distributions = () =>

{"Initial Section" |> ReasonReact.string}

{"Continuous" |> ReasonReact.string}

{setup(DistPlusIngredients.make(~guesstimatorString="5 to 20", ()))}

{"Discrete" |> ReasonReact.string}

{setup( DistPlusIngredients.make(~guesstimatorString="floor(10 to 20)", ()), )}

{"Mixed" |> ReasonReact.string}

{setup( DistPlusIngredients.make( ~guesstimatorString="mm(5 to 20, floor(20 to 30), [.5,.5])", (), ), )}

{"Over Time" |> ReasonReact.string}

{"Continuous" |> ReasonReact.string}

{setup( DistPlusIngredients.make( ~guesstimatorString="5 to 20", ~unit=TimeDistribution({zero: MomentRe.momentNow(), unit: `years}), (), ), )}

{"Discrete" |> ReasonReact.string}

{setup( DistPlusIngredients.make( ~guesstimatorString="floor(10 to 20)", ~unit=TimeDistribution({zero: MomentRe.momentNow(), unit: `years}), (), ), )}

{"Mixed" |> ReasonReact.string}

{setup( DistPlusIngredients.make( ~guesstimatorString="mm(5 to 20, floor(20 to 30), [.5,.5])", ~unit=TimeDistribution({zero: MomentRe.momentNow(), unit: `years}), (), ), )}
; let entry = EntryTypes.(entry(~title="Pdf", ~render=distributions));