NEURON
nrnrandom.h File Reference
#include <stdint.h>

Go to the source code of this file.

Typedefs

typedef struct Rand Rand
 Ideally the prototypes below would take Rand* in place of void*, but this would break several existing models. More...
 

Functions

long nrn_get_random_sequence (void *r)
 These declarations are wrong, in the sense that they are inconsistent with the definitions in ivocrand.cpp. More...
 
voidnrn_random_arg (int)
 
int nrn_random_isran123 (void *r, uint32_t *id1, uint32_t *id2, uint32_t *id3)
 
double nrn_random_pick (void *r)
 
void nrn_random_reset (void *r)
 
int nrn_random123_getseq (void *r, uint32_t *seq, char *which)
 
int nrn_random123_setseq (void *r, uint32_t seq, char which)
 
void nrn_set_random_sequence (void *r, int seq)
 Note that in addition to having void* in place of Rand*, this has int in place of long. More...
 

Typedef Documentation

◆ Rand

typedef struct Rand Rand

Ideally the prototypes below would take Rand* in place of void*, but this would break several existing models.

We do, however, want to declare the Rand type, as this makes it possible to write (for example) nrn_random_pick((Rand*)some_rand) now, which will be required to suppress deprecation warnings in NEURON 9+ where nrn_random_pick(void*) is a [[deprecated]] overload and the non-deprecated version takes Rand*.

Definition at line 1 of file nrnrandom.h.

Function Documentation

◆ nrn_get_random_sequence()

long nrn_get_random_sequence ( void r)

These declarations are wrong, in the sense that they are inconsistent with the definitions in ivocrand.cpp.

This is an intentional, but possibly unwise, decision.

◆ nrn_random123_getseq()

int nrn_random123_getseq ( void r,
uint32_t *  seq,
char *  which 
)

◆ nrn_random123_setseq()

int nrn_random123_setseq ( void r,
uint32_t  seq,
char  which 
)

◆ nrn_random_arg()

void* nrn_random_arg ( int  i)

Definition at line 453 of file ivocrand.cpp.

◆ nrn_random_isran123()

int nrn_random_isran123 ( void r,
uint32_t *  id1,
uint32_t *  id2,
uint32_t *  id3 
)

◆ nrn_random_pick()

double nrn_random_pick ( void r)

◆ nrn_random_reset()

void nrn_random_reset ( void r)

◆ nrn_set_random_sequence()

void nrn_set_random_sequence ( void r,
int  seq 
)

Note that in addition to having void* in place of Rand*, this has int in place of long.