Re: A missing (?) function: exponentfp(x)

Bill Allombert <[email protected]> Sat, 14 Sep 2024 11:34:00 +0200
Newsgroups gmane.comp.mathematics.pari.devel
Message-ID <ZuVYiLiVUwtZQKGd@seventeen>
On Sat, Sep 14, 2024 at 02:09:09AM -0700, Ilya Zakharevich wrote:
> The function exponent(x) gives a very coarse value of log2(x).  The
> function log(x)/log(2) gives a very fine value of log2(x) (but is
> slow, especially if x has high precision).  But sometimes I prefer to
> know log2(x) with an intermediate precision; in fact, any sufficiently
> smooth monotonic function which coincides with log2 on powers of 2
> would be enough!
> 
> In particular, exponent(x) + mantissa12(x) - 1 would be OK.  (Here
> mantissa12() is the (top word of) mantissa-scaled-to-[1,2].)  It
> should be very cheap to calculate.  It may be beneficial to have two
> flavors, returning a double, or a 1-word PARI float.
> 
> Is there something like this?

Why not do
? x=Pi;log(bitprecision(x,64))/log(2)
%1 = 1.6514961294723187981

(In C you can do log2(rtodbl(x)))

Cheers,
Bill.