Mercurial > vba-clojure
diff src/SFMT/SFMT-params1279.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-params1279.h Sun Mar 04 17:38:32 2012 -0600 1.3 @@ -0,0 +1,46 @@ 1.4 +#ifndef SFMT_PARAMS1279_H 1.5 +#define SFMT_PARAMS1279_H 1.6 + 1.7 +#define POS1 7 1.8 +#define SL1 14 1.9 +#define SL2 3 1.10 +#define SR1 5 1.11 +#define SR2 1 1.12 +#define MSK1 0xf7fefffdU 1.13 +#define MSK2 0x7fefcfffU 1.14 +#define MSK3 0xaff3ef3fU 1.15 +#define MSK4 0xb5ffff7fU 1.16 +#define PARITY1 0x00000001U 1.17 +#define PARITY2 0x00000000U 1.18 +#define PARITY3 0x00000000U 1.19 +#define PARITY4 0x20000000U 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)(7,0,1,2,11,4,5,6,15,8,9,10,17,12,13,14) 1.35 + #define ALTI_SR2_PERM64 \ 1.36 + (vector unsigned char)(15,0,1,2,3,4,5,6,17,8,9,10,11,12,13,14) 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 {7,0,1,2,11,4,5,6,15,8,9,10,17,12,13,14} 1.45 + #define ALTI_SR2_PERM64 {15,0,1,2,3,4,5,6,17,8,9,10,11,12,13,14} 1.46 +#endif /* For OSX */ 1.47 +#define IDSTR "SFMT-1279:7-14-3-5-1:f7fefffd-7fefcfff-aff3ef3f-b5ffff7f" 1.48 + 1.49 +#endif /* SFMT_PARAMS1279_H */