reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
441 if (!tab1 || !tab2) 444 isl_assert(tab1->mat->ctx, tab1->M == tab2->M, return NULL); 445 isl_assert(tab1->mat->ctx, tab1->rational == tab2->rational, return NULL); 446 isl_assert(tab1->mat->ctx, tab1->cone == tab2->cone, return NULL); 448 isl_assert(tab1->mat->ctx, !tab2->row_sign, return NULL); 450 isl_assert(tab1->mat->ctx, tab2->n_param == 0, return NULL); 452 isl_assert(tab1->mat->ctx, tab2->n_div == 0, return NULL); 456 r2 = tab2->n_redundant; 458 d2 = tab2->n_dead; 462 prod->mat = tab_mat_product(tab1->mat, tab2->mat, 463 tab1->n_row, tab2->n_row, 464 tab1->n_col, tab2->n_col, off, r1, r2, d1, d2); 468 tab1->max_var + tab2->max_var); 469 if ((tab1->max_var + tab2->max_var) && !prod->var) 475 for (i = 0; i < tab2->n_var; ++i) { 476 prod->var[tab1->n_var + i] = tab2->var[i]; 482 tab1->max_con + tab2->max_con); 483 if ((tab1->max_con + tab2->max_con) && !prod->con) 489 for (i = 0; i < tab2->n_con; ++i) { 490 prod->con[tab1->n_con + i] = tab2->con[i]; 496 tab1->n_col + tab2->n_col); 497 if ((tab1->n_col + tab2->n_col) && !prod->col_var) 503 for (i = 0; i < tab2->n_col; ++i) { 505 int t = tab2->col_var[i]; 513 tab1->mat->n_row + tab2->mat->n_row); 514 if ((tab1->mat->n_row + tab2->mat->n_row) && !prod->row_var) 520 for (i = 0; i < tab2->n_row; ++i) { 522 int t = tab2->row_var[i]; 531 prod->n_row = tab1->n_row + tab2->n_row; 532 prod->n_con = tab1->n_con + tab2->n_con; 534 prod->max_con = tab1->max_con + tab2->max_con; 535 prod->n_col = tab1->n_col + tab2->n_col; 536 prod->n_var = tab1->n_var + tab2->n_var; 537 prod->max_var = tab1->max_var + tab2->max_var; 540 prod->n_dead = tab1->n_dead + tab2->n_dead; 541 prod->n_redundant = tab1->n_redundant + tab2->n_redundant; 543 prod->empty = tab1->empty || tab2->empty; 544 prod->strict_redundant = tab1->strict_redundant || tab2->strict_redundant;