NEURON
oc_mcran4.cpp
Go to the documentation of this file.
1 #include "hocdec.h"
2 #include "mcran4.h"
3 
5 
6 void set_use_mcran4(bool value) {
7  use_mcell_ran4_ = value ? 1 : 0;
8 }
9 
10 bool use_mcran4() {
11  return use_mcell_ran4_ != 0;
12 }
13 
14 void hoc_mcran4() {
15  uint32_t idx;
16  double* xidx;
17  double x;
18  xidx = hoc_pgetarg(1);
19  idx = (uint32_t) (*xidx);
20  x = mcell_ran4a(&idx);
21  *xidx = idx;
22  hoc_ret();
23  hoc_pushx(x);
24 }
26  double prev = mcell_lowindex();
27  if (ifarg(1)) {
28  uint32_t idx = (uint32_t) chkarg(1, 0., 4294967295.);
29  mcell_ran4_init(idx);
30  }
31  hoc_ret();
32  hoc_pushx(prev);
33 }
34 void hoc_usemcran4() {
35  double prev = (double) use_mcell_ran4_;
36  if (ifarg(1)) {
37  use_mcell_ran4_ = (int) chkarg(1, 0., 1.);
38  }
39  hoc_ret();
40  hoc_pushx(prev);
41 }
double chkarg(int, double low, double high)
Definition: code2.cpp:626
void hoc_ret()
double * hoc_pgetarg(int narg)
Definition: oc_ansi.h:253
void hoc_pushx(double)
Definition: code.cpp:779
double mcell_ran4a(uint32_t *high)
Definition: mcran4.cpp:67
void mcell_ran4_init(uint32_t low)
Definition: mcran4.cpp:55
double mcell_lowindex()
Definition: mcran4.cpp:51
Item * prev(Item *item)
Definition: list.cpp:94
int ifarg(int)
Definition: code.cpp:1607
void hoc_mcran4init()
Definition: oc_mcran4.cpp:25
int use_mcell_ran4_
Definition: oc_mcran4.cpp:4
bool use_mcran4()
Definition: oc_mcran4.cpp:10
void hoc_usemcran4()
Definition: oc_mcran4.cpp:34
void set_use_mcran4(bool value)
Definition: oc_mcran4.cpp:6
void hoc_mcran4()
Definition: oc_mcran4.cpp:14
static uint32_t value
Definition: scoprand.cpp:25