# Difference between revisions of "File:Penmap.jpg"

Complex map of natural pentation,

$u\!+\!\mathrm i v=\mathrm{pen}(x\!+\! \mathrm i y)$ in the $x,y$ plane.

This image is used as figure 10.4 of the book Суперфункции (In Russian) [1].

Also, this image is used as figure 6 of article Evaluation of holomorphic ackermanns [2].

## C++ generator of curves

Files ado.cin, conto.cin, fsexp.cin, fslog.cin should be loaded to the working directory in order to compile the code below

#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#define DB double
#define DO(x,y) for(x=0;x<y;x++)
#include <complex>
typedef std::complex<double> z_type;
#define Re(x) x.real()
#define Im(x) x.imag()
#define I z_type(0.,1.)
#include "conto.cin"
#include "fsexp.cin"
#include "fslog.cin"

z_type pen0(z_type z){
DB Lp=-1.8503545290271812;
DB k,a,b;
// k=1.86573322821; a=-.62632418; b=0.4827;
k=1.86573322821; a=-.6263241; b=0.4827;

z_type e=exp(k*z);
return Lp + e*(1.+e*(a+b*e));
}

z_type pen7(z_type z){ DB x; int m,n; z=pen0(z+(2.24817451898-7.));
DO(n,7) { if(Re(z)>8.) return 999.; z=FSEXP(z); if(abs(z)<40) goto L1; return 999.; L1: ;}
return z; }

z_type pen(z_type z){ DB x; int m,n;
x=Re(z); if(x<= -4.) return pen0(z);
m=int(x+5.);
z-=DB(m);
z=pen0(z);
DO(n,m) z=FSEXP(z);
return z;
}

int main(){ int j,k,m,n; DB x,y, p,q, t; z_type z,c,d, cu,cd;
int M=401,M1=M+1;
int N=801,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
fprintf(o,"422 420 translate\n 100 100 scale\n");
DO(m,M1) X[m]=-4.+.02*(m-.5);
DO(n,N1) Y[n]=-4.+.01*(n-.5);
for(m=-4;m<5;m++) {M(m,-4)L(m,4)}
for(n=-4;n<5;n++) {M( -4,n)L(4,n)} fprintf(o,"2 setlinecap .004 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];
DO(n,N1){y=Y[n]; z=z_type(x,y);
// c=pen0(z);
// c=FSEXP(pen0(z-1.));
// c=FSEXP(FSEXP(pen0(z-2.)));
c=pen7(z);
// d=FSEXP(pen(z-1.));
// p=abs((c-d)/(c+d)); p=-log(p)/log(10.);
p=Re(c); q=Im(c);
if(p>-9999 && p<9999 && fabs(p)>1.e-11) g[m*N1+n]=p;
if(q>-9999 && q<9999 && fabs(q)>1.e-11) f[m*N1+n]=q;
}}
// #include "plofu.cin"

fprintf(o,"1 setlinejoin 2 setlinecap\n");

p=2;q=.5;
for(m=-19;m<19;m++)for(n=2;n<10;n+=2)conto(o,f,w,v,X,Y,M,N, (m+.1*n),-q,q);
fprintf(o,".002 W 0 .6 0 RGB S\n");
for(m=0;m<29;m++) for(n=2;n<10;n+=2)conto(o,g,w,v,X,Y,M,N,-(m+.1*n),-q,q);
fprintf(o,".002 W .9 0 0 RGB S\n");
for(m=0;m<29;m++) for(n=2;n<10;n+=2)conto(o,g,w,v,X,Y,M,N, (m+.1*n),-q,q);
fprintf(o,".002 W 0 0 .9 RGB S\n");

for(m= 1;m<20;m++) conto(o,f,w,v,X,Y,M,N, (0.-m),-p,p);fprintf(o,".012 W .9 0 0 RGB S\n");
for(m= 1;m<20;m++) conto(o,f,w,v,X,Y,M,N, (0.+m),-p,p);fprintf(o,".012 W 0 0 .9 RGB S\n");
conto(o,f,w,v,X,Y,M,N, (0. ),-p,p); fprintf(o,".012 W .6 0 .6 RGB S\n");
for(m=-31;m<32;m++)conto(o,g,w,v,X,Y,M,N,(0.+m),-p,p);fprintf(o,".012 W 0 0 0 RGB S\n");

DB t2=M_PI/1.86573322821;
DB tx=-2.32;

M(tx,t2)L(4.1,t2)
M(tx,-t2)L(4.1,-t2)
fprintf(o,"0 setlinecap .03 W 1 1 1 RGB S\n");
DO(n,64){ x=tx+.1*n; M(x,t2) L(x+.04,t2) }
DO(n,64){ x=tx+.1*n; M(x,-t2) L(x+.04,-t2) }
fprintf(o,"0 setlinecap .04 W 0 0 0 RGB S\n");

//conto(o,g,w,v,X,Y,M,N, ( 1. ),-99,99); fprintf(o,".12 W 1 .5 0 RGB S\n");

fprintf(o,"showpage\n%c%cTrailer",'%','%'); fclose(o);

printf("pen7(-1)=%18.14f\n", Re(pen7(-1.)));
printf("Pi/1.86573322821=%18.14f\n", M_PI/1.86573322821);

system("epstopdf penma.eps");
system( "open penma.pdf");
}

