void test_dmatrix_power_uint(int n, uint p, int print) { double **out, **in; pTimer t; ptimer_init(&t, CLOCK_PROCESS_CPUTIME_ID); in = doubleAA_malloc(n, n); dmatrix_ramp(in, n, n, 0.0, 2 * n, 1.0); if (print) { dmatrix_print((const double **) in, n, n); puts(""); } out = doubleAA_malloc(n, n); ptimer_tic(&t); dmatrix_mmul(out, (const double **) in, (const double **) in, n, n, n); ptimer_toc(&t); printf("dmatrix_mmul: "); siunit_show(ptimer_get_sec(&t)); puts("\n"); if (print) { dmatrix_print((const double **) out, n, n); puts(""); } ptimer_tic(&t); dmatrix_mmul_strassen(out, (const double **) in, (const double **) in, n, n, n); ptimer_toc(&t); printf("dmatrix_mmul_strassen: "); siunit_show(ptimer_get_sec(&t)); puts("\n"); if (print) { dmatrix_print((const double **) out, n, n); } dmatrix_free(in); dmatrix_free(out); }
void test_kdTree_rbal(kdTree * tree, int show) { pTimer tmr; ptimer_init(&tmr, CLOCK_PROCESS_CPUTIME_ID); ptimer_tic(&tmr); kdTree_rbal(tree); ptimer_toc(&tmr); printf("- Balance: "); ptimer_print_sec_usec9(tmr); printf("[s]"); if (show_bars) { int x = (int)rint(ptimer_get_sec(&tmr) * fac); mputchar(stdout, x, '#'); } endline(); }
void test_kdTree_find_shape(kdTree * tree, vis_t ** grid, size_t m, size_t n, int show) { size_t k; pTimer tmr; ptimer_init(&tmr, CLOCK_PROCESS_CPUTIME_ID); ptimer_tic(&tmr); kdTree_reset_fbs(tree); size_t hitnum = 0; for (k = 0; k < m * n; k++) { const vis_t * elm = grid[k]; if (show) { printf("finding "); vis_fprint(stdout, elm); printf(" nr:%zd/%zd...", k, m * n); } int hit = kdTree_find_shape(tree, elm); if (hit) { hitnum++; } if (show) { printf("%s", hit ? "HIT: " : "MISS"); endline(); } } ptimer_toc(&tmr); printf("- Find: "); ptimer_print_sec_usec9(tmr); printf("[s]"); printf(" (%zd) %s ", hitnum, (hitnum == m * n) ? "SUCCESS" : "FAILURE"); if (show_bars) { int x = (int)rint(ptimer_get_sec(&tmr) * fac); mputchar(stdout, x, '#'); } endline(); }
void test_kdTree_ins_shape(kdTree * tree, vis_t ** grid, size_t m, size_t n, int show) { size_t k; pTimer tmr; ptimer_init(&tmr, CLOCK_PROCESS_CPUTIME_ID); ptimer_tic(&tmr); for (k = 0; k < m * n; k++) { vis_t * elm = grid[k]; if (show) { printf("inserting "); vis_fprint(stdout, elm); printf(" nr:%zd/%zd...", k, m * n); } kdTree_ins_shape(tree, elm); if (show) { kdTree_fprint(stdout, tree, TRUE); putsep(stdout); } if (show) { endline(); } } ptimer_toc(&tmr); printf("- Insertion: "); ptimer_print_sec_usec9(tmr); printf("[s]"); if (show_bars) { int x = (int)rint(ptimer_get_sec(&tmr) * fac); putchar(' '); mputchar(stdout, x, '#'); } endline(); }
void test_kdTree_rm_shape(kdTree * tree, vis_t ** grid, size_t m, size_t n, int show) { pTimer tmr; ptimer_init(&tmr, CLOCK_PROCESS_CPUTIME_ID); ptimer_tic(&tmr); size_t k, rmnum = 0; for (k = 0; k < m * n; k++) { vis_t * elm = grid[k]; if (show) { printf("removing "); vis_fprint(stdout, elm); printf(" nr:%zd/%zd...", k, m * n); } uint ok = kdTree_rm_shape(tree, elm); if (ok) { rmnum++; } if (show) { printf("%s\n", ok ? "HIT" : "MISS"); } } ptimer_toc(&tmr); printf("- Remove: "); ptimer_print_sec_usec9(tmr); printf("[s]"); printf(" (%zd) %s ", rmnum, (rmnum == m * n) ? "SUCCESS" : "FAILURE"); if (show_bars) { int x = (int)rint(ptimer_get_sec(&tmr) * fac); mputchar(stdout, x, '#'); } endline(); }