#include /* This programme calculates the action density of the SU(3) caloron with the three constituents in the plane with z=0 such that the constituent coordinates add up to zero. */ main(argc,argv) int argc; char **argv; { double dAdAlnpsi(); double yx1,yx2,yx3,yy1,yy2,yy3,yz1,yz2,yz3,nu1,nu2,x,y,z,t; void message(); if(argc != 11)message(); if(sscanf(argv[1],"%le",&nu1)!= 1)message(); if(sscanf(argv[2],"%le",&nu2)!= 1)message(); if(sscanf(argv[3],"%le",&yx1)!= 1)message(); if(sscanf(argv[4],"%le",&yx2)!= 1)message(); if(sscanf(argv[5],"%le",&yy1)!= 1)message(); if(sscanf(argv[6],"%le",&yy2)!= 1)message(); if(sscanf(argv[7],"%le",&x)!= 1)message(); if(sscanf(argv[8],"%le",&y)!= 1)message(); if(sscanf(argv[9],"%le",&z)!= 1)message(); if(sscanf(argv[10],"%le",&t)!= 1)message(); if(nu1<0.0 || nu1>1.0 || nu2<0.0 || nu2>1.0 || nu1+nu2>1){ printf("nu1=%lg or nu2=%lg or nu3=%lg not between 0 and 1\n", nu1,nu2,1-nu1-nu2); exit(); } yz1=yz2=yz3=0.0; yx3= -yx1-yx2; yy3= -yy1-yy2; printf("nu1=%lg, r1=(%lg,%lg,%lg), ",nu1,yx1,yy1,yz1); printf("nu2=%lg, r2=(%lg,%lg,%lg), ",nu2,yx2,yy2,yz2); printf("nu3=%lg, r3=(%lg,%lg,%lg), \n",1-nu1-nu2,yx3,yy3,yz3); printf("S(%lg,%lg,%lg,%lg)=%16.10E\n",x,y,z,t,(-0.5)* dAdAlnpsi(nu1,nu2,yx1,yx2,yx3,yy1,yy2,yy3,yz1,yz2,yz3,x,y,z,t)); return(0); } void message(){ fprintf(stderr,"usage: su3 nu1 nu2 x1 x2 y1 y2 x y z t\n"); exit(); }