Releases: molpopgen/fwdpp
New features + bug fixes
- Doxygen file changed so that all library source is browsable.
- Single-deme version of sample_diploid is commented in detail.
- Added KTfwd::add_mutation, KTfwd::add_mutations and unit test unit/test_sugar_add_mutation.cc. These new functions allow the addition of mutations to diploids in a non-random way, which also means you can fill in a population from external data (e.g., something in a file). These features resolve Issue #28, albeit at a low level.
- Member KTfwd::mutation_base::xtra squeezed into unused space in this type. No extra RAM used, and programs may assign values to that type to represent "stuff", whatever that is.
- KTfwd::extensions::discrete_mut_model got a new constructor allowing * KTfwd::extensions::discrete_mut_model::make_mut to assign values to KTfwd::mutation_base::xtra.
- Added KTfwd::change_neutral, which allows simulations to update the value of KTfwd::mutation_base::neutral and correctly update storage of the affected mutation in all gametes.
- #39 fixed
- #40 fixed
Bug fix
Faster 'pruning' of fixations during simulation
- KTfwd::fwdpp_internal::gamete_cleaner has a more efficient implementation now. The worst-case performance of a simulation is the same as in fwdpp 0.4.6, and many reasonable parameter scenarios will seen run times reduced 10-35% (based on the testing that I've done). See fwdpp/internal/gamete_cleaner.hpp for details about how these changes were implemented.
- Various internal improvements to code: const-correctness, better unit tests, better run-time assertions/integration tests.
- A syntax error caught by the Intel compiler was fixed. It never hurt anything on GCC/clang++, but failed to compile using ICC.
- Issue #36 fixed
- Issue #37 fixed
Bug fixes
Two bug fixes + code simplification improving performance
Support for more general demography has been added.
A branch of the code involving making "gamete lookup tables" has been removed. This does not affect the API. It does simplify the code base and improve run-time performance. These lookups could be removed because the "recycling" introduced in 0.4.4 made them irrelevant, and go from something that helped performance to a performance hindrance.
Major performance improvements
This version of fwdpp drastically changes how memory is managed during simulations. Further, the fundamental types have changes from linked lists and containers of pointers to vectors and containers of indexes. These changes are a major API change, but can speed simulations up by as much as 5X while not changing memory use nor the output.
A minor bug in sampling from populations in multi locus simulations was fixed.
The library tutorials and the manual are likely out of date now. This will be addressed in future releases.
See the release notes for a details list of changes.
bugfix!!
- Fix for issue #29
- Keyword 'mutable' replaced with 'const' throughout library
- KTfwd::extensions::gaussian now uses ziggurat method
- Types declared in fwdpp/extensions/callbacks.hpp now have const member data. A unit test was added as a check on the API of this file.
- New mutation types added: KTfwd::generalmut and KTfwd::generalmut_vec, in fwdpp/sugar/generalmut.hpp. A new unit test file goes along with it.
fwdpp 0.4.2
This release fixes a minor bug. The template declarations for two of the serialized population types (metapop and multiloc) were incorrect, swapping the writer and reader types upon instantiation. This caused failure to compile when custom diploid types are used. The issues is now fixed.
Fwdpp 0.4.1
- fwdppConfig no longer attempts linkage to dependent libraries
- fixed errors in fwdpp/initms.hpp caught by clang++
fwdpp 0.4.0
- fwdpp/sugar/sampling.hpp added. This streamlines taking samples from populations
- Unit test unit/sugar_sampling.cc added
- New test added to unit/crossoverTest.cc
- libsequence is no longer an installation dependency