Testing latest pari + WASM + node.js... and it works?! Wow.
License: GPL3
ubuntu2004
Function: bitprecision
Section: conversions
C-Name: bitprecision00
Prototype: GDG
Help: bitprecision(x,{n}): if n is present and positive, return x at precision
n bits. If n is omitted, return real precision of object x in bits.
Doc: the function behaves differently according to whether $n$ is
present or not. If $n$ is missing, the function returns
the (floating point) precision in bits of the PARI object $x$.
If $x$ is an exact object, the function returns \kbd{+oo}.
\bprog
? bitprecision(exp(1e-100))
%1 = 512 \\ 512 bits
? bitprecision( [ exp(1e-100), 0.5 ] )
%2 = 128 \\ minimal accuracy among components
? bitprecision(2 + x)
%3 = +oo \\ exact object
@eprog\noindent Use \kbd{getlocalbitprec()} to retrieve the
working bit precision (as modified by possible \kbd{localbitprec}
statements).
If $n$ is present and positive, the function creates a new object equal to $x$
with the new bit-precision roughly $n$. In fact, the smallest multiple of 64
(resp.~32 on a 32-bit machine) larger than or equal to $n$.
For $x$ a vector or a matrix, the operation is
done componentwise; for series and polynomials, the operation is done
coefficientwise. For real $x$, $n$ is the number of desired significant
\emph{bits}. If $n$ is smaller than the precision of $x$, $x$ is truncated,
otherwise $x$ is extended with zeros. For exact or non-floating-point types,
no change.
\bprog
? bitprecision(Pi, 10) \\ actually 64 bits ~ 19 decimal digits
%1 = 3.141592653589793239
? bitprecision(1, 10)
%2 = 1
? bitprecision(1 + O(x), 10)
%3 = 1 + O(x)
? bitprecision(2 + O(3^5), 10)
%4 = 2 + O(3^5)
@eprog\noindent