diff options
author | Chih-Hung Hsieh <chh@google.com> | 2015-09-24 15:42:30 -0700 |
---|---|---|
committer | Chih-hung Hsieh <chh@google.com> | 2015-09-24 23:25:36 +0000 |
commit | 5eafdf0f9bfd9a3c5f93414ac16bb399b6da0b7f (patch) | |
tree | 7d9031ee3d5796de4a1825892fc6e04ba6e36ae2 /lib/next_prime.c | |
parent | d03895cf5f8b77c6a85abcd84ea0d80ff56be846 (diff) | |
download | android_external_elfutils-5eafdf0f9bfd9a3c5f93414ac16bb399b6da0b7f.tar.gz android_external_elfutils-5eafdf0f9bfd9a3c5f93414ac16bb399b6da0b7f.tar.bz2 android_external_elfutils-5eafdf0f9bfd9a3c5f93414ac16bb399b6da0b7f.zip |
Move files up to match upstream source structure.
To create an upstream-master branch later and keep track
of upstream changes.
* src/Android.mk file is deleted because ./Android.mk
is identical and serves the same purpose.
* ./Makefile.am is moved from old src/Makefile.am,
and new src/Makefile.am is from old src/src/Makefile.am.
Similarly, ./ChangeLog is moved from old src/ChangeLog,
and new src/ChangeLog is from old src/src/ChangeLog.
* Remove unnecessary files that were generated by
autoconf or configure.
Change-Id: Iafc67d1e80f9d7ad2a74bc851bf9ca9e87205336
Diffstat (limited to 'lib/next_prime.c')
-rw-r--r-- | lib/next_prime.c | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/lib/next_prime.c b/lib/next_prime.c new file mode 100644 index 00000000..f2c921e3 --- /dev/null +++ b/lib/next_prime.c @@ -0,0 +1,66 @@ +/* Determine prime number. + Copyright (C) 2006 Red Hat, Inc. + This file is part of elfutils. + Written by Ulrich Drepper <drepper@redhat.com>, 2000. + + This file is free software; you can redistribute it and/or modify + it under the terms of either + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at + your option) any later version + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at + your option) any later version + + or both in parallel, as here. + + elfutils 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 + General Public License for more details. + + You should have received copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see <http://www.gnu.org/licenses/>. */ + +#include <stddef.h> + + +/* Test whether CANDIDATE is a prime. */ +static int +is_prime (size_t candidate) +{ + /* No even number and none less than 10 will be passed here. */ + size_t divn = 3; + size_t sq = divn * divn; + + while (sq < candidate && candidate % divn != 0) + { + size_t old_sq = sq; + ++divn; + sq += 4 * divn; + if (sq < old_sq) + return 1; + ++divn; + } + + return candidate % divn != 0; +} + + +/* We need primes for the table size. */ +size_t +next_prime (size_t seed) +{ + /* Make it definitely odd. */ + seed |= 1; + + while (!is_prime (seed)) + seed += 2; + + return seed; +} |