Clean up types from Samples.re
This commit is contained in:
parent
d2a17f9f1a
commit
9b7f2f246d
|
@ -61,16 +61,10 @@ let combineShapesUsingSampling =
|
|||
samples
|
||||
|> E.O.fmap(
|
||||
Samples.T.fromSamples(
|
||||
~samplingInputs={
|
||||
sampleCount:
|
||||
Some(evaluationParams.samplingInputs.sampleCount),
|
||||
outputXYPoints:
|
||||
Some(evaluationParams.samplingInputs.outputXYPoints),
|
||||
kernelWidth: evaluationParams.samplingInputs.kernelWidth,
|
||||
},
|
||||
~samplingInputs=evaluationParams.samplingInputs,
|
||||
),
|
||||
)
|
||||
|> E.O.bind(_, (r) => r.shape)
|
||||
|> E.O.bind(_, r => r.shape)
|
||||
|> E.O.toResult("No response");
|
||||
shape |> E.R.fmap(r => `Normalize(`RenderedDist(r)));
|
||||
},
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
// TODO: This setup is more confusing than it should be, there's more work to do in cleanup here.
|
||||
|
||||
module Inputs = {
|
||||
let defaultRecommendedLength = 10000;
|
||||
let defaultShouldDownsample = true;
|
||||
|
@ -30,9 +29,15 @@ module Inputs = {
|
|||
recommendedLength: int,
|
||||
inputVariables: Belt.Map.String.t(ExpressionTypes.ExpressionTree.node),
|
||||
};
|
||||
let empty: RenderTypes.ShapeRenderer.Sampling.inputs = {
|
||||
sampleCount: None,
|
||||
outputXYPoints: None,
|
||||
kernelWidth: None,
|
||||
};
|
||||
|
||||
let make =
|
||||
(
|
||||
~samplingInputs=RenderTypes.ShapeRenderer.Sampling.Inputs.empty,
|
||||
~samplingInputs=empty,
|
||||
~recommendedLength=defaultRecommendedLength,
|
||||
~distPlusIngredients,
|
||||
~inputVariables=[||]->Belt.Map.String.fromArray,
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
module MS = Belt.Map.String;
|
||||
|
||||
module ShapeRenderer = {
|
||||
module Sampling = {
|
||||
type inputs = {
|
||||
|
@ -7,27 +5,12 @@ module ShapeRenderer = {
|
|||
outputXYPoints: option(int),
|
||||
kernelWidth: option(float),
|
||||
};
|
||||
module Inputs = {
|
||||
let defaultSampleCount = 10000;
|
||||
let defaultOutputXYPoints = 10000;
|
||||
let empty = {
|
||||
sampleCount: None,
|
||||
outputXYPoints: None,
|
||||
kernelWidth: None,
|
||||
};
|
||||
|
||||
type fInputs = {
|
||||
sampleCount: int,
|
||||
outputXYPoints: int,
|
||||
kernelWidth: option(float),
|
||||
};
|
||||
let toF = (i: inputs): fInputs => {
|
||||
sampleCount: i.sampleCount |> E.O.default(defaultSampleCount),
|
||||
outputXYPoints:
|
||||
i.outputXYPoints |> E.O.default(defaultOutputXYPoints),
|
||||
kernelWidth: i.kernelWidth,
|
||||
};
|
||||
};
|
||||
let defaults = {
|
||||
sampleCount: Some(10000),
|
||||
outputXYPoints: Some(1000),
|
||||
kernelWidth: None
|
||||
}
|
||||
};
|
||||
|
||||
module Symbolic = {
|
||||
|
|
|
@ -1,13 +1,4 @@
|
|||
module Types = {
|
||||
let defaultSampleCount = 5000;
|
||||
let defaultOutputXYPoints = 10000;
|
||||
|
||||
type inputs = {
|
||||
sampleCount: option(int),
|
||||
outputXYPoints: option(int),
|
||||
kernelWidth: option(float),
|
||||
};
|
||||
|
||||
type samplingStats = {
|
||||
sampleCount: int,
|
||||
outputXYPoints: int,
|
||||
|
@ -21,20 +12,6 @@ module Types = {
|
|||
continuousParseParams: option(samplingStats),
|
||||
shape: option(DistTypes.shape),
|
||||
};
|
||||
|
||||
let empty = {sampleCount: None, outputXYPoints: None, kernelWidth: None};
|
||||
|
||||
type fInputs = {
|
||||
sampleCount: int,
|
||||
outputXYPoints: int,
|
||||
kernelWidth: option(float),
|
||||
};
|
||||
|
||||
let toF = (i: inputs): fInputs => {
|
||||
sampleCount: i.sampleCount |> E.O.default(defaultSampleCount),
|
||||
outputXYPoints: i.outputXYPoints |> E.O.default(defaultOutputXYPoints),
|
||||
kernelWidth: i.kernelWidth,
|
||||
};
|
||||
};
|
||||
|
||||
module JS = {
|
||||
|
@ -112,12 +89,7 @@ module T = {
|
|||
KDE.normalSampling(samples, outputXYPoints, width);
|
||||
};
|
||||
|
||||
let toShape =
|
||||
(
|
||||
~samples: t,
|
||||
~samplingInputs: Types.fInputs,
|
||||
(),
|
||||
) => {
|
||||
let toShape = (~samples: t, ~samplingInputs: ExpressionTypes.ExpressionTree.samplingInputs, ()) => {
|
||||
Array.fast_sort(compare, samples);
|
||||
let (continuousPart, discretePart) = E.A.Sorted.Floats.split(samples);
|
||||
let length = samples |> E.A.length |> float_of_int;
|
||||
|
@ -143,7 +115,7 @@ module T = {
|
|||
samplingInputs.outputXYPoints,
|
||||
usedWidth,
|
||||
);
|
||||
let foo: Types.samplingStats = {
|
||||
let samplingStats: Types.samplingStats = {
|
||||
sampleCount: samplingInputs.sampleCount,
|
||||
outputXYPoints: samplingInputs.outputXYPoints,
|
||||
bandwidthXSuggested: _suggestedXWidth,
|
||||
|
@ -158,28 +130,25 @@ module T = {
|
|||
formatUnitWidth(usedUnitWidth),
|
||||
)
|
||||
|> Continuous.make
|
||||
|> (r => Some((r, foo)));
|
||||
|> (r => Some((r, samplingStats)));
|
||||
}
|
||||
: None;
|
||||
|
||||
let shape =
|
||||
MixedShapeBuilder.buildSimple(
|
||||
~continuous=pdf |> E.O.fmap(fst),
|
||||
~discrete=Some(discrete),
|
||||
);
|
||||
|
||||
let samplesParse: Types.outputs = {
|
||||
continuousParseParams: pdf |> E.O.fmap(snd),
|
||||
shape,
|
||||
};
|
||||
|
||||
samplesParse;
|
||||
};
|
||||
|
||||
let fromSamples =
|
||||
(
|
||||
~samplingInputs=Types.empty,
|
||||
samples,
|
||||
) => {
|
||||
let samplingInputs =
|
||||
Types.toF(samplingInputs);
|
||||
let fromSamples = (~samplingInputs, samples) => {
|
||||
toShape(~samples, ~samplingInputs, ());
|
||||
};
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue
Block a user