Skip to content

Commit 481d1bd

Browse files
<random>: Fix several min/max values and gamma_distribution::param_type::operator== (#1601)
1 parent 03c79d7 commit 481d1bd

File tree

3 files changed

+18
-54
lines changed

3 files changed

+18
-54
lines changed

stl/inc/random

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2798,7 +2798,7 @@ public:
27982798
}
27992799

28002800
_NODISCARD result_type(max)() const { // get largest possible result
2801-
return (numeric_limits<result_type>::max)();
2801+
return numeric_limits<result_type>::infinity();
28022802
}
28032803

28042804
void reset() {} // clear internal state
@@ -2935,11 +2935,11 @@ public:
29352935
}
29362936

29372937
_NODISCARD result_type(min)() const { // get smallest possible result
2938-
return numeric_limits<result_type>::denorm_min();
2938+
return -numeric_limits<result_type>::infinity();
29392939
}
29402940

29412941
_NODISCARD result_type(max)() const { // get largest possible result
2942-
return (numeric_limits<result_type>::max)();
2942+
return numeric_limits<result_type>::infinity();
29432943
}
29442944

29452945
void reset() { // clear internal state
@@ -3075,7 +3075,7 @@ public:
30753075
}
30763076

30773077
_NODISCARD bool operator==(const param_type& _Right) const {
3078-
return _Px == _Right._Px;
3078+
return _Alpha == _Right._Alpha && _Beta == _Right._Beta;
30793079
}
30803080

30813081
_NODISCARD bool operator!=(const param_type& _Right) const {
@@ -3129,11 +3129,11 @@ public:
31293129
}
31303130

31313131
_NODISCARD result_type(min)() const { // get smallest possible result
3132-
return numeric_limits<result_type>::denorm_min();
3132+
return result_type{0.0};
31333133
}
31343134

31353135
_NODISCARD result_type(max)() const { // get largest possible result
3136-
return (numeric_limits<result_type>::max)();
3136+
return numeric_limits<result_type>::infinity();
31373137
}
31383138

31393139
void reset() {} // clear internal state
@@ -3324,7 +3324,7 @@ public:
33243324
}
33253325

33263326
_NODISCARD result_type(max)() const { // get largest possible result
3327-
return (numeric_limits<result_type>::max)();
3327+
return numeric_limits<result_type>::infinity();
33283328
}
33293329

33303330
void reset() {} // clear internal state
@@ -3456,11 +3456,11 @@ public:
34563456
}
34573457

34583458
_NODISCARD result_type(min)() const { // get smallest possible result
3459-
return (numeric_limits<result_type>::min)();
3459+
return -numeric_limits<result_type>::infinity();
34603460
}
34613461

34623462
_NODISCARD result_type(max)() const { // get largest possible result
3463-
return (numeric_limits<result_type>::max)();
3463+
return numeric_limits<result_type>::infinity();
34643464
}
34653465

34663466
void reset() {} // clear internal state
@@ -3594,11 +3594,11 @@ public:
35943594
}
35953595

35963596
_NODISCARD result_type(min)() const { // get smallest possible result
3597-
return -(numeric_limits<result_type>::max)();
3597+
return result_type{0.0};
35983598
}
35993599

36003600
_NODISCARD result_type(max)() const { // get largest possible result
3601-
return (numeric_limits<result_type>::max)();
3601+
return numeric_limits<result_type>::infinity();
36023602
}
36033603

36043604
void reset() {} // clear internal state
@@ -3720,11 +3720,11 @@ public:
37203720
}
37213721

37223722
_NODISCARD result_type(min)() const { // get smallest possible result
3723-
return numeric_limits<result_type>::denorm_min();
3723+
return result_type{0.0};
37243724
}
37253725

37263726
_NODISCARD result_type(max)() const { // get largest possible result
3727-
return (numeric_limits<result_type>::max)();
3727+
return numeric_limits<result_type>::infinity();
37283728
}
37293729

37303730
void reset() {} // clear internal state
@@ -3852,11 +3852,11 @@ public:
38523852
}
38533853

38543854
_NODISCARD result_type(min)() const { // get smallest possible result
3855-
return -(numeric_limits<result_type>::max)();
3855+
return -numeric_limits<result_type>::infinity();
38563856
}
38573857

