From: Sven Verdoolaege Date: Thu, 23 Jul 2009 09:46:25 +0000 (+0200) Subject: add isl_seq_last_non_zero X-Git-Tag: isl-0.01~125 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=42a2c2b0de3e904ca7e68f7d40040a8602dfa958;p=platform%2Fupstream%2Fisl.git add isl_seq_last_non_zero --- diff --git a/include/isl_seq.h b/include/isl_seq.h index 1d71b7b..d4ca039 100644 --- a/include/isl_seq.h +++ b/include/isl_seq.h @@ -26,6 +26,7 @@ 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); +int isl_seq_last_non_zero(isl_int *p, unsigned len); int isl_seq_abs_min_non_zero(isl_int *p, unsigned len); int isl_seq_eq(isl_int *p1, isl_int *p2, unsigned len); int isl_seq_is_neg(isl_int *p1, isl_int *p2, unsigned len); diff --git a/isl_seq.c b/isl_seq.c index 532b8e6..73af52d 100644 --- a/isl_seq.c +++ b/isl_seq.c @@ -160,6 +160,16 @@ int isl_seq_first_non_zero(isl_int *p, unsigned len) return -1; } +int isl_seq_last_non_zero(isl_int *p, unsigned len) +{ + int i; + + for (i = len - 1; i >= 0; --i) + if (!isl_int_is_zero(p[i])) + return i; + return -1; +} + int isl_seq_abs_min_non_zero(isl_int *p, unsigned len) { int i, min = isl_seq_first_non_zero(p, len);