Lines Matching refs:sample
270 struct isl_vec *sample = NULL;
279 sample = isl_vec_alloc(ctx, 1 + dim);
280 if (!sample)
282 isl_int_set_si(sample->el[0], 1);
283 isl_seq_combine(sample->el + 1,
284 ctx->one, tab->bmap->sample->el + 1,
286 if (isl_basic_map_contains(tab->bmap, sample))
287 return sample;
288 isl_vec_free(sample);
289 sample = NULL;
302 sample = isl_tab_sample(tab);
308 if (sample && isl_tab_rollback(tab, snap) < 0)
311 return sample;
313 isl_vec_free(sample);
343 /* Move "sample" to a point that is one up (or down) from the original
346 static void adjacent_point(__isl_keep isl_vec *sample, int pos, int up)
349 isl_int_add_ui(sample->el[1 + pos], sample->el[1 + pos], 1);
351 isl_int_sub_ui(sample->el[1 + pos], sample->el[1 + pos], 1);
354 /* Check if any points that are adjacent to "sample" also belong to "bset".
362 __isl_take isl_basic_set *hull, __isl_take isl_vec *sample,
369 if (!sample || dim < 0)
377 adjacent_point(sample, i, up);
378 contains = isl_basic_set_contains(hull, sample);
382 adjacent_point(sample, i, !up);
385 contains = isl_basic_set_contains(bset, sample);
390 isl_vec_copy(sample));
393 adjacent_point(sample, i, !up);
399 isl_vec_free(sample);
403 isl_vec_free(sample);
436 struct isl_vec *sample;
439 sample = outside_point(tab, hull->eq[j], 1);
440 if (!sample)
442 if (sample->size > 0)
444 isl_vec_free(sample);
445 sample = outside_point(tab, hull->eq[j], 0);
446 if (!sample)
448 if (sample->size > 0)
450 isl_vec_free(sample);
458 isl_tab_add_sample(tab, isl_vec_copy(sample)) < 0)
461 hull = add_adjacent_points(hull, isl_vec_copy(sample),
463 point = isl_basic_set_from_vec(sample);
476 * from "sample" and any of its adjacent points that also belong to "bset".
479 __isl_take isl_vec *sample)
483 hull = isl_basic_set_from_vec(isl_vec_copy(sample));
484 hull = add_adjacent_points(hull, sample, bset);
501 struct isl_vec *sample = NULL;
513 if (bset->sample && bset->sample->size == 1 + dim) {
514 int contains = isl_basic_set_contains(bset, bset->sample);
520 sample = isl_vec_copy(bset->sample);
522 isl_vec_free(bset->sample);
523 bset->sample = NULL;
532 isl_vec_free(sample);
536 if (!sample) {
539 sample = isl_tab_sample(tab);
542 isl_vec_free(tab->bmap->sample);
543 tab->bmap->sample = isl_vec_copy(sample);
546 if (!sample)
548 if (sample->size == 0) {
550 isl_vec_free(sample);
554 hull = initialize_hull(bset, sample);
562 isl_vec_free(sample);
604 bset->sample = vec;
628 struct isl_vec *sample;
648 sample = isl_vec_alloc(tab->mat->ctx, 1 + tab->n_var);
649 if (!sample)
652 isl_seq_cpy(sample->el, tab->samples->row[tab->n_outside], sample->size);
654 isl_vec_free(tab->bmap->sample);
655 tab->bmap->sample = isl_vec_copy(sample);
658 hull = isl_basic_set_from_vec(isl_vec_copy(sample));
660 hull = initial_hull(tab, isl_vec_copy(sample));
663 isl_seq_cpy(sample->el, tab->samples->row[j], sample->size);
665 isl_basic_set_from_vec(isl_vec_copy(sample)));
668 isl_vec_free(sample);
760 if (bset && bset->sample && bset->sample->size == 1 + total)
761 bset->sample = isl_mat_vec_product(isl_mat_copy(Q), bset->sample);
769 struct isl_vec *sample = isl_vec_copy(hull->sample);
771 if (sample && sample->size > 0)
772 sample = isl_mat_vec_product(U, sample);
777 isl_vec_free(hull->sample);
778 hull->sample = sample;
780 isl_vec_free(sample);
878 struct isl_vec *sample = isl_vec_copy(hull->sample);
879 if (sample && sample->size > 0)
880 sample = isl_mat_vec_product(T1, sample);
885 isl_vec_free(hull->sample);
886 hull->sample = sample;
888 isl_vec_free(sample);
938 isl_vec_free(bmap->sample);
939 bmap->sample = isl_vec_copy(hull->sample);