_UIntType _M_x;
};
+#if __cpp_impl_three_way_comparison < 201907L
/**
* @brief Compares two linear congruential random number generator
* objects of the same type for inequality.
const std::linear_congruential_engine<_UIntType, __a,
__c, __m>& __rhs)
{ return !(__lhs == __rhs); }
-
+#endif
/**
* A generalized feedback shift register discrete random number generator.
size_t _M_p;
};
+#if __cpp_impl_three_way_comparison < 201907L
/**
* @brief Compares two % mersenne_twister_engine random number generator
* objects of the same type for inequality.
const std::mersenne_twister_engine<_UIntType, __w, __n, __m,
__r, __a, __u, __d, __s, __b, __t, __c, __l, __f>& __rhs)
{ return !(__lhs == __rhs); }
-
+#endif
/**
* @brief The Marsaglia-Zaman generator.
size_t _M_p; ///< Current index of x(i - r).
};
+#if __cpp_impl_three_way_comparison < 201907L
/**
* @brief Compares two % subtract_with_carry_engine random number
* generator objects of the same type for inequality.
const std::subtract_with_carry_engine<_UIntType, __w,
__s, __r>& __rhs)
{ return !(__lhs == __rhs); }
-
+#endif
/**
* Produces random numbers from some base engine by discarding blocks of
size_t _M_n;
};
+#if __cpp_impl_three_way_comparison < 201907L
/**
* @brief Compares two %discard_block_engine random number generator
* objects of the same type for inequality.
const std::discard_block_engine<_RandomNumberEngine, __p,
__r>& __rhs)
{ return !(__lhs == __rhs); }
-
+#endif
/**
* Produces random numbers by combining random numbers from some base
_RandomNumberEngine _M_b;
};
+#if __cpp_impl_three_way_comparison < 201907L
/**
* @brief Compares two %independent_bits_engine random number generator
* objects of the same type for inequality.
const std::independent_bits_engine<_RandomNumberEngine, __w,
_UIntType>& __rhs)
{ return !(__lhs == __rhs); }
+#endif
/**
* @brief Inserts the current state of a %independent_bits_engine random
result_type _M_y;
};
+#if __cpp_impl_three_way_comparison < 201907L
/**
* Compares two %shuffle_order_engine random number generator objects
* of the same type for inequality.
const std::shuffle_order_engine<_RandomNumberEngine,
__k>& __rhs)
{ return !(__lhs == __rhs); }
-
+#endif
/**
* The classic Minimum Standard rand0 of Lewis, Goodman, and Miller.
// std::uniform_int_distribution is defined in <bits/uniform_int_dist.h>
+#if __cpp_impl_three_way_comparison < 201907L
/**
* @brief Return true if two uniform integer distributions have
* different parameters.
operator!=(const std::uniform_int_distribution<_IntType>& __d1,
const std::uniform_int_distribution<_IntType>& __d2)
{ return !(__d1 == __d2); }
+#endif
/**
* @brief Inserts a %uniform_int_distribution random number
operator==(const param_type& __p1, const param_type& __p2)
{ return __p1._M_a == __p2._M_a && __p1._M_b == __p2._M_b; }
+#if __cpp_impl_three_way_comparison < 201907L
friend bool
operator!=(const param_type& __p1, const param_type& __p2)
{ return !(__p1 == __p2); }
+#endif
private:
_RealType _M_a;
param_type _M_param;
};
+#if __cpp_impl_three_way_comparison < 201907L
/**
* @brief Return true if two uniform real distributions have
* different parameters.
operator!=(const std::uniform_real_distribution<_IntType>& __d1,
const std::uniform_real_distribution<_IntType>& __d2)
{ return !(__d1 == __d2); }
+#endif
/**
* @brief Inserts a %uniform_real_distribution random number
{ return (__p1._M_mean == __p2._M_mean
&& __p1._M_stddev == __p2._M_stddev); }
+#if __cpp_impl_three_way_comparison < 201907L
friend bool
operator!=(const param_type& __p1, const param_type& __p2)
{ return !(__p1 == __p2); }
+#endif
private:
_RealType _M_mean;
bool _M_saved_available = false;
};
+#if __cpp_impl_three_way_comparison < 201907L
/**
* @brief Return true if two normal distributions are different.
*/
operator!=(const std::normal_distribution<_RealType>& __d1,
const std::normal_distribution<_RealType>& __d2)
{ return !(__d1 == __d2); }
-
+#endif
/**
* @brief A lognormal_distribution random number distribution.
operator==(const param_type& __p1, const param_type& __p2)
{ return __p1._M_m == __p2._M_m && __p1._M_s == __p2._M_s; }
+#if __cpp_impl_three_way_comparison < 201907L
friend bool
operator!=(const param_type& __p1, const param_type& __p2)
{ return !(__p1 == __p2); }
+#endif
private:
_RealType _M_m;
std::normal_distribution<result_type> _M_nd;
};
+#if __cpp_impl_three_way_comparison < 201907L
/**
* @brief Return true if two lognormal distributions are different.
*/
operator!=(const std::lognormal_distribution<_RealType>& __d1,
const std::lognormal_distribution<_RealType>& __d2)
{ return !(__d1 == __d2); }
-
+#endif
/**
* @brief A gamma continuous distribution for random numbers.
{ return (__p1._M_alpha == __p2._M_alpha
&& __p1._M_beta == __p2._M_beta); }
+#if __cpp_impl_three_way_comparison < 201907L
friend bool
operator!=(const param_type& __p1, const param_type& __p2)
{ return !(__p1 == __p2); }
+#endif
private:
void
std::normal_distribution<result_type> _M_nd;
};
+#if __cpp_impl_three_way_comparison < 201907L
/**
* @brief Return true if two gamma distributions are different.
*/
operator!=(const std::gamma_distribution<_RealType>& __d1,
const std::gamma_distribution<_RealType>& __d2)
{ return !(__d1 == __d2); }
-
+#endif
/**
* @brief A chi_squared_distribution random number distribution.
operator==(const param_type& __p1, const param_type& __p2)
{ return __p1._M_n == __p2._M_n; }
+#if __cpp_impl_three_way_comparison < 201907L
friend bool
operator!=(const param_type& __p1, const param_type& __p2)
{ return !(__p1 == __p2); }
+#endif
private:
_RealType _M_n;
std::gamma_distribution<result_type> _M_gd;
};
+#if __cpp_impl_three_way_comparison < 201907L
/**
* @brief Return true if two Chi-squared distributions are different.
*/
operator!=(const std::chi_squared_distribution<_RealType>& __d1,
const std::chi_squared_distribution<_RealType>& __d2)
{ return !(__d1 == __d2); }
-
+#endif
/**
* @brief A cauchy_distribution random number distribution.
operator==(const param_type& __p1, const param_type& __p2)
{ return __p1._M_a == __p2._M_a && __p1._M_b == __p2._M_b; }
+#if __cpp_impl_three_way_comparison < 201907L
friend bool
operator!=(const param_type& __p1, const param_type& __p2)
{ return !(__p1 == __p2); }
+#endif
private:
_RealType _M_a;
param_type _M_param;
};
+#if __cpp_impl_three_way_comparison < 201907L
/**
* @brief Return true if two Cauchy distributions have
* different parameters.
operator!=(const std::cauchy_distribution<_RealType>& __d1,
const std::cauchy_distribution<_RealType>& __d2)
{ return !(__d1 == __d2); }
+#endif
/**
* @brief Inserts a %cauchy_distribution random number distribution
operator==(const param_type& __p1, const param_type& __p2)
{ return __p1._M_m == __p2._M_m && __p1._M_n == __p2._M_n; }
+#if __cpp_impl_three_way_comparison < 201907L
friend bool
operator!=(const param_type& __p1, const param_type& __p2)
{ return !(__p1 == __p2); }
+#endif
private:
_RealType _M_m;
std::gamma_distribution<result_type> _M_gd_x, _M_gd_y;
};
+#if __cpp_impl_three_way_comparison < 201907L
/**
* @brief Return true if two Fisher f distributions are different.
*/
operator!=(const std::fisher_f_distribution<_RealType>& __d1,
const std::fisher_f_distribution<_RealType>& __d2)
{ return !(__d1 == __d2); }
+#endif
/**
* @brief A student_t_distribution random number distribution.
operator==(const param_type& __p1, const param_type& __p2)
{ return __p1._M_n == __p2._M_n; }
+#if __cpp_impl_three_way_comparison < 201907L
friend bool
operator!=(const param_type& __p1, const param_type& __p2)
{ return !(__p1 == __p2); }
+#endif
private:
_RealType _M_n;
std::gamma_distribution<result_type> _M_gd;
};
+#if __cpp_impl_three_way_comparison < 201907L
/**
* @brief Return true if two Student t distributions are different.
*/
operator!=(const std::student_t_distribution<_RealType>& __d1,
const std::student_t_distribution<_RealType>& __d2)
{ return !(__d1 == __d2); }
-
+#endif
/// @} group random_distributions_normal
operator==(const param_type& __p1, const param_type& __p2)
{ return __p1._M_p == __p2._M_p; }
+#if __cpp_impl_three_way_comparison < 201907L
friend bool
operator!=(const param_type& __p1, const param_type& __p2)
{ return !(__p1 == __p2); }
+#endif
private:
double _M_p;
param_type _M_param;
};
+#if __cpp_impl_three_way_comparison < 201907L
/**
* @brief Return true if two Bernoulli distributions have
* different parameters.
operator!=(const std::bernoulli_distribution& __d1,
const std::bernoulli_distribution& __d2)
{ return !(__d1 == __d2); }
+#endif
/**
* @brief Inserts a %bernoulli_distribution random number distribution
operator==(const param_type& __p1, const param_type& __p2)
{ return __p1._M_t == __p2._M_t && __p1._M_p == __p2._M_p; }
+#if __cpp_impl_three_way_comparison < 201907L
friend bool
operator!=(const param_type& __p1, const param_type& __p2)
{ return !(__p1 == __p2); }
+#endif
private:
void
std::normal_distribution<double> _M_nd;
};
+#if __cpp_impl_three_way_comparison < 201907L
/**
* @brief Return true if two binomial distributions are different.
*/
operator!=(const std::binomial_distribution<_IntType>& __d1,
const std::binomial_distribution<_IntType>& __d2)
{ return !(__d1 == __d2); }
-
+#endif
/**
* @brief A discrete geometric random number distribution.
operator==(const param_type& __p1, const param_type& __p2)
{ return __p1._M_p == __p2._M_p; }
+#if __cpp_impl_three_way_comparison < 201907L
friend bool
operator!=(const param_type& __p1, const param_type& __p2)
{ return !(__p1 == __p2); }
+#endif
private:
void
param_type _M_param;
};
+#if __cpp_impl_three_way_comparison < 201907L
/**
* @brief Return true if two geometric distributions have
* different parameters.
operator!=(const std::geometric_distribution<_IntType>& __d1,
const std::geometric_distribution<_IntType>& __d2)
{ return !(__d1 == __d2); }
+#endif
/**
* @brief Inserts a %geometric_distribution random number distribution
operator==(const param_type& __p1, const param_type& __p2)
{ return __p1._M_k == __p2._M_k && __p1._M_p == __p2._M_p; }
+#if __cpp_impl_three_way_comparison < 201907L
friend bool
operator!=(const param_type& __p1, const param_type& __p2)
{ return !(__p1 == __p2); }
+#endif
private:
_IntType _M_k;
std::gamma_distribution<double> _M_gd;
};
+#if __cpp_impl_three_way_comparison < 201907L
/**
* @brief Return true if two negative binomial distributions are different.
*/
operator!=(const std::negative_binomial_distribution<_IntType>& __d1,
const std::negative_binomial_distribution<_IntType>& __d2)
{ return !(__d1 == __d2); }
-
+#endif
/// @} group random_distributions_bernoulli
operator==(const param_type& __p1, const param_type& __p2)
{ return __p1._M_mean == __p2._M_mean; }
+#if __cpp_impl_three_way_comparison < 201907L
friend bool
operator!=(const param_type& __p1, const param_type& __p2)
{ return !(__p1 == __p2); }
+#endif
private:
// Hosts either log(mean) or the threshold of the simple method.
std::normal_distribution<double> _M_nd;
};
+#if __cpp_impl_three_way_comparison < 201907L
/**
* @brief Return true if two Poisson distributions are different.
*/
operator!=(const std::poisson_distribution<_IntType>& __d1,
const std::poisson_distribution<_IntType>& __d2)
{ return !(__d1 == __d2); }
-
+#endif
/**
* @brief An exponential continuous distribution for random numbers.
operator==(const param_type& __p1, const param_type& __p2)
{ return __p1._M_lambda == __p2._M_lambda; }
+#if __cpp_impl_three_way_comparison < 201907L
friend bool
operator!=(const param_type& __p1, const param_type& __p2)
{ return !(__p1 == __p2); }
+#endif
private:
_RealType _M_lambda;
param_type _M_param;
};
+#if __cpp_impl_three_way_comparison < 201907L
/**
* @brief Return true if two exponential distributions have different
* parameters.
operator!=(const std::exponential_distribution<_RealType>& __d1,
const std::exponential_distribution<_RealType>& __d2)
{ return !(__d1 == __d2); }
+#endif
/**
* @brief Inserts a %exponential_distribution random number distribution
operator==(const param_type& __p1, const param_type& __p2)
{ return __p1._M_a == __p2._M_a && __p1._M_b == __p2._M_b; }
+#if __cpp_impl_three_way_comparison < 201907L
friend bool
operator!=(const param_type& __p1, const param_type& __p2)
{ return !(__p1 == __p2); }
+#endif
private:
_RealType _M_a;
param_type _M_param;
};
+#if __cpp_impl_three_way_comparison < 201907L
/**
* @brief Return true if two Weibull distributions have different
* parameters.
operator!=(const std::weibull_distribution<_RealType>& __d1,
const std::weibull_distribution<_RealType>& __d2)
{ return !(__d1 == __d2); }
+#endif
/**
* @brief Inserts a %weibull_distribution random number distribution
operator==(const param_type& __p1, const param_type& __p2)
{ return __p1._M_a == __p2._M_a && __p1._M_b == __p2._M_b; }
+#if __cpp_impl_three_way_comparison < 201907L
friend bool
operator!=(const param_type& __p1, const param_type& __p2)
{ return !(__p1 == __p2); }
+#endif
private:
_RealType _M_a;
param_type _M_param;
};
+#if __cpp_impl_three_way_comparison < 201907L
/**
* @brief Return true if two extreme value distributions have different
* parameters.
operator!=(const std::extreme_value_distribution<_RealType>& __d1,
const std::extreme_value_distribution<_RealType>& __d2)
{ return !(__d1 == __d2); }
+#endif
/**
* @brief Inserts a %extreme_value_distribution random number distribution
operator==(const param_type& __p1, const param_type& __p2)
{ return __p1._M_prob == __p2._M_prob; }
+#if __cpp_impl_three_way_comparison < 201907L
friend bool
operator!=(const param_type& __p1, const param_type& __p2)
{ return !(__p1 == __p2); }
+#endif
private:
void
param_type _M_param;
};
+#if __cpp_impl_three_way_comparison < 201907L
/**
* @brief Return true if two discrete distributions have different
* parameters.
operator!=(const std::discrete_distribution<_IntType>& __d1,
const std::discrete_distribution<_IntType>& __d2)
{ return !(__d1 == __d2); }
-
+#endif
/**
* @brief A piecewise_constant_distribution random number distribution.
operator==(const param_type& __p1, const param_type& __p2)
{ return __p1._M_int == __p2._M_int && __p1._M_den == __p2._M_den; }
+#if __cpp_impl_three_way_comparison < 201907L
friend bool
operator!=(const param_type& __p1, const param_type& __p2)
{ return !(__p1 == __p2); }
+#endif
private:
void
param_type _M_param;
};
+#if __cpp_impl_three_way_comparison < 201907L
/**
* @brief Return true if two piecewise constant distributions have
* different parameters.
operator!=(const std::piecewise_constant_distribution<_RealType>& __d1,
const std::piecewise_constant_distribution<_RealType>& __d2)
{ return !(__d1 == __d2); }
-
+#endif
/**
* @brief A piecewise_linear_distribution random number distribution.
operator==(const param_type& __p1, const param_type& __p2)
{ return __p1._M_int == __p2._M_int && __p1._M_den == __p2._M_den; }
+#if __cpp_impl_three_way_comparison < 201907L
friend bool
operator!=(const param_type& __p1, const param_type& __p2)
{ return !(__p1 == __p2); }
+#endif
private:
void
param_type _M_param;
};
+#if __cpp_impl_three_way_comparison < 201907L
/**
* @brief Return true if two piecewise linear distributions have
* different parameters.
operator!=(const std::piecewise_linear_distribution<_RealType>& __d1,
const std::piecewise_linear_distribution<_RealType>& __d2)
{ return !(__d1 == __d2); }
-
+#endif
/// @} group random_distributions_poisson
void _M_period_certification();
};
-
+#if __cpp_impl_three_way_comparison < 201907L
template<typename _UIntType, size_t __m,
size_t __pos1, size_t __sl1, size_t __sl2,
size_t __sr1, size_t __sr2,
__m, __pos1, __sl1, __sl2, __sr1, __sr2, __msk1, __msk2, __msk3,
__msk4, __parity1, __parity2, __parity3, __parity4>& __rhs)
{ return !(__lhs == __rhs); }
-
+#endif
/* Definitions for the SIMD-oriented Fast Mersenne Twister as defined
* in the C implementation by Daito and Matsumoto, as both a 32-bit
{ return (__p1._M_alpha == __p2._M_alpha
&& __p1._M_beta == __p2._M_beta); }
+#if __cpp_impl_three_way_comparison < 201907L
friend bool
operator!=(const param_type& __p1, const param_type& __p2)
{ return !(__p1 == __p2); }
+#endif
private:
void
param_type _M_param;
};
+#if __cpp_impl_three_way_comparison < 201907L
/**
* @brief Return true if two beta distributions are different.
*/
operator!=(const __gnu_cxx::beta_distribution<_RealType>& __d1,
const __gnu_cxx::beta_distribution<_RealType>& __d2)
{ return !(__d1 == __d2); }
-
+#endif
/**
* @brief A multi-variate normal continuous distribution for random numbers.
operator==(const param_type& __p1, const param_type& __p2)
{ return __p1._M_mean == __p2._M_mean && __p1._M_t == __p2._M_t; }
+#if __cpp_impl_three_way_comparison < 201907L
friend bool
operator!=(const param_type& __p1, const param_type& __p2)
{ return !(__p1 == __p2); }
+#endif
private:
template <typename _InputIterator1, typename _InputIterator2>
std::normal_distribution<_RealType> _M_nd;
};
+#if __cpp_impl_three_way_comparison < 201907L
/**
* @brief Return true if two multi-variate normal distributions are
* different.
const __gnu_cxx::normal_mv_distribution<_Dimen, _RealType>&
__d2)
{ return !(__d1 == __d2); }
-
+#endif
/**
* @brief A Rice continuous distribution for random numbers.
operator==(const param_type& __p1, const param_type& __p2)
{ return __p1._M_nu == __p2._M_nu && __p1._M_sigma == __p2._M_sigma; }
+#if __cpp_impl_three_way_comparison < 201907L
friend bool
operator!=(const param_type& __p1, const param_type& __p2)
{ return !(__p1 == __p2); }
+#endif
private:
void _M_initialize();
std::normal_distribution<result_type> _M_ndy;
};
+#if __cpp_impl_three_way_comparison < 201907L
/**
* @brief Return true if two Rice distributions are not equal.
*/
operator!=(const rice_distribution<_RealType1>& __d1,
const rice_distribution<_RealType1>& __d2)
{ return !(__d1 == __d2); }
-
+#endif
/**
* @brief A Nakagami continuous distribution for random numbers.
operator==(const param_type& __p1, const param_type& __p2)
{ return __p1._M_mu == __p2._M_mu && __p1._M_omega == __p2._M_omega; }
+#if __cpp_impl_three_way_comparison < 201907L
friend bool
operator!=(const param_type& __p1, const param_type& __p2)
{ return !(__p1 == __p2); }
+#endif
private:
void _M_initialize();
std::gamma_distribution<result_type> _M_gd;
};
+#if __cpp_impl_three_way_comparison < 201907L
/**
* @brief Return true if two Nakagami distributions are not equal.
*/
operator!=(const nakagami_distribution<_RealType>& __d1,
const nakagami_distribution<_RealType>& __d2)
{ return !(__d1 == __d2); }
-
+#endif
/**
* @brief A Pareto continuous distribution for random numbers.
operator==(const param_type& __p1, const param_type& __p2)
{ return __p1._M_alpha == __p2._M_alpha && __p1._M_mu == __p2._M_mu; }
+#if __cpp_impl_three_way_comparison < 201907L
friend bool
operator!=(const param_type& __p1, const param_type& __p2)
{ return !(__p1 == __p2); }
+#endif
private:
void _M_initialize();
std::uniform_real_distribution<result_type> _M_ud;
};
+#if __cpp_impl_three_way_comparison < 201907L
/**
* @brief Return true if two Pareto distributions are not equal.
*/
operator!=(const pareto_distribution<_RealType>& __d1,
const pareto_distribution<_RealType>& __d2)
{ return !(__d1 == __d2); }
-
+#endif
/**
* @brief A K continuous distribution for random numbers.
&& __p1._M_nu == __p2._M_nu;
}
+#if __cpp_impl_three_way_comparison < 201907L
friend bool
operator!=(const param_type& __p1, const param_type& __p2)
{ return !(__p1 == __p2); }
+#endif
private:
void _M_initialize();
std::gamma_distribution<result_type> _M_gd2;
};
+#if __cpp_impl_three_way_comparison < 201907L
/**
* @brief Return true if two K distributions are not equal.
*/
operator!=(const k_distribution<_RealType>& __d1,
const k_distribution<_RealType>& __d2)
{ return !(__d1 == __d2); }
-
+#endif
/**
* @brief An arcsine continuous distribution for random numbers.
operator==(const param_type& __p1, const param_type& __p2)
{ return __p1._M_a == __p2._M_a && __p1._M_b == __p2._M_b; }
+#if __cpp_impl_three_way_comparison < 201907L
friend bool
operator!=(const param_type& __p1, const param_type& __p2)
{ return !(__p1 == __p2); }
+#endif
private:
void _M_initialize();
std::uniform_real_distribution<result_type> _M_ud;
};
+#if __cpp_impl_three_way_comparison < 201907L
/**
* @brief Return true if two arcsine distributions are not equal.
*/
operator!=(const arcsine_distribution<_RealType>& __d1,
const arcsine_distribution<_RealType>& __d2)
{ return !(__d1 == __d2); }
-
+#endif
/**
* @brief A Hoyt continuous distribution for random numbers.
operator==(const param_type& __p1, const param_type& __p2)
{ return __p1._M_q == __p2._M_q && __p1._M_omega == __p2._M_omega; }
+#if __cpp_impl_three_way_comparison < 201907L
friend bool
operator!=(const param_type& __p1, const param_type& __p2)
{ return !(__p1 == __p2); }
+#endif
private:
void _M_initialize();
std::exponential_distribution<result_type> _M_ed;
};
+#if __cpp_impl_three_way_comparison < 201907L
/**
* @brief Return true if two Hoyt distributions are not equal.
*/
operator!=(const hoyt_distribution<_RealType>& __d1,
const hoyt_distribution<_RealType>& __d2)
{ return !(__d1 == __d2); }
-
+#endif
/**
* @brief A triangular distribution for random numbers.
&& __p1._M_c == __p2._M_c);
}
+#if __cpp_impl_three_way_comparison < 201907L
friend bool
operator!=(const param_type& __p1, const param_type& __p2)
{ return !(__p1 == __p2); }
+#endif
private:
param_type _M_param;
};
+#if __cpp_impl_three_way_comparison < 201907L
/**
* @brief Return true if two triangle distributions are different.
*/
operator!=(const __gnu_cxx::triangular_distribution<_RealType>& __d1,
const __gnu_cxx::triangular_distribution<_RealType>& __d2)
{ return !(__d1 == __d2); }
-
+#endif
/**
* @brief A von Mises distribution for random numbers.
operator==(const param_type& __p1, const param_type& __p2)
{ return __p1._M_mu == __p2._M_mu && __p1._M_kappa == __p2._M_kappa; }
+#if __cpp_impl_three_way_comparison < 201907L
friend bool
operator!=(const param_type& __p1, const param_type& __p2)
{ return !(__p1 == __p2); }
+#endif
private:
_RealType _M_mu;
param_type _M_param;
};
+#if __cpp_impl_three_way_comparison < 201907L
/**
* @brief Return true if two von Mises distributions are different.
*/
operator!=(const __gnu_cxx::von_mises_distribution<_RealType>& __d1,
const __gnu_cxx::von_mises_distribution<_RealType>& __d2)
{ return !(__d1 == __d2); }
-
+#endif
/**
* @brief A discrete hypergeometric random number distribution.
&& (__p1._M_K == __p2._M_K)
&& (__p1._M_n == __p2._M_n); }
+#if __cpp_impl_three_way_comparison < 201907L
friend bool
operator!=(const param_type& __p1, const param_type& __p2)
{ return !(__p1 == __p2); }
+#endif
private:
param_type _M_param;
};
+#if __cpp_impl_three_way_comparison < 201907L
/**
* @brief Return true if two hypergeometric distributions are different.
*/
operator!=(const __gnu_cxx::hypergeometric_distribution<_UIntType>& __d1,
const __gnu_cxx::hypergeometric_distribution<_UIntType>& __d2)
{ return !(__d1 == __d2); }
+#endif
/**
* @brief A logistic continuous distribution for random numbers.
operator==(const param_type& __p1, const param_type& __p2)
{ return __p1._M_a == __p2._M_a && __p1._M_b == __p2._M_b; }
+#if __cpp_impl_three_way_comparison < 201907L
friend bool
operator!=(const param_type& __p1, const param_type& __p2)
{ return !(__p1 == __p2); }
+#endif
private:
void _M_initialize();
param_type _M_param;
};
+#if __cpp_impl_three_way_comparison < 201907L
/**
* @brief Return true if two logistic distributions are not equal.
*/
operator!=(const logistic_distribution<_RealType1>& __d1,
const logistic_distribution<_RealType1>& __d2)
{ return !(__d1 == __d2); }
-
+#endif
/**
* @brief A distribution for random coordinates on a unit sphere.
operator==(const param_type&, const param_type&)
{ return true; }
+#if __cpp_impl_three_way_comparison < 201907L
friend bool
operator!=(const param_type&, const param_type&)
{ return false; }
+#endif
};
/**
std::normal_distribution<_RealType> _M_nd;
};
+#if __cpp_impl_three_way_comparison < 201907L
/**
* @brief Return true if two uniform on sphere distributions are different.
*/
const __gnu_cxx::uniform_on_sphere_distribution<_Dimen,
_RealType>& __d2)
{ return !(__d1 == __d2); }
-
+#endif
/**
* @brief A distribution for random coordinates inside a unit sphere.
operator==(const param_type& __p1, const param_type& __p2)
{ return __p1._M_radius == __p2._M_radius; }
+#if __cpp_impl_three_way_comparison < 201907L
friend bool
operator!=(const param_type& __p1, const param_type& __p2)
{ return !(__p1 == __p2); }
+#endif
private:
_RealType _M_radius;
uniform_on_sphere_distribution<_Dimen, _RealType> _M_uosd;
};
+#if __cpp_impl_three_way_comparison < 201907L
/**
* @brief Return true if two uniform on sphere distributions are different.
*/
const __gnu_cxx::uniform_inside_sphere_distribution<_Dimen,
_RealType>& __d2)
{ return !(__d1 == __d2); }
+#endif
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace __gnu_cxx