summaryrefslogtreecommitdiff
path: root/isl_seq.c
diff options
context:
space:
mode:
authorSven Verdoolaege <skimo@kotnet.org>2009-02-11 19:22:36 +0100
committerSven Verdoolaege <skimo@kotnet.org>2009-02-15 23:47:03 +0100
commit8c66b5046a36b0dcff0a012064967b97ebc3b3e2 (patch)
tree355e84d6f98cd478fe1ea1e0d0456cb24627e391 /isl_seq.c
parente6deb2c609acf3386919101684738088361b36d7 (diff)
downloadisl-8c66b5046a36b0dcff0a012064967b97ebc3b3e2.tar.gz
isl-8c66b5046a36b0dcff0a012064967b97ebc3b3e2.tar.bz2
isl-8c66b5046a36b0dcff0a012064967b97ebc3b3e2.zip
fix serious error in isl_mat_parameter_compression
The old version would sometimes remove valid solutions. Since isl_mat_parameter_compression is used during simplification on practically any set containing existentially quantified variables involved in equalities, any such set could get corrupted.
Diffstat (limited to 'isl_seq.c')
-rw-r--r--isl_seq.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/isl_seq.c b/isl_seq.c
index 797a337e..62d8da52 100644
--- a/isl_seq.c
+++ b/isl_seq.c
@@ -171,6 +171,19 @@ void isl_seq_gcd(isl_int *p, unsigned len, isl_int *gcd)
}
}
+void isl_seq_lcm(isl_int *p, unsigned len, isl_int *lcm)
+{
+ int i;
+
+ if (len == 0) {
+ isl_int_set_si(*lcm, 1);
+ return;
+ }
+ isl_int_set(*lcm, p[0]);
+ for (i = 1; i < len; ++i)
+ isl_int_lcm(*lcm, *lcm, p[i]);
+}
+
void isl_seq_inner_product(isl_int *p1, isl_int *p2, unsigned len,
isl_int *prod)
{