comparison pymt.cpp @ 0:0fa810263337

import
author Peter Meerwald <pmeerw@cosy.sbg.ac.at>
date Thu, 06 Sep 2007 13:58:46 +0200
parents
children f63d649f91b4
comparison
equal deleted inserted replaced
-1:000000000000 0:0fa810263337
1 #include "MersenneTwister.h"
2 #include "python2.5/Python.h"
3
4 static MTRand mt;
5
6 static PyObject *
7 pymt_seed(PyObject *self, PyObject *args) {
8 long int seed;
9
10 if (!PyArg_ParseTuple(args, "l", &seed))
11 return NULL;
12
13 mt.seed(seed);
14
15 Py_INCREF(Py_None);
16 return Py_None;
17 }
18
19 static PyObject *
20 pymt_randint(PyObject *self, PyObject *args) {
21 return PyLong_FromUnsignedLong(mt.randInt());
22 }
23
24 static PyObject *
25 pymt_random(PyObject *self, PyObject *args) {
26 return PyFloat_FromDouble(mt.randExc());
27 }
28
29 static PyMethodDef pymtMethods[] = {
30 {"seed", pymt_seed, METH_VARARGS, "Set seed."},
31 {"randint", pymt_randint, METH_VARARGS, "Returns random integer."},
32 {"random", pymt_random, METH_VARARGS, "Returns random number in the interval [0, 1)."},
33 {NULL, NULL}
34 };
35
36 extern "C" void initpymt() {
37 (void) Py_InitModule3("pymt", pymtMethods, "Mersenne Twister");
38 }

Repositories maintained by Peter Meerwald, pmeerw@pmeerw.net.