aboutsummaryrefslogtreecommitdiff
path: root/new_python/src
diff options
context:
space:
mode:
Diffstat (limited to 'new_python/src')
-rw-r--r--new_python/src/_syncrng.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/new_python/src/_syncrng.c b/new_python/src/_syncrng.c
index bd1612a..3a8cf68 100644
--- a/new_python/src/_syncrng.c
+++ b/new_python/src/_syncrng.c
@@ -121,8 +121,11 @@ static PyObject *_syncrng_seed(PyObject *self, PyObject *args)
{
uint32_t seed;
uint64_t *state = NULL;
+<<<<<<< HEAD:new_R/src/syncrng.c
+=======
PyObject *dblObj;
+>>>>>>> python:new_python/src/_syncrng.c
if (!PyArg_ParseTuple(args, "O", &dblObj))
return NULL;
@@ -142,9 +145,14 @@ static PyObject *_syncrng_seed(PyObject *self, PyObject *args)
static PyObject *_syncrng_rand(PyObject *self, PyObject *args)
{
+<<<<<<< HEAD:new_R/src/syncrng.c
+ uint32_t i, value, numints;
+ uint64_t *localstate;
+=======
int i;
uint32_t rand;
uint64_t *localstate = malloc(sizeof(uint64_t) * 4);
+>>>>>>> python:new_python/src/_syncrng.c
PyObject *listObj;
PyObject *dblObj;
@@ -152,12 +160,26 @@ static PyObject *_syncrng_rand(PyObject *self, PyObject *args)
if (!PyArg_ParseTuple(args, "O!", &PyList_Type, &listObj))
return NULL;
+<<<<<<< HEAD:new_R/src/syncrng.c
+ // we're just assuming you would never pass more than 4 values
+ localstate = malloc(sizeof(uint32_t)*5);
+ numints = PyList_Size(listObj);
+ for (i=0; i<numints; i++) {
+ intObj = PyList_GetItem(listObj, i);
+ value = (uint32_t) PyLong_AsLong(intObj);
+ localstate[i] = value;
+ }
+
+ uint32_t rand = lfsr113(&localstate);
+ localstate[4] = rand;
+=======
for (i=0; i<4; i++) {
dblObj = PyList_GetItem(listObj, i);
localstate[i] = (uint64_t) PyFloat_AS_DOUBLE(dblObj);
}
rand = lfsr113(&localstate);
+>>>>>>> python:new_python/src/_syncrng.c
PyObject *pystate = Py_BuildValue("[d, d, d, d, d]",
(double) localstate[0],
@@ -304,7 +326,11 @@ SEXP R_syncrng_rand(SEXP state)
*/
static uint32_t global_R_seed;
+<<<<<<< HEAD:new_R/src/syncrng.c
+static int global_R_nseed = 1;
+=======
static uint32_t global_R_nseed = 1;
+>>>>>>> python:new_python/src/_syncrng.c
static double global_R_result_uniform;
static double global_R_result_normal;
static uint64_t *global_R_state = NULL;