move clamped random functions out of cwrap and into TH
diff --git a/generic/THTensorRandom.c b/generic/THTensorRandom.c
index fe1401c..5bfabbc 100644
--- a/generic/THTensorRandom.c
+++ b/generic/THTensorRandom.c
@@ -23,6 +23,16 @@
 #endif
 }
 
+void THTensor_(clampedRandom)(THTensor *self, THGenerator *_generator, long min, long max) {
+  THArgCheck(max > min, 2, "max must be greater than min");
+  TH_TENSOR_APPLY(real, self, *self_data = (real)((THRandom_random(_generator) % (max - min)) + min);)
+}
+
+void THTensor_(cappedRandom)(THTensor *self, THGenerator *_generator, long max) {
+  THArgCheck(max > 0, 1, "max must be positive");
+  THTensor_(clampedRandom)(self, _generator, 0, max);
+}
+
 void THTensor_(geometric)(THTensor *self, THGenerator *_generator, double p)
 {
   TH_TENSOR_APPLY(real, self, *self_data = (real)THRandom_geometric(_generator, p););
diff --git a/generic/THTensorRandom.h b/generic/THTensorRandom.h
index f79a86e..145c7d7 100644
--- a/generic/THTensorRandom.h
+++ b/generic/THTensorRandom.h
@@ -3,6 +3,8 @@
 #else
 
 TH_API void THTensor_(random)(THTensor *self, THGenerator *_generator);
+TH_API void THTensor_(clampedRandom)(THTensor *self, THGenerator *_generator, long min, long max);
+TH_API void THTensor_(cappedRandom)(THTensor *self, THGenerator *_generator, long max);
 TH_API void THTensor_(geometric)(THTensor *self, THGenerator *_generator, double p);
 TH_API void THTensor_(bernoulli)(THTensor *self, THGenerator *_generator, double p);
 TH_API void THTensor_(bernoulli_FloatTensor)(THTensor *self, THGenerator *_generator, THFloatTensor *p);