MCPcopy Create free account
hub / github.com/arrayfire/arrayfire / af_get_default_random_engine

Function af_get_default_random_engine

src/api/c/random.cpp:130–151  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

128} // namespace
129
130af_err af_get_default_random_engine(af_random_engine *r) {
131 try {
132 AF_CHECK(af_init());
133
134 // RandomEngine contains device buffers which are dependent on
135 // context|stream/device. Since nor context or stream are available at
136 // this level, we will only use the deviceId.
137 thread_local std::map<int /*deviceId*/, RandomEngine *>
138 cachedDefaultRandomEngines;
139 const int dependent = af::getDevice();
140 auto it = cachedDefaultRandomEngines.find(dependent);
141 if (it == cachedDefaultRandomEngines.end()) {
142 RandomEngine *defaultRandomEngine = new RandomEngine;
143 cachedDefaultRandomEngines[dependent] = defaultRandomEngine;
144 *r = static_cast<af_random_engine>(defaultRandomEngine);
145 } else {
146 *r = static_cast<af_random_engine>(it->second);
147 }
148 return AF_SUCCESS;
149 }
150 CATCHALL;
151}
152
153af_err af_create_random_engine(af_random_engine *engineHandle,
154 af_random_engine_type rtype, uintl seed) {

Callers 6

af_randuFunction · 0.70
af_randnFunction · 0.70
af_set_seedFunction · 0.70
af_get_seedFunction · 0.70
getDefaultRandomEngineFunction · 0.50

Calls 3

getDeviceFunction · 0.85
findMethod · 0.80
af_initFunction · 0.70

Tested by

no test coverage detected