Jump to: navigation, search

// AuTra.cin is C++ implementation of function AuTra, id est, the Abel function dor the Trappmann function

#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#define DB double
#define DO(x,y) for(x=0;x<y;x++)
using namespace std;
typedef complex<double> z_type;
#define Re(x) x.real()
#define Im(x) x.imag()
#define I z_type(0.,1.)
#include "tania.cin"
#include "LambertW.cin"
#include "SuZex.cin"
#include "AuZex.cin"
z_type arctra(z_type z){return z-Tania(z-1.);}
z_type tra(z_type z) {return z+exp(z);}
z_type sutra0(z_type z){ return log(suzex(z));}
z_type sutra(z_type z){ if( Re(z)<2. ) return sutra0(z);
                        if( Re(z)<3. ) return tra(sutra0(z-1.));
                        if( Re(z)<4. ) return tra(tra(sutra0(z-2.)));
                                       return tra(tra(tra(sutra0(z-3.)))); }
  • /
z_type autra0(z_type z) {return auzex(exp(z));}
z_type autra(z_type z) { DB x,y,t; x=Re(z); y=fabs(Im(z));
                         if(y>=M_PI) return autra(arctra(z)) + 1. ;
                         if(x<-2.2 ) { t=-1.-x; if( y > M_PI*t/sqrt(1+t*t) ) return autra(arctra(z))+1.; }
                         return auzex(exp(z));}