File:AuZexMapT.jpg

Complex map of function AuZex, inverse function of SuZex and Abel function of function zex.

$u\!+\!v=\mathrm{AuZex}(x\!+\!\mathrm i y)$

See the AuZex approximation for the details.

C++ generator of curves
// Files Tania.cin, SuZex.cin, LambertWoCoe.inc, LambertWeCoe.cin // should be loaded in the working directory in order to compile the core below.

using namespace std; typedef complex z_type;
 * 1) include 
 * 2) include 
 * 3) include 
 * 4) define DB double
 * 5) define DO(x,y) for(x=0;x0;n--){ s+=LambertWoCoe[n]; s*=d;} return z*(1.+s); }
 * 1) include "LambertWoCoe.inc"

z_type LambertWe(z_type z){ int n,m=100; z_type t=1./M_E+z; t*=2*M_E; t=sqrt(t); z_type s=LambertWeCoe[m]*t; for(n=m-1; n>0; n--) { s+=LambertWeCoe[n]; s*=t;} return -1.+s;}
 * 1) include "LambertWeCoe.cin"

z_type LambertW(z_type z){ if( abs(z)<.2 ) return LambertWo(z); if( abs(1./M_E+z)<.2 ) return LambertWe(z); return Tania(log(z)-1.);} // Except the negative part of the real axis, Tania does the LambertW well.

