- uint64_t sum=0;
- /* for(int a=0;a<h;a+=4) {
- X[a]=RM1[a]^seq_in[ind1+a];
- X[a+1]=RM1[a+1]^seq_in[ind1+a+1];
- X[a+2]=RM1[a+2]^seq_in[ind1+a+2];
- X[a+3]=RM1[a+3]^seq_in[ind1+a+3];
- }
- */
-
-
- for(int a=0;a<h/4;a++) {
- xx[a]=rm[a]^ss[ind1+a];
- sum+=xx[a];
- }
-
-
-
-
- rm[0]=xorshift32(sum);
- for(int a=1;a<h/4;a++) {
- rm[a]^=xorshift32(rm[a-1]);
- }
+ rm[0]=rm[0]^ss[ind1];
+ rm[0]=xorshift64(rm[0] );
+ for(a=1;a<h;a++) {
+ rm[a]=rm[a]^ss[ind1+a];
+ rm[a]=xorshift64(rm[a] ^ rm[a-1]);
+ }
+ // printf("argh %d\n",a);
+ rm[0]=xorshift64(rm[a-1]);