#define CAXPBY_K caxpby_k
+#define COMATCOPY_K_CN comatcopy_k_cn
+#define COMATCOPY_K_RN comatcopy_k_rn
+#define COMATCOPY_K_CT comatcopy_k_ct
+#define COMATCOPY_K_RT comatcopy_k_rt
+#define COMATCOPY_K_CNC comatcopy_k_cnc
+#define COMATCOPY_K_RNC comatcopy_k_rnc
+#define COMATCOPY_K_CTC comatcopy_k_ctc
+#define COMATCOPY_K_RTC comatcopy_k_rtc
+
+
#else
#define CAMAX_K gotoblas -> camax_k
#define CLASWP_NCOPY gotoblas -> claswp_ncopy
#define CAXPBY_K gotoblas -> caxpby_k
+
+#define COMATCOPY_K_CN gotoblas -> comatcopy_k_cn
+#define COMATCOPY_K_RN gotoblas -> comatcopy_k_rn
+#define COMATCOPY_K_CT gotoblas -> comatcopy_k_ct
+#define COMATCOPY_K_RT gotoblas -> comatcopy_k_rt
+#define COMATCOPY_K_CNC gotoblas -> comatcopy_k_cnc
+#define COMATCOPY_K_RNC gotoblas -> comatcopy_k_rnc
+#define COMATCOPY_K_CTC gotoblas -> comatcopy_k_ctc
+#define COMATCOPY_K_RTC gotoblas -> comatcopy_k_rtc
+
#endif
#define CGEMM_NN cgemm_nn
int domatcopy_k_ct(BLASLONG, BLASLONG, double, double *, BLASLONG, double *, BLASLONG);
int domatcopy_k_rt(BLASLONG, BLASLONG, double, double *, BLASLONG, double *, BLASLONG);
+int comatcopy_k_cn(BLASLONG, BLASLONG, float, float, float *, BLASLONG, float *, BLASLONG);
+int comatcopy_k_rn(BLASLONG, BLASLONG, float, float, float *, BLASLONG, float *, BLASLONG);
+int comatcopy_k_ct(BLASLONG, BLASLONG, float, float, float *, BLASLONG, float *, BLASLONG);
+int comatcopy_k_rt(BLASLONG, BLASLONG, float, float, float *, BLASLONG, float *, BLASLONG);
+
+int comatcopy_k_cnc(BLASLONG, BLASLONG, float, float, float *, BLASLONG, float *, BLASLONG);
+int comatcopy_k_rnc(BLASLONG, BLASLONG, float, float, float *, BLASLONG, float *, BLASLONG);
+int comatcopy_k_ctc(BLASLONG, BLASLONG, float, float, float *, BLASLONG, float *, BLASLONG);
+int comatcopy_k_rtc(BLASLONG, BLASLONG, float, float, float *, BLASLONG, float *, BLASLONG);
+
+int zomatcopy_k_cn(BLASLONG, BLASLONG, double, double, double *, BLASLONG, double *, BLASLONG);
+int zomatcopy_k_rn(BLASLONG, BLASLONG, double, double, double *, BLASLONG, double *, BLASLONG);
+int zomatcopy_k_ct(BLASLONG, BLASLONG, double, double, double *, BLASLONG, double *, BLASLONG);
+int zomatcopy_k_rt(BLASLONG, BLASLONG, double, double, double *, BLASLONG, double *, BLASLONG);
+
+int zomatcopy_k_cnc(BLASLONG, BLASLONG, double, double, double *, BLASLONG, double *, BLASLONG);
+int zomatcopy_k_rnc(BLASLONG, BLASLONG, double, double, double *, BLASLONG, double *, BLASLONG);
+int zomatcopy_k_ctc(BLASLONG, BLASLONG, double, double, double *, BLASLONG, double *, BLASLONG);
+int zomatcopy_k_rtc(BLASLONG, BLASLONG, double, double, double *, BLASLONG, double *, BLASLONG);
+
+
#ifdef __CUDACC__
}
#endif
#define AXPBY_K ZAXPBY_K
+#define OMATCOPY_K_CN ZOMATCOPY_K_CN
+#define OMATCOPY_K_RN ZOMATCOPY_K_RN
+#define OMATCOPY_K_CT ZOMATCOPY_K_CT
+#define OMATCOPY_K_RT ZOMATCOPY_K_RT
+#define OMATCOPY_K_CNC ZOMATCOPY_K_CNC
+#define OMATCOPY_K_RNC ZOMATCOPY_K_RNC
+#define OMATCOPY_K_CTC ZOMATCOPY_K_CTC
+#define OMATCOPY_K_RTC ZOMATCOPY_K_RTC
+
#else
#define AMAX_K CAMAX_K
#define AXPBY_K CAXPBY_K
+#define OMATCOPY_K_CN COMATCOPY_K_CN
+#define OMATCOPY_K_RN COMATCOPY_K_RN
+#define OMATCOPY_K_CT COMATCOPY_K_CT
+#define OMATCOPY_K_RT COMATCOPY_K_RT
+#define OMATCOPY_K_CNC COMATCOPY_K_CNC
+#define OMATCOPY_K_RNC COMATCOPY_K_RNC
+#define OMATCOPY_K_CTC COMATCOPY_K_CTC
+#define OMATCOPY_K_RTC COMATCOPY_K_RTC
+
#endif
#endif
int (*domatcopy_k_rn) (BLASLONG, BLASLONG, double, double*, BLASLONG, double*, BLASLONG);
int (*domatcopy_k_rt) (BLASLONG, BLASLONG, double, double*, BLASLONG, double*, BLASLONG);
+ int (*comatcopy_k_cn) (BLASLONG, BLASLONG, float, float, float*, BLASLONG, float*, BLASLONG);
+ int (*comatcopy_k_ct) (BLASLONG, BLASLONG, float, float, float*, BLASLONG, float*, BLASLONG);
+ int (*comatcopy_k_rn) (BLASLONG, BLASLONG, float, float, float*, BLASLONG, float*, BLASLONG);
+ int (*comatcopy_k_rt) (BLASLONG, BLASLONG, float, float, float*, BLASLONG, float*, BLASLONG);
+
+ int (*comatcopy_k_cnc) (BLASLONG, BLASLONG, float, float, float*, BLASLONG, float*, BLASLONG);
+ int (*comatcopy_k_ctc) (BLASLONG, BLASLONG, float, float, float*, BLASLONG, float*, BLASLONG);
+ int (*comatcopy_k_rnc) (BLASLONG, BLASLONG, float, float, float*, BLASLONG, float*, BLASLONG);
+ int (*comatcopy_k_rtc) (BLASLONG, BLASLONG, float, float, float*, BLASLONG, float*, BLASLONG);
+
+ int (*zomatcopy_k_cn) (BLASLONG, BLASLONG, double, double, double*, BLASLONG, double*, BLASLONG);
+ int (*zomatcopy_k_ct) (BLASLONG, BLASLONG, double, double, double*, BLASLONG, double*, BLASLONG);
+ int (*zomatcopy_k_rn) (BLASLONG, BLASLONG, double, double, double*, BLASLONG, double*, BLASLONG);
+ int (*zomatcopy_k_rt) (BLASLONG, BLASLONG, double, double, double*, BLASLONG, double*, BLASLONG);
+
+ int (*zomatcopy_k_cnc) (BLASLONG, BLASLONG, double, double, double*, BLASLONG, double*, BLASLONG);
+ int (*zomatcopy_k_ctc) (BLASLONG, BLASLONG, double, double, double*, BLASLONG, double*, BLASLONG);
+ int (*zomatcopy_k_rnc) (BLASLONG, BLASLONG, double, double, double*, BLASLONG, double*, BLASLONG);
+ int (*zomatcopy_k_rtc) (BLASLONG, BLASLONG, double, double, double*, BLASLONG, double*, BLASLONG);
+
} gotoblas_t;
#define ZAXPBY_K zaxpby_k
+#define ZOMATCOPY_K_CN zomatcopy_k_cn
+#define ZOMATCOPY_K_RN zomatcopy_k_rn
+#define ZOMATCOPY_K_CT zomatcopy_k_ct
+#define ZOMATCOPY_K_RT zomatcopy_k_rt
+#define ZOMATCOPY_K_CNC zomatcopy_k_cnc
+#define ZOMATCOPY_K_RNC zomatcopy_k_rnc
+#define ZOMATCOPY_K_CTC zomatcopy_k_ctc
+#define ZOMATCOPY_K_RTC zomatcopy_k_rtc
+
+
#else
#define ZAMAX_K gotoblas -> zamax_k
#define ZLASWP_NCOPY gotoblas -> zlaswp_ncopy
#define ZAXPBY_K gotoblas -> zaxpby_k
+
+#define ZOMATCOPY_K_CN gotoblas -> zomatcopy_k_cn
+#define ZOMATCOPY_K_RN gotoblas -> zomatcopy_k_rn
+#define ZOMATCOPY_K_CT gotoblas -> zomatcopy_k_ct
+#define ZOMATCOPY_K_RT gotoblas -> zomatcopy_k_rt
+#define ZOMATCOPY_K_CNC gotoblas -> zomatcopy_k_cnc
+#define ZOMATCOPY_K_RNC gotoblas -> zomatcopy_k_rnc
+#define ZOMATCOPY_K_CTC gotoblas -> zomatcopy_k_ctc
+#define ZOMATCOPY_K_RTC gotoblas -> zomatcopy_k_rtc
+
#endif
#define ZGEMM_NN zgemm_nn
CBLAS3OBJS = \
cgemm.$(SUFFIX) csymm.$(SUFFIX) ctrmm.$(SUFFIX) \
ctrsm.$(SUFFIX) csyrk.$(SUFFIX) csyr2k.$(SUFFIX) \
- chemm.$(SUFFIX) cherk.$(SUFFIX) cher2k.$(SUFFIX)
+ chemm.$(SUFFIX) cherk.$(SUFFIX) cher2k.$(SUFFIX) \
+ comatcopy.$(SUFFIX)
ZBLAS1OBJS = \
zaxpy.$(SUFFIX) zaxpyc.$(SUFFIX) zswap.$(SUFFIX) \
ZBLAS3OBJS = \
zgemm.$(SUFFIX) zsymm.$(SUFFIX) ztrmm.$(SUFFIX) \
ztrsm.$(SUFFIX) zsyrk.$(SUFFIX) zsyr2k.$(SUFFIX) \
- zhemm.$(SUFFIX) zherk.$(SUFFIX) zher2k.$(SUFFIX)
+ zhemm.$(SUFFIX) zherk.$(SUFFIX) zher2k.$(SUFFIX) \
+ zomatcopy.$(SUFFIX)
ifdef SUPPORT_GEMM3M
somatcopy.$(SUFFIX) domatcopy.$(PSUFFIX) : omatcopy.c
$(CC) -c $(CFLAGS) $< -o $(@F)
+comatcopy.$(SUFFIX) domatcopy.$(PSUFFIX) : zomatcopy.c
+ $(CC) -c $(CFLAGS) $< -o $(@F)
+
+zomatcopy.$(SUFFIX) domatcopy.$(PSUFFIX) : zomatcopy.c
+ $(CC) -c $(CFLAGS) $< -o $(@F)
+
+
--- /dev/null
+/***************************************************************************
+Copyright (c) 2014, The OpenBLAS Project
+All rights reserved.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+1. Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in
+the documentation and/or other materials provided with the
+distribution.
+3. Neither the name of the OpenBLAS project nor the names of
+its contributors may be used to endorse or promote products
+derived from this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE OPENBLAS PROJECT OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*****************************************************************************/
+
+/***********************************************************
+ * 2014/06/09 Saar
+***********************************************************/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include "common.h"
+#ifdef FUNCTION_PROFILE
+#include "functable.h"
+#endif
+
+#if defined(DOUBLE)
+#define ERROR_NAME "ZOMATCOPY"
+#else
+#define ERROR_NAME "COMATCOPY"
+#endif
+
+#define BlasRowMajor 0
+#define BlasColMajor 1
+#define BlasNoTrans 0
+#define BlasTrans 1
+#define BlasTransConj 2
+#define BlasConj 3
+
+void NAME( char* ORDER, char* TRANS, blasint *rows, blasint *cols, FLOAT *alpha, FLOAT *a, blasint *lda, FLOAT *b, blasint *ldb)
+{
+
+ char Order, Trans;
+ int order=-1,trans=-1;
+ blasint info = -1;
+
+ Order = *ORDER;
+ Trans = *TRANS;
+
+ TOUPPER(Order);
+ TOUPPER(Trans);
+
+ if ( Order == 'C' ) order = BlasColMajor;
+ if ( Order == 'R' ) order = BlasRowMajor;
+ if ( Trans == 'N' ) trans = BlasNoTrans;
+ if ( Trans == 'T' ) trans = BlasTrans;
+ if ( Trans == 'C' ) trans = BlasTransConj;
+ if ( Trans == 'R' ) trans = BlasConj;
+
+ if ( order == BlasColMajor)
+ {
+ if ( trans == BlasNoTrans && *ldb < *rows ) info = 9;
+ if ( trans == BlasConj && *ldb < *rows ) info = 9;
+ if ( trans == BlasTrans && *ldb < *cols ) info = 9;
+ if ( trans == BlasTransConj && *ldb < *cols ) info = 9;
+ }
+ if ( order == BlasRowMajor)
+ {
+ if ( trans == BlasNoTrans && *ldb < *cols ) info = 9;
+ if ( trans == BlasConj && *ldb < *cols ) info = 9;
+ if ( trans == BlasTrans && *ldb < *rows ) info = 9;
+ if ( trans == BlasTransConj && *ldb < *rows ) info = 9;
+ }
+
+ if ( order == BlasColMajor && *lda < *rows ) info = 7;
+ if ( order == BlasRowMajor && *lda < *cols ) info = 7;
+ if ( *cols <= 0 ) info = 4;
+ if ( *rows <= 0 ) info = 3;
+ if ( trans < 0 ) info = 2;
+ if ( order < 0 ) info = 1;
+
+ if (info >= 0) {
+ BLASFUNC(xerbla)(ERROR_NAME, &info, sizeof(ERROR_NAME));
+ return;
+ }
+
+ if ( order == BlasColMajor )
+ {
+
+ if ( trans == BlasNoTrans )
+ {
+ OMATCOPY_K_CN(*rows, *cols, alpha[0], alpha[1], a, *lda, b, *ldb );
+ return;
+ }
+ if ( trans == BlasConj )
+ {
+ OMATCOPY_K_CNC(*rows, *cols, alpha[0], alpha[1], a, *lda, b, *ldb );
+ return;
+ }
+ if ( trans == BlasTrans )
+ {
+ OMATCOPY_K_CT(*rows, *cols, alpha[0], alpha[1], a, *lda, b, *ldb );
+ return;
+ }
+ if ( trans == BlasTransConj )
+ {
+ OMATCOPY_K_CTC(*rows, *cols, alpha[0], alpha[1], a, *lda, b, *ldb );
+ return;
+ }
+
+ }
+ else
+ {
+
+ if ( trans == BlasNoTrans )
+ {
+ OMATCOPY_K_RN(*rows, *cols, alpha[0], alpha[1], a, *lda, b, *ldb );
+ return;
+ }
+ if ( trans == BlasConj )
+ {
+ OMATCOPY_K_RNC(*rows, *cols, alpha[0], alpha[1], a, *lda, b, *ldb );
+ return;
+ }
+ if ( trans == BlasTrans )
+ {
+ OMATCOPY_K_RT(*rows, *cols, alpha[0], alpha[1], a, *lda, b, *ldb );
+ return;
+ }
+ if ( trans == BlasTransConj )
+ {
+ OMATCOPY_K_RTC(*rows, *cols, alpha[0], alpha[1], a, *lda, b, *ldb );
+ return;
+ }
+
+ }
+
+ return;
+
+}
+
+
domatcopy_k_cn$(TSUFFIX).$(SUFFIX) domatcopy_k_rn$(TSUFFIX).$(SUFFIX) \
domatcopy_k_ct$(TSUFFIX).$(SUFFIX) domatcopy_k_rt$(TSUFFIX).$(SUFFIX)
+CBLASOBJS += \
+ comatcopy_k_cn$(TSUFFIX).$(SUFFIX) comatcopy_k_rn$(TSUFFIX).$(SUFFIX) \
+ comatcopy_k_ct$(TSUFFIX).$(SUFFIX) comatcopy_k_rt$(TSUFFIX).$(SUFFIX) \
+ comatcopy_k_cnc$(TSUFFIX).$(SUFFIX) comatcopy_k_rnc$(TSUFFIX).$(SUFFIX) \
+ comatcopy_k_ctc$(TSUFFIX).$(SUFFIX) comatcopy_k_rtc$(TSUFFIX).$(SUFFIX)
+
+ZBLASOBJS += \
+ zomatcopy_k_cn$(TSUFFIX).$(SUFFIX) zomatcopy_k_rn$(TSUFFIX).$(SUFFIX) \
+ zomatcopy_k_ct$(TSUFFIX).$(SUFFIX) zomatcopy_k_rt$(TSUFFIX).$(SUFFIX) \
+ zomatcopy_k_cnc$(TSUFFIX).$(SUFFIX) zomatcopy_k_rnc$(TSUFFIX).$(SUFFIX) \
+ zomatcopy_k_ctc$(TSUFFIX).$(SUFFIX) zomatcopy_k_rtc$(TSUFFIX).$(SUFFIX)
+
SGEMMINCOPYOBJ_P = $(SGEMMINCOPYOBJ:.$(SUFFIX)=.$(PSUFFIX))
SGEMMITCOPYOBJ_P = $(SGEMMITCOPYOBJ:.$(SUFFIX)=.$(PSUFFIX))
endif
$(KDIR)domatcopy_k_cn$(TSUFFIX).$(SUFFIX) : $(KERNELDIR)/$(DOMATCOPY_CN)
- $(CC) $(CFLAGS) -c -DDOUBLE -UCOMPLEX $< -o $@
+ $(CC) $(CFLAGS) -c -DDOUBLE -UCOMPLEX -UROWM $< -o $@
ifndef DOMATCOPY_RN
DOMATCOPY_RN = ../arm/omatcopy_rn.c
endif
$(KDIR)domatcopy_k_rn$(TSUFFIX).$(SUFFIX) : $(KERNELDIR)/$(DOMATCOPY_RN)
- $(CC) $(CFLAGS) -c -DDOUBLE -UCOMPLEX $< -o $@
+ $(CC) $(CFLAGS) -c -DDOUBLE -UCOMPLEX -DROWM $< -o $@
ifndef DOMATCOPY_CT
DOMATCOPY_CT = ../arm/omatcopy_ct.c
endif
$(KDIR)domatcopy_k_ct$(TSUFFIX).$(SUFFIX) : $(KERNELDIR)/$(DOMATCOPY_CT)
- $(CC) $(CFLAGS) -c -DDOUBLE -UCOMPLEX $< -o $@
+ $(CC) $(CFLAGS) -c -DDOUBLE -UCOMPLEX -UROWM $< -o $@
ifndef DOMATCOPY_RT
DOMATCOPY_RT = ../arm/omatcopy_rt.c
endif
$(KDIR)domatcopy_k_rt$(TSUFFIX).$(SUFFIX) : $(KERNELDIR)/$(DOMATCOPY_RT)
- $(CC) $(CFLAGS) -c -DDOUBLE -UCOMPLEX $< -o $@
+ $(CC) $(CFLAGS) -c -DDOUBLE -UCOMPLEX -DROWM $< -o $@
ifndef SOMATCOPY_CN
SOMATCOPY_CN = ../arm/omatcopy_cn.c
endif
$(KDIR)somatcopy_k_cn$(TSUFFIX).$(SUFFIX) : $(KERNELDIR)/$(SOMATCOPY_CN)
- $(CC) $(CFLAGS) -c -UDOUBLE -UCOMPLEX $< -o $@
+ $(CC) $(CFLAGS) -c -UDOUBLE -UCOMPLEX -UROWM $< -o $@
ifndef SOMATCOPY_RN
SOMATCOPY_RN = ../arm/omatcopy_rn.c
endif
$(KDIR)somatcopy_k_rn$(TSUFFIX).$(SUFFIX) : $(KERNELDIR)/$(SOMATCOPY_RN)
- $(CC) $(CFLAGS) -c -UDOUBLE -UCOMPLEX $< -o $@
+ $(CC) $(CFLAGS) -c -UDOUBLE -UCOMPLEX -DROWM $< -o $@
ifndef SOMATCOPY_CT
SOMATCOPY_CT = ../arm/omatcopy_ct.c
endif
$(KDIR)somatcopy_k_ct$(TSUFFIX).$(SUFFIX) : $(KERNELDIR)/$(SOMATCOPY_CT)
- $(CC) $(CFLAGS) -c -UDOUBLE -UCOMPLEX $< -o $@
+ $(CC) $(CFLAGS) -c -UDOUBLE -UCOMPLEX -UROWM $< -o $@
ifndef SOMATCOPY_RT
SOMATCOPY_RT = ../arm/omatcopy_rt.c
endif
$(KDIR)somatcopy_k_rt$(TSUFFIX).$(SUFFIX) : $(KERNELDIR)/$(SOMATCOPY_RT)
- $(CC) $(CFLAGS) -c -UDOUBLE -UCOMPLEX $< -o $@
+ $(CC) $(CFLAGS) -c -UDOUBLE -UCOMPLEX -DROWM $< -o $@
+
+
+ifndef COMATCOPY_CN
+COMATCOPY_CN = ../arm/zomatcopy_cn.c
+endif
+
+$(KDIR)comatcopy_k_cn$(TSUFFIX).$(SUFFIX) : $(KERNELDIR)/$(COMATCOPY_CN)
+ $(CC) $(CFLAGS) -c -UDOUBLE -DCOMPLEX -UROWM -UCONJ $< -o $@
+
+ifndef COMATCOPY_RN
+COMATCOPY_RN = ../arm/zomatcopy_rn.c
+endif
+
+$(KDIR)comatcopy_k_rn$(TSUFFIX).$(SUFFIX) : $(KERNELDIR)/$(COMATCOPY_RN)
+ $(CC) $(CFLAGS) -c -UDOUBLE -DCOMPLEX -DROWM -UCONJ $< -o $@
+
+ifndef COMATCOPY_CT
+COMATCOPY_CT = ../arm/zomatcopy_ct.c
+endif
+
+$(KDIR)comatcopy_k_ct$(TSUFFIX).$(SUFFIX) : $(KERNELDIR)/$(COMATCOPY_CT)
+ $(CC) $(CFLAGS) -c -UDOUBLE -DCOMPLEX -UROWM -UCONJ $< -o $@
+
+ifndef COMATCOPY_RT
+COMATCOPY_RT = ../arm/zomatcopy_rt.c
+endif
+
+$(KDIR)comatcopy_k_rt$(TSUFFIX).$(SUFFIX) : $(KERNELDIR)/$(COMATCOPY_RT)
+ $(CC) $(CFLAGS) -c -UDOUBLE -DCOMPLEX -DROWM -UCONJ $< -o $@
+
+ifndef COMATCOPY_CNC
+COMATCOPY_CNC = ../arm/zomatcopy_cnc.c
+endif
+
+$(KDIR)comatcopy_k_cnc$(TSUFFIX).$(SUFFIX) : $(KERNELDIR)/$(COMATCOPY_CNC)
+ $(CC) $(CFLAGS) -c -UDOUBLE -DCOMPLEX -UROWM -DCONJ $< -o $@
+ifndef COMATCOPY_RNC
+COMATCOPY_RNC = ../arm/zomatcopy_rnc.c
+endif
+
+$(KDIR)comatcopy_k_rnc$(TSUFFIX).$(SUFFIX) : $(KERNELDIR)/$(COMATCOPY_RNC)
+ $(CC) $(CFLAGS) -c -UDOUBLE -DCOMPLEX -DROWM -DCONJ $< -o $@
+
+ifndef COMATCOPY_CTC
+COMATCOPY_CTC = ../arm/zomatcopy_ctc.c
+endif
+
+$(KDIR)comatcopy_k_ctc$(TSUFFIX).$(SUFFIX) : $(KERNELDIR)/$(COMATCOPY_CTC)
+ $(CC) $(CFLAGS) -c -UDOUBLE -DCOMPLEX -UROWM -DCONJ $< -o $@
+
+ifndef COMATCOPY_RTC
+COMATCOPY_RTC = ../arm/zomatcopy_rtc.c
+endif
+
+$(KDIR)comatcopy_k_rtc$(TSUFFIX).$(SUFFIX) : $(KERNELDIR)/$(COMATCOPY_RTC)
+ $(CC) $(CFLAGS) -c -UDOUBLE -DCOMPLEX -DROWM -DCONJ $< -o $@
+
+
+ifndef ZOMATCOPY_CN
+ZOMATCOPY_CN = ../arm/zomatcopy_cn.c
+endif
+
+$(KDIR)zomatcopy_k_cn$(TSUFFIX).$(SUFFIX) : $(KERNELDIR)/$(ZOMATCOPY_CN)
+ $(CC) $(CFLAGS) -c -DDOUBLE -DCOMPLEX -UROWM -UCONJ $< -o $@
+
+ifndef ZOMATCOPY_RN
+ZOMATCOPY_RN = ../arm/zomatcopy_rn.c
+endif
+$(KDIR)zomatcopy_k_rn$(TSUFFIX).$(SUFFIX) : $(KERNELDIR)/$(ZOMATCOPY_RN)
+ $(CC) $(CFLAGS) -c -DDOUBLE -DCOMPLEX -DROWM -UCONJ $< -o $@
+ifndef ZOMATCOPY_CT
+ZOMATCOPY_CT = ../arm/zomatcopy_ct.c
+endif
+
+$(KDIR)zomatcopy_k_ct$(TSUFFIX).$(SUFFIX) : $(KERNELDIR)/$(ZOMATCOPY_CT)
+ $(CC) $(CFLAGS) -c -DDOUBLE -DCOMPLEX -UROWM -UCONJ $< -o $@
+
+ifndef ZOMATCOPY_RT
+ZOMATCOPY_RT = ../arm/zomatcopy_rt.c
+endif
+
+$(KDIR)zomatcopy_k_rt$(TSUFFIX).$(SUFFIX) : $(KERNELDIR)/$(ZOMATCOPY_RT)
+ $(CC) $(CFLAGS) -c -DDOUBLE -DCOMPLEX -DROWM -UCONJ $< -o $@
+
+ifndef ZOMATCOPY_CNC
+ZOMATCOPY_CNC = ../arm/zomatcopy_cnc.c
+endif
+$(KDIR)zomatcopy_k_cnc$(TSUFFIX).$(SUFFIX) : $(KERNELDIR)/$(ZOMATCOPY_CNC)
+ $(CC) $(CFLAGS) -c -DDOUBLE -DCOMPLEX -UROWM -DCONJ $< -o $@
+ifndef ZOMATCOPY_RNC
+ZOMATCOPY_RNC = ../arm/zomatcopy_rnc.c
+endif
+
+$(KDIR)zomatcopy_k_rnc$(TSUFFIX).$(SUFFIX) : $(KERNELDIR)/$(ZOMATCOPY_RNC)
+ $(CC) $(CFLAGS) -c -DDOUBLE -DCOMPLEX -DROWM -DCONJ $< -o $@
+
+ifndef ZOMATCOPY_CTC
+ZOMATCOPY_CTC = ../arm/zomatcopy_ctc.c
+endif
+
+$(KDIR)zomatcopy_k_ctc$(TSUFFIX).$(SUFFIX) : $(KERNELDIR)/$(ZOMATCOPY_CTC)
+ $(CC) $(CFLAGS) -c -DDOUBLE -DCOMPLEX -UROWM -DCONJ $< -o $@
+
+ifndef ZOMATCOPY_RTC
+ZOMATCOPY_RTC = ../arm/zomatcopy_rtc.c
+endif
+$(KDIR)zomatcopy_k_rtc$(TSUFFIX).$(SUFFIX) : $(KERNELDIR)/$(ZOMATCOPY_RTC)
+ $(CC) $(CFLAGS) -c -DDOUBLE -DCOMPLEX -DROWM -DCONJ $< -o $@
--- /dev/null
+/***************************************************************************
+Copyright (c) 2013, The OpenBLAS Project
+All rights reserved.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+1. Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in
+the documentation and/or other materials provided with the
+distribution.
+3. Neither the name of the OpenBLAS project nor the names of
+its contributors may be used to endorse or promote products
+derived from this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE OPENBLAS PROJECT OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*****************************************************************************/
+
+#include "common.h"
+
+/*****************************************************
+ * 2014/06/09 Saar
+ *
+ * Order ColMajor
+ * No Trans
+ *
+******************************************************/
+
+int CNAME(BLASLONG rows, BLASLONG cols, FLOAT alpha_r, FLOAT alpha_i, FLOAT *a, BLASLONG lda, FLOAT *b, BLASLONG ldb)
+{
+ BLASLONG i,j,ia;
+ FLOAT *aptr,*bptr;
+
+ if ( rows <= 0 ) return(0);
+ if ( cols <= 0 ) return(0);
+
+ aptr = a;
+ bptr = b;
+
+ lda *= 2;
+ ldb *= 2;
+
+ for ( i=0; i<cols ; i++ )
+ {
+ ia = 0;
+
+ for(j=0; j<rows; j++)
+ {
+ bptr[ia] = alpha_r * aptr[ia] - alpha_i * aptr[ia+1];
+ bptr[ia+1] = alpha_r * aptr[ia+1] + alpha_i * aptr[ia];
+ ia+=2;
+ }
+ aptr += lda;
+ bptr += ldb;
+ }
+
+ return(0);
+
+}
+
+
--- /dev/null
+/***************************************************************************
+Copyright (c) 2013, The OpenBLAS Project
+All rights reserved.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+1. Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in
+the documentation and/or other materials provided with the
+distribution.
+3. Neither the name of the OpenBLAS project nor the names of
+its contributors may be used to endorse or promote products
+derived from this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE OPENBLAS PROJECT OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*****************************************************************************/
+
+#include "common.h"
+
+/*****************************************************
+ * 2014/06/09 Saar
+ *
+ * Order ColMajor
+ * No Trans, conjugate
+ *
+******************************************************/
+
+int CNAME(BLASLONG rows, BLASLONG cols, FLOAT alpha_r, FLOAT alpha_i, FLOAT *a, BLASLONG lda, FLOAT *b, BLASLONG ldb)
+{
+ BLASLONG i,j,ia;
+ FLOAT *aptr,*bptr;
+
+ if ( rows <= 0 ) return(0);
+ if ( cols <= 0 ) return(0);
+
+ aptr = a;
+ bptr = b;
+ lda *= 2;
+ ldb *= 2;
+
+ for ( i=0; i<cols ; i++ )
+ {
+ ia = 0;
+
+ for(j=0; j<rows; j++)
+ {
+ bptr[ia] = alpha_r * aptr[ia] + alpha_i * aptr[ia+1];
+ bptr[ia+1] = - alpha_r * aptr[ia+1] + alpha_i * aptr[ia];
+ ia += 2;
+ }
+ aptr += lda;
+ bptr += ldb;
+ }
+
+ return(0);
+
+}
+
+
--- /dev/null
+/***************************************************************************
+Copyright (c) 2013, The OpenBLAS Project
+All rights reserved.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+1. Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in
+the documentation and/or other materials provided with the
+distribution.
+3. Neither the name of the OpenBLAS project nor the names of
+its contributors may be used to endorse or promote products
+derived from this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE OPENBLAS PROJECT OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*****************************************************************************/
+
+#include "common.h"
+
+/*****************************************************
+ * 2014/06/09 Saar
+ *
+ * Order ColMajor
+ * Trans
+ *
+******************************************************/
+
+int CNAME(BLASLONG rows, BLASLONG cols, FLOAT alpha_r, FLOAT alpha_i, FLOAT *a, BLASLONG lda, FLOAT *b, BLASLONG ldb)
+{
+ BLASLONG i,j,ia,ib;
+ FLOAT *aptr,*bptr;
+
+ if ( rows <= 0 ) return(0);
+ if ( cols <= 0 ) return(0);
+
+ aptr = a;
+
+ lda *= 2;
+ ldb *= 2;
+ ib = 0;
+ for ( i=0; i<cols ; i++ )
+ {
+ bptr = &b[ib];
+ ia = 0;
+
+ for(j=0; j<rows; j++)
+ {
+ bptr[0] = alpha_r * aptr[ia] - alpha_i * aptr[ia+1];
+ bptr[1] = alpha_r * aptr[ia+1] + alpha_i * aptr[ia];
+ ia += 2;
+ bptr += ldb;
+ }
+ aptr += lda;
+ ib += 2;
+ }
+
+ return(0);
+
+}
+
+
--- /dev/null
+/***************************************************************************
+Copyright (c) 2013, The OpenBLAS Project
+All rights reserved.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+1. Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in
+the documentation and/or other materials provided with the
+distribution.
+3. Neither the name of the OpenBLAS project nor the names of
+its contributors may be used to endorse or promote products
+derived from this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE OPENBLAS PROJECT OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*****************************************************************************/
+
+#include "common.h"
+
+/*****************************************************
+ * 2014/06/09 Saar
+ *
+ * Order ColMajor
+ * Trans, conjugate
+ *
+******************************************************/
+
+int CNAME(BLASLONG rows, BLASLONG cols, FLOAT alpha_r, FLOAT alpha_i, FLOAT *a, BLASLONG lda, FLOAT *b, BLASLONG ldb)
+{
+ BLASLONG i,j,ia,ib;
+ FLOAT *aptr,*bptr;
+
+ if ( rows <= 0 ) return(0);
+ if ( cols <= 0 ) return(0);
+
+ aptr = a;
+
+ lda *= 2;
+ ldb *= 2;
+ ib = 0;
+ for ( i=0; i<cols ; i++ )
+ {
+ bptr = &b[ib];
+ ia = 0;
+
+ for(j=0; j<rows; j++)
+ {
+ bptr[0] = alpha_r * aptr[ia] + alpha_i * aptr[ia+1];
+ bptr[1] = - alpha_r * aptr[ia+1] + alpha_i * aptr[ia];
+ ia += 2;
+ bptr += ldb;
+ }
+ aptr += lda;
+ ib += 2;
+ }
+
+ return(0);
+
+}
+
+
--- /dev/null
+/***************************************************************************
+Copyright (c) 2013, The OpenBLAS Project
+All rights reserved.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+1. Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in
+the documentation and/or other materials provided with the
+distribution.
+3. Neither the name of the OpenBLAS project nor the names of
+its contributors may be used to endorse or promote products
+derived from this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE OPENBLAS PROJECT OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*****************************************************************************/
+
+#include "common.h"
+
+/*****************************************************
+ * 2014/06/09 Saar
+ *
+ * Order rowMajor
+ * No Trans
+ *
+******************************************************/
+
+int CNAME(BLASLONG rows, BLASLONG cols, FLOAT alpha_r, FLOAT alpha_i, FLOAT *a, BLASLONG lda, FLOAT *b, BLASLONG ldb)
+{
+ BLASLONG i,j,ia;
+ FLOAT *aptr,*bptr;
+
+ if ( rows <= 0 ) return(0);
+ if ( cols <= 0 ) return(0);
+
+ aptr = a;
+ bptr = b;
+
+ lda *=2;
+ ldb *=2;
+
+ for ( i=0; i<rows ; i++ )
+ {
+ ia = 0;
+
+ for(j=0; j<cols; j++)
+ {
+ bptr[ia] = alpha_r * aptr[ia] - alpha_i * aptr[ia+1];
+ bptr[ia+1] = alpha_r * aptr[ia+1] + alpha_i * aptr[ia];
+ ia += 2;
+ }
+ aptr += lda;
+ bptr += ldb;
+ }
+
+ return(0);
+
+}
+
+
--- /dev/null
+/***************************************************************************
+Copyright (c) 2013, The OpenBLAS Project
+All rights reserved.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+1. Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in
+the documentation and/or other materials provided with the
+distribution.
+3. Neither the name of the OpenBLAS project nor the names of
+its contributors may be used to endorse or promote products
+derived from this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE OPENBLAS PROJECT OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*****************************************************************************/
+
+#include "common.h"
+
+/*****************************************************
+ * 2014/06/09 Saar
+ *
+ * Order rowMajor
+ * No Trans , conjugate
+ *
+******************************************************/
+
+int CNAME(BLASLONG rows, BLASLONG cols, FLOAT alpha_r, FLOAT alpha_i, FLOAT *a, BLASLONG lda, FLOAT *b, BLASLONG ldb)
+{
+ BLASLONG i,j,ia;
+ FLOAT *aptr,*bptr;
+
+ if ( rows <= 0 ) return(0);
+ if ( cols <= 0 ) return(0);
+
+ aptr = a;
+ bptr = b;
+
+ lda *=2;
+ ldb *=2;
+
+ for ( i=0; i<rows ; i++ )
+ {
+ ia = 0;
+ for(j=0; j<cols; j++)
+ {
+ bptr[ia] = alpha_r * aptr[ia] + alpha_i * aptr[ia+1];
+ bptr[ia+1] = - alpha_r * aptr[ia+1] + alpha_i * aptr[ia];
+ ia += 2;
+ }
+ aptr += lda;
+ bptr += ldb;
+ }
+
+ return(0);
+
+}
+
+
--- /dev/null
+/***************************************************************************
+Copyright (c) 2013, The OpenBLAS Project
+All rights reserved.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+1. Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in
+the documentation and/or other materials provided with the
+distribution.
+3. Neither the name of the OpenBLAS project nor the names of
+its contributors may be used to endorse or promote products
+derived from this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE OPENBLAS PROJECT OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*****************************************************************************/
+
+#include "common.h"
+
+/*****************************************************
+ * 2014/06/09 Saar
+ *
+ * Order rowMajor
+ * Trans
+ *
+******************************************************/
+
+int CNAME(BLASLONG rows, BLASLONG cols, FLOAT alpha_r, FLOAT alpha_i, FLOAT *a, BLASLONG lda, FLOAT *b, BLASLONG ldb)
+{
+ BLASLONG i,j,ia,ib;
+ FLOAT *aptr,*bptr;
+
+ if ( rows <= 0 ) return(0);
+ if ( cols <= 0 ) return(0);
+
+ aptr = a;
+
+ lda *= 2;
+ ldb *= 2;
+ ib = 0;
+
+ for ( i=0; i<rows ; i++ )
+ {
+ bptr = &b[ib];
+ ia = 0;
+
+ for(j=0; j<cols; j++)
+ {
+ bptr[0] = alpha_r * aptr[ia] - alpha_i * aptr[ia+1];
+ bptr[1] = alpha_r * aptr[ia+1] + alpha_i * aptr[ia];
+ ia += 2;
+ bptr += ldb;
+ }
+ aptr += lda;
+ ib += 2;
+ }
+
+ return(0);
+
+}
+
+
--- /dev/null
+/***************************************************************************
+Copyright (c) 2013, The OpenBLAS Project
+All rights reserved.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+1. Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in
+the documentation and/or other materials provided with the
+distribution.
+3. Neither the name of the OpenBLAS project nor the names of
+its contributors may be used to endorse or promote products
+derived from this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE OPENBLAS PROJECT OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*****************************************************************************/
+
+#include "common.h"
+
+/*****************************************************
+ * 2014/06/09 Saar
+ *
+ * Order rowMajor
+ * Trans, conjugate
+ *
+******************************************************/
+
+int CNAME(BLASLONG rows, BLASLONG cols, FLOAT alpha_r, FLOAT alpha_i, FLOAT *a, BLASLONG lda, FLOAT *b, BLASLONG ldb)
+{
+ BLASLONG i,j,ia,ib;
+ FLOAT *aptr,*bptr;
+
+ if ( rows <= 0 ) return(0);
+ if ( cols <= 0 ) return(0);
+
+ aptr = a;
+
+ lda *= 2;
+ ldb *= 2;
+ ib = 0;
+
+ for ( i=0; i<rows ; i++ )
+ {
+ bptr = &b[ib];
+ ia = 0;
+
+ for(j=0; j<cols; j++)
+ {
+ bptr[0] = alpha_r * aptr[ia] + alpha_i * aptr[ia+1];
+ bptr[1] = - alpha_r * aptr[ia+1] + alpha_i * aptr[ia];
+ ia += 2;
+ bptr += ldb;
+ }
+ aptr += lda;
+ ib += 2;
+ }
+
+ return(0);
+
+}
+
+
saxpby_kTS, daxpby_kTS, caxpby_kTS, zaxpby_kTS,
somatcopy_k_cnTS, somatcopy_k_ctTS, somatcopy_k_rnTS, somatcopy_k_rtTS,
- domatcopy_k_cnTS, domatcopy_k_ctTS, domatcopy_k_rnTS, domatcopy_k_rtTS
+ domatcopy_k_cnTS, domatcopy_k_ctTS, domatcopy_k_rnTS, domatcopy_k_rtTS,
+ comatcopy_k_cnTS, comatcopy_k_ctTS, comatcopy_k_rnTS, comatcopy_k_rtTS,
+ comatcopy_k_cncTS, comatcopy_k_ctcTS, comatcopy_k_rncTS, comatcopy_k_rtcTS,
+ zomatcopy_k_cnTS, zomatcopy_k_ctTS, zomatcopy_k_rnTS, zomatcopy_k_rtTS,
+ zomatcopy_k_cncTS, zomatcopy_k_ctcTS, zomatcopy_k_rncTS, zomatcopy_k_rtcTS
};