Random.h
Go to the documentation of this file.
1
#ifndef MiscLib__RANDOM_HEADER__
2
#define MiscLib__RANDOM_HEADER__
3
/*
4
* random.h -- Random number generation interface
5
*
6
* for further details see Knuth TAOCP Vol.2 pp. 186f
7
*
8
*/
9
10
#define MiscLib_RN_BUFSIZE 500
11
#define MiscLib_RN_RAND_MOD (1L << 30)
12
#define MiscLib_RN_CONST 6180339887L
13
14
namespace
MiscLib
15
{
16
extern
size_t
rn_buf
[];
17
extern
size_t
rn_point
;
18
void
rn_setseed
(
size_t
);
19
size_t
rn_refresh
(
void
);
20
21
inline
size_t
22
rn_rand
()
23
{
24
size_t
idx =
rn_point
++;
25
return
(
MiscLib_RN_BUFSIZE
> idx) ?
rn_buf
[idx] :
rn_refresh
();
26
}
27
28
inline
size_t
29
rn_urand
(
size_t
m)
30
{
31
return
rn_rand
() % m;
32
}
33
34
inline
float
35
rn_frand
()
36
{
37
return
(
float
)
rn_rand
() /
MiscLib_RN_RAND_MOD
;
38
}
39
};
// namespace MiscLib
40
41
#endif
MiscLib_RN_BUFSIZE
#define MiscLib_RN_BUFSIZE
Definition:
Random.h:10
MiscLib::rn_point
size_t rn_point
Definition:
Random.cpp:24
MiscLib_RN_RAND_MOD
#define MiscLib_RN_RAND_MOD
Definition:
Random.h:11
MiscLib::rn_frand
float rn_frand()
Definition:
Random.h:35
MiscLib::rn_setseed
void rn_setseed(size_t)
Definition:
Random.cpp:27
MiscLib::rn_rand
size_t rn_rand()
Definition:
Random.h:22
MiscLib
Definition:
AlignedAllocator.h:12
MiscLib::rn_buf
size_t rn_buf[]
Definition:
Random.cpp:23
MiscLib::rn_refresh
size_t rn_refresh(void)
Definition:
Random.cpp:96
MiscLib::rn_urand
size_t rn_urand(size_t m)
Definition:
Random.h:29
VisionX
components
pointcloud_processor
EfficientRANSACPrimitiveExtractor
EfficientRANSAC
MiscLib
Random.h
Generated by
1.8.17