Help:=proc():print(`Jac(P,x),Comp(P,Q,x)`): print(`El(x,i,f,y)`): end: #Jac(P,x): the Jacobian determinant #of the trans. x->P(x) Jac:=proc(P,x) local i,j,n: with(linalg): n:=nops(P): det(matrix(n,n, [ seq( seq( diff(P[i],x[j]),j=1..n),i=1..n) ] ) ): end: #x->P(Q(x)) Comp:=proc(P,Q,x) local i: subs({seq(x[i]=Q[i],i=1..nops(P))},P): end: #Inouts a list of variables, and a place i #and a function f of nops(x)-1 variables y #outputs the transormation x[i]->x[i]+f( not x[i]) El:=proc(x,i,f,y) local n,j: n:=nops(x): [op(1..i-1,x), x[i]+ subs({ seq(y[j]=x[j],j=1..i-1), seq(y[j]=x[j+1], j=i..n-1)},f) , op(i+1..n,x)]: end: