Move to point-mass-based convolution for the continuous-continuous case

This commit is contained in:
Sebastian Kosch 2020-06-26 23:48:54 -07:00
parent b368c2a8ee
commit f5ce4354ab

View File

@ -173,10 +173,6 @@ module Continuous = {
(); ();
}; };
Js.log2("Previous xyshape:", t |> getShape);
Js.log2("new pointmasssex", pointMassesX);
Js.log2("new pointmasssey", pointMassesY);
{ {
xyShape: { xyShape: {
xs: pointMassesX, xs: pointMassesX,
@ -364,7 +360,14 @@ module Continuous = {
let t1d = downsampleIfTooLarge(t1); let t1d = downsampleIfTooLarge(t1);
let t2d = downsampleIfTooLarge(t2); let t2d = downsampleIfTooLarge(t2);
convolveWithDiscrete(~downsample=false, fn, t1, toDiscretePointMasses(t2)); let t1m = toDiscretePointMasses(t1);
let t2m = toDiscretePointMasses(t2);
// then convolve the two as discrete distributions
let c = Discrete.convolve(fn, t1m, t2m);
// then convert back to an approximate pdf
// TODO: find an efficient way to do this (kernel densities? trapezoids?)
}; };
}; };