38583858
_NODISCARD result_type(max)() const { // get largest possible result
3859-
return (numeric_limits<result_type>::max)();
3859+
return numeric_limits<result_type>::infinity();
38603860
}
38613861

38623862
void reset() {} // clear internal state
@@ -4053,7 +4053,7 @@ public:
40534053
}
40544054

40554055
_NODISCARD result_type(max)() const { // get largest possible result
4056-
return (numeric_limits<result_type>::max)();
4056+
return numeric_limits<result_type>::infinity();
40574057
}
40584058

40594059
void reset() {} // clear internal state
@@ -4186,11 +4186,11 @@ public:
41864186
}
41874187

41884188
_NODISCARD result_type(min)() const { // get smallest possible result
4189-
return -(numeric_limits<result_type>::max)();
4189+
return -numeric_limits<result_type>::infinity();
41904190
}
41914191

41924192
_NODISCARD result_type(max)() const { // get largest possible result
4193-
return (numeric_limits<result_type>::max)();
4193+
return numeric_limits<result_type>::infinity();
41944194
}
41954195

41964196
void reset() {} // clear internal state

tests/libcxx/expected_results.txt

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -671,34 +671,16 @@ std/numerics/rand/rand.dis/rand.dist.bern/rand.dist.bern.geo/eval_param.pass.cpp
671671
std/numerics/rand/rand.dis/rand.dist.bern/rand.dist.bern.geo/eval.pass.cpp FAIL
672672
std/numerics/rand/rand.dis/rand.dist.bern/rand.dist.bern.negbin/eval_param.pass.cpp FAIL
673673
std/numerics/rand/rand.dis/rand.dist.bern/rand.dist.bern.negbin/eval.pass.cpp FAIL
674-
std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.cauchy/max.pass.cpp FAIL
675-
std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.cauchy/min.pass.cpp FAIL
676-
std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.chisq/max.pass.cpp FAIL
677-
std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.chisq/min.pass.cpp FAIL
678-
std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.f/max.pass.cpp FAIL
679674
std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.lognormal/eval_param.pass.cpp FAIL
680675
std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.lognormal/eval.pass.cpp FAIL
681-
std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.lognormal/max.pass.cpp FAIL
682-
std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.lognormal/min.pass.cpp FAIL
683-
std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.normal/max.pass.cpp FAIL
684-
std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.normal/min.pass.cpp FAIL
685676
std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.t/eval_param.pass.cpp FAIL
686677
std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.t/eval.pass.cpp FAIL
687-
std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.t/max.pass.cpp FAIL
688-
std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.t/min.pass.cpp FAIL
689-
std/numerics/rand/rand.dis/rand.dist.pois/rand.dist.pois.exp/max.pass.cpp FAIL
690678
std/numerics/rand/rand.dis/rand.dist.pois/rand.dist.pois.extreme/eval_param.pass.cpp FAIL
691679
std/numerics/rand/rand.dis/rand.dist.pois/rand.dist.pois.extreme/eval.pass.cpp FAIL
692-
std/numerics/rand/rand.dis/rand.dist.pois/rand.dist.pois.extreme/max.pass.cpp FAIL
693-
std/numerics/rand/rand.dis/rand.dist.pois/rand.dist.pois.extreme/min.pass.cpp FAIL
694-
std/numerics/rand/rand.dis/rand.dist.pois/rand.dist.pois.gamma/eq.pass.cpp FAIL
695680
std/numerics/rand/rand.dis/rand.dist.pois/rand.dist.pois.gamma/eval_param.pass.cpp FAIL
696681
std/numerics/rand/rand.dis/rand.dist.pois/rand.dist.pois.gamma/eval.pass.cpp FAIL
697-
std/numerics/rand/rand.dis/rand.dist.pois/rand.dist.pois.gamma/max.pass.cpp FAIL
698-
std/numerics/rand/rand.dis/rand.dist.pois/rand.dist.pois.gamma/min.pass.cpp FAIL
699682
std/numerics/rand/rand.dis/rand.dist.pois/rand.dist.pois.poisson/eval_param.pass.cpp FAIL
700683
std/numerics/rand/rand.dis/rand.dist.pois/rand.dist.pois.poisson/eval.pass.cpp FAIL
701-
std/numerics/rand/rand.dis/rand.dist.pois/rand.dist.pois.weibull/max.pass.cpp FAIL
702684
std/numerics/rand/rand.dis/rand.dist.uni/rand.dist.uni.real/param_ctor.pass.cpp FAIL
703685

