23 verify_indep_set(A, indep)
27 register sm_row *prow, *prow1;
30 for(p = indep->
first_col; p != 0; p = p->next_col) {
32 for(p1 = p->next_col; p1 != 0; p1 = p1->next_col) {
48 register sm_row *best_row, *prow;
58 while (B->
nrows > 0) {
68 if (weight ==
NIL(
int)) {
72 least_weight = weight[prow->
first_col->col_num];
73 for(p = prow->
first_col->next_col; p != 0; p = p->next_col) {
74 if (weight[p->col_num] < least_weight) {
75 least_weight = weight[p->col_num];
79 indep->
cost += least_weight;
84 for(p = save->
first_col; p != 0; p = p->next_col) {
105 register sm_row *prow, *prow1;
112 for(prow = A->first_row; prow != 0; prow = prow->
next_row) {
115 for(p = prow->
first_col; p != 0; p = p->next_col) {
117 for(p1 = pcol->
first_row; p1 != 0; p1 = p1->next_row) {
124 for(p = prow->
first_col; p != 0; p = p->next_col) {
126 for(p1 = pcol->
first_row; p1 != 0; p1 = p1->next_row) {
solution_t * sm_maximal_independent_set(sm_matrix *A, int *weight)
static ABC_NAMESPACE_IMPL_START sm_matrix * build_intersection_matrix()
solution_t * solution_alloc()
sm_element * sm_row_insert(sm_row *prow, int col)
sm_row * sm_row_dup(sm_row *prow)
void sm_delrow(sm_matrix *A, int i)
#define sm_get_row(A, rownum)
#define ABC_NAMESPACE_IMPL_END
#define sm_get_col(A, colnum)
void sm_free(sm_matrix *A)
sm_element * sm_insert(sm_matrix *A, int row, int col)
ABC_NAMESPACE_IMPL_START sm_matrix * sm_alloc()
#define ABC_NAMESPACE_IMPL_START
typedefABC_NAMESPACE_HEADER_START struct sm_element_struct sm_element
void sm_row_free(sm_row *prow)
void sm_delcol(sm_matrix *A, int i)
int sm_row_intersects(sm_row *p1, sm_row *p2)