Loading...
Searching...
No Matches
random.h
Go to the documentation of this file.
1#ifndef _BBM_RANDOM_BACKBONE_CONCEPT_H_
2#define _BBM_RANDOM_BACKBONE_CONCEPT_H_
3
4#include <concepts>
5
6/************************************************************************/
7/*! \file random.h
8
9 \brief Random number generator
10*************************************************************************/
11
12namespace bbm {
13 namespace concepts {
14 namespace backbone {
15
16 /******************************************************************/
17 /*! \brief Concept to check a randum number generator
18
19 Each rng contains:
20 + typedef type: basis type
21 + type operator(): generates a random number between lower and upper
22 *****************************************************************/
23 template<typename RNG>
24 concept is_rng = requires(RNG& rng)
25 {
26 typename std::decay_t<RNG>::type;
27 { rng() } -> std::same_as<typename std::decay_t<RNG>::type>;
28 };
29
30 } // end backbone namespace
31 } // end concepts namespace
32} // end bbm namespace
33
34#endif /* _BBM_RANDOM_BACKBONE_CONCEPT_H_ */
35
Concept to check a randum number generator.
Definition: random.h:24
Random number generator; built on top of Drjit.
Definition: backbone.h:53
Definition: aggregatebsdf.h:29