From b3b386039791175a93c3c55c4a6b08f4b8d1f7a4 Mon Sep 17 00:00:00 2001 From: Sven Verdoolaege Date: Thu, 26 Feb 2009 12:35:55 +0100 Subject: [PATCH] add isl_seq_normalize --- include/isl_seq.h | 1 + isl_seq.c | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/include/isl_seq.h b/include/isl_seq.h index acfc192..459bc4b 100644 --- a/include/isl_seq.h +++ b/include/isl_seq.h @@ -19,6 +19,7 @@ void isl_seq_elim(isl_int *dst, isl_int *src, unsigned pos, unsigned len, isl_int *m); void isl_seq_gcd(isl_int *p, unsigned len, isl_int *gcd); void isl_seq_lcm(isl_int *p, unsigned len, isl_int *lcm); +void isl_seq_normalize(isl_int *p, unsigned len); void isl_seq_inner_product(isl_int *p1, isl_int *p2, unsigned len, isl_int *prod); int isl_seq_first_non_zero(isl_int *p, unsigned len); diff --git a/isl_seq.c b/isl_seq.c index 62d8da5..a67c0e9 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_normalize(isl_int *p, unsigned len) +{ + isl_int gcd; + + if (len == 0) + return; + isl_int_init(gcd); + isl_seq_gcd(p, len, &gcd); + if (!isl_int_is_zero(gcd)) + isl_seq_scale_down(p, p, gcd, len); + isl_int_clear(gcd); +} + void isl_seq_lcm(isl_int *p, unsigned len, isl_int *lcm) { int i; -- 2.7.4