1#ifndef _random_h_INCLUDED
2#define _random_h_INCLUDED
14static inline uint64_t kissat_next_random64 (
generator *rng) {
15 *rng *= 6364136223846793005ul;
16 *rng += 1442695040888963407ul;
20static inline unsigned kissat_next_random32 (
generator *rng) {
21 return kissat_next_random64 (rng) >> 32;
24static inline unsigned kissat_pick_random (
generator *rng,
unsigned l,
29 const unsigned delta = r - l;
30 const unsigned tmp = kissat_next_random32 (rng);
31 const double fraction = tmp / 4294967296.0;
33 const unsigned scaled = delta * fraction;
35 const unsigned res = l + scaled;
40static inline bool kissat_pick_bool (
generator *rng) {
41 return kissat_pick_random (rng, 0, 2);
44static inline double kissat_pick_double (
generator *rng) {
45 return kissat_next_random32 (rng) / 4294967296.0;
#define ABC_NAMESPACE_HEADER_END
#define ABC_NAMESPACE_HEADER_START
NAMESPACES ///.
#define CADICAL_assert(ignore)
ABC_NAMESPACE_HEADER_START typedef uint64_t generator