Go to the documentation of this file.
15 #ifndef ABSL_RANDOM_EXPONENTIAL_DISTRIBUTION_H_
16 #define ABSL_RANDOM_EXPONENTIAL_DISTRIBUTION_H_
22 #include <type_traits>
24 #include "absl/meta/type_traits.h"
25 #include "absl/random/internal/fast_uniform_bits.h"
26 #include "absl/random/internal/generate_real.h"
27 #include "absl/random/internal/iostream_state_saver.h"
35 template <
typename RealType =
double>
52 return a.lambda_ ==
b.lambda_;
67 "Class-template absl::exponential_distribution<> must be parameterized "
68 "using a floating-point type.");
80 template <
typename URBG>
85 template <
typename URBG>
94 return std::numeric_limits<result_type>::infinity();
101 return a.param_ ==
b.param_;
105 return a.param_ !=
b.param_;
117 template <
typename RealType>
118 template <
typename URBG>
129 false>(fast_u64_(
g));
133 return p.neg_inv_lambda_ * std::log1p(
u);
136 template <
typename CharT,
typename Traits,
typename RealType>
138 std::basic_ostream<CharT, Traits>& os,
146 template <
typename CharT,
typename Traits,
typename RealType>
148 std::basic_istream<CharT, Traits>& is,
155 lambda = random_internal::read_floating_point<result_type>(is);
157 x.param(param_type(lambda));
165 #endif // ABSL_RANDOM_EXPONENTIAL_DISTRIBUTION_H_
istream_state_saver< std::basic_istream< CharT, Traits > > make_istream_state_saver(std::basic_istream< CharT, Traits > &is, std::ios_base::fmtflags flags=std::ios_base::dec|std::ios_base::scientific|std::ios_base::skipws)
result_type lambda() const
exponential_distribution()
friend bool operator!=(const exponential_distribution &a, const exponential_distribution &b)
ABSL_NAMESPACE_BEGIN std::ostream & operator<<(std::ostream &os, absl::LogSeverity s)
FieldDescriptor::Type real_type(FieldType type)
result_type operator()(URBG &g)
typename std::conditional< B, T, F >::type conditional_t
OPENSSL_EXPORT pem_password_cb void * u
param_type(result_type lambda=1)
#define ABSL_NAMESPACE_END
result_type lambda() const
RealType GenerateRealFromBits(uint64_t bits, int exp_bias=0)
#define ABSL_NAMESPACE_BEGIN
random_internal::FastUniformBits< uint64_t > fast_u64_
friend bool operator==(const exponential_distribution &a, const exponential_distribution &b)
result_type() max() const
const typedef int * result_type
result_type neg_inv_lambda_
exponential_distribution(const param_type &p)
friend bool operator!=(const param_type &a, const param_type &b)
friend bool operator==(const param_type &a, const param_type &b)
constexpr uint128 operator>>(uint128 lhs, int amount)
result_type() min() const
void param(const param_type &p)
exponential_distribution(result_type lambda)
friend class exponential_distribution
ostream_state_saver< std::basic_ostream< CharT, Traits > > make_ostream_state_saver(std::basic_ostream< CharT, Traits > &os, std::ios_base::fmtflags flags=std::ios_base::dec|std::ios_base::left|std::ios_base::scientific)
grpc
Author(s):
autogenerated on Fri May 16 2025 02:58:20