module DistPlusChart = { [@react.component] let make = (~distPlus: DistTypes.distPlus, ~onHover) => { open Distributions.DistPlus; // todo: Change to scaledContinuous and scaledDiscrete let discrete = distPlus |> T.toDiscrete; let continuous = distPlus |> T.toContinuous |> E.O.fmap(Distributions.Continuous.getShape); let minX = T.minX(distPlus); let maxX = T.maxX(distPlus); let timeScale = distPlus.unit |> DistTypes.DistributionUnit.toJson; ; }; }; module IntegralChart = { [@react.component] let make = (~distPlus: DistTypes.distPlus, ~onHover) => { open Distributions.DistPlus; let integral = Distributions.DistPlus.T.Integral.get(~cache=None, distPlus); let continuous = integral |> T.toContinuous |> E.O.fmap(Distributions.Continuous.getShape); let minX = T.minX(integral); let maxX = T.maxX(integral); let timeScale = distPlus.unit |> DistTypes.DistributionUnit.toJson; ; }; }; [@react.component] let make = (~distPlus: DistTypes.distPlus) => { let (x, setX) = React.useState(() => 0.); let chart = React.useMemo1( () => { {setX(_ => r)}} />}, [|distPlus|], ); let chart2 = React.useMemo1( () => { {setX(_ => r)}} />}, [|distPlus|], ); Js.log4( "distPlus", x, distPlus, distPlus |> Distributions.DistPlus.T.xToY(x), );
chart chart2
{"X Point" |> ReasonReact.string} {"Discrete Value" |> ReasonReact.string} {"Continuous Value" |> ReasonReact.string} {"Y Integral to Point" |> ReasonReact.string}
{x |> E.Float.toString |> ReasonReact.string} {distPlus |> Distributions.DistPlus.T.xToY(x) |> DistTypes.MixedPoint.toDiscreteValue |> E.Float.with2DigitsPrecision |> ReasonReact.string} {distPlus |> Distributions.DistPlus.T.xToY(x) |> DistTypes.MixedPoint.toContinuousValue |> E.Float.with2DigitsPrecision |> ReasonReact.string} {distPlus |> Distributions.DistPlus.T.Integral.xToY(~cache=None, x) |> E.Float.with2DigitsPrecision |> ReasonReact.string}
; };