Skip to content

Commit 95f357f

Browse files
killeentsoumith
authored andcommitted
move normal variants to TH/THC
1 parent 2efac3e commit 95f357f

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

generic/THCTensorRandom.cu

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,28 @@ THC_API void THCTensor_(normal)(THCState* state, THCTensor *self_, double mean,
3434
THCTensor_(freeCopyTo)(state, self, self_);
3535
};
3636

37+
THC_API void THCTensor_(normal_means)(THCState *state, THCTensor *self, THCTensor *means, double stddev) {
38+
THCTensor_(resizeAs)(state, self, means);
39+
THCTensor_(normal)(state, self, 0, stddev);
40+
THCTensor_(cadd)(state, self, self, ScalarConvert<int, real>::to(1), means);
41+
}
42+
43+
THC_API void THCTensor_(normal_stddevs)(THCState *state, THCTensor *self, double mean, THCTensor *stddevs)
44+
{
45+
THCTensor_(resizeAs)(state, self, stddevs);
46+
THCTensor_(normal)(state, self, 0, 1);
47+
THCTensor_(cmul)(state, self, self, stddevs);
48+
THCTensor_(add)(state, self, self, ScalarConvert<double, real>::to(mean));
49+
}
50+
51+
THC_API void THCTensor_(normal_means_stddevs)(THCState *state, THCTensor *self, THCTensor *means, THCTensor *stddevs)
52+
{
53+
THCTensor_(resizeAs)(state, self, means);
54+
THCTensor_(normal)(state, self, 0, 1);
55+
THCTensor_(cmul)(state, self, self, stddevs);
56+
THCTensor_(cadd)(state, self, self, ScalarConvert<int, real>::to(1), means);
57+
}
58+
3759
THC_API void THCTensor_(logNormal)(THCState* state, THCTensor *self_, double mean, double stdv)
3860
{
3961

generic/THCTensorRandom.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ THC_API void THCTensor_(uniform)(struct THCState *state, THCTensor *self, double
88
THC_API void THCTensor_(rand)(THCState *state, THCTensor *r_, THLongStorage *size);
99
THC_API void THCTensor_(randn)(THCState *state, THCTensor *r_, THLongStorage *size);
1010
THC_API void THCTensor_(normal)(struct THCState *state, THCTensor *self, double mean, double stdv);
11+
THC_API void THCTensor_(normal_means)(struct THCState *state, THCTensor *self, THCTensor *means, double stddev);
12+
THC_API void THCTensor_(normal_stddevs)(struct THCState *state, THCTensor *self, double mean, THCTensor *stddevs);
13+
THC_API void THCTensor_(normal_means_stddevs)(struct THCState *state, THCTensor *self, THCTensor *means, THCTensor *stddevs);
1114
THC_API void THCTensor_(logNormal)(struct THCState *state, THCTensor *self, double mean, double stdv);
1215
THC_API void THCTensor_(exponential)(struct THCState *state, THCTensor *self, double lambda);
1316
THC_API void THCTensor_(cauchy)(struct THCState *state, THCTensor *self, double median, double sigma);

0 commit comments

Comments
 (0)