Fixed issue with mixed distributions
This commit is contained in:
parent
0ef6d106ea
commit
88358470e3
|
@ -100,9 +100,9 @@ module T = {
|
|||
|> E.FloatFloatMap.toArray
|
||||
|> XYShape.T.fromZippedArray;
|
||||
let pdf: DistTypes.xyShape =
|
||||
continuousPart |> E.A.length > 20
|
||||
continuousPart |> E.A.length > 5
|
||||
? {
|
||||
samples |> KDE.normalSampling(_, outputXYPoints, kernelWidth);
|
||||
continuousPart |> KDE.normalSampling(_, outputXYPoints, kernelWidth);
|
||||
}
|
||||
: {xs: [||], ys: [||]};
|
||||
let continuous = pdf |> Distributions.Continuous.make(`Linear);
|
||||
|
|
|
@ -156,14 +156,17 @@ module MathAdtToDistDst = {
|
|||
args
|
||||
|> E.A.fmap(
|
||||
fun
|
||||
| Ok(`Simple(n)) => Some(n)
|
||||
| _ => None,
|
||||
| Ok(`Simple(n)) => Ok(n)
|
||||
| Error(e) => Error(e)
|
||||
| _ => Error("Type not supported"),
|
||||
)
|
||||
|> E.A.O.concatSomes;
|
||||
switch (dists |> E.A.length) {
|
||||
| 0 => Error("Multimodals need at least one input")
|
||||
let firstWithError = dists |> Belt.Array.getBy(_, Belt.Result.isError);
|
||||
let withoutErrors = dists |> E.A.fmap(E.R.toOption) |> E.A.O.concatSomes;
|
||||
switch (firstWithError ) {
|
||||
| (Some(Error(e))) => Error(e)
|
||||
| (None) when (withoutErrors |> E.A.length == 0) => Error("Multimodals need at least one input")
|
||||
| _ =>
|
||||
dists
|
||||
withoutErrors
|
||||
|> E.A.fmapi((index, item) =>
|
||||
(item, weights |> E.A.get(_, index) |> E.O.default(1.0))
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue
Block a user