aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/lua-torch/torch7/random.lua
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/lua-torch/torch7/random.lua')
-rw-r--r--contrib/lua-torch/torch7/random.lua53
1 files changed, 53 insertions, 0 deletions
diff --git a/contrib/lua-torch/torch7/random.lua b/contrib/lua-torch/torch7/random.lua
new file mode 100644
index 000000000..59bbd7b1a
--- /dev/null
+++ b/contrib/lua-torch/torch7/random.lua
@@ -0,0 +1,53 @@
+local wrap = require 'cwrap'
+
+require 'torchcwrap'
+
+local interface = wrap.CInterface.new()
+
+interface:print(
+ [[
+#include "luaT.h"
+#include "TH.h"
+
+extern void torch_Generator_init(lua_State *L);
+extern void torch_Generator_new(lua_State *L);
+ ]])
+
+for _,name in ipairs({"seed", "initialSeed"}) do
+ interface:wrap(name,
+ string.format("THRandom_%s",name),
+ {{name='Generator', default=true},
+ {name="long", creturned=true}})
+end
+
+interface:wrap('manualSeed',
+ 'THRandom_manualSeed',
+ {{name='Generator', default=true},
+ {name="long"}})
+
+interface:wrap('getRNGState',
+ 'THByteTensor_getRNGState',
+ {{name='Generator', default=true},
+ {name='ByteTensor',default=true,returned=true,method={default='nil'}}
+ })
+
+interface:wrap('setRNGState',
+ 'THByteTensor_setRNGState',
+ {{name='Generator', default=true},
+ {name='ByteTensor',default=true,returned=true,method={default='nil'}}
+ })
+
+interface:register("random__")
+
+interface:print(
+ [[
+void torch_random_init(lua_State *L)
+{
+ torch_Generator_init(L);
+ torch_Generator_new(L);
+ lua_setfield(L, -2, "_gen");
+ luaT_setfuncs(L, random__, 0);
+}
+]])
+
+interface:tofile(arg[1])