Mercurial > vba-clojure
diff src/SFMT/SFMT-params2281.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-params2281.h Sun Mar 04 17:38:32 2012 -0600 1.3 @@ -0,0 +1,46 @@ 1.4 +#ifndef SFMT_PARAMS2281_H 1.5 +#define SFMT_PARAMS2281_H 1.6 + 1.7 +#define POS1 12 1.8 +#define SL1 19 1.9 +#define SL2 1 1.10 +#define SR1 5 1.11 +#define SR2 1 1.12 +#define MSK1 0xbff7ffbfU 1.13 +#define MSK2 0xfdfffffeU 1.14 +#define MSK3 0xf7ffef7fU 1.15 +#define MSK4 0xf2f7cbbfU 1.16 +#define PARITY1 0x00000001U 1.17 +#define PARITY2 0x00000000U 1.18 +#define PARITY3 0x00000000U 1.19 +#define PARITY4 0x41dfa600U 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)(1,2,3,23,5,6,7,0,9,10,11,4,13,14,15,8) 1.31 + #define ALTI_SL2_PERM64 \ 1.32 + (vector unsigned char)(1,2,3,4,5,6,7,31,9,10,11,12,13,14,15,0) 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 {1,2,3,23,5,6,7,0,9,10,11,4,13,14,15,8} 1.43 + #define ALTI_SL2_PERM64 {1,2,3,4,5,6,7,31,9,10,11,12,13,14,15,0} 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-2281:12-19-1-5-1:bff7ffbf-fdfffffe-f7ffef7f-f2f7cbbf" 1.48 + 1.49 +#endif /* SFMT_PARAMS2281_H */