Fix convolution for negative multiplication

This commit is contained in:
Sam Nolan 2022-04-23 17:48:00 -04:00
parent 296bc44a0d
commit 8cb138b84a

View File

@ -230,13 +230,12 @@ let combineShapesContinuousDiscrete = (
i, i,
( (
fn(continuousShape.xs[i], discreteShape.xs[j]), fn(continuousShape.xs[i], discreteShape.xs[j]),
continuousShape.ys[i] *. discreteShape.ys[j] /. discreteShape.xs[j], continuousShape.ys[i] *. discreteShape.ys[j] /. Js.Math.abs_float(discreteShape.xs[j]),
), ),
) |> ignore ) |> ignore
() ()
} }
Belt.Array.set(outXYShapes, j, dxyShape) |> ignore Belt.Array.set(outXYShapes, j, dxyShape) |> ignore
()
} }
} }
@ -244,12 +243,11 @@ let combineShapesContinuousDiscrete = (
|> E.A.fmap(XYShape.T.fromZippedArray) |> E.A.fmap(XYShape.T.fromZippedArray)
|> E.A.fold_left( |> E.A.fold_left(
(acc, x) => (acc, x) =>
XYShape.PointwiseCombination.combine( XYShape.PointwiseCombination.addCombine(
(a, b) => Ok(a +. b),
XYShape.XtoY.continuousInterpolator(#Linear, #UseZero), XYShape.XtoY.continuousInterpolator(#Linear, #UseZero),
acc, acc,
x, x,
)->E.R.toExn("Error, unexpected failure", _), ),
XYShape.T.empty, XYShape.T.empty,
) )
} }