Fix broken filter in Discrete.truncate; switch to epsilon_float in Continuous.truncate
This commit is contained in:
parent
5fb5d2639f
commit
9cdcc85d6c
|
@ -167,12 +167,10 @@ module T =
|
||||||
|> XYShape.T.zip
|
|> XYShape.T.zip
|
||||||
|> XYShape.Zipped.filterByX(x => x >= lc && x <= rc);
|
|> XYShape.Zipped.filterByX(x => x >= lc && x <= rc);
|
||||||
|
|
||||||
let eps = (t |> getShape |> XYShape.T.xTotalRange) *. 0.0001;
|
|
||||||
|
|
||||||
let leftNewPoint =
|
let leftNewPoint =
|
||||||
leftCutoff |> E.O.dimap(lc => [|(lc -. eps, 0.)|], _ => [||]);
|
leftCutoff |> E.O.dimap(lc => [|(lc -. epsilon_float, 0.)|], _ => [||]);
|
||||||
let rightNewPoint =
|
let rightNewPoint =
|
||||||
rightCutoff |> E.O.dimap(rc => [|(rc +. eps, 0.)|], _ => [||]);
|
rightCutoff |> E.O.dimap(rc => [|(rc +. epsilon_float, 0.)|], _ => [||]);
|
||||||
|
|
||||||
let truncatedZippedPairsWithNewPoints =
|
let truncatedZippedPairsWithNewPoints =
|
||||||
E.A.concatMany([|leftNewPoint, truncatedZippedPairs, rightNewPoint|]);
|
E.A.concatMany([|leftNewPoint, truncatedZippedPairs, rightNewPoint|]);
|
||||||
|
|
|
@ -203,7 +203,7 @@ module T =
|
||||||
|> XYShape.T.zip
|
|> XYShape.T.zip
|
||||||
|> XYShape.Zipped.filterByX(x =>
|
|> XYShape.Zipped.filterByX(x =>
|
||||||
x >= E.O.default(neg_infinity, leftCutoff)
|
x >= E.O.default(neg_infinity, leftCutoff)
|
||||||
|| x <= E.O.default(infinity, rightCutoff)
|
&& x <= E.O.default(infinity, rightCutoff)
|
||||||
)
|
)
|
||||||
|> XYShape.T.fromZippedArray;
|
|> XYShape.T.fromZippedArray;
|
||||||
|
|
||||||
|
|
|
@ -177,7 +177,7 @@ module Truncate = {
|
||||||
|
|
||||||
let truncateAsShape =
|
let truncateAsShape =
|
||||||
(evaluationParams: evaluationParams, leftCutoff, rightCutoff, t) => {
|
(evaluationParams: evaluationParams, leftCutoff, rightCutoff, t) => {
|
||||||
// TODO: use named args in renderToShape; if we're lucky we can at least get the tail
|
// TODO: use named args for xMin/xMax in renderToShape; if we're lucky we can at least get the tail
|
||||||
// of a distribution we otherwise wouldn't get at all
|
// of a distribution we otherwise wouldn't get at all
|
||||||
switch (render(evaluationParams, t)) {
|
switch (render(evaluationParams, t)) {
|
||||||
| Ok(`RenderedDist(rs)) =>
|
| Ok(`RenderedDist(rs)) =>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user