File:TetsheldonmapT600.jpg

Complex map of Tetration to the Sheldon base $b= 1.52598338517 + 0.0178411853321\, \mathrm i$.

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

in the $x,y$ plane.

Description
$F=\mathrm{tet}_b$ is solution of the transfer equation

$f(z\!+\!1)=b^{F(z)}$

$F(0)=1$

with specific behavior at $\pm \mathrm i \infty$;

$\displaystyle \lim_{y\rightarrow +\infty} F(x+\mathrm i y)= L_1$

$\displaystyle \lim_{y\rightarrow -\infty} F(x+\mathrm i y)=L_2$

Constants $L_1$ and $L_2$ are fixed points of logarithm to base $b$; they are determined (and evaluated) through function filog:

$L_1= ~\mathrm{filog}(b)$ $\approx 2.0565398441043761 + 1.1445267140098765 \, \mathrm i$

$L_2=\mathrm{filog}(b^*)^*\!$ $\!\approx 2.2284359658711805 - 1.3507994961102865 \, \mathrm i$

C++ generator of values along the contour for the Cauchi integral
// FIle GLxw2048.inc should loaded or generated with code GLxw2048.cc. // In addition, files ado.cin and filog.cin should be loaded in the working directory in order to compile the code below.

using namespace std; typedef complex z_type; //#include  //#define z_type complex
 * 1) include 
 * 2) include 
 * 3) include 
 * 4) define DB double
 * 1) include
 * 1) define Re(x) (x).real
 * 2) define Im(x) (x).imag
 * 3) define I z_type(0.,1.)
 * 4) define DO(x,y) for(x=0;x<y;x++)


 * 1) include "ado.cin"
 * 2) include "filog.cin"


 * 1) define M(x,y) fprintf(o,"%5.3f %5.3f M\n",1.*(x),1.*(y));
 * 2) define L(x,y) fprintf(o,"%5.3f %5.3f L\n",1.*(x),1.*(y));
 * 3) define o(x,y) fprintf(o,"%5.3f %5.3f o\n",1.*(x),1.*(y));

int main{ int J,j,k,m,n; DB x,y, u, t; z_type z,c,d, cu,cd;
 * 1) include "GLxw2048.inc"

z_type b=z_type( 1.5259833851700000, 0.0178411853321000); z_type a=log(b); z_type Zo=Filog(a); z_type Zc=conj(Filog(conj(a)));

int K=NPO; DB A=32.; printf("K=%3d A=%3.1f\n",K,A); z_type E[2048],F[2048],G[2048],H[2048];

FILE *o;o=fopen("TetSheldonIma.eps","w");ado(o,2200,450); fprintf(o,"1100 201 translate\n 100 100 scale\n"); for(j=-10;j<11;j+=1){M(j,-2)L(j,2);} M(-10, 2)L(10 , 2); M(-10, 1)L(10 , 1); M(-10 ,-1)L(10 ,-1); M(-10 ,-2)L(10 ,-2); fprintf(o,".006 W S\n"); M(-10.1,0)L(10.1,0); fprintf(o,".02 W S\n"); fprintf(o,".01 W S\n 1 setlinejoin 1\n");

