31#ifndef NUMCPP_NO_USE_BOOST
36#include "boost/random/triangle_distribution.hpp"
62 template<
typename dtype,
typename GeneratorType = std::mt19937>
63 dtype
triangle(GeneratorType& generator, dtype inA = 0, dtype inB = 0.5, dtype inC = 1)
82 const bool aLessB = inA <= inB;
83 const bool bLessC = inB <= inC;
84 if (!(aLessB && bLessC))
89 boost::random::triangle_distribution<dtype> dist(inA, inB, inC);
90 return dist(generator);
109 template<
typename dtype,
typename GeneratorType = std::mt19937>
111 triangle(GeneratorType& generator,
const Shape& inShape, dtype inA = 0, dtype inB = 0.5, dtype inC = 1)
130 const bool aLessB = inA <= inB;
131 const bool bLessC = inB <= inC;
132 if (!(aLessB && bLessC))
139 boost::random::triangle_distribution<dtype> dist(inA, inB, inC);
141 std::for_each(returnArray.
begin(),
143 [&generator, &dist](dtype& value) ->
void { value = dist(generator); });
162 template<
typename dtype>
163 dtype
triangle(dtype inA = 0, dtype inB = 0.5, dtype inC = 1)
183 template<
typename dtype>
#define THROW_INVALID_ARGUMENT_ERROR(msg)
Definition Error.hpp:37
#define STATIC_ASSERT_FLOAT(dtype)
Definition StaticAsserts.hpp:50
Holds 1D and 2D arrays, the main work horse of the NumCpp library.
Definition NdArrayCore.hpp:139
iterator end() noexcept
Definition NdArrayCore.hpp:1623
iterator begin() noexcept
Definition NdArrayCore.hpp:1315
A Shape Class for NdArrays.
Definition Core/shape.hpp:41
Definition Random/bernoulli.hpp:43
dtype triangle(GeneratorType &generator, dtype inA=0, dtype inB=0.5, dtype inC=1)
Definition triangle.hpp:63
Definition Random/bernoulli.hpp:41
dtype triangle(dtype inA=0, dtype inB=0.5, dtype inC=1)
Definition triangle.hpp:163
std::mt19937_64 generator_
generator function
Definition generator.hpp:35