OVERFLOW_EXPONENT=if(sizebyte(0)==16, 2^50, 2^20);
default(realprecision,38);
default(parisize,20*10^6);
exp(quadgen(5))
exp(Mod(x,x^2+1))
iferr(exp(""),E,E)
N=2^64;
O(2^0)^N
iferr(O(2^0)^-N,E,E)
0^N
Pol(1)^N
(8+O(x^2))^(1/3)
(8+O(x^2))^(1/2)
sqrt(Mod(1,y)*(1+x+O(x^2)))
sqrt(4+x+O(x^2))
iferr(O(x)^0.5,E,E)
O(1)^0.5
(1+x+O(x^2))^0.5
iferr(O(x)^((2^65)/3),E,E)
iferr(""^0,E,E)
iferr(0^Mod(1,3),E,E)
N=2^16; y=x^N;
y^3
iferr(y^OVERFLOW_EXPONENT,E,E)
iferr(0.^(2.^64),E,E)
agm(1,1)
agm(-1,1)
agm(1+x+O(x^10),1)
agm(1,[1,2])
log(4+O(3^4))

obj=[Mod(1,3), O(3^5), 3 + O(3^5),I];
test(f,p)=print(iferr(f(p),E,E));
[test(f,p) | f<-[exp,log,cos,sin,tan,cotan];p<-obj];
tan(1+I)
cotan(2)
asin(1+O(x^3))
asin(-1+O(x^3))
asinh(I+O(x^3))
asinh(-I+O(x^3))
acosh(1+O(x^3))
acosh(1+x^2+O(x^3))
acosh(2+x+O(x^3))
acos(1+O(x^3))
sinh(I)
w=Pi/4;
test(z)= my(a=expm1(z),b=exp(z)-1); printf("%.1e\n", abs(a-b)/abs(a));
for (i=0,7, z=1e-20+i*w; test(z))
for (i=0,7, z=1e-20+i*w+I; test(z))
erfc(1/2+I)
erfc(-1/2+I)
expm1(3+O(3^2))
expm1(x)
expm1(O(x))
expm1(1e-20+x+O(x^2))
expm1(3/4)
expm1(1)
forstep(x=1, 1+2*Pi, Pi/2, if(abs(expm1(I*x)-exp(I*x)+1) > 1e-38,print(x)))

log1p(x + O(x^5))
log1p(1e-10 + x + O(x^5))
log1p(O(x))
log1p(1/10^10)
log1p(1e-10)
log1p(1e-20)
log1p(1e-10*(1+I))
log1p(1e-20*(1+I))
log1p(2+O(5^3))

a=-1633048355459347662258066616498.+ 107206003159399666971219664801296.*I;
acosh(a)
asinh(a)

localprec(1000); abs(sinh(1e-500)-1e-500) < 2e-1500

sinc(0)
sinc(1/2)
sinc(10*I)
sinc(1+I)
sinc(O(3^2))
sinc(3+O(3^4))
sinc(2+O(3^2))
sinc(x)
sinc(1/x)
sinc(0.*I)
sinc(O(3^4)*I)
sinc((1+O(3^3)) * x)
sinc(Pi * x)

localprec(2003); log(exp(1.5)) - 1.5

localbitprec(320); obj=[1.2, 2.1*I, 1+1.1*I];
{
  fun=[exp,expm1,log,arg,
       cos,sin,tan,cotan,sinc,
       cosh,sinh,tanh,cotanh,
       acos,asin,atan,
       acosh,asinh,atanh,
       sqrt,x->sqrtn(x,3),
       gamma,lngamma,psi,zeta];
  for (i=1, #fun,
    my (f = fun[i]);
    print1(f,": " ); print([bitprecision(f(p)) | p<-obj]));
}
