Minor cleanup
This commit is contained in:
parent
089dfeeef2
commit
b85f2c8729
20
src/lib/Chart.re
Normal file
20
src/lib/Chart.re
Normal file
|
@ -0,0 +1,20 @@
|
|||
[@react.component]
|
||||
let make =
|
||||
(
|
||||
~data,
|
||||
~minX=None,
|
||||
~maxX=None,
|
||||
~width=300,
|
||||
~height=50,
|
||||
~color=`hex("7e9db7"),
|
||||
) =>
|
||||
<ForetoldComponents.CdfChart__Base
|
||||
width=0
|
||||
height
|
||||
?minX
|
||||
?maxX
|
||||
marginBottom=20
|
||||
showVerticalLine=false
|
||||
showDistributionLines=false
|
||||
primaryDistribution=data
|
||||
/>;
|
|
@ -40,10 +40,7 @@ module Value = {
|
|||
let cdf: Types.distribution =
|
||||
CdfLibrary.Distribution.fromString(r, 2000);
|
||||
<>
|
||||
<ForetoldComponents.CdfChart__Large
|
||||
cdf={Types.toComponentsDist(cdf)}
|
||||
width={Some(400)}
|
||||
/>
|
||||
<Chart data={cdf |> CdfLibrary.Distribution.toPdf |> Types.toJs} />
|
||||
{r |> ReasonReact.string}
|
||||
</>;
|
||||
| Probability(r) =>
|
||||
|
|
|
@ -3,6 +3,10 @@ type distribution = {
|
|||
ys: array(float),
|
||||
};
|
||||
|
||||
let toJs = (t: distribution) => {
|
||||
{"xs": t.xs, "ys": t.ys};
|
||||
};
|
||||
|
||||
let toComponentsDist = (d: distribution): ForetoldComponents.Types.Dist.t => {
|
||||
xs: d.xs,
|
||||
ys: d.ys,
|
||||
|
@ -15,3 +19,36 @@ let foo = (b: pdf) => 3.9;
|
|||
let bar: cdf = {xs: [||], ys: [||]};
|
||||
|
||||
let cc = foo(bar);
|
||||
|
||||
module LimitedDomainCdf = {
|
||||
type t = {
|
||||
distribution,
|
||||
domainMaxX: float,
|
||||
};
|
||||
|
||||
let fromCdf = (cdf: cdf, domainMaxX: float, probabilityAtMaxX: float) => {
|
||||
let distribution: 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);
|
||||
};
|
|
@ -44,7 +44,6 @@ const toPdf = (values, sampleCount, min, max) => {
|
|||
};
|
||||
|
||||
let run = (text, sampleCount, inputs=[], min=false, max=false) => {
|
||||
console.log(text);
|
||||
let [_error, item] = Guesstimator.parse({ text: "=" + text });
|
||||
const { parsedInput } = item;
|
||||
const { guesstimateType } = parsedInput;
|
||||
|
|
Loading…
Reference in New Issue
Block a user