uwmisl / puddle

A system for high-level, reliable programming of microfluidic devices
http://misl.cs.washington.edu/projects/puddle.html
MIT License
36 stars 10 forks source link

Add Error Simulation to the Core #30

Open michalpiszczek opened 6 years ago

michalpiszczek commented 6 years ago

Currently, running error experiments on the frontends exhibits weird behavior because the core only supports perfect (volume/2) splits.

It should be possible to specify the error profile of an entire session (or perhaps individual split calls) in the frontends, and have the Core exhibit that behavior.

Example: I want the split error factor to be drawn from N(1, 0.01). When I go to split a 1 volume droplet, and draw 1.2 as the error factor, both the frontend and backend should now see a droplet with volume=0.6 and a droplet with volume=0.4 (see https://github.com/michalpiszczek/puddle/blob/error/src/python/examples/error_dilution.py for the frontend behavior).

Notes:

mwillsey commented 6 years ago

4c9a41a at least adds splitting error.

https://github.com/uwmisl/puddle/blob/4c9a41a82be29f8f0452e7889a078b1240e9b694/src/python/tests/test_basic.py#L50