reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
2182 unsigned off = 2 + tab->M; 2187 div = get_row_parameter_div(tab, row); 2191 n = tab->n_div - context->n_unknown; 2192 d = context->op->get_div(context, tab, div); 2197 if (isl_tab_extend_cons(tab, 1) < 0) 2199 r = isl_tab_allocate_con(tab); 2203 r_row = tab->mat->row[tab->con[r].index]; 2203 r_row = tab->mat->row[tab->con[r].index]; 2204 isl_int_set(r_row[0], tab->mat->row[row][0]); 2205 isl_int_neg(r_row[1], tab->mat->row[row][1]); 2206 isl_int_fdiv_r(r_row[1], r_row[1], tab->mat->row[row][0]); 2208 if (tab->M) 2210 for (i = 0; i < tab->n_param; ++i) { 2211 if (tab->var[i].is_row) 2213 col = tab->var[i].index; 2214 isl_int_neg(r_row[off + col], tab->mat->row[row][off + col]); 2216 tab->mat->row[row][0]); 2219 for (i = 0; i < tab->n_div; ++i) { 2220 if (tab->var[tab->n_var - tab->n_div + i].is_row) 2220 if (tab->var[tab->n_var - tab->n_div + i].is_row) 2220 if (tab->var[tab->n_var - tab->n_div + i].is_row) 2222 col = tab->var[tab->n_var - tab->n_div + i].index; 2222 col = tab->var[tab->n_var - tab->n_div + i].index; 2222 col = tab->var[tab->n_var - tab->n_div + i].index; 2223 isl_int_neg(r_row[off + col], tab->mat->row[row][off + col]); 2225 tab->mat->row[row][0]); 2228 for (i = 0; i < tab->n_col; ++i) { 2229 if (tab->col_var[i] >= 0 && 2230 (tab->col_var[i] < tab->n_param || 2230 (tab->col_var[i] < tab->n_param || 2231 tab->col_var[i] >= tab->n_var - tab->n_div)) 2231 tab->col_var[i] >= tab->n_var - tab->n_div)) 2231 tab->col_var[i] >= tab->n_var - tab->n_div)) 2234 tab->mat->row[row][off + i], tab->mat->row[row][0]); 2234 tab->mat->row[row][off + i], tab->mat->row[row][0]); 2236 if (tab->var[tab->n_var - tab->n_div + d].is_row) { 2236 if (tab->var[tab->n_var - tab->n_div + d].is_row) { 2236 if (tab->var[tab->n_var - tab->n_div + d].is_row) { 2238 int d_row = tab->var[tab->n_var - tab->n_div + d].index; 2238 int d_row = tab->var[tab->n_var - tab->n_div + d].index; 2238 int d_row = tab->var[tab->n_var - tab->n_div + d].index; 2240 isl_int_gcd(gcd, tab->mat->row[d_row][0], r_row[0]); 2242 isl_int_divexact(gcd, tab->mat->row[d_row][0], gcd); 2244 r_row[0], tab->mat->row[d_row] + 1, 2245 off - 1 + tab->n_col); 2246 isl_int_mul(r_row[0], r_row[0], tab->mat->row[d_row][0]); 2249 col = tab->var[tab->n_var - tab->n_div + d].index; 2249 col = tab->var[tab->n_var - tab->n_div + d].index; 2249 col = tab->var[tab->n_var - tab->n_div + d].index; 2250 isl_int_set(r_row[off + col], tab->mat->row[row][0]); 2253 tab->con[r].is_nonneg = 1; 2254 if (isl_tab_push_var(tab, isl_tab_undo_nonneg, &tab->con[r]) < 0) 2254 if (isl_tab_push_var(tab, isl_tab_undo_nonneg, &tab->con[r]) < 0) 2256 if (tab->row_sign) 2257 tab->row_sign[tab->con[r].index] = isl_tab_row_neg; 2257 tab->row_sign[tab->con[r].index] = isl_tab_row_neg; 2259 row = tab->con[r].index; 2261 if (d >= n && context->op->detect_equalities(context, tab) < 0)