diff --git a/stl/inc/random b/stl/inc/random index 405f47898a4..edf52c81735 100644 --- a/stl/inc/random +++ b/stl/inc/random @@ -2780,7 +2780,7 @@ public: } _NODISCARD result_type(max)() const { // get largest possible result - return (numeric_limits::max)(); + return numeric_limits::infinity(); } void reset() {} // clear internal state @@ -2917,11 +2917,11 @@ public: } _NODISCARD result_type(min)() const { // get smallest possible result - return numeric_limits::denorm_min(); + return -numeric_limits::infinity(); } _NODISCARD result_type(max)() const { // get largest possible result - return (numeric_limits::max)(); + return numeric_limits::infinity(); } void reset() { // clear internal state @@ -3057,7 +3057,7 @@ public: } _NODISCARD bool operator==(const param_type& _Right) const { - return _Px == _Right._Px; + return _Alpha == _Right._Alpha && _Beta == _Right._Beta; } _NODISCARD bool operator!=(const param_type& _Right) const { @@ -3111,11 +3111,11 @@ public: } _NODISCARD result_type(min)() const { // get smallest possible result - return numeric_limits::denorm_min(); + return result_type{0.0}; } _NODISCARD result_type(max)() const { // get largest possible result - return (numeric_limits::max)(); + return numeric_limits::infinity(); } void reset() {} // clear internal state @@ -3306,7 +3306,7 @@ public: } _NODISCARD result_type(max)() const { // get largest possible result - return (numeric_limits::max)(); + return numeric_limits::infinity(); } void reset() {} // clear internal state @@ -3438,11 +3438,11 @@ public: } _NODISCARD result_type(min)() const { // get smallest possible result - return (numeric_limits::min)(); + return -numeric_limits::infinity(); } _NODISCARD result_type(max)() const { // get largest possible result - return (numeric_limits::max)(); + return numeric_limits::infinity(); } void reset() {} // clear internal state @@ -3576,11 +3576,11 @@ public: } _NODISCARD result_type(min)() const { // get smallest possible result - return -(numeric_limits::max)(); + return result_type{0.0}; } _NODISCARD result_type(max)() const { // get largest possible result - return (numeric_limits::max)(); + return numeric_limits::infinity(); } void reset() {} // clear internal state @@ -3702,11 +3702,11 @@ public: } _NODISCARD result_type(min)() const { // get smallest possible result - return numeric_limits::denorm_min(); + return result_type{0.0}; } _NODISCARD result_type(max)() const { // get largest possible result - return (numeric_limits::max)(); + return numeric_limits::infinity(); } void reset() {} // clear internal state @@ -3834,11 +3834,11 @@ public: } _NODISCARD result_type(min)() const { // get smallest possible result - return -(numeric_limits::max)(); + return -numeric_limits::infinity(); } _NODISCARD result_type(max)() const { // get largest possible result - return (numeric_limits::max)(); + return numeric_limits::infinity(); } void reset() {} // clear internal state @@ -4035,7 +4035,7 @@ public: } _NODISCARD result_type(max)() const { // get largest possible result - return (numeric_limits::max)(); + return numeric_limits::infinity(); } void reset() {} // clear internal state @@ -4168,11 +4168,11 @@ public: } _NODISCARD result_type(min)() const { // get smallest possible result - return -(numeric_limits::max)(); + return -numeric_limits::infinity(); } _NODISCARD result_type(max)() const { // get largest possible result - return (numeric_limits::max)(); + return numeric_limits::infinity(); } void reset() {} // clear internal state diff --git a/tests/libcxx/expected_results.txt b/tests/libcxx/expected_results.txt index 8961a1cc341..1a1e15490ec 100644 --- a/tests/libcxx/expected_results.txt +++ b/tests/libcxx/expected_results.txt @@ -818,34 +818,16 @@ std/numerics/rand/rand.dis/rand.dist.bern/rand.dist.bern.geo/eval_param.pass.cpp std/numerics/rand/rand.dis/rand.dist.bern/rand.dist.bern.geo/eval.pass.cpp FAIL std/numerics/rand/rand.dis/rand.dist.bern/rand.dist.bern.negbin/eval_param.pass.cpp FAIL std/numerics/rand/rand.dis/rand.dist.bern/rand.dist.bern.negbin/eval.pass.cpp FAIL -std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.cauchy/max.pass.cpp FAIL -std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.cauchy/min.pass.cpp FAIL -std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.chisq/max.pass.cpp FAIL -std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.chisq/min.pass.cpp FAIL -std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.f/max.pass.cpp FAIL std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.lognormal/eval_param.pass.cpp FAIL std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.lognormal/eval.pass.cpp FAIL -std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.lognormal/max.pass.cpp FAIL -std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.lognormal/min.pass.cpp FAIL -std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.normal/max.pass.cpp FAIL -std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.normal/min.pass.cpp FAIL std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.t/eval_param.pass.cpp FAIL std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.t/eval.pass.cpp FAIL -std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.t/max.pass.cpp FAIL -std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.t/min.pass.cpp FAIL -std/numerics/rand/rand.dis/rand.dist.pois/rand.dist.pois.exp/max.pass.cpp FAIL std/numerics/rand/rand.dis/rand.dist.pois/rand.dist.pois.extreme/eval_param.pass.cpp FAIL std/numerics/rand/rand.dis/rand.dist.pois/rand.dist.pois.extreme/eval.pass.cpp FAIL -std/numerics/rand/rand.dis/rand.dist.pois/rand.dist.pois.extreme/max.pass.cpp FAIL -std/numerics/rand/rand.dis/rand.dist.pois/rand.dist.pois.extreme/min.pass.cpp FAIL -std/numerics/rand/rand.dis/rand.dist.pois/rand.dist.pois.gamma/eq.pass.cpp FAIL std/numerics/rand/rand.dis/rand.dist.pois/rand.dist.pois.gamma/eval_param.pass.cpp FAIL std/numerics/rand/rand.dis/rand.dist.pois/rand.dist.pois.gamma/eval.pass.cpp FAIL -std/numerics/rand/rand.dis/rand.dist.pois/rand.dist.pois.gamma/max.pass.cpp FAIL -std/numerics/rand/rand.dis/rand.dist.pois/rand.dist.pois.gamma/min.pass.cpp FAIL std/numerics/rand/rand.dis/rand.dist.pois/rand.dist.pois.poisson/eval_param.pass.cpp FAIL std/numerics/rand/rand.dis/rand.dist.pois/rand.dist.pois.poisson/eval.pass.cpp FAIL -std/numerics/rand/rand.dis/rand.dist.pois/rand.dist.pois.weibull/max.pass.cpp FAIL std/numerics/rand/rand.dis/rand.dist.uni/rand.dist.uni.real/param_ctor.pass.cpp FAIL # Not yet analyzed, likely STL bugs. Various assertions. diff --git a/tests/libcxx/skipped_tests.txt b/tests/libcxx/skipped_tests.txt index 61b46acc242..5c15eaf776f 100644 --- a/tests/libcxx/skipped_tests.txt +++ b/tests/libcxx/skipped_tests.txt @@ -818,34 +818,16 @@ numerics\rand\rand.dis\rand.dist.bern\rand.dist.bern.geo\eval_param.pass.cpp numerics\rand\rand.dis\rand.dist.bern\rand.dist.bern.geo\eval.pass.cpp numerics\rand\rand.dis\rand.dist.bern\rand.dist.bern.negbin\eval_param.pass.cpp numerics\rand\rand.dis\rand.dist.bern\rand.dist.bern.negbin\eval.pass.cpp -numerics\rand\rand.dis\rand.dist.norm\rand.dist.norm.cauchy\max.pass.cpp -numerics\rand\rand.dis\rand.dist.norm\rand.dist.norm.cauchy\min.pass.cpp -numerics\rand\rand.dis\rand.dist.norm\rand.dist.norm.chisq\max.pass.cpp -numerics\rand\rand.dis\rand.dist.norm\rand.dist.norm.chisq\min.pass.cpp -numerics\rand\rand.dis\rand.dist.norm\rand.dist.norm.f\max.pass.cpp numerics\rand\rand.dis\rand.dist.norm\rand.dist.norm.lognormal\eval_param.pass.cpp numerics\rand\rand.dis\rand.dist.norm\rand.dist.norm.lognormal\eval.pass.cpp -numerics\rand\rand.dis\rand.dist.norm\rand.dist.norm.lognormal\max.pass.cpp -numerics\rand\rand.dis\rand.dist.norm\rand.dist.norm.lognormal\min.pass.cpp -numerics\rand\rand.dis\rand.dist.norm\rand.dist.norm.normal\max.pass.cpp -numerics\rand\rand.dis\rand.dist.norm\rand.dist.norm.normal\min.pass.cpp numerics\rand\rand.dis\rand.dist.norm\rand.dist.norm.t\eval_param.pass.cpp numerics\rand\rand.dis\rand.dist.norm\rand.dist.norm.t\eval.pass.cpp -numerics\rand\rand.dis\rand.dist.norm\rand.dist.norm.t\max.pass.cpp -numerics\rand\rand.dis\rand.dist.norm\rand.dist.norm.t\min.pass.cpp -numerics\rand\rand.dis\rand.dist.pois\rand.dist.pois.exp\max.pass.cpp numerics\rand\rand.dis\rand.dist.pois\rand.dist.pois.extreme\eval_param.pass.cpp numerics\rand\rand.dis\rand.dist.pois\rand.dist.pois.extreme\eval.pass.cpp -numerics\rand\rand.dis\rand.dist.pois\rand.dist.pois.extreme\max.pass.cpp -numerics\rand\rand.dis\rand.dist.pois\rand.dist.pois.extreme\min.pass.cpp -numerics\rand\rand.dis\rand.dist.pois\rand.dist.pois.gamma\eq.pass.cpp numerics\rand\rand.dis\rand.dist.pois\rand.dist.pois.gamma\eval_param.pass.cpp numerics\rand\rand.dis\rand.dist.pois\rand.dist.pois.gamma\eval.pass.cpp -numerics\rand\rand.dis\rand.dist.pois\rand.dist.pois.gamma\max.pass.cpp -numerics\rand\rand.dis\rand.dist.pois\rand.dist.pois.gamma\min.pass.cpp numerics\rand\rand.dis\rand.dist.pois\rand.dist.pois.poisson\eval_param.pass.cpp numerics\rand\rand.dis\rand.dist.pois\rand.dist.pois.poisson\eval.pass.cpp -numerics\rand\rand.dis\rand.dist.pois\rand.dist.pois.weibull\max.pass.cpp numerics\rand\rand.dis\rand.dist.uni\rand.dist.uni.real\param_ctor.pass.cpp # Not yet analyzed, likely STL bugs. Various assertions.