add isl_space_set_from_params
[platform/upstream/isl.git] / doc / user.pod
index ec74586..8fc61bc 100644 (file)
@@ -142,6 +142,13 @@ the nested call
 The function C<isl_constraint_div> has also been renamed
 to C<isl_constraint_get_div>.
 
+=item * The C<nparam> argument has been removed from
+C<isl_map_read_from_str> and similar functions.
+When reading input in the original PolyLib format,
+the result will have no parameters.
+If parameters are expected, the caller may want to perform
+dimension manipulation on the result.
+
 =back
 
 =head1 Installation
@@ -685,6 +692,8 @@ using the following functions.
        __isl_give isl_space *isl_space_from_range(__isl_take isl_space *space);
        __isl_give isl_space *isl_space_params(
                __isl_take isl_space *space);
+       __isl_give isl_space *isl_space_set_from_params(
+               __isl_take isl_space *space);
        __isl_give isl_space *isl_space_reverse(__isl_take isl_space *space);
        __isl_give isl_space *isl_space_join(__isl_take isl_space *left,
                __isl_take isl_space *right);
@@ -834,23 +843,23 @@ dimensions is zero.
 
        #include <isl/set.h>
        __isl_give isl_basic_set *isl_basic_set_read_from_file(
-               isl_ctx *ctx, FILE *input, int nparam);
+               isl_ctx *ctx, FILE *input);
        __isl_give isl_basic_set *isl_basic_set_read_from_str(
-               isl_ctx *ctx, const char *str, int nparam);
+               isl_ctx *ctx, const char *str);
        __isl_give isl_set *isl_set_read_from_file(isl_ctx *ctx,
-               FILE *input, int nparam);
+               FILE *input);
        __isl_give isl_set *isl_set_read_from_str(isl_ctx *ctx,
-               const char *str, int nparam);
+               const char *str);
 
        #include <isl/map.h>
        __isl_give isl_basic_map *isl_basic_map_read_from_file(
-               isl_ctx *ctx, FILE *input, int nparam);
+               isl_ctx *ctx, FILE *input);
        __isl_give isl_basic_map *isl_basic_map_read_from_str(
-               isl_ctx *ctx, const char *str, int nparam);
+               isl_ctx *ctx, const char *str);
        __isl_give isl_map *isl_map_read_from_file(
-               isl_ctx *ctx, FILE *input, int nparam);
+               isl_ctx *ctx, FILE *input);
        __isl_give isl_map *isl_map_read_from_str(isl_ctx *ctx,
-               const char *str, int nparam);
+               const char *str);
 
        #include <isl/union_set.h>
        __isl_give isl_union_set *isl_union_set_read_from_file(
@@ -866,13 +875,6 @@ dimensions is zero.
 
 The input format is autodetected and may be either the C<PolyLib> format
 or the C<isl> format.
-C<nparam> specifies how many of the final columns in
-the C<PolyLib> format correspond to parameters.
-If input is given in the C<isl> format, then the number
-of parameters needs to be equal to C<nparam>.
-If C<nparam> is negative, then any number of parameters
-is accepted in the C<isl> format and zero parameters
-are assumed in the C<PolyLib> format.
 
 =head3 Output
 
@@ -1159,7 +1161,7 @@ Or, alternatively,
 
        isl_basic_set *bset;
        bset = isl_basic_set_read_from_str(ctx,
-               "{[i] : exists (a : i = 2a and i >= 10 and i <= 42)}", -1);
+               "{[i] : exists (a : i = 2a and i >= 10 and i <= 42)}");
 
 A basic set or relation can also be constructed from two matrices
 describing the equalities and the inequalities.
@@ -1677,6 +1679,7 @@ i.e., whether both domain and range are nested relations.
        __isl_give isl_basic_set *isl_basic_map_range(
                __isl_take isl_basic_map *bmap);
        __isl_give isl_set *isl_set_params(__isl_take isl_set *set);
+       __isl_give isl_set *isl_map_params(__isl_take isl_map *map);
        __isl_give isl_set *isl_map_domain(
                __isl_take isl_map *bmap);
        __isl_give isl_set *isl_map_range(
@@ -3138,6 +3141,13 @@ If C<qp> is a constant and if C<n> and C<d> are not C<NULL>
 then the numerator and denominator of the constant
 are returned in C<*n> and C<*d>, respectively.
 
+To check whether two union piecewise quasipolynomials are
+obviously equal, use
+
+       int isl_union_pw_qpolynomial_plain_is_equal(
+               __isl_keep isl_union_pw_qpolynomial *upwqp1,
+               __isl_keep isl_union_pw_qpolynomial *upwqp2);
+
 =head3 Operations on (Piecewise) Quasipolynomials
 
        __isl_give isl_qpolynomial *isl_qpolynomial_scale(
@@ -3348,6 +3358,15 @@ To iterate over all quasipolynomials in a reduction, use
                int (*fn)(__isl_take isl_qpolynomial *qp,
                          void *user), void *user);
 
+=head3 Properties of Piecewise Quasipolynomial Reductions
+
+To check whether two union piecewise quasipolynomial reductions are
+obviously equal, use
+
+       int isl_union_pw_qpolynomial_fold_plain_is_equal(
+               __isl_keep isl_union_pw_qpolynomial_fold *upwf1,
+               __isl_keep isl_union_pw_qpolynomial_fold *upwf2);
+
 =head3 Operations on Piecewise Quasipolynomial Reductions
 
        __isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_scale(