57 template<
typename dtype,
typename GeneratorType = std::mt19937>
58 dtype
geometric(GeneratorType& generator,
double inP = 0.5)
62 if (inP < 0 || inP > 1)
67 std::geometric_distribution<dtype> dist(inP);
68 return dist(generator);
84 template<
typename dtype,
typename GeneratorType = std::mt19937>
89 if (inP < 0 || inP > 1)
96 std::geometric_distribution<dtype> dist(inP);
100 [&generator, &dist](dtype& value) ->
void { value = dist(generator); });
116 template<
typename dtype>
119 return detail::geometric<dtype>(
generator_, inP);
134 template<
typename dtype>
137 return detail::geometric<dtype>(
generator_, inShape, inP);
#define THROW_INVALID_ARGUMENT_ERROR(msg)
Definition: Error.hpp:36
#define STATIC_ASSERT_INTEGER(dtype)
Definition: StaticAsserts.hpp:40
Holds 1D and 2D arrays, the main work horse of the NumCpp library.
Definition: NdArrayCore.hpp:72
iterator end() noexcept
Definition: NdArrayCore.hpp:1479
iterator begin() noexcept
Definition: NdArrayCore.hpp:1171
A Shape Class for NdArrays.
Definition: Core/Shape.hpp:41
dtype geometric(GeneratorType &generator, double inP=0.5)
Definition: geometric.hpp:58
dtype geometric(double inP=0.5)
Definition: geometric.hpp:117
static std::mt19937_64 generator_
generator function
Definition: generator.hpp:37
void for_each(InputIt first, InputIt last, UnaryFunction f)
Definition: StlAlgorithms.hpp:227
Definition: Coordinate.hpp:45