Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class rls3
- {
- private:
- unsigned int s;
- const static int q=63;
- public:
- rls3(unsigned int a=1)
- {
- s=a;
- }
- void sets(unsigned int a)
- {
- s=a;
- }
- unsigned long* step(int a=q)
- {
- if(a<=q)
- {
- unsigned long* r=new unsigned long[1];
- r[0]=0;
- for(int i=0;i<a;i++)
- {
- r[0]+=s&1;
- r[0]=r[0]<<1;
- s+=((s^(s>>3))&1)<<10;
- s=s>>1;
- }
- r[0]=r[0]<<(q-a);
- return r;
- }
- else
- {
- unsigned long* r=new unsigned long[a/q+1];
- for(int i=0;i<a/q;i++)
- {
- r[i]=0;
- }
- for(int i=0;i<a;i++)
- {
- r[i/q]+=s&1;
- r[i/q]=r[i/q]<<1;
- s+=((s^(s>>3))&1)<<10;
- s=s>>1;
- }
- r[a/q]=r[a/q]<<(q-a%q);
- return r;
- }
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement