diff --git a/packages/squiggle-lang/src/rescript/Distributions/PointSetDist/Continuous.res b/packages/squiggle-lang/src/rescript/Distributions/PointSetDist/Continuous.res index 06c54040..6bcdd8ee 100644 --- a/packages/squiggle-lang/src/rescript/Distributions/PointSetDist/Continuous.res +++ b/packages/squiggle-lang/src/rescript/Distributions/PointSetDist/Continuous.res @@ -280,10 +280,7 @@ module T = Dist({ if referenceIsZero { Ok(0.0) } else { - E.R2.bind( - combinePointwise(PointSetDist_Scoring.LogScoring.multiply, reference), - combinePointwise(PointSetDist_Scoring.LogScoring.logScore, base, reference), - ) + combinePointwise(PointSetDist_Scoring.LogScoring.logScore, base, reference) |> E.R.fmap(shapeMap(XYShape.T.filterYValues(Js.Float.isFinite))) |> E.R.fmap(integralEndY) } diff --git a/packages/squiggle-lang/src/rescript/Distributions/PointSetDist/Discrete.res b/packages/squiggle-lang/src/rescript/Distributions/PointSetDist/Discrete.res index a74283dd..73d967f3 100644 --- a/packages/squiggle-lang/src/rescript/Distributions/PointSetDist/Discrete.res +++ b/packages/squiggle-lang/src/rescript/Distributions/PointSetDist/Discrete.res @@ -239,10 +239,9 @@ module T = Dist({ if referenceIsZero { Ok(0.0) } else { - E.R2.bind( - combinePointwise(~fn=PointSetDist_Scoring.LogScoring.multiply, reference), - combinePointwise(~fn=PointSetDist_Scoring.LogScoring.logScore, base, reference), - ) |> E.R2.bind(integralEndYResult) + combinePointwise(~fn=PointSetDist_Scoring.LogScoring.logScore, base, reference) |> E.R2.bind( + integralEndYResult, + ) } } }) diff --git a/packages/squiggle-lang/src/rescript/Distributions/PointSetDist/Mixed.res b/packages/squiggle-lang/src/rescript/Distributions/PointSetDist/Mixed.res index 0e528496..d79465e7 100644 --- a/packages/squiggle-lang/src/rescript/Distributions/PointSetDist/Mixed.res +++ b/packages/squiggle-lang/src/rescript/Distributions/PointSetDist/Mixed.res @@ -311,10 +311,9 @@ module T = Dist({ if referenceIsZero { Ok(0.0) } else { - E.R2.bind( - combinePointwise(PointSetDist_Scoring.LogScoring.multiply, reference), - combinePointwise(PointSetDist_Scoring.LogScoring.logScore, base, reference), - ) |> E.R.fmap(integralEndY) + combinePointwise(PointSetDist_Scoring.LogScoring.logScore, base, reference) |> E.R.fmap( + integralEndY, + ) } } }) diff --git a/packages/squiggle-lang/src/rescript/Distributions/PointSetDist/PointSetDist_Scoring.res b/packages/squiggle-lang/src/rescript/Distributions/PointSetDist/PointSetDist_Scoring.res index 2e5bb4ed..32a1a7b1 100644 --- a/packages/squiggle-lang/src/rescript/Distributions/PointSetDist/PointSetDist_Scoring.res +++ b/packages/squiggle-lang/src/rescript/Distributions/PointSetDist/PointSetDist_Scoring.res @@ -8,7 +8,7 @@ module LogScoring = { Error(Operation.DivisionByZeroError) } else { let quot = a /. b - quot < 0.0 ? Error(Operation.ComplexNumberError) : Ok(logFn(quot)) + quot < 0.0 ? Error(Operation.ComplexNumberError) : Ok(b *. logFn(quot)) } let multiply = (a: float, b: float): result => Ok(a *. b) }