edge reorderedges(const edge *g, const agent *map, idx_t n, edge m, edge *go, agent *ao, edge *e, \ real_t *tpwgts, real_t *ubvec, idx_t *options) { idx_t cutsize, part[n], ncon = 1, nparts = 2; idx_t xadj[n + 1], adjncy[2 * m]; graph2csr(g, n, m, xadj, adjncy); ROUTINE(&n, &ncon, xadj, adjncy, NULL, NULL, NULL, &nparts, tpwgts, ubvec, options, &cutsize, part); agent i, j, n2, n1 = 0; for (i = 0; i < n; i++) if (part[i]) n1++; n2 = n - n1; if (n1 && n2) { edge m1 = 0, m2 = 0, g1[n1 * n1], g2[n2 * n2]; agent map1[n1], map2[n2]; memset(g1, 0, sizeof(edge) * n1 * n1); memset(g2, 0, sizeof(edge) * n2 * n2); splitgraph(g, map, part, g1, n1, &m1, map1, g2, n2, &m2, map2, go, ao, e); if (n1 > 1) reorderedges(g1, map1, n1, m1, go, ao, e, tpwgts, ubvec, options); if (n2 > 1) reorderedges(g2, map2, n2, m2, go, ao, e, tpwgts, ubvec, options); } else for (i = 0; i < n; i++) for (j = i + 1; j < n; j++) if (g[i * n + j]) createedge(go, ao, map[i], map[j], (*e)++); return cutsize; }
{dummy}, // 硬件错误中断 {dummy}, // 存储器管理错误中断 {dummy}, // 总线错误中断 {dummy}, // 用法错误中断 #else {faultRoutine}, // 硬件错误中断 {memFaultRoutine}, // 存储器管理错误中断 {busFaultRoutine}, // 总线错误中断 {usageFaultRoutine}, // 用法错误中断 #endif {dummy}, // 空闲中断 {dummy}, {dummy}, {dummy}, {vPortSVCHandler}, // FreeRtos SVC中断 {dummy}, {dummy}, {xPortPendSVHandler}, // FreeRtos Pend中断 {xPortSysTickHandler}, // FreeRtos SysTick中断 {routine16}, {ROUTINE(17 )},{ ROUTINE(18 )},{ ROUTINE(19 )},{ ROUTINE(20)}, {ROUTINE(21 )},{ ROUTINE(22 )},{ ROUTINE(23 )},{ ROUTINE(24 )}, {ROUTINE(25 )},{ ROUTINE(26 )},{ ROUTINE(27 )},{ ROUTINE(28 )}, {ROUTINE(29 )},{ ROUTINE(30 )},{ ROUTINE(31 )},{ ROUTINE(32 )}, {ROUTINE(33 )},{ ROUTINE(34 )},{ ROUTINE(35 )},{ ROUTINE(36 )}, {ROUTINE(37 )},{ ROUTINE(38 )},{ ROUTINE(39 )},{ ROUTINE(40 )}, {ROUTINE(41 )},{ ROUTINE(42 )},{ ROUTINE(43 )},{ ROUTINE(44 )}, {ROUTINE(45 )},{ ROUTINE(46 )},{ ROUTINE(47 )},{ ROUTINE(48 )}, {ROUTINE(49 )},{ ROUTINE(50 )},{ ROUTINE(51 )},{ ROUTINE(52 )}, {ROUTINE(53 )},{ ROUTINE(54 )},{ ROUTINE(55 )},{ ROUTINE(56 )}, {ROUTINE(57 )},{ ROUTINE(58 )},{ ROUTINE(59 )} }; /*----------------------------startup_m3.c--------------------------------*/
{dummy}, // 存储器管理错误中断 {dummy}, // 总线错误中断 {dummy}, // 用法错误中断 #else {excEnterCommon}, // 硬件错误中断 {excEnterCommon}, // 存储器管理错误中断 {excEnterCommon}, // 总线错误中断 {excEnterCommon}, // 用法错误中断 #endif {dummy}, // 空闲中断 {dummy}, {dummy}, {dummy}, {vPortSVCHandler}, // FreeRtos SVC中断 {dummy}, {dummy}, {xPortPendSVHandler}, // FreeRtos Pend中断 {xPortSysTickHandler}, // FreeRtos SysTick中断 {ROUTINE(16 )}, {ROUTINE(17 )}, {ROUTINE(18 )}, {ROUTINE(19 )}, {ROUTINE(20 )}, {ROUTINE(21 )}, {ROUTINE(22 )}, {ROUTINE(23 )}, {ROUTINE(24 )}, {ROUTINE(25 )}, {ROUTINE(26 )}, {ROUTINE(27 )}, {ROUTINE(28 )}, {ROUTINE(29 )}, {ROUTINE(30 )}, {ROUTINE(31 )}, {ROUTINE(32 )}, {ROUTINE(33 )}, {ROUTINE(34 )}, {ROUTINE(35 )}, {ROUTINE(36 )}, {ROUTINE(37 )}, {ROUTINE(38 )}, {ROUTINE(39 )}, {ROUTINE(40 )}, {ROUTINE(41 )}, {ROUTINE(42 )}, {ROUTINE(43 )}, {ROUTINE(44 )}, {ROUTINE(45 )}, {ROUTINE(46 )}, {ROUTINE(47 )}, {ROUTINE(48 )}, {ROUTINE(49 )}, {ROUTINE(50 )}, {ROUTINE(51 )}, {ROUTINE(52 )}, {ROUTINE(53 )}, {ROUTINE(54 )}, {ROUTINE(55 )}, {ROUTINE(56 )}, {ROUTINE(57 )}, {ROUTINE(58 )}, {ROUTINE(59 )}, {ROUTINE(60 )}, {ROUTINE(61 )}, {ROUTINE(62 )}, {ROUTINE(63 )}, {ROUTINE(64 )}, {ROUTINE(65 )}, {ROUTINE(66 )}, {ROUTINE(67 )}, {ROUTINE(68 )}, {ROUTINE(69 )}, {ROUTINE(70 )}, {ROUTINE(71 )}, {ROUTINE(72 )}, {ROUTINE(73 )}, {ROUTINE(74 )}, {ROUTINE(75 )},
#else EXC_ENTER_HARD_FAULT, EXC_ENTER_MEM_FAULT, EXC_ENTER_BUS_FAULT, EXC_ENTER_USAGE_FAULT, #endif dummy, /* 空闲中断... */ dummy, dummy, dummy, dummy, dummy, dummy, OS_CPU_PendSVHandler, /* μCOS */ OS_CPU_SysTickHandler, /* μCOS */ ROUTINE(16 ), ROUTINE(17 ), ROUTINE(18 ), ROUTINE(19 ), ROUTINE(20 ), ROUTINE(21 ), ROUTINE(22 ), ROUTINE(23 ), ROUTINE(24 ), ROUTINE(25 ), ROUTINE(26 ), ROUTINE(27 ), ROUTINE(28 ), ROUTINE(29 ), ROUTINE(30 ), ROUTINE(31 ),