From a2fd89f963a7374b29f7831e67b443c3d42c6e3c Mon Sep 17 00:00:00 2001 From: Kevin Chabowski Date: Thu, 1 Aug 2013 22:53:27 +0200 Subject: Added SFMT prng. --- SFMT/params/csv2param.awk | 102 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100755 SFMT/params/csv2param.awk (limited to 'SFMT/params/csv2param.awk') diff --git a/SFMT/params/csv2param.awk b/SFMT/params/csv2param.awk new file mode 100755 index 0000000..a40ae3d --- /dev/null +++ b/SFMT/params/csv2param.awk @@ -0,0 +1,102 @@ +#!/usr/bin/awk -f +# +# +# +# +# +BEGIN { + if (length(ARGV) <= 2) { + usage(); + exit; + } else { + FS=","; + line = ARGV[1] + 1; + delete ARGV[1]; + } +} + +NR == line { print_variable();} + +function usage() { + printf("usage:\n"); + printf("csv2param.awk line-no csv-filename\n"); +} + +function print_variable() { + #printf("#ifndef SFMT_PARAMS%s_H\n", $1); + #printf("#define SFMT_PARAMS%s_H\n\n", $1); + printf("#define POS1\t%s\n", $3); + printf("#define SL1\t%s\n", $4); + printf("#define SL2\t%s\n", $5); + printf("#define SR1\t%s\n", $6); + printf("#define SR2\t%s\n", $7); + printf("#define MSK1\t0x%sU\n", $8); + printf("#define MSK2\t0x%sU\n", $9); + printf("#define MSK3\t0x%sU\n", $10); + printf("#define MSK4\t0x%sU\n", $11); + printf("#define PARITY1\t0x%sU\n", $12); + printf("#define PARITY2\t0x%sU\n", $13); + printf("#define PARITY3\t0x%sU\n", $14); + printf("#define PARITY4\t0x%sU\n", $15); + + printf("\n\n/* PARAMETERS FOR ALTIVEC */\n") + printf("#if defined(__APPLE__)\t/* For OSX */\n") + printf(" #define ALTI_SL1\t(vector unsigned int)(SL1, SL1, SL1, SL1)\n") + printf(" #define ALTI_SR1\t(vector unsigned int)(SR1, SR1, SR1, SR1)\n") + printf(" #define ALTI_MSK\t") + printf("(vector unsigned int)(MSK1, MSK2, MSK3, MSK4)\n") + printf(" #define ALTI_MSK64 \\\n") + printf("\t(vector unsigned int)(MSK2, MSK1, MSK4, MSK3)\n") + + cnt = 16; + s = $(cnt++); + for (i = 1; i < 16; i++) { + s = s "," $(cnt++); + } + printf(" #define ALTI_SL2_PERM \\\n\t(vector unsigned char)(%s)\n", s); + s = $(cnt++); + for (i = 1; i < 16; i++) { + s = s "," $(cnt++); + } + printf(" #define ALTI_SL2_PERM64 \\\n\t(vector unsigned char)(%s)\n", s); + s = $(cnt++); + for (i = 1; i < 16; i++) { + s = s "," $(cnt++); + } + printf(" #define ALTI_SR2_PERM \\\n\t(vector unsigned char)(%s)\n", s); + s = $(cnt++); + for (i = 1; i < 16; i++) { + s = s "," $(cnt++); + } + printf(" #define ALTI_SR2_PERM64 \\\n\t(vector unsigned char)(%s)\n", s); + printf("#else\t/* For OTHER OSs(Linux?) */\n") + printf(" #define ALTI_SL1\t{SL1, SL1, SL1, SL1}\n") + printf(" #define ALTI_SR1\t{SR1, SR1, SR1, SR1}\n") + printf(" #define ALTI_MSK\t{MSK1, MSK2, MSK3, MSK4}\n") + printf(" #define ALTI_MSK64\t{MSK2, MSK1, MSK4, MSK3}\n") + cnt = 16; + s = $(cnt++); + for (i = 1; i < 16; i++) { + s = s "," $(cnt++); + } + printf(" #define ALTI_SL2_PERM\t{%s}\n", s); + s = $(cnt++); + for (i = 1; i < 16; i++) { + s = s "," $(cnt++); + } + printf(" #define ALTI_SL2_PERM64\t{%s}\n", s); + s = $(cnt++); + for (i = 1; i < 16; i++) { + s = s "," $(cnt++); + } + printf(" #define ALTI_SR2_PERM\t{%s}\n", s); + s = $(cnt++); + for (i = 1; i < 16; i++) { + s = s "," $(cnt++); + } + printf(" #define ALTI_SR2_PERM64\t{%s}\n", s); + printf("#endif\t/* For OSX */\n") + printf("#define IDSTR\t\"SFMT-%s:%s-%s-%s-%s-%s:%s-%s-%s-%s\"\n", + $1, $3, $4, $5, $6, $7, $8, $9, $10, $11); + #printf("\n#endif /* SFMT_PARAMS%s_H */\n", $1); +} -- cgit v1.2.3-54-g00ecf