PostgreSQL Source Code  git master
geqo_random.h File Reference
#include <math.h>
#include "optimizer/geqo.h"
Include dependency graph for geqo_random.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void geqo_set_seed (PlannerInfo *root, double seed)
 
double geqo_rand (PlannerInfo *root)
 
int geqo_randint (PlannerInfo *root, int upper, int lower)
 

Function Documentation

◆ geqo_rand()

double geqo_rand ( PlannerInfo root)

Definition at line 28 of file geqo_random.c.

29 {
31 
32  return pg_prng_double(&private->random_state);
33 }
double pg_prng_double(pg_prng_state *state)
Definition: pg_prng.c:226
void * join_search_private
Definition: pathnodes.h:376

References PlannerInfo::join_search_private, and pg_prng_double().

Referenced by linear_rand().

◆ geqo_randint()

int geqo_randint ( PlannerInfo root,
int  upper,
int  lower 
)

Definition at line 36 of file geqo_random.c.

37 {
39 
40  /*
41  * In current usage, "lower" is never negative so we can just use
42  * pg_prng_uint64_range directly.
43  */
44  return (int) pg_prng_uint64_range(&private->random_state, lower, upper);
45 }
Datum lower(PG_FUNCTION_ARGS)
Definition: oracle_compat.c:46
Datum upper(PG_FUNCTION_ARGS)
Definition: oracle_compat.c:77
uint64 pg_prng_uint64_range(pg_prng_state *state, uint64 rmin, uint64 rmax)
Definition: pg_prng.c:138

References PlannerInfo::join_search_private, lower(), pg_prng_uint64_range(), and upper().

Referenced by edge_failure(), gimme_gene(), gimme_tour(), and init_tour().

◆ geqo_set_seed()

void geqo_set_seed ( PlannerInfo root,
double  seed 
)

Definition at line 20 of file geqo_random.c.

21 {
23 
24  pg_prng_fseed(&private->random_state, seed);
25 }
void pg_prng_fseed(pg_prng_state *state, double fseed)
Definition: pg_prng.c:96

References PlannerInfo::join_search_private, and pg_prng_fseed().

Referenced by geqo().