#ifndef SFMTPARAMS_H
#define SFMTPARAMS_H

#include <string>

class CSFMTParams_607
{
  public:
    static const size_t MEXP = 607;
    static const size_t POS1 = 2;
    static const int SL1 = 15;
    static const int SL2 = 3;
    static const int SR1 = 13;
    static const int SR2 = 3;
    static const uint32_t MSK1 = 0xfdff37ffU;
    static const uint32_t MSK2 = 0xef7f3f7dU;
    static const uint32_t MSK3 = 0xff777b7dU;
    static const uint32_t MSK4 = 0x7ff7fb2fU;
    static const uint32_t PARITY1 = 0x00000001U;
    static const uint32_t PARITY2 = 0x00000000U;
    static const uint32_t PARITY3 = 0x00000000U;
    static const uint32_t PARITY4 = 0x5986f054U;
};

class CSFMTParams_1279
{
  public:
    static const size_t MEXP = 1279;
    static const size_t POS1 = 7;
    static const int SL1 = 14;
    static const int SL2 = 3;
    static const int SR1 = 5;
    static const int SR2 = 1;
    static const uint32_t MSK1 = 0xf7fefffdU;
    static const uint32_t MSK2 = 0x7fefcfffU;
    static const uint32_t MSK3 = 0xaff3ef3fU;
    static const uint32_t MSK4 = 0xb5ffff7fU;
    static const uint32_t PARITY1 = 0x00000001U;
    static const uint32_t PARITY2 = 0x00000000U;
    static const uint32_t PARITY3 = 0x00000000U;
    static const uint32_t PARITY4 = 0x20000000U;
};

class CSFMTParams_2281
{
  public:
    static const size_t MEXP = 2281;
    static const size_t POS1 = 12;
    static const int SL1 = 19;
    static const int SL2 = 1;
    static const int SR1 = 5;
    static const int SR2 = 1;
    static const uint32_t MSK1 = 0xbff7ffbfU;
    static const uint32_t MSK2 = 0xfdfffffeU;
    static const uint32_t MSK3 = 0xf7ffef7fU;
    static const uint32_t MSK4 = 0xf2f7cbbfU;
    static const uint32_t PARITY1 = 0x00000001U;
    static const uint32_t PARITY2 = 0x00000000U;
    static const uint32_t PARITY3 = 0x00000000U;
    static const uint32_t PARITY4 = 0x41dfa600U;
};

class CSFMTParams_4253
{
  public:
    static const size_t MEXP = 4253;
    static const size_t POS1 = 17;
    static const int SL1 = 20;
    static const int SL2 = 1;
    static const int SR1 = 7;
    static const int SR2 = 1;
    static const uint32_t MSK1 = 0x9f7bffffU;
    static const uint32_t MSK2 = 0x9fffff5fU;
    static const uint32_t MSK3 = 0x3efffffbU;
    static const uint32_t MSK4 = 0xfffff7bbU;
    static const uint32_t PARITY1 = 0xa8000001U;
    static const uint32_t PARITY2 = 0xaf5390a3U;
    static const uint32_t PARITY3 = 0xb740b3f8U;
    static const uint32_t PARITY4 = 0x6c11486dU;
};

class CSFMTParams_11213
{
  public:
    static const size_t MEXP = 11213;
    static const size_t POS1 = 68;
    static const int SL1 = 14;
    static const int SL2 = 3;
    static const int SR1 = 7;
    static const int SR2 = 3;
    static const uint32_t MSK1 = 0xeffff7fbU;
    static const uint32_t MSK2 = 0xffffffefU;
    static const uint32_t MSK3 = 0xdfdfbfffU;
    static const uint32_t MSK4 = 0x7fffdbfdU;
    static const uint32_t PARITY1 = 0x00000001U;
    static const uint32_t PARITY2 = 0x00000000U;
    static const uint32_t PARITY3 = 0xe8148000U;
    static const uint32_t PARITY4 = 0xd0c7afa3U;
};

