Many API fixes
This release addresses several lingering API issues in fwdpp. It also breaks API compatibility for multi-locus simulations, but it also makes them more flexible.
- Issue #51 resolved.
- API issue #50 resolved. The KTfwd::GSLrng_t is no longer copy-constructible.
- API issue #48 is addressed. This is an API change breaking backwards compatilibity for multi-locus/region simulations. The new API allows more flexibility in modeling interlocus/region crossovers. The API for KTfwd::sample_diploid is changed for multi-locus/region sims. Two functions, KTfwd::make_poisson_interlocus_rec and KTfwd::make_binomial_interlocus_rec, return vectors of callbacks bound to the two new structs. commit
- API issue #49 is addressed. The changes maintain compile-time API compatibility with previous library versions.
- Refactored KTfwd::extensions::discrete_rec_model and KTfwd::extensions::discrete_mut_model to use PIMPL idiom and be
default-constructible. commit - Extend concept of regions to multi-locus sims via extensions::bind_vec__drm and extensions::bind_vec::dmm. commit
- extensions::discrete_mut_model::make_mut now takes a pointer to the generation, allowing a single point of binding rather than binding each generation. commit
- Exceptions in namespace KTfwd::extensions changed from std::runtime_error to std::invalid_argument where appropriate.
- Fix bug in examples/HOC_ind.cc affecting (improper) recycling of fixations during the simulation. commit
- KTfwd::data_matrix is now based on std:int8_t instead of char.