add public API for matrices
[platform/upstream/isl.git] / isl_morph.c
index 80ec05a..8bc4db8 100644 (file)
@@ -11,6 +11,7 @@
 #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>
 
@@ -23,7 +24,7 @@ __isl_give isl_morph *isl_morph_alloc(
        if (!dom || !ran || !map || !inv)
                goto error;
 
-       morph = isl_alloc_type(in_dim->ctx, struct isl_morph);
+       morph = isl_alloc_type(dom->ctx, struct isl_morph);
        if (!morph)
                goto error;
 
@@ -95,6 +96,22 @@ __isl_give isl_dim *isl_morph_get_ran_dim(__isl_keep isl_morph *morph)
        return isl_dim_copy(morph->ran->dim);
 }
 
+unsigned isl_morph_dom_dim(__isl_keep isl_morph *morph, enum isl_dim_type type)
+{
+       if (!morph)
+               return 0;
+
+       return isl_basic_set_dim(morph->dom, type);
+}
+
+unsigned isl_morph_ran_dim(__isl_keep isl_morph *morph, enum isl_dim_type type)
+{
+       if (!morph)
+               return 0;
+
+       return isl_basic_set_dim(morph->ran, type);
+}
+
 __isl_give isl_morph *isl_morph_remove_dom_dims(__isl_take isl_morph *morph,
        enum isl_dim_type type, unsigned first, unsigned n)
 {