Well, it compiles and is half stubbed.
Merge branch 'dev' into 318-placement-specific-mask
Implementing the gmix part of the placement mask

@nhoffman-- here ya go. I'd suggest submitting it to a little "lightweight" testing before going for the full Monty.
Thank you!
Merge branch 'dev' into 318-placement-specific-mask
Fixing some sloppy bugs.

Should help with #328.
Adding a little test for mat_masked_logdot.
Another unit test and corresponding bugfix.
Funrolling the innermost loop.
Comments.
A little reorganization in core.ml & comments.

More clearly separating between masked and non-masked versions.
Stubbing out the site_map.
Initial implementation of mask_reindex.
Comments and tweak.
Only giving a reind_arr when it is needed.

A bit more complicated, but logically more satisfactory, and paves the
way for fewer matrix exponentiations.

@nhoffman-- Could you give this one a spin? I'd be interested in a speed
comparison (though that is of course secondary).
Merge branch 'cat-rate-integrity' into 318-placement-specific-mask

@nhoffman-- here you go. It would be fun if you could keep the old
simulation results around.
Specifying how the new masking works and why.
Tidying.
Made things faster, I think.

@nhoffman -- sorry to give you another to test, but I realized this
should make things faster.
Final commit for branch 318.
Merge pull request #332 from matsen/318-placement-specific-mask

Merge 318-placement-specific-mask.