File:Vladi05.jpg

Complex map of approximation "maclo" of the natural tetration, left, and maps of the agreements $D$.

Left:

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

$\displaystyle \mathrm{maclo}(z)= \ln(z\!+\!2)+\sum_{n=0}^{N-1} s_n z^n$

$\mathrm{tet}(z)=\mathrm{maclo}(z)+O(z^N)$

for $N=101$.

Center:

$\displaystyle D_1= D_{1}(z)=-\lg\left( \frac {|\ln(\mathrm{maclo}(z\!+\!1)-\mathrm{naiv}(z)|} {|\ln(\mathrm{maclo}(z\!+\!1)|+|\mathrm{naiv}(z)|} \right) $

Right:

$\displaystyle D_2=D_{2}(z)=-\lg\left( \frac {|\exp(\mathrm{maclo}(z\!-\!1)-\mathrm{maclo}(z)|} {|\exp(\mathrm{maclo}(z\!-\!1)|+|\mathrm{maclo}(z)|} \right) $

For $D=D_1$ and $D=D_2$, levels  $D=1,2,4,6,8,10,12,14 ~ ~ $ are drawn. Level $D=1$ is drawn with thick line. Symbol "15" indicates the region, where the agreement is better than 14.

Usage: this is figure 14.7 of the book Суперфункции (2014, In Russian)
 * the English version is in preparation in 2015.

First time published in the Vladikavkaz Matehmatical Journal .

C++ generator of the first picture
fsexp.cin, ado.cin, conto.cin should be loaded in order to compile the code below

//using namespace std; typedef std::complex z_type;
 * 1) include 
 * 2) include 
 * 3) define DB double
 * 4) 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.)

int main{ int j,k,m,n; DB x,y, p,q, t; z_type z,c,d, cu,cd; z_type Zo=z_type(.31813150520476413, 1.3372357014306895); z_type Zc=z_type(.31813150520476413,-1.3372357014306895);
 * 1) include "fsexp.cin"
 * 2) include "conto.cin"

int M=250,M1=M+1; int N=301,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("figmaclo.eps","w");ado(o,0,0,62,62); FILE *o;o=fopen("vladi05a.eps","w");ado(o,62,62); fprintf(o,"31 31 translate\n 10 10 scale\n");

DO(m,M1) X[m]=-3.+.04*(m-.5); //DO(n,N1)Y[n]=-6 +.03*(n-.5);

DB sy=2.8/sinh(.005*N); DO(n,N1) Y[n]=sy*sinh(.01*(n-N/2-.5));

