X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=src%2FrTrait.c;h=11cc63e2a0bdb2a66105873e690ab1e03d115074;hb=f295ab19440298e543db5a270e54f10a84382197;hp=e5922030774e2a76fcb662c44ebaf96dc3ceddcc;hpb=92ef6853c5cb0e730dad1af9961064239a1d375f;p=ape.git diff --git a/src/rTrait.c b/src/rTrait.c index e592203..11cc63e 100644 --- a/src/rTrait.c +++ b/src/rTrait.c @@ -1,4 +1,4 @@ -/* rTrait.c 2010-06-23 */ +/* rTrait.c 2010-07-26 */ /* Copyright 2010 Emmanuel Paradis */ @@ -22,7 +22,13 @@ void rTraitCont(int *model, int *Nedge, int *edge1, int *edge2, double *el, break; case 2 : for (i = *Nedge - 1; i >= 0; i--) { GetRNGstate(); - x[edge2[i]] = x[edge1[i]] + sqrt(el[i])*(sigma[i]*norm_rand() - alpha[i]*(x[edge1[i]] - theta[i])); + x[edge2[i]] = x[edge1[i]] - alpha[i]*el[i]*(x[edge1[i]] - theta[i]) + sqrt(el[i])*sigma[i]*norm_rand(); + PutRNGstate(); + } + break; + case 3 : for (i = *Nedge - 1; i >= 0; i--) { + GetRNGstate(); + x[edge2[i]] = x[edge1[i]] - (1 - exp(alpha[i]*el[i]))*(x[edge1[i]] - theta[i]) + sqrt(el[i])*sigma[i]*norm_rand(); PutRNGstate(); } break;