/usr/include/primesieve.h is in libprimesieve-dev-common 6.3+ds-2ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 | /**
* @file primesieve.h
* @brief primesieve C API. primesieve is a library for fast prime
* number generation. In case an error occurs errno is set to
* EDOM and PRIMESIEVE_ERROR is returned.
*
* Copyright (C) 2017 Kim Walisch, <kim.walisch@gmail.com>
*
* This file is distributed under the BSD License.
*/
#ifndef PRIMESIEVE_H
#define PRIMESIEVE_H
#define PRIMESIEVE_VERSION "6.3"
#define PRIMESIEVE_VERSION_MAJOR 6
#define PRIMESIEVE_VERSION_MINOR 3
#include <primesieve/iterator.h>
#include <stdint.h>
#include <stddef.h>
/**
* primesieve functions return PRIMESIEVE_ERROR
* (UINT64_MAX) if any error occurs.
*/
#define PRIMESIEVE_ERROR ((uint64_t) ~((uint64_t) 0))
#ifdef __cplusplus
extern "C" {
#endif
enum {
/** Generate primes of short type */
SHORT_PRIMES,
/** Generate primes of unsigned short type */
USHORT_PRIMES,
/** Generate primes of int type */
INT_PRIMES,
/** Generate primes of unsigned int type */
UINT_PRIMES,
/** Generate primes of long type */
LONG_PRIMES,
/** Generate primes of unsigned long type */
ULONG_PRIMES,
/** Generate primes of long long type */
LONGLONG_PRIMES,
/** Generate primes of unsigned long long type */
ULONGLONG_PRIMES,
/** Generate primes of int16_t type */
INT16_PRIMES,
/** Generate primes of uint16_t type */
UINT16_PRIMES,
/** Generate primes of int32_t type */
INT32_PRIMES,
/** Generate primes of uint32_t type */
UINT32_PRIMES,
/** Generate primes of int64_t type */
INT64_PRIMES,
/** Generate primes of uint64_t type */
UINT64_PRIMES
};
/**
* Get an array with the primes inside the interval [start, stop].
* @param size The size of the returned primes array.
* @param type The type of the primes to generate, e.g. INT_PRIMES.
*/
void* primesieve_generate_primes(uint64_t start, uint64_t stop, size_t* size, int type);
/**
* Get an array with the first n primes >= start.
* @param type The type of the primes to generate, e.g. INT_PRIMES.
*/
void* primesieve_generate_n_primes(uint64_t n, uint64_t start, int type);
/**
* Find the nth prime.
* By default all CPU cores are used, use
* primesieve_set_num_threads(int threads) to change the
* number of threads.
* @param n if n = 0 finds the 1st prime >= start, <br/>
* if n > 0 finds the nth prime > start, <br/>
* if n < 0 finds the nth prime < start (backwards).
*/
uint64_t primesieve_nth_prime(int64_t n, uint64_t start);
/**
* Count the primes within the interval [start, stop].
* By default all CPU cores are used, use
* primesieve_set_num_threads(int threads) to change the
* number of threads.
*/
uint64_t primesieve_count_primes(uint64_t start, uint64_t stop);
/**
* Count the twin primes within the interval [start, stop].
* By default all CPU cores are used, use
* primesieve_set_num_threads(int threads) to change the
* number of threads.
*/
uint64_t primesieve_count_twins(uint64_t start, uint64_t stop);
/**
* Count the prime triplets within the interval [start, stop].
* By default all CPU cores are used, use
* primesieve_set_num_threads(int threads) to change the
* number of threads.
*/
uint64_t primesieve_count_triplets(uint64_t start, uint64_t stop);
/**
* Count the prime quadruplets within the interval [start, stop].
* By default all CPU cores are used, use
* primesieve_set_num_threads(int threads) to change the
* number of threads.
*/
uint64_t primesieve_count_quadruplets(uint64_t start, uint64_t stop);
/**
* Count the prime quintuplets within the interval [start, stop].
* By default all CPU cores are used, use
* primesieve_set_num_threads(int threads) to change the
* number of threads.
*/
uint64_t primesieve_count_quintuplets(uint64_t start, uint64_t stop);
/**
* Count the prime sextuplets within the interval [start, stop].
* By default all CPU cores are used, use
* primesieve_set_num_threads(int threads) to change the
* number of threads.
*/
uint64_t primesieve_count_sextuplets(uint64_t start, uint64_t stop);
/**
* Print the primes within the interval [start, stop]
* to the standard output.
*/
void primesieve_print_primes(uint64_t start, uint64_t stop);
/**
* Print the twin primes within the interval [start, stop]
* to the standard output.
*/
void primesieve_print_twins(uint64_t start, uint64_t stop);
/**
* Print the prime triplets within the interval [start, stop]
* to the standard output.
*/
void primesieve_print_triplets(uint64_t start, uint64_t stop);
/**
* Print the prime quadruplets within the interval [start, stop]
* to the standard output.
*/
void primesieve_print_quadruplets(uint64_t start, uint64_t stop);
/**
* Print the prime quintuplets within the interval [start, stop]
* to the standard output.
*/
void primesieve_print_quintuplets(uint64_t start, uint64_t stop);
/**
* Print the prime sextuplets within the interval [start, stop]
* to the standard output.
*/
void primesieve_print_sextuplets(uint64_t start, uint64_t stop);
/**
* Returns the largest valid stop number for primesieve.
* @return 2^64-1 (UINT64_MAX).
*/
uint64_t primesieve_get_max_stop();
/** Get the current set sieve size in kilobytes */
int primesieve_get_sieve_size();
/** Get the current set number of threads */
int primesieve_get_num_threads();
/**
* Set the sieve size in kilobytes.
* The best sieving performance is achieved with a sieve size
* of your CPU's L1 or L2 cache size (per core).
* @param sieve_size Sieve size in kilobytes.
* @pre sieve_size >= 8 && <= 4096.
*/
void primesieve_set_sieve_size(int sieve_size);
/**
* Set the number of threads for use in
* primesieve_count_*() and primesieve_nth_prime().
* By default all CPU cores are used.
*/
void primesieve_set_num_threads(int num_threads);
/**
* Deallocate a primes array created using the
* primesieve_generate_primes() or primesieve_generate_n_primes()
* functions.
*/
void primesieve_free(void* primes);
/** Get the primesieve version number, in the form “i.j” */
const char* primesieve_version();
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif
|