class CSFMTParams_19937
{
  public:
    static const size_t MEXP = 19937;
    static const size_t POS1 = 122;
    static const int SL1 = 18;
    static const int SL2 = 1;
    static const int SR1 = 11;
    static const int SR2 = 1;
    static const uint32_t MSK1 = 0xdfffffefU;
    static const uint32_t MSK2 = 0xddfecb7fU;
    static const uint32_t MSK3 = 0xbffaffffU;
    static const uint32_t MSK4 = 0xbffffff6U;
    static const uint32_t PARITY1 = 0x00000001U;
    static const uint32_t PARITY2 = 0x00000000U;
    static const uint32_t PARITY3 = 0x00000000U;
    static const uint32_t PARITY4 = 0x13c9e684U;
};

class CSFMTParams_44497
{
  public:
    static const size_t MEXP = 44497;
    static const size_t POS1 = 330;
    static const int SL1 = 5;
    static const int SL2 = 3;
    static const int SR1 = 9;
    static const int SR2 = 3;
    static const uint32_t MSK1 = 0xeffffffbU;
    static const uint32_t MSK2 = 0xdfbebfffU;
    static const uint32_t MSK3 = 0xbfbf7befU;
    static const uint32_t MSK4 = 0x9ffd7bffU;
    static const uint32_t PARITY1 = 0x00000001U;
    static const uint32_t PARITY2 = 0x00000000U;
    static const uint32_t PARITY3 = 0xa3ac4000U;
    static const uint32_t PARITY4 = 0xecc1327aU;
};

class CSFMTParams_86243
{
  public:
    static const size_t MEXP = 86243;
    static const size_t POS1 = 366;
    static const int SL1 = 6;
    static const int SL2 = 7;
    static const int SR1 = 19;
    static const int SR2 = 1;
    static const uint32_t MSK1 = 0xfdbffbffU;
    static const uint32_t MSK2 = 0xbff7ff3fU;
    static const uint32_t MSK3 = 0xfd77efffU;
    static const uint32_t MSK4 = 0xbf9ff3ffU;
    static const uint32_t PARITY1 = 0x00000001U;
    static const uint32_t PARITY2 = 0x00000000U;
    static const uint32_t PARITY3 = 0x00000000U;
    static const uint32_t PARITY4 = 0xe9528d85U;
};

class CSFMTParams_132049
{
  public:
    static const size_t MEXP = 132049;
    static const size_t POS1 = 110;
    static const int SL1 = 19;
    static const int SL2 = 1;
    static const int SR1 = 21;
    static const int SR2 = 1;
    static const uint32_t MSK1 = 0xffffbb5fU;
    static const uint32_t MSK2 = 0xfb6ebf95U;
    static const uint32_t MSK3 = 0xfffefffaU;
    static const uint32_t MSK4 = 0xcff77fffU;
    static const uint32_t PARITY1 = 0x00000001U;
    static const uint32_t PARITY2 = 0x00000000U;
    static const uint32_t PARITY3 = 0xcb520000U;
    static const uint32_t PARITY4 = 0xc7e91c7dU;
};

class CSFMTParams_216091
{
  public:
    static const size_t MEXP = 216091;
    static const size_t POS1 = 627;
    static const int SL1 = 11;
    static const int SL2 = 3;
    static const int SR1 = 10;
    static const int SR2 = 1;
    static const uint32_t MSK1 = 0xbff7bff7U;
    static const uint32_t MSK2 = 0xbfffffffU;
    static const uint32_t MSK3 = 0xbffffa7fU;
    static const uint32_t MSK4 = 0xffddfbfbU;
    static const uint32_t PARITY1 = 0xf8000001U;
    static const uint32_t PARITY2 = 0x89e80709U;
    static const uint32_t PARITY3 = 0x3bd2b64bU;
    static const uint32_t PARITY4 = 0x0c64b1e4U;
};

#endif
