#include "nr.h" void NR::sobseq(const int n, Vec_O_DP &x) { const int MAXBIT=30,MAXDIM=6; int j,k,l; unsigned long i,im,ipp; static int mdeg[MAXDIM]={1,2,3,3,4,4}; static unsigned long in; static Vec_ULNG ix(MAXDIM); static Vec_ULNG_p iu(MAXBIT); static unsigned long ip[MAXDIM]={0,1,1,2,1,4}; static unsigned long iv[MAXDIM*MAXBIT]= {1,1,1,1,1,1,3,1,3,3,1,1,5,7,7,3,3,5,15,11,5,15,13,9}; static DP fac; if (n < 0) { for (k=0;k> mdeg[k]); for (l=mdeg[k]-1;l>=1;l--) { if (ipp & 1) i ^= iu[j-l][k]; ipp >>= 1; } iu[j][k]=i; } } } else { im=in++; for (j=0;j>= 1; } if (j >= MAXBIT) nrerror("MAXBIT too small in sobseq"); im=j*MAXDIM; for (k=0;k