/* Please include compiler name below (you may also include any other modules you would like to be loaded) COMPILER= gnu Please include All compiler flags and libraries as you want them run. You can simply copy this over from the Makefile's first few lines CC = cc OPT = -O3 CFLAGS = -Wall -std=gnu99 $(OPT) MKLROOT = /opt/intel/composer_xe_2013.1.117/mkl LDLIBS = -lrt -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a $(MKLROOT)/lib/intel64/libmkl_sequential.a $(MKLROOT)/lib/intel64/libmkl_core.a -Wl,--end-group -lpthread -lm */ #define DGEMM dgemm_ extern void DGEMM (char*, char*, int*, int*, int*, double*, double*, int*, double*, int*, double*, double*, int*); const char* dgemm_desc = "Reference dgemm."; /* This routine performs a dgemm operation * C := C + A * B * where A, B, and C are lda-by-lda matrices stored in column-major format. * On exit, A and B maintain their input values. * This function wraps a call to the BLAS-3 routine DGEMM, via the standard FORTRAN interface - hence the reference semantics. */ void square_dgemm (int N, double* A, double* B, double* C) { char TRANSA = 'N'; char TRANSB = 'N'; int M = N; int K = N; double ALPHA = 1.; double BETA = 1.; int LDA = N; int LDB = N; int LDC = N; DGEMM(&TRANSA, &TRANSB, &M, &N, &K, &ALPHA, A, &LDA, B, &LDB, &BETA, C, &LDC); }