diff --git a/enumerate.c b/enumerate.c index aa424e1..a0a0ad8 100644 --- a/enumerate.c +++ b/enumerate.c @@ -67,8 +67,8 @@ void balanced_thickening_callback(const bitvec_t *pos, int size, void *data) for(int i = 0; i < size; i++) { bit1 = i < size/2 ? bv_get_bit(pos, i) : !bv_get_bit(pos, size - 1 - i); for(int j = 0; j < info->rank; j++) { - left = info->dq->cosets[i].min->left[j]->coset - info->dq->cosets; - right = info->dq->cosets[i].min->right[j]->coset - info->dq->cosets; + left = info->dq->cosets[i].min->left[j]->coset->index; + right = info->dq->cosets[i].min->right[j]->coset->index; bit2left = left < size/2 ? bv_get_bit(pos, left) : !bv_get_bit(pos, size - 1 - left); bit2right = right < size/2 ? bv_get_bit(pos, right) : !bv_get_bit(pos, size - 1 - right); if(bit1 != bit2left) diff --git a/thickenings.c b/thickenings.c index 58d1cd2..41d7a9b 100644 --- a/thickenings.c +++ b/thickenings.c @@ -99,9 +99,9 @@ static void generate_principal_ideals(doublequotient_t *dq, bitvec_t *pos, bitve queue_put(&queue, i); while((current = queue_get(&queue)) != -1) for(edge = dq->cosets[current].bruhat_lower; edge; edge = edge->next) - if(!principal[edge->to - dq->cosets]) { - principal[edge->to - dq->cosets] = 1; - queue_put(&queue, edge->to - dq->cosets); + if(!principal[edge->to->index]) { + principal[edge->to->index] = 1; + queue_put(&queue, edge->to->index); } // copy the first half into bitvectors