# g2nmin-direct # Maple code for a direct computation of hyperKaehler potentials # for the next-to-minimal nilpotent orbit in G2 # by # Piotr Kobak and Andrew Swann # # This code is generated from a noweb source file g2.nw # See that for further description and comments. # RCS info from g2.nw: # $Id: g2.nw,v 1.4 2000/01/05 14:10:18 swann Exp $ read `g2-gen`; print(`Our base point is`); X := evalm( sl3([[0,s,0],[0,0,0],[0,0,0]]) + V10([t*sqrt(2),0,0]) ); print(`Defining J`); sX := RConj(X): XsX := so7Lb(X,sX): XsXX := evalm(-so7Lb(X,XsX)): XsXXsX := so7Lb(X,so7Lb(sX,XsX)): J := proc(XiA,r) local sXiA, XsXiA, IpsXiAX, IpsXiAXsXX; global X, sX, XsX, XsXX, XsXXsX, rho1, rho2, rho11, rho12, rho22; if (nargs = 1) then sXiA := Conj(XiA); else sXiA := RConj(XiA); fi; XsXiA := so7Lb(X,sXiA); IpsXiAX := MetricForm(sXiA,X,7); IpsXiAXsXX := MetricForm(sXiA,XsXX,7); evalm(-2*rho1*XsXiA +4*rho2*so7Lb(X, evalm(so7Lb(sXiA,XsX)+so7Lb(sX,XsXiA))) -2*(rho11*IpsXiAX - 2*rho12*IpsXiAXsXX) * XsX +4*(rho12*IpsXiAX - 2*rho22*IpsXiAXsXX) * XsXXsX ); end: J2P := proc(xA,r) if (nargs = 1) then evalm(J(J(xA))+xA); else evalm(J(J(xA,1),1)+xA); fi; end: print(`Computing change of variables`); eta1 := simplify(MetricForm(X,RConj(X),7)); eta2 := simplify(-MetricForm(XsX,XsX,7)); D1rho := { rhos=diff( rho(z1(s,t),z2(s,t)),s), rhot=diff( rho(z1(s,t),z2(s,t)),t)}: D1rho := subs( { D[1](rho)(z1(s,t),z2(s,t))=rho1, D[2](rho)(z1(s,t),z2(s,t))=rho2 }, D1rho ): D1rho := simplify(subs({z1(s,t)=eta1,z2(s,t)=eta2}, D1rho)): D1rhost:=simplify(solve(D1rho,{rho1,rho2})): D2rho := { rhoss=diff(rho(z1(s,t),z2(s,t)),s,s), rhost=diff(rho(z1(s,t),z2(s,t)),s,t), rhott=diff(rho(z1(s,t),z2(s,t)),t,t) }: D2rho := subs({ D[1](rho)(z1(s,t),z2(s,t))=rho1, D[2](rho)(z1(s,t),z2(s,t))=rho2, D[1,2](rho)(z1(s,t),z2(s,t))=rho12, D[2,1](rho)(z1(s,t),z2(s,t))=rho12, D[1,1](rho)(z1(s,t),z2(s,t))=rho11, D[2,2](rho)(z1(s,t),z2(s,t))=rho22 }, D2rho): D2rho := simplify(subs({z1(s,t)=eta1,z2(s,t)=eta2}, D2rho)): D2rho := subs(D1rhost,D2rho): D2rhost:=simplify(solve(D2rho,{rho11,rho12,rho22})): dsdt := D1rhost union D2rhost: J2stP := proc(xA,r) local out; global dsdt; if (nargs = 1) then out := subs(dsdt,J2P(xA)); else out := subs(dsdt,J2P(xA,1)); fi; map(expand,out); end: