|
Parallel PopGen Package
|
Functions that model inbreeding coefficients (F), per-site mutation rates (mu), and dominance coefficients (h) across populations and over time.
More...
Classes | |
| struct | Sim_Model::F_mu_h_constant |
functor: models parameter p as a constant across populations and over time More... | |
| struct | Sim_Model::F_mu_h_sine_wave |
| functor: models parameter as a sine wave through time More... | |
| struct | Sim_Model::F_mu_h_population_specific< Functor_p, Functor_p_pop > |
functor: one population, pop, has a different, parameter function, p_pop, all others have function p More... | |
| struct | Sim_Model::F_mu_h_piecewise< Functor_p1, Functor_p2 > |
functor: parameter function changes from p1 to p2 at generation inflection_point More... | |
Functions that model inbreeding coefficients (F), per-site mutation rates (mu), and dominance coefficients (h) across populations and over time.
Inbreeding coefficients, F, must be between [0,1]:
(F = 0):= diploid, outbred;(F = 1):= haploid, inbred
Per-site mutation rate, mu, must be > 0.
Dominance coefficients, h, can be any real number:
(h < 0):= underdominance;(h > 1):= overdominance;(h = 0):= recessive;(h = 1):= dominant;(0 < h < 1):= co-dominant
These can be functions or functors (or soon, with C++11 support, lambdas). However, the parameter function must be of the form:
This returns the parameter in population population at generation generation. Adding a __host__ flag is optional, but if done, the function must be defined in CUDA source file (*.cu) or declared/defined header file (*.h, *.hpp, *.cuh, etc...) which is included in a CUDA source file. If no flag added, function can be defined in a regular C/C++ source file (e.g. *.c, *.cpp). Note: run_sim is required to be in a CUDA source file to be compiled.