/* --------------------------------------------------------------------- * * -- PBLAS auxiliary routine (version 2.0) -- * University of Tennessee, Knoxville, Oak Ridge National Laboratory, * and University of California, Berkeley. * April 1, 1998 * * --------------------------------------------------------------------- */ /* * Include files */ #include "../pblas.h" #include "../PBpblas.h" #include "../PBtools.h" #include "../PBblacs.h" #include "../PBblas.h" PBTYP_T * PB_Cctypeset() { /* * Purpose * ======= * * PB_Cctypeset on the first call initializes a static structure contai- * ning typed information and returns a pointer to it. The other calls * to this routine just returns this pointer. * * -- Written on April 1, 1998 by * R. Clint Whaley, University of Tennessee, Knoxville 37996, USA. * * --------------------------------------------------------------------- */ /* * .. Local Scalars .. */ static int setup=0; static PBTYP_T TypeStruct; static cmplx zero, one, negone; /* .. * .. Executable Statements .. * */ if( setup ) return( &TypeStruct ); setup = 1; TypeStruct.type = SCPLX; TypeStruct.usiz = sizeof( float ); TypeStruct.size = sizeof( cmplx ); zero [REAL_PART] = ZERO; zero [IMAG_PART] = ZERO; one [REAL_PART] = ONE; one [IMAG_PART] = ZERO; negone[REAL_PART] = -ONE; negone[IMAG_PART] = ZERO; TypeStruct.zero = ((char *) zero); TypeStruct.one = ((char *) one); TypeStruct.negone = ((char *) negone); TypeStruct.Cgesd2d = Ccgesd2d; TypeStruct.Cgerv2d = Ccgerv2d; TypeStruct.Cgebs2d = Ccgebs2d; TypeStruct.Cgebr2d = Ccgebr2d; TypeStruct.Cgsum2d = Ccgsum2d; TypeStruct.Fmmadd = cmmadd_; TypeStruct.Fmmcadd = cmmcadd_; TypeStruct.Fmmtadd = cmmtadd_; TypeStruct.Fmmtcadd = cmmtcadd_; TypeStruct.Fmmdda = cmmdda_; TypeStruct.Fmmddac = cmmddac_; TypeStruct.Fmmddat = cmmddat_; TypeStruct.Fmmddact = cmmddact_; TypeStruct.Fcshft = ccshft_; TypeStruct.Frshft = crshft_; TypeStruct.Fvvdotu = cvvdotu_; TypeStruct.Fvvdotc = cvvdotc_; TypeStruct.Fset = cset_; TypeStruct.Ftzpad = ctzpad_; TypeStruct.Ftzpadcpy = ctzpadcpy_; TypeStruct.Ftzscal = ctzscal_; TypeStruct.Fhescal = chescal_; TypeStruct.Ftzcnjg = ctzcnjg_; TypeStruct.Faxpy = caxpy_; TypeStruct.Fcopy = ccopy_; TypeStruct.Fswap = cswap_; TypeStruct.Fgemv = cgemv_; TypeStruct.Fsymv = csymv_; TypeStruct.Fhemv = chemv_; TypeStruct.Ftrmv = ctrmv_; TypeStruct.Ftrsv = ctrsv_; TypeStruct.Fagemv = cagemv_; TypeStruct.Fasymv = casymv_; TypeStruct.Fahemv = cahemv_; TypeStruct.Fatrmv = catrmv_; TypeStruct.Fgerc = cgerc_; TypeStruct.Fgeru = cgeru_; TypeStruct.Fsyr = csyr_; TypeStruct.Fher = cher_; TypeStruct.Fsyr2 = csyr2_; TypeStruct.Fher2 = cher2_; TypeStruct.Fgemm = cgemm_; TypeStruct.Fsymm = csymm_; TypeStruct.Fhemm = chemm_; TypeStruct.Fsyrk = csyrk_; TypeStruct.Fherk = cherk_; TypeStruct.Fsyr2k = csyr2k_; TypeStruct.Fher2k = cher2k_; TypeStruct.Ftrmm = ctrmm_; TypeStruct.Ftrsm = ctrsm_; return( &TypeStruct ); /* * End of PB_Cctypeset */ }