DO(n,K){y=GLx[n]*A; if(y<-2.4)     E[n]=F[n]=G[n]=Zc; else {if(y>2.4) E[n]=F[n]=G[n]=Zo; else { F[n]=c=1. ;//f3(z_type(0.,y)); E[n]=log(c)/a; G[n]=exp(a*c); }            }        }

DO(j,440){k=K/2+j-220; y=GLx[k]*A; u=Re(F[k]);if(j==0)M(y,u)else L(y,u)} fprintf(o,".08 W 1 .2 1 RGB S\n"); DO(j,440){k=K/2+j-220; y=GLx[k]*A; u=Im(F[k]);if(j==0)M(y,u)else L(y,u)} //DO(k,K-512){y=GLx[k]*A; u=Im(F[k]);if(k==0)M(y,u)else L(y,u)} fprintf(o,".08 W 1 .6 1 RGB S\n");

for(n=0;n<K;n+=2) { y=GLx[n]*A; z=z_type(0.,y); c=0.; //printf(" %3d",n); DO(k,K){t=A*GLx[k]; c+= GLw[k]*( G[k]/(z_type( 1.,t)-z) - E[k]/(z_type(-1.,t)-z) );} cu=.5-I/(2.*M_PI)*log( (z_type(1.,-A)+z)/(z_type(1., A)-z) ); cd=.5-I/(2.*M_PI)*log( (z_type(1.,-A)-z)/(z_type(1., A)+z) ); c=c*(A/(2.*M_PI)) +Zo*cu+Zc*cd; if(abs(n-K/2)<4)printf("%3d %6.3f %9.6f %9.6f  %9.6f %9.6f\n",n,y,Re(F[n]),Im(F[n]),Re(c),Im(c)); E[n]=log(c)/a; F[n]=c; G[n]=exp(c*a);} DO(j,440){k=K/2+j-220; y=GLx[k]*A; u=Re(F[k]);if(j==0)M(y,u)else L(y,u)} DO(j,440){k=K/2+j-220; y=GLx[k]*A; u=Im(F[k]);if(j==0)M(y,u)else L(y,u)} //DO(k,K){y=GLx[k]*A; u=Re(F[k]);if(k==0)M(y,u)else L(y,u)} fprintf(o,".02 W .7 0 0 RGB S\n"); //DO(k,K){y=GLx[k]*A; u=Im(F[k]);if(k==0)M(y,u)else L(y,u)} fprintf(o,".01 W 1 0 0 RGB S\n");

for(n=K-1;n>0;n-=2) { y=GLx[n]*A; z=z_type(0.,y); c=0.; //printf(" %3d",n); DO(k,K){t=A*GLx[k]; c+= GLw[k]*( G[k]/(z_type( 1.,t)-z) - E[k]/(z_type(-1.,t)-z) );} cu=.5-I/(2.*M_PI)*log( (z_type(1.,-A)+z)/(z_type(1., A)-z) ); cd=.5-I/(2.*M_PI)*log( (z_type(1.,-A)-z)/(z_type(1., A)+z) ); c=c*(A/(2.*M_PI)) +Zo*cu+Zc*cd; if(abs(n-K/2)<4)printf("%3d %6.3f %9.6f %9.6f  %9.6f %9.6f\n",n,y,Re(F[n]),Im(F[n]),Re(c),Im(c)); E[n]=log(c)/a; F[n]=c;  G[n]=exp(c*a); } DO(j,440){k=K/2+j-220; y=GLx[k]*A; u=Re(F[k]);if(j==0)M(y,u)else L(y,u)} DO(j,440){k=K/2+j-220; y=GLx[k]*A; u=Im(F[k]);if(j==0)M(y,u)else L(y,u)} //DO(k,K){y=GLx[k]*A; u=Re(F[k]);if(k==0)M(y,u)else L(y,u)} fprintf(o,".02 W 0 .6 0 RGB S\n"); //DO(k,K){y=GLx[k]*A; u=Im(F[k]);if(k==0)M(y,u)else L(y,u)} fprintf(o,".02 W 0 1 0 RGB S\n");

for(n=0;n<K;n+=2) { y=GLx[n]*A; z=z_type(0.,y); c=0.; //printf(" %3d",n); DO(k,K){t=A*GLx[k]; c+= GLw[k]*( G[k]/(z_type( 1.,t)-z) - E[k]/(z_type(-1.,t)-z) );} cu=.5-I/(2.*M_PI)*log( (z_type(1.,-A)+z)/(z_type(1., A)-z) ); cd=.5-I/(2.*M_PI)*log( (z_type(1.,-A)-z)/(z_type(1., A)+z) ); c=c*(A/(2.*M_PI)) +Zo*cu+Zc*cd; if(abs(n-K/2)<4)printf("%3d %6.3f %9.6f %9.6f  %9.6f %9.6f\n",n,y,Re(F[n]),Im(F[n]),Re(c),Im(c)); E[n]=log(c)/a; F[n]=c; G[n]=exp(c*a); } //DO(k,K){y=GLx[k]*A; u=Re(F[k]);if(k==0)M(y,u)else L(y,u)} fprintf(o,".01 W 0 0 .7 RGB S\n"); //DO(k,K){y=GLx[k]*A; u=Im(F[k]);if(k==0)M(y,u)else L(y,u)} DO(j,440){k=K/2+j-220; y=GLx[k]*A; u=Re(F[k]);if(j==0)M(y,u)else L(y,u)} DO(j,440){k=K/2+j-220; y=GLx[k]*A; u=Im(F[k]);if(j==0)M(y,u)else L(y,u)} fprintf(o,".01 W 0 0 1 RGB S\n");

for(n=K-1;n>0;n-=2) { y=GLx[n]*A; z=z_type(0.,y); c=0.; //printf(" %3d",n); DO(k,K){t=A*GLx[k]; c+= GLw[k]*( G[k]/(z_type( 1.,t)-z) - E[k]/(z_type(-1.,t)-z) );} cu=.5-I/(2.*M_PI)*log( (z_type(1.,-A)+z)/(z_type(1., A)-z) ); cd=.5-I/(2.*M_PI)*log( (z_type(1.,-A)-z)/(z_type(1., A)+z) ); c=c*(A/(2.*M_PI)) +Zo*cu+Zc*cd; if(abs(n-K/2)<4)printf("%3d %6.3f %9.6f %9.6f  %9.6f %9.6f\n",n,y,Re(F[n]),Im(F[n]),Re(c),Im(c)); E[n]=log(c)/a; F[n]=c; G[n]=exp(c*a);} //DO(k,K){y=GLx[k]*A; u=Re(F[k]);if(k==0)M(y,u)else L(y,u)} fprintf(o,".01 W 0 0 0 RGB S\n"); //DO(k,K){y=GLx[k]*A; u=Im(F[k]);if(k==0)M(y,u)else L(y,u)} fprintf(o,".01 W 0 0 0 RGB S\n");

DO(j,4) { for(n=0;n0;n-=2) { y=GLx[n]*A; z=z_type(0.,y); c=0.; //printf(" %3d",n); DO(k,K){t=A*GLx[k]; c+= GLw[k]*( G[k]/(z_type( 1.,t)-z) - E[k]/(z_type(-1.,t)-z) );} cu=.5-I/(2.*M_PI)*log( (z_type(1.,-A)+z)/(z_type(1., A)-z) ); cd=.5-I/(2.*M_PI)*log( (z_type(1.,-A)-z)/(z_type(1., A)+z) ); c=c*(A/(2.*M_PI)) +Zo*cu+Zc*cd; if(abs(n-K/2)<2)printf("%3d %6.3f %9.6f %9.6f  %9.6f %9.6f\n",n,y,Re(F[n]),Im(F[n]),Re(c),Im(c)); E[n]=log(c)/a; F[n]=c; G[n]=exp(c*a);} } DO(j,440){k=K/2+j-220; y=GLx[k]*A; u=Re(F[k]);if(j==0)M(y,u)else L(y,u)} DO(j,440){k=K/2+j-220; y=GLx[k]*A; u=Im(F[k]);if(j==0)M(y,u)else L(y,u)} //DO(k,K){y=GLx[k]*A; u=Re(F[k]);if(k==0)M(y,u)else L(y,u)} fprintf(o,".01 W 0 0 0 RGB S\n"); //DO(k,K){y=GLx[k]*A; u=Im(F[k]);if(k==0)M(y,u)else L(y,u)} fprintf(o,".01 W 0 0 0 RGB S\n");

fprintf(o,"showpage\n\%c%cTrailer",'%','%'); fclose(o); system("epstopdf TetSheldonIma.eps"); system(   "open TetSheldonIma.pdf");

DO(j,40) { for(n=0;n0;n-=2) { y=GLx[n]*A; z=z_type(0.,y); c=0.; //printf(" %3d",n); DO(k,K){t=A*GLx[k]; c+= GLw[k]*( G[k]/(z_type( 1.,t)-z) - E[k]/(z_type(-1.,t)-z) );} cu=.5-I/(2.*M_PI)*log( (z_type(1.,-A)+z)/(z_type(1., A)-z) ); cd=.5-I/(2.*M_PI)*log( (z_type(1.,-A)-z)/(z_type(1., A)+z) ); c=c*(A/(2.*M_PI)) +Zo*cu+Zc*cd; if(abs(n-K/2)<2)printf("%3d %6.3f %9.6f %9.6f  %9.6f %9.6f\n",n,y,Re(F[n]),Im(F[n]),Re(c),Im(c)); E[n]=log(c)/a; F[n]=c; G[n]=exp(c*a);} printf("%3d %19.16lf %19.16lf %19.16lf %19.16lf\n",j,Re(F[1023]),Im(F[1023]),Re(F[1024]),Im(F[1024]) ); }

o=fopen("TetSheldonIma.inc","w"); fprintf(o,"z_type F[%4d]={\n",K); DO(k,K-1) fprintf(o,"z_type(%19.16lf,%19.16lf),\n",Re(F[k]),Im(F[k])); fprintf(o,"z_type(%19.16lf,%19.16lf)};\n",Re(F[K-1]),Im(F[K-1])); fclose(o);

}

C++ generator of curves
//File TetSheldonIma.inc should be loaded to the working directory or generated with the code above.

// In addition, files ado.cin,conto.cin, filog.cin, GLxw2048.inc

// should be loaded to the working directory in order to compile the code 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;x<y;x++)
 * 1) include
 * 1) define Re(x) x.real
 * 2) define Im(x) x.imag
 * 3) define I z_type(0.,1.)
 * 4) include "conto.cin"
 * 5) include "filog.cin"

z_type b=z_type( 1.5259833851700000, 0.0178411853321000); z_type a=log(b); z_type Zo=Filog(a); z_type Zc=conj(Filog(conj(a))); DB A=32.;

z_type tetb(z_type z){ int k; DB t; z_type c, cu,cd; int K=2048; //#include "ima6.inc" z_type E[2048],G[2048]; DO(k,K){c=F[k]; E[k]=log(c)/a; G[k]=exp(a*c);} c=0.; z+=z_type(0.1196573712872846, 0.1299776198056910); DO(k,K){t=A*GLx[k];c+=GLw[k]*(G[k]/(z_type( 1.,t)-z)-E[k]/(z_type(-1.,t)-z));} cu=.5-I/(2.*M_PI)*log( (z_type(1.,-A)+z)/(z_type(1., A)-z) ); cd=.5-I/(2.*M_PI)*log( (z_type(1.,-A)-z)/(z_type(1., A)+z) ); c=c*(A/(2.*M_PI)) +Zo*cu+Zc*cd; return c;}
 * 1) include "GLxw2048.inc"
 * 1) include "TetSheldonIma.inc"

int main{ int j,k,m,m1,n; DB x,y, p,q, t; z_type z,c,d; //int M=161,M1=M+1; int M=601,M1=M+1; int N=461,N1=N+1;

DB X[M1],Y[N1], g[M1*N1],f[M1*N1], w[M1*N1]; // w is working array. char v[M1*N1]; // v is working array FILE *o;o=fopen("tetsheldonmap.eps","w");ado(o,602,202); fprintf(o,"301 101 translate\n 10 10 scale\n"); DO(m,M1)X[m]=-30.+.1*(m); DO(n,200)Y[n]=-10.+.05*n; Y[200]=-.01; Y[201]= .01; for(n=202;n-99. && p<99. && q>-99. && q<99. ){ g[m*N1+n]=p;f[m*N1+n]=q;} d=c; for(k=1;k<31;k++) { m1=m+k*10; if(m1>M) break; d=exp(a*d); p=Re(d);q=Im(d); if(p>-99. && p<99. && q>-99. && q<99. ){ g[m1*N1+n]=p;f[m1*N1+n]=q;} }          d=c; for(k=1;k<31;k++) { m1=m-k*10; if(m1<0) break; d=log(d)/a; p=Re(d);q=Im(d); if(p>-99. && p<99. && q>-99. && q<99. ){ g[m1*N1+n]=p;f[m1*N1+n]=q;} }       }}

fprintf(o,"1 setlinejoin 2 setlinecap\n"); p=1;q=.5; for(m=-10;m<10;m++)for(n=2;n<10;n+=2)conto(o,f,w,v,X,Y,M,N,(m+.1*n),-q, q); fprintf(o,".02 W 0 .6 0 RGB S\n"); for(m=0;m<10;m++) for(n=2;n<10;n+=2)conto(o,g,w,v,X,Y,M,N,-(m+.1*n),-q, q); fprintf(o,".02 W .9 0 0 RGB S\n"); for(m=0;m<10;m++) for(n=2;n<10;n+=2)conto(o,g,w,v,X,Y,M,N, (m+.1*n),-q, q); fprintf(o,".02 W 0 0 .9 RGB S\n"); for(m=1;m<10;m++) conto(o,f,w,v,X,Y,M,N, (0.-m),-p,p); fprintf(o,".08 W .9 0 0 RGB S\n"); for(m=1;m<10;m++) conto(o,f,w,v,X,Y,M,N, (0.+m),-p,p); fprintf(o,".08 W 0 0 .9 RGB S\n"); conto(o,f,w,v,X,Y,M,N, (0. ),-p,p); fprintf(o,".08 W .6 0 .6 RGB S\n"); for(m=-9;m<10;m++) conto(o,g,w,v,X,Y,M,N, (0.+m),-p,p); fprintf(o,".08 W 0 0 0 RGB S\n"); // y= 0; for(m=0;m<260;m+=6) {x=-2.-.1*m; M(x,y) L(x-.1,y)} // fprintf(o,".07 W 1 .5 0 RGB S\n"); // y= 0; for(m=3;m<260;m+=6) {x=-2-.1*m; M(x,y) L(x-.1,y)} // fprintf(o,".07 W 0 .5 1 RGB S\n"); fprintf(o,"showpage\n%c%cTrailer",'%','%'); fclose(o); system("epstopdf tetsheldonmap.eps"); system(   "open tetsheldonmap.pdf"); getchar; system("killall Preview"); }

Latex generator of labels
\documentclass[12pt]{article} \paperwidth 618pt \paperheight 214pt \textwidth 1060pt \textheight 500pt \topmargin -108pt \oddsidemargin -70pt \pagestyle{empty} \usepackage[usenames]{color} \usepackage[utf8x]{inputenc} \usepackage{hyperref} \usepackage{graphicx} \usepackage{rotating} \newcommand \sx {\scalebox} \newcommand \ing {\includegraphics} \newcommand \rme {\mathrm{e}} \newcommand \rot {\begin{rotate}} \newcommand \ero {\end{rotate}} \begin{document} \parindent 0pt \begin{picture}(202,211) \put(10,10){\ing{tetsheldonmap}} \put(2,206){$y$} \put(2,188){$8$} \put(2,168){$6$} \put(2,148){$4$} \put(2,128){$2$} \put(2,108){$0$} \put(-6,88){$-2$} \put(-6,68){$-4$} \put(-6,48){$-6$} \put(-6,28){$-8$} %\put(0,8){-10}\put(261,0){$-4$} \put(-1,0){$-30$} \put( 49,0){$-25$} \put( 99,0){$-20$} \put(149,0){$-15$} \put(199,0){$-10$} %\put(222,0){$-8$} %\put(242,0){$-6$} \put(252,0){$-5$} %\put(262,0){$-4$} %\put(282,0){$-2$} \put(309,0){$0$} \put(329,0){$2$} \put(349,0){$4$} \put(369,0){$6$} \put(389,0){$8$} \put(407,0){$10$} \put(457,0){$15$} \put(507,0){$20$} \put(557,0){$25$} \put(607,1){$x$} \multiput(24,180)(118,-1){5}{$v\!=\!1.2$} \multiput(70,180)(118,-1){5}{$u\!=\!2$} \multiput(112,158)(118,-1){5}{\rot{-50}$v\!=\!1$\ero} \multiput(102,142)(118,-1){5}{\rot{-35}$v\!=\!0.8$\ero} \put(336,107){\rot{-11}$v\!=\!0$\ero} \multiput(206, 92)(119,-22){4}{$v\!=\!-1$} \multiput(70, 84)(119,-22){4}{$u\!=\!1.2$} \multiput(110, 76)(119,-22){4}{$v\!=\!-1.4$} \put(470,200){$u+\mathrm i v \approx 2.0565+1.1445 \,\mathrm i$} \put(30,20){$u+\mathrm i v \approx 2.2284-1.3508 \,\mathrm i$} \end{picture} \end{document}