X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=isl_bernstein.c;h=afeccf68e4c8f74df0faa250b6f24d8eb042e6cc;hb=e2cbb6c20e8bb3847d96fb485336ac6b763ec02e;hp=58fc7c99445da428bb84047c7ac83243f449789c;hpb=c926c9ba9b690e587dff1f705348f9dbee536366;p=platform%2Fupstream%2Fisl.git diff --git a/isl_bernstein.c b/isl_bernstein.c index 58fc7c9..afeccf6 100644 --- a/isl_bernstein.c +++ b/isl_bernstein.c @@ -13,8 +13,10 @@ * ZAC des vignes, 4 rue Jacques Monod, 91893 Orsay, France */ -#include -#include +#include +#include +#include +#include #include #include #include @@ -100,7 +102,7 @@ static int is_tight(int *k, int n, int d, isl_cell *cell) return 0; continue; } - v = cell->vertices->c[cell->id].vertices[n - 1 - i]; + v = cell->ids[n - 1 - i]; return vertex_is_integral(cell->vertices->v[v].vertex); } @@ -251,12 +253,17 @@ static int bernstein_coefficients_cell(__isl_take isl_cell *cell, void *user) isl_qpolynomial **subs; isl_pw_qpolynomial_fold *pwf; isl_set *dom; + isl_ctx *ctx; nvar = isl_qpolynomial_dim(poly, isl_dim_set) - 1; - n_vertices = cell->vertices->c[cell->id].n_vertices; + n_vertices = cell->n_vertices; + + ctx = isl_qpolynomial_get_ctx(poly); + if (n_vertices > nvar + 1 && ctx->opt->bernstein_triangulate) + return isl_cell_foreach_simplex(cell, + &bernstein_coefficients_cell, user); - subs = isl_alloc_array(data->poly->dim->ctx, isl_qpolynomial *, - 1 + nvar); + subs = isl_alloc_array(ctx, isl_qpolynomial *, 1 + nvar); if (!subs) goto error; @@ -272,7 +279,7 @@ static int bernstein_coefficients_cell(__isl_take isl_cell *cell, void *user) c = isl_qpolynomial_var(isl_dim_copy(dim_dst), isl_dim_set, 1 + nvar + i); for (j = 0; j < nvar; ++j) { - int k = cell->vertices->c[cell->id].vertices[i]; + int k = cell->ids[i]; isl_qpolynomial *v; v = vertex_coordinate(cell->vertices->v[k].vertex, j, isl_dim_copy(dim_param));