]> mj.ucw.cz Git - libucw.git/blobdiff - ucw/prime.h
Build: Fixed few compilation warnings/errors.
[libucw.git] / ucw / prime.h
index 9ca2a01ebce72d48c2cdf878c8dc5d2e46ef2f87..c0db3e5580b779ce2904112a7d7cab65577a951a 100644 (file)
 #ifndef _UCW_PRIME_H
 #define _UCW_PRIME_H
 
-#include "ucw/lib.h"
+#include <ucw/lib.h>
+
+#ifdef CONFIG_UCW_CLEAN_ABI
+#define isprime ucw_isprime
+#define next_table_prime ucw_next_table_prime
+#define nextprime ucw_nextprime
+#define prev_table_prime ucw_prev_table_prime
+#endif
 
 /* prime.c */
 
+/**
+ * Return a non-zero value iff @x is a prime number.
+ * The time complexity is `O(sqrt(x))`.
+ **/
 int isprime(uns x);
+
+/**
+ * Return some prime greater than @x. The function does not checks overflows, but it should
+ * be safe at least for @x lower than `1U << 31`.
+ * If the Cramer's conjecture is true, it should have complexity `O(sqrt(x) * log(x)^2)`.
+ **/
 uns nextprime(uns x);
 
 /* primetable.c */
 
+/**
+ * Quickly lookup a precomputed table to return a prime number greater than @x.
+ * Returns zero if there is no such prime (we guarantee the existance of at
+ * least one prime greater than `1U << 31` in the table).
+ **/
 uns next_table_prime(uns x);
+
+/**
+ * Quickly lookup a precomputed table to return a prime number smaller than @x.
+ * Returns zero if @x is smaller than `7`.
+ **/
 uns prev_table_prime(uns x);
 
 #endif // _UCW_PRIME_H