* 91893 Orsay, France
*/
+#include <isl_map_private.h>
#include <isl_morph.h>
#include <isl/seq.h>
-#include <isl_map_private.h>
#include <isl_mat_private.h>
#include <isl_dim_private.h>
#include <isl_equalities.h>
res = add_strides(res, morph);
+ if (isl_basic_set_is_rational(bset))
+ res = isl_basic_set_set_rational(res);
+
res = isl_basic_set_simplify(res);
res = isl_basic_set_finalize(res);
return morph;
}
+
+__isl_give isl_vec *isl_morph_vec(__isl_take isl_morph *morph,
+ __isl_take isl_vec *vec)
+{
+ if (!morph)
+ goto error;
+
+ vec = isl_mat_vec_product(isl_mat_copy(morph->map), vec);
+
+ isl_morph_free(morph);
+ return vec;
+error:
+ isl_morph_free(morph);
+ isl_vec_free(vec);
+ return NULL;
+}