aboutsummaryrefslogtreecommitdiffstats
path: root/testing/dsfmt/0001-dSFMT.patch
diff options
context:
space:
mode:
authorJakub Jirutka <jakub@jirutka.cz>2016-06-04 01:52:53 +0200
committerJakub Jirutka <jakub@jirutka.cz>2016-06-09 19:26:06 +0200
commitab7d0fd6da26ee817ee94118e38545e95e38d9b9 (patch)
treed965213a702891cfbb18d0955e48233d9a7d1372 /testing/dsfmt/0001-dSFMT.patch
parent3fff94f8229cf6fcd271cd4927df9abfc51e6b77 (diff)
downloadaports-ab7d0fd6da26ee817ee94118e38545e95e38d9b9.tar.bz2
aports-ab7d0fd6da26ee817ee94118e38545e95e38d9b9.tar.xz
testing/dsfmt: new abuild
http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/#dSFMT Double precision SIMD-oriented Fast Mersenne Twister
Diffstat (limited to 'testing/dsfmt/0001-dSFMT.patch')
-rw-r--r--testing/dsfmt/0001-dSFMT.patch458
1 files changed, 458 insertions, 0 deletions
diff --git a/testing/dsfmt/0001-dSFMT.patch b/testing/dsfmt/0001-dSFMT.patch
new file mode 100644
index 0000000000..8048ab2565
--- /dev/null
+++ b/testing/dsfmt/0001-dSFMT.patch
@@ -0,0 +1,458 @@
+From: Jakub Jirutka <jakub@jirutka.cz>
+Date: Wed, 08 Jun 2016 20:49:00 +0200
+Subject: [PATCH] Port patches from Julia
+
+Patches copied from the Julia Language:
+
+* https://github.com/JuliaLang/julia/blob/615f7ca7965fec2b57dddca88e3ba518384b18db/deps/patches/dSFMT.c.patch
+* https://github.com/JuliaLang/julia/blob/615f7ca7965fec2b57dddca88e3ba518384b18db/deps/patches/dSFMT.h.patch
+
+--- a/dSFMT.c 2012-06-29 03:24:27.000000000 -0400
++++ b/dSFMT.c 2012-12-20 12:45:45.000000000 -0500
+@@ -32,13 +32,13 @@
+ inline static uint32_t ini_func1(uint32_t x);
+ inline static uint32_t ini_func2(uint32_t x);
+ inline static void gen_rand_array_c1o2(dsfmt_t *dsfmt, w128_t *array,
+- int size);
++ ptrdiff_t size);
+ inline static void gen_rand_array_c0o1(dsfmt_t *dsfmt, w128_t *array,
+- int size);
++ ptrdiff_t size);
+ inline static void gen_rand_array_o0c1(dsfmt_t *dsfmt, w128_t *array,
+- int size);
++ ptrdiff_t size);
+ inline static void gen_rand_array_o0o1(dsfmt_t *dsfmt, w128_t *array,
+- int size);
++ ptrdiff_t size);
+ inline static int idxof(int i);
+ static void initial_mask(dsfmt_t *dsfmt);
+ static void period_certification(dsfmt_t *dsfmt);
+@@ -142,8 +142,8 @@
+ * @param size number of 128-bit pseudorandom numbers to be generated.
+ */
+ inline static void gen_rand_array_c1o2(dsfmt_t *dsfmt, w128_t *array,
+- int size) {
+- int i, j;
++ ptrdiff_t size) {
++ ptrdiff_t i, j;
+ w128_t lung;
+
+ lung = dsfmt->status[DSFMT_N];
+@@ -180,8 +180,8 @@
+ * @param size number of 128-bit pseudorandom numbers to be generated.
+ */
+ inline static void gen_rand_array_c0o1(dsfmt_t *dsfmt, w128_t *array,
+- int size) {
+- int i, j;
++ ptrdiff_t size) {
++ ptrdiff_t i, j;
+ w128_t lung;
+
+ lung = dsfmt->status[DSFMT_N];
+@@ -223,8 +223,8 @@
+ * @param size number of 128-bit pseudorandom numbers to be generated.
+ */
+ inline static void gen_rand_array_o0o1(dsfmt_t *dsfmt, w128_t *array,
+- int size) {
+- int i, j;
++ ptrdiff_t size) {
++ ptrdiff_t i, j;
+ w128_t lung;
+
+ lung = dsfmt->status[DSFMT_N];
+@@ -266,8 +266,8 @@
+ * @param size number of 128-bit pseudorandom numbers to be generated.
+ */
+ inline static void gen_rand_array_o0c1(dsfmt_t *dsfmt, w128_t *array,
+- int size) {
+- int i, j;
++ ptrdiff_t size) {
++ ptrdiff_t i, j;
+ w128_t lung;
+
+ lung = dsfmt->status[DSFMT_N];
+@@ -453,7 +453,7 @@
+ * memory. Mac OSX doesn't have these functions, but \b malloc of OSX
+ * returns the pointer to the aligned memory block.
+ */
+-void dsfmt_fill_array_close1_open2(dsfmt_t *dsfmt, double array[], int size) {
++void dsfmt_fill_array_close1_open2(dsfmt_t *dsfmt, double array[], ptrdiff_t size) {
+ assert(size % 2 == 0);
+ assert(size >= DSFMT_N64);
+ gen_rand_array_c1o2(dsfmt, (w128_t *)array, size / 2);
+@@ -471,7 +471,7 @@
+ * @param size the number of pseudorandom numbers to be generated.
+ * see also \sa fill_array_close1_open2()
+ */
+-void dsfmt_fill_array_open_close(dsfmt_t *dsfmt, double array[], int size) {
++void dsfmt_fill_array_open_close(dsfmt_t *dsfmt, double array[], ptrdiff_t size) {
+ assert(size % 2 == 0);
+ assert(size >= DSFMT_N64);
+ gen_rand_array_o0c1(dsfmt, (w128_t *)array, size / 2);
+@@ -489,7 +489,7 @@
+ * @param size the number of pseudorandom numbers to be generated.
+ * see also \sa fill_array_close1_open2()
+ */
+-void dsfmt_fill_array_close_open(dsfmt_t *dsfmt, double array[], int size) {
++void dsfmt_fill_array_close_open(dsfmt_t *dsfmt, double array[], ptrdiff_t size) {
+ assert(size % 2 == 0);
+ assert(size >= DSFMT_N64);
+ gen_rand_array_c0o1(dsfmt, (w128_t *)array, size / 2);
+@@ -507,7 +507,7 @@
+ * @param size the number of pseudorandom numbers to be generated.
+ * see also \sa fill_array_close1_open2()
+ */
+-void dsfmt_fill_array_open_open(dsfmt_t *dsfmt, double array[], int size) {
++void dsfmt_fill_array_open_open(dsfmt_t *dsfmt, double array[], ptrdiff_t size) {
+ assert(size % 2 == 0);
+ assert(size >= DSFMT_N64);
+ gen_rand_array_o0o1(dsfmt, (w128_t *)array, size / 2);
+--- a/dSFMT.h 2012-06-29 03:24:27.000000000 -0400
++++ b/dSFMT.h 2012-12-20 12:35:44.000000000 -0500
+@@ -40,6 +40,7 @@
+
+ #include <stdio.h>
+ #include <assert.h>
++#include <stddef.h>
+
+ #if !defined(DSFMT_MEXP)
+ #ifdef __GNUC__
+@@ -178,16 +179,17 @@
+ extern const int dsfmt_global_mexp;
+
+ void dsfmt_gen_rand_all(dsfmt_t *dsfmt);
+-void dsfmt_fill_array_open_close(dsfmt_t *dsfmt, double array[], int size);
+-void dsfmt_fill_array_close_open(dsfmt_t *dsfmt, double array[], int size);
+-void dsfmt_fill_array_open_open(dsfmt_t *dsfmt, double array[], int size);
+-void dsfmt_fill_array_close1_open2(dsfmt_t *dsfmt, double array[], int size);
++void dsfmt_fill_array_open_close(dsfmt_t *dsfmt, double array[], ptrdiff_t size);
++void dsfmt_fill_array_close_open(dsfmt_t *dsfmt, double array[], ptrdiff_t size);
++void dsfmt_fill_array_open_open(dsfmt_t *dsfmt, double array[], ptrdiff_t size);
++void dsfmt_fill_array_close1_open2(dsfmt_t *dsfmt, double array[], ptrdiff_t size);
+ void dsfmt_chk_init_gen_rand(dsfmt_t *dsfmt, uint32_t seed, int mexp);
+ void dsfmt_chk_init_by_array(dsfmt_t *dsfmt, uint32_t init_key[],
+ int key_length, int mexp);
+ const char *dsfmt_get_idstring(void);
+ int dsfmt_get_min_array_size(void);
+
++/*
+ #if defined(__GNUC__)
+ # define DSFMT_PRE_INLINE inline static
+ # define DSFMT_PST_INLINE __attribute__((always_inline))
+@@ -198,6 +200,10 @@
+ # define DSFMT_PRE_INLINE inline static
+ # define DSFMT_PST_INLINE
+ #endif
++*/
++#define DSFMT_PRE_INLINE
++#define DSFMT_PST_INLINE
++
+ DSFMT_PRE_INLINE uint32_t dsfmt_genrand_uint32(dsfmt_t *dsfmt) DSFMT_PST_INLINE;
+ DSFMT_PRE_INLINE double dsfmt_genrand_close1_open2(dsfmt_t *dsfmt)
+ DSFMT_PST_INLINE;
+@@ -212,13 +218,13 @@
+ DSFMT_PRE_INLINE double dsfmt_gv_genrand_close_open(void) DSFMT_PST_INLINE;
+ DSFMT_PRE_INLINE double dsfmt_gv_genrand_open_close(void) DSFMT_PST_INLINE;
+ DSFMT_PRE_INLINE double dsfmt_gv_genrand_open_open(void) DSFMT_PST_INLINE;
+-DSFMT_PRE_INLINE void dsfmt_gv_fill_array_open_close(double array[], int size)
++DSFMT_PRE_INLINE void dsfmt_gv_fill_array_open_close(double array[], ptrdiff_t size)
+ DSFMT_PST_INLINE;
+-DSFMT_PRE_INLINE void dsfmt_gv_fill_array_close_open(double array[], int size)
++DSFMT_PRE_INLINE void dsfmt_gv_fill_array_close_open(double array[], ptrdiff_t size)
+ DSFMT_PST_INLINE;
+-DSFMT_PRE_INLINE void dsfmt_gv_fill_array_open_open(double array[], int size)
++DSFMT_PRE_INLINE void dsfmt_gv_fill_array_open_open(double array[], ptrdiff_t size)
+ DSFMT_PST_INLINE;
+-DSFMT_PRE_INLINE void dsfmt_gv_fill_array_close1_open2(double array[], int size)
++DSFMT_PRE_INLINE void dsfmt_gv_fill_array_close1_open2(double array[], ptrdiff_t size)
+ DSFMT_PST_INLINE;
+ DSFMT_PRE_INLINE void dsfmt_gv_init_gen_rand(uint32_t seed) DSFMT_PST_INLINE;
+ DSFMT_PRE_INLINE void dsfmt_gv_init_by_array(uint32_t init_key[],
+@@ -236,7 +242,7 @@
+ * @param dsfmt dsfmt internal state date
+ * @return double precision floating point pseudorandom number
+ */
+-inline static uint32_t dsfmt_genrand_uint32(dsfmt_t *dsfmt) {
++uint32_t dsfmt_genrand_uint32(dsfmt_t *dsfmt) {
+ uint32_t r;
+ uint64_t *psfmt64 = &dsfmt->status[0].u[0];
+
+@@ -257,7 +263,7 @@
+ * @param dsfmt dsfmt internal state date
+ * @return double precision floating point pseudorandom number
+ */
+-inline static double dsfmt_genrand_close1_open2(dsfmt_t *dsfmt) {
++double dsfmt_genrand_close1_open2(dsfmt_t *dsfmt) {
+ double r;
+ double *psfmt64 = &dsfmt->status[0].d[0];
+
+@@ -276,7 +282,7 @@
+ * before this function. This function uses \b global variables.
+ * @return double precision floating point pseudorandom number
+ */
+-inline static uint32_t dsfmt_gv_genrand_uint32(void) {
++uint32_t dsfmt_gv_genrand_uint32(void) {
+ return dsfmt_genrand_uint32(&dsfmt_global_data);
+ }
+
+@@ -287,7 +293,7 @@
+ * before this function. This function uses \b global variables.
+ * @return double precision floating point pseudorandom number
+ */
+-inline static double dsfmt_gv_genrand_close1_open2(void) {
++double dsfmt_gv_genrand_close1_open2(void) {
+ return dsfmt_genrand_close1_open2(&dsfmt_global_data);
+ }
+
+@@ -299,7 +305,7 @@
+ * @param dsfmt dsfmt internal state date
+ * @return double precision floating point pseudorandom number
+ */
+-inline static double dsfmt_genrand_close_open(dsfmt_t *dsfmt) {
++double dsfmt_genrand_close_open(dsfmt_t *dsfmt) {
+ return dsfmt_genrand_close1_open2(dsfmt) - 1.0;
+ }
+
+@@ -310,7 +316,7 @@
+ * before this function. This function uses \b global variables.
+ * @return double precision floating point pseudorandom number
+ */
+-inline static double dsfmt_gv_genrand_close_open(void) {
++double dsfmt_gv_genrand_close_open(void) {
+ return dsfmt_gv_genrand_close1_open2() - 1.0;
+ }
+
+@@ -322,7 +328,7 @@
+ * @param dsfmt dsfmt internal state date
+ * @return double precision floating point pseudorandom number
+ */
+-inline static double dsfmt_genrand_open_close(dsfmt_t *dsfmt) {
++double dsfmt_genrand_open_close(dsfmt_t *dsfmt) {
+ return 2.0 - dsfmt_genrand_close1_open2(dsfmt);
+ }
+
+@@ -333,7 +339,7 @@
+ * before this function. This function uses \b global variables.
+ * @return double precision floating point pseudorandom number
+ */
+-inline static double dsfmt_gv_genrand_open_close(void) {
++double dsfmt_gv_genrand_open_close(void) {
+ return 2.0 - dsfmt_gv_genrand_close1_open2();
+ }
+
+@@ -345,7 +351,7 @@
+ * @param dsfmt dsfmt internal state date
+ * @return double precision floating point pseudorandom number
+ */
+-inline static double dsfmt_genrand_open_open(dsfmt_t *dsfmt) {
++double dsfmt_genrand_open_open(dsfmt_t *dsfmt) {
+ double *dsfmt64 = &dsfmt->status[0].d[0];
+ union {
+ double d;
+@@ -368,7 +374,7 @@
+ * before this function. This function uses \b global variables.
+ * @return double precision floating point pseudorandom number
+ */
+-inline static double dsfmt_gv_genrand_open_open(void) {
++double dsfmt_gv_genrand_open_open(void) {
+ return dsfmt_genrand_open_open(&dsfmt_global_data);
+ }
+
+@@ -383,7 +389,7 @@
+ * @param size the number of pseudorandom numbers to be generated.
+ * see also \sa dsfmt_fill_array_close1_open2()
+ */
+-inline static void dsfmt_gv_fill_array_close1_open2(double array[], int size) {
++void dsfmt_gv_fill_array_close1_open2(double array[], ptrdiff_t size) {
+ dsfmt_fill_array_close1_open2(&dsfmt_global_data, array, size);
+ }
+
+@@ -399,7 +405,7 @@
+ * see also \sa dsfmt_fill_array_close1_open2() and \sa
+ * dsfmt_gv_fill_array_close1_open2()
+ */
+-inline static void dsfmt_gv_fill_array_open_close(double array[], int size) {
++void dsfmt_gv_fill_array_open_close(double array[], ptrdiff_t size) {
+ dsfmt_fill_array_open_close(&dsfmt_global_data, array, size);
+ }
+
+@@ -415,7 +421,7 @@
+ * see also \sa dsfmt_fill_array_close1_open2() \sa
+ * dsfmt_gv_fill_array_close1_open2()
+ */
+-inline static void dsfmt_gv_fill_array_close_open(double array[], int size) {
++void dsfmt_gv_fill_array_close_open(double array[], ptrdiff_t size) {
+ dsfmt_fill_array_close_open(&dsfmt_global_data, array, size);
+ }
+
+@@ -431,7 +437,7 @@
+ * see also \sa dsfmt_fill_array_close1_open2() \sa
+ * dsfmt_gv_fill_array_close1_open2()
+ */
+-inline static void dsfmt_gv_fill_array_open_open(double array[], int size) {
++void dsfmt_gv_fill_array_open_open(double array[], ptrdiff_t size) {
+ dsfmt_fill_array_open_open(&dsfmt_global_data, array, size);
+ }
+
+@@ -441,7 +447,7 @@
+ * @param dsfmt dsfmt state vector.
+ * @param seed a 32-bit integer used as the seed.
+ */
+-inline static void dsfmt_init_gen_rand(dsfmt_t *dsfmt, uint32_t seed) {
++void dsfmt_init_gen_rand(dsfmt_t *dsfmt, uint32_t seed) {
+ dsfmt_chk_init_gen_rand(dsfmt, seed, DSFMT_MEXP);
+ }
+
+@@ -451,7 +457,7 @@
+ * @param seed a 32-bit integer used as the seed.
+ * see also \sa dsfmt_init_gen_rand()
+ */
+-inline static void dsfmt_gv_init_gen_rand(uint32_t seed) {
++void dsfmt_gv_init_gen_rand(uint32_t seed) {
+ dsfmt_init_gen_rand(&dsfmt_global_data, seed);
+ }
+
+@@ -462,7 +468,7 @@
+ * @param init_key the array of 32-bit integers, used as a seed.
+ * @param key_length the length of init_key.
+ */
+-inline static void dsfmt_init_by_array(dsfmt_t *dsfmt, uint32_t init_key[],
++void dsfmt_init_by_array(dsfmt_t *dsfmt, uint32_t init_key[],
+ int key_length) {
+ dsfmt_chk_init_by_array(dsfmt, init_key, key_length, DSFMT_MEXP);
+ }
+@@ -475,7 +481,7 @@
+ * @param key_length the length of init_key.
+ * see also \sa dsfmt_init_by_array()
+ */
+-inline static void dsfmt_gv_init_by_array(uint32_t init_key[], int key_length) {
++void dsfmt_gv_init_by_array(uint32_t init_key[], int key_length) {
+ dsfmt_init_by_array(&dsfmt_global_data, init_key, key_length);
+ }
+
+@@ -489,13 +495,13 @@
+ DSFMT_PRE_INLINE double genrand_close_open(void) DSFMT_PST_INLINE;
+ DSFMT_PRE_INLINE double genrand_open_close(void) DSFMT_PST_INLINE;
+ DSFMT_PRE_INLINE double genrand_open_open(void) DSFMT_PST_INLINE;
+-DSFMT_PRE_INLINE void fill_array_open_close(double array[], int size)
++DSFMT_PRE_INLINE void fill_array_open_close(double array[], ptrdiff_t size)
+ DSFMT_PST_INLINE;
+-DSFMT_PRE_INLINE void fill_array_close_open(double array[], int size)
++DSFMT_PRE_INLINE void fill_array_close_open(double array[], ptrdiff_t size)
+ DSFMT_PST_INLINE;
+-DSFMT_PRE_INLINE void fill_array_open_open(double array[], int size)
++DSFMT_PRE_INLINE void fill_array_open_open(double array[], ptrdiff_t size)
+ DSFMT_PST_INLINE;
+-DSFMT_PRE_INLINE void fill_array_close1_open2(double array[], int size)
++DSFMT_PRE_INLINE void fill_array_close1_open2(double array[], ptrdiff_t size)
+ DSFMT_PST_INLINE;
+
+ /**
+@@ -503,7 +509,7 @@
+ * @return id string.
+ * see also \sa dsfmt_get_idstring()
+ */
+-inline static const char *get_idstring(void) {
++const char *get_idstring(void) {
+ return dsfmt_get_idstring();
+ }
+
+@@ -512,7 +518,7 @@
+ * @return minimum size of array used for fill_array functions.
+ * see also \sa dsfmt_get_min_array_size()
+ */
+-inline static int get_min_array_size(void) {
++int get_min_array_size(void) {
+ return dsfmt_get_min_array_size();
+ }
+
+@@ -521,7 +527,7 @@
+ * @param seed a 32-bit integer used as the seed.
+ * see also \sa dsfmt_gv_init_gen_rand(), \sa dsfmt_init_gen_rand().
+ */
+-inline static void init_gen_rand(uint32_t seed) {
++void init_gen_rand(uint32_t seed) {
+ dsfmt_gv_init_gen_rand(seed);
+ }
+
+@@ -531,7 +537,7 @@
+ * @param key_length the length of init_key.
+ * see also \sa dsfmt_gv_init_by_array(), \sa dsfmt_init_by_array().
+ */
+-inline static void init_by_array(uint32_t init_key[], int key_length) {
++void init_by_array(uint32_t init_key[], int key_length) {
+ dsfmt_gv_init_by_array(init_key, key_length);
+ }
+
+@@ -541,7 +547,7 @@
+ * see also \sa dsfmt_genrand_close1_open2() \sa
+ * dsfmt_gv_genrand_close1_open2()
+ */
+-inline static double genrand_close1_open2(void) {
++double genrand_close1_open2(void) {
+ return dsfmt_gv_genrand_close1_open2();
+ }
+
+@@ -551,7 +557,7 @@
+ * see also \sa dsfmt_genrand_close_open() \sa
+ * dsfmt_gv_genrand_close_open()
+ */
+-inline static double genrand_close_open(void) {
++double genrand_close_open(void) {
+ return dsfmt_gv_genrand_close_open();
+ }
+
+@@ -561,7 +567,7 @@
+ * see also \sa dsfmt_genrand_open_close() \sa
+ * dsfmt_gv_genrand_open_close()
+ */
+-inline static double genrand_open_close(void) {
++double genrand_open_close(void) {
+ return dsfmt_gv_genrand_open_close();
+ }
+
+@@ -571,7 +577,7 @@
+ * see also \sa dsfmt_genrand_open_open() \sa
+ * dsfmt_gv_genrand_open_open()
+ */
+-inline static double genrand_open_open(void) {
++double genrand_open_open(void) {
+ return dsfmt_gv_genrand_open_open();
+ }
+
+@@ -584,7 +590,7 @@
+ * dsfmt_fill_array_close1_open2(), \sa
+ * dsfmt_gv_fill_array_close1_open2()
+ */
+-inline static void fill_array_open_close(double array[], int size) {
++void fill_array_open_close(double array[], ptrdiff_t size) {
+ dsfmt_gv_fill_array_open_close(array, size);
+ }
+
+@@ -597,7 +603,7 @@
+ * dsfmt_fill_array_close1_open2(), \sa
+ * dsfmt_gv_fill_array_close1_open2()
+ */
+-inline static void fill_array_close_open(double array[], int size) {
++void fill_array_close_open(double array[], ptrdiff_t size) {
+ dsfmt_gv_fill_array_close_open(array, size);
+ }
+
+@@ -610,7 +616,7 @@
+ * dsfmt_fill_array_close1_open2(), \sa
+ * dsfmt_gv_fill_array_close1_open2()
+ */
+-inline static void fill_array_open_open(double array[], int size) {
++void fill_array_open_open(double array[], ptrdiff_t size) {
+ dsfmt_gv_fill_array_open_open(array, size);
+ }
+
+@@ -622,7 +628,7 @@
+ * see also \sa dsfmt_fill_array_close1_open2(), \sa
+ * dsfmt_gv_fill_array_close1_open2()
+ */
+-inline static void fill_array_close1_open2(double array[], int size) {
++void fill_array_close1_open2(double array[], ptrdiff_t size) {
+ dsfmt_gv_fill_array_close1_open2(array, size);
+ }
+ #endif /* DSFMT_DO_NOT_USE_OLD_NAMES */