t_fct *fct_init(void) { t_fct *list; if (DEBUG) ft_putendl("fct init"); list = new_fct(ft_printf_putchar, 'c'); list = add_fct(list, ft_printf_putptr, 'p'); list = add_fct(list, ft_printf_puthhoct, 'k'); list = add_fct(list, ft_printf_puthoct, 'l'); list = add_fct(list, ft_printf_putoct, 'o'); list = add_fct(list, ft_printf_putloct, 'O'); list = add_fct(list, ft_printf_putlloct, 'P'); list = add_fct(list, ft_printf_putlchar, 'C'); list = add_fct(list, ft_printf_putlstr, 'S'); list = fct_initb(list); return (list); }
factor *colorFactor (int nv, cvertex * vl) { /* - calculate color weight (two int n,d) - 08/01/90 */ cgraph * cg; int n0,i,j; factor *f=(factor *)malloc(sizeof(factor)); cgraph model; fct_init(f); SIZE= sizeof(model) + (nv)*((char*)&model.vl[1]-(char*)&model.vl[0]); MAXGLEN=nv+2; cg = (cgraph *) malloc(SIZE); initcg(cg); cg->gl=nv; cg->next=NULL; cg->en=0; for(i=0; i<nv; i++) { cg->vl[i]=vl[i]; for(j=0; j<3; j++) if(vl[i].e[j]>cg->en) cg->en=vl[i].e[j]; } # if (CDEBLEV > DEBLEV) wrcg(cg); # endif remtv(cg); # if (CDEBLEV > DEBLEV) wrcg(cg); # endif while(cg) { cgraph * pgl; while (cg->gl && cg->sgn) if (findv(qg,cg,&n0)) remg(n0,&(cg)); else if (findv(g3,cg,&n0)) exp3g(n0,&(cg)); else cerror(251,"CWTarG: Invalid type of vertex."); pgl = cg; if(pgl->sgn) add_fct(f,pgl->sgn,pgl->pow2,pgl->powN,pgl->powNN_1); cg = cg->next; free(pgl); } return f; }
static t_fct *fct_initb(t_fct *list) { list = add_fct(list, ft_printf_putstr, 's'); list = add_fct(list, ft_printf_puthhnbr, 'h'); list = add_fct(list, ft_printf_putnbr, 'i'); list = add_fct(list, ft_printf_putnbr, 'd'); list = add_fct(list, ft_printf_putlnbr, 'D'); list = add_fct(list, ft_printf_putllnbr, 'F'); list = add_fct(list, ft_printf_putuhhnbr, 'a'); list = add_fct(list, ft_printf_puthnbr, 'r'); list = add_fct(list, ft_printf_putunbr, 'u'); list = add_fct(list, ft_printf_putlunbr, 'U'); list = add_fct(list, ft_printf_putllunbr, 'I'); list = add_fct(list, ft_printf_puthhhexa, 'v'); list = add_fct(list, ft_printf_puthexa, 'x'); list = add_fct(list, ft_printf_puthexa, 'X'); list = add_fct(list, ft_printf_putlhexa, 'H'); list = add_fct(list, ft_printf_putllhexa, 'J'); return (list); }