Fixed mass-ratio of continuous vs. discrete
This commit is contained in:
parent
67ee34d821
commit
a940fa30b7
|
@ -24,7 +24,7 @@ let distributions = () =>
|
||||||
<h2> {"Single-Discrete" |> ReasonReact.string} </h2>
|
<h2> {"Single-Discrete" |> ReasonReact.string} </h2>
|
||||||
{setup(
|
{setup(
|
||||||
DistPlusIngredients.make(
|
DistPlusIngredients.make(
|
||||||
~guesstimatorString="mm(5 to 20, floor(normal(20,2)), [.5, .05])",
|
~guesstimatorString="mm(5 to 20, floor(normal(20,2)), [.5, .5])",
|
||||||
~domain=Complete,
|
~domain=Complete,
|
||||||
(),
|
(),
|
||||||
),
|
),
|
||||||
|
|
|
@ -77,6 +77,9 @@ let make = (~distPlus: DistTypes.distPlus) => {
|
||||||
<th className="px-4 py-2">
|
<th className="px-4 py-2">
|
||||||
{"Y Integral to Point" |> ReasonReact.string}
|
{"Y Integral to Point" |> ReasonReact.string}
|
||||||
</th>
|
</th>
|
||||||
|
<th className="px-4 py-2">
|
||||||
|
{"Y Integral Total" |> ReasonReact.string}
|
||||||
|
</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
@ -104,12 +107,73 @@ let make = (~distPlus: DistTypes.distPlus) => {
|
||||||
|> E.Float.with2DigitsPrecision
|
|> E.Float.with2DigitsPrecision
|
||||||
|> ReasonReact.string}
|
|> ReasonReact.string}
|
||||||
</th>
|
</th>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<table className="table-auto">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th className="px-4 py-2">
|
||||||
|
{"Y Integral Total" |> ReasonReact.string}
|
||||||
|
</th>
|
||||||
|
<th className="px-4 py-2">
|
||||||
|
{"Continuous Total" |> ReasonReact.string}
|
||||||
|
</th>
|
||||||
|
<th className="px-4 py-2">
|
||||||
|
{"Scaled Continuous Total" |> ReasonReact.string}
|
||||||
|
</th>
|
||||||
|
<th className="px-4 py-2">
|
||||||
|
{"Discrete Total" |> ReasonReact.string}
|
||||||
|
</th>
|
||||||
|
<th className="px-4 py-2">
|
||||||
|
{"Scaled Discrete Total" |> ReasonReact.string}
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
<th className="px-4 py-2 border ">
|
<th className="px-4 py-2 border ">
|
||||||
{distPlus
|
{distPlus
|
||||||
|> Distributions.DistPlus.T.Integral.sum(~cache=None)
|
|> Distributions.DistPlus.T.Integral.sum(~cache=None)
|
||||||
|> E.Float.with2DigitsPrecision
|
|> E.Float.with2DigitsPrecision
|
||||||
|> ReasonReact.string}
|
|> ReasonReact.string}
|
||||||
</th>
|
</th>
|
||||||
|
<th className="px-4 py-2 border ">
|
||||||
|
{distPlus
|
||||||
|
|> Distributions.DistPlus.T.toContinuous
|
||||||
|
|> E.O.fmap(
|
||||||
|
Distributions.Continuous.T.Integral.sum(~cache=None),
|
||||||
|
)
|
||||||
|
|> E.O.fmap(E.Float.with2DigitsPrecision)
|
||||||
|
|> E.O.default("")
|
||||||
|
|> ReasonReact.string}
|
||||||
|
</th>
|
||||||
|
<th className="px-4 py-2 border ">
|
||||||
|
{distPlus
|
||||||
|
|> Distributions.DistPlus.T.toScaledContinuous
|
||||||
|
|> E.O.fmap(
|
||||||
|
Distributions.Continuous.T.Integral.sum(~cache=None),
|
||||||
|
)
|
||||||
|
|> E.O.fmap(E.Float.with2DigitsPrecision)
|
||||||
|
|> E.O.default("")
|
||||||
|
|> ReasonReact.string}
|
||||||
|
</th>
|
||||||
|
<th className="px-4 py-2 border ">
|
||||||
|
{distPlus
|
||||||
|
|> Distributions.DistPlus.T.toDiscrete
|
||||||
|
|> E.O.fmap(Distributions.Discrete.T.Integral.sum(~cache=None))
|
||||||
|
|> E.O.fmap(E.Float.with2DigitsPrecision)
|
||||||
|
|> E.O.default("")
|
||||||
|
|> ReasonReact.string}
|
||||||
|
</th>
|
||||||
|
<th className="px-4 py-2 border ">
|
||||||
|
{distPlus
|
||||||
|
|> Distributions.DistPlus.T.toScaledDiscrete
|
||||||
|
|> E.O.fmap(Distributions.Discrete.T.Integral.sum(~cache=None))
|
||||||
|
|> E.O.fmap(E.Float.with2DigitsPrecision)
|
||||||
|
|> E.O.default("")
|
||||||
|
|> ReasonReact.string}
|
||||||
|
</th>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
|
@ -191,21 +191,6 @@ module Mixed = {
|
||||||
discreteProbabilityMassFraction,
|
discreteProbabilityMassFraction,
|
||||||
};
|
};
|
||||||
|
|
||||||
let clean = (t: DistTypes.mixedShape): option(DistTypes.shape) => {
|
|
||||||
switch (t) {
|
|
||||||
| {
|
|
||||||
continuous: {xyShape: {xs: [||], ys: [||]}},
|
|
||||||
discrete: {xs: [||], ys: [||]},
|
|
||||||
} =>
|
|
||||||
None
|
|
||||||
| {continuous, discrete: {xs: [||], ys: [||]}} =>
|
|
||||||
Some(Continuous(continuous))
|
|
||||||
| {continuous: {xyShape: {xs: [||], ys: [||]}}, discrete} =>
|
|
||||||
Some(Discrete(discrete))
|
|
||||||
| shape => Some(Mixed(shape))
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
// todo: Put into scaling module
|
// todo: Put into scaling module
|
||||||
let scaleDiscreteFn =
|
let scaleDiscreteFn =
|
||||||
({discreteProbabilityMassFraction}: DistTypes.mixedShape, f) =>
|
({discreteProbabilityMassFraction}: DistTypes.mixedShape, f) =>
|
||||||
|
|
|
@ -21,16 +21,21 @@ let buildSimple = (~continuous, ~discrete): option(DistTypes.shape) => {
|
||||||
Distributions.Discrete.T.Integral.sum(~cache=None, discrete);
|
Distributions.Discrete.T.Integral.sum(~cache=None, discrete);
|
||||||
let discrete =
|
let discrete =
|
||||||
Distributions.Discrete.T.scaleToIntegralSum(~intendedSum=1.0, discrete);
|
Distributions.Discrete.T.scaleToIntegralSum(~intendedSum=1.0, discrete);
|
||||||
let foobar =
|
let continuous =
|
||||||
|
Distributions.Continuous.T.scaleToIntegralSum(
|
||||||
|
~intendedSum=1.0,
|
||||||
|
continuous,
|
||||||
|
);
|
||||||
|
let mixedDist =
|
||||||
Distributions.Mixed.make(
|
Distributions.Mixed.make(
|
||||||
~continuous,
|
~continuous,
|
||||||
~discrete,
|
~discrete,
|
||||||
~discreteProbabilityMassFraction,
|
~discreteProbabilityMassFraction,
|
||||||
)
|
);
|
||||||
|> Distributions.Mixed.clean;
|
Some(Mixed(mixedDist));
|
||||||
foobar;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
let build = (~continuous, ~discrete, ~assumptions) =>
|
let build = (~continuous, ~discrete, ~assumptions) =>
|
||||||
switch (assumptions) {
|
switch (assumptions) {
|
||||||
| {
|
| {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user