Пример #1
0
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;
}
Пример #2
0
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;
}
Пример #3
0
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;
}