LimitedDomainCdf file
This commit is contained in:
parent
088a623bef
commit
089dfeeef2
33
src/LimitedDomainCdf.re
Normal file
33
src/LimitedDomainCdf.re
Normal file
|
@ -0,0 +1,33 @@
|
|||
type t = {
|
||||
distribution: Types.distribution,
|
||||
domainMaxX: float,
|
||||
};
|
||||
|
||||
let fromCdf = (cdf: Types.cdf, domainMaxX: float, probabilityAtMaxX: float) => {
|
||||
let distribution: Types.distribution = {
|
||||
xs: cdf.xs,
|
||||
ys: cdf.ys |> E.A.fmap(r => r *. probabilityAtMaxX),
|
||||
};
|
||||
{distribution, domainMaxX};
|
||||
};
|
||||
|
||||
let _lastElement = (a: array('a)) =>
|
||||
switch (Belt.Array.size(a)) {
|
||||
| 0 => None
|
||||
| n => Belt.Array.get(a, n)
|
||||
};
|
||||
|
||||
let probabilityBeforeDomainMax = (t: t) => _lastElement(t.distribution.ys);
|
||||
|
||||
let chanceByX = (t: t) => t.distribution;
|
||||
|
||||
let domainMaxX = (t: t) => t.domainMaxX;
|
||||
|
||||
let probabilityDistribution = (t: t) =>
|
||||
t.distribution |> CdfLibrary.Distribution.toPdf;
|
||||
|
||||
let probability = (t: t, xPoint: float) =>
|
||||
CdfLibrary.Distribution.findY(xPoint, probabilityDistribution(t));
|
||||
|
||||
let cumulativeProbability = (t: t, xPoint: float) =>
|
||||
CdfLibrary.Distribution.findY(xPoint, t.distribution);
|
|
@ -38,7 +38,7 @@ module Value = {
|
|||
| SelectSingle(r) => r |> ReasonReact.string
|
||||
| FloatCdf(r) =>
|
||||
let cdf: Types.distribution =
|
||||
CdfLibrary.Distribution.fromString(r, 1000);
|
||||
CdfLibrary.Distribution.fromString(r, 2000);
|
||||
<>
|
||||
<ForetoldComponents.CdfChart__Large
|
||||
cdf={Types.toComponentsDist(cdf)}
|
||||
|
|
|
@ -7,3 +7,11 @@ let toComponentsDist = (d: distribution): ForetoldComponents.Types.Dist.t => {
|
|||
xs: d.xs,
|
||||
ys: d.ys,
|
||||
};
|
||||
|
||||
type pdf = distribution;
|
||||
type cdf = distribution;
|
||||
|
||||
let foo = (b: pdf) => 3.9;
|
||||
let bar: cdf = {xs: [||], ys: [||]};
|
||||
|
||||
let cc = foo(bar);
|
Loading…
Reference in New Issue
Block a user