rem: __inline unsigned __int64 chrand (ch_randgen *prandgen) { prandgen->rndptrX ++; prandgen->rndptrA += NA; prandgen->rndptrB += NB; if (prandgen->rndptrX >= (prandgen->ira + NK)) { prandgen->rndptrX -= NK; reseed (prandgen, 1); } if (prandgen->rndptrA >= (prandgen->ira + NK)) prandgen->rndptrA -= NK; if (prandgen->rndptrB >= (prandgen->ira + NK)) prandgen->rndptrB -= NK; attach (&prandgen->rndLeft, prandgen->rndptrX, prandgen->rndptrA->D[0], prandgen ->rndptrA->D[1], 0x49A3BC71UL, 0x60E285FDUL); attach (&prandgen->rndRite, &prandgen->rndLeft, prandgen->rndptrB->D[0], prandgen ->rndptrB->D[1], 0xC366A5FDUL, 0x20C763EFUL); chseed (prandgen, prandgen->rndRite.Q[0]); return prandgen->rndRite.Q[0] ^ prandgen->rndLeft.Q[0];
add: chrand(ch_randgen *prandgen) { prandgen->rndptrX++; prandgen->rndptrA += NA; prandgen->rndptrB += NB; if (prandgen->rndptrX >= (prandgen->ira + NK)) { prandgen->rndptrX -= NK; reseed (prandgen, 1); }  if (prandgen->rndptrA >= (prandgen->ira + NK)) prandgen->rndptrA -= NK; if (prandgen->rndptrB >= (prandgen->ira + NK)) prandgen->rndptrB -= NK;  attach(&prandgen->rndLeft, prandgen->rndptrX, prandgen->rndptrA->D[0], prandgen->rndptrA->D[1], 0x49A3BC71UL, 0x60E285FDUL); attach(&prandgen->rndRite, &prandgen->rndLeft, prandgen->rndptrB->D[0], prandgen->rndptrB->D[1], 0xC366A5FDUL, 0x20C763EFUL);  chseed(prandgen, prandgen->rndRite.Q[0]);  return prandgen->rndRite.Q[0] ^ prandgen->rndLeft.Q[0];
context: __inline unsigned __int64 chrand (ch_randgen *prandgen) { 	prandgen->rndptrX ++; 	prandgen->rndptrA += NA; 	prandgen->rndptrB += NB; 	if (prandgen->rndptrX >= (prandgen->ira + NK)) 	{ 		prandgen->rndptrX -= NK; 		reseed (prandgen, 1); 	} 	if (prandgen->rndptrA >= (prandgen->ira + NK)) prandgen->rndptrA -= NK; 	if (prandgen->rndptrB >= (prandgen->ira + NK)) prandgen->rndptrB -= NK; 	attach (&prandgen->rndLeft, prandgen->rndptrX, prandgen->rndptrA->D[0], prandgen			->rndptrA->D[1], 0x49A3BC71UL, 0x60E285FDUL); 	attach (&prandgen->rndRite, &prandgen->rndLeft, prandgen->rndptrB->D[0], prandgen			->rndptrB->D[1], 0xC366A5FDUL, 0x20C763EFUL); 	chseed (prandgen, prandgen->rndRite.Q[0]); 	return prandgen->rndRite.Q[0] ^ prandgen->rndLeft.Q[0]; } 