RE #2, I helped develop CCM as a contract worker (I’m not contracted with RP currently) and I had the same thought while we were working on it. The reason we didn’t do it is that implementing good numeric integration is non-trivial and we didn’t have the capacity for it.
I ended up implementing analytic and numeric methods in my spare time after CCM launched. (Nobody can tell me I’m wasting my time if they’re not paying me!) Doing analytic simplifications was pretty easy, numeric methods were much harder. I put the code in a fork of Squigglepy here: https://github.com/michaeldickens/squigglepy/tree/analytic-numeric
Numeric methods are difficult because if you want to support arbitrary distributions, you need to handle a lot of edge cases. I wrote a bunch of comments in the code (mainly in this file) about why it’s hard.
I did get the code to work on a wide variety of unit tests and a couple of integration tests but I haven’t tried getting CCM to run on top of it. Refactoring CCM would take a long time because a ton of CCM code relies on the assumption that distributions are represented as Monte Carlo samples.
Cool, great you had a go at this! I have not had a look at your new code yet (and am not sure I will) but if I do and I have further comments I will let you know :)
RE #2, I helped develop CCM as a contract worker (I’m not contracted with RP currently) and I had the same thought while we were working on it. The reason we didn’t do it is that implementing good numeric integration is non-trivial and we didn’t have the capacity for it.
I ended up implementing analytic and numeric methods in my spare time after CCM launched. (Nobody can tell me I’m wasting my time if they’re not paying me!) Doing analytic simplifications was pretty easy, numeric methods were much harder. I put the code in a fork of Squigglepy here: https://github.com/michaeldickens/squigglepy/tree/analytic-numeric
Numeric methods are difficult because if you want to support arbitrary distributions, you need to handle a lot of edge cases. I wrote a bunch of comments in the code (mainly in this file) about why it’s hard.
I did get the code to work on a wide variety of unit tests and a couple of integration tests but I haven’t tried getting CCM to run on top of it. Refactoring CCM would take a long time because a ton of CCM code relies on the assumption that distributions are represented as Monte Carlo samples.
Cool, great you had a go at this! I have not had a look at your new code yet (and am not sure I will) but if I do and I have further comments I will let you know :)