## Latex generator of labelw

\documentclass[12pt]{article}
\paperheight 832px
\paperwidth 846px
\textwidth 1394px
\textheight 1300px
\topmargin -104px
\oddsidemargin -80px
\usepackage{graphics}
\usepackage{rotating}
\newcommand \sx {\scalebox}
\newcommand \rot {\begin{rotate}}
\newcommand \ero {\end{rotate}}
\newcommand \ing {\includegraphics}
\newcommand \rmi {\mathrm{i}}
\begin{document}
{\begin{picture}(824,820)
%\put(12,0){\ing{24}}
\put(12,0){\ing{penma}}
\put(8,808){\sx{3}{$y$}}
\put(8,709){\sx{3}{$3$}}
\put(8,609){\sx{3}{$2$}}
\put(8,509){\sx{3}{$1$}}
\put(8,409){\sx{3}{$0$}}
\put(-12,309){\sx{3}{$-1$}}
\put(-12,209){\sx{3}{$-2$}}
\put(-12,109){\sx{3}{$-3$}}
\put(-12,9){\sx{3}{$-4$}}
\put(4,-8){\sx{3}{$-4$}}
\put(104,-8){\sx{3}{$-3$}}
\put(204,-8){\sx{3}{$-2$}}
\put(304,-8){\sx{3}{$-1$}}
\put(427,-8){\sx{3}{$0$}}
\put(527,-8){\sx{3}{$1$}}
\put(627,-8){\sx{3}{$2$}}
\put(727,-8){\sx{3}{$3$}}
\put(821,-8){\sx{3}{$x$}}
\put(50, 747){\sx{4}{$v\!=\!0$}}
\put(50, 578){\sx{4}{$v\!=\!0$}} \put(760, 580){\sx{4}{\bf cut}}
\put(50, 409){\sx{4}{$v\!=\!0$}}%
\put(50, 240){\sx{4}{$v\!=\!0$}} \put(760, 241){\sx{4}{\bf cut}}
\put(50, 71){\sx{4}{$v\!=\!0$}}
%
\put(326, 638){\sx{4}{$v\!=\!-1$}}
\put(340, 520){\sx{4}{$v\!=\!1$}}
\put(326, 298){\sx{4}{$v\!=\!-1$}}
\put(336, 182){\sx{4}{$v\!=\!1$}}
%
\put(250, 352){\sx{4}{\rot{90}$u\!=\!-1$\ero}}
\put(348, 362){\sx{4}{\rot{90}$u\!=\!0$\ero}}
\put(448, 372){\sx{4}{\rot{90}$u\!=\!1$\ero}}
\put(522, 372){\sx{4}{\rot{90}$u\!=\!2$\ero}}
\end{picture}
\end{document}

## File history

Click on a date/time to view the file as it appeared at that time.

Date/TimeThumbnailDimensionsUserComment
current06:13, 1 December 20182,350 × 2,311 (1.56 MB)Maintenance script (talk | contribs)Importing image file
• You cannot overwrite this file.

The following 2 pages link to this file: