/****************** magsq_su3vec.c (in su3.a) ****************************** * * * float magsq_su3vec(a) su3_vector *a; * * return squared magnitude of an SU3 vector */ #include "complex.h" #include "su3.h" #ifndef FAST float magsq_su3vec(a) su3_vector *a; { register float sum; register int i; for(i=0,sum=0.0;i<3;i++)sum += a->c[i].real*a->c[i].real + a->c[i].imag*a->c[i].imag; return(sum); } #else float magsq_su3vec(a) su3_vector *a; { register float temp,sum; sum=0.0; temp = a->c[0].real*a->c[0].real; sum += temp; temp = a->c[0].imag*a->c[0].imag; sum += temp; temp = a->c[1].real*a->c[1].real; sum += temp; temp = a->c[1].imag*a->c[1].imag; sum += temp; temp = a->c[2].real*a->c[2].real; sum += temp; temp = a->c[2].imag*a->c[2].imag; sum += temp; return(sum); } #endif /* end ifdef FAST */