Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/torch/cutorch.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTrevor Killeen <killeentm@gmail.com>2017-08-04 21:32:52 +0300
committerSoumith Chintala <soumith@gmail.com>2017-08-05 02:49:49 +0300
commit9dab9de4b2865a4c752452da8adf4312753c3186 (patch)
treeec67ea10845c0164219f0a90e5c32ad63a2e43c6
parente29a4eb56d04dd04624db35988a1cd27f928f884 (diff)
move normal variants to TH/THC
-rw-r--r--lib/THC/generic/THCTensorRandom.cu22
-rw-r--r--lib/THC/generic/THCTensorRandom.h3
2 files changed, 25 insertions, 0 deletions
diff --git a/lib/THC/generic/THCTensorRandom.cu b/lib/THC/generic/THCTensorRandom.cu
index b85c5d2..0da1e06 100644
--- a/lib/THC/generic/THCTensorRandom.cu
+++ b/lib/THC/generic/THCTensorRandom.cu
@@ -34,6 +34,28 @@ THC_API void THCTensor_(normal)(THCState* state, THCTensor *self_, double mean,
THCTensor_(freeCopyTo)(state, self, self_);
};
+THC_API void THCTensor_(normal_means)(THCState *state, THCTensor *self, THCTensor *means, double stddev) {
+ THCTensor_(resizeAs)(state, self, means);
+ THCTensor_(normal)(state, self, 0, stddev);
+ THCTensor_(cadd)(state, self, self, ScalarConvert<int, real>::to(1), means);
+}
+
+THC_API void THCTensor_(normal_stddevs)(THCState *state, THCTensor *self, double mean, THCTensor *stddevs)
+{
+ THCTensor_(resizeAs)(state, self, stddevs);
+ THCTensor_(normal)(state, self, 0, 1);
+ THCTensor_(cmul)(state, self, self, stddevs);
+ THCTensor_(add)(state, self, self, ScalarConvert<double, real>::to(mean));
+}
+
+THC_API void THCTensor_(normal_means_stddevs)(THCState *state, THCTensor *self, THCTensor *means, THCTensor *stddevs)
+{
+ THCTensor_(resizeAs)(state, self, means);
+ THCTensor_(normal)(state, self, 0, 1);
+ THCTensor_(cmul)(state, self, self, stddevs);
+ THCTensor_(cadd)(state, self, self, ScalarConvert<int, real>::to(1), means);
+}
+
THC_API void THCTensor_(logNormal)(THCState* state, THCTensor *self_, double mean, double stdv)
{
diff --git a/lib/THC/generic/THCTensorRandom.h b/lib/THC/generic/THCTensorRandom.h
index ad23e78..22f5a92 100644
--- a/lib/THC/generic/THCTensorRandom.h
+++ b/lib/THC/generic/THCTensorRandom.h
@@ -8,6 +8,9 @@ THC_API void THCTensor_(uniform)(struct THCState *state, THCTensor *self, double
THC_API void THCTensor_(rand)(THCState *state, THCTensor *r_, THLongStorage *size);
THC_API void THCTensor_(randn)(THCState *state, THCTensor *r_, THLongStorage *size);
THC_API void THCTensor_(normal)(struct THCState *state, THCTensor *self, double mean, double stdv);
+THC_API void THCTensor_(normal_means)(struct THCState *state, THCTensor *self, THCTensor *means, double stddev);
+THC_API void THCTensor_(normal_stddevs)(struct THCState *state, THCTensor *self, double mean, THCTensor *stddevs);
+THC_API void THCTensor_(normal_means_stddevs)(struct THCState *state, THCTensor *self, THCTensor *means, THCTensor *stddevs);
THC_API void THCTensor_(logNormal)(struct THCState *state, THCTensor *self, double mean, double stdv);
THC_API void THCTensor_(exponential)(struct THCState *state, THCTensor *self, double lambda);
THC_API void THCTensor_(cauchy)(struct THCState *state, THCTensor *self, double median, double sigma);