/* for(m=-20;m<21;m++){ z=z_type(Re(Zo),Im(Zo)*m/20.009); c=FSLOG(z); x=Re(c); y=Im(c); if(m==-20)M(x,y)else L(x,y) } for(m=20;m>-21;m--){ z=z_type(Re(Zo),Im(Zo)*m/20.009); c=FSLOG(z); x=Re(c)+1;y=Im(c);                     L(x,y) } fprintf(o,"1 1 0 RGB F\n"); /* for(m=-20;m<21;m++){ z=z_type(Re(Zo),Im(Zo)*m/20.008); c=FSLOG(z); x=Re(c);y=Im(c); if(m==-20)M(x,y)else L(x,y) } for(m=20;m>-21;m--){ z=z_type(Re(Zo),Im(Zo)*m/20.008); c=FSLOG(z); x=Re(c)+1;y=Im(c);if(m==20)M(x,y)else L(x,y) } fprintf(o,".006 W 0 0 0 RGB S\n");

for(m=-3;m<4;m++) {    if(m==0){M(m,-3.2)L(m,3.2)} else        {M(m,-3)L(m,3)}                 } for(n=-3;n<4;n++) {    M(  -3,n)L(3,n)} fprintf(o,".006 W 0 0 0 RGB S\n");

DO(m,M1)DO(n,N1){g[m*N1+n]=9999; f[m*N1+n]=9999;} DO(m,M1){x=X[m]; printf("run at x=%6.3f\n",x); DO(n,N1){y=Y[n]; z=z_type(x,y); c=maclo(z); p=Re(c); q=Im(c); if(p>-9 && p<9 && fabs(p)> 1.e-8 && fabs(p-1.)>1.e-8)  g[m*N1+n]=p; if(q>-9 && q<9 && fabs(q)> 1.e-8)                      f[m*N1+n]=q; }}

p=1;q=.5; conto(o,g,w,v,X,Y,M,N, ( Re(Zo) ),-q,q); fprintf(o,".1 W 1 .5 1 RGB S\n"); conto(o,f,w,v,X,Y,M,N, ( Im(Zo) ),-q,q); fprintf(o,".1 W .2 1 .5 RGB S\n"); conto(o,f,w,v,X,Y,M,N, (-Im(Zo) ),-q,q); fprintf(o,".1 W .5 1 .2 RGB S\n");


 * 1) include"plofu.cin"

M(-2,0)L(-3.03,0) fprintf(o,".07 W 1 1 1 RGB S\n"); DO(m,6){ M(-2-.25*m,0)L(-2-.25*(m+.5),0)} fprintf(o,".08 W 0 0 0 RGB S\n"); fprintf(o,"showpage\n%c%cTrailer",'%','%'); fclose(o); system("epstopdf vladi05a.eps"); system(   "open vladi05a.pdf");//for macintosh //     system(    "xpdf fig05a.pdf");//for linux //getchar; system("killall Preview");//for macintosh }

C++ generator of the second picture
//using namespace std; typedef std::complex z_type;
 * 1) include 
 * 2) include 
 * 3) define DB double
 * 4) 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.)

int main{ int j,k,m,n; DB x,y, p,q, t; z_type z,c,d, cu,cd; z_type Zo=z_type(.31813150520476413, 1.3372357014306895); z_type Zc=z_type(.31813150520476413,-1.3372357014306895);
 * 1) include "fsexp.cin"
 * 2) include "conto.cin"

int M=150,M1=M+1; int N=301,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("figmacloL.eps","w");ado(o,0,0,62,62); FILE *o;o=fopen("vladi05b.eps","w");ado(o,62,62); fprintf(o,"31 31 translate\n 10 10 scale\n");

DO(m,M1) X[m]=-3.+.04*(m-.5); //DO(n,N1)Y[n]=-6 +.03*(n-.5);

DB sy=2.8/sinh(.005*N); DO(n,N1) Y[n]=sy*sinh(.01*(n-N/2-.5));

/* for(m=-20;m<21;m++){ z=z_type(Re(Zo),Im(Zo)*m/20.009); c=FSLOG(z); x=Re(c); y=Im(c); if(m==-20)M(x,y)else L(x,y) } for(m=20;m>-21;m--){ z=z_type(Re(Zo),Im(Zo)*m/20.009); c=FSLOG(z); x=Re(c)+1;y=Im(c);                     L(x,y) } fprintf(o,"1 1 0 RGB F\n"); /* for(m=-20;m<21;m++){ z=z_type(Re(Zo),Im(Zo)*m/20.008); c=FSLOG(z); x=Re(c);y=Im(c); if(m==-20)M(x,y)else L(x,y) } for(m=20;m>-21;m--){ z=z_type(Re(Zo),Im(Zo)*m/20.008); c=FSLOG(z); x=Re(c)+1;y=Im(c);if(m==20)M(x,y)else L(x,y) } fprintf(o,".006 W 0 0 0 RGB S\n");

for(m=-3;m<4;m++) {    if(m==0){M(m,-3.2)L(m,3.2)} else        {M(m,-3)L(m,3)}                 } for(n=-3;n<4;n++) {    M(  -3,n)L(3,n)} fprintf(o,".006 W 0 0 0 RGB S\n");

DO(m,M1)DO(n,N1){g[m*N1+n]=9999; f[m*N1+n]=9999;} DO(m,M1){x=X[m]; printf("run at x=%6.3f\n",x); DO(n,N1){y=Y[n]; z=z_type(x,y); c=log(maclo(z+1.)); d=maclo(z); p= abs(c-d)/(abs(c)+abs(d)); p=-log(p)/log(10.); // p=Re(c); q=Im(c); if(p>-99 && p<99 && fabs(p)> 1.e-8 && fabs(p-1.)>1.e-8) g[m*N1+n]=p; //     if(q>-999 && q<999 && fabs(q)> 1.e-8)                   f[m*N1+n]=q; }}

fprintf(o,"showpage\n%c%cTrailer",'%','%'); fclose(o); system("epstopdf vladi05b.eps"); system(   "open vladi05b.eps"); // for macintosh //getchar; system("killall Preview"); //for macintosh }
 * 1) include"plodi.cin"

C++ generator of the right picture
//using namespace std; typedef std::complex z_type;
 * 1) include 
 * 2) include 
 * 3) define DB double
 * 4) 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.)

int main{ int j,k,m,n; DB x,y, p,q, t; z_type z,c,d, cu,cd; z_type Zo=z_type(.31813150520476413, 1.3372357014306895); z_type Zc=z_type(.31813150520476413,-1.3372357014306895);
 * 1) include "fsexp.cin"
 * 2) include "conto.cin"

int M=150,M1=M+1; int N=301,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("vladi05c.eps","w");ado(o,62,62); fprintf(o,"31 31 translate\n 10 10 scale\n");

DO(m,M1) X[m]=-3.+.04*(m-.5); //DO(n,N1)Y[n]=-6 +.03*(n-.5);

DB sy=2.8/sinh(.005*N); DO(n,N1) Y[n]=sy*sinh(.01*(n-N/2-.5));

/* for(m=-20;m<21;m++){ z=z_type(Re(Zo),Im(Zo)*m/20.009); c=FSLOG(z); x=Re(c); y=Im(c); if(m==-20)M(x,y)else L(x,y) } for(m=20;m>-21;m--){ z=z_type(Re(Zo),Im(Zo)*m/20.009); c=FSLOG(z); x=Re(c)+1;y=Im(c);                     L(x,y) } fprintf(o,"1 1 0 RGB F\n"); /* for(m=-20;m<21;m++){ z=z_type(Re(Zo),Im(Zo)*m/20.008); c=FSLOG(z); x=Re(c);y=Im(c); if(m==-20)M(x,y)else L(x,y) } for(m=20;m>-21;m--){ z=z_type(Re(Zo),Im(Zo)*m/20.008); c=FSLOG(z); x=Re(c)+1;y=Im(c);if(m==20)M(x,y)else L(x,y) } fprintf(o,".006 W 0 0 0 RGB S\n");

for(m=-3;m<4;m++) {    if(m==0){M(m,-3.2)L(m,3.2)} else        {M(m,-3)L(m,3)}                 } for(n=-3;n<4;n++) {    M(  -3,n)L(3,n)} fprintf(o,".006 W 0 0 0 RGB S\n");

DO(m,M1)DO(n,N1){g[m*N1+n]=9999; f[m*N1+n]=9999;} DO(m,M1){x=X[m]; printf("run at x=%6.3f\n",x); DO(n,N1){y=Y[n]; z=z_type(x,y); c=exp(maclo(z-1.)); d=maclo(z); p= abs(c-d)/(abs(c)+abs(d)); p=-log(p)/log(10.); // p=Re(c); q=Im(c); if(p>-99 && p<99 && fabs(p)> 1.e-8 && fabs(p-1.)>1.e-8) g[m*N1+n]=p; //     if(q>-999 && q<999 && fabs(q)> 1.e-8)                   f[m*N1+n]=q; }}

fprintf(o,"showpage\n%c%cTrailer",'%','%'); fclose(o); system("epstopdf vladi05c.eps"); system(   "open vladi05c.eps"); // for macintosh //getchar; system("killall Preview"); //for macintosh }
 * 1) include"plodi.cin"

Latex combiner
\documentclass[12pt]{article} \usepackage{graphicx} \usepackage{rotating} \usepackage{geometry} \paperwidth 428px \paperheight 134px \topmargin -106pt \oddsidemargin -80pt \pagestyle{empty} \begin{document} \newcommand \ing {\includegraphics} \newcommand \sx {\scalebox}

\newcommand \rot {\begin{rotate}} \newcommand \ero {\end{rotate}}

\newcommand \vladiax { \put(-3,58.6){\sx{.5}{$y$}} \put(-3,49){\sx{.5}{$2$}} \put(-3,39){\sx{.5}{$1$}} \put(-3,29){\sx{.5}{$0$}} \put(-7,19){\sx{.5}{$-1$}} \put(-7, 9){\sx{.5}{$-2$}} \put( 6 ,-4){\sx{.5}{$-2$}} \put(17 ,-4){\sx{.5}{$-1$}} \put(30,-4){\sx{.5}{$0$}} \put(40, -4){\sx{.5}{$1$}} \put(50, -4){\sx{.5}{$2$}} \put(58.4, -4){\sx{.5}{$x$}} }

%~\sx{2.33}{\begin{picture}(70,60) ~\sx{2.02}{\begin{picture}(70,60) \put(0,0){\includegraphics{vladi05a}} \put(25,24){\sx{.4}{\rot{90} $ u\!=\!\Re(L)$ \ero }} \put(32,51){\sx{.4}{\rot{-61} $ v\!=\!\Im(L)$ \ero }} \put(27,44){\sx{.4}{\rot{-36} $ v\!=\!1$ \ero }} \put(32.6,26){\sx{.4}{\rot{90} $ u\!=\!1$ \ero }} %\put(26,30){\sx{.4}{\rot{ 0} $ v\!=\!0$ \ero }} \put(26,15.6){\sx{.4}{\rot{32} $ v\!=\!-1$ \ero }} \put(35,11){\sx{.4}{\rot{61} $ v\!=\!\Im(L^*)$ \ero }}

\vladiax \end{picture}} \sx{2.02}{\begin{picture}(70,60) \put(0,0){\includegraphics{vladi05b}} \vladiax \put(23,29){\sx{.55}{$15$}} \put(43, 55){\sx{.55}{$D_{1}\!<\!1$}} \end{picture}} \sx{2.02}{\begin{picture}(58,60) \put(0,0){\includegraphics{vladi05c}} \vladiax \put(32,29){\sx{.55}{$15$}} \put(44,56){\sx{.55}{$D_{2}\!<\!1$}} \end{picture}}

\end{document}