# convert to exp(x);
#toexp(a_^b_):=If(isfree(a,x), e^(log(a)*b));
#toexp(a_*b_):=If(isfree(a,x), a*toexp(b), toexp(a)*toexp(b));
#toexp(a_+b_):=If(isfree(a,x), a+toexp(b), toexp(a)+toexp(b));
#toexp(a_-b_):=If(isfree(a,x), a-toexp(b), toexp(a)-toexp(b));
#toexp(1/b_):= 1/toexp(b);
#toexp(-b_):= -toexp(b);

#toexp(x_):=if(iscomplex(x),toexp(tocomplex(x)));
#toexp(Complex(a_,b_)):= abs(a,b)*exp(i*todegree(atan2(b,a)));

toexp(Dawson(x_)):=exp(-x*x)*erfi(x)*sqrt(pi)/2;
toexp(Dawsonm(x_)):=exp(x*x)*erf(x)*sqrt(pi)/2;

toexp(cos(a_)+i*sin(a_)):=exp(a*i);

toexp(inverseW(x_)):=exp(x)*x;
toexp(a_^x_):=exp(log(a)*x);
toexp(x_/W(x_)):=exp(W(x));
toexp(sqrt(x_)) := x^(1/2);
toexp(cbrt(x_)) := x^(1/3);

toexp(sinh(x_)) := exp(x)/2-exp(-x)/2;
toexp(cosh(x_)) := exp(x)/2+exp(-x)/2;
toexp(tanh(x_)) := (exp(x)-exp(-x))/(exp(x)+exp(-x));
toexp(coth(x_)) := (exp(x)+exp(-x))/(exp(x)-exp(-x));
toexp(csch(x_)) := 2/(exp(x)-exp(-x));
toexp(sech(x_)) := 2/(exp(x)+exp(-x));

toexp(sin(x_)) := i*exp(-i*x)/2-i*exp(i*x)/2;
toexp(cos(x_)) := exp(i*x)/2+exp(-i*x)/2;
toexp(tan(x_)) := (i*exp(-i*x)-i*exp(i*x))/(exp(i*x)+exp(-i*x));
toexp(cot(x_)) := (i*exp(i*x)+i*exp(-i*x))/(exp(i*x)-exp(-i*x));
toexp(csc(x_)) := 2i/(exp(-i*x)-exp(i*x));
toexp(sec(x_)) := 2/(exp(i*x)+exp(-i*x));

toexp(gamma(n_,x_)) := If(n>0, (n-1)*toexp(gamma(n-1,x))+x^(n-1)*exp(-x),
	If(n <0, (toexp(gamma(n+1,x))-x^n*exp(-x))/n) );
toexp(En(n_,x_)) := If(n>0, (-x*toexp(En(n-1,x))+exp(-x))/(n-1),
	If(n< 0, expand(-n*toexp(En(n+1,x))/x)+exp(-x)/x ));

toexp(gamma(0.5,x_)) := sqrt(pi)*erfc(sqrt(x));
toexp(gamma(-0.5,x_)) := -sqrt(pi)*i*erfi(sqrt(x));
toexp(gamma(0.5,x_^2)) := sqrt(pi)*erfc(x);

toexp(En(0.5,x_)) := sqrt(pi)*erfc(sqrt(x))/sqrt(x);
toexp(En(-0.5,x_)):= sqrt(pi)*erf(sqrt(x))*x^(-1.5);

toexp(mittag(0.5,x_)):= exp(x^2)*erfc(-x);
toexp(mittag(2,x_)):= cosh(sqrt(x));
toexp(mittag(2,-x_)):= cos(sqrt(x));
toexp(mittag(4,x_)):=cos(x^(1/4))/2+cosh(x^(1/4))/2;

toexp(gauss(x_)):= exp(-x^2/2)/sqrt(2pi);
toexp(polar(a_,b_)):=a*exp(b*i);