# inverse function; #inverse(a_+b_,x_):= If(isfree(a,x), replace(inverse(b,x),x,x-a), If(isfree(b,x), replace(inverse(a,x),x,x-b) )); #inverse(a_+b_+c_,x_):= If(isfree(a,x), replace(inverse(b+c,x),x,x-a) ); #inverse(a_*b_,x_):=If(isfree(a,x), replace(inverse(b,x),x,x/a),If(isfree(b,x), replace(inverse(a,x),x,x/b) )); inverse(c_+y_+y_^2, x_) := If(isfree(c,x), inverse(-y-1/2+sqrt(1-4*c)/2 and -y-1/2-sqrt(1-4*c)/2,x)); inverse(c_+b_*y_+y_^2, x_) := If(isfree(b,c,x), inverse(-y-b/2+sqrt(b^2-4*c)/2 and -y-b/2-sqrt(b^2-4*c)/2,x)); inverse(c_+y_+a_*y_^2, x_) := If(isfree(a,c,x), inverse(-y+(-1+sqrt(b^2-4*c))/(2a) and -y+(-1-sqrt(b^2-4*c))/(2a),x)); inverse(c_+b_*y_+a_*y_^2, x_) := If(isfree(a,b,c,x), inverse(-y+(-b+sqrt(b^2-4*c))/(2a) and -y+(-b-sqrt(b^2-4*c))/(2a),x)); inverse(c_+x_+x_^2, x_) := If(isfree(c,x), (-1/2+sqrt(1-4*c+4*x)/2 and -1/2-sqrt(1-4*c+4*x)/2)); inverse(c_+x_+a_*x_^2, x_) := If(isfree(a,c,x), ((-1+sqrt(1+4*a*x-4*a*c))/(2*a) and (-1-sqrt(1+4*a*x-4*a*c))/(2*a)) ); inverse(c_+b_*x_+x_^2, x_) := If(isfree(b,c,x), (-b/2+sqrt(b^2+4*x-4*c)/2 and -b/2-sqrt(b^2+4*x-4*c)/2)); inverse(c_+b_*x_+a_*x_^2, x_) := If(isfree(a,b,c,x), ((-b+sqrt(b^2-4*a*c+4*a*x))/(2*a) and (-b-sqrt(b^2-4*a*c+4*a*x))/(2*a))); inverse(laplace(y_,x_,n_),x_):=inverselaplace(y,x,n); inverse(d(y_,x_,n_),x_):=d(y,x,-n); inverse(d(y_,x_),x_):=integrate(y,x); inverse(integrate(y_,x_),x_):=d(y,x); inverse(difference(y_,x_),x_):=sum(y,x); inverse(sum(y_,x_),x_):=difference(y,x); inverse(inverse(y_,x_),x_):=y; inverse(y_/W(y_),x_):= replace(inverse(y,x),x,x*log(x)); inverse(y_/W(b_*y_),x_):= if(hasnot(b,x),replace(inverse(y,x),x,x*log(b*x)) ); inverse(W(y_)/y_,x_):= replace(inverse(y,x),x, -log(x)/x); inverse(W(a_*y_)/y_,x_):= if(hasnot(a,x),replace(inverse(y,x),x, -1/a*log(x)/x) ); inverse(b_*W(a_*y_)/y_,x_):= if(hasnot(a,b,x),replace(inverse(y,x),x, -1/a*log(a*b*x)/x) ); inverse(y_^a_,x_):=If(isfree(a,x), replace(inverse(y,x),x,x^(1/a)), replace(inverse(a,x),x,W(log(y))) ); inverse(x_^x_,x_):=exp(W(log(x))); inverse(x_^(x_^n_),x_):=if(hasnot(n,x),exp(1/n*W(n*log(x)))); inverse(x_^(n_*x_),x_):=if(hasnot(n,x),exp(W(1/n*log(x)))); inverse(y_^2,x_):=replace(inverse(y,x),x,sqrt(x)) and replace(inverse(y,x),x,-sqrt(x)); inverse(1/(1+y_)*y_,x_):=replace(inverse(y,x),x,x/(1-x)); inverse(y_*1/(1-y_),x_):=replace(inverse(y,x),x,x/(x+1)); inverse(exp(y_)*y_,x_):= replace(inverse(y,x),x,W(x)); inverse(exp(y_)*y_^n_,x_):= if(hasnot(n,x),replace(inverse(y,x),x, n*W(x^(1/n)/n)) ); inverse(exp(a_*y_)*y_,x_):= if(hasnot(a,x),replace(inverse(y,x),x, 1/a*W(a*x)) ); inverse(exp(a_*y_)*y_^n_,x_):= if(hasnot(a,n,x),replace(inverse(y,x),x, n/a*W(a*x^(1/n)/n)) ); inverse(exp(x_)*x_,x_):= W(x); inverse(exp(a_*x_)+exp(b_*x_),x_):= if(hasnot(a,b,x) and a== -b, acosh(x/2)/b ); inverse(exp(-x_)+exp(x_),x_):= acosh(x/2); inverse(c_*exp(-x_)+c_*exp(x_),x_):= if(hasnot(c,x),acosh(1/2/c*x) ); inverse(exp(y_)+y_,x_):= replace(inverse(y,x),x, x-W(exp(x))); inverse(exp(x_)+n_*x_,x_):= if(hasnot(n,x), x/n-W(exp(x/n)/n) ); inverse(exp(x_)+exp(x_)*x_,x_):= W(exp(1)*x)-1; inverse(y_+log(y_),x_):= replace(inverse(y,x),x, W(e^x)); inverse(b_*y_+log(y_),x_):= if(isfree(b,x), replace(inverse(y,x),x, W(b*e^(x))/b) ); inverse(y_+log(y_)*y_,x_):= replace(inverse(y,x),x, exp(W(exp(1)*x)-1)); inverse(b_*y_+log(y_)*y_,x_):= if(isfree(b,x), replace(inverse(y,x),x, exp(W(exp(b)*x)-b)) ); #inverse((b_+log(y_))*y_,x_):= if(hasnot(b,x), replace(inverse(y,x),x, exp(W(exp(b)*x)-b)) ); inverse(log(y_)*y_,x_):= replace(inverse(y,x),x, exp(W(x))); inverse(log(y_)*y_^n_,x_):= if(hasnot(n,x),replace(inverse(y,x),x, exp(1/n*W(n*x))) ); inverse(when(a_,y_),x_):=when(a,inverse(y,x)); inverse(sin(a_,x_),x_):= asin(x)-pi/2*a; inverse(cos(a_,x_),x_):= acos(x)-pi/2*a; inverse(atan(a_,x_),x_):= tan(-d(y,y,-a)); inverse(atanh(a_,x_),x_):= tanh(-d(y,y,-a)); inverse(pow(a_,b_),x_):=if(hasnot(b,x),replace(inverse(a,x),x,pow(x,1/b))); inverse(pow(x_,b_),x_):=if(hasnot(b,x),pow(x,1/b)); #inverse(abs(y_),x_):=replace(inverse(y,x),x,x) and replace(inverse(y,x),x,-x); inverse(abs(x_),x_):= x; inverse(exp(x_),x_):= log(x); inverse(abs(x_),x_):= x and -x; inverse(W(x_),x_):=exp(x)*x; inverse(Phi(x_),x_):=sqrt(2)*inverseerf(2x-1); inverse(log(x_),x_):= exp(x); inverse(log(a_,x_),x_):=a^x; inverse(log10(x_),x_):= 10^x; inverse(log(x_+sqrt(1+x_^2)),x_):=sinh(x); inverse(log(x_+sqrt(x_^2-1)),x_):=cosh(x); inverse(log((1+x_)/(1-x_)),x_):= 2tanh(x); inverse(log((1+x_)/(x_-1)),x_):= 2coth(x); inverse(log((1+sqrt(x_^2+1))/x_),x_):=2csch(x); inverse(log((1+sqrt(1-x_^2))/(1-(1-x_^2)^(1/2))),x_):=2sech(x); inverse(mittag(a_,y_),x_):=replace(inverse(y,x),x,ln(1-a,x)); inverse(ln(a_,y_),x_):=replace(inverse(y,x),x,mittag(1-a,x)); inverse(sin(x_),x_):= asin(x); inverse(cos(x_),x_):= acos(x); inverse(tan(x_),x_):= atan(x); inverse(cot(x_),x_):= acot(x); inverse(sec(x_),x_):= asec(x); inverse(csc(x_),x_):= acsc(x); inverse(sinh(x_),x_):= asinh(x); inverse(cosh(x_),x_):= acosh(x); inverse(tanh(x_),x_):= atanh(x); inverse(coth(x_),x_):= acoth(x); inverse(sech(x_),x_):= asech(x); inverse(csch(x_),x_):= acsch(x); inverse(asin(x_),x_):= sin(x); inverse(acos(x_),x_):= cos(x); inverse(atan(x_),x_):= tan(x); inverse(acot(x_),x_):= cot(x); inverse(asec(x_),x_):= sec(x); inverse(acsc(x_),x_):= csc(x); inverse(asinh(x_),x_):= sinh(x); inverse(acosh(x_),x_):= cosh(x); inverse(atanh(x_),x_):= tanh(x); inverse(acoth(x_),x_):= coth(x); inverse(asech(x_),x_):= sech(x); inverse(acsch(x_),x_):= csch(x); inverse(sqrt(x_),x_):= x^2; inverse(cbrt(x_),x_):= x^3; inverse(1/(x_+1),x_):=1/x-1; inverse(1/(x_-1),x_):=1/x+1; inverse(1/x_,x_):=1/x; inverse(x_,x_):=x; inverse(a_=b_,x_):=swap(a=b,x,y); inverse(a_ and b_, x_):= (inverse(a,x) and inverse(b,x)); inverse(y_):=inverse(y,x);