#ifndef FUNCTIONS_H #define FUNCTIONS_H #include #include #include "MersenneTwister.h" using namespace std; // definition of structure "chr" representing a chromosome: // "sel" is a vector containing the positions of deleterious alleles along the chromosome // "neut" is the table containing the identities at the nlocv neutral loci struct chr { vector sel; // selected loci vector pod; // loci involved in POD double nlocus; // neutral locus to calculate Ne and considered completely unlinked }; // Storing allele identity and frequency struct Nall { double all; double freq; }; // Prototypes of functions void recursion(int Nv, double av, int rv, int nLv, double nEqv, double sPv, double hPv, double linkPv, double sv, double hv, double Uv, double Lv, double Unv, int sampleSv, int nbgenev, int nbgenv, int pasv, int repv); double gasdev(); double poisdev(const double xm); double fitness(vector &c1, vector &c2, double wHe, double wHo); void rec(chr &res, chr &c1, chr &c2, int nbco); int heter(vector &c1, vector &c2); #endif