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

Function af_create_random_engine

src/api/c/random.cpp:153–184  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

151}
152
153af_err af_create_random_engine(af_random_engine *engineHandle,
154 af_random_engine_type rtype, uintl seed) {
155 try {
156 AF_CHECK(af_init());
157 validateRandomType(rtype);
158
159 RandomEngine e;
160 e.type = rtype;
161 *e.seed = seed;
162 *e.counter = 0;
163
164 if (rtype == AF_RANDOM_ENGINE_MERSENNE_GP11213) {
165 e.pos = createHostDataArray<uint>(dim4(MaxBlocks), pos);
166 e.sh1 = createHostDataArray<uint>(dim4(MaxBlocks), sh1);
167 e.sh2 = createHostDataArray<uint>(dim4(MaxBlocks), sh2);
168 e.mask = mask;
169
170 e.recursion_table =
171 createHostDataArray<uint>(dim4(TableLength), recursion_tbl);
172 e.temper_table =
173 createHostDataArray<uint>(dim4(TableLength), temper_tbl);
174 e.state = createEmptyArray<uint>(dim4(MtStateLength));
175
176 initMersenneState(e.state, seed, e.recursion_table);
177 }
178
179 *engineHandle = getRandomEngineHandle(e);
180 }
181 CATCHALL;
182
183 return AF_SUCCESS;
184}
185
186af_err af_retain_random_engine(af_random_engine *outHandle,
187 const af_random_engine engineHandle) {

Callers 1

randomEngineMethod · 0.50

Calls 5

validateRandomTypeFunction · 0.85
getRandomEngineHandleFunction · 0.85
af_initFunction · 0.70
dim4Class · 0.50
initMersenneStateFunction · 0.50

Tested by

no test coverage detected