integrate2(y_,a_,b_):= if(isconstant(a), integrate(y,x,a,b), if(b==0,y, if(b==1,integrate(y,a), d(y,a,-b) ))); integrate2(y_,x_,0):=y; integrate2(y_,x_,1):=integrate(y,x); integrate2(y_,x_=a_,b_):=integrate(y,x,a,b); integrate2(y_,x_,a_,b_) := if(a+b==0, block(f(x)=y, if(f(-1)+f(1)==0, 0) )); integrate2(abs(y_),x_,a_,b_) := if(a+b==0,2*int(step(y)*y,x,0,b)); #integrate2(1/x_,x_,a_,b_) := if(isreal(b,a),log(abs(b/a)),log(b/a) ); #integrate2(1/(c_+x_),x_,a_,b_) := if(isreal(b,a),log(abs((b+c)/(a+c))),log((b+c)/(a+c)) ); integrate2(a_+b_,x_):=integrate2(a_,x_)+integrate2(b_,x_); integrate2(a_*b_,x_):= if(hasnot(a,x),a*int(b,x), if(d(a,x)==b,a^2/2, if(d(b,x)==a,b^2/2 ))); #integrate2(a_*exp(x_),x_):=exp(x)*a-integrate(d(a,x)*exp(x),x); #integrate2(exp(x_)*y_,x_):=exp(x)*y-integrate(d(y,x)*exp(x),x); integrate2(a_*(t_-x_)^n_,x_):= n!*d(a,x,n); integrate2(a_*(-t_+x_)^n_,x_):= (-1)^n*n!*d(a,x,n); integrate2((t_-x_)^n_*y_,x_):= n!*d(y,x,n); integrate2((-t_+x_)^n_*y_,x_):= (-1)^n*n!*d(y,x,n); integrate2((x_-y_)^n_*exp(y_),y_) := If(isfree(y,x),exp(x)*Gamma(n+1,-y+x) ); integrate2((x_-y_)^n_exp(c_*y_),y_) := If(isfree(y,x),c^(-n)*exp(c*x)*Gamma(n+1,y-x) ); integrate2((x_+b_)^n_*exp(x_),x_) := If(isfree(b,x),((-1)^(-n)*exp(-b) *Gamma(1 + n, -b - x)) ); integrate2((x_+b_)^n_*exp(c_*x_),x_) := If(isfree(b,c,x), (-c)^(-n)/c*exp(-b*c) *Gamma(1 + n, -c*b -c*x) ); integrate2((a_*x_+b_)^n_*exp(x_),x_) := If(isfree(a,b,x),((-1/a)^(-n)*exp(-b/a) *Gamma(1 + n, -b/a - x)) ); integrate2((a_*x_+b_)^n_*exp(c_*x_),x_) := If(isfree(a,b,c,x), (-c/a)^(-n)/c*exp(-b*c/a) *Gamma(1 + n, -c*b/a -c*x) ); integrate2(exp(x_)*(t_-x_)^(-0.5),x_):= -sqrt(pi)*exp(t)*erf(sqrt(t-x)); integrate2(log(x_)*(t_-x_)^(-0.5), x_):= -4 sqrt(t)* atanh(sqrt(t-x)/sqrt(t))-2 sqrt(t-x)* (-2+log(x)); integrate2(sinh(x_)*(t_-x_)^(-0.5),x_):= -1/2 sqrt(pi)*(erfi(sqrt(t-x))*(-cosh(t)+sinh(t))+erf(sqrt(t-x))*(cosh(t)+sinh(t))); integrate2(cosh(x_)*(t_-x_)^(-0.5),x_):= -1/2 sqrt(pi)*(erfi(sqrt(t-x))*(cosh(t)-sinh(t))+erf(sqrt(t-x))*(cosh(t)+sinh(t)));