Mercurial > hg > CbC > CbC_gcc
diff gcc/poly-int.h @ 145:1830386684a0
gcc-9.2.0
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 11:34:05 +0900 |
parents | 84e7813d76e9 |
children |
line wrap: on
line diff
--- a/gcc/poly-int.h Thu Oct 25 07:37:49 2018 +0900 +++ b/gcc/poly-int.h Thu Feb 13 11:34:05 2020 +0900 @@ -1,5 +1,5 @@ /* Polynomial integer classes. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2020 Free Software Foundation, Inc. This file is part of GCC. @@ -29,7 +29,7 @@ #ifndef HAVE_POLY_INT_H #define HAVE_POLY_INT_H -template<unsigned int N, typename T> class poly_int_pod; +template<unsigned int N, typename T> struct poly_int_pod; template<unsigned int N, typename T> class poly_int; /* poly_coeff_traiits<T> describes the properties of a poly_int @@ -335,7 +335,7 @@ /* A base POD class for polynomial integers. The polynomial has N coefficients of type C. */ template<unsigned int N, typename C> -class poly_int_pod +struct poly_int_pod { public: template<typename Ca> @@ -1528,6 +1528,29 @@ return a.coeffs[0]; } +/* Return the constant lower bound of A, given that it is no less than B. */ + +template<unsigned int N, typename Ca, typename Cb> +inline POLY_CONST_COEFF (Ca, Cb) +constant_lower_bound_with_limit (const poly_int_pod<N, Ca> &a, const Cb &b) +{ + if (known_ge (a, b)) + return a.coeffs[0]; + return b; +} + +/* Return the constant upper bound of A, given that it is no greater + than B. */ + +template<unsigned int N, typename Ca, typename Cb> +inline POLY_CONST_COEFF (Ca, Cb) +constant_upper_bound_with_limit (const poly_int_pod<N, Ca> &a, const Cb &b) +{ + if (known_le (a, b)) + return a.coeffs[0]; + return b; +} + /* Return a value that is known to be no greater than A and B. This will be the greatest lower bound for some indeterminate values but not necessarily for all. */