Reapplied truncation changes that previously fixed things
This commit is contained in:
parent
93f3e12adc
commit
56a9bda82a
|
@ -188,14 +188,13 @@ module Continuous = {
|
||||||
|
|
||||||
let truncate =
|
let truncate =
|
||||||
(leftCutoff: option(float), rightCutoff: option(float), t: t) => {
|
(leftCutoff: option(float), rightCutoff: option(float), t: t) => {
|
||||||
|
let lc = E.O.default(neg_infinity, leftCutoff);
|
||||||
|
let rc = E.O.default(infinity, rightCutoff);
|
||||||
let truncatedZippedPairs =
|
let truncatedZippedPairs =
|
||||||
t
|
t
|
||||||
|> getShape
|
|> getShape
|
||||||
|> XYShape.T.zip
|
|> XYShape.T.zip
|
||||||
|> XYShape.Zipped.filterByX(x =>
|
|> XYShape.Zipped.filterByX(x => x >= lc && x <= rc);
|
||||||
x >= E.O.default(neg_infinity, leftCutoff)
|
|
||||||
|| x <= E.O.default(infinity, rightCutoff)
|
|
||||||
);
|
|
||||||
|
|
||||||
let eps = (t |> getShape |> XYShape.T.xTotalRange) *. 0.0001;
|
let eps = (t |> getShape |> XYShape.T.xTotalRange) *. 0.0001;
|
||||||
|
|
||||||
|
@ -333,7 +332,12 @@ module Continuous = {
|
||||||
};
|
};
|
||||||
|
|
||||||
let combineAlgebraically =
|
let combineAlgebraically =
|
||||||
(~downsample=false, op: ExpressionTypes.algebraicOperation, t1: t, t2: t) => {
|
(
|
||||||
|
~downsample=false,
|
||||||
|
op: ExpressionTypes.algebraicOperation,
|
||||||
|
t1: t,
|
||||||
|
t2: t,
|
||||||
|
) => {
|
||||||
let s1 = t1 |> getShape;
|
let s1 = t1 |> getShape;
|
||||||
let s2 = t2 |> getShape;
|
let s2 = t2 |> getShape;
|
||||||
let t1n = s1 |> XYShape.T.length;
|
let t1n = s1 |> XYShape.T.length;
|
||||||
|
@ -342,7 +346,11 @@ module Continuous = {
|
||||||
empty;
|
empty;
|
||||||
} else {
|
} else {
|
||||||
let combinedShape =
|
let combinedShape =
|
||||||
AlgebraicShapeCombination.combineShapesContinuousContinuous(op, s1, s2);
|
AlgebraicShapeCombination.combineShapesContinuousContinuous(
|
||||||
|
op,
|
||||||
|
s1,
|
||||||
|
s2,
|
||||||
|
);
|
||||||
let combinedIntegralSum =
|
let combinedIntegralSum =
|
||||||
Common.combineIntegralSums(
|
Common.combineIntegralSums(
|
||||||
(a, b) => Some(a *. b),
|
(a, b) => Some(a *. b),
|
||||||
|
@ -840,7 +848,12 @@ module Mixed = {
|
||||||
});
|
});
|
||||||
|
|
||||||
let combineAlgebraically =
|
let combineAlgebraically =
|
||||||
(~downsample=false, op: ExpressionTypes.algebraicOperation, t1: t, t2: t)
|
(
|
||||||
|
~downsample=false,
|
||||||
|
op: ExpressionTypes.algebraicOperation,
|
||||||
|
t1: t,
|
||||||
|
t2: t,
|
||||||
|
)
|
||||||
: t => {
|
: t => {
|
||||||
// Discrete convolution can cause a huge increase in the number of samples,
|
// Discrete convolution can cause a huge increase in the number of samples,
|
||||||
// so we'll first downsample.
|
// so we'll first downsample.
|
||||||
|
|
|
@ -147,7 +147,7 @@ module Truncate = {
|
||||||
| Ok(`RenderedDist(rs)) => {
|
| Ok(`RenderedDist(rs)) => {
|
||||||
let truncatedShape =
|
let truncatedShape =
|
||||||
rs |> Distributions.Shape.T.truncate(leftCutoff, rightCutoff);
|
rs |> Distributions.Shape.T.truncate(leftCutoff, rightCutoff);
|
||||||
Ok(`RenderedDist(rs));
|
Ok(`RenderedDist(truncatedShape));
|
||||||
}
|
}
|
||||||
| Error(e1) => Error(e1)
|
| Error(e1) => Error(e1)
|
||||||
| _ => Error("Could not truncate distribution.")
|
| _ => Error("Could not truncate distribution.")
|
||||||
|
|
Loading…
Reference in New Issue
Block a user