out jkki;
off nat;
%factor x, p;


f:=p+x**2;


formp:=
( - P - X**2 + 2*X)/(2*P**3*X + 6*P**2*X**3 + P**2 + 6*P*X**5 + 2*P*X
**2 + 2*P*X + 2*X**7 + X**4 + 2*X**3 + 1)$

formx:=
( - 2*X**3 + 4*X**2 - 2*X*P)/(2*X**7 + 6*X**5*P + X**4 + 2*X**3*(3*P
**2 + 1) + 2*X**2*P + 2*X*P*(P**2 + 1) + P**2 + 1)$
%-------------------------------------------------------------------
% decomposition in partial fraction - p integration
%-------------------------------------------------------------------

fp:=- (p + x**2 - 2*x)/( (1 + (p + x**2)*2*x)*(1 + (p +x**2)**2) );
formp- fp;

fpd:=MM(1)/(1 + (p + x**2)*2*x) + (MM(2)*p + NN(2))/(1 + (p +x**2)**2);
solve(1 + (p +x**2)**2, p);

%----------------------------

%factor p;
xxx:=num(fpd);

MM(1):=-2*x*MM(2);
MM(2):=(2*NN(2)*X + 1)/(2*X**3 - 1)$
NN(2):=- X**2;

xxx;
formp - fpd;

mm(1);
mm(2);
nn(2);


1 + (p + x**2)*2*x;

1 + (p +x**2)**2 ;

----------------------------

%ts:=coeffn(xxx,p,1);
%solve(ts+1,MM(2));


part1:=MM(1)/(1 + (p + x**2)*2*x);
part2:=(MM(2)*p + NN(2))/(1 + (p +x**2)**2);

load "algint";
int(part1,p);
%int(part2,p);

ipp1:=log(1+2*x*(p + x**2));
ipp2:=-log( 1+(p + x**2)**2 )/2;


df(ipp1, p);
df(ipp2, p);

df(ipp1, p) - part1;
df(ipp2, p) - part2;


df(ipp1 + ipp2, p) - formp;



%-------------------------------------------------------------------
% decomposition in partial fraction - x integration
%-------------------------------------------------------------------

formx:=
( - 2*X**3 + 4*X**2 - 2*X*P)

/(2*X**7 + 6*X**5*P + X**4 + 2*X**3*(3*P
**2 + 1) + 2*X**2*P + 2*X*P*(P**2 + 1) + P**2 + 1)$



fx:=( - 2*X**3 + 4*X**2 - 2*X*P)/( (1 + (p + x**2)*2*x)*(1 + (p +x**2)**2) );
formx- fx;

%fpd:=MM(1)/(1 + (p + x**2)*2*x) + (MM(2)*p + NN(2))/(1 + (p +x**2)**2);
%solve(1 + (p +x**2)**2, p);

%----------------------------
den1:=(1 + (p + x**2)*2*x);
den2:=(1 + (p + x**2)**2);

solve(den1,x);
solve(den2,x);

%------------------
factor x;

%deco:=(a(1)*x +b(1))*(a(2)*x**2 + b(2)*x + c(2)) - den1;
%a(1):=2/a(2);
%num(deco);
%B(2):=-A(2)**2*B(1)/2;
%num(deco);

%C(2):= -( - A(2)**3*B(1)**2 - 4*A(2)*P)/4;
%num(deco);



%-------------------------------

partx1:=4*x**2/(1 + (p + x**2)*2*x);
partx2:=-2*x*(p + x**2)/(1 + (p + x**2)**2);


partx1 + partx2 - formx;
%--------- integrals --------------
%int(s/(1 + s**2),s);
ipx1:= - log(1 + (p + x**2)**2 )/2;
df(ipx1, x) - partx2;

%int(partx1,x);

yd:=den(partx1);

deco:=(a(1)*x + c(1))*(a(2)*x**2 + b(2)*x + c(2)) + d(1) - yd;
a(1):=2;
a(2):=1;
num(deco);
C(1):= - 2*B(2);
num(deco);

C(2):= B(2)**2 + P;
num(deco);




%C(2):=-( - A(2)**3*C(1)**2 - 4*A(2)*P)/4;

b(2):=0;
d(1):=1;
num(deco);


a(1);
c(1);
a(2);
b(2);
c(2);
d(1);

deco:=(a(1)*x + c(1))*(a(2)*x**2 + b(2)*x + c(2)) + d(1);


shut jkki;
bye;
end;
