luis . gallardo on Thu, 12 Jan 2023 15:23:40 +0100


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

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


nice, Karim!


luis
***


Karim Belabas <Karim.Belabas@math.u-bordeaux.fr> a écrit :

* 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/
`