I'm confused as to what's in this commit now. A whole mess of unrelated stuff
Sometimes p is close enough to 0 that log1p is 0 even if p is not. Always return 0 in these cases
Add a strategy for producing booleans.
convert to float before division due to sometimes getting an int passed in and being confusing when that happens