Skip to content

Commit 0e4d63d

Browse files
fix(random_distributions): enforce real for expon lambda (#8444)
Co-authored-by: alexandre burton <[email protected]>
1 parent 1019e6a commit 0e4d63d

File tree

2 files changed

+2
-4
lines changed

2 files changed

+2
-4
lines changed

examples/math/randomExample/src/ofApp.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -131,11 +131,10 @@ void ofApp::perform() {
131131
ofLogNotice("gaussian aka normal<vec3>(10,2)") << gaussian<vec3>(10, 2);
132132
ofLogNotice("gaussian aka normal<vec3>({10,20,30},{2,1,.5})") << gaussian<vec3>({ 10, 20, 30 }, { 2, 1, .5 });
133133

134-
// exponential requires 1 args (no defaults)
134+
// exponential requires 1 args (no defaults) which must be real (not int)
135135

136136
ofLogNotice("exponential(2.5)") << of::random::exponential(2.5);
137137
ofLogNotice("exponential<double>(2.5)") << exponential<double>(2.5);
138-
ofLogNotice("exponential<int>(2.5)") << exponential<int>(2.5);
139138
ofLogNotice("exponential<vec2>(2.5)") << exponential<vec2>(2.5);
140139
ofLogNotice("exponential<vec4>(2.5)") << exponential<vec4>(2.5);
141140
ofLogNotice("exponential<vec2>({2.5, 10})") << exponential<vec2>({ 2.5, 10 });
@@ -145,7 +144,6 @@ void ofApp::perform() {
145144

146145
ofLogNotice("ofRandomExponential(2.5)") << ofRandomExponential(2.5);
147146
ofLogNotice("ofRandomExponential<double>(2.5)") << ofRandomExponential<double>(2.5);
148-
ofLogNotice("ofRandomExponential<int>(2.5)") << ofRandomExponential<int>(2.5);
149147
ofLogNotice("ofRandomExponential<vec2>(2.5)") << ofRandomExponential<vec2>(2.5);
150148
ofLogNotice("ofRandomExponential<vec2>({2.5, 10})") << ofRandomExponential<vec2>({ 2.5, 10 });
151149
ofLogNotice("ofRandomExponential<vec3>(2.5, 10, 0.1") << ofRandomExponential<vec3>(2.5);

libs/openFrameworks/utils/ofRandomDistributions.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -494,7 +494,7 @@ poisson(T mean, G & g = of::random::gen()) {
494494
/// \param g the random engine (default: OF internal of::random::gen())
495495
/// \return an exponential random value ot type T
496496
template <typename T = float, typename G = decltype(of::random::gen()), typename = std::enable_if_t<is_random_engine_v<G>>>
497-
std::enable_if_t<std::is_arithmetic_v<T>, T>
497+
std::enable_if_t<std::is_floating_point_v<T>, T>
498498
exponential(T lambda, G & g = of::random::gen()) {
499499
return std::exponential_distribution<T>{lambda}(g);
500500
}

0 commit comments

Comments
 (0)