EXPORT void ba_show_pages(const struct block_allocator * a) { fprintf(stderr, "allocated: %u\n", a->allocated); fprintf(stderr, "num_pages: %u\n", a->num_pages); fprintf(stderr, "max_empty_pages: %u\n", a->max_empty_pages); fprintf(stderr, "empty_pages: %u\n", a->empty_pages); fprintf(stderr, "magnitude: %u\n", a->magnitude); PRINT_NODE(a, alloc); PRINT_LIST(a, pages[0]); PRINT_LIST(a, pages[1]); PRINT_LIST(a, pages[2]); PRINT_NODE(a, last_free); /* * TODO: we should consider updating alloc/last_free here */ PAGE_LOOP(a, { uint32_t blocks_used; blocks_used = p->h.used; fprintf(stderr, "(%p)\t%f\t(%u %d) --> (prev: %p | next: %p)\n", p, blocks_used/(double)a->l.blocks * 100, blocks_used, blocks_used, p->prev, p->next); });
int main(){ struct node *list = (struct node*)malloc(sizeof(struct node)); int arr[] = {1, 2, 3, 4, 5, 6}; fill_list(list, arr, 6); PRINT_LIST(list); reverse_k(&list, 2); PRINT_LIST(list); }
int main(){ struct node *list = (struct node*)malloc(sizeof(struct node)); struct node *list2 = (struct node*)malloc(sizeof(struct node)); int arr[] = {1, 2, 5}; int arr2[] = {3, 4, 5}; fill_list(list, arr, 3); fill_list(list2, arr2, 3); struct node* sum_list = sum_of_list(list, list2); PRINT_LIST(list); PRINT_LIST(list2); PRINT_LIST(sum_list); exit(0); }
int main(int argc, char* argv[]){ if (argc < 2) K = 2; else K = atoi(argv[1]); struct node *list = (struct node*)malloc(sizeof(struct node)); int arr[] = {1, 2, 3, 4, 5, 6}; fill_list(list, arr, 6); PRINT_LIST(list); rotate_list(&list); PRINT_LIST(list); exit(0); }
void reverse_k(struct node **list, int k){ struct node* l = *list; struct node *prev = NULL, *next, *cur = l; while(cur){ int i = 0; for(; i<k; i++){ next = cur->next; cur->next = prev; prev = cur; cur = next; } l->next = cur; *list = prev; PRINT_LIST(*list); for(i=0; i < k; i++){ if(cur){ prev = cur; cur = cur->next; } else return; } } }
static void md_obs_list_add(machine_descrip_t *mdescp) { mutex_enter(&obs_list_lock); mdescp->next = obs_machine_descrip_list; obs_machine_descrip_list = mdescp; mutex_exit(&obs_list_lock); PRINT_LIST(); }
int main() { int n; mpf_set_default_prec(PREC_BITS); puts("/* generated by gen_poly_imp.c */\n"); printf("#define GLL_LAG_FIX_MAX %d\n\n",GLL_LAG_FIX_MAX); /*puts("typedef void gll_lag_fun(double *p, int d, int n, double x);\n");*/ for(n=2;n<=GLL_LAG_FIX_MAX;++n) print_gll_lag_fix(n), puts(""); printf(STATIC "const double *const gllz_table[%d] = {\n ", GLL_LAG_FIX_MAX-3); PRINT_LIST(i, 4,8,(GLL_LAG_FIX_MAX+1), printf("gllz_%02d",i), ", ",",\n "); puts("\n};"); puts(""); printf(STATIC "lagrange_fun *const gll_lag_table[%d] = {\n ", GLL_LAG_FIX_MAX-1); PRINT_LIST(i, 2,6,(GLL_LAG_FIX_MAX+1), printf("&gll_lag_%02d",i), ", ",",\n "); puts("\n};"); puts(""); return 0; }
static void md_obs_list_remove(machine_descrip_t *mdescp) { machine_descrip_t *lmdescp; mutex_enter(&obs_list_lock); lmdescp = obs_machine_descrip_list; if (obs_machine_descrip_list == mdescp) { obs_machine_descrip_list = mdescp->next; } else { while (lmdescp != NULL) { if (lmdescp->next == mdescp) { lmdescp->next = mdescp->next; mdescp->next = NULL; break; } lmdescp = lmdescp->next; } } mutex_exit(&obs_list_lock); PRINT_LIST(); }
static void print_gll_lag_fix(int n) { int i; DECLARE_1VAR(z); if(n>3) { printf("static const double gllz_%02d[%2d] = {\n ",n,n/2-1); for(i=1;i<=n/2-1;++i) { lobatto_node(z, n,n-1-i); if(i!=1) printf(",\n "); gmp_printf("%.*Fg",DIGITS,z); } puts("\n};\n"); } printf(STATIC "void gll_lag_%02d(double *restrict p, double *restrict data,\n" " unsigned n, int d, double xh)\n{\n",n); printf(" const double *restrict w = data;\n"); printf(" const double x = xh*2;\n"); #define PRINT_D(i) do { \ printf("d%02d=x",i); \ if(2*i+1==n) printf(" "); \ else if(i==0) printf("+2 "); \ else if(i==n-1) printf("-2 "); \ else if(i<n/2) printf("+2*gllz_%02d[%2d]",n,i-1); \ else printf("-2*gllz_%02d[%2d]",n,n-2-i); \ } while(0) printf("%s", " const double "); PRINT_LIST(i, 0,3,n, PRINT_D(i),",",",\n "); #undef PRINT_D #define PRINT_U0(i) (i==0 ?printf(" 1"):printf("u0_%02d",i)) #define PRINT_V0(i) (i==n-1?printf(" 1"):printf("v0_%02d",i)) #define PRINT_U1(i) (i<=1 ?printf(" %d",i ):printf("u1_%02d",i)) #define PRINT_V1(i) (i>=n-2?printf(" %d",n-1-(i)):printf("v1_%02d",i)) #define PRINT_U2(i) (i<=1 ?printf(" 0"): \ (i==2 ?printf(" 2"):printf("u2_%02d",i))) #define PRINT_V2(i) (i>=n-2?printf(" 0"): \ (i==n-3?printf(" 2"):printf("v2_%02d",i))) printf("%s",";\n const double "); PRINT_LIST(i, 1,3,n, (PRINT_U0(i),putchar('='),PRINT_U0(i-1),printf("*d%02d",i-1)), ",",",\n "); printf("%s",";\n const double "); PRINT_LIST(i, 1,3,n, (PRINT_V0(n-1-i),putchar('='),printf("d%02d*",n-i),PRINT_V0(n-i)), ",",",\n "); printf("%s",";\n "); PRINT_LIST(i, 0,3,n, (printf("p[%2d]=w[%2d]*",i,i),PRINT_U0(i),putchar('*'), PRINT_V0(i)),"; ",";\n "); puts(";\n if(d>0) {"); if(n>2) { printf("%s"," const double "); PRINT_LIST(i, 2,2,n, (PRINT_U1(i),putchar('='),PRINT_U1(i-1),printf("*d%02d",i-1), putchar('+'),PRINT_U0(i-1)), ",",",\n "); printf("%s",";\n const double "); PRINT_LIST(i, 2,2,n, (PRINT_V1(n-1-i),putchar('='),printf("d%02d*",n-i),PRINT_V1(n-i), putchar('+'),PRINT_V0(n-i)), ",",",\n "); puts(";"); } for(i=0;i<n;++i) { printf(" p[%d+%2d]=2*w[%2d]*(",n,i,i); if(i==0) printf(" "),PRINT_V1(0); else if(i==n-1) PRINT_U1(i),printf(" "); else PRINT_U1(i),putchar('*'),PRINT_V0(i),putchar('+'), PRINT_U0(i),putchar('*'),PRINT_V1(i); puts(");"); } puts(" if(d>1) {"); if(n>3) { printf("%s"," const double "); PRINT_LIST(i, 3,2,n, (PRINT_U2(i),putchar('='),PRINT_U2(i-1),printf("*d%02d",i-1), printf("+2*"),PRINT_U1(i-1)), ",",",\n "); printf("%s",";\n const double "); PRINT_LIST(i, 3,2,n, (PRINT_V2(n-1-i),putchar('='),printf("d%02d*",n-i),PRINT_V2(n-i), printf("+2*"),PRINT_V1(n-i)), ",",",\n "); puts(";"); } if(n<3) for(i=0;i<n;++i) printf(" p[2*%d+%2d]=0;\n",n,i); else for(i=0;i<n;++i) { printf(" p[2*%d+%2d]=4*w[%2d]*(",n,i,i); if(i>1) PRINT_U2(i),putchar('*'),PRINT_V0(i); else printf(" "); if(i>0 && i<n-1) printf("+2*"),PRINT_U1(i),putchar('*'),PRINT_V1(i); else printf(" "); if(i<n-2) putchar('+'),PRINT_U0(i),putchar('*'),PRINT_V2(i); else printf(" "); puts(");"); } #undef PRINT_U0 #undef PRINT_V0 #undef PRINT_U1 #undef PRINT_V1 #undef PRINT_U2 #undef PRINT_V2 puts(" }\n }\n}"); }