704686
# Not yet analyzed, likely STL bugs. Various assertions.

tests/libcxx/skipped_tests.txt

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -671,34 +671,16 @@ numerics\rand\rand.dis\rand.dist.bern\rand.dist.bern.geo\eval_param.pass.cpp
671671
numerics\rand\rand.dis\rand.dist.bern\rand.dist.bern.geo\eval.pass.cpp
672672
numerics\rand\rand.dis\rand.dist.bern\rand.dist.bern.negbin\eval_param.pass.cpp
673673
numerics\rand\rand.dis\rand.dist.bern\rand.dist.bern.negbin\eval.pass.cpp
674-
numerics\rand\rand.dis\rand.dist.norm\rand.dist.norm.cauchy\max.pass.cpp
675-
numerics\rand\rand.dis\rand.dist.norm\rand.dist.norm.cauchy\min.pass.cpp
676-
numerics\rand\rand.dis\rand.dist.norm\rand.dist.norm.chisq\max.pass.cpp
677-
numerics\rand\rand.dis\rand.dist.norm\rand.dist.norm.chisq\min.pass.cpp
678-
numerics\rand\rand.dis\rand.dist.norm\rand.dist.norm.f\max.pass.cpp
679674
numerics\rand\rand.dis\rand.dist.norm\rand.dist.norm.lognormal\eval_param.pass.cpp
680675
numerics\rand\rand.dis\rand.dist.norm\rand.dist.norm.lognormal\eval.pass.cpp
681-
numerics\rand\rand.dis\rand.dist.norm\rand.dist.norm.lognormal\max.pass.cpp
682-
numerics\rand\rand.dis\rand.dist.norm\rand.dist.norm.lognormal\min.pass.cpp
683-
numerics\rand\rand.dis\rand.dist.norm\rand.dist.norm.normal\max.pass.cpp
684-
numerics\rand\rand.dis\rand.dist.norm\rand.dist.norm.normal\min.pass.cpp
685676
numerics\rand\rand.dis\rand.dist.norm\rand.dist.norm.t\eval_param.pass.cpp
686677
numerics\rand\rand.dis\rand.dist.norm\rand.dist.norm.t\eval.pass.cpp
687-
numerics\rand\rand.dis\rand.dist.norm\rand.dist.norm.t\max.pass.cpp
688-
numerics\rand\rand.dis\rand.dist.norm\rand.dist.norm.t\min.pass.cpp
689-
numerics\rand\rand.dis\rand.dist.pois\rand.dist.pois.exp\max.pass.cpp
690678
numerics\rand\rand.dis\rand.dist.pois\rand.dist.pois.extreme\eval_param.pass.cpp
691679
numerics\rand\rand.dis\rand.dist.pois\rand.dist.pois.extreme\eval.pass.cpp
692-
numerics\rand\rand.dis\rand.dist.pois\rand.dist.pois.extreme\max.pass.cpp
693-
numerics\rand\rand.dis\rand.dist.pois\rand.dist.pois.extreme\min.pass.cpp
694-
numerics\rand\rand.dis\rand.dist.pois\rand.dist.pois.gamma\eq.pass.cpp
695680
numerics\rand\rand.dis\rand.dist.pois\rand.dist.pois.gamma\eval_param.pass.cpp
696681
numerics\rand\rand.dis\rand.dist.pois\rand.dist.pois.gamma\eval.pass.cpp
697-
numerics\rand\rand.dis\rand.dist.pois\rand.dist.pois.gamma\max.pass.cpp
698-
numerics\rand\rand.dis\rand.dist.pois\rand.dist.pois.gamma\min.pass.cpp
699682
numerics\rand\rand.dis\rand.dist.pois\rand.dist.pois.poisson\eval_param.pass.cpp
700683
numerics\rand\rand.dis\rand.dist.pois\rand.dist.pois.poisson\eval.pass.cpp
701-
numerics\rand\rand.dis\rand.dist.pois\rand.dist.pois.weibull\max.pass.cpp
702684
numerics\rand\rand.dis\rand.dist.uni\rand.dist.uni.real\param_ctor.pass.cpp
703685

704686
# Not yet analyzed, likely STL bugs. Various assertions.

0 commit comments

Comments
 (0)