Karim Belabas on Thu, 12 Jan 2023 13:14:40 +0100


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: probable bug of "ispower" function in GP: FALSE, apologies!


* Vincent Lefevre [2023-01-12 12:40]:
> On 2023-01-12 12:31:09 +0100, luis.gallardo@math.cnrs.fr wrote:
> > I misunderstood the definition of "ispower"!
> > 
> > I wanted a function that identify directly if some integer is a power of 2
> 
> I suppose that you can use something like
> 
>   ispower(64,,&n)
> 
> and check that n is 2. But I suppose that for large numbers, this may
> be inefficient because ispower() will not just check for powers of 2.

Use hammingweight(N) == 1. 

Or v = valuation(N,2); N >> v == 1 if you need the exact power. (Will be
a little slower.)

Cheers,

    K.B.
--
Pr Karim Belabas, U. Bordeaux, Vice-président en charge du Numérique
Institut de Mathématiques de Bordeaux UMR 5251 - (+33) 05 40 00 29 77
http://www.math.u-bordeaux.fr/~kbelabas/
`