summaryrefslogtreecommitdiffstats
path: root/3rdparty/openpgm-svn-r1085/pgm/math.c
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/openpgm-svn-r1085/pgm/math.c')
-rw-r--r--3rdparty/openpgm-svn-r1085/pgm/math.c75
1 files changed, 75 insertions, 0 deletions
diff --git a/3rdparty/openpgm-svn-r1085/pgm/math.c b/3rdparty/openpgm-svn-r1085/pgm/math.c
new file mode 100644
index 0000000..c2a1b4e
--- /dev/null
+++ b/3rdparty/openpgm-svn-r1085/pgm/math.c
@@ -0,0 +1,75 @@
+/* vim:ts=8:sts=8:sw=4:noai:noexpandtab
+ *
+ * portable math.
+ *
+ * Copyright (c) 2010 Miru Limited.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include <impl/framework.h>
+
+
+//#define MATH_DEBUG
+
+
+static const unsigned primes[] =
+{
+ 11,
+ 19,
+ 37,
+ 73,
+ 109,
+ 163,
+ 251,
+ 367,
+ 557,
+ 823,
+ 1237,
+ 1861,
+ 2777,
+ 4177,
+ 6247,
+ 9371,
+ 14057,
+ 21089,
+ 31627,
+ 47431,
+ 71143,
+ 106721,
+ 160073,
+ 240101,
+ 360163,
+ 540217,
+ 810343,
+ 1215497,
+ 1823231,
+ 2734867,
+ 4102283,
+ 6153409,
+ 9230113,
+ 13845163,
+};
+
+unsigned
+pgm_spaced_primes_closest (unsigned num)
+{
+ for (unsigned i = 0; i < PGM_N_ELEMENTS(primes); i++)
+ if (primes[i] > num)
+ return primes[i];
+ return primes[PGM_N_ELEMENTS(primes) - 1];
+}
+
+/* eof */