double u_dx1(void) { int II0 = II; if(++II >= KK) II = 0; /*wrap around running index */ XX[II] = DMOD(BB1 * XX[II] + XX[II0], PP); return ((double) XX[II] /PP) + HH; } double u_dx2(void) { int II0 = II; if(++II >= KK) II = 0; /*wrap around running index */ XX[II] = DMOD(BB2 * (XX[II] + XX[II0]), PP); return ((double) XX[II] /PP) + HH; } double u_dx3(void) { int II0 = II; if(++II >= KK) II = 0; /*wrap around running index */ if(++K12 >= KK) K12 = 0; /*wrap around K12*/ XX[II] = DMOD(BB3 * (XX[II] + XX[K12] + XX[II0]), PP); return ((double) XX[II] /PP) + HH; } double u_dx4(void) { int II0 = II; if(++II >= KK) II = 0; /*wrap around running index */ if(++K13 >= KK) K13 = 0; /*wrap around K13*/ if(++K23 >= KK) K23 = 0; /*wrap around K23*/ XX[II] = DMOD(BB4 * (XX[II]+XX[K13]+XX[K23]+XX[II0]), PP); return ((double) XX[II] /PP) + HH; }