/******************  complextr.c  (in su3.a) ****************************
*									*
* complex complextrace_su3( su3_matrix *a,*b)				*
* return Tr( A_adjoint*B )   						*
*/
#include "complex.h"
#include "su3.h"

complex complextrace_su3( su3_matrix *a, su3_matrix *b ) {
register int i,j;
register float sumr, sumi;
complex sum;
    for(sumr=0.0,sumi=0.0,i=0;i<3;i++)for(j=0;j<3;j++){
     sumr+= a->e[i][j].real*b->e[i][j].real + a->e[i][j].imag*b->e[i][j].imag;
     sumi+= a->e[i][j].real*b->e[i][j].imag - a->e[i][j].imag*b->e[i][j].real;
    }
    sum.real= sumr; sum.imag=sumi; 
    return(sum);
}
