38 namespace Gecode {
namespace Int {
namespace Arithmetic {
40 template<
class IntType>
46 template<
class IntType>
75 return static_cast<int>(
p);
81 assert((r >= 0) && (n > 0));
82 unsigned long long int y =
static_cast<unsigned long long int>(
r);
83 unsigned long long int p =
static_cast<unsigned long long int>(1);
109 int m = (l +
u) >> 1;
110 if (
powgr(m,n,x)) u=m;
else l=m;
112 assert((
pow(static_cast<long long int>(l),n) <= x) &&
113 (x <
pow(static_cast<long long int>(l+1),n)));
120 assert((r >= 0) && (n > 0));
121 unsigned long long int y =
static_cast<unsigned long long int>(
r);
122 unsigned long long int p =
static_cast<unsigned long long int>(1);
149 int m = (l +
u) >> 1;
150 if (
powle(m,n,x)) l=m;
else u=m;
152 assert((
pow(static_cast<long long int>(u-1),n) < x) &&
153 (x <=
pow(static_cast<long long int>(u),n)));