Mercurial > vba-clojure
diff src/SFMT/SFMT-params11213.h @ 23:bf9169ad4222
add SMID-oriented fast mersenne twister
author | Robert McIntyre <rlm@mit.edu> |
---|---|
date | Sun, 04 Mar 2012 17:38:32 -0600 |
parents | f9f4f1b99eed |
children |
line wrap: on
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/src/SFMT/SFMT-params11213.h Sun Mar 04 17:38:32 2012 -0600 1.3 @@ -0,0 +1,46 @@ 1.4 +#ifndef SFMT_PARAMS11213_H 1.5 +#define SFMT_PARAMS11213_H 1.6 + 1.7 +#define POS1 68 1.8 +#define SL1 14 1.9 +#define SL2 3 1.10 +#define SR1 7 1.11 +#define SR2 3 1.12 +#define MSK1 0xeffff7fbU 1.13 +#define MSK2 0xffffffefU 1.14 +#define MSK3 0xdfdfbfffU 1.15 +#define MSK4 0x7fffdbfdU 1.16 +#define PARITY1 0x00000001U 1.17 +#define PARITY2 0x00000000U 1.18 +#define PARITY3 0xe8148000U 1.19 +#define PARITY4 0xd0c7afa3U 1.20 + 1.21 + 1.22 +/* PARAMETERS FOR ALTIVEC */ 1.23 +#if defined(__APPLE__) /* For OSX */ 1.24 + #define ALTI_SL1 (vector unsigned int)(SL1, SL1, SL1, SL1) 1.25 + #define ALTI_SR1 (vector unsigned int)(SR1, SR1, SR1, SR1) 1.26 + #define ALTI_MSK (vector unsigned int)(MSK1, MSK2, MSK3, MSK4) 1.27 + #define ALTI_MSK64 \ 1.28 + (vector unsigned int)(MSK2, MSK1, MSK4, MSK3) 1.29 + #define ALTI_SL2_PERM \ 1.30 + (vector unsigned char)(3,21,21,21,7,0,1,2,11,4,5,6,15,8,9,10) 1.31 + #define ALTI_SL2_PERM64 \ 1.32 + (vector unsigned char)(3,4,5,6,7,29,29,29,11,12,13,14,15,0,1,2) 1.33 + #define ALTI_SR2_PERM \ 1.34 + (vector unsigned char)(5,6,7,0,9,10,11,4,13,14,15,8,19,19,19,12) 1.35 + #define ALTI_SR2_PERM64 \ 1.36 + (vector unsigned char)(13,14,15,0,1,2,3,4,19,19,19,8,9,10,11,12) 1.37 +#else /* For OTHER OSs(Linux?) */ 1.38 + #define ALTI_SL1 {SL1, SL1, SL1, SL1} 1.39 + #define ALTI_SR1 {SR1, SR1, SR1, SR1} 1.40 + #define ALTI_MSK {MSK1, MSK2, MSK3, MSK4} 1.41 + #define ALTI_MSK64 {MSK2, MSK1, MSK4, MSK3} 1.42 + #define ALTI_SL2_PERM {3,21,21,21,7,0,1,2,11,4,5,6,15,8,9,10} 1.43 + #define ALTI_SL2_PERM64 {3,4,5,6,7,29,29,29,11,12,13,14,15,0,1,2} 1.44 + #define ALTI_SR2_PERM {5,6,7,0,9,10,11,4,13,14,15,8,19,19,19,12} 1.45 + #define ALTI_SR2_PERM64 {13,14,15,0,1,2,3,4,19,19,19,8,9,10,11,12} 1.46 +#endif /* For OSX */ 1.47 +#define IDSTR "SFMT-11213:68-14-3-7-3:effff7fb-ffffffef-dfdfbfff-7fffdbfd" 1.48 + 1.49 +#endif /* SFMT_PARAMS11213_H */