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);
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
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
static std::mt19937_64 generator_
generator function
Definition: generator.hpp:35
void for_each(InputIt first, InputIt last, UnaryFunction f)
Definition: StlAlgorithms.hpp:225