- //ind1=Pbox[it]*h;
- //ind2=Pbox[(it+len/2)]*h;
-
- ind1=it*h/4;
- // Mix with dynamic RM
- 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[h-1]^ss[ind1];
+ rm[0]=xorshift64(rm[0] );
+ for(int a=1;a<h;a++) {
+ rm[a]=rm[a-1]^ss[ind1+a];
+ rm[a]=xorshift64(rm[a]);
+ }