dSFMT-params19937.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #ifndef DSFMT_PARAMS19937_H
  2. #define DSFMT_PARAMS19937_H
  3. /* #define DSFMT_N 191 */
  4. /* #define DSFMT_MAXDEGREE 19992 */
  5. #define DSFMT_POS1 117
  6. #define DSFMT_SL1 19
  7. #define DSFMT_MSK1 UINT64_C(0x000ffafffffffb3f)
  8. #define DSFMT_MSK2 UINT64_C(0x000ffdfffc90fffd)
  9. #define DSFMT_MSK32_1 0x000ffaffU
  10. #define DSFMT_MSK32_2 0xfffffb3fU
  11. #define DSFMT_MSK32_3 0x000ffdffU
  12. #define DSFMT_MSK32_4 0xfc90fffdU
  13. #define DSFMT_FIX1 UINT64_C(0x90014964b32f4329)
  14. #define DSFMT_FIX2 UINT64_C(0x3b8d12ac548a7c7a)
  15. #define DSFMT_PCV1 UINT64_C(0x3d84e1ac0dc82880)
  16. #define DSFMT_PCV2 UINT64_C(0x0000000000000001)
  17. #define DSFMT_IDSTR "dSFMT2-19937:117-19:ffafffffffb3f-ffdfffc90fffd"
  18. /* PARAMETERS FOR ALTIVEC */
  19. #if defined(__APPLE__) /* For OSX */
  20. #define ALTI_SL1 (vector unsigned char)(3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3)
  21. #define ALTI_SL1_PERM \
  22. (vector unsigned char)(2,3,4,5,6,7,30,30,10,11,12,13,14,15,0,1)
  23. #define ALTI_SL1_MSK \
  24. (vector unsigned int)(0xffffffffU,0xfff80000U,0xffffffffU,0xfff80000U)
  25. #define ALTI_MSK (vector unsigned int)(DSFMT_MSK32_1, \
  26. DSFMT_MSK32_2, DSFMT_MSK32_3, DSFMT_MSK32_4)
  27. #else /* For OTHER OSs(Linux?) */
  28. #define ALTI_SL1 {3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}
  29. #define ALTI_SL1_PERM \
  30. {2,3,4,5,6,7,30,30,10,11,12,13,14,15,0,1}
  31. #define ALTI_SL1_MSK \
  32. {0xffffffffU,0xfff80000U,0xffffffffU,0xfff80000U}
  33. #define ALTI_MSK \
  34. {DSFMT_MSK32_1, DSFMT_MSK32_2, DSFMT_MSK32_3, DSFMT_MSK32_4}
  35. #endif
  36. #endif /* DSFMT_PARAMS19937_H */