projects
/
platform
/
upstream
/
isl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
isl_qpolynomial_from_aff: create private copy of divs
[platform/upstream/isl.git]
/
isl_bernstein.c
diff --git
a/isl_bernstein.c
b/isl_bernstein.c
index
58fc7c9
..
afeccf6
100644
(file)
--- a/
isl_bernstein.c
+++ b/
isl_bernstein.c
@@
-13,8
+13,10
@@
* ZAC des vignes, 4 rue Jacques Monod, 91893 Orsay, France
*/
* ZAC des vignes, 4 rue Jacques Monod, 91893 Orsay, France
*/
-#include <isl_set.h>
-#include <isl_seq.h>
+#include <isl_ctx_private.h>
+#include <isl_map_private.h>
+#include <isl/set.h>
+#include <isl/seq.h>
#include <isl_morph.h>
#include <isl_factorization.h>
#include <isl_vertices_private.h>
#include <isl_morph.h>
#include <isl_factorization.h>
#include <isl_vertices_private.h>
@@
-100,7
+102,7
@@
static int is_tight(int *k, int n, int d, isl_cell *cell)
return 0;
continue;
}
return 0;
continue;
}
- v = cell->
vertices->c[cell->id].vertice
s[n - 1 - i];
+ v = cell->
id
s[n - 1 - i];
return vertex_is_integral(cell->vertices->v[v].vertex);
}
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_qpolynomial **subs;
isl_pw_qpolynomial_fold *pwf;
isl_set *dom;
+ isl_ctx *ctx;
nvar = isl_qpolynomial_dim(poly, isl_dim_set) - 1;
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;
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) {
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].vertice
s[i];
+ int k = cell->
id
s[i];
isl_qpolynomial *v;
v = vertex_coordinate(cell->vertices->v[k].vertex, j,
isl_dim_copy(dim_param));
isl_qpolynomial *v;
v = vertex_coordinate(cell->vertices->v[k].vertex, j,
isl_dim_copy(dim_param));