CONCEPT_FUNCTION_IMPL(_GDCPIE_label_size, 1) T_NUMBER(_GDCPIE_label_size, 0) RETURN_NUMBER(GDCPIE_label_size = (GDC_font_size)PARAM_INT(0)); END_IMPL //-----------------------------------------------------// CONCEPT_FUNCTION_IMPL(_GDCPIE_percent_labels, 1) T_NUMBER(_GDCPIE_percent_labels, 0) RETURN_NUMBER(GDCPIE_percent_labels = (GDCPIE_PCT_TYPE)PARAM_INT(0)); END_IMPL //-----------------------------------------------------// CONCEPT_FUNCTION_IMPL(_GDCPIE_explode, 1) T_ARRAY(_GDCPIE_explode, 0) if (GDCPIE_explode) delete[] (int *)GDCPIE_explode; GDCPIE_explode = GetIntList(PARAMETER(0), Invoke); RETURN_NUMBER(0); END_IMPL //-----------------------------------------------------// CONCEPT_FUNCTION_IMPL(_GDCPIE_Color, 1) T_ARRAY(_GDCPIE_Color, 0) if (GDCPIE_Color) delete[] (int *)GDCPIE_Color; GDCPIE_Color = (unsigned long *)GetIntList(PARAMETER(0), Invoke); RETURN_NUMBER(0); END_IMPL //-----------------------------------------------------// CONCEPT_FUNCTION_IMPL(_GDCPIE_missing, 1)
void GetFlags(int nargs, char **args, int **nreps, int *flsizeKB, int *mflop, int **ROUTs, int *ldagap, int **Ns, int **Ms, int **UPLOs, int **SDs) { int *NBs=NULL, *ns=NULL, *ms=NULL, *ups=NULL, *sds=NULL, *ip; int i, k, n; *ROUTs = NULL; *ldagap = 0; *flsizeKB = L2SIZE/1024; *nreps = NULL; *mflop = 0; for (i=1; i < nargs; i++) { if (args[i][0] != '-') PrintUsage(args[0], i, args[i]); switch(args[i][1]) { case 'n': /* -n or -nb */ ns = GetIntList(nargs, args, i, 1); i += ns[0] + 1; break; case 'm': /* -m # <M1> ... <M#> */ ms = GetIntList(nargs, args, i, 1); i += ms[0] + 1; break; case 'N': /* -N or -NB */ case 'M': /* -M <Mstart> <Mend> <Minc>\n"); */ if (i+3 >= nargs) PrintUsage(args[0], i, NULL); ip = IntRange2IntList(atoi(args[i+1]),atoi(args[i+2]),atoi(args[i+3])); if (args[i][0] == 'M') ms = ip; else /* -N <Nstart> <Nend> <Ninc>\n"); */ ns = ip; i += 3; break; case 'R': /* -R # <rout1> ... <routN#> */ *ROUTs = RoutNames2IntList(nargs, args, i); i += (*ROUTs)[0] + 1; break; case '#': /* set nreps */ if (args[i][2] == 't') /* -#t N1 reps1 ... Nt repst */ { *nreps = GetIntList(nargs, args, i, 2); i += ((*nreps)[0] << 1) + 1; } else /* -# <reps> */ { if (++i >= nargs) PrintUsage(args[0], i, NULL); *nreps = GetIntList2(0, atoi(args[i])); } break; case 'f': /* -f <flushKB> */ if (++i >= nargs) PrintUsage(args[0], i, NULL); *flsizeKB = atoi(args[i]); break; case 'F': /* -F <mflop> */ if (++i >= nargs) PrintUsage(args[0], i, NULL); *mflop = atoi(args[i]); break; case 'U': /* -U <nup> <u1> ... <uN>;[u,l,q,g] */ if (++i >= nargs) PrintUsage(args[0], i, NULL); n = atoi(args[i]); ATL_assert(n > 0); ups = malloc(sizeof(int)*(n+1)); ups[0] = n; for (k=0; k < n; k++) { if (++i >= nargs) PrintUsage(args[0], i, NULL); switch(args[i][0]) { case 'U': case 'u': ups[k+1] = LAUpper; break; case 'l': case 'L': default: ups[k+1] = LALower; break; } } break; case 'S': /* -S <#> <side1> ... <sideN> */ if (++i >= nargs) PrintUsage(args[0], i, NULL); n = atoi(args[i]); ATL_assert(n > 0); sds = malloc(sizeof(int)*(n+1)); sds[0] = n; for (k=0; k < n; k++) { if (++i >= nargs) PrintUsage(args[0], i, NULL); switch(args[i][0]) { case 'L': case 'l': sds[k+1] = LALeft; break; default: sds[k+1] = LARight; break; } } break; case 'a': /* -a <ldagap> */ if (++i >= nargs) PrintUsage(args[0], i, NULL); *ldagap = atoi(args[i]); break; default: PrintUsage(args[0], i, args[i]); } } /* * Take default values */ if (!(*ROUTs)) *ROUTs = GetIntList1(LAgeqrf); if (!(*nreps)) *nreps = GetIntList2(0, 1); if (!ns) ns = GetIntList1(1000); if (!ms) ms = GetIntList1(0); if (!ups) ups = GetIntList1(LAUpper); if (!sds) sds = GetIntList1(LARight); *Ns = ns; *Ms = ms; *UPLOs = ups; *SDs = sds; }