mapgd  0.4
A program for the Maximum-likelihood analysis of population genomic data.
 All Data Structures Functions Variables Friends Groups Pages
newton-method-rel.h
1 /*This code was automatically generated by test.py*/
2 
3 #include "allele.h"
4 #include "quartet.h"
5 #include "typedef.h"
6 #include "constants.h"
7 
8 inline float_t H0 (const Genotype_pair &pair, const Constants <float_t, const std::pair<const Genotype_pair &, const Relatedness &> > &con) {
9  return pair.m*(-con.c[11]*pair.X_MM*pair.Y_MM + 2*con.c[11]*pair.X_Mm*pair.Y_MM - con.c[11]*pair.X_mm*pair.Y_MM + con.c[12]*con.c[7]*pair.X_Mm*pair.Y_mm - con.c[13]*con.c[7]*pair.X_MM*pair.Y_mm - con.c[13]*con.c[7]*pair.X_mm*pair.Y_mm + 2*con.c[5]*pair.X_MM*pair.Y_Mm*pair.m - 4*con.c[5]*pair.X_Mm*pair.Y_Mm*pair.m + 2*con.c[5]*pair.X_mm*pair.Y_Mm*pair.m)*fabs(con.c[7])/(con.c[0]*pair.X_MM*pair.Y_mm - con.c[10]*con.c[7]*pair.X_Mm*pair.Y_MM + con.c[1]*pair.X_mm*pair.Y_MM + con.c[2]*pair.X_mm*pair.Y_mm - con.c[3]*pair.X_Mm*pair.Y_mm - con.c[4]*pair.X_mm*pair.Y_Mm + con.c[5]*con.c[6]*pair.X_MM*pair.Y_MM + con.c[7]*con.c[8]*pair.X_Mm*pair.Y_Mm - con.c[7]*con.c[9]*pair.X_MM*pair.Y_Mm) ;
10 }
11 
12 inline float_t H1 (const Genotype_pair &pair, const Constants <float_t, const std::pair<const Genotype_pair &, const Relatedness &> > &con) {
13  return pair.m*(-con.c[11]*pair.X_MM*pair.Y_MM + 2*con.c[11]*pair.X_MM*pair.Y_Mm - con.c[11]*pair.X_MM*pair.Y_mm + con.c[12]*con.c[7]*pair.X_mm*pair.Y_Mm - con.c[13]*con.c[7]*pair.X_mm*pair.Y_MM - con.c[13]*con.c[7]*pair.X_mm*pair.Y_mm + 2*con.c[5]*pair.X_Mm*pair.Y_MM*pair.m - 4*con.c[5]*pair.X_Mm*pair.Y_Mm*pair.m + 2*con.c[5]*pair.X_Mm*pair.Y_mm*pair.m)*fabs(con.c[7])/(con.c[0]*pair.X_MM*pair.Y_mm - con.c[10]*con.c[7]*pair.X_Mm*pair.Y_MM + con.c[1]*pair.X_mm*pair.Y_MM + con.c[2]*pair.X_mm*pair.Y_mm - con.c[3]*pair.X_Mm*pair.Y_mm - con.c[4]*pair.X_mm*pair.Y_Mm + con.c[5]*con.c[6]*pair.X_MM*pair.Y_MM + con.c[7]*con.c[8]*pair.X_Mm*pair.Y_Mm - con.c[7]*con.c[9]*pair.X_MM*pair.Y_Mm) ;
14 }
15 
16 inline float_t H2 (const Genotype_pair &pair, const Constants <float_t, const std::pair<const Genotype_pair &, const Relatedness &> > &con) {
17  return -pair.m*(4.0*con.c[11]*pair.X_MM*pair.Y_MM + con.c[14]*con.c[7]*pair.X_Mm*pair.Y_Mm + con.c[15]*con.c[7]*pair.X_mm*pair.Y_mm - con.c[16]*con.c[7]*pair.X_MM*pair.Y_Mm - con.c[16]*con.c[7]*pair.X_Mm*pair.Y_MM - con.c[17]*con.c[7]*pair.X_Mm*pair.Y_mm - con.c[17]*con.c[7]*pair.X_mm*pair.Y_Mm + 4.0*con.c[18]*con.c[7]*pair.X_MM*pair.Y_mm + 4.0*con.c[18]*con.c[7]*pair.X_mm*pair.Y_MM)*fabs(con.c[7])/(con.c[0]*pair.X_MM*pair.Y_mm - con.c[10]*con.c[7]*pair.X_Mm*pair.Y_MM + con.c[1]*pair.X_mm*pair.Y_MM + con.c[2]*pair.X_mm*pair.Y_mm - con.c[3]*pair.X_Mm*pair.Y_mm - con.c[4]*pair.X_mm*pair.Y_Mm + con.c[5]*con.c[6]*pair.X_MM*pair.Y_MM + con.c[7]*con.c[8]*pair.X_Mm*pair.Y_Mm - con.c[7]*con.c[9]*pair.X_MM*pair.Y_Mm) ;
18 }
19 
20 inline float_t H3 (const Genotype_pair &pair, const Constants <float_t, const std::pair<const Genotype_pair &, const Relatedness &> > &con) {
21  return con.c[28]*con.c[7]*pair.m*(con.c[29]*pair.X_Mm*pair.Y_Mm - con.c[30]*pair.X_MM*pair.Y_Mm - con.c[30]*pair.X_mm*pair.Y_Mm + 2.0*con.c[7]*pair.X_MM*pair.Y_MM - 4.0*con.c[7]*pair.X_Mm*pair.Y_MM + 2.0*con.c[7]*pair.X_mm*pair.Y_MM + 2.0*pair.X_MM*pair.Y_mm*pair.m - 4.0*pair.X_Mm*pair.Y_mm*pair.m + 2.0*pair.X_mm*pair.Y_mm*pair.m)*fabs(con.c[7])/(con.c[19]*pair.X_MM*pair.Y_mm + con.c[20]*pair.X_mm*pair.Y_MM - con.c[21]*pair.X_Mm*pair.Y_mm - con.c[22]*pair.X_mm*pair.Y_Mm - con.c[23]*pair.X_mm*pair.Y_mm + con.c[24]*con.c[5]*pair.X_MM*pair.Y_MM + con.c[25]*con.c[7]*pair.X_Mm*pair.Y_Mm - con.c[26]*con.c[7]*pair.X_MM*pair.Y_Mm - con.c[27]*con.c[7]*pair.X_Mm*pair.Y_MM) ;
22 }
23 
24 inline float_t H4 (const Genotype_pair &pair, const Constants <float_t, const std::pair<const Genotype_pair &, const Relatedness &> > &con) {
25  return con.c[28]*con.c[7]*pair.m*(con.c[29]*pair.X_Mm*pair.Y_Mm - con.c[30]*pair.X_Mm*pair.Y_MM - con.c[30]*pair.X_Mm*pair.Y_mm + 2.0*con.c[7]*pair.X_MM*pair.Y_MM - 4.0*con.c[7]*pair.X_MM*pair.Y_Mm + 2.0*con.c[7]*pair.X_MM*pair.Y_mm + 2.0*pair.X_mm*pair.Y_MM*pair.m - 4.0*pair.X_mm*pair.Y_Mm*pair.m + 2.0*pair.X_mm*pair.Y_mm*pair.m)*fabs(con.c[7])/(con.c[19]*pair.X_MM*pair.Y_mm + con.c[20]*pair.X_mm*pair.Y_MM - con.c[21]*pair.X_Mm*pair.Y_mm - con.c[22]*pair.X_mm*pair.Y_Mm - con.c[23]*pair.X_mm*pair.Y_mm + con.c[24]*con.c[5]*pair.X_MM*pair.Y_MM + con.c[25]*con.c[7]*pair.X_Mm*pair.Y_Mm - con.c[26]*con.c[7]*pair.X_MM*pair.Y_Mm - con.c[27]*con.c[7]*pair.X_Mm*pair.Y_MM) ;
26 }
27 
28 inline float_t H5 (const Genotype_pair &pair, const Constants <float_t, const std::pair<const Genotype_pair &, const Relatedness &> > &con) {
29  return con.c[5]*pair.m*(pair.X_MM*pair.Y_MM - 2*pair.X_MM*pair.Y_Mm + pair.X_MM*pair.Y_mm - 2*pair.X_Mm*pair.Y_MM + 4*pair.X_Mm*pair.Y_Mm - 2*pair.X_Mm*pair.Y_mm + pair.X_mm*pair.Y_MM - 2*pair.X_mm*pair.Y_Mm + pair.X_mm*pair.Y_mm)*fabs(3.0*con.c[7]*pair.m + 1.0)/(con.c[19]*pair.X_MM*pair.Y_mm + con.c[20]*pair.X_mm*pair.Y_MM - con.c[21]*pair.X_Mm*pair.Y_mm - con.c[22]*pair.X_mm*pair.Y_Mm - con.c[23]*pair.X_mm*pair.Y_mm + con.c[24]*con.c[5]*pair.X_MM*pair.Y_MM + con.c[25]*con.c[7]*pair.X_Mm*pair.Y_Mm - con.c[26]*con.c[7]*pair.X_MM*pair.Y_Mm - con.c[27]*con.c[7]*pair.X_Mm*pair.Y_MM) ;
30 }
31 
32 inline float_t H6 (const Genotype_pair &pair, const Constants <float_t, const std::pair<const Genotype_pair &, const Relatedness &> > &con) {
33  return con.c[31]*con.c[5]*(pair.X_MM*pair.Y_MM - 2*pair.X_MM*pair.Y_Mm + pair.X_MM*pair.Y_mm - 2*pair.X_Mm*pair.Y_MM + 4*pair.X_Mm*pair.Y_Mm - 2*pair.X_Mm*pair.Y_mm + pair.X_mm*pair.Y_MM - 2*pair.X_mm*pair.Y_Mm + pair.X_mm*pair.Y_mm)*fabs(con.c[7])/(con.c[19]*pair.X_MM*pair.Y_mm + con.c[20]*pair.X_mm*pair.Y_MM - con.c[21]*pair.X_Mm*pair.Y_mm - con.c[22]*pair.X_mm*pair.Y_Mm - con.c[23]*pair.X_mm*pair.Y_mm + con.c[24]*con.c[5]*pair.X_MM*pair.Y_MM + con.c[25]*con.c[7]*pair.X_Mm*pair.Y_Mm - con.c[26]*con.c[7]*pair.X_MM*pair.Y_Mm - con.c[27]*con.c[7]*pair.X_Mm*pair.Y_MM) ;
34 }
35 
36 inline float_t J00 (const Genotype_pair &pair, const Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con) {
37  return (-con.c[41]*pair.X_MM*pair.Y_Mm - con.c[41]*pair.X_mm*pair.Y_Mm - con.c[42]*pair.X_MM*pair.Y_mm - con.c[42]*pair.X_mm*pair.Y_mm - con.c[43]*pair.X_Mm*pair.Y_Mm - con.c[44]*pair.X_Mm*pair.Y_mm - con.c[45]*pair.X_MM*pair.Y_MM*pair.m + 2*con.c[45]*pair.X_Mm*pair.Y_MM*pair.m - con.c[45]*pair.X_mm*pair.Y_MM*pair.m)*(con.c[41]*pair.X_MM*pair.Y_Mm + con.c[41]*pair.X_mm*pair.Y_Mm + con.c[42]*pair.X_MM*pair.Y_mm + con.c[42]*pair.X_mm*pair.Y_mm + con.c[43]*pair.X_Mm*pair.Y_Mm + con.c[44]*pair.X_Mm*pair.Y_mm + con.c[45]*pair.X_MM*pair.Y_MM*pair.m - 2*con.c[45]*pair.X_Mm*pair.Y_MM*pair.m + con.c[45]*pair.X_mm*pair.Y_MM*pair.m)/pow(con.c[32]*pair.X_MM*pair.Y_MM + con.c[33]*pair.X_MM*pair.Y_Mm + con.c[34]*pair.X_MM*pair.Y_mm + con.c[35]*pair.X_Mm*pair.Y_MM + con.c[36]*pair.X_Mm*pair.Y_Mm + con.c[37]*pair.X_Mm*pair.Y_mm + con.c[38]*pair.X_mm*pair.Y_MM + con.c[39]*pair.X_mm*pair.Y_Mm + con.c[40]*pair.X_mm*pair.Y_mm, 2) ;
38 }
39 
40 inline float_t J01 (const Genotype_pair &pair, const Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con) {
41  return (con.c[41]*pair.X_MM*pair.Y_Mm + con.c[41]*pair.X_mm*pair.Y_Mm + con.c[42]*pair.X_MM*pair.Y_mm + con.c[42]*pair.X_mm*pair.Y_mm + con.c[43]*pair.X_Mm*pair.Y_Mm + con.c[44]*pair.X_Mm*pair.Y_mm + con.c[45]*pair.X_MM*pair.Y_MM*pair.m - 2*con.c[45]*pair.X_Mm*pair.Y_MM*pair.m + con.c[45]*pair.X_mm*pair.Y_MM*pair.m)*(-con.c[41]*pair.X_Mm*pair.Y_MM - con.c[41]*pair.X_Mm*pair.Y_mm - con.c[42]*pair.X_mm*pair.Y_MM - con.c[42]*pair.X_mm*pair.Y_mm - con.c[43]*pair.X_Mm*pair.Y_Mm - con.c[44]*pair.X_mm*pair.Y_Mm - con.c[45]*pair.X_MM*pair.Y_MM*pair.m + 2*con.c[45]*pair.X_MM*pair.Y_Mm*pair.m - con.c[45]*pair.X_MM*pair.Y_mm*pair.m)/pow(con.c[32]*pair.X_MM*pair.Y_MM + con.c[33]*pair.X_MM*pair.Y_Mm + con.c[34]*pair.X_MM*pair.Y_mm + con.c[35]*pair.X_Mm*pair.Y_MM + con.c[36]*pair.X_Mm*pair.Y_Mm + con.c[37]*pair.X_Mm*pair.Y_mm + con.c[38]*pair.X_mm*pair.Y_MM + con.c[39]*pair.X_mm*pair.Y_Mm + con.c[40]*pair.X_mm*pair.Y_mm, 2) ;
42 }
43 
44 inline float_t J02 (const Genotype_pair &pair, const Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con) {
45  return (con.c[41]*pair.X_MM*pair.Y_Mm + con.c[41]*pair.X_mm*pair.Y_Mm + con.c[42]*pair.X_MM*pair.Y_mm + con.c[42]*pair.X_mm*pair.Y_mm + con.c[43]*pair.X_Mm*pair.Y_Mm + con.c[44]*pair.X_Mm*pair.Y_mm + con.c[45]*pair.X_MM*pair.Y_MM*pair.m - 2*con.c[45]*pair.X_Mm*pair.Y_MM*pair.m + con.c[45]*pair.X_mm*pair.Y_MM*pair.m)*(-4.0*con.c[45]*pair.X_MM*pair.Y_MM*pair.m - con.c[46]*pair.X_MM*pair.Y_Mm - con.c[46]*pair.X_Mm*pair.Y_MM - con.c[47]*pair.X_MM*pair.Y_mm - con.c[47]*pair.X_mm*pair.Y_MM - con.c[48]*pair.X_Mm*pair.Y_Mm - con.c[49]*pair.X_Mm*pair.Y_mm - con.c[49]*pair.X_mm*pair.Y_Mm - con.c[50]*pair.X_mm*pair.Y_mm)/pow(con.c[32]*pair.X_MM*pair.Y_MM + con.c[33]*pair.X_MM*pair.Y_Mm + con.c[34]*pair.X_MM*pair.Y_mm + con.c[35]*pair.X_Mm*pair.Y_MM + con.c[36]*pair.X_Mm*pair.Y_Mm + con.c[37]*pair.X_Mm*pair.Y_mm + con.c[38]*pair.X_mm*pair.Y_MM + con.c[39]*pair.X_mm*pair.Y_Mm + con.c[40]*pair.X_mm*pair.Y_mm, 2) ;
46 }
47 
48 inline float_t J03 (const Genotype_pair &pair, const Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con) {
49  return (con.c[41]*pair.X_MM*pair.Y_Mm + con.c[41]*pair.X_mm*pair.Y_Mm + con.c[42]*pair.X_MM*pair.Y_mm + con.c[42]*pair.X_mm*pair.Y_mm + con.c[43]*pair.X_Mm*pair.Y_Mm + con.c[44]*pair.X_Mm*pair.Y_mm + con.c[45]*pair.X_MM*pair.Y_MM*pair.m - 2*con.c[45]*pair.X_Mm*pair.Y_MM*pair.m + con.c[45]*pair.X_mm*pair.Y_MM*pair.m)*(-con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_MM*pair.m + 2*con.c[28]*con.c[55]*con.c[56]*pair.X_Mm*pair.Y_MM*pair.m - con.c[28]*con.c[55]*con.c[56]*pair.X_mm*pair.Y_MM*pair.m - con.c[51]*pair.X_MM*pair.Y_Mm - con.c[51]*pair.X_mm*pair.Y_Mm - con.c[52]*pair.X_MM*pair.Y_mm - con.c[52]*pair.X_mm*pair.Y_mm - con.c[53]*pair.X_Mm*pair.Y_Mm - con.c[54]*pair.X_Mm*pair.Y_mm)/pow(con.c[32]*pair.X_MM*pair.Y_MM + con.c[33]*pair.X_MM*pair.Y_Mm + con.c[34]*pair.X_MM*pair.Y_mm + con.c[35]*pair.X_Mm*pair.Y_MM + con.c[36]*pair.X_Mm*pair.Y_Mm + con.c[37]*pair.X_Mm*pair.Y_mm + con.c[38]*pair.X_mm*pair.Y_MM + con.c[39]*pair.X_mm*pair.Y_Mm + con.c[40]*pair.X_mm*pair.Y_mm, 2) ;
50 }
51 
52 inline float_t J04 (const Genotype_pair &pair, const Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con) {
53  return (con.c[41]*pair.X_MM*pair.Y_Mm + con.c[41]*pair.X_mm*pair.Y_Mm + con.c[42]*pair.X_MM*pair.Y_mm + con.c[42]*pair.X_mm*pair.Y_mm + con.c[43]*pair.X_Mm*pair.Y_Mm + con.c[44]*pair.X_Mm*pair.Y_mm + con.c[45]*pair.X_MM*pair.Y_MM*pair.m - 2*con.c[45]*pair.X_Mm*pair.Y_MM*pair.m + con.c[45]*pair.X_mm*pair.Y_MM*pair.m)*(-con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_MM*pair.m + 2*con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_Mm*pair.m - con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_mm*pair.m - con.c[51]*pair.X_Mm*pair.Y_MM - con.c[51]*pair.X_Mm*pair.Y_mm - con.c[52]*pair.X_mm*pair.Y_MM - con.c[52]*pair.X_mm*pair.Y_mm - con.c[53]*pair.X_Mm*pair.Y_Mm - con.c[54]*pair.X_mm*pair.Y_Mm)/pow(con.c[32]*pair.X_MM*pair.Y_MM + con.c[33]*pair.X_MM*pair.Y_Mm + con.c[34]*pair.X_MM*pair.Y_mm + con.c[35]*pair.X_Mm*pair.Y_MM + con.c[36]*pair.X_Mm*pair.Y_Mm + con.c[37]*pair.X_Mm*pair.Y_mm + con.c[38]*pair.X_mm*pair.Y_MM + con.c[39]*pair.X_mm*pair.Y_Mm + con.c[40]*pair.X_mm*pair.Y_mm, 2) ;
54 }
55 
56 inline float_t J05 (const Genotype_pair &pair, const Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con) {
57  return (con.c[41]*pair.X_MM*pair.Y_Mm + con.c[41]*pair.X_mm*pair.Y_Mm + con.c[42]*pair.X_MM*pair.Y_mm + con.c[42]*pair.X_mm*pair.Y_mm + con.c[43]*pair.X_Mm*pair.Y_Mm + con.c[44]*pair.X_Mm*pair.Y_mm + con.c[45]*pair.X_MM*pair.Y_MM*pair.m - 2*con.c[45]*pair.X_Mm*pair.Y_MM*pair.m + con.c[45]*pair.X_mm*pair.Y_MM*pair.m)*(-con.c[31]*con.c[57]*pair.X_MM*pair.Y_MM*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + 2*con.c[31]*con.c[57]*pair.X_MM*pair.Y_Mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - con.c[31]*con.c[57]*pair.X_MM*pair.Y_mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_MM*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - 4*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_Mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - con.c[31]*con.c[57]*pair.X_mm*pair.Y_MM*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + 2*con.c[31]*con.c[57]*pair.X_mm*pair.Y_Mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - con.c[31]*con.c[57]*pair.X_mm*pair.Y_mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]))/pow(con.c[32]*pair.X_MM*pair.Y_MM + con.c[33]*pair.X_MM*pair.Y_Mm + con.c[34]*pair.X_MM*pair.Y_mm + con.c[35]*pair.X_Mm*pair.Y_MM + con.c[36]*pair.X_Mm*pair.Y_Mm + con.c[37]*pair.X_Mm*pair.Y_mm + con.c[38]*pair.X_mm*pair.Y_MM + con.c[39]*pair.X_mm*pair.Y_Mm + con.c[40]*pair.X_mm*pair.Y_mm, 2) ;
58 }
59 
60 inline float_t J06 (const Genotype_pair &pair, const Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con) {
61  return (con.c[41]*pair.X_MM*pair.Y_Mm + con.c[41]*pair.X_mm*pair.Y_Mm + con.c[42]*pair.X_MM*pair.Y_mm + con.c[42]*pair.X_mm*pair.Y_mm + con.c[43]*pair.X_Mm*pair.Y_Mm + con.c[44]*pair.X_Mm*pair.Y_mm + con.c[45]*pair.X_MM*pair.Y_MM*pair.m - 2*con.c[45]*pair.X_Mm*pair.Y_MM*pair.m + con.c[45]*pair.X_mm*pair.Y_MM*pair.m)*(-con.c[31]*con.c[57]*pair.X_MM*pair.Y_MM + 2*con.c[31]*con.c[57]*pair.X_MM*pair.Y_Mm - con.c[31]*con.c[57]*pair.X_MM*pair.Y_mm + 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_MM - 4*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_Mm + 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_mm - con.c[31]*con.c[57]*pair.X_mm*pair.Y_MM + 2*con.c[31]*con.c[57]*pair.X_mm*pair.Y_Mm - con.c[31]*con.c[57]*pair.X_mm*pair.Y_mm)/pow(con.c[32]*pair.X_MM*pair.Y_MM + con.c[33]*pair.X_MM*pair.Y_Mm + con.c[34]*pair.X_MM*pair.Y_mm + con.c[35]*pair.X_Mm*pair.Y_MM + con.c[36]*pair.X_Mm*pair.Y_Mm + con.c[37]*pair.X_Mm*pair.Y_mm + con.c[38]*pair.X_mm*pair.Y_MM + con.c[39]*pair.X_mm*pair.Y_Mm + con.c[40]*pair.X_mm*pair.Y_mm, 2) ;
62 }
63 
64 inline float_t J10 (const Genotype_pair &pair, const Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con) {
65  return (-con.c[41]*pair.X_MM*pair.Y_Mm - con.c[41]*pair.X_mm*pair.Y_Mm - con.c[42]*pair.X_MM*pair.Y_mm - con.c[42]*pair.X_mm*pair.Y_mm - con.c[43]*pair.X_Mm*pair.Y_Mm - con.c[44]*pair.X_Mm*pair.Y_mm - con.c[45]*pair.X_MM*pair.Y_MM*pair.m + 2*con.c[45]*pair.X_Mm*pair.Y_MM*pair.m - con.c[45]*pair.X_mm*pair.Y_MM*pair.m)*(con.c[41]*pair.X_Mm*pair.Y_MM + con.c[41]*pair.X_Mm*pair.Y_mm + con.c[42]*pair.X_mm*pair.Y_MM + con.c[42]*pair.X_mm*pair.Y_mm + con.c[43]*pair.X_Mm*pair.Y_Mm + con.c[44]*pair.X_mm*pair.Y_Mm + con.c[45]*pair.X_MM*pair.Y_MM*pair.m - 2*con.c[45]*pair.X_MM*pair.Y_Mm*pair.m + con.c[45]*pair.X_MM*pair.Y_mm*pair.m)/pow(con.c[32]*pair.X_MM*pair.Y_MM + con.c[33]*pair.X_MM*pair.Y_Mm + con.c[34]*pair.X_MM*pair.Y_mm + con.c[35]*pair.X_Mm*pair.Y_MM + con.c[36]*pair.X_Mm*pair.Y_Mm + con.c[37]*pair.X_Mm*pair.Y_mm + con.c[38]*pair.X_mm*pair.Y_MM + con.c[39]*pair.X_mm*pair.Y_Mm + con.c[40]*pair.X_mm*pair.Y_mm, 2) ;
66 }
67 
68 inline float_t J11 (const Genotype_pair &pair, const Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con) {
69  return (-con.c[41]*pair.X_Mm*pair.Y_MM - con.c[41]*pair.X_Mm*pair.Y_mm - con.c[42]*pair.X_mm*pair.Y_MM - con.c[42]*pair.X_mm*pair.Y_mm - con.c[43]*pair.X_Mm*pair.Y_Mm - con.c[44]*pair.X_mm*pair.Y_Mm - con.c[45]*pair.X_MM*pair.Y_MM*pair.m + 2*con.c[45]*pair.X_MM*pair.Y_Mm*pair.m - con.c[45]*pair.X_MM*pair.Y_mm*pair.m)*(con.c[41]*pair.X_Mm*pair.Y_MM + con.c[41]*pair.X_Mm*pair.Y_mm + con.c[42]*pair.X_mm*pair.Y_MM + con.c[42]*pair.X_mm*pair.Y_mm + con.c[43]*pair.X_Mm*pair.Y_Mm + con.c[44]*pair.X_mm*pair.Y_Mm + con.c[45]*pair.X_MM*pair.Y_MM*pair.m - 2*con.c[45]*pair.X_MM*pair.Y_Mm*pair.m + con.c[45]*pair.X_MM*pair.Y_mm*pair.m)/pow(con.c[32]*pair.X_MM*pair.Y_MM + con.c[33]*pair.X_MM*pair.Y_Mm + con.c[34]*pair.X_MM*pair.Y_mm + con.c[35]*pair.X_Mm*pair.Y_MM + con.c[36]*pair.X_Mm*pair.Y_Mm + con.c[37]*pair.X_Mm*pair.Y_mm + con.c[38]*pair.X_mm*pair.Y_MM + con.c[39]*pair.X_mm*pair.Y_Mm + con.c[40]*pair.X_mm*pair.Y_mm, 2) ;
70 }
71 
72 inline float_t J12 (const Genotype_pair &pair, const Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con) {
73  return (con.c[41]*pair.X_Mm*pair.Y_MM + con.c[41]*pair.X_Mm*pair.Y_mm + con.c[42]*pair.X_mm*pair.Y_MM + con.c[42]*pair.X_mm*pair.Y_mm + con.c[43]*pair.X_Mm*pair.Y_Mm + con.c[44]*pair.X_mm*pair.Y_Mm + con.c[45]*pair.X_MM*pair.Y_MM*pair.m - 2*con.c[45]*pair.X_MM*pair.Y_Mm*pair.m + con.c[45]*pair.X_MM*pair.Y_mm*pair.m)*(-4.0*con.c[45]*pair.X_MM*pair.Y_MM*pair.m - con.c[46]*pair.X_MM*pair.Y_Mm - con.c[46]*pair.X_Mm*pair.Y_MM - con.c[47]*pair.X_MM*pair.Y_mm - con.c[47]*pair.X_mm*pair.Y_MM - con.c[48]*pair.X_Mm*pair.Y_Mm - con.c[49]*pair.X_Mm*pair.Y_mm - con.c[49]*pair.X_mm*pair.Y_Mm - con.c[50]*pair.X_mm*pair.Y_mm)/pow(con.c[32]*pair.X_MM*pair.Y_MM + con.c[33]*pair.X_MM*pair.Y_Mm + con.c[34]*pair.X_MM*pair.Y_mm + con.c[35]*pair.X_Mm*pair.Y_MM + con.c[36]*pair.X_Mm*pair.Y_Mm + con.c[37]*pair.X_Mm*pair.Y_mm + con.c[38]*pair.X_mm*pair.Y_MM + con.c[39]*pair.X_mm*pair.Y_Mm + con.c[40]*pair.X_mm*pair.Y_mm, 2) ;
74 }
75 
76 inline float_t J13 (const Genotype_pair &pair, const Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con) {
77  return (con.c[41]*pair.X_Mm*pair.Y_MM + con.c[41]*pair.X_Mm*pair.Y_mm + con.c[42]*pair.X_mm*pair.Y_MM + con.c[42]*pair.X_mm*pair.Y_mm + con.c[43]*pair.X_Mm*pair.Y_Mm + con.c[44]*pair.X_mm*pair.Y_Mm + con.c[45]*pair.X_MM*pair.Y_MM*pair.m - 2*con.c[45]*pair.X_MM*pair.Y_Mm*pair.m + con.c[45]*pair.X_MM*pair.Y_mm*pair.m)*(-con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_MM*pair.m + 2*con.c[28]*con.c[55]*con.c[56]*pair.X_Mm*pair.Y_MM*pair.m - con.c[28]*con.c[55]*con.c[56]*pair.X_mm*pair.Y_MM*pair.m - con.c[51]*pair.X_MM*pair.Y_Mm - con.c[51]*pair.X_mm*pair.Y_Mm - con.c[52]*pair.X_MM*pair.Y_mm - con.c[52]*pair.X_mm*pair.Y_mm - con.c[53]*pair.X_Mm*pair.Y_Mm - con.c[54]*pair.X_Mm*pair.Y_mm)/pow(con.c[32]*pair.X_MM*pair.Y_MM + con.c[33]*pair.X_MM*pair.Y_Mm + con.c[34]*pair.X_MM*pair.Y_mm + con.c[35]*pair.X_Mm*pair.Y_MM + con.c[36]*pair.X_Mm*pair.Y_Mm + con.c[37]*pair.X_Mm*pair.Y_mm + con.c[38]*pair.X_mm*pair.Y_MM + con.c[39]*pair.X_mm*pair.Y_Mm + con.c[40]*pair.X_mm*pair.Y_mm, 2) ;
78 }
79 
80 inline float_t J14 (const Genotype_pair &pair, const Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con) {
81  return (con.c[41]*pair.X_Mm*pair.Y_MM + con.c[41]*pair.X_Mm*pair.Y_mm + con.c[42]*pair.X_mm*pair.Y_MM + con.c[42]*pair.X_mm*pair.Y_mm + con.c[43]*pair.X_Mm*pair.Y_Mm + con.c[44]*pair.X_mm*pair.Y_Mm + con.c[45]*pair.X_MM*pair.Y_MM*pair.m - 2*con.c[45]*pair.X_MM*pair.Y_Mm*pair.m + con.c[45]*pair.X_MM*pair.Y_mm*pair.m)*(-con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_MM*pair.m + 2*con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_Mm*pair.m - con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_mm*pair.m - con.c[51]*pair.X_Mm*pair.Y_MM - con.c[51]*pair.X_Mm*pair.Y_mm - con.c[52]*pair.X_mm*pair.Y_MM - con.c[52]*pair.X_mm*pair.Y_mm - con.c[53]*pair.X_Mm*pair.Y_Mm - con.c[54]*pair.X_mm*pair.Y_Mm)/pow(con.c[32]*pair.X_MM*pair.Y_MM + con.c[33]*pair.X_MM*pair.Y_Mm + con.c[34]*pair.X_MM*pair.Y_mm + con.c[35]*pair.X_Mm*pair.Y_MM + con.c[36]*pair.X_Mm*pair.Y_Mm + con.c[37]*pair.X_Mm*pair.Y_mm + con.c[38]*pair.X_mm*pair.Y_MM + con.c[39]*pair.X_mm*pair.Y_Mm + con.c[40]*pair.X_mm*pair.Y_mm, 2) ;
82 }
83 
84 inline float_t J15 (const Genotype_pair &pair, const Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con) {
85  return (con.c[41]*pair.X_Mm*pair.Y_MM + con.c[41]*pair.X_Mm*pair.Y_mm + con.c[42]*pair.X_mm*pair.Y_MM + con.c[42]*pair.X_mm*pair.Y_mm + con.c[43]*pair.X_Mm*pair.Y_Mm + con.c[44]*pair.X_mm*pair.Y_Mm + con.c[45]*pair.X_MM*pair.Y_MM*pair.m - 2*con.c[45]*pair.X_MM*pair.Y_Mm*pair.m + con.c[45]*pair.X_MM*pair.Y_mm*pair.m)*(-con.c[31]*con.c[57]*pair.X_MM*pair.Y_MM*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + 2*con.c[31]*con.c[57]*pair.X_MM*pair.Y_Mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - con.c[31]*con.c[57]*pair.X_MM*pair.Y_mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_MM*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - 4*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_Mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - con.c[31]*con.c[57]*pair.X_mm*pair.Y_MM*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + 2*con.c[31]*con.c[57]*pair.X_mm*pair.Y_Mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - con.c[31]*con.c[57]*pair.X_mm*pair.Y_mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]))/pow(con.c[32]*pair.X_MM*pair.Y_MM + con.c[33]*pair.X_MM*pair.Y_Mm + con.c[34]*pair.X_MM*pair.Y_mm + con.c[35]*pair.X_Mm*pair.Y_MM + con.c[36]*pair.X_Mm*pair.Y_Mm + con.c[37]*pair.X_Mm*pair.Y_mm + con.c[38]*pair.X_mm*pair.Y_MM + con.c[39]*pair.X_mm*pair.Y_Mm + con.c[40]*pair.X_mm*pair.Y_mm, 2) ;
86 }
87 
88 inline float_t J16 (const Genotype_pair &pair, const Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con) {
89  return (con.c[41]*pair.X_Mm*pair.Y_MM + con.c[41]*pair.X_Mm*pair.Y_mm + con.c[42]*pair.X_mm*pair.Y_MM + con.c[42]*pair.X_mm*pair.Y_mm + con.c[43]*pair.X_Mm*pair.Y_Mm + con.c[44]*pair.X_mm*pair.Y_Mm + con.c[45]*pair.X_MM*pair.Y_MM*pair.m - 2*con.c[45]*pair.X_MM*pair.Y_Mm*pair.m + con.c[45]*pair.X_MM*pair.Y_mm*pair.m)*(-con.c[31]*con.c[57]*pair.X_MM*pair.Y_MM + 2*con.c[31]*con.c[57]*pair.X_MM*pair.Y_Mm - con.c[31]*con.c[57]*pair.X_MM*pair.Y_mm + 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_MM - 4*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_Mm + 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_mm - con.c[31]*con.c[57]*pair.X_mm*pair.Y_MM + 2*con.c[31]*con.c[57]*pair.X_mm*pair.Y_Mm - con.c[31]*con.c[57]*pair.X_mm*pair.Y_mm)/pow(con.c[32]*pair.X_MM*pair.Y_MM + con.c[33]*pair.X_MM*pair.Y_Mm + con.c[34]*pair.X_MM*pair.Y_mm + con.c[35]*pair.X_Mm*pair.Y_MM + con.c[36]*pair.X_Mm*pair.Y_Mm + con.c[37]*pair.X_Mm*pair.Y_mm + con.c[38]*pair.X_mm*pair.Y_MM + con.c[39]*pair.X_mm*pair.Y_Mm + con.c[40]*pair.X_mm*pair.Y_mm, 2) ;
90 }
91 
92 inline float_t J20 (const Genotype_pair &pair, const Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con) {
93  return (-con.c[41]*pair.X_MM*pair.Y_Mm - con.c[41]*pair.X_mm*pair.Y_Mm - con.c[42]*pair.X_MM*pair.Y_mm - con.c[42]*pair.X_mm*pair.Y_mm - con.c[43]*pair.X_Mm*pair.Y_Mm - con.c[44]*pair.X_Mm*pair.Y_mm - con.c[45]*pair.X_MM*pair.Y_MM*pair.m + 2*con.c[45]*pair.X_Mm*pair.Y_MM*pair.m - con.c[45]*pair.X_mm*pair.Y_MM*pair.m)*(4.0*con.c[45]*pair.X_MM*pair.Y_MM*pair.m + con.c[46]*pair.X_MM*pair.Y_Mm + con.c[46]*pair.X_Mm*pair.Y_MM + con.c[47]*pair.X_MM*pair.Y_mm + con.c[47]*pair.X_mm*pair.Y_MM + con.c[48]*pair.X_Mm*pair.Y_Mm + con.c[49]*pair.X_Mm*pair.Y_mm + con.c[49]*pair.X_mm*pair.Y_Mm + con.c[50]*pair.X_mm*pair.Y_mm)/pow(con.c[32]*pair.X_MM*pair.Y_MM + con.c[33]*pair.X_MM*pair.Y_Mm + con.c[34]*pair.X_MM*pair.Y_mm + con.c[35]*pair.X_Mm*pair.Y_MM + con.c[36]*pair.X_Mm*pair.Y_Mm + con.c[37]*pair.X_Mm*pair.Y_mm + con.c[38]*pair.X_mm*pair.Y_MM + con.c[39]*pair.X_mm*pair.Y_Mm + con.c[40]*pair.X_mm*pair.Y_mm, 2) ;
94 }
95 
96 inline float_t J21 (const Genotype_pair &pair, const Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con) {
97  return (-con.c[41]*pair.X_Mm*pair.Y_MM - con.c[41]*pair.X_Mm*pair.Y_mm - con.c[42]*pair.X_mm*pair.Y_MM - con.c[42]*pair.X_mm*pair.Y_mm - con.c[43]*pair.X_Mm*pair.Y_Mm - con.c[44]*pair.X_mm*pair.Y_Mm - con.c[45]*pair.X_MM*pair.Y_MM*pair.m + 2*con.c[45]*pair.X_MM*pair.Y_Mm*pair.m - con.c[45]*pair.X_MM*pair.Y_mm*pair.m)*(4.0*con.c[45]*pair.X_MM*pair.Y_MM*pair.m + con.c[46]*pair.X_MM*pair.Y_Mm + con.c[46]*pair.X_Mm*pair.Y_MM + con.c[47]*pair.X_MM*pair.Y_mm + con.c[47]*pair.X_mm*pair.Y_MM + con.c[48]*pair.X_Mm*pair.Y_Mm + con.c[49]*pair.X_Mm*pair.Y_mm + con.c[49]*pair.X_mm*pair.Y_Mm + con.c[50]*pair.X_mm*pair.Y_mm)/pow(con.c[32]*pair.X_MM*pair.Y_MM + con.c[33]*pair.X_MM*pair.Y_Mm + con.c[34]*pair.X_MM*pair.Y_mm + con.c[35]*pair.X_Mm*pair.Y_MM + con.c[36]*pair.X_Mm*pair.Y_Mm + con.c[37]*pair.X_Mm*pair.Y_mm + con.c[38]*pair.X_mm*pair.Y_MM + con.c[39]*pair.X_mm*pair.Y_Mm + con.c[40]*pair.X_mm*pair.Y_mm, 2) ;
98 }
99 
100 inline float_t J22 (const Genotype_pair &pair, const Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con) {
101  return (-4.0*con.c[45]*pair.X_MM*pair.Y_MM*pair.m - con.c[46]*pair.X_MM*pair.Y_Mm - con.c[46]*pair.X_Mm*pair.Y_MM - con.c[47]*pair.X_MM*pair.Y_mm - con.c[47]*pair.X_mm*pair.Y_MM - con.c[48]*pair.X_Mm*pair.Y_Mm - con.c[49]*pair.X_Mm*pair.Y_mm - con.c[49]*pair.X_mm*pair.Y_Mm - con.c[50]*pair.X_mm*pair.Y_mm)*(4.0*con.c[45]*pair.X_MM*pair.Y_MM*pair.m + con.c[46]*pair.X_MM*pair.Y_Mm + con.c[46]*pair.X_Mm*pair.Y_MM + con.c[47]*pair.X_MM*pair.Y_mm + con.c[47]*pair.X_mm*pair.Y_MM + con.c[48]*pair.X_Mm*pair.Y_Mm + con.c[49]*pair.X_Mm*pair.Y_mm + con.c[49]*pair.X_mm*pair.Y_Mm + con.c[50]*pair.X_mm*pair.Y_mm)/pow(con.c[32]*pair.X_MM*pair.Y_MM + con.c[33]*pair.X_MM*pair.Y_Mm + con.c[34]*pair.X_MM*pair.Y_mm + con.c[35]*pair.X_Mm*pair.Y_MM + con.c[36]*pair.X_Mm*pair.Y_Mm + con.c[37]*pair.X_Mm*pair.Y_mm + con.c[38]*pair.X_mm*pair.Y_MM + con.c[39]*pair.X_mm*pair.Y_Mm + con.c[40]*pair.X_mm*pair.Y_mm, 2) ;
102 }
103 
104 inline float_t J23 (const Genotype_pair &pair, const Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con) {
105  return (4.0*con.c[45]*pair.X_MM*pair.Y_MM*pair.m + con.c[46]*pair.X_MM*pair.Y_Mm + con.c[46]*pair.X_Mm*pair.Y_MM + con.c[47]*pair.X_MM*pair.Y_mm + con.c[47]*pair.X_mm*pair.Y_MM + con.c[48]*pair.X_Mm*pair.Y_Mm + con.c[49]*pair.X_Mm*pair.Y_mm + con.c[49]*pair.X_mm*pair.Y_Mm + con.c[50]*pair.X_mm*pair.Y_mm)*(-con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_MM*pair.m + 2*con.c[28]*con.c[55]*con.c[56]*pair.X_Mm*pair.Y_MM*pair.m - con.c[28]*con.c[55]*con.c[56]*pair.X_mm*pair.Y_MM*pair.m - con.c[51]*pair.X_MM*pair.Y_Mm - con.c[51]*pair.X_mm*pair.Y_Mm - con.c[52]*pair.X_MM*pair.Y_mm - con.c[52]*pair.X_mm*pair.Y_mm - con.c[53]*pair.X_Mm*pair.Y_Mm - con.c[54]*pair.X_Mm*pair.Y_mm)/pow(con.c[32]*pair.X_MM*pair.Y_MM + con.c[33]*pair.X_MM*pair.Y_Mm + con.c[34]*pair.X_MM*pair.Y_mm + con.c[35]*pair.X_Mm*pair.Y_MM + con.c[36]*pair.X_Mm*pair.Y_Mm + con.c[37]*pair.X_Mm*pair.Y_mm + con.c[38]*pair.X_mm*pair.Y_MM + con.c[39]*pair.X_mm*pair.Y_Mm + con.c[40]*pair.X_mm*pair.Y_mm, 2) ;
106 }
107 
108 inline float_t J24 (const Genotype_pair &pair, const Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con) {
109  return (4.0*con.c[45]*pair.X_MM*pair.Y_MM*pair.m + con.c[46]*pair.X_MM*pair.Y_Mm + con.c[46]*pair.X_Mm*pair.Y_MM + con.c[47]*pair.X_MM*pair.Y_mm + con.c[47]*pair.X_mm*pair.Y_MM + con.c[48]*pair.X_Mm*pair.Y_Mm + con.c[49]*pair.X_Mm*pair.Y_mm + con.c[49]*pair.X_mm*pair.Y_Mm + con.c[50]*pair.X_mm*pair.Y_mm)*(-con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_MM*pair.m + 2*con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_Mm*pair.m - con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_mm*pair.m - con.c[51]*pair.X_Mm*pair.Y_MM - con.c[51]*pair.X_Mm*pair.Y_mm - con.c[52]*pair.X_mm*pair.Y_MM - con.c[52]*pair.X_mm*pair.Y_mm - con.c[53]*pair.X_Mm*pair.Y_Mm - con.c[54]*pair.X_mm*pair.Y_Mm)/pow(con.c[32]*pair.X_MM*pair.Y_MM + con.c[33]*pair.X_MM*pair.Y_Mm + con.c[34]*pair.X_MM*pair.Y_mm + con.c[35]*pair.X_Mm*pair.Y_MM + con.c[36]*pair.X_Mm*pair.Y_Mm + con.c[37]*pair.X_Mm*pair.Y_mm + con.c[38]*pair.X_mm*pair.Y_MM + con.c[39]*pair.X_mm*pair.Y_Mm + con.c[40]*pair.X_mm*pair.Y_mm, 2) ;
110 }
111 
112 inline float_t J25 (const Genotype_pair &pair, const Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con) {
113  return (4.0*con.c[45]*pair.X_MM*pair.Y_MM*pair.m + con.c[46]*pair.X_MM*pair.Y_Mm + con.c[46]*pair.X_Mm*pair.Y_MM + con.c[47]*pair.X_MM*pair.Y_mm + con.c[47]*pair.X_mm*pair.Y_MM + con.c[48]*pair.X_Mm*pair.Y_Mm + con.c[49]*pair.X_Mm*pair.Y_mm + con.c[49]*pair.X_mm*pair.Y_Mm + con.c[50]*pair.X_mm*pair.Y_mm)*(-con.c[31]*con.c[57]*pair.X_MM*pair.Y_MM*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + 2*con.c[31]*con.c[57]*pair.X_MM*pair.Y_Mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - con.c[31]*con.c[57]*pair.X_MM*pair.Y_mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_MM*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - 4*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_Mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - con.c[31]*con.c[57]*pair.X_mm*pair.Y_MM*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + 2*con.c[31]*con.c[57]*pair.X_mm*pair.Y_Mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - con.c[31]*con.c[57]*pair.X_mm*pair.Y_mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]))/pow(con.c[32]*pair.X_MM*pair.Y_MM + con.c[33]*pair.X_MM*pair.Y_Mm + con.c[34]*pair.X_MM*pair.Y_mm + con.c[35]*pair.X_Mm*pair.Y_MM + con.c[36]*pair.X_Mm*pair.Y_Mm + con.c[37]*pair.X_Mm*pair.Y_mm + con.c[38]*pair.X_mm*pair.Y_MM + con.c[39]*pair.X_mm*pair.Y_Mm + con.c[40]*pair.X_mm*pair.Y_mm, 2) ;
114 }
115 
116 inline float_t J26 (const Genotype_pair &pair, const Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con) {
117  return (-con.c[31]*con.c[57]*pair.X_MM*pair.Y_MM + 2*con.c[31]*con.c[57]*pair.X_MM*pair.Y_Mm - con.c[31]*con.c[57]*pair.X_MM*pair.Y_mm + 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_MM - 4*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_Mm + 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_mm - con.c[31]*con.c[57]*pair.X_mm*pair.Y_MM + 2*con.c[31]*con.c[57]*pair.X_mm*pair.Y_Mm - con.c[31]*con.c[57]*pair.X_mm*pair.Y_mm)*(4.0*con.c[45]*pair.X_MM*pair.Y_MM*pair.m + con.c[46]*pair.X_MM*pair.Y_Mm + con.c[46]*pair.X_Mm*pair.Y_MM + con.c[47]*pair.X_MM*pair.Y_mm + con.c[47]*pair.X_mm*pair.Y_MM + con.c[48]*pair.X_Mm*pair.Y_Mm + con.c[49]*pair.X_Mm*pair.Y_mm + con.c[49]*pair.X_mm*pair.Y_Mm + con.c[50]*pair.X_mm*pair.Y_mm)/pow(con.c[32]*pair.X_MM*pair.Y_MM + con.c[33]*pair.X_MM*pair.Y_Mm + con.c[34]*pair.X_MM*pair.Y_mm + con.c[35]*pair.X_Mm*pair.Y_MM + con.c[36]*pair.X_Mm*pair.Y_Mm + con.c[37]*pair.X_Mm*pair.Y_mm + con.c[38]*pair.X_mm*pair.Y_MM + con.c[39]*pair.X_mm*pair.Y_Mm + con.c[40]*pair.X_mm*pair.Y_mm, 2) ;
118 }
119 
120 inline float_t J30 (const Genotype_pair &pair, const Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con) {
121  return (-con.c[41]*pair.X_MM*pair.Y_Mm - con.c[41]*pair.X_mm*pair.Y_Mm - con.c[42]*pair.X_MM*pair.Y_mm - con.c[42]*pair.X_mm*pair.Y_mm - con.c[43]*pair.X_Mm*pair.Y_Mm - con.c[44]*pair.X_Mm*pair.Y_mm - con.c[45]*pair.X_MM*pair.Y_MM*pair.m + 2*con.c[45]*pair.X_Mm*pair.Y_MM*pair.m - con.c[45]*pair.X_mm*pair.Y_MM*pair.m)*(con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_MM*pair.m - 2*con.c[28]*con.c[55]*con.c[56]*pair.X_Mm*pair.Y_MM*pair.m + con.c[28]*con.c[55]*con.c[56]*pair.X_mm*pair.Y_MM*pair.m + con.c[51]*pair.X_MM*pair.Y_Mm + con.c[51]*pair.X_mm*pair.Y_Mm + con.c[52]*pair.X_MM*pair.Y_mm + con.c[52]*pair.X_mm*pair.Y_mm + con.c[53]*pair.X_Mm*pair.Y_Mm + con.c[54]*pair.X_Mm*pair.Y_mm)/pow(con.c[32]*pair.X_MM*pair.Y_MM + con.c[33]*pair.X_MM*pair.Y_Mm + con.c[34]*pair.X_MM*pair.Y_mm + con.c[35]*pair.X_Mm*pair.Y_MM + con.c[36]*pair.X_Mm*pair.Y_Mm + con.c[37]*pair.X_Mm*pair.Y_mm + con.c[38]*pair.X_mm*pair.Y_MM + con.c[39]*pair.X_mm*pair.Y_Mm + con.c[40]*pair.X_mm*pair.Y_mm, 2) ;
122 }
123 
124 inline float_t J31 (const Genotype_pair &pair, const Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con) {
125  return (-con.c[41]*pair.X_Mm*pair.Y_MM - con.c[41]*pair.X_Mm*pair.Y_mm - con.c[42]*pair.X_mm*pair.Y_MM - con.c[42]*pair.X_mm*pair.Y_mm - con.c[43]*pair.X_Mm*pair.Y_Mm - con.c[44]*pair.X_mm*pair.Y_Mm - con.c[45]*pair.X_MM*pair.Y_MM*pair.m + 2*con.c[45]*pair.X_MM*pair.Y_Mm*pair.m - con.c[45]*pair.X_MM*pair.Y_mm*pair.m)*(con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_MM*pair.m - 2*con.c[28]*con.c[55]*con.c[56]*pair.X_Mm*pair.Y_MM*pair.m + con.c[28]*con.c[55]*con.c[56]*pair.X_mm*pair.Y_MM*pair.m + con.c[51]*pair.X_MM*pair.Y_Mm + con.c[51]*pair.X_mm*pair.Y_Mm + con.c[52]*pair.X_MM*pair.Y_mm + con.c[52]*pair.X_mm*pair.Y_mm + con.c[53]*pair.X_Mm*pair.Y_Mm + con.c[54]*pair.X_Mm*pair.Y_mm)/pow(con.c[32]*pair.X_MM*pair.Y_MM + con.c[33]*pair.X_MM*pair.Y_Mm + con.c[34]*pair.X_MM*pair.Y_mm + con.c[35]*pair.X_Mm*pair.Y_MM + con.c[36]*pair.X_Mm*pair.Y_Mm + con.c[37]*pair.X_Mm*pair.Y_mm + con.c[38]*pair.X_mm*pair.Y_MM + con.c[39]*pair.X_mm*pair.Y_Mm + con.c[40]*pair.X_mm*pair.Y_mm, 2) ;
126 }
127 
128 inline float_t J32 (const Genotype_pair &pair, const Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con) {
129  return (-4.0*con.c[45]*pair.X_MM*pair.Y_MM*pair.m - con.c[46]*pair.X_MM*pair.Y_Mm - con.c[46]*pair.X_Mm*pair.Y_MM - con.c[47]*pair.X_MM*pair.Y_mm - con.c[47]*pair.X_mm*pair.Y_MM - con.c[48]*pair.X_Mm*pair.Y_Mm - con.c[49]*pair.X_Mm*pair.Y_mm - con.c[49]*pair.X_mm*pair.Y_Mm - con.c[50]*pair.X_mm*pair.Y_mm)*(con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_MM*pair.m - 2*con.c[28]*con.c[55]*con.c[56]*pair.X_Mm*pair.Y_MM*pair.m + con.c[28]*con.c[55]*con.c[56]*pair.X_mm*pair.Y_MM*pair.m + con.c[51]*pair.X_MM*pair.Y_Mm + con.c[51]*pair.X_mm*pair.Y_Mm + con.c[52]*pair.X_MM*pair.Y_mm + con.c[52]*pair.X_mm*pair.Y_mm + con.c[53]*pair.X_Mm*pair.Y_Mm + con.c[54]*pair.X_Mm*pair.Y_mm)/pow(con.c[32]*pair.X_MM*pair.Y_MM + con.c[33]*pair.X_MM*pair.Y_Mm + con.c[34]*pair.X_MM*pair.Y_mm + con.c[35]*pair.X_Mm*pair.Y_MM + con.c[36]*pair.X_Mm*pair.Y_Mm + con.c[37]*pair.X_Mm*pair.Y_mm + con.c[38]*pair.X_mm*pair.Y_MM + con.c[39]*pair.X_mm*pair.Y_Mm + con.c[40]*pair.X_mm*pair.Y_mm, 2) ;
130 }
131 
132 inline float_t J33 (const Genotype_pair &pair, const Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con) {
133  return (-con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_MM*pair.m + 2*con.c[28]*con.c[55]*con.c[56]*pair.X_Mm*pair.Y_MM*pair.m - con.c[28]*con.c[55]*con.c[56]*pair.X_mm*pair.Y_MM*pair.m - con.c[51]*pair.X_MM*pair.Y_Mm - con.c[51]*pair.X_mm*pair.Y_Mm - con.c[52]*pair.X_MM*pair.Y_mm - con.c[52]*pair.X_mm*pair.Y_mm - con.c[53]*pair.X_Mm*pair.Y_Mm - con.c[54]*pair.X_Mm*pair.Y_mm)*(con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_MM*pair.m - 2*con.c[28]*con.c[55]*con.c[56]*pair.X_Mm*pair.Y_MM*pair.m + con.c[28]*con.c[55]*con.c[56]*pair.X_mm*pair.Y_MM*pair.m + con.c[51]*pair.X_MM*pair.Y_Mm + con.c[51]*pair.X_mm*pair.Y_Mm + con.c[52]*pair.X_MM*pair.Y_mm + con.c[52]*pair.X_mm*pair.Y_mm + con.c[53]*pair.X_Mm*pair.Y_Mm + con.c[54]*pair.X_Mm*pair.Y_mm)/pow(con.c[32]*pair.X_MM*pair.Y_MM + con.c[33]*pair.X_MM*pair.Y_Mm + con.c[34]*pair.X_MM*pair.Y_mm + con.c[35]*pair.X_Mm*pair.Y_MM + con.c[36]*pair.X_Mm*pair.Y_Mm + con.c[37]*pair.X_Mm*pair.Y_mm + con.c[38]*pair.X_mm*pair.Y_MM + con.c[39]*pair.X_mm*pair.Y_Mm + con.c[40]*pair.X_mm*pair.Y_mm, 2) ;
134 }
135 
136 inline float_t J34 (const Genotype_pair &pair, const Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con) {
137  return (-con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_MM*pair.m + 2*con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_Mm*pair.m - con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_mm*pair.m - con.c[51]*pair.X_Mm*pair.Y_MM - con.c[51]*pair.X_Mm*pair.Y_mm - con.c[52]*pair.X_mm*pair.Y_MM - con.c[52]*pair.X_mm*pair.Y_mm - con.c[53]*pair.X_Mm*pair.Y_Mm - con.c[54]*pair.X_mm*pair.Y_Mm)*(con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_MM*pair.m - 2*con.c[28]*con.c[55]*con.c[56]*pair.X_Mm*pair.Y_MM*pair.m + con.c[28]*con.c[55]*con.c[56]*pair.X_mm*pair.Y_MM*pair.m + con.c[51]*pair.X_MM*pair.Y_Mm + con.c[51]*pair.X_mm*pair.Y_Mm + con.c[52]*pair.X_MM*pair.Y_mm + con.c[52]*pair.X_mm*pair.Y_mm + con.c[53]*pair.X_Mm*pair.Y_Mm + con.c[54]*pair.X_Mm*pair.Y_mm)/pow(con.c[32]*pair.X_MM*pair.Y_MM + con.c[33]*pair.X_MM*pair.Y_Mm + con.c[34]*pair.X_MM*pair.Y_mm + con.c[35]*pair.X_Mm*pair.Y_MM + con.c[36]*pair.X_Mm*pair.Y_Mm + con.c[37]*pair.X_Mm*pair.Y_mm + con.c[38]*pair.X_mm*pair.Y_MM + con.c[39]*pair.X_mm*pair.Y_Mm + con.c[40]*pair.X_mm*pair.Y_mm, 2) ;
138 }
139 
140 inline float_t J35 (const Genotype_pair &pair, const Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con) {
141  return (-con.c[31]*con.c[57]*pair.X_MM*pair.Y_MM*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + 2*con.c[31]*con.c[57]*pair.X_MM*pair.Y_Mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - con.c[31]*con.c[57]*pair.X_MM*pair.Y_mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_MM*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - 4*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_Mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - con.c[31]*con.c[57]*pair.X_mm*pair.Y_MM*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + 2*con.c[31]*con.c[57]*pair.X_mm*pair.Y_Mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - con.c[31]*con.c[57]*pair.X_mm*pair.Y_mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]))*(con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_MM*pair.m - 2*con.c[28]*con.c[55]*con.c[56]*pair.X_Mm*pair.Y_MM*pair.m + con.c[28]*con.c[55]*con.c[56]*pair.X_mm*pair.Y_MM*pair.m + con.c[51]*pair.X_MM*pair.Y_Mm + con.c[51]*pair.X_mm*pair.Y_Mm + con.c[52]*pair.X_MM*pair.Y_mm + con.c[52]*pair.X_mm*pair.Y_mm + con.c[53]*pair.X_Mm*pair.Y_Mm + con.c[54]*pair.X_Mm*pair.Y_mm)/pow(con.c[32]*pair.X_MM*pair.Y_MM + con.c[33]*pair.X_MM*pair.Y_Mm + con.c[34]*pair.X_MM*pair.Y_mm + con.c[35]*pair.X_Mm*pair.Y_MM + con.c[36]*pair.X_Mm*pair.Y_Mm + con.c[37]*pair.X_Mm*pair.Y_mm + con.c[38]*pair.X_mm*pair.Y_MM + con.c[39]*pair.X_mm*pair.Y_Mm + con.c[40]*pair.X_mm*pair.Y_mm, 2) ;
142 }
143 
144 inline float_t J36 (const Genotype_pair &pair, const Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con) {
145  return (-con.c[31]*con.c[57]*pair.X_MM*pair.Y_MM + 2*con.c[31]*con.c[57]*pair.X_MM*pair.Y_Mm - con.c[31]*con.c[57]*pair.X_MM*pair.Y_mm + 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_MM - 4*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_Mm + 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_mm - con.c[31]*con.c[57]*pair.X_mm*pair.Y_MM + 2*con.c[31]*con.c[57]*pair.X_mm*pair.Y_Mm - con.c[31]*con.c[57]*pair.X_mm*pair.Y_mm)*(con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_MM*pair.m - 2*con.c[28]*con.c[55]*con.c[56]*pair.X_Mm*pair.Y_MM*pair.m + con.c[28]*con.c[55]*con.c[56]*pair.X_mm*pair.Y_MM*pair.m + con.c[51]*pair.X_MM*pair.Y_Mm + con.c[51]*pair.X_mm*pair.Y_Mm + con.c[52]*pair.X_MM*pair.Y_mm + con.c[52]*pair.X_mm*pair.Y_mm + con.c[53]*pair.X_Mm*pair.Y_Mm + con.c[54]*pair.X_Mm*pair.Y_mm)/pow(con.c[32]*pair.X_MM*pair.Y_MM + con.c[33]*pair.X_MM*pair.Y_Mm + con.c[34]*pair.X_MM*pair.Y_mm + con.c[35]*pair.X_Mm*pair.Y_MM + con.c[36]*pair.X_Mm*pair.Y_Mm + con.c[37]*pair.X_Mm*pair.Y_mm + con.c[38]*pair.X_mm*pair.Y_MM + con.c[39]*pair.X_mm*pair.Y_Mm + con.c[40]*pair.X_mm*pair.Y_mm, 2) ;
146 }
147 
148 inline float_t J40 (const Genotype_pair &pair, const Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con) {
149  return (-con.c[41]*pair.X_MM*pair.Y_Mm - con.c[41]*pair.X_mm*pair.Y_Mm - con.c[42]*pair.X_MM*pair.Y_mm - con.c[42]*pair.X_mm*pair.Y_mm - con.c[43]*pair.X_Mm*pair.Y_Mm - con.c[44]*pair.X_Mm*pair.Y_mm - con.c[45]*pair.X_MM*pair.Y_MM*pair.m + 2*con.c[45]*pair.X_Mm*pair.Y_MM*pair.m - con.c[45]*pair.X_mm*pair.Y_MM*pair.m)*(con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_MM*pair.m - 2*con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_Mm*pair.m + con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_mm*pair.m + con.c[51]*pair.X_Mm*pair.Y_MM + con.c[51]*pair.X_Mm*pair.Y_mm + con.c[52]*pair.X_mm*pair.Y_MM + con.c[52]*pair.X_mm*pair.Y_mm + con.c[53]*pair.X_Mm*pair.Y_Mm + con.c[54]*pair.X_mm*pair.Y_Mm)/pow(con.c[32]*pair.X_MM*pair.Y_MM + con.c[33]*pair.X_MM*pair.Y_Mm + con.c[34]*pair.X_MM*pair.Y_mm + con.c[35]*pair.X_Mm*pair.Y_MM + con.c[36]*pair.X_Mm*pair.Y_Mm + con.c[37]*pair.X_Mm*pair.Y_mm + con.c[38]*pair.X_mm*pair.Y_MM + con.c[39]*pair.X_mm*pair.Y_Mm + con.c[40]*pair.X_mm*pair.Y_mm, 2) ;
150 }
151 
152 inline float_t J41 (const Genotype_pair &pair, const Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con) {
153  return (-con.c[41]*pair.X_Mm*pair.Y_MM - con.c[41]*pair.X_Mm*pair.Y_mm - con.c[42]*pair.X_mm*pair.Y_MM - con.c[42]*pair.X_mm*pair.Y_mm - con.c[43]*pair.X_Mm*pair.Y_Mm - con.c[44]*pair.X_mm*pair.Y_Mm - con.c[45]*pair.X_MM*pair.Y_MM*pair.m + 2*con.c[45]*pair.X_MM*pair.Y_Mm*pair.m - con.c[45]*pair.X_MM*pair.Y_mm*pair.m)*(con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_MM*pair.m - 2*con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_Mm*pair.m + con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_mm*pair.m + con.c[51]*pair.X_Mm*pair.Y_MM + con.c[51]*pair.X_Mm*pair.Y_mm + con.c[52]*pair.X_mm*pair.Y_MM + con.c[52]*pair.X_mm*pair.Y_mm + con.c[53]*pair.X_Mm*pair.Y_Mm + con.c[54]*pair.X_mm*pair.Y_Mm)/pow(con.c[32]*pair.X_MM*pair.Y_MM + con.c[33]*pair.X_MM*pair.Y_Mm + con.c[34]*pair.X_MM*pair.Y_mm + con.c[35]*pair.X_Mm*pair.Y_MM + con.c[36]*pair.X_Mm*pair.Y_Mm + con.c[37]*pair.X_Mm*pair.Y_mm + con.c[38]*pair.X_mm*pair.Y_MM + con.c[39]*pair.X_mm*pair.Y_Mm + con.c[40]*pair.X_mm*pair.Y_mm, 2) ;
154 }
155 
156 inline float_t J42 (const Genotype_pair &pair, const Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con) {
157  return (-4.0*con.c[45]*pair.X_MM*pair.Y_MM*pair.m - con.c[46]*pair.X_MM*pair.Y_Mm - con.c[46]*pair.X_Mm*pair.Y_MM - con.c[47]*pair.X_MM*pair.Y_mm - con.c[47]*pair.X_mm*pair.Y_MM - con.c[48]*pair.X_Mm*pair.Y_Mm - con.c[49]*pair.X_Mm*pair.Y_mm - con.c[49]*pair.X_mm*pair.Y_Mm - con.c[50]*pair.X_mm*pair.Y_mm)*(con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_MM*pair.m - 2*con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_Mm*pair.m + con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_mm*pair.m + con.c[51]*pair.X_Mm*pair.Y_MM + con.c[51]*pair.X_Mm*pair.Y_mm + con.c[52]*pair.X_mm*pair.Y_MM + con.c[52]*pair.X_mm*pair.Y_mm + con.c[53]*pair.X_Mm*pair.Y_Mm + con.c[54]*pair.X_mm*pair.Y_Mm)/pow(con.c[32]*pair.X_MM*pair.Y_MM + con.c[33]*pair.X_MM*pair.Y_Mm + con.c[34]*pair.X_MM*pair.Y_mm + con.c[35]*pair.X_Mm*pair.Y_MM + con.c[36]*pair.X_Mm*pair.Y_Mm + con.c[37]*pair.X_Mm*pair.Y_mm + con.c[38]*pair.X_mm*pair.Y_MM + con.c[39]*pair.X_mm*pair.Y_Mm + con.c[40]*pair.X_mm*pair.Y_mm, 2) ;
158 }
159 
160 inline float_t J43 (const Genotype_pair &pair, const Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con) {
161  return (-con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_MM*pair.m + 2*con.c[28]*con.c[55]*con.c[56]*pair.X_Mm*pair.Y_MM*pair.m - con.c[28]*con.c[55]*con.c[56]*pair.X_mm*pair.Y_MM*pair.m - con.c[51]*pair.X_MM*pair.Y_Mm - con.c[51]*pair.X_mm*pair.Y_Mm - con.c[52]*pair.X_MM*pair.Y_mm - con.c[52]*pair.X_mm*pair.Y_mm - con.c[53]*pair.X_Mm*pair.Y_Mm - con.c[54]*pair.X_Mm*pair.Y_mm)*(con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_MM*pair.m - 2*con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_Mm*pair.m + con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_mm*pair.m + con.c[51]*pair.X_Mm*pair.Y_MM + con.c[51]*pair.X_Mm*pair.Y_mm + con.c[52]*pair.X_mm*pair.Y_MM + con.c[52]*pair.X_mm*pair.Y_mm + con.c[53]*pair.X_Mm*pair.Y_Mm + con.c[54]*pair.X_mm*pair.Y_Mm)/pow(con.c[32]*pair.X_MM*pair.Y_MM + con.c[33]*pair.X_MM*pair.Y_Mm + con.c[34]*pair.X_MM*pair.Y_mm + con.c[35]*pair.X_Mm*pair.Y_MM + con.c[36]*pair.X_Mm*pair.Y_Mm + con.c[37]*pair.X_Mm*pair.Y_mm + con.c[38]*pair.X_mm*pair.Y_MM + con.c[39]*pair.X_mm*pair.Y_Mm + con.c[40]*pair.X_mm*pair.Y_mm, 2) ;
162 }
163 
164 inline float_t J44 (const Genotype_pair &pair, const Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con) {
165  return (-con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_MM*pair.m + 2*con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_Mm*pair.m - con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_mm*pair.m - con.c[51]*pair.X_Mm*pair.Y_MM - con.c[51]*pair.X_Mm*pair.Y_mm - con.c[52]*pair.X_mm*pair.Y_MM - con.c[52]*pair.X_mm*pair.Y_mm - con.c[53]*pair.X_Mm*pair.Y_Mm - con.c[54]*pair.X_mm*pair.Y_Mm)*(con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_MM*pair.m - 2*con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_Mm*pair.m + con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_mm*pair.m + con.c[51]*pair.X_Mm*pair.Y_MM + con.c[51]*pair.X_Mm*pair.Y_mm + con.c[52]*pair.X_mm*pair.Y_MM + con.c[52]*pair.X_mm*pair.Y_mm + con.c[53]*pair.X_Mm*pair.Y_Mm + con.c[54]*pair.X_mm*pair.Y_Mm)/pow(con.c[32]*pair.X_MM*pair.Y_MM + con.c[33]*pair.X_MM*pair.Y_Mm + con.c[34]*pair.X_MM*pair.Y_mm + con.c[35]*pair.X_Mm*pair.Y_MM + con.c[36]*pair.X_Mm*pair.Y_Mm + con.c[37]*pair.X_Mm*pair.Y_mm + con.c[38]*pair.X_mm*pair.Y_MM + con.c[39]*pair.X_mm*pair.Y_Mm + con.c[40]*pair.X_mm*pair.Y_mm, 2) ;
166 }
167 
168 inline float_t J45 (const Genotype_pair &pair, const Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con) {
169  return (-con.c[31]*con.c[57]*pair.X_MM*pair.Y_MM*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + 2*con.c[31]*con.c[57]*pair.X_MM*pair.Y_Mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - con.c[31]*con.c[57]*pair.X_MM*pair.Y_mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_MM*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - 4*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_Mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - con.c[31]*con.c[57]*pair.X_mm*pair.Y_MM*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + 2*con.c[31]*con.c[57]*pair.X_mm*pair.Y_Mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - con.c[31]*con.c[57]*pair.X_mm*pair.Y_mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]))*(con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_MM*pair.m - 2*con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_Mm*pair.m + con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_mm*pair.m + con.c[51]*pair.X_Mm*pair.Y_MM + con.c[51]*pair.X_Mm*pair.Y_mm + con.c[52]*pair.X_mm*pair.Y_MM + con.c[52]*pair.X_mm*pair.Y_mm + con.c[53]*pair.X_Mm*pair.Y_Mm + con.c[54]*pair.X_mm*pair.Y_Mm)/pow(con.c[32]*pair.X_MM*pair.Y_MM + con.c[33]*pair.X_MM*pair.Y_Mm + con.c[34]*pair.X_MM*pair.Y_mm + con.c[35]*pair.X_Mm*pair.Y_MM + con.c[36]*pair.X_Mm*pair.Y_Mm + con.c[37]*pair.X_Mm*pair.Y_mm + con.c[38]*pair.X_mm*pair.Y_MM + con.c[39]*pair.X_mm*pair.Y_Mm + con.c[40]*pair.X_mm*pair.Y_mm, 2) ;
170 }
171 
172 inline float_t J46 (const Genotype_pair &pair, const Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con) {
173  return (-con.c[31]*con.c[57]*pair.X_MM*pair.Y_MM + 2*con.c[31]*con.c[57]*pair.X_MM*pair.Y_Mm - con.c[31]*con.c[57]*pair.X_MM*pair.Y_mm + 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_MM - 4*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_Mm + 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_mm - con.c[31]*con.c[57]*pair.X_mm*pair.Y_MM + 2*con.c[31]*con.c[57]*pair.X_mm*pair.Y_Mm - con.c[31]*con.c[57]*pair.X_mm*pair.Y_mm)*(con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_MM*pair.m - 2*con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_Mm*pair.m + con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_mm*pair.m + con.c[51]*pair.X_Mm*pair.Y_MM + con.c[51]*pair.X_Mm*pair.Y_mm + con.c[52]*pair.X_mm*pair.Y_MM + con.c[52]*pair.X_mm*pair.Y_mm + con.c[53]*pair.X_Mm*pair.Y_Mm + con.c[54]*pair.X_mm*pair.Y_Mm)/pow(con.c[32]*pair.X_MM*pair.Y_MM + con.c[33]*pair.X_MM*pair.Y_Mm + con.c[34]*pair.X_MM*pair.Y_mm + con.c[35]*pair.X_Mm*pair.Y_MM + con.c[36]*pair.X_Mm*pair.Y_Mm + con.c[37]*pair.X_Mm*pair.Y_mm + con.c[38]*pair.X_mm*pair.Y_MM + con.c[39]*pair.X_mm*pair.Y_Mm + con.c[40]*pair.X_mm*pair.Y_mm, 2) ;
174 }
175 
176 inline float_t J50 (const Genotype_pair &pair, const Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con) {
177  return (-con.c[41]*pair.X_MM*pair.Y_Mm - con.c[41]*pair.X_mm*pair.Y_Mm - con.c[42]*pair.X_MM*pair.Y_mm - con.c[42]*pair.X_mm*pair.Y_mm - con.c[43]*pair.X_Mm*pair.Y_Mm - con.c[44]*pair.X_Mm*pair.Y_mm - con.c[45]*pair.X_MM*pair.Y_MM*pair.m + 2*con.c[45]*pair.X_Mm*pair.Y_MM*pair.m - con.c[45]*pair.X_mm*pair.Y_MM*pair.m)*(con.c[31]*con.c[57]*pair.X_MM*pair.Y_MM*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - 2*con.c[31]*con.c[57]*pair.X_MM*pair.Y_Mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + con.c[31]*con.c[57]*pair.X_MM*pair.Y_mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_MM*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + 4*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_Mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + con.c[31]*con.c[57]*pair.X_mm*pair.Y_MM*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - 2*con.c[31]*con.c[57]*pair.X_mm*pair.Y_Mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + con.c[31]*con.c[57]*pair.X_mm*pair.Y_mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]))/pow(con.c[32]*pair.X_MM*pair.Y_MM + con.c[33]*pair.X_MM*pair.Y_Mm + con.c[34]*pair.X_MM*pair.Y_mm + con.c[35]*pair.X_Mm*pair.Y_MM + con.c[36]*pair.X_Mm*pair.Y_Mm + con.c[37]*pair.X_Mm*pair.Y_mm + con.c[38]*pair.X_mm*pair.Y_MM + con.c[39]*pair.X_mm*pair.Y_Mm + con.c[40]*pair.X_mm*pair.Y_mm, 2) ;
178 }
179 
180 inline float_t J51 (const Genotype_pair &pair, const Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con) {
181  return (-con.c[41]*pair.X_Mm*pair.Y_MM - con.c[41]*pair.X_Mm*pair.Y_mm - con.c[42]*pair.X_mm*pair.Y_MM - con.c[42]*pair.X_mm*pair.Y_mm - con.c[43]*pair.X_Mm*pair.Y_Mm - con.c[44]*pair.X_mm*pair.Y_Mm - con.c[45]*pair.X_MM*pair.Y_MM*pair.m + 2*con.c[45]*pair.X_MM*pair.Y_Mm*pair.m - con.c[45]*pair.X_MM*pair.Y_mm*pair.m)*(con.c[31]*con.c[57]*pair.X_MM*pair.Y_MM*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - 2*con.c[31]*con.c[57]*pair.X_MM*pair.Y_Mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + con.c[31]*con.c[57]*pair.X_MM*pair.Y_mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_MM*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + 4*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_Mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + con.c[31]*con.c[57]*pair.X_mm*pair.Y_MM*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - 2*con.c[31]*con.c[57]*pair.X_mm*pair.Y_Mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + con.c[31]*con.c[57]*pair.X_mm*pair.Y_mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]))/pow(con.c[32]*pair.X_MM*pair.Y_MM + con.c[33]*pair.X_MM*pair.Y_Mm + con.c[34]*pair.X_MM*pair.Y_mm + con.c[35]*pair.X_Mm*pair.Y_MM + con.c[36]*pair.X_Mm*pair.Y_Mm + con.c[37]*pair.X_Mm*pair.Y_mm + con.c[38]*pair.X_mm*pair.Y_MM + con.c[39]*pair.X_mm*pair.Y_Mm + con.c[40]*pair.X_mm*pair.Y_mm, 2) ;
182 }
183 
184 inline float_t J52 (const Genotype_pair &pair, const Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con) {
185  return (-4.0*con.c[45]*pair.X_MM*pair.Y_MM*pair.m - con.c[46]*pair.X_MM*pair.Y_Mm - con.c[46]*pair.X_Mm*pair.Y_MM - con.c[47]*pair.X_MM*pair.Y_mm - con.c[47]*pair.X_mm*pair.Y_MM - con.c[48]*pair.X_Mm*pair.Y_Mm - con.c[49]*pair.X_Mm*pair.Y_mm - con.c[49]*pair.X_mm*pair.Y_Mm - con.c[50]*pair.X_mm*pair.Y_mm)*(con.c[31]*con.c[57]*pair.X_MM*pair.Y_MM*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - 2*con.c[31]*con.c[57]*pair.X_MM*pair.Y_Mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + con.c[31]*con.c[57]*pair.X_MM*pair.Y_mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_MM*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + 4*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_Mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + con.c[31]*con.c[57]*pair.X_mm*pair.Y_MM*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - 2*con.c[31]*con.c[57]*pair.X_mm*pair.Y_Mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + con.c[31]*con.c[57]*pair.X_mm*pair.Y_mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]))/pow(con.c[32]*pair.X_MM*pair.Y_MM + con.c[33]*pair.X_MM*pair.Y_Mm + con.c[34]*pair.X_MM*pair.Y_mm + con.c[35]*pair.X_Mm*pair.Y_MM + con.c[36]*pair.X_Mm*pair.Y_Mm + con.c[37]*pair.X_Mm*pair.Y_mm + con.c[38]*pair.X_mm*pair.Y_MM + con.c[39]*pair.X_mm*pair.Y_Mm + con.c[40]*pair.X_mm*pair.Y_mm, 2) ;
186 }
187 
188 inline float_t J53 (const Genotype_pair &pair, const Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con) {
189  return (con.c[31]*con.c[57]*pair.X_MM*pair.Y_MM*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - 2*con.c[31]*con.c[57]*pair.X_MM*pair.Y_Mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + con.c[31]*con.c[57]*pair.X_MM*pair.Y_mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_MM*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + 4*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_Mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + con.c[31]*con.c[57]*pair.X_mm*pair.Y_MM*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - 2*con.c[31]*con.c[57]*pair.X_mm*pair.Y_Mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + con.c[31]*con.c[57]*pair.X_mm*pair.Y_mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]))*(-con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_MM*pair.m + 2*con.c[28]*con.c[55]*con.c[56]*pair.X_Mm*pair.Y_MM*pair.m - con.c[28]*con.c[55]*con.c[56]*pair.X_mm*pair.Y_MM*pair.m - con.c[51]*pair.X_MM*pair.Y_Mm - con.c[51]*pair.X_mm*pair.Y_Mm - con.c[52]*pair.X_MM*pair.Y_mm - con.c[52]*pair.X_mm*pair.Y_mm - con.c[53]*pair.X_Mm*pair.Y_Mm - con.c[54]*pair.X_Mm*pair.Y_mm)/pow(con.c[32]*pair.X_MM*pair.Y_MM + con.c[33]*pair.X_MM*pair.Y_Mm + con.c[34]*pair.X_MM*pair.Y_mm + con.c[35]*pair.X_Mm*pair.Y_MM + con.c[36]*pair.X_Mm*pair.Y_Mm + con.c[37]*pair.X_Mm*pair.Y_mm + con.c[38]*pair.X_mm*pair.Y_MM + con.c[39]*pair.X_mm*pair.Y_Mm + con.c[40]*pair.X_mm*pair.Y_mm, 2) ;
190 }
191 
192 inline float_t J54 (const Genotype_pair &pair, const Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con) {
193  return (con.c[31]*con.c[57]*pair.X_MM*pair.Y_MM*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - 2*con.c[31]*con.c[57]*pair.X_MM*pair.Y_Mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + con.c[31]*con.c[57]*pair.X_MM*pair.Y_mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_MM*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + 4*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_Mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + con.c[31]*con.c[57]*pair.X_mm*pair.Y_MM*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - 2*con.c[31]*con.c[57]*pair.X_mm*pair.Y_Mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + con.c[31]*con.c[57]*pair.X_mm*pair.Y_mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]))*(-con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_MM*pair.m + 2*con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_Mm*pair.m - con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_mm*pair.m - con.c[51]*pair.X_Mm*pair.Y_MM - con.c[51]*pair.X_Mm*pair.Y_mm - con.c[52]*pair.X_mm*pair.Y_MM - con.c[52]*pair.X_mm*pair.Y_mm - con.c[53]*pair.X_Mm*pair.Y_Mm - con.c[54]*pair.X_mm*pair.Y_Mm)/pow(con.c[32]*pair.X_MM*pair.Y_MM + con.c[33]*pair.X_MM*pair.Y_Mm + con.c[34]*pair.X_MM*pair.Y_mm + con.c[35]*pair.X_Mm*pair.Y_MM + con.c[36]*pair.X_Mm*pair.Y_Mm + con.c[37]*pair.X_Mm*pair.Y_mm + con.c[38]*pair.X_mm*pair.Y_MM + con.c[39]*pair.X_mm*pair.Y_Mm + con.c[40]*pair.X_mm*pair.Y_mm, 2) ;
194 }
195 
196 inline float_t J55 (const Genotype_pair &pair, const Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con) {
197  return (-con.c[31]*con.c[57]*pair.X_MM*pair.Y_MM*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + 2*con.c[31]*con.c[57]*pair.X_MM*pair.Y_Mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - con.c[31]*con.c[57]*pair.X_MM*pair.Y_mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_MM*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - 4*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_Mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - con.c[31]*con.c[57]*pair.X_mm*pair.Y_MM*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + 2*con.c[31]*con.c[57]*pair.X_mm*pair.Y_Mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - con.c[31]*con.c[57]*pair.X_mm*pair.Y_mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]))*(con.c[31]*con.c[57]*pair.X_MM*pair.Y_MM*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - 2*con.c[31]*con.c[57]*pair.X_MM*pair.Y_Mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + con.c[31]*con.c[57]*pair.X_MM*pair.Y_mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_MM*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + 4*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_Mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + con.c[31]*con.c[57]*pair.X_mm*pair.Y_MM*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - 2*con.c[31]*con.c[57]*pair.X_mm*pair.Y_Mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + con.c[31]*con.c[57]*pair.X_mm*pair.Y_mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]))/pow(con.c[32]*pair.X_MM*pair.Y_MM + con.c[33]*pair.X_MM*pair.Y_Mm + con.c[34]*pair.X_MM*pair.Y_mm + con.c[35]*pair.X_Mm*pair.Y_MM + con.c[36]*pair.X_Mm*pair.Y_Mm + con.c[37]*pair.X_Mm*pair.Y_mm + con.c[38]*pair.X_mm*pair.Y_MM + con.c[39]*pair.X_mm*pair.Y_Mm + con.c[40]*pair.X_mm*pair.Y_mm, 2) ;
198 }
199 
200 inline float_t J56 (const Genotype_pair &pair, const Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con) {
201  return (-con.c[31]*con.c[57]*pair.X_MM*pair.Y_MM + 2*con.c[31]*con.c[57]*pair.X_MM*pair.Y_Mm - con.c[31]*con.c[57]*pair.X_MM*pair.Y_mm + 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_MM - 4*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_Mm + 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_mm - con.c[31]*con.c[57]*pair.X_mm*pair.Y_MM + 2*con.c[31]*con.c[57]*pair.X_mm*pair.Y_Mm - con.c[31]*con.c[57]*pair.X_mm*pair.Y_mm)*(con.c[31]*con.c[57]*pair.X_MM*pair.Y_MM*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - 2*con.c[31]*con.c[57]*pair.X_MM*pair.Y_Mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + con.c[31]*con.c[57]*pair.X_MM*pair.Y_mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_MM*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + 4*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_Mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + con.c[31]*con.c[57]*pair.X_mm*pair.Y_MM*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - 2*con.c[31]*con.c[57]*pair.X_mm*pair.Y_Mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + con.c[31]*con.c[57]*pair.X_mm*pair.Y_mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]))/pow(con.c[32]*pair.X_MM*pair.Y_MM + con.c[33]*pair.X_MM*pair.Y_Mm + con.c[34]*pair.X_MM*pair.Y_mm + con.c[35]*pair.X_Mm*pair.Y_MM + con.c[36]*pair.X_Mm*pair.Y_Mm + con.c[37]*pair.X_Mm*pair.Y_mm + con.c[38]*pair.X_mm*pair.Y_MM + con.c[39]*pair.X_mm*pair.Y_Mm + con.c[40]*pair.X_mm*pair.Y_mm, 2) ;
202 }
203 
204 inline float_t J60 (const Genotype_pair &pair, const Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con) {
205  return (-con.c[41]*pair.X_MM*pair.Y_Mm - con.c[41]*pair.X_mm*pair.Y_Mm - con.c[42]*pair.X_MM*pair.Y_mm - con.c[42]*pair.X_mm*pair.Y_mm - con.c[43]*pair.X_Mm*pair.Y_Mm - con.c[44]*pair.X_Mm*pair.Y_mm - con.c[45]*pair.X_MM*pair.Y_MM*pair.m + 2*con.c[45]*pair.X_Mm*pair.Y_MM*pair.m - con.c[45]*pair.X_mm*pair.Y_MM*pair.m)*(con.c[31]*con.c[57]*pair.X_MM*pair.Y_MM - 2*con.c[31]*con.c[57]*pair.X_MM*pair.Y_Mm + con.c[31]*con.c[57]*pair.X_MM*pair.Y_mm - 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_MM + 4*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_Mm - 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_mm + con.c[31]*con.c[57]*pair.X_mm*pair.Y_MM - 2*con.c[31]*con.c[57]*pair.X_mm*pair.Y_Mm + con.c[31]*con.c[57]*pair.X_mm*pair.Y_mm)/pow(con.c[32]*pair.X_MM*pair.Y_MM + con.c[33]*pair.X_MM*pair.Y_Mm + con.c[34]*pair.X_MM*pair.Y_mm + con.c[35]*pair.X_Mm*pair.Y_MM + con.c[36]*pair.X_Mm*pair.Y_Mm + con.c[37]*pair.X_Mm*pair.Y_mm + con.c[38]*pair.X_mm*pair.Y_MM + con.c[39]*pair.X_mm*pair.Y_Mm + con.c[40]*pair.X_mm*pair.Y_mm, 2) ;
206 }
207 
208 inline float_t J61 (const Genotype_pair &pair, const Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con) {
209  return (-con.c[41]*pair.X_Mm*pair.Y_MM - con.c[41]*pair.X_Mm*pair.Y_mm - con.c[42]*pair.X_mm*pair.Y_MM - con.c[42]*pair.X_mm*pair.Y_mm - con.c[43]*pair.X_Mm*pair.Y_Mm - con.c[44]*pair.X_mm*pair.Y_Mm - con.c[45]*pair.X_MM*pair.Y_MM*pair.m + 2*con.c[45]*pair.X_MM*pair.Y_Mm*pair.m - con.c[45]*pair.X_MM*pair.Y_mm*pair.m)*(con.c[31]*con.c[57]*pair.X_MM*pair.Y_MM - 2*con.c[31]*con.c[57]*pair.X_MM*pair.Y_Mm + con.c[31]*con.c[57]*pair.X_MM*pair.Y_mm - 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_MM + 4*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_Mm - 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_mm + con.c[31]*con.c[57]*pair.X_mm*pair.Y_MM - 2*con.c[31]*con.c[57]*pair.X_mm*pair.Y_Mm + con.c[31]*con.c[57]*pair.X_mm*pair.Y_mm)/pow(con.c[32]*pair.X_MM*pair.Y_MM + con.c[33]*pair.X_MM*pair.Y_Mm + con.c[34]*pair.X_MM*pair.Y_mm + con.c[35]*pair.X_Mm*pair.Y_MM + con.c[36]*pair.X_Mm*pair.Y_Mm + con.c[37]*pair.X_Mm*pair.Y_mm + con.c[38]*pair.X_mm*pair.Y_MM + con.c[39]*pair.X_mm*pair.Y_Mm + con.c[40]*pair.X_mm*pair.Y_mm, 2) ;
210 }
211 
212 inline float_t J62 (const Genotype_pair &pair, const Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con) {
213  return (con.c[31]*con.c[57]*pair.X_MM*pair.Y_MM - 2*con.c[31]*con.c[57]*pair.X_MM*pair.Y_Mm + con.c[31]*con.c[57]*pair.X_MM*pair.Y_mm - 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_MM + 4*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_Mm - 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_mm + con.c[31]*con.c[57]*pair.X_mm*pair.Y_MM - 2*con.c[31]*con.c[57]*pair.X_mm*pair.Y_Mm + con.c[31]*con.c[57]*pair.X_mm*pair.Y_mm)*(-4.0*con.c[45]*pair.X_MM*pair.Y_MM*pair.m - con.c[46]*pair.X_MM*pair.Y_Mm - con.c[46]*pair.X_Mm*pair.Y_MM - con.c[47]*pair.X_MM*pair.Y_mm - con.c[47]*pair.X_mm*pair.Y_MM - con.c[48]*pair.X_Mm*pair.Y_Mm - con.c[49]*pair.X_Mm*pair.Y_mm - con.c[49]*pair.X_mm*pair.Y_Mm - con.c[50]*pair.X_mm*pair.Y_mm)/pow(con.c[32]*pair.X_MM*pair.Y_MM + con.c[33]*pair.X_MM*pair.Y_Mm + con.c[34]*pair.X_MM*pair.Y_mm + con.c[35]*pair.X_Mm*pair.Y_MM + con.c[36]*pair.X_Mm*pair.Y_Mm + con.c[37]*pair.X_Mm*pair.Y_mm + con.c[38]*pair.X_mm*pair.Y_MM + con.c[39]*pair.X_mm*pair.Y_Mm + con.c[40]*pair.X_mm*pair.Y_mm, 2) ;
214 }
215 
216 inline float_t J63 (const Genotype_pair &pair, const Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con) {
217  return (con.c[31]*con.c[57]*pair.X_MM*pair.Y_MM - 2*con.c[31]*con.c[57]*pair.X_MM*pair.Y_Mm + con.c[31]*con.c[57]*pair.X_MM*pair.Y_mm - 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_MM + 4*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_Mm - 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_mm + con.c[31]*con.c[57]*pair.X_mm*pair.Y_MM - 2*con.c[31]*con.c[57]*pair.X_mm*pair.Y_Mm + con.c[31]*con.c[57]*pair.X_mm*pair.Y_mm)*(-con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_MM*pair.m + 2*con.c[28]*con.c[55]*con.c[56]*pair.X_Mm*pair.Y_MM*pair.m - con.c[28]*con.c[55]*con.c[56]*pair.X_mm*pair.Y_MM*pair.m - con.c[51]*pair.X_MM*pair.Y_Mm - con.c[51]*pair.X_mm*pair.Y_Mm - con.c[52]*pair.X_MM*pair.Y_mm - con.c[52]*pair.X_mm*pair.Y_mm - con.c[53]*pair.X_Mm*pair.Y_Mm - con.c[54]*pair.X_Mm*pair.Y_mm)/pow(con.c[32]*pair.X_MM*pair.Y_MM + con.c[33]*pair.X_MM*pair.Y_Mm + con.c[34]*pair.X_MM*pair.Y_mm + con.c[35]*pair.X_Mm*pair.Y_MM + con.c[36]*pair.X_Mm*pair.Y_Mm + con.c[37]*pair.X_Mm*pair.Y_mm + con.c[38]*pair.X_mm*pair.Y_MM + con.c[39]*pair.X_mm*pair.Y_Mm + con.c[40]*pair.X_mm*pair.Y_mm, 2) ;
218 }
219 
220 inline float_t J64 (const Genotype_pair &pair, const Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con) {
221  return (con.c[31]*con.c[57]*pair.X_MM*pair.Y_MM - 2*con.c[31]*con.c[57]*pair.X_MM*pair.Y_Mm + con.c[31]*con.c[57]*pair.X_MM*pair.Y_mm - 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_MM + 4*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_Mm - 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_mm + con.c[31]*con.c[57]*pair.X_mm*pair.Y_MM - 2*con.c[31]*con.c[57]*pair.X_mm*pair.Y_Mm + con.c[31]*con.c[57]*pair.X_mm*pair.Y_mm)*(-con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_MM*pair.m + 2*con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_Mm*pair.m - con.c[28]*con.c[55]*con.c[56]*pair.X_MM*pair.Y_mm*pair.m - con.c[51]*pair.X_Mm*pair.Y_MM - con.c[51]*pair.X_Mm*pair.Y_mm - con.c[52]*pair.X_mm*pair.Y_MM - con.c[52]*pair.X_mm*pair.Y_mm - con.c[53]*pair.X_Mm*pair.Y_Mm - con.c[54]*pair.X_mm*pair.Y_Mm)/pow(con.c[32]*pair.X_MM*pair.Y_MM + con.c[33]*pair.X_MM*pair.Y_Mm + con.c[34]*pair.X_MM*pair.Y_mm + con.c[35]*pair.X_Mm*pair.Y_MM + con.c[36]*pair.X_Mm*pair.Y_Mm + con.c[37]*pair.X_Mm*pair.Y_mm + con.c[38]*pair.X_mm*pair.Y_MM + con.c[39]*pair.X_mm*pair.Y_Mm + con.c[40]*pair.X_mm*pair.Y_mm, 2) ;
222 }
223 
224 inline float_t J65 (const Genotype_pair &pair, const Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con) {
225  return (con.c[31]*con.c[57]*pair.X_MM*pair.Y_MM - 2*con.c[31]*con.c[57]*pair.X_MM*pair.Y_Mm + con.c[31]*con.c[57]*pair.X_MM*pair.Y_mm - 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_MM + 4*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_Mm - 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_mm + con.c[31]*con.c[57]*pair.X_mm*pair.Y_MM - 2*con.c[31]*con.c[57]*pair.X_mm*pair.Y_Mm + con.c[31]*con.c[57]*pair.X_mm*pair.Y_mm)*(-con.c[31]*con.c[57]*pair.X_MM*pair.Y_MM*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + 2*con.c[31]*con.c[57]*pair.X_MM*pair.Y_Mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - con.c[31]*con.c[57]*pair.X_MM*pair.Y_mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_MM*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - 4*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_Mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - con.c[31]*con.c[57]*pair.X_mm*pair.Y_MM*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) + 2*con.c[31]*con.c[57]*pair.X_mm*pair.Y_Mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]) - con.c[31]*con.c[57]*pair.X_mm*pair.Y_mm*fabs(-3.0 + 1.0/pair.m + 1.0/con.c[55]))/pow(con.c[32]*pair.X_MM*pair.Y_MM + con.c[33]*pair.X_MM*pair.Y_Mm + con.c[34]*pair.X_MM*pair.Y_mm + con.c[35]*pair.X_Mm*pair.Y_MM + con.c[36]*pair.X_Mm*pair.Y_Mm + con.c[37]*pair.X_Mm*pair.Y_mm + con.c[38]*pair.X_mm*pair.Y_MM + con.c[39]*pair.X_mm*pair.Y_Mm + con.c[40]*pair.X_mm*pair.Y_mm, 2) ;
226 }
227 
228 inline float_t J66 (const Genotype_pair &pair, const Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con) {
229  return (-con.c[31]*con.c[57]*pair.X_MM*pair.Y_MM + 2*con.c[31]*con.c[57]*pair.X_MM*pair.Y_Mm - con.c[31]*con.c[57]*pair.X_MM*pair.Y_mm + 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_MM - 4*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_Mm + 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_mm - con.c[31]*con.c[57]*pair.X_mm*pair.Y_MM + 2*con.c[31]*con.c[57]*pair.X_mm*pair.Y_Mm - con.c[31]*con.c[57]*pair.X_mm*pair.Y_mm)*(con.c[31]*con.c[57]*pair.X_MM*pair.Y_MM - 2*con.c[31]*con.c[57]*pair.X_MM*pair.Y_Mm + con.c[31]*con.c[57]*pair.X_MM*pair.Y_mm - 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_MM + 4*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_Mm - 2*con.c[31]*con.c[57]*pair.X_Mm*pair.Y_mm + con.c[31]*con.c[57]*pair.X_mm*pair.Y_MM - 2*con.c[31]*con.c[57]*pair.X_mm*pair.Y_Mm + con.c[31]*con.c[57]*pair.X_mm*pair.Y_mm)/pow(con.c[32]*pair.X_MM*pair.Y_MM + con.c[33]*pair.X_MM*pair.Y_Mm + con.c[34]*pair.X_MM*pair.Y_mm + con.c[35]*pair.X_Mm*pair.Y_MM + con.c[36]*pair.X_Mm*pair.Y_Mm + con.c[37]*pair.X_Mm*pair.Y_mm + con.c[38]*pair.X_mm*pair.Y_MM + con.c[39]*pair.X_mm*pair.Y_Mm + con.c[40]*pair.X_mm*pair.Y_mm, 2) ;
230 }
231 
232 inline float_t lnL_NR (const Genotype_pair &pair, const Relatedness &rel) {
233  return log((pair.X_MM*pair.Y_MM*pow(pair.m - 1, 2)*(pair.m*(pair.m*rel.Delta_XY_*fabs(pair.m - 1) + rel.delta_XY_*fabs(3.0*pair.m*(pair.m - 1) + 1.0)) + (-pair.m*rel.f_X_*(pair.m - 1) - pair.m*rel.f_Y_*(pair.m - 1) + 2.0*pair.m*rel.gamma_XY_*(2.0*pair.m - 1.0) + 2.0*pair.m*rel.gamma_YX_*(2.0*pair.m - 1.0) - 4.0*pair.m*rel.theta_XY_*(pair.m - 1) + pow(pair.m - 1, 2))*fabs(pair.m - 1)) - pair.X_MM*pair.Y_Mm*(pair.m - 1)*(2*pair.m*(pair.m - 1)*(pair.m*rel.Delta_XY_*fabs(pair.m - 1) + rel.delta_XY_*fabs(3.0*pair.m*(pair.m - 1) + 1.0)) + (-2*pair.m*rel.f_X_*pow(pair.m - 1, 2) - 2*pair.m*rel.f_Y_*pow(pair.m - 1, 2) + 4.0*pair.m*rel.gamma_XY_*(pair.m - 1)*(2.0*pair.m - 1.0) + 2.0*pair.m*rel.gamma_XY_*(2.0*pair.m - 1.0) + 4.0*pair.m*rel.gamma_YX_*(pair.m - 1)*(2.0*pair.m - 1.0) - 8.0*pair.m*rel.theta_XY_*pow(pair.m - 1, 2) - 2.0*pair.m*rel.theta_XY_ - 2.0*pair.m*(rel.f_X_*(pair.m - 1) + rel.theta_XY_*(2.0*pair.m - 3.0)) + 2*pow(pair.m - 1, 3) + 2.0*pow(pair.m - 1, 2))*fabs(pair.m - 1)) + pair.X_MM*pair.Y_mm*(pair.m*pow(pair.m - 1, 2)*(pair.m*rel.Delta_XY_*fabs(pair.m - 1) + rel.delta_XY_*fabs(3.0*pair.m*(pair.m - 1) + 1.0)) + (-pair.m*rel.f_X_*pow(pair.m - 1, 3) - pair.m*rel.f_X_*(pair.m - 1) - pair.m*rel.f_Y_*pow(pair.m - 1, 3) + 2.0*pair.m*rel.gamma_XY_*pow(pair.m - 1, 2)*(2.0*pair.m - 1.0) + 2.0*pair.m*rel.gamma_XY_*(pair.m - 1)*(2.0*pair.m - 1.0) + 2.0*pair.m*rel.gamma_YX_*pow(pair.m - 1, 2)*(2.0*pair.m - 1.0) - 4.0*pair.m*rel.theta_XY_*pow(pair.m - 1, 3) - 2.0*pair.m*rel.theta_XY_*(pair.m - 1) - pair.m*(pair.m - 1) + pair.m + pow(pair.m - 1, 4) + 2.0*pow(pair.m - 1, 3) + 4.0*pow(pair.m - 1, 2) - 2.0*(pair.m - 1)*(pair.m*(rel.f_X_*(pair.m - 1) + rel.theta_XY_*(2.0*pair.m - 3.0)) + pair.m - 1) - 1)*fabs(pair.m - 1)) - pair.X_Mm*pair.Y_MM*(pair.m - 1)*(2*pair.m*(pair.m - 1)*(pair.m*rel.Delta_XY_*fabs(pair.m - 1) + rel.delta_XY_*fabs(3.0*pair.m*(pair.m - 1) + 1.0)) + (-2*pair.m*rel.f_X_*pow(pair.m - 1, 2) - 2*pair.m*rel.f_Y_*pow(pair.m - 1, 2) + 4.0*pair.m*rel.gamma_XY_*(pair.m - 1)*(2.0*pair.m - 1.0) + 4.0*pair.m*rel.gamma_YX_*(pair.m - 1)*(2.0*pair.m - 1.0) + 2.0*pair.m*rel.gamma_YX_*(2.0*pair.m - 1.0) - 8.0*pair.m*rel.theta_XY_*pow(pair.m - 1, 2) - 2.0*pair.m*rel.theta_XY_ - 2.0*pair.m*(rel.f_Y_*(pair.m - 1) + rel.theta_XY_*(2.0*pair.m - 3.0)) + 2*pow(pair.m - 1, 3) + 2.0*pow(pair.m - 1, 2))*fabs(pair.m - 1)) + pair.X_Mm*pair.Y_Mm*(pair.m - 1)*(4*pair.m*(pair.m - 1)*(pair.m*rel.Delta_XY_*fabs(pair.m - 1) + rel.delta_XY_*fabs(3.0*pair.m*(pair.m - 1) + 1.0)) + (-4*pair.m*rel.f_X_*pow(pair.m - 1, 2) - 4*pair.m*rel.f_Y_*pow(pair.m - 1, 2) + 8.0*pair.m*rel.gamma_XY_*(pair.m - 1)*(2.0*pair.m - 1.0) + 4.0*pair.m*rel.gamma_XY_*(2.0*pair.m - 1.0) + 8.0*pair.m*rel.gamma_YX_*(pair.m - 1)*(2.0*pair.m - 1.0) + 4.0*pair.m*rel.gamma_YX_*(2.0*pair.m - 1.0) - 16.0*pair.m*rel.theta_XY_*pow(pair.m - 1, 2) - 12.0*pair.m*rel.theta_XY_ - 4.0*pair.m*(rel.f_X_*(pair.m - 1) + rel.theta_XY_*(2.0*pair.m - 3.0)) - 4.0*pair.m*(rel.f_Y_*(pair.m - 1) + rel.theta_XY_*(2.0*pair.m - 3.0)) + 4.0*pair.m + 4*pow(pair.m - 1, 3) + 8.0*pow(pair.m - 1, 2) - 4.0)*fabs(pair.m - 1)) - pair.X_Mm*pair.Y_mm*(2*pair.m*pow(pair.m - 1, 2)*(pair.m*rel.Delta_XY_*fabs(pair.m - 1) + rel.delta_XY_*fabs(3.0*pair.m*(pair.m - 1) + 1.0)) + (-2*pair.m*rel.f_X_*pow(pair.m - 1, 3) - 2.0*pair.m*rel.f_X_*(pair.m - 1) - 2*pair.m*rel.f_Y_*pow(pair.m - 1, 3) + 4.0*pair.m*rel.gamma_XY_*pow(pair.m - 1, 2)*(2.0*pair.m - 1.0) + 4.0*pair.m*rel.gamma_XY_*(pair.m - 1)*(2.0*pair.m - 1.0) + 4.0*pair.m*rel.gamma_YX_*pow(pair.m - 1, 2)*(2.0*pair.m - 1.0) + 2.0*pair.m*rel.gamma_YX_*(pair.m - 1)*(2.0*pair.m - 1.0) - 8.0*pair.m*rel.theta_XY_*pow(pair.m - 1, 3) - 10.0*pair.m*rel.theta_XY_*(pair.m - 1) - 2.0*pair.m*(pair.m - 1) + 4*pair.m + 2*pow(pair.m - 1, 4) + 6.0*pow(pair.m - 1, 3) + 14.0*pow(pair.m - 1, 2) - 4.0*(pair.m - 1)*(pair.m*(rel.f_X_*(pair.m - 1) + rel.theta_XY_*(2.0*pair.m - 3.0)) + pair.m - 1) - 2.0*(pair.m - 1)*(pair.m*(rel.f_Y_*(pair.m - 1) + rel.theta_XY_*(2.0*pair.m - 3.0)) + pair.m - 1) - 4)*fabs(pair.m - 1)) + pair.X_mm*pair.Y_MM*(pair.m*pow(pair.m - 1, 2)*(pair.m*rel.Delta_XY_*fabs(pair.m - 1) + rel.delta_XY_*fabs(3.0*pair.m*(pair.m - 1) + 1.0)) + (-pair.m*rel.f_X_*pow(pair.m - 1, 3) - pair.m*rel.f_Y_*pow(pair.m - 1, 3) - pair.m*rel.f_Y_*(pair.m - 1) + 2.0*pair.m*rel.gamma_XY_*pow(pair.m - 1, 2)*(2.0*pair.m - 1.0) + 2.0*pair.m*rel.gamma_YX_*pow(pair.m - 1, 2)*(2.0*pair.m - 1.0) + 2.0*pair.m*rel.gamma_YX_*(pair.m - 1)*(2.0*pair.m - 1.0) - 4.0*pair.m*rel.theta_XY_*pow(pair.m - 1, 3) - 2.0*pair.m*rel.theta_XY_*(pair.m - 1) - pair.m*(pair.m - 1) + pair.m + pow(pair.m - 1, 4) + 2.0*pow(pair.m - 1, 3) + 4.0*pow(pair.m - 1, 2) - 2.0*(pair.m - 1)*(pair.m*(rel.f_Y_*(pair.m - 1) + rel.theta_XY_*(2.0*pair.m - 3.0)) + pair.m - 1) - 1)*fabs(pair.m - 1)) - pair.X_mm*pair.Y_Mm*(2*pair.m*pow(pair.m - 1, 2)*(pair.m*rel.Delta_XY_*fabs(pair.m - 1) + rel.delta_XY_*fabs(3.0*pair.m*(pair.m - 1) + 1.0)) + (-2*pair.m*rel.f_X_*pow(pair.m - 1, 3) - 2*pair.m*rel.f_Y_*pow(pair.m - 1, 3) - 2.0*pair.m*rel.f_Y_*(pair.m - 1) + 4.0*pair.m*rel.gamma_XY_*pow(pair.m - 1, 2)*(2.0*pair.m - 1.0) + 2.0*pair.m*rel.gamma_XY_*(pair.m - 1)*(2.0*pair.m - 1.0) + 4.0*pair.m*rel.gamma_YX_*pow(pair.m - 1, 2)*(2.0*pair.m - 1.0) + 4.0*pair.m*rel.gamma_YX_*(pair.m - 1)*(2.0*pair.m - 1.0) - 8.0*pair.m*rel.theta_XY_*pow(pair.m - 1, 3) - 10.0*pair.m*rel.theta_XY_*(pair.m - 1) - 2.0*pair.m*(pair.m - 1) + 4*pair.m + 2*pow(pair.m - 1, 4) + 6.0*pow(pair.m - 1, 3) + 14.0*pow(pair.m - 1, 2) - 2.0*(pair.m - 1)*(pair.m*(rel.f_X_*(pair.m - 1) + rel.theta_XY_*(2.0*pair.m - 3.0)) + pair.m - 1) - 4.0*(pair.m - 1)*(pair.m*(rel.f_Y_*(pair.m - 1) + rel.theta_XY_*(2.0*pair.m - 3.0)) + pair.m - 1) - 4)*fabs(pair.m - 1)) - pair.X_mm*pair.Y_mm*(-pair.m*pow(pair.m - 1, 2)*(pair.m*rel.Delta_XY_*fabs(pair.m - 1) + rel.delta_XY_*fabs(3.0*pair.m*(pair.m - 1) + 1.0)) + (pair.m*rel.f_X_*pow(pair.m - 1, 3) + pair.m*rel.f_X_*(pair.m - 1) + pair.m*rel.f_Y_*pow(pair.m - 1, 3) + pair.m*rel.f_Y_*(pair.m - 1) - 2.0*pair.m*rel.gamma_XY_*pow(pair.m - 1, 2)*(2.0*pair.m - 1.0) - 2.0*pair.m*rel.gamma_XY_*(pair.m - 1)*(2.0*pair.m - 1.0) - 2.0*pair.m*rel.gamma_YX_*pow(pair.m - 1, 2)*(2.0*pair.m - 1.0) - 2.0*pair.m*rel.gamma_YX_*(pair.m - 1)*(2.0*pair.m - 1.0) + 4.0*pair.m*rel.theta_XY_*pow(pair.m - 1, 3) + 8.0*pair.m*rel.theta_XY_*(pair.m - 1) + 2*pair.m*(pair.m - 1) - 6*pair.m - pow(pair.m - 1, 4) - 4.0*pow(pair.m - 1, 3) - 12.0*pow(pair.m - 1, 2) + 2.0*(pair.m - 1)*(pair.m*(rel.f_X_*(pair.m - 1) + rel.theta_XY_*(2.0*pair.m - 3.0)) + pair.m - 1) + 2.0*(pair.m - 1)*(pair.m*(rel.f_Y_*(pair.m - 1) + rel.theta_XY_*(2.0*pair.m - 3.0)) + pair.m - 1) + 5)*fabs(pair.m - 1)))/fabs(pair.m - 1))
234 ;
235 }
236 
237 inline void set_c55 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
238  const Genotype_pair *pair=&d.first;
239  const Relatedness *rel=&d.second;
240  con.c[55]= -pair->m + 1 ;
241 }
242 
243 inline void set_c7 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
244  const Genotype_pair *pair=&d.first;
245  const Relatedness *rel=&d.second;
246  con.c[7]= pair->m - 1 ;
247 }
248 
249 inline void set_c57 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
250  const Genotype_pair *pair=&d.first;
251  const Relatedness *rel=&d.second;
252  con.c[57]= pow(con.c[55], 2) ;
253 }
254 
255 inline void set_c56 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
256  const Genotype_pair *pair=&d.first;
257  const Relatedness *rel=&d.second;
258  con.c[56]= -2.0*pair->m + 2.0 ;
259 }
260 
261 inline void set_c45 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
262  const Genotype_pair *pair=&d.first;
263  const Relatedness *rel=&d.second;
264  con.c[45]= pow(con.c[55], 3) ;
265 }
266 
267 inline void set_c28 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
268  const Genotype_pair *pair=&d.first;
269  const Relatedness *rel=&d.second;
270  con.c[28]= 2.0*pair->m - 1.0 ;
271 }
272 
273 inline void set_c11 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
274  const Genotype_pair *pair=&d.first;
275  const Relatedness *rel=&d.second;
276  con.c[11]= pow(con.c[7], 3) ;
277 }
278 
279 inline void set_c5 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
280  const Genotype_pair *pair=&d.first;
281  const Relatedness *rel=&d.second;
282  con.c[5]= pow(con.c[7], 2) ;
283 }
284 
285 inline void set_c31 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
286  const Genotype_pair *pair=&d.first;
287  const Relatedness *rel=&d.second;
288  con.c[31]= pow(pair->m, 2) ;
289 }
290 
291 inline void set_c54 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
292  const Genotype_pair *pair=&d.first;
293  const Relatedness *rel=&d.second;
294  con.c[54]= -2*con.c[28]*con.c[55]*con.c[56]*pair->m + 4.0*con.c[28]*con.c[55]*pair->m ;
295 }
296 
297 inline void set_c53 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
298  const Genotype_pair *pair=&d.first;
299  const Relatedness *rel=&d.second;
300  con.c[53]= 4*con.c[28]*con.c[55]*con.c[56]*pair->m - 4.0*con.c[28]*con.c[55]*pair->m ;
301 }
302 
303 inline void set_c52 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
304  const Genotype_pair *pair=&d.first;
305  const Relatedness *rel=&d.second;
306  con.c[52]= con.c[28]*con.c[55]*con.c[56]*pair->m - 2.0*con.c[28]*con.c[55]*pair->m ;
307 }
308 
309 inline void set_c51 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
310  const Genotype_pair *pair=&d.first;
311  const Relatedness *rel=&d.second;
312  con.c[51]= -2*con.c[28]*con.c[55]*con.c[56]*pair->m + 2.0*con.c[28]*con.c[55]*pair->m ;
313 }
314 
315 inline void set_c50 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
316  const Genotype_pair *pair=&d.first;
317  const Relatedness *rel=&d.second;
318  con.c[50]= 4.0*con.c[45]*pair->m - 4.0*con.c[55]*pair->m*(-2.0*pair->m + 3.0) + 8.0*con.c[55]*pair->m ;
319 }
320 
321 inline void set_c49 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
322  const Genotype_pair *pair=&d.first;
323  const Relatedness *rel=&d.second;
324  con.c[49]= -8.0*con.c[45]*pair->m + 6.0*con.c[55]*pair->m*(-2.0*pair->m + 3.0) - 10.0*con.c[55]*pair->m ;
325 }
326 
327 inline void set_c48 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
328  const Genotype_pair *pair=&d.first;
329  const Relatedness *rel=&d.second;
330  con.c[48]= 16.0*con.c[45]*pair->m - 8.0*con.c[55]*pair->m*(-2.0*pair->m + 3.0) + 12.0*con.c[55]*pair->m ;
331 }
332 
333 inline void set_c47 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
334  const Genotype_pair *pair=&d.first;
335  const Relatedness *rel=&d.second;
336  con.c[47]= 4.0*con.c[45]*pair->m - 2.0*con.c[55]*pair->m*(-2.0*pair->m + 3.0) + 2.0*con.c[55]*pair->m ;
337 }
338 
339 inline void set_c46 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
340  const Genotype_pair *pair=&d.first;
341  const Relatedness *rel=&d.second;
342  con.c[46]= -8.0*con.c[45]*pair->m + 2.0*con.c[55]*pair->m*(-2.0*pair->m + 3.0) - 2.0*con.c[55]*pair->m ;
343 }
344 
345 inline void set_c44 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
346  const Genotype_pair *pair=&d.first;
347  const Relatedness *rel=&d.second;
348  con.c[44]= -2*con.c[45]*pair->m - 2.0*con.c[55]*pair->m + 4.0*con.c[57]*pair->m ;
349 }
350 
351 inline void set_c43 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
352  const Genotype_pair *pair=&d.first;
353  const Relatedness *rel=&d.second;
354  con.c[43]= 4*con.c[45]*pair->m - 4.0*con.c[57]*pair->m ;
355 }
356 
357 inline void set_c42 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
358  const Genotype_pair *pair=&d.first;
359  const Relatedness *rel=&d.second;
360  con.c[42]= con.c[45]*pair->m + con.c[55]*pair->m - 2.0*con.c[57]*pair->m ;
361 }
362 
363 inline void set_c41 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
364  const Genotype_pair *pair=&d.first;
365  const Relatedness *rel=&d.second;
366  con.c[41]= -2*con.c[45]*pair->m + 2.0*con.c[57]*pair->m ;
367 }
368 
369 inline void set_c40 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
370  const Genotype_pair *pair=&d.first;
371  const Relatedness *rel=&d.second;
372  con.c[40]= con.c[28]*con.c[55]*con.c[56]*pair->m*rel->gamma_XY_ + con.c[28]*con.c[55]*con.c[56]*pair->m*rel->gamma_YX_ - 2.0*con.c[28]*con.c[55]*pair->m*rel->gamma_XY_ - 2.0*con.c[28]*con.c[55]*pair->m*rel->gamma_YX_ + con.c[31]*con.c[57]*(rel->Delta_XY_ + rel->delta_XY_*fabs(-3.0 + 1.0/pair->m + 1.0/con.c[55])) + con.c[45]*pair->m*rel->f_X_ + con.c[45]*pair->m*rel->f_Y_ + 4.0*con.c[45]*pair->m*rel->theta_XY_ - 4.0*con.c[45] + pow(con.c[55], 4) + con.c[55]*pair->m*rel->f_X_ + con.c[55]*pair->m*rel->f_Y_ + 8.0*con.c[55]*pair->m*rel->theta_XY_ - 2.0*con.c[55]*pair->m*(con.c[55]*rel->f_X_ + con.c[55]/pair->m + rel->theta_XY_*(-2.0*pair->m + 3.0)) - 2.0*con.c[55]*pair->m*(con.c[55]*rel->f_Y_ + con.c[55]/pair->m + rel->theta_XY_*(-2.0*pair->m + 3.0)) + 2*con.c[55]*pair->m + 12.0*con.c[57] + 6*pair->m - 5 ;
373 }
374 
375 inline void set_c39 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
376  const Genotype_pair *pair=&d.first;
377  const Relatedness *rel=&d.second;
378  con.c[39]= -2*con.c[28]*con.c[55]*con.c[56]*pair->m*rel->gamma_XY_ - 2*con.c[28]*con.c[55]*con.c[56]*pair->m*rel->gamma_YX_ + 2.0*con.c[28]*con.c[55]*pair->m*rel->gamma_XY_ + 4.0*con.c[28]*con.c[55]*pair->m*rel->gamma_YX_ - 2*con.c[31]*con.c[57]*(rel->Delta_XY_ + rel->delta_XY_*fabs(-3.0 + 1.0/pair->m + 1.0/con.c[55])) - 2*con.c[45]*pair->m*rel->f_X_ - 2*con.c[45]*pair->m*rel->f_Y_ - 8.0*con.c[45]*pair->m*rel->theta_XY_ + 6.0*con.c[45] - 2*pow(con.c[55], 4) - 2.0*con.c[55]*pair->m*rel->f_Y_ - 10.0*con.c[55]*pair->m*rel->theta_XY_ + 2.0*con.c[55]*pair->m*(con.c[55]*rel->f_X_ + con.c[55]/pair->m + rel->theta_XY_*(-2.0*pair->m + 3.0)) + 4.0*con.c[55]*pair->m*(con.c[55]*rel->f_Y_ + con.c[55]/pair->m + rel->theta_XY_*(-2.0*pair->m + 3.0)) - 2.0*con.c[55]*pair->m - 14.0*con.c[57] - 4*pair->m + 4 ;
379 }
380 
381 inline void set_c38 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
382  const Genotype_pair *pair=&d.first;
383  const Relatedness *rel=&d.second;
384  con.c[38]= con.c[28]*con.c[55]*con.c[56]*pair->m*rel->gamma_XY_ + con.c[28]*con.c[55]*con.c[56]*pair->m*rel->gamma_YX_ - 2.0*con.c[28]*con.c[55]*pair->m*rel->gamma_YX_ + con.c[31]*con.c[57]*(rel->Delta_XY_ + rel->delta_XY_*fabs(-3.0 + 1.0/pair->m + 1.0/con.c[55])) + con.c[45]*pair->m*rel->f_X_ + con.c[45]*pair->m*rel->f_Y_ + 4.0*con.c[45]*pair->m*rel->theta_XY_ - 2.0*con.c[45] + pow(con.c[55], 4) + con.c[55]*pair->m*rel->f_Y_ + 2.0*con.c[55]*pair->m*rel->theta_XY_ - 2.0*con.c[55]*pair->m*(con.c[55]*rel->f_Y_ + con.c[55]/pair->m + rel->theta_XY_*(-2.0*pair->m + 3.0)) + con.c[55]*pair->m + 4.0*con.c[57] + pair->m - 1 ;
385 }
386 
387 inline void set_c37 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
388  const Genotype_pair *pair=&d.first;
389  const Relatedness *rel=&d.second;
390  con.c[37]= -2*con.c[28]*con.c[55]*con.c[56]*pair->m*rel->gamma_XY_ - 2*con.c[28]*con.c[55]*con.c[56]*pair->m*rel->gamma_YX_ + 4.0*con.c[28]*con.c[55]*pair->m*rel->gamma_XY_ + 2.0*con.c[28]*con.c[55]*pair->m*rel->gamma_YX_ - 2*con.c[31]*con.c[57]*(rel->Delta_XY_ + rel->delta_XY_*fabs(-3.0 + 1.0/pair->m + 1.0/con.c[55])) - 2*con.c[45]*pair->m*rel->f_X_ - 2*con.c[45]*pair->m*rel->f_Y_ - 8.0*con.c[45]*pair->m*rel->theta_XY_ + 6.0*con.c[45] - 2*pow(con.c[55], 4) - 2.0*con.c[55]*pair->m*rel->f_X_ - 10.0*con.c[55]*pair->m*rel->theta_XY_ + 4.0*con.c[55]*pair->m*(con.c[55]*rel->f_X_ + con.c[55]/pair->m + rel->theta_XY_*(-2.0*pair->m + 3.0)) + 2.0*con.c[55]*pair->m*(con.c[55]*rel->f_Y_ + con.c[55]/pair->m + rel->theta_XY_*(-2.0*pair->m + 3.0)) - 2.0*con.c[55]*pair->m - 14.0*con.c[57] - 4*pair->m + 4 ;
391 }
392 
393 inline void set_c36 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
394  const Genotype_pair *pair=&d.first;
395  const Relatedness *rel=&d.second;
396  con.c[36]= 4*con.c[28]*con.c[55]*con.c[56]*pair->m*rel->gamma_XY_ + 4*con.c[28]*con.c[55]*con.c[56]*pair->m*rel->gamma_YX_ - 4.0*con.c[28]*con.c[55]*pair->m*rel->gamma_XY_ - 4.0*con.c[28]*con.c[55]*pair->m*rel->gamma_YX_ + 4*con.c[31]*con.c[57]*(rel->Delta_XY_ + rel->delta_XY_*fabs(-3.0 + 1.0/pair->m + 1.0/con.c[55])) + 4*con.c[45]*pair->m*rel->f_X_ + 4*con.c[45]*pair->m*rel->f_Y_ + 16.0*con.c[45]*pair->m*rel->theta_XY_ - 8.0*con.c[45] + 4*pow(con.c[55], 4) + 12.0*con.c[55]*pair->m*rel->theta_XY_ - 4.0*con.c[55]*pair->m*(con.c[55]*rel->f_X_ + con.c[55]/pair->m + rel->theta_XY_*(-2.0*pair->m + 3.0)) - 4.0*con.c[55]*pair->m*(con.c[55]*rel->f_Y_ + con.c[55]/pair->m + rel->theta_XY_*(-2.0*pair->m + 3.0)) + 12.0*con.c[57] ;
397 }
398 
399 inline void set_c35 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
400  const Genotype_pair *pair=&d.first;
401  const Relatedness *rel=&d.second;
402  con.c[35]= -2*con.c[28]*con.c[55]*con.c[56]*pair->m*rel->gamma_XY_ - 2*con.c[28]*con.c[55]*con.c[56]*pair->m*rel->gamma_YX_ + 2.0*con.c[28]*con.c[55]*pair->m*rel->gamma_YX_ - 2*con.c[31]*con.c[57]*(rel->Delta_XY_ + rel->delta_XY_*fabs(-3.0 + 1.0/pair->m + 1.0/con.c[55])) - 2*con.c[45]*pair->m*rel->f_X_ - 2*con.c[45]*pair->m*rel->f_Y_ - 8.0*con.c[45]*pair->m*rel->theta_XY_ + 2.0*con.c[45] - 2*pow(con.c[55], 4) - 2.0*con.c[55]*pair->m*rel->theta_XY_ + 2.0*con.c[55]*pair->m*(con.c[55]*rel->f_Y_ + con.c[55]/pair->m + rel->theta_XY_*(-2.0*pair->m + 3.0)) - 2.0*con.c[57] ;
403 }
404 
405 inline void set_c34 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
406  const Genotype_pair *pair=&d.first;
407  const Relatedness *rel=&d.second;
408  con.c[34]= con.c[28]*con.c[55]*con.c[56]*pair->m*rel->gamma_XY_ + con.c[28]*con.c[55]*con.c[56]*pair->m*rel->gamma_YX_ - 2.0*con.c[28]*con.c[55]*pair->m*rel->gamma_XY_ + con.c[31]*con.c[57]*(rel->Delta_XY_ + rel->delta_XY_*fabs(-3.0 + 1.0/pair->m + 1.0/con.c[55])) + con.c[45]*pair->m*rel->f_X_ + con.c[45]*pair->m*rel->f_Y_ + 4.0*con.c[45]*pair->m*rel->theta_XY_ - 2.0*con.c[45] + pow(con.c[55], 4) + con.c[55]*pair->m*rel->f_X_ + 2.0*con.c[55]*pair->m*rel->theta_XY_ - 2.0*con.c[55]*pair->m*(con.c[55]*rel->f_X_ + con.c[55]/pair->m + rel->theta_XY_*(-2.0*pair->m + 3.0)) + con.c[55]*pair->m + 4.0*con.c[57] + pair->m - 1 ;
409 }
410 
411 inline void set_c33 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
412  const Genotype_pair *pair=&d.first;
413  const Relatedness *rel=&d.second;
414  con.c[33]= -2*con.c[28]*con.c[55]*con.c[56]*pair->m*rel->gamma_XY_ - 2*con.c[28]*con.c[55]*con.c[56]*pair->m*rel->gamma_YX_ + 2.0*con.c[28]*con.c[55]*pair->m*rel->gamma_XY_ - 2*con.c[31]*con.c[57]*(rel->Delta_XY_ + rel->delta_XY_*fabs(-3.0 + 1.0/pair->m + 1.0/con.c[55])) - 2*con.c[45]*pair->m*rel->f_X_ - 2*con.c[45]*pair->m*rel->f_Y_ - 8.0*con.c[45]*pair->m*rel->theta_XY_ + 2.0*con.c[45] - 2*pow(con.c[55], 4) - 2.0*con.c[55]*pair->m*rel->theta_XY_ + 2.0*con.c[55]*pair->m*(con.c[55]*rel->f_X_ + con.c[55]/pair->m + rel->theta_XY_*(-2.0*pair->m + 3.0)) - 2.0*con.c[57] ;
415 }
416 
417 inline void set_c32 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
418  const Genotype_pair *pair=&d.first;
419  const Relatedness *rel=&d.second;
420  con.c[32]= con.c[28]*con.c[55]*con.c[56]*pair->m*rel->gamma_XY_ + con.c[28]*con.c[55]*con.c[56]*pair->m*rel->gamma_YX_ + con.c[31]*con.c[57]*(rel->Delta_XY_ + rel->delta_XY_*fabs(-3.0 + 1.0/pair->m + 1.0/con.c[55])) + con.c[45]*pair->m*rel->f_X_ + con.c[45]*pair->m*rel->f_Y_ + 4.0*con.c[45]*pair->m*rel->theta_XY_ + pow(con.c[55], 4) ;
421 }
422 
423 inline void set_c30 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
424  const Genotype_pair *pair=&d.first;
425  const Relatedness *rel=&d.second;
426  con.c[30]= 4.0*pair->m - 2.0 ;
427 }
428 
429 inline void set_c29 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
430  const Genotype_pair *pair=&d.first;
431  const Relatedness *rel=&d.second;
432  con.c[29]= 8.0*pair->m - 4.0 ;
433 }
434 
435 inline void set_c27 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
436  const Genotype_pair *pair=&d.first;
437  const Relatedness *rel=&d.second;
438  con.c[27]= 2*con.c[7]*pair->m*(pair->m*rel->Delta_XY_*fabs(con.c[7]) + rel->delta_XY_*fabs(3.0*con.c[7]*pair->m + 1.0)) + (2*con.c[11] + 4.0*con.c[28]*con.c[7]*pair->m*rel->gamma_XY_ + 4.0*con.c[28]*con.c[7]*pair->m*rel->gamma_YX_ + 2.0*con.c[28]*pair->m*rel->gamma_YX_ - 2*con.c[5]*pair->m*rel->f_X_ - 2*con.c[5]*pair->m*rel->f_Y_ - 8.0*con.c[5]*pair->m*rel->theta_XY_ + 2.0*con.c[5] - 2.0*pair->m*rel->theta_XY_ - 2.0*pair->m*(con.c[7]*rel->f_Y_ + rel->theta_XY_*(2.0*pair->m - 3.0)))*fabs(con.c[7]) ;
439 }
440 
441 inline void set_c26 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
442  const Genotype_pair *pair=&d.first;
443  const Relatedness *rel=&d.second;
444  con.c[26]= 2*con.c[7]*pair->m*(pair->m*rel->Delta_XY_*fabs(con.c[7]) + rel->delta_XY_*fabs(3.0*con.c[7]*pair->m + 1.0)) + (2*con.c[11] + 4.0*con.c[28]*con.c[7]*pair->m*rel->gamma_XY_ + 4.0*con.c[28]*con.c[7]*pair->m*rel->gamma_YX_ + 2.0*con.c[28]*pair->m*rel->gamma_XY_ - 2*con.c[5]*pair->m*rel->f_X_ - 2*con.c[5]*pair->m*rel->f_Y_ - 8.0*con.c[5]*pair->m*rel->theta_XY_ + 2.0*con.c[5] - 2.0*pair->m*rel->theta_XY_ - 2.0*pair->m*(con.c[7]*rel->f_X_ + rel->theta_XY_*(2.0*pair->m - 3.0)))*fabs(con.c[7]) ;
445 }
446 
447 inline void set_c25 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
448  const Genotype_pair *pair=&d.first;
449  const Relatedness *rel=&d.second;
450  con.c[25]= 4*con.c[7]*pair->m*(pair->m*rel->Delta_XY_*fabs(con.c[7]) + rel->delta_XY_*fabs(3.0*con.c[7]*pair->m + 1.0)) + (4*con.c[11] + 8.0*con.c[28]*con.c[7]*pair->m*rel->gamma_XY_ + 8.0*con.c[28]*con.c[7]*pair->m*rel->gamma_YX_ + 4.0*con.c[28]*pair->m*rel->gamma_XY_ + 4.0*con.c[28]*pair->m*rel->gamma_YX_ - 4*con.c[5]*pair->m*rel->f_X_ - 4*con.c[5]*pair->m*rel->f_Y_ - 16.0*con.c[5]*pair->m*rel->theta_XY_ + 8.0*con.c[5] - 12.0*pair->m*rel->theta_XY_ - 4.0*pair->m*(con.c[7]*rel->f_X_ + rel->theta_XY_*(2.0*pair->m - 3.0)) - 4.0*pair->m*(con.c[7]*rel->f_Y_ + rel->theta_XY_*(2.0*pair->m - 3.0)) + 4.0*pair->m - 4.0)*fabs(con.c[7]) ;
451 }
452 
453 inline void set_c24 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
454  const Genotype_pair *pair=&d.first;
455  const Relatedness *rel=&d.second;
456  con.c[24]= pair->m*(pair->m*rel->Delta_XY_*fabs(con.c[7]) + rel->delta_XY_*fabs(3.0*con.c[7]*pair->m + 1.0)) + (2.0*con.c[28]*pair->m*rel->gamma_XY_ + 2.0*con.c[28]*pair->m*rel->gamma_YX_ + con.c[5] - con.c[7]*pair->m*rel->f_X_ - con.c[7]*pair->m*rel->f_Y_ - 4.0*con.c[7]*pair->m*rel->theta_XY_)*fabs(con.c[7]) ;
457 }
458 
459 inline void set_c23 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
460  const Genotype_pair *pair=&d.first;
461  const Relatedness *rel=&d.second;
462  con.c[23]= -con.c[5]*pair->m*(pair->m*rel->Delta_XY_*fabs(con.c[7]) + rel->delta_XY_*fabs(3.0*con.c[7]*pair->m + 1.0)) + (con.c[11]*pair->m*rel->f_X_ + con.c[11]*pair->m*rel->f_Y_ + 4.0*con.c[11]*pair->m*rel->theta_XY_ - 4.0*con.c[11] - 2.0*con.c[28]*con.c[5]*pair->m*rel->gamma_XY_ - 2.0*con.c[28]*con.c[5]*pair->m*rel->gamma_YX_ - 2.0*con.c[28]*con.c[7]*pair->m*rel->gamma_XY_ - 2.0*con.c[28]*con.c[7]*pair->m*rel->gamma_YX_ - 12.0*con.c[5] - pow(con.c[7], 4) + con.c[7]*pair->m*rel->f_X_ + con.c[7]*pair->m*rel->f_Y_ + 8.0*con.c[7]*pair->m*rel->theta_XY_ + 2*con.c[7]*pair->m - 2.0*con.c[7]*(-pair->m*(con.c[7]*rel->f_X_ + rel->theta_XY_*(2.0*pair->m - 3.0)) - pair->m + 1) - 2.0*con.c[7]*(-pair->m*(con.c[7]*rel->f_Y_ + rel->theta_XY_*(2.0*pair->m - 3.0)) - pair->m + 1) - 6*pair->m + 5)*fabs(con.c[7]) ;
463 }
464 
465 inline void set_c22 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
466  const Genotype_pair *pair=&d.first;
467  const Relatedness *rel=&d.second;
468  con.c[22]= 2*con.c[5]*pair->m*(pair->m*rel->Delta_XY_*fabs(con.c[7]) + rel->delta_XY_*fabs(3.0*con.c[7]*pair->m + 1.0)) + (-2*con.c[11]*pair->m*rel->f_X_ - 2*con.c[11]*pair->m*rel->f_Y_ - 8.0*con.c[11]*pair->m*rel->theta_XY_ + 6.0*con.c[11] + 4.0*con.c[28]*con.c[5]*pair->m*rel->gamma_XY_ + 4.0*con.c[28]*con.c[5]*pair->m*rel->gamma_YX_ + 2.0*con.c[28]*con.c[7]*pair->m*rel->gamma_XY_ + 4.0*con.c[28]*con.c[7]*pair->m*rel->gamma_YX_ + 14.0*con.c[5] + 2*pow(con.c[7], 4) - 2.0*con.c[7]*pair->m*rel->f_Y_ - 10.0*con.c[7]*pair->m*rel->theta_XY_ - 2.0*con.c[7]*pair->m + 2.0*con.c[7]*(-pair->m*(con.c[7]*rel->f_X_ + rel->theta_XY_*(2.0*pair->m - 3.0)) - pair->m + 1) + 4.0*con.c[7]*(-pair->m*(con.c[7]*rel->f_Y_ + rel->theta_XY_*(2.0*pair->m - 3.0)) - pair->m + 1) + 4*pair->m - 4)*fabs(con.c[7]) ;
469 }
470 
471 inline void set_c21 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
472  const Genotype_pair *pair=&d.first;
473  const Relatedness *rel=&d.second;
474  con.c[21]= 2*con.c[5]*pair->m*(pair->m*rel->Delta_XY_*fabs(con.c[7]) + rel->delta_XY_*fabs(3.0*con.c[7]*pair->m + 1.0)) + (-2*con.c[11]*pair->m*rel->f_X_ - 2*con.c[11]*pair->m*rel->f_Y_ - 8.0*con.c[11]*pair->m*rel->theta_XY_ + 6.0*con.c[11] + 4.0*con.c[28]*con.c[5]*pair->m*rel->gamma_XY_ + 4.0*con.c[28]*con.c[5]*pair->m*rel->gamma_YX_ + 4.0*con.c[28]*con.c[7]*pair->m*rel->gamma_XY_ + 2.0*con.c[28]*con.c[7]*pair->m*rel->gamma_YX_ + 14.0*con.c[5] + 2*pow(con.c[7], 4) - 2.0*con.c[7]*pair->m*rel->f_X_ - 10.0*con.c[7]*pair->m*rel->theta_XY_ - 2.0*con.c[7]*pair->m + 4.0*con.c[7]*(-pair->m*(con.c[7]*rel->f_X_ + rel->theta_XY_*(2.0*pair->m - 3.0)) - pair->m + 1) + 2.0*con.c[7]*(-pair->m*(con.c[7]*rel->f_Y_ + rel->theta_XY_*(2.0*pair->m - 3.0)) - pair->m + 1) + 4*pair->m - 4)*fabs(con.c[7]) ;
475 }
476 
477 inline void set_c20 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
478  const Genotype_pair *pair=&d.first;
479  const Relatedness *rel=&d.second;
480  con.c[20]= con.c[5]*pair->m*(pair->m*rel->Delta_XY_*fabs(con.c[7]) + rel->delta_XY_*fabs(3.0*con.c[7]*pair->m + 1.0)) + (-con.c[11]*pair->m*rel->f_X_ - con.c[11]*pair->m*rel->f_Y_ - 4.0*con.c[11]*pair->m*rel->theta_XY_ + 2.0*con.c[11] + 2.0*con.c[28]*con.c[5]*pair->m*rel->gamma_XY_ + 2.0*con.c[28]*con.c[5]*pair->m*rel->gamma_YX_ + 2.0*con.c[28]*con.c[7]*pair->m*rel->gamma_YX_ + 4.0*con.c[5] + pow(con.c[7], 4) - con.c[7]*pair->m*rel->f_Y_ - 2.0*con.c[7]*pair->m*rel->theta_XY_ - con.c[7]*pair->m - 2.0*con.c[7]*(pair->m*(con.c[7]*rel->f_Y_ + rel->theta_XY_*(2.0*pair->m - 3.0)) + pair->m - 1) + pair->m - 1)*fabs(con.c[7]) ;
481 }
482 
483 inline void set_c19 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
484  const Genotype_pair *pair=&d.first;
485  const Relatedness *rel=&d.second;
486  con.c[19]= con.c[5]*pair->m*(pair->m*rel->Delta_XY_*fabs(con.c[7]) + rel->delta_XY_*fabs(3.0*con.c[7]*pair->m + 1.0)) + (-con.c[11]*pair->m*rel->f_X_ - con.c[11]*pair->m*rel->f_Y_ - 4.0*con.c[11]*pair->m*rel->theta_XY_ + 2.0*con.c[11] + 2.0*con.c[28]*con.c[5]*pair->m*rel->gamma_XY_ + 2.0*con.c[28]*con.c[5]*pair->m*rel->gamma_YX_ + 2.0*con.c[28]*con.c[7]*pair->m*rel->gamma_XY_ + 4.0*con.c[5] + pow(con.c[7], 4) - con.c[7]*pair->m*rel->f_X_ - 2.0*con.c[7]*pair->m*rel->theta_XY_ - con.c[7]*pair->m - 2.0*con.c[7]*(pair->m*(con.c[7]*rel->f_X_ + rel->theta_XY_*(2.0*pair->m - 3.0)) + pair->m - 1) + pair->m - 1)*fabs(con.c[7]) ;
487 }
488 
489 inline void set_c18 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
490  const Genotype_pair *pair=&d.first;
491  const Relatedness *rel=&d.second;
492  con.c[18]= con.c[5] + pair->m - 1 ;
493 }
494 
495 inline void set_c17 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
496  const Genotype_pair *pair=&d.first;
497  const Relatedness *rel=&d.second;
498  con.c[17]= 8.0*con.c[5] + 12.0*pair->m - 8.0 ;
499 }
500 
501 inline void set_c16 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
502  const Genotype_pair *pair=&d.first;
503  const Relatedness *rel=&d.second;
504  con.c[16]= 8.0*con.c[5] + 4.0*pair->m - 4.0 ;
505 }
506 
507 inline void set_c15 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
508  const Genotype_pair *pair=&d.first;
509  const Relatedness *rel=&d.second;
510  con.c[15]= 4.0*con.c[5] + 8.0*pair->m - 4.0 ;
511 }
512 
513 inline void set_c14 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
514  const Genotype_pair *pair=&d.first;
515  const Relatedness *rel=&d.second;
516  con.c[14]= 16.0*con.c[5] + 16.0*pair->m - 12.0 ;
517 }
518 
519 inline void set_c13 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
520  const Genotype_pair *pair=&d.first;
521  const Relatedness *rel=&d.second;
522  con.c[13]= con.c[5] + 2.0*pair->m - 1.0 ;
523 }
524 
525 inline void set_c12 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
526  const Genotype_pair *pair=&d.first;
527  const Relatedness *rel=&d.second;
528  con.c[12]= 2*con.c[5] + 4.0*pair->m - 2.0 ;
529 }
530 
531 inline void set_c10 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
532  const Genotype_pair *pair=&d.first;
533  const Relatedness *rel=&d.second;
534  con.c[10]= 2*con.c[7]*pair->m*(pair->m*rel->Delta_XY_*fabs(con.c[7]) + rel->delta_XY_*fabs(3.0*con.c[7]*pair->m + 1.0)) - (-2*con.c[11] - 4.0*con.c[28]*con.c[7]*pair->m*rel->gamma_XY_ - 4.0*con.c[28]*con.c[7]*pair->m*rel->gamma_YX_ - 2.0*con.c[28]*pair->m*rel->gamma_YX_ + 2*con.c[5]*pair->m*rel->f_X_ + 2*con.c[5]*pair->m*rel->f_Y_ + 8.0*con.c[5]*pair->m*rel->theta_XY_ - 2.0*con.c[5] + 2.0*pair->m*rel->theta_XY_ + 2.0*pair->m*(con.c[7]*rel->f_Y_ + rel->theta_XY_*(2.0*pair->m - 3.0)))*fabs(con.c[7]) ;
535 }
536 
537 inline void set_c9 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
538  const Genotype_pair *pair=&d.first;
539  const Relatedness *rel=&d.second;
540  con.c[9]= 2*con.c[7]*pair->m*(pair->m*rel->Delta_XY_*fabs(con.c[7]) + rel->delta_XY_*fabs(3.0*con.c[7]*pair->m + 1.0)) - (-2*con.c[11] - 4.0*con.c[28]*con.c[7]*pair->m*rel->gamma_XY_ - 4.0*con.c[28]*con.c[7]*pair->m*rel->gamma_YX_ - 2.0*con.c[28]*pair->m*rel->gamma_XY_ + 2*con.c[5]*pair->m*rel->f_X_ + 2*con.c[5]*pair->m*rel->f_Y_ + 8.0*con.c[5]*pair->m*rel->theta_XY_ - 2.0*con.c[5] + 2.0*pair->m*rel->theta_XY_ + 2.0*pair->m*(con.c[7]*rel->f_X_ + rel->theta_XY_*(2.0*pair->m - 3.0)))*fabs(con.c[7]) ;
541 }
542 
543 inline void set_c8 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
544  const Genotype_pair *pair=&d.first;
545  const Relatedness *rel=&d.second;
546  con.c[8]= 4*con.c[7]*pair->m*(pair->m*rel->Delta_XY_*fabs(con.c[7]) + rel->delta_XY_*fabs(3.0*con.c[7]*pair->m + 1.0)) - (-4*con.c[11] - 8.0*con.c[28]*con.c[7]*pair->m*rel->gamma_XY_ - 8.0*con.c[28]*con.c[7]*pair->m*rel->gamma_YX_ - 4.0*con.c[28]*pair->m*rel->gamma_XY_ - 4.0*con.c[28]*pair->m*rel->gamma_YX_ + 4*con.c[5]*pair->m*rel->f_X_ + 4*con.c[5]*pair->m*rel->f_Y_ + 16.0*con.c[5]*pair->m*rel->theta_XY_ - 8.0*con.c[5] + 12.0*pair->m*rel->theta_XY_ + 4.0*pair->m*(con.c[7]*rel->f_X_ + rel->theta_XY_*(2.0*pair->m - 3.0)) + 4.0*pair->m*(con.c[7]*rel->f_Y_ + rel->theta_XY_*(2.0*pair->m - 3.0)) - 4.0*pair->m + 4.0)*fabs(con.c[7]) ;
547 }
548 
549 inline void set_c6 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
550  const Genotype_pair *pair=&d.first;
551  const Relatedness *rel=&d.second;
552  con.c[6]= pair->m*(pair->m*rel->Delta_XY_*fabs(con.c[7]) + rel->delta_XY_*fabs(3.0*con.c[7]*pair->m + 1.0)) - (-2.0*con.c[28]*pair->m*rel->gamma_XY_ - 2.0*con.c[28]*pair->m*rel->gamma_YX_ - con.c[5] + con.c[7]*pair->m*rel->f_X_ + con.c[7]*pair->m*rel->f_Y_ + 4.0*con.c[7]*pair->m*rel->theta_XY_)*fabs(con.c[7]) ;
553 }
554 
555 inline void set_c4 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
556  const Genotype_pair *pair=&d.first;
557  const Relatedness *rel=&d.second;
558  con.c[4]= 2*con.c[5]*pair->m*(pair->m*rel->Delta_XY_*fabs(con.c[7]) + rel->delta_XY_*fabs(3.0*con.c[7]*pair->m + 1.0)) + (-2*con.c[11]*pair->m*rel->f_X_ - 2*con.c[11]*pair->m*rel->f_Y_ - 8.0*con.c[11]*pair->m*rel->theta_XY_ + 6.0*con.c[11] + 4.0*con.c[28]*con.c[5]*pair->m*rel->gamma_XY_ + 4.0*con.c[28]*con.c[5]*pair->m*rel->gamma_YX_ + 2.0*con.c[28]*con.c[7]*pair->m*rel->gamma_XY_ + 4.0*con.c[28]*con.c[7]*pair->m*rel->gamma_YX_ + 14.0*con.c[5] + 2*pow(con.c[7], 4) - 2.0*con.c[7]*pair->m*rel->f_Y_ - 10.0*con.c[7]*pair->m*rel->theta_XY_ - 2.0*con.c[7]*pair->m - 2.0*con.c[7]*(pair->m*(con.c[7]*rel->f_X_ + rel->theta_XY_*(2.0*pair->m - 3.0)) + pair->m - 1) - 4.0*con.c[7]*(pair->m*(con.c[7]*rel->f_Y_ + rel->theta_XY_*(2.0*pair->m - 3.0)) + pair->m - 1) + 4*pair->m - 4)*fabs(con.c[7]) ;
559 }
560 
561 inline void set_c3 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
562  const Genotype_pair *pair=&d.first;
563  const Relatedness *rel=&d.second;
564  con.c[3]= 2*con.c[5]*pair->m*(pair->m*rel->Delta_XY_*fabs(con.c[7]) + rel->delta_XY_*fabs(3.0*con.c[7]*pair->m + 1.0)) + (-2*con.c[11]*pair->m*rel->f_X_ - 2*con.c[11]*pair->m*rel->f_Y_ - 8.0*con.c[11]*pair->m*rel->theta_XY_ + 6.0*con.c[11] + 4.0*con.c[28]*con.c[5]*pair->m*rel->gamma_XY_ + 4.0*con.c[28]*con.c[5]*pair->m*rel->gamma_YX_ + 4.0*con.c[28]*con.c[7]*pair->m*rel->gamma_XY_ + 2.0*con.c[28]*con.c[7]*pair->m*rel->gamma_YX_ + 14.0*con.c[5] + 2*pow(con.c[7], 4) - 2.0*con.c[7]*pair->m*rel->f_X_ - 10.0*con.c[7]*pair->m*rel->theta_XY_ - 2.0*con.c[7]*pair->m - 4.0*con.c[7]*(pair->m*(con.c[7]*rel->f_X_ + rel->theta_XY_*(2.0*pair->m - 3.0)) + pair->m - 1) - 2.0*con.c[7]*(pair->m*(con.c[7]*rel->f_Y_ + rel->theta_XY_*(2.0*pair->m - 3.0)) + pair->m - 1) + 4*pair->m - 4)*fabs(con.c[7]) ;
565 }
566 
567 inline void set_c2 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
568  const Genotype_pair *pair=&d.first;
569  const Relatedness *rel=&d.second;
570  con.c[2]= con.c[5]*pair->m*(pair->m*rel->Delta_XY_*fabs(con.c[7]) + rel->delta_XY_*fabs(3.0*con.c[7]*pair->m + 1.0)) - (con.c[11]*pair->m*rel->f_X_ + con.c[11]*pair->m*rel->f_Y_ + 4.0*con.c[11]*pair->m*rel->theta_XY_ - 4.0*con.c[11] - 2.0*con.c[28]*con.c[5]*pair->m*rel->gamma_XY_ - 2.0*con.c[28]*con.c[5]*pair->m*rel->gamma_YX_ - 2.0*con.c[28]*con.c[7]*pair->m*rel->gamma_XY_ - 2.0*con.c[28]*con.c[7]*pair->m*rel->gamma_YX_ - 12.0*con.c[5] - pow(con.c[7], 4) + con.c[7]*pair->m*rel->f_X_ + con.c[7]*pair->m*rel->f_Y_ + 8.0*con.c[7]*pair->m*rel->theta_XY_ + 2*con.c[7]*pair->m - 2.0*con.c[7]*(-pair->m*(con.c[7]*rel->f_X_ + rel->theta_XY_*(2.0*pair->m - 3.0)) - pair->m + 1) - 2.0*con.c[7]*(-pair->m*(con.c[7]*rel->f_Y_ + rel->theta_XY_*(2.0*pair->m - 3.0)) - pair->m + 1) - 6*pair->m + 5)*fabs(con.c[7]) ;
571 }
572 
573 inline void set_c1 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
574  const Genotype_pair *pair=&d.first;
575  const Relatedness *rel=&d.second;
576  con.c[1]= con.c[5]*pair->m*(pair->m*rel->Delta_XY_*fabs(con.c[7]) + rel->delta_XY_*fabs(3.0*con.c[7]*pair->m + 1.0)) - (con.c[11]*pair->m*rel->f_X_ + con.c[11]*pair->m*rel->f_Y_ + 4.0*con.c[11]*pair->m*rel->theta_XY_ - 2.0*con.c[11] - 2.0*con.c[28]*con.c[5]*pair->m*rel->gamma_XY_ - 2.0*con.c[28]*con.c[5]*pair->m*rel->gamma_YX_ - 2.0*con.c[28]*con.c[7]*pair->m*rel->gamma_YX_ - 4.0*con.c[5] - pow(con.c[7], 4) + con.c[7]*pair->m*rel->f_Y_ + 2.0*con.c[7]*pair->m*rel->theta_XY_ + con.c[7]*pair->m + 2.0*con.c[7]*(pair->m*(con.c[7]*rel->f_Y_ + rel->theta_XY_*(2.0*pair->m - 3.0)) + pair->m - 1) - pair->m + 1)*fabs(con.c[7]) ;
577 }
578 
579 inline void set_c0 (Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &con, const std::pair <const Genotype_pair &, const Relatedness &> &d ) {
580  const Genotype_pair *pair=&d.first;
581  const Relatedness *rel=&d.second;
582  con.c[0]= con.c[5]*pair->m*(pair->m*rel->Delta_XY_*fabs(con.c[7]) + rel->delta_XY_*fabs(3.0*con.c[7]*pair->m + 1.0)) - (con.c[11]*pair->m*rel->f_X_ + con.c[11]*pair->m*rel->f_Y_ + 4.0*con.c[11]*pair->m*rel->theta_XY_ - 2.0*con.c[11] - 2.0*con.c[28]*con.c[5]*pair->m*rel->gamma_XY_ - 2.0*con.c[28]*con.c[5]*pair->m*rel->gamma_YX_ - 2.0*con.c[28]*con.c[7]*pair->m*rel->gamma_XY_ - 4.0*con.c[5] - pow(con.c[7], 4) + con.c[7]*pair->m*rel->f_X_ + 2.0*con.c[7]*pair->m*rel->theta_XY_ + con.c[7]*pair->m + 2.0*con.c[7]*(pair->m*(con.c[7]*rel->f_X_ + rel->theta_XY_*(2.0*pair->m - 3.0)) + pair->m - 1) - pair->m + 1)*fabs(con.c[7]) ;
583 }
584 
585 static void (*cfn[58])(Constants <float_t, const std::pair <const Genotype_pair &, const Relatedness &> > &, const std::pair <const Genotype_pair &, const Relatedness &> &)={&set_c55
586 , &set_c7
587 , &set_c57
588 , &set_c56
589 , &set_c45
590 , &set_c28
591 , &set_c11
592 , &set_c5
593 , &set_c31
594 , &set_c54
595 , &set_c53
596 , &set_c52
597 , &set_c51
598 , &set_c50
599 , &set_c49
600 , &set_c48
601 , &set_c47
602 , &set_c46
603 , &set_c44
604 , &set_c43
605 , &set_c42
606 , &set_c41
607 , &set_c40
608 , &set_c39
609 , &set_c38
610 , &set_c37
611 , &set_c36
612 , &set_c35
613 , &set_c34
614 , &set_c33
615 , &set_c32
616 , &set_c30
617 , &set_c29
618 , &set_c27
619 , &set_c26
620 , &set_c25
621 , &set_c24
622 , &set_c23
623 , &set_c22
624 , &set_c21
625 , &set_c20
626 , &set_c19
627 , &set_c18
628 , &set_c17
629 , &set_c16
630 , &set_c15
631 , &set_c14
632 , &set_c13
633 , &set_c12
634 , &set_c10
635 , &set_c9
636 , &set_c8
637 , &set_c6
638 , &set_c4
639 , &set_c3
640 , &set_c2
641 , &set_c1
642 , &set_c0
643 };
644 #define REL_CNTS 58
645 #define REL_ARRAY cfn
Relatedness data.
Definition: relatedness_data.h:18
Definition: constants.h:7
Definition: genotype_pair.h:19