# combine 2 terms;

combine(1/a_+b_):=(a*b+1)/a;
combine(a_+1/b_):=(1+a*b)/b;
combine(1/a_+1/b_):=(a+b)/a/b;
combine(a_*(b_+c_)):=a*combine(b+c);
combine(a_+c_/d_):=(a*d+c)/d;
combine(a_*b_+a_*c_):=a*combine(b+c);
combine(a_/b_+c_/d_):=if(b==d, (a+c)/d, (a*d+b*c)/(b*d));

combine(log(a_)+log(b_)):=log(a*b);
combine(c_*log(a_)+log(b_)):=log(a^c*b);
combine(log(a_)+d_*log(b_)):=log(a*b^d);
combine(c_*log(a_)+d_*log(b_)):=log(a^c*b^d);

combine(cos(x_)+sin(x_)):=sqrt(2)*sin(x+pi/4);
combine(sin(a_)+sin(b_)):=2sin(a/2+b/2)*cos(a/2-b/2);
combine(sin(a_)-sin(b_)):=2cos(a/2+b/2)*sin(a/2-b/2);
combine(cos(a_)+cos(b_)):=2cos(a/2+b/2)*cos(a/2-b/2);
combine(cos(a_)-cos(b_)):= -2sin(a/2+b/2)*sin(a/2-b/2);
combine(tan(a_)+tan(b_)):=sin(a+b)/cos(a)/cos(b);
combine(tan(a_)-tan(b_)):=sin(a-b)/cos(a)/cos(b);
combine(cot(a_)+cot(b_)):=sin(a+b)/sin(a)/sin(b);
combine(cot(a_)-cot(b_)):= -sin(a-b)/sin(a)/sin(b);
combine(3*sin(2x_)-sin(3x_)):= 4* sin(x)^3;
combine(-4*cos(2x_)+cos(4x_)):=8sin(x)^4-3;
combine(3*cos(x_)+ cos(3x_)):= 4 *cos(x)^3 ;
combine(4*cos(2x_)+cos(4x_)):= 8cos(x)^4-3;