Function: hyperellchangecompose
Section: elliptic_curves
C-Name: hyperellchangecompose
Prototype: GGG
Help: hyperellchangecompose(C,m1, m2): C being a hyperelliptic curve given by a
 Weierstrass equation, compose the change of coordinates given by m1 and m2.
 C can be given either by a squarefree polynomial P such that C:y^2=P(x) or by
 a vector [P,Q] such that C:y^2+Q(x)*y=P(x) and Q^2+4P is squarefree.
Doc: $C$ being a hyperelliptic curve given by a Weierstrass equation,
 compose the changes of coordinates given by \kbd{m1} and \kbd{m2}.

 $C$ can be given either by a squarefree polynomial $P$ such that
 $C: y^{2} = P(x)$ or by a vector $[P,Q]$ such that
 $C: y^{2} + Q(x)\*y = P(x)$ and $Q^{2}+4\*P$ is squarefree.

 \bprog
 ? C = [Pol([a6,a5,a4,a3,a2,a1,a0]), Pol([b2,b1,b0])];
 ? m1 = [6, [0,1;2,3], 4*x^3+3*x^2+2*x+1];
 ? m2 = [7, [1,2;3,4], 5*x^3+4*x^2+3*x+2];
 ? m = hyperellchangecompose(C, m1, m2);
 ? A = hyperellchangepoint(C, hyperellchangepoint(C,[X,Y], m1), m2);
 ? A == hyperellchangepoint(C, [X,Y], m)
 %6 = 1
 @eprog