DB AuZexAsyCo[66]={ //    1.1259817765745026,        1.1259817765744977, -0.16666666666666667,0.0625,-0.035185185185185185,   0.020833333333333333,-0.0097619047619047619,   0.00035686728395061728,0.0057788485764676241,    -0.0054935515873015873,-0.0025850528358244408,   0.012198640046296296,-0.0064941110501851844,    -0.026451479667987191,0.047851552440450232,   0.053758729874794383,-0.27073626193208126,    -0.0065521186641040204,1.6278812626136699,   -1.6076876900940989,-10.838187174665133,    24.785092910583443,78.1860907900493,   -340.82033939567854,-562.09669036948494,    4908.2972195975399,2830.3348202280227,   -77032.682625139301,31753.861334668919,    1.3308075281671887e6,-1.9538825394585991e6, -2.5276072666444939e7,6.8487621133842322e7,   5.2387590408716527e8,-2.2452803031477711e9, -1.1695088667110365e10,7.5450114071773863e10,   2.7518770516521089e11,-2.679843770347832e12, -6.5513897892809159e12,1.0183199942874624e14,   1.4245100909222102e14,-4.1590749536758109e15, -1.7035860994968719e15,1.8277639374581802e17,   -1.0679787375232343e17,-8.6360007004109277e18, 1.4065535508735497e19,4.3787928905903592e20,   -1.2109904910255305e21,-2.3763215966256672e22, 9.6017875634223775e22,1.3758361324208134e24,   -7.5814699303356225e24,-8.4659910118430712e25, 6.1398187270988087e26,5.5112074423601013e27,   -5.1693736994996277e28,-3.773953811181416e29, 4.5556026027743353e30,2.6980978199281418e31,   -4.2167875664888744e32,-1.9922345654966198e33, 4.1064414540582216e34,1.4932212480440397e35,   -4.2098201366546206e36 }; z_type AuZexAsy(z_type z){ int m=15,n; z_type s; s=AuZexAsyCo[m]*z;   for(n=m-1;n>0;n--){s+=AuZexAsyCo[n]; s*=z;} return s + AuZexAsyCo[0] + .5*log(z)-1./z;}

double AuZexCo[46]={0, 1.4011764331478447,-1.2313176379841106,  1.1612567820116564,-1.123126930577658,   1.0992876544297898,-1.0830479804216504,   1.0713113178859344,-1.0624516150969114,   1.0555359459048546,-1.049992436340172,    1.0454519353364795,-1.0416660012642422,   1.0384615628127265,-1.035714498198056,    1.0333335508961627,-1.0312501692201073,   1.0294118808316126,-1.0277778512023086,   1.0263158327950879,-1.0250000237496548,   1.0238095356162695,-1.0227272776768976,   1.0217391317101858,-1.0208333328204302,   1.019999998732505,-1.019230767751615,     1.0185185170386828,-1.01785714143099,   1.0172413778515972,-1.0166666648687321,   1.016131566418359,-1.015697093269014,   1.0152, -1.148, 1.141, -1.14, 1.13, -1.12, 1.11,-1.10, 1.08, -1.06, 1.04, -1.02, 1.00 }; z_type AuZex01(z_type z){ int n, m=39; z_type s=AuZexCo[m]; for(n=m-1;n>0;n--) {s+= AuZexCo[n]; s*=z; } return s;  } z_type auzex(z_type z){ int n;  for(n=0;n<80;n++){ if(abs(z-1.)<.4) return AuZex01(z-1.)+(0.+n); if(abs(z)<.1) return AuZexAsy(z)+(0.+n);; z=LambertW(z); } printf("z= %10.5f %10.5f n=%2d what to do?\n",Re(z), Im(z), n); getchar; return 0.;}

main{ int j,k,m,n; DB x,y, p,q, t; z_type z,c,d, cu,cd; //DB x1=-1.1259817765745026; DO(n,8){ y=Re(suzex(x1)); x=y-1.; x1+=-1.2*x; printf("%18.16f %18.16f\n", x1,y);} getchar; int M=1001,M1=M+1; int N=1001,N1=N+1; DB X[M1],Y[N1]; DB *g, *f, *w; // w is working array. g=(DB *)malloc((size_t)((M1*N1)*sizeof(DB))); f=(DB *)malloc((size_t)((M1*N1)*sizeof(DB))); w=(DB *)malloc((size_t)((M1*N1)*sizeof(DB))); char v[M1*N1]; // v is working array FILE *o;o=fopen("AuZexMap2.eps","w"); ado(o,2002,2002); fprintf(o,"1001 1001 translate\n 100 100 scale\n"); fprintf(o,"1 setlinejoin 2 setlinecap\n"); DO(m,M1) X[m]=-10+.02*(m-.5); DO(n,N1) Y[n]=-10+.02*(n-.5); //for(n=0;n.019) // c=AuZex01(z-1.); // c=AuZexAsy(LambertW(z))+1.; c=auzex(z); //c=suzex(c); // p=abs(c-z)/(abs(c)+abs(z)); p=-log(p)/log(10.); if(p>0 && p<17) g[m*N1+n]=p; p=Re(c); q=Im(c); if(p>-19 && p<19 && ( x<2. || fabs(q)>1.e-12 && fabs(p)>1.e-12) ){ g[m*N1+n]=p;f[m*N1+n]=q;} }} fprintf(o,"1 setlinejoin 1 setlinecap\n"); p=1.2;q=.4; /* p=9;q=.16; conto(o,g,w,v,X,Y,M,N,(15.3 ),-p,p); fprintf(o,".01 W .4 1 0 RGB S\n"); conto(o,g,w,v,X,Y,M,N,(15. ),-p,p); fprintf(o,".02 W 1 0 1 RGB S\n"); conto(o,g,w,v,X,Y,M,N,(14.7 ),-p,p); fprintf(o,".01 W 1 .5 0 RGB S\n"); conto(o,g,w,v,X,Y,M,N,(14. ),-p,p); fprintf(o,".01 W .2 .2 0 RGB S\n"); conto(o,g,w,v,X,Y,M,N,(13. ),-p,p); fprintf(o,".01 W 0 0 0 RGB S\n"); conto(o,g,w,v,X,Y,M,N,(12. ),-p,p); fprintf(o,".03 W 0 0 1 RGB S\n"); conto(o,g,w,v,X,Y,M,N,(11. ),-p,p); fprintf(o,".01 W 0 0 0 RGB S\n"); conto(o,g,w,v,X,Y,M,N,(10. ),-p,p); fprintf(o,".01 W 0 0 0 RGB S\n"); conto(o,g,w,v,X,Y,M,N, (9. ),-p,p); fprintf(o,".03 W 0 1 1 RGB S\n"); conto(o,g,w,v,X,Y,M,N, (8. ),-p,p); fprintf(o,".01 W 0 0 0 RGB S\n"); conto(o,g,w,v,X,Y,M,N, (7. ),-p,p); fprintf(o,".01 W 0 0 0 RGB S\n"); conto(o,g,w,v,X,Y,M,N, (6. ),-p,p); fprintf(o,".04 W 0 .5 0 RGB S\n"); conto(o,g,w,v,X,Y,M,N, (5. ),-p,p); fprintf(o,".01 W 0 0 0 RGB S\n"); conto(o,g,w,v,X,Y,M,N, (4. ),-p,p); fprintf(o,".01 W 0 0 0 RGB S\n"); conto(o,g,w,v,X,Y,M,N, (3. ),-p,p); fprintf(o,".02 W 1 0 0 RGB S\n"); conto(o,g,w,v,X,Y,M,N, (2. ),-p,p); fprintf(o,".01 W 0 0 0 RGB S\n"); conto(o,g,w,v,X,Y,M,N, (1. ),-p,p); fprintf(o,".02 W .5 0 0 RGB S\n"); */ for(m=-8;m<8;m++)for(n=2;n<10;n+=2)conto(o,f,w,v,X,Y,M,N,(m+.1*n),-q,q);fprintf(o,".007 W 0 .6 0 RGB S\n"); for(m=0;m<8;m++) for(n=2;n<10;n+=2)conto(o,g,w,v,X,Y,M,N,-(m+.1*n),-q,q);fprintf(o,".007 W .9 0 0 RGB S\n"); for(m=0;m<8;m++) for(n=2;n<10;n+=2)conto(o,g,w,v,X,Y,M,N, (m+.1*n),-q,q);fprintf(o,".007 W 0 0 .9 RGB S\n"); for(m= 1;m<17;m++) conto(o,f,w,v,X,Y,M,N, (0.-m),-p,p);fprintf(o,".02 W .8 0 0 RGB S\n"); for(m= 1;m<17;m++) conto(o,f,w,v,X,Y,M,N, (0.+m),-p,p);fprintf(o,".02 W 0 0 .8 RGB S\n"); conto(o,f,w,v,X,Y,M,N, (0. ),-2*p,2*p); fprintf(o,".02 W .5 0 .5 RGB S\n"); for(m=-16;m<17;m++)conto(o,g,w,v,X,Y,M,N,(0.+m),-p,p);fprintf(o,".02 W 0 0 0 RGB S\n"); fprintf(o,"0 setlinejoin 0 setlinecap\n"); M(-10,0)L(0,0) fprintf(o,"1 1 1 RGB .02 W S\n"); //#include "plofu.cin" fprintf(o,"showpage\n"); fprintf(o,"%c%cTrailer\n",'%','%'); fclose(o); free(f); free(g); free(w); system("epstopdf AuZexMap2.eps"); system(   "open AuZexMap2.pdf"); //for macintosh getchar; system("killall Preview"); // For macintosh }

Latex generator of labels
% % \documentclass[12pt]{article} % \paperwidth 2096px % \paperheight 2076px % \textwidth 2394px % \textheight 2300px % \topmargin -101px % \oddsidemargin -78px % \usepackage{graphics} % \usepackage{rotating} % \newcommand \sx {\scalebox} % \newcommand \rot {\begin{rotate}} % \newcommand \ero {\end{rotate}} % \newcommand \ing {\includegraphics} % \newcommand \rmi {\mathrm{i}} % \parindent 0pt \pagestyle{empty} \begin{document} % \newcommand \zoomax { % \put(40,2048){\sx{8}{$y$}} % \put(40,1880){\sx{7}{$8$}} % \put(40,1680){\sx{7}{$6$}} % \put(40,1480){\sx{7}{$4$}} % \put(40,1280){\sx{7}{$2$}} % \put(40,1080){\sx{7}{$0$}} % \put(-12,880){\sx{7}{$-2$}} % \put(-12,680){\sx{7}{$-4$}} % \put(-12,480){\sx{7}{$-6$}} % \put(-12,280){\sx{7}{$-8$}} % \put(002, 28){\sx{7}{$-\!10$}} % \put(220, 28){\sx{7}{$-8$}} % \put(420, 28){\sx{7}{$-6$}} % \put(620, 28){\sx{7}{$-4$}} % \put(820, 28){\sx{7}{$-2$}} % \put(1088, 28){\sx{7}{$0$}} % \put(1288, 28){\sx{7}{$2$}} % \put(1488, 28){\sx{7}{$4$}} % \put(1688, 28){\sx{7}{$6$}} % \put(1888, 28){\sx{7}{$8$}} % \put(2058, 28){\sx{7}{$x$}} % %\put(2166, 28){\sx{7}{$x$}} % } % \parindent 0pt % \sx{1}{\begin{picture}(2102,2102) % %\put(40,20){\ing{b271tMap3}} % %\put(40,20){\ing{ExpMap}} % \put(100,100){\ing{AuZexMap2}} % \zoomax % \put(258,1088){\sx{8}{\bf cut}} % % \put(500,1840){\sx{8}{\rot{0}$v\!=\!0.6$\ero}} % \put(500,0310){\sx{8}{\rot{0}$v\!=\!-0.6$\ero}} % \put(444,0510){\sx{8}{\rot{62}$u\!=\!2$\ero}} % % \put(1610,1312){\sx{8}{\rot{42}$v\!=\!0.2$\ero}} % \put(1770,1082){\sx{8}{$v\!=\!0$}} % \put(1650,0912){\sx{8}{\rot{80}$u\!=\!1.4$\ero}} % \put(1950,0802){\sx{8}{\rot{70}$u\!=\!1.6$\ero}} % \put(1650,0808){\sx{8}{\rot{-48}$v\!=\!-0.2$\ero}} % %

\end{picture}} % \end{document} %