static void elsInit(void) { size_t i; for (i = 0; i < vecs2_len; ++i){ els[i].val = borVec2X(&vecs2[i]) * 1000000; borListInit(&els[i].htable); els[i].hash = hash(&els[i].htable, NULL); } els_len = vecs2_len; }
bor_fibo_t *borFiboNew(bor_fibo_lt lt, void *data) { bor_fibo_t *fibo; fibo = BOR_ALLOC(bor_fibo_t); bzero(fibo, sizeof(bor_fibo_t)); borListInit(&fibo->root); fibo->max_degree = 0; fibo->lt = lt; fibo->data = data; return fibo; }
static void el6New(el6_t *ns, size_t len, bor_list_t *head) { size_t i, j; borListInit(head); for (i = 0; i < len; i++){ for (j = 0; j < 6; j++){ borVecSet(ns[i].v, j, borRand(&r, -10., 10.)); } borGUGElInit(&ns[i].c, ns[i].v); borListAppend(head, &ns[i].list); } }
static void elNew(el_t *ns, size_t len, bor_list_t *head) { size_t i; bor_real_t x, y; borListInit(head); for (i = 0; i < len; i++){ x = borRand(&r, -10., 10.); y = borRand(&r, -10., 10.); borVec2Set(&ns[i].v, x, y); borGUGElInit(&ns[i].c, (const bor_vec_t *)&ns[i].v); borListAppend(head, &ns[i].list); } }
static void _nnAddRm(uint8_t type, bor_nn_params_t *params) { bor_rand_mt_t *rand; bor_nn_t *nn; static bor_list_t els_list; static int els_len = ADD_ELS_LEN; static el_t els[ADD_ELS_LEN]; int i, j; rand = borRandMTNewAuto(); params->type = type; nn = borNNNew(params); borListInit(&els_list); for (i = 0; i < els_len; i++){ borVec2Set(&els[i].w, borRandMT(rand, -3, 3), borRandMT(rand, -3, 3)); borNNElInit(nn, &els[i].el, (const bor_vec_t *)&els[i].w); borListAppend(&els_list, &els[i].list); } for (i = 0; i < ADD_ELS_LEN; i++){ //fprintf(stdout, "%02d:\n", i); borNNAdd(nn, &els[i].el); //borNNDump(vp, stdout); } for (i = 0; i < ADD_ELS_LEN; i += 3){ borNNRemove(nn, &els[i].el); borListDel(&els[i].list); } for (i = 0; i < ADD_NUM_TESTS; i++){ for (j = 1; j <= ADD_NUM_NNS; j++){ test2(rand, nn, &els_list, j); } } borNNDel(nn); borRandMTDel(rand); }