Wpt QuadtreeNode::urand_pick() { Wvec vec1 = _v2 - _v1; Wvec vec2 = _v3 - _v1; double d1 = dorand(), d2 = dorand(); Wpt pt = _v1 + d1 * vec1 + d2 * vec2; if (!contains(pt, 0.1)) pt = (_v2 + _v3) + (-pt); return pt; }
void prngpal(uint32_t uiCommand, tzi_encode_buffer_t *psInBuf, tzi_encode_buffer_t *psOutBuf, tz_return_t *puiRv) { int len = 10; uint8_t *bytes[10]; *puiRv = TZ_SUCCESS; fprintf(stderr, "test, %d\n", 5); test(); dohmac(); dorand(); if (svc_utpm_rand_block(bytes, len) != 0) { *puiRv = TZ_ERROR_GENERIC; } append_stderr(psOutBuf); return; }
inline int pick (ARRAY<QuadtreeNode*>& l) { int ret = -1; double total_w = 0.0; for (int i = 0; i < l.num(); i++) { total_w += l[i]->get_weight(); } double r = dorand() * total_w; total_w = 0.0; for (int i = 0; i < l.num(); i++) { total_w += l[i]->get_weight(); if (total_w >= r) { ret = i; break; } } return ret; }