Add support for RISC-Vtags/v0.3.13^2
@@ -593,7 +593,9 @@ endif | |||
ifndef BINARY_DEFINED | |||
ifneq ($(OSNAME), AIX) | |||
ifdef BINARY64 | |||
ifneq ($(ARCH), riscv64) | |||
CCOMMON_OPT += -m64 | |||
endif | |||
else | |||
CCOMMON_OPT += -m32 | |||
endif | |||
@@ -687,8 +689,10 @@ endif | |||
else | |||
ifdef BINARY64 | |||
ifneq ($(OSNAME), AIX) | |||
ifneq ($(ARCH), riscv64) | |||
FCOMMON_OPT += -m64 | |||
endif | |||
endif | |||
ifdef INTERFACE64 | |||
ifneq ($(INTERFACE64), 0) | |||
FCOMMON_OPT += -fdefault-integer-8 | |||
@@ -76,6 +76,7 @@ $architecture = ia64 if ($data =~ /ARCH_IA64/); | |||
$architecture = arm if ($data =~ /ARCH_ARM/); | |||
$architecture = arm64 if ($data =~ /ARCH_ARM64/); | |||
$architecture = zarch if ($data =~ /ARCH_ZARCH/); | |||
$architecture = riscv64 if ($data =~ /ARCH_RISCV64/); | |||
$defined = 0; | |||
@@ -408,6 +408,11 @@ please https://github.com/xianyi/OpenBLAS/issues/246 | |||
#include "common_mips.h" | |||
#endif | |||
#ifdef ARCH_RISCV64 | |||
#include "common_riscv64.h" | |||
#endif | |||
#ifdef ARCH_MIPS64 | |||
#include "common_mips64.h" | |||
#endif | |||
@@ -0,0 +1,93 @@ | |||
/***************************************************************************** | |||
Copyright (c) 2011-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 COPYRIGHT OWNER 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. | |||
**********************************************************************************/ | |||
/*********************************************************************/ | |||
/* Copyright 2009, 2010 The University of Texas at Austin. */ | |||
/* 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. */ | |||
/* */ | |||
/* THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY OF TEXAS AT */ | |||
/* AUSTIN ``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 UNIVERSITY OF TEXAS AT */ | |||
/* AUSTIN 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. */ | |||
/* */ | |||
/* The views and conclusions contained in the software and */ | |||
/* documentation are those of the authors and should not be */ | |||
/* interpreted as representing official policies, either expressed */ | |||
/* or implied, of The University of Texas at Austin. */ | |||
/*********************************************************************/ | |||
#ifndef COMMON_RISCV64 | |||
#define COMMON_RISCV64 | |||
#define MB __sync_synchronize() | |||
#define WMB __sync_synchronize() | |||
#define INLINE inline | |||
#ifndef ASSEMBLER | |||
static inline int blas_quickdivide(blasint x, blasint y){ | |||
return x / y; | |||
} | |||
#endif | |||
#define BUFFER_SIZE ( 32 << 20) | |||
#define SEEK_ADDRESS | |||
#endif |
@@ -0,0 +1,111 @@ | |||
/***************************************************************************** | |||
Copyright (c) 2011-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 COPYRIGHT OWNER 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. | |||
**********************************************************************************/ | |||
/*********************************************************************/ | |||
/* Copyright 2009, 2010 The University of Texas at Austin. */ | |||
/* 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. */ | |||
/* */ | |||
/* THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY OF TEXAS AT */ | |||
/* AUSTIN ``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 UNIVERSITY OF TEXAS AT */ | |||
/* AUSTIN 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. */ | |||
/* */ | |||
/* The views and conclusions contained in the software and */ | |||
/* documentation are those of the authors and should not be */ | |||
/* interpreted as representing official policies, either expressed */ | |||
/* or implied, of The University of Texas at Austin. */ | |||
/*********************************************************************/ | |||
#define CPU_UNKNOWN 0 | |||
static char *cpuname[] = { | |||
"UNKOWN", | |||
}; | |||
int detect(void){ | |||
return CPU_UNKNOWN; | |||
} | |||
char *get_corename(void){ | |||
return cpuname[detect()]; | |||
} | |||
void get_architecture(void){ | |||
printf("RISCV64"); | |||
} | |||
void get_subarchitecture(void){ | |||
} | |||
void get_subdirname(void){ | |||
printf("riscv64"); | |||
} | |||
void get_cpuconfig(void){ | |||
printf("#define UNKNOWN\n"); | |||
printf("#define L1_DATA_SIZE 65536\n"); | |||
printf("#define L1_DATA_LINESIZE 32\n"); | |||
printf("#define L2_SIZE 512488\n"); | |||
printf("#define L2_LINESIZE 32\n"); | |||
printf("#define DTB_DEFAULT_ENTRIES 64\n"); | |||
printf("#define DTB_SIZE 4096\n"); | |||
printf("#define L2_ASSOCIATIVE 4\n"); | |||
} | |||
void get_libname(void){ | |||
printf("riscv64\n"); | |||
} |
@@ -149,3 +149,7 @@ ARCH_ARM | |||
ARCH_ARM64 | |||
#endif | |||
#if defined(__riscv) | |||
ARCH_RISCV64 | |||
#endif | |||
@@ -604,6 +604,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||
#endif | |||
#ifdef FORCE_PPCG4 | |||
#define FORCE | |||
#define ARCHITECTURE "POWER" | |||
@@ -859,6 +860,20 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||
#else | |||
#endif | |||
#ifdef FORCE_RISCV64 | |||
#define FORCE | |||
#define ARCHITECTURE "RISCV64" | |||
#define SUBARCHITECTURE "RISCV64" | |||
#define SUBDIRNAME "riscv64" | |||
#define ARCHCONFIG "-DRISCV64 " \ | |||
"-DL1_DATA_SIZE=32768 -DL1_DATA_LINESIZE=32 " \ | |||
"-DL2_SIZE=1048576 -DL2_LINESIZE=32 " \ | |||
"-DDTB_DEFAULT_ENTRIES=128 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=4 " | |||
#define LIBNAME "riscv64" | |||
#define CORENAME "RISCV64" | |||
#else | |||
#endif | |||
#ifdef FORCE_CORTEXA15 | |||
#define FORCE | |||
#define ARCHITECTURE "ARM" | |||
@@ -1051,6 +1066,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||
#define OPENBLAS_SUPPORTED | |||
#endif | |||
#ifdef __riscv | |||
#include "cpuid_riscv64.c" | |||
#endif | |||
#ifdef __arm__ | |||
#include "cpuid_arm.c" | |||
#define OPENBLAS_SUPPORTED | |||
@@ -20,6 +20,10 @@ ifeq ($(ARCH), arm64) | |||
USE_TRMM = 1 | |||
endif | |||
ifeq ($(ARCH), riscv64) | |||
USE_TRMM = 1 | |||
endif | |||
ifeq ($(TARGET), LOONGSON3B) | |||
USE_TRMM = 1 | |||
endif | |||
@@ -0,0 +1,159 @@ | |||
SAMAXKERNEL = ../riscv64/amax.c | |||
DAMAXKERNEL = ../riscv64/amax.c | |||
CAMAXKERNEL = ../riscv64/zamax.c | |||
ZAMAXKERNEL = ../riscv64/zamax.c | |||
SAMINKERNEL = ../riscv64/amin.c | |||
DAMINKERNEL = ../riscv64/amin.c | |||
CAMINKERNEL = ../riscv64/zamin.c | |||
ZAMINKERNEL = ../riscv64/zamin.c | |||
SMAXKERNEL = ../riscv64/max.c | |||
DMAXKERNEL = ../riscv64/max.c | |||
SMINKERNEL = ../riscv64/min.c | |||
DMINKERNEL = ../riscv64/min.c | |||
ISAMAXKERNEL = ../riscv64/iamax.c | |||
IDAMAXKERNEL = ../riscv64/iamax.c | |||
ICAMAXKERNEL = ../riscv64/izamax.c | |||
IZAMAXKERNEL = ../riscv64/izamax.c | |||
ISAMINKERNEL = ../riscv64/iamin.c | |||
IDAMINKERNEL = ../riscv64/iamin.c | |||
ICAMINKERNEL = ../riscv64/izamin.c | |||
IZAMINKERNEL = ../riscv64/izamin.c | |||
ISMAXKERNEL = ../riscv64/imax.c | |||
IDMAXKERNEL = ../riscv64/imax.c | |||
ISMINKERNEL = ../riscv64/imin.c | |||
IDMINKERNEL = ../riscv64/imin.c | |||
SASUMKERNEL = ../riscv64/asum.c | |||
DASUMKERNEL = ../riscv64/asum.c | |||
CASUMKERNEL = ../riscv64/zasum.c | |||
ZASUMKERNEL = ../riscv64/zasum.c | |||
SAXPYKERNEL = ../riscv64/axpy.c | |||
DAXPYKERNEL = ../riscv64/axpy.c | |||
CAXPYKERNEL = ../riscv64/zaxpy.c | |||
ZAXPYKERNEL = ../riscv64/zaxpy.c | |||
SCOPYKERNEL = ../riscv64/copy.c | |||
DCOPYKERNEL = ../riscv64/copy.c | |||
CCOPYKERNEL = ../riscv64/zcopy.c | |||
ZCOPYKERNEL = ../riscv64/zcopy.c | |||
SDOTKERNEL = ../riscv64/dot.c | |||
DDOTKERNEL = ../riscv64/dot.c | |||
CDOTKERNEL = ../riscv64/zdot.c | |||
ZDOTKERNEL = ../riscv64/zdot.c | |||
SNRM2KERNEL = ../riscv64/nrm2.c | |||
DNRM2KERNEL = ../riscv64/nrm2.c | |||
CNRM2KERNEL = ../riscv64/znrm2.c | |||
ZNRM2KERNEL = ../riscv64/znrm2.c | |||
SROTKERNEL = ../riscv64/rot.c | |||
DROTKERNEL = ../riscv64/rot.c | |||
CROTKERNEL = ../riscv64/zrot.c | |||
ZROTKERNEL = ../riscv64/zrot.c | |||
SSCALKERNEL = ../riscv64/scal.c | |||
DSCALKERNEL = ../riscv64/scal.c | |||
CSCALKERNEL = ../riscv64/zscal.c | |||
ZSCALKERNEL = ../riscv64/zscal.c | |||
SSWAPKERNEL = ../riscv64/swap.c | |||
DSWAPKERNEL = ../riscv64/swap.c | |||
CSWAPKERNEL = ../riscv64/zswap.c | |||
ZSWAPKERNEL = ../riscv64/zswap.c | |||
SGEMVNKERNEL = ../riscv64/gemv_n.c | |||
DGEMVNKERNEL = ../riscv64/gemv_n.c | |||
CGEMVNKERNEL = ../riscv64/zgemv_n.c | |||
ZGEMVNKERNEL = ../riscv64/zgemv_n.c | |||
SGEMVTKERNEL = ../riscv64/gemv_t.c | |||
DGEMVTKERNEL = ../riscv64/gemv_t.c | |||
CGEMVTKERNEL = ../riscv64/zgemv_t.c | |||
ZGEMVTKERNEL = ../riscv64/zgemv_t.c | |||
STRMMKERNEL = ../generic/trmmkernel_2x2.c | |||
DTRMMKERNEL = ../generic/trmmkernel_2x2.c | |||
CTRMMKERNEL = ../generic/ztrmmkernel_2x2.c | |||
ZTRMMKERNEL = ../generic/ztrmmkernel_2x2.c | |||
SGEMMKERNEL = ../generic/gemmkernel_2x2.c | |||
SGEMMONCOPY = ../generic/gemm_ncopy_2.c | |||
SGEMMOTCOPY = ../generic/gemm_tcopy_2.c | |||
SGEMMONCOPYOBJ = sgemm_oncopy.o | |||
SGEMMOTCOPYOBJ = sgemm_otcopy.o | |||
DGEMMKERNEL = ../generic/gemmkernel_2x2.c | |||
DGEMMONCOPY = ../generic/gemm_ncopy_2.c | |||
DGEMMOTCOPY = ../generic/gemm_tcopy_2.c | |||
DGEMMONCOPYOBJ = dgemm_oncopy.o | |||
DGEMMOTCOPYOBJ = dgemm_otcopy.o | |||
CGEMMKERNEL = ../generic/zgemmkernel_2x2.c | |||
CGEMMONCOPY = ../generic/zgemm_ncopy_2.c | |||
CGEMMOTCOPY = ../generic/zgemm_tcopy_2.c | |||
CGEMMONCOPYOBJ = cgemm_oncopy.o | |||
CGEMMOTCOPYOBJ = cgemm_otcopy.o | |||
ZGEMMKERNEL = ../generic/zgemmkernel_2x2.c | |||
ZGEMMONCOPY = ../generic/zgemm_ncopy_2.c | |||
ZGEMMOTCOPY = ../generic/zgemm_tcopy_2.c | |||
ZGEMMONCOPYOBJ = zgemm_oncopy.o | |||
ZGEMMOTCOPYOBJ = zgemm_otcopy.o | |||
STRSMKERNEL_LN = ../generic/trsm_kernel_LN.c | |||
STRSMKERNEL_LT = ../generic/trsm_kernel_LT.c | |||
STRSMKERNEL_RN = ../generic/trsm_kernel_RN.c | |||
STRSMKERNEL_RT = ../generic/trsm_kernel_RT.c | |||
DTRSMKERNEL_LN = ../generic/trsm_kernel_LN.c | |||
DTRSMKERNEL_LT = ../generic/trsm_kernel_LT.c | |||
DTRSMKERNEL_RN = ../generic/trsm_kernel_RN.c | |||
DTRSMKERNEL_RT = ../generic/trsm_kernel_RT.c | |||
CTRSMKERNEL_LN = ../generic/trsm_kernel_LN.c | |||
CTRSMKERNEL_LT = ../generic/trsm_kernel_LT.c | |||
CTRSMKERNEL_RN = ../generic/trsm_kernel_RN.c | |||
CTRSMKERNEL_RT = ../generic/trsm_kernel_RT.c | |||
ZTRSMKERNEL_LN = ../generic/trsm_kernel_LN.c | |||
ZTRSMKERNEL_LT = ../generic/trsm_kernel_LT.c | |||
ZTRSMKERNEL_RN = ../generic/trsm_kernel_RN.c | |||
ZTRSMKERNEL_RT = ../generic/trsm_kernel_RT.c | |||
SSYMV_U_KERNEL = ../generic/symv_k.c | |||
SSYMV_L_KERNEL = ../generic/symv_k.c | |||
DSYMV_U_KERNEL = ../generic/symv_k.c | |||
DSYMV_L_KERNEL = ../generic/symv_k.c | |||
CSYMV_U_KERNEL = ../generic/zsymv_k.c | |||
CSYMV_L_KERNEL = ../generic/zsymv_k.c | |||
ZSYMV_U_KERNEL = ../generic/zsymv_k.c | |||
ZSYMV_L_KERNEL = ../generic/zsymv_k.c | |||
LSAME_KERNEL = ../generic/lsame.c | |||
SCABS_KERNEL = ../generic/cabs.c | |||
DCABS_KERNEL = ../generic/cabs.c | |||
QCABS_KERNEL = ../generic/cabs.c | |||
ifndef SGEMM_BETA | |||
SGEMM_BETA = ../generic/gemm_beta.c | |||
endif | |||
ifndef DGEMM_BETA | |||
DGEMM_BETA = ../generic/gemm_beta.c | |||
endif | |||
ifndef CGEMM_BETA | |||
CGEMM_BETA = ../generic/zgemm_beta.c | |||
endif | |||
ifndef ZGEMM_BETA | |||
ZGEMM_BETA = ../generic/zgemm_beta.c | |||
endif |
@@ -0,0 +1,75 @@ | |||
/*************************************************************************** | |||
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. | |||
*****************************************************************************/ | |||
/************************************************************************************** | |||
* 2013/09/14 Saar | |||
* BLASTEST float : OK | |||
* BLASTEST double : OK | |||
* CTEST : NoTest | |||
* TEST : NoTest | |||
* | |||
**************************************************************************************/ | |||
#include "common.h" | |||
#include <math.h> | |||
#if defined(DOUBLE) | |||
#define ABS fabs | |||
#else | |||
#define ABS fabsf | |||
#endif | |||
FLOAT CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x) | |||
{ | |||
BLASLONG i=0; | |||
BLASLONG ix=0; | |||
FLOAT maxf=0.0; | |||
if (n <= 0 || inc_x <= 0) return(maxf); | |||
maxf=ABS(x[0]); | |||
ix += inc_x; | |||
i++; | |||
while(i < n) | |||
{ | |||
if( ABS(x[ix]) > maxf ) | |||
{ | |||
maxf = ABS(x[ix]); | |||
} | |||
ix += inc_x; | |||
i++; | |||
} | |||
return(maxf); | |||
} | |||
@@ -0,0 +1,75 @@ | |||
/*************************************************************************** | |||
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. | |||
*****************************************************************************/ | |||
/************************************************************************************** | |||
* 2013/09/14 Saar | |||
* BLASTEST float : OK | |||
* BLASTEST double : OK | |||
* CTEST : NoTest | |||
* TEST : NoTest | |||
* | |||
**************************************************************************************/ | |||
#include "common.h" | |||
#include <math.h> | |||
#if defined(DOUBLE) | |||
#define ABS fabs | |||
#else | |||
#define ABS fabsf | |||
#endif | |||
FLOAT CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x) | |||
{ | |||
BLASLONG i=0; | |||
BLASLONG ix=0; | |||
FLOAT minf=0.0; | |||
if (n <= 0 || inc_x <= 0) return(minf); | |||
minf=ABS(x[0]); | |||
ix += inc_x; | |||
i++; | |||
while(i < n) | |||
{ | |||
if( ABS(x[ix]) < minf ) | |||
{ | |||
minf = ABS(x[ix]); | |||
} | |||
ix += inc_x; | |||
i++; | |||
} | |||
return(minf); | |||
} | |||
@@ -0,0 +1,67 @@ | |||
/*************************************************************************** | |||
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. | |||
*****************************************************************************/ | |||
/************************************************************************************** | |||
* 2013/09/14 Saar | |||
* BLASTEST float : OK | |||
* BLASTEST double : OK | |||
* CTEST : OK | |||
* TEST : OK | |||
* | |||
**************************************************************************************/ | |||
#include "common.h" | |||
#include <math.h> | |||
#if defined(DOUBLE) | |||
#define ABS fabs | |||
#else | |||
#define ABS fabsf | |||
#endif | |||
FLOAT CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x) | |||
{ | |||
BLASLONG i=0; | |||
FLOAT sumf = 0.0; | |||
if (n <= 0 || inc_x <= 0) return(sumf); | |||
n *= inc_x; | |||
while(i < n) | |||
{ | |||
sumf += ABS(x[i]); | |||
i += inc_x; | |||
} | |||
return(sumf); | |||
} | |||
@@ -0,0 +1,96 @@ | |||
/*************************************************************************** | |||
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" | |||
int CNAME(BLASLONG n, FLOAT alpha, FLOAT *x, BLASLONG inc_x, FLOAT beta, FLOAT *y, BLASLONG inc_y) | |||
{ | |||
BLASLONG i=0; | |||
BLASLONG ix,iy; | |||
if ( n < 0 ) return(0); | |||
ix = 0; | |||
iy = 0; | |||
if ( beta == 0.0 ) | |||
{ | |||
if ( alpha == 0.0 ) | |||
{ | |||
while(i < n) | |||
{ | |||
y[iy] = 0.0 ; | |||
iy += inc_y ; | |||
i++ ; | |||
} | |||
} | |||
else | |||
{ | |||
while(i < n) | |||
{ | |||
y[iy] = alpha * x[ix] ; | |||
ix += inc_x ; | |||
iy += inc_y ; | |||
i++ ; | |||
} | |||
} | |||
} | |||
else | |||
{ | |||
if ( alpha == 0.0 ) | |||
{ | |||
while(i < n) | |||
{ | |||
y[iy] = beta * y[iy] ; | |||
iy += inc_y ; | |||
i++ ; | |||
} | |||
} | |||
else | |||
{ | |||
while(i < n) | |||
{ | |||
y[iy] = alpha * x[ix] + beta * y[iy] ; | |||
ix += inc_x ; | |||
iy += inc_y ; | |||
i++ ; | |||
} | |||
} | |||
} | |||
return(0); | |||
} | |||
@@ -0,0 +1,64 @@ | |||
/*************************************************************************** | |||
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. | |||
*****************************************************************************/ | |||
/************************************************************************************** | |||
* 2013/09/14 Saar | |||
* BLASTEST float : OK | |||
* BLASTEST double : OK | |||
* CTEST : OK | |||
* TEST : OK | |||
* | |||
**************************************************************************************/ | |||
#include "common.h" | |||
int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG inc_y, FLOAT *dummy, BLASLONG dummy2) | |||
{ | |||
BLASLONG i=0; | |||
BLASLONG ix,iy; | |||
if ( n < 0 ) return(0); | |||
if ( da == 0.0 ) return(0); | |||
ix = 0; | |||
iy = 0; | |||
while(i < n) | |||
{ | |||
y[iy] += da * x[ix] ; | |||
ix += inc_x ; | |||
iy += inc_y ; | |||
i++ ; | |||
} | |||
return(0); | |||
} | |||
@@ -0,0 +1,59 @@ | |||
/*************************************************************************** | |||
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. | |||
*****************************************************************************/ | |||
/************************************************************************************** | |||
* 2013/09/14 Saar | |||
* BLASTEST float : OK | |||
* BLASTEST double : OK | |||
* CTEST : OK | |||
* TEST : OK | |||
* | |||
**************************************************************************************/ | |||
#include "common.h" | |||
int CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG inc_y) | |||
{ | |||
BLASLONG i=0; | |||
BLASLONG ix=0,iy=0; | |||
if ( n < 0 ) return(0); | |||
while(i < n) | |||
{ | |||
y[iy] = x[ix] ; | |||
ix += inc_x ; | |||
iy += inc_y ; | |||
i++ ; | |||
} | |||
return(0); | |||
} | |||
@@ -0,0 +1,64 @@ | |||
/*************************************************************************** | |||
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. | |||
*****************************************************************************/ | |||
/************************************************************************************** | |||
* 2013/09/14 Saar | |||
* BLASTEST float : OK | |||
* BLASTEST double : OK | |||
* CTEST : OK | |||
* TEST : OK | |||
* | |||
**************************************************************************************/ | |||
#include "common.h" | |||
#if defined(DSDOT) | |||
double CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG inc_y) | |||
#else | |||
FLOAT CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG inc_y) | |||
#endif | |||
{ | |||
BLASLONG i=0; | |||
BLASLONG ix=0,iy=0; | |||
double dot = 0.0 ; | |||
if ( n < 0 ) return(dot); | |||
while(i < n) | |||
{ | |||
dot += y[iy] * x[ix] ; | |||
ix += inc_x ; | |||
iy += inc_y ; | |||
i++ ; | |||
} | |||
return(dot); | |||
} | |||
@@ -0,0 +1,67 @@ | |||
/*************************************************************************** | |||
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. | |||
*****************************************************************************/ | |||
/************************************************************************************** | |||
* * 2013/09/14 Saar | |||
* * BLASTEST float : OK | |||
* * BLASTEST double : OK | |||
* CTEST : OK | |||
* TEST : OK | |||
* * | |||
* **************************************************************************************/ | |||
#include "common.h" | |||
int CNAME(BLASLONG m, BLASLONG n, BLASLONG dummy1, FLOAT alpha, FLOAT *a, BLASLONG lda, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG inc_y, FLOAT *buffer) | |||
{ | |||
BLASLONG i; | |||
BLASLONG ix,iy; | |||
BLASLONG j; | |||
FLOAT *a_ptr; | |||
FLOAT temp; | |||
ix = 0; | |||
a_ptr = a; | |||
for (j=0; j<n; j++) | |||
{ | |||
temp = alpha * x[ix]; | |||
iy = 0; | |||
for (i=0; i<m; i++) | |||
{ | |||
y[iy] += temp * a_ptr[i]; | |||
iy += inc_y; | |||
} | |||
a_ptr += lda; | |||
ix += inc_x; | |||
} | |||
return(0); | |||
} | |||
@@ -0,0 +1,68 @@ | |||
/*************************************************************************** | |||
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. | |||
*****************************************************************************/ | |||
/************************************************************************************** | |||
* * 2013/09/14 Saar | |||
* * BLASTEST float : OK | |||
* * BLASTEST double : OK | |||
* CTEST : OK | |||
* TEST : OK | |||
* * | |||
* **************************************************************************************/ | |||
#include "common.h" | |||
int CNAME(BLASLONG m, BLASLONG n, BLASLONG dummy1, FLOAT alpha, FLOAT *a, BLASLONG lda, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG inc_y, FLOAT *buffer) | |||
{ | |||
BLASLONG i; | |||
BLASLONG ix,iy; | |||
BLASLONG j; | |||
FLOAT *a_ptr; | |||
FLOAT temp; | |||
iy = 0; | |||
a_ptr = a; | |||
for (j=0; j<n; j++) | |||
{ | |||
temp = 0.0; | |||
ix = 0; | |||
for (i=0; i<m; i++) | |||
{ | |||
temp += a_ptr[i] * x[ix]; | |||
ix += inc_x; | |||
} | |||
y[iy] += alpha * temp; | |||
iy += inc_y; | |||
a_ptr += lda; | |||
} | |||
return(0); | |||
} | |||
@@ -0,0 +1,77 @@ | |||
/*************************************************************************** | |||
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. | |||
*****************************************************************************/ | |||
/************************************************************************************** | |||
* 2013/09/14 Saar | |||
* BLASTEST float : NoTest | |||
* BLASTEST double : NoTest | |||
* CTEST : OK | |||
* TEST : OK | |||
* | |||
**************************************************************************************/ | |||
#include "common.h" | |||
#include <math.h> | |||
#if defined(DOUBLE) | |||
#define ABS fabs | |||
#else | |||
#define ABS fabsf | |||
#endif | |||
BLASLONG CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x) | |||
{ | |||
BLASLONG i=0; | |||
BLASLONG ix=0; | |||
FLOAT maxf=0.0; | |||
BLASLONG max=0; | |||
if (n <= 0 || inc_x <= 0) return(max); | |||
maxf=ABS(x[0]); | |||
ix += inc_x; | |||
i++; | |||
while(i < n) | |||
{ | |||
if( ABS(x[ix]) > maxf ) | |||
{ | |||
max = i; | |||
maxf = ABS(x[ix]); | |||
} | |||
ix += inc_x; | |||
i++; | |||
} | |||
return(max+1); | |||
} | |||
@@ -0,0 +1,77 @@ | |||
/*************************************************************************** | |||
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. | |||
*****************************************************************************/ | |||
/************************************************************************************** | |||
* 2013/09/14 Saar | |||
* BLASTEST float : NoTest | |||
* BLASTEST double : NoTest | |||
* CTEST : NoTest | |||
* TEST : NoTest | |||
* | |||
**************************************************************************************/ | |||
#include "common.h" | |||
#include <math.h> | |||
#if defined(DOUBLE) | |||
#define ABS fabs | |||
#else | |||
#define ABS fabsf | |||
#endif | |||
BLASLONG CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x) | |||
{ | |||
BLASLONG i=0; | |||
BLASLONG ix=0; | |||
FLOAT minf=0.0; | |||
BLASLONG min=0; | |||
if (n <= 0 || inc_x <= 0) return(min); | |||
minf=ABS(x[0]); | |||
ix += inc_x; | |||
i++; | |||
while(i < n) | |||
{ | |||
if( ABS(x[ix]) < ABS(minf) ) | |||
{ | |||
min = i; | |||
minf = ABS(x[ix]); | |||
} | |||
ix += inc_x; | |||
i++; | |||
} | |||
return(min+1); | |||
} | |||
@@ -0,0 +1,69 @@ | |||
/*************************************************************************** | |||
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. | |||
*****************************************************************************/ | |||
/************************************************************************************** | |||
* 2013/09/14 Saar | |||
* BLASTEST float : NoTest | |||
* BLASTEST double : NoTest | |||
* CTEST : NoTest | |||
* TEST : NoTest | |||
* | |||
**************************************************************************************/ | |||
#include "common.h" | |||
#include <math.h> | |||
BLASLONG CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x) | |||
{ | |||
BLASLONG i=0; | |||
BLASLONG ix=0; | |||
FLOAT maxf=0.0; | |||
BLASLONG max=0; | |||
if (n <= 0 || inc_x <= 0) return(max); | |||
maxf=x[0]; | |||
ix += inc_x; | |||
i++; | |||
while(i < n) | |||
{ | |||
if( x[ix] > maxf ) | |||
{ | |||
max = i; | |||
maxf = x[ix]; | |||
} | |||
ix += inc_x; | |||
i++; | |||
} | |||
return(max+1); | |||
} | |||
@@ -0,0 +1,67 @@ | |||
/*************************************************************************** | |||
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. | |||
*****************************************************************************/ | |||
/************************************************************************************** | |||
* 2013/08/19 Saar | |||
* BLASTEST float | |||
* BLASTEST double | |||
* | |||
**************************************************************************************/ | |||
#include "common.h" | |||
#include <math.h> | |||
BLASLONG CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x) | |||
{ | |||
BLASLONG i=0; | |||
BLASLONG ix=0; | |||
FLOAT minf=0.0; | |||
BLASLONG min=0; | |||
if (n <= 0 || inc_x <= 0) return(min); | |||
minf=x[0]; | |||
ix += inc_x; | |||
i++; | |||
while(i < n) | |||
{ | |||
if( x[ix] > minf ) | |||
{ | |||
min = i; | |||
minf = x[ix]; | |||
} | |||
ix += inc_x; | |||
i++; | |||
} | |||
return(min+1); | |||
} | |||
@@ -0,0 +1,81 @@ | |||
/*************************************************************************** | |||
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. | |||
*****************************************************************************/ | |||
/************************************************************************************** | |||
* 2013/09/14 Saar | |||
* BLASTEST float : NoTest | |||
* BLASTEST double : NoTest | |||
* CTEST : OK | |||
* TEST : OK | |||
* | |||
**************************************************************************************/ | |||
#include "common.h" | |||
#include <math.h> | |||
#if defined(DOUBLE) | |||
#define ABS fabs | |||
#else | |||
#define ABS fabsf | |||
#endif | |||
#define CABS1(x,i) ABS(x[i])+ABS(x[i+1]) | |||
BLASLONG CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x) | |||
{ | |||
BLASLONG i=0; | |||
BLASLONG ix=0; | |||
FLOAT maxf; | |||
BLASLONG max=0; | |||
BLASLONG inc_x2; | |||
if (n <= 0 || inc_x <= 0) return(max); | |||
inc_x2 = 2 * inc_x; | |||
maxf = CABS1(x,0); | |||
ix += inc_x2; | |||
i++; | |||
while(i < n) | |||
{ | |||
if( CABS1(x,ix) > maxf ) | |||
{ | |||
max = i; | |||
maxf = CABS1(x,ix); | |||
} | |||
ix += inc_x2; | |||
i++; | |||
} | |||
return(max+1); | |||
} | |||
@@ -0,0 +1,81 @@ | |||
/*************************************************************************** | |||
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. | |||
*****************************************************************************/ | |||
/************************************************************************************** | |||
* 2013/09/14 Saar | |||
* BLASTEST float : NoTest | |||
* BLASTEST double : NoTest | |||
* CTEST : NoTest | |||
* TEST : NoTest | |||
* | |||
**************************************************************************************/ | |||
#include "common.h" | |||
#include <math.h> | |||
#if defined(DOUBLE) | |||
#define ABS fabs | |||
#else | |||
#define ABS fabsf | |||
#endif | |||
#define CABS1(x,i) ABS(x[i])+ABS(x[i+1]) | |||
BLASLONG CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x) | |||
{ | |||
BLASLONG i=0; | |||
BLASLONG ix=0; | |||
FLOAT minf; | |||
BLASLONG min=0; | |||
BLASLONG inc_x2; | |||
if (n <= 0 || inc_x <= 0) return(min); | |||
inc_x2 = 2 * inc_x; | |||
minf = CABS1(x,0); | |||
ix += inc_x2; | |||
i++; | |||
while(i < n) | |||
{ | |||
if( CABS1(x,ix) < minf ) | |||
{ | |||
min = i; | |||
minf = CABS1(x,ix); | |||
} | |||
ix += inc_x2; | |||
i++; | |||
} | |||
return(min+1); | |||
} | |||
@@ -0,0 +1,65 @@ | |||
/*************************************************************************** | |||
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. | |||
*****************************************************************************/ | |||
/************************************************************************************** | |||
* 2013/09/14 Saar | |||
* BLASTEST float : NoTest | |||
* BLASTEST double : NoTest | |||
* CTEST : NoTest | |||
* TEST : NoTest | |||
* | |||
**************************************************************************************/ | |||
#include "common.h" | |||
#include <math.h> | |||
FLOAT CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x) | |||
{ | |||
BLASLONG i=0; | |||
BLASLONG ix=0; | |||
FLOAT maxf=0.0; | |||
if (n <= 0 || inc_x <= 0) return(maxf); | |||
maxf=x[0]; | |||
ix += inc_x; | |||
i++; | |||
while(i < n) | |||
{ | |||
if( x[ix] > maxf ) | |||
{ | |||
maxf = x[ix]; | |||
} | |||
ix += inc_x; | |||
i++; | |||
} | |||
return(maxf); | |||
} | |||
@@ -0,0 +1,65 @@ | |||
/*************************************************************************** | |||
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. | |||
*****************************************************************************/ | |||
/************************************************************************************** | |||
* 2013/09/14 Saar | |||
* BLASTEST float : NoTest | |||
* BLASTEST double : NoTest | |||
* CTEST : NoTest | |||
* TEST : NoTest | |||
* | |||
**************************************************************************************/ | |||
#include "common.h" | |||
#include <math.h> | |||
FLOAT CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x) | |||
{ | |||
BLASLONG i=0; | |||
BLASLONG ix=0; | |||
FLOAT minf=0.0; | |||
if (n <= 0 || inc_x <= 0) return(minf); | |||
minf=x[0]; | |||
ix += inc_x; | |||
i++; | |||
while(i < n) | |||
{ | |||
if( x[ix] < minf ) | |||
{ | |||
minf = x[ix]; | |||
} | |||
ix += inc_x; | |||
i++; | |||
} | |||
return(minf); | |||
} | |||
@@ -0,0 +1,88 @@ | |||
/*************************************************************************** | |||
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. | |||
*****************************************************************************/ | |||
/************************************************************************************** | |||
* 2013/09/13 Saar | |||
* BLASTEST float : OK | |||
* BLASTEST double : OK | |||
* CTEST : OK | |||
* TEST : OK | |||
* | |||
**************************************************************************************/ | |||
#include "common.h" | |||
#include <math.h> | |||
#if defined(DOUBLE) | |||
#define ABS fabs | |||
#else | |||
#define ABS fabsf | |||
#endif | |||
FLOAT CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x) | |||
{ | |||
BLASLONG i=0; | |||
FLOAT scale = 0.0; | |||
FLOAT ssq = 1.0; | |||
FLOAT absxi = 0.0; | |||
if (n <= 0 || inc_x <= 0) return(0.0); | |||
if ( n == 1 ) return( ABS(x[0]) ); | |||
n *= inc_x; | |||
while(i < n) | |||
{ | |||
if ( x[i] != 0.0 ) | |||
{ | |||
absxi = ABS( x[i] ); | |||
if ( scale < absxi ) | |||
{ | |||
ssq = 1 + ssq * ( scale / absxi ) * ( scale / absxi ); | |||
scale = absxi ; | |||
} | |||
else | |||
{ | |||
ssq += ( absxi/scale ) * ( absxi/scale ); | |||
} | |||
} | |||
i += inc_x; | |||
} | |||
scale = scale * sqrt( ssq ); | |||
return(scale); | |||
} | |||
@@ -0,0 +1,90 @@ | |||
/*************************************************************************** | |||
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, FLOAT *a, BLASLONG lda, FLOAT *b, BLASLONG ldb) | |||
{ | |||
BLASLONG i,j; | |||
FLOAT *aptr,*bptr; | |||
if ( rows <= 0 ) return(0); | |||
if ( cols <= 0 ) return(0); | |||
aptr = a; | |||
bptr = b; | |||
if ( alpha == 0.0 ) | |||
{ | |||
for ( i=0; i<cols ; i++ ) | |||
{ | |||
for(j=0; j<rows; j++) | |||
{ | |||
bptr[j] = 0.0; | |||
} | |||
bptr += ldb; | |||
} | |||
return(0); | |||
} | |||
if ( alpha == 1.0 ) | |||
{ | |||
for ( i=0; i<cols ; i++ ) | |||
{ | |||
for(j=0; j<rows; j++) | |||
{ | |||
bptr[j] = aptr[j]; | |||
} | |||
aptr += lda; | |||
bptr += ldb; | |||
} | |||
return(0); | |||
} | |||
for ( i=0; i<cols ; i++ ) | |||
{ | |||
for(j=0; j<rows; j++) | |||
{ | |||
bptr[j] = alpha * aptr[j]; | |||
} | |||
aptr += lda; | |||
bptr += ldb; | |||
} | |||
return(0); | |||
} | |||
@@ -0,0 +1,89 @@ | |||
/*************************************************************************** | |||
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, FLOAT *a, BLASLONG lda, FLOAT *b, BLASLONG ldb) | |||
{ | |||
BLASLONG i,j; | |||
FLOAT *aptr,*bptr; | |||
if ( rows <= 0 ) return(0); | |||
if ( cols <= 0 ) return(0); | |||
aptr = a; | |||
if ( alpha == 0.0 ) | |||
{ | |||
for ( i=0; i<cols ; i++ ) | |||
{ | |||
bptr = &b[i]; | |||
for(j=0; j<rows; j++) | |||
{ | |||
bptr[j*ldb] = 0.0; | |||
} | |||
} | |||
return(0); | |||
} | |||
if ( alpha == 1.0 ) | |||
{ | |||
for ( i=0; i<cols ; i++ ) | |||
{ | |||
bptr = &b[i]; | |||
for(j=0; j<rows; j++) | |||
{ | |||
bptr[j*ldb] = aptr[j]; | |||
} | |||
aptr += lda; | |||
} | |||
return(0); | |||
} | |||
for ( i=0; i<cols ; i++ ) | |||
{ | |||
bptr = &b[i]; | |||
for(j=0; j<rows; j++) | |||
{ | |||
bptr[j*ldb] = alpha * aptr[j]; | |||
} | |||
aptr += lda; | |||
} | |||
return(0); | |||
} | |||
@@ -0,0 +1,90 @@ | |||
/*************************************************************************** | |||
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, FLOAT *a, BLASLONG lda, FLOAT *b, BLASLONG ldb) | |||
{ | |||
BLASLONG i,j; | |||
FLOAT *aptr,*bptr; | |||
if ( rows <= 0 ) return(0); | |||
if ( cols <= 0 ) return(0); | |||
aptr = a; | |||
bptr = b; | |||
if ( alpha == 0.0 ) | |||
{ | |||
for ( i=0; i<rows ; i++ ) | |||
{ | |||
for(j=0; j<cols; j++) | |||
{ | |||
bptr[j] = 0.0; | |||
} | |||
bptr += ldb; | |||
} | |||
return(0); | |||
} | |||
if ( alpha == 1.0 ) | |||
{ | |||
for ( i=0; i<rows ; i++ ) | |||
{ | |||
for(j=0; j<cols; j++) | |||
{ | |||
bptr[j] = aptr[j]; | |||
} | |||
aptr += lda; | |||
bptr += ldb; | |||
} | |||
return(0); | |||
} | |||
for ( i=0; i<rows ; i++ ) | |||
{ | |||
for(j=0; j<cols; j++) | |||
{ | |||
bptr[j] = alpha * aptr[j]; | |||
} | |||
aptr += lda; | |||
bptr += ldb; | |||
} | |||
return(0); | |||
} | |||
@@ -0,0 +1,62 @@ | |||
/*************************************************************************** | |||
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, FLOAT *a, BLASLONG lda, FLOAT *b, BLASLONG ldb) | |||
{ | |||
BLASLONG i,j; | |||
FLOAT *aptr,*bptr; | |||
if ( rows <= 0 ) return(0); | |||
if ( cols <= 0 ) return(0); | |||
aptr = a; | |||
for ( i=0; i<rows ; i++ ) | |||
{ | |||
bptr = &b[i]; | |||
for(j=0; j<cols; j++) | |||
{ | |||
bptr[j*ldb] = alpha * aptr[j]; | |||
} | |||
aptr += lda; | |||
} | |||
return(0); | |||
} | |||
@@ -0,0 +1,62 @@ | |||
/*************************************************************************** | |||
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. | |||
*****************************************************************************/ | |||
/************************************************************************************** | |||
* 2013/09/14 Saar | |||
* BLASTEST float : OK | |||
* BLASTEST double : OK | |||
* CTEST : OK | |||
* TEST : OK | |||
* | |||
**************************************************************************************/ | |||
#include "common.h" | |||
int CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG inc_y, FLOAT c, FLOAT s) | |||
{ | |||
BLASLONG i=0; | |||
BLASLONG ix=0,iy=0; | |||
FLOAT temp; | |||
if ( n <= 0 ) return(0); | |||
while(i < n) | |||
{ | |||
temp = c*x[ix] + s*y[iy] ; | |||
y[iy] = c*y[iy] - s*x[ix] ; | |||
x[ix] = temp ; | |||
ix += inc_x ; | |||
iy += inc_y ; | |||
i++ ; | |||
} | |||
return(0); | |||
} | |||
@@ -0,0 +1,63 @@ | |||
/*************************************************************************** | |||
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. | |||
*****************************************************************************/ | |||
/************************************************************************************** | |||
* 2013/09/14 Saar | |||
* BLASTEST float : OK | |||
* BLASTEST double : OK | |||
* CTEST : OK | |||
* TEST : OK | |||
* | |||
**************************************************************************************/ | |||
#include "common.h" | |||
int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG inc_y, FLOAT *dummy, BLASLONG dummy2) | |||
{ | |||
BLASLONG i=0,j=0; | |||
if ( (n <= 0) || (inc_x <= 0)) | |||
return(0); | |||
while(j < n) | |||
{ | |||
if ( da == 0.0 ) | |||
x[i]=0.0; | |||
else | |||
x[i] = da * x[i] ; | |||
i += inc_x ; | |||
j++; | |||
} | |||
return 0; | |||
} | |||
@@ -0,0 +1,62 @@ | |||
/*************************************************************************** | |||
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. | |||
*****************************************************************************/ | |||
/************************************************************************************** | |||
* 2013/08/20 Saar | |||
* BLASTEST float OK | |||
* BLASTEST double OK | |||
* | |||
**************************************************************************************/ | |||
#include "common.h" | |||
#include <stdio.h> | |||
int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT dummy3, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG inc_y, FLOAT *dummy, BLASLONG dummy2) | |||
{ | |||
BLASLONG i=0; | |||
BLASLONG ix=0,iy=0; | |||
FLOAT temp; | |||
if ( n < 0 ) return(0); | |||
while(i < n) | |||
{ | |||
temp = x[ix] ; | |||
x[ix] = y[iy] ; | |||
y[iy] = temp ; | |||
ix += inc_x ; | |||
iy += inc_y ; | |||
i++ ; | |||
} | |||
return(0); | |||
} | |||
@@ -0,0 +1,70 @@ | |||
/*************************************************************************** | |||
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" | |||
int CNAME(BLASLONG m, BLASLONG offset, FLOAT alpha, FLOAT *a, BLASLONG lda, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG inc_y, FLOAT *buffer) | |||
{ | |||
BLASLONG i; | |||
BLASLONG ix,iy; | |||
BLASLONG jx,jy; | |||
BLASLONG j; | |||
FLOAT temp1; | |||
FLOAT temp2; | |||
#if 0 | |||
if ( m != offset ) | |||
printf("Symv_L: m=%d offset=%d\n",m,offset); | |||
#endif | |||
jx = 0; | |||
jy = 0; | |||
for (j=0; j<offset; j++) | |||
{ | |||
temp1 = alpha * x[jx]; | |||
temp2 = 0.0; | |||
y[jy] += temp1 * a[j*lda+j]; | |||
iy = jy; | |||
ix = jx; | |||
for (i=j+1; i<m; i++) | |||
{ | |||
ix += inc_x; | |||
iy += inc_y; | |||
y[iy] += temp1 * a[j*lda+i]; | |||
temp2 += a[j*lda+i] * x[ix]; | |||
} | |||
y[jy] += alpha * temp2; | |||
jx += inc_x; | |||
jy += inc_y; | |||
} | |||
return(0); | |||
} | |||
@@ -0,0 +1,71 @@ | |||
/*************************************************************************** | |||
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" | |||
int CNAME(BLASLONG m, BLASLONG offset, FLOAT alpha, FLOAT *a, BLASLONG lda, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG inc_y, FLOAT *buffer) | |||
{ | |||
BLASLONG i; | |||
BLASLONG ix,iy; | |||
BLASLONG jx,jy; | |||
BLASLONG j; | |||
FLOAT temp1; | |||
FLOAT temp2; | |||
#if 0 | |||
if( m != offset ) | |||
printf("Symv_U: m=%d offset=%d\n",m,offset); | |||
#endif | |||
BLASLONG m1 = m - offset; | |||
jx = m1 * inc_x; | |||
jy = m1 * inc_y; | |||
for (j=m1; j<m; j++) | |||
{ | |||
temp1 = alpha * x[jx]; | |||
temp2 = 0.0; | |||
iy = 0; | |||
ix = 0; | |||
for (i=0; i<j; i++) | |||
{ | |||
y[iy] += temp1 * a[j*lda+i]; | |||
temp2 += a[j*lda+i] * x[ix]; | |||
ix += inc_x; | |||
iy += inc_y; | |||
} | |||
y[jy] += temp1 * a[j*lda+j] + alpha * temp2; | |||
jx += inc_x; | |||
jy += inc_y; | |||
} | |||
return(0); | |||
} | |||
@@ -0,0 +1,79 @@ | |||
/*************************************************************************** | |||
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. | |||
*****************************************************************************/ | |||
/************************************************************************************** | |||
* 2013/09/14 Saar | |||
* BLASTEST float : OK | |||
* BLASTEST double : OK | |||
* CTEST : NoTest | |||
* TEST : NoTest | |||
* | |||
**************************************************************************************/ | |||
#include "common.h" | |||
#include <math.h> | |||
#if defined(DOUBLE) | |||
#define ABS fabs | |||
#else | |||
#define ABS fabsf | |||
#endif | |||
#define CABS1(x,i) ABS(x[i])+ABS(x[i+1]) | |||
FLOAT CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x) | |||
{ | |||
BLASLONG i=0; | |||
BLASLONG ix=0; | |||
FLOAT maxf; | |||
BLASLONG inc_x2; | |||
if (n <= 0 || inc_x <= 0) return(0.0); | |||
inc_x2 = 2 * inc_x; | |||
maxf = CABS1(x,0); | |||
ix += inc_x2; | |||
i++; | |||
while(i < n) | |||
{ | |||
if( CABS1(x,ix) > maxf ) | |||
{ | |||
maxf = CABS1(x,ix); | |||
} | |||
ix += inc_x2; | |||
i++; | |||
} | |||
return(maxf); | |||
} | |||
@@ -0,0 +1,79 @@ | |||
/*************************************************************************** | |||
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. | |||
*****************************************************************************/ | |||
/************************************************************************************** | |||
* 2013/09/14 Saar | |||
* BLASTEST float : OK | |||
* BLASTEST double : OK | |||
* CTEST : NoTest | |||
* TEST : NoTest | |||
* | |||
**************************************************************************************/ | |||
#include "common.h" | |||
#include <math.h> | |||
#if defined(DOUBLE) | |||
#define ABS fabs | |||
#else | |||
#define ABS fabsf | |||
#endif | |||
#define CABS1(x,i) ABS(x[i])+ABS(x[i+1]) | |||
FLOAT CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x) | |||
{ | |||
BLASLONG i=0; | |||
BLASLONG ix=0; | |||
FLOAT minf; | |||
BLASLONG inc_x2; | |||
if (n <= 0 || inc_x <= 0) return(0.0); | |||
inc_x2 = 2 * inc_x; | |||
minf = CABS1(x,0); | |||
ix += inc_x2; | |||
i++; | |||
while(i < n) | |||
{ | |||
if( CABS1(x,ix) < minf ) | |||
{ | |||
minf = CABS1(x,ix); | |||
} | |||
ix += inc_x2; | |||
i++; | |||
} | |||
return(minf); | |||
} | |||
@@ -0,0 +1,72 @@ | |||
/*************************************************************************** | |||
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. | |||
*****************************************************************************/ | |||
/************************************************************************************** | |||
* 2013/09/14 Saar | |||
* BLASTEST float : OK | |||
* BLASTEST double : OK | |||
* CTEST : OK | |||
* TEST : OK | |||
* | |||
**************************************************************************************/ | |||
#include "common.h" | |||
#include <math.h> | |||
#if defined(DOUBLE) | |||
#define ABS fabs | |||
#else | |||
#define ABS fabsf | |||
#endif | |||
#define CABS1(x,i) ABS(x[i])+ABS(x[i+1]) | |||
FLOAT CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x) | |||
{ | |||
BLASLONG i=0; | |||
FLOAT sumf = 0.0; | |||
BLASLONG inc_x2; | |||
if (n <= 0 || inc_x <= 0) return(sumf); | |||
inc_x2 = 2 * inc_x; | |||
n *= inc_x2; | |||
while(i < n) | |||
{ | |||
sumf += CABS1(x,i); | |||
i += inc_x2; | |||
} | |||
return(sumf); | |||
} | |||
@@ -0,0 +1,118 @@ | |||
/*************************************************************************** | |||
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. | |||
*****************************************************************************/ | |||
/*************************************************************************** | |||
* 2014/06/07 Saar | |||
* | |||
***************************************************************************/ | |||
#include "common.h" | |||
int CNAME(BLASLONG n, FLOAT alpha_r, FLOAT alpha_i, FLOAT *x, BLASLONG inc_x, FLOAT beta_r, FLOAT beta_i,FLOAT *y, BLASLONG inc_y) | |||
{ | |||
BLASLONG i=0; | |||
BLASLONG ix,iy; | |||
FLOAT temp; | |||
BLASLONG inc_x2, inc_y2; | |||
if ( n <= 0 ) return(0); | |||
ix = 0; | |||
iy = 0; | |||
inc_x2 = 2 * inc_x; | |||
inc_y2 = 2 * inc_y; | |||
if ( beta_r == 0.0 && beta_i == 0.0) | |||
{ | |||
if ( alpha_r == 0.0 && alpha_i == 0.0 ) | |||
{ | |||
while(i < n) | |||
{ | |||
y[iy] = 0.0 ; | |||
y[iy+1] = 0.0 ; | |||
iy += inc_y2 ; | |||
i++ ; | |||
} | |||
} | |||
else | |||
{ | |||
while(i < n) | |||
{ | |||
y[iy] = ( alpha_r * x[ix] - alpha_i * x[ix+1] ) ; | |||
y[iy+1] = ( alpha_r * x[ix+1] + alpha_i * x[ix] ) ; | |||
ix += inc_x2 ; | |||
iy += inc_y2 ; | |||
i++ ; | |||
} | |||
} | |||
} | |||
else | |||
{ | |||
if ( alpha_r == 0.0 && alpha_i == 0.0 ) | |||
{ | |||
while(i < n) | |||
{ | |||
temp = ( beta_r * y[iy] - beta_i * y[iy+1] ) ; | |||
y[iy+1] = ( beta_r * y[iy+1] + beta_i * y[iy] ) ; | |||
y[iy] = temp; | |||
iy += inc_y2 ; | |||
i++ ; | |||
} | |||
} | |||
else | |||
{ | |||
while(i < n) | |||
{ | |||
temp = ( alpha_r * x[ix] - alpha_i * x[ix+1] ) + ( beta_r * y[iy] - beta_i * y[iy+1] ) ; | |||
y[iy+1] = ( alpha_r * x[ix+1] + alpha_i * x[ix] ) + ( beta_r * y[iy+1] + beta_i * y[iy] ) ; | |||
y[iy] = temp; | |||
ix += inc_x2 ; | |||
iy += inc_y2 ; | |||
i++ ; | |||
} | |||
} | |||
} | |||
return(0); | |||
} | |||
@@ -0,0 +1,74 @@ | |||
/*************************************************************************** | |||
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. | |||
*****************************************************************************/ | |||
/************************************************************************************** | |||
* 2013/09/15 Saar | |||
* BLASTEST float : OK | |||
* BLASTEST double : OK | |||
* CTEST : OK | |||
* TEST : OK | |||
* | |||
**************************************************************************************/ | |||
#include "common.h" | |||
int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da_r, FLOAT da_i, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG inc_y, FLOAT *dummy, BLASLONG dummy2) | |||
{ | |||
BLASLONG i=0; | |||
BLASLONG ix,iy; | |||
BLASLONG inc_x2; | |||
BLASLONG inc_y2; | |||
if ( n < 0 ) return(0); | |||
if ( da_r == 0.0 && da_i == 0.0 ) return(0); | |||
ix = 0; | |||
iy = 0; | |||
inc_x2 = 2 * inc_x; | |||
inc_y2 = 2 * inc_y; | |||
while(i < n) | |||
{ | |||
#if !defined(CONJ) | |||
y[iy] += ( da_r * x[ix] - da_i * x[ix+1] ) ; | |||
y[iy+1] += ( da_r * x[ix+1] + da_i * x[ix] ) ; | |||
#else | |||
y[iy] += ( da_r * x[ix] + da_i * x[ix+1] ) ; | |||
y[iy+1] -= ( da_r * x[ix+1] - da_i * x[ix] ) ; | |||
#endif | |||
ix += inc_x2 ; | |||
iy += inc_y2 ; | |||
i++ ; | |||
} | |||
return(0); | |||
} | |||
@@ -0,0 +1,65 @@ | |||
/*************************************************************************** | |||
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. | |||
*****************************************************************************/ | |||
/************************************************************************************** | |||
* 2013/09/14 Saar | |||
* BLASTEST float : OK | |||
* BLASTEST double : OK | |||
* CTEST : OK | |||
* TEST : OK | |||
* | |||
**************************************************************************************/ | |||
#include "common.h" | |||
int CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG inc_y) | |||
{ | |||
BLASLONG i=0; | |||
BLASLONG ix=0,iy=0; | |||
BLASLONG inc_x2; | |||
BLASLONG inc_y2; | |||
if ( n < 0 ) return(0); | |||
inc_x2 = 2 * inc_x; | |||
inc_y2 = 2 * inc_y; | |||
while(i < n) | |||
{ | |||
y[iy] = x[ix] ; | |||
y[iy+1] = x[ix+1] ; | |||
ix += inc_x2; | |||
iy += inc_y2; | |||
i++ ; | |||
} | |||
return(0); | |||
} | |||
@@ -0,0 +1,80 @@ | |||
/*************************************************************************** | |||
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. | |||
*****************************************************************************/ | |||
/************************************************************************************** | |||
* 2013/09/14 Saar | |||
* BLASTEST float : FAIL | |||
* BLASTEST double : FAIL | |||
* CTEST : OK | |||
* TEST : OK | |||
* | |||
**************************************************************************************/ | |||
#include "common.h" | |||
OPENBLAS_COMPLEX_FLOAT CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG inc_y) | |||
{ | |||
BLASLONG i=0; | |||
BLASLONG ix=0,iy=0; | |||
FLOAT dot[2]; | |||
OPENBLAS_COMPLEX_FLOAT result; | |||
BLASLONG inc_x2; | |||
BLASLONG inc_y2; | |||
dot[0]=0.0; | |||
dot[1]=0.0; | |||
CREAL(result) = 0.0 ; | |||
CIMAG(result) = 0.0 ; | |||
if ( n < 1 ) return(result); | |||
inc_x2 = 2 * inc_x ; | |||
inc_y2 = 2 * inc_y ; | |||
while(i < n) | |||
{ | |||
#if !defined(CONJ) | |||
dot[0] += ( x[ix] * y[iy] - x[ix+1] * y[iy+1] ) ; | |||
dot[1] += ( x[ix+1] * y[iy] + x[ix] * y[iy+1] ) ; | |||
#else | |||
dot[0] += ( x[ix] * y[iy] + x[ix+1] * y[iy+1] ) ; | |||
dot[1] -= ( x[ix+1] * y[iy] - x[ix] * y[iy+1] ) ; | |||
#endif | |||
ix += inc_x2 ; | |||
iy += inc_y2 ; | |||
i++ ; | |||
} | |||
CREAL(result) = dot[0]; | |||
CIMAG(result) = dot[1]; | |||
return(result); | |||
} | |||
@@ -0,0 +1,157 @@ | |||
/*************************************************************************** | |||
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. | |||
*****************************************************************************/ | |||
/************************************************************************************** | |||
* * 2013/11/23 Saar | |||
* * BLASTEST float : OK | |||
* * BLASTEST double : OK | |||
* CTEST : OK | |||
* TEST : OK | |||
* * | |||
* **************************************************************************************/ | |||
#include "common.h" | |||
int CNAME(BLASLONG m, BLASLONG n, BLASLONG dummy1, FLOAT alpha_r, FLOAT alpha_i, FLOAT *a, BLASLONG lda, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG inc_y, FLOAT *buffer) | |||
{ | |||
BLASLONG i; | |||
BLASLONG ix,iy; | |||
BLASLONG j; | |||
FLOAT *a_ptr; | |||
FLOAT temp_r,temp_i; | |||
BLASLONG inc_x2,inc_y2; | |||
BLASLONG lda2; | |||
BLASLONG i2; | |||
lda2 = 2*lda; | |||
ix = 0; | |||
a_ptr = a; | |||
if ( inc_x == 1 && inc_y == 1 ) | |||
{ | |||
for (j=0; j<n; j++) | |||
{ | |||
#if !defined(XCONJ) | |||
temp_r = alpha_r * x[ix] - alpha_i * x[ix+1]; | |||
temp_i = alpha_r * x[ix+1] + alpha_i * x[ix]; | |||
#else | |||
temp_r = alpha_r * x[ix] + alpha_i * x[ix+1]; | |||
temp_i = alpha_r * x[ix+1] - alpha_i * x[ix]; | |||
#endif | |||
iy = 0; | |||
i2=0; | |||
for (i=0; i<m; i++) | |||
{ | |||
#if !defined(CONJ) | |||
#if !defined(XCONJ) | |||
y[iy] += temp_r * a_ptr[i2] - temp_i * a_ptr[i2+1]; | |||
y[iy+1] += temp_r * a_ptr[i2+1] + temp_i * a_ptr[i2]; | |||
#else | |||
y[iy] += temp_r * a_ptr[i2] + temp_i * a_ptr[i2+1]; | |||
y[iy+1] += temp_r * a_ptr[i2+1] - temp_i * a_ptr[i2]; | |||
#endif | |||
#else | |||
#if !defined(XCONJ) | |||
y[iy] += temp_r * a_ptr[i2] + temp_i * a_ptr[i2+1]; | |||
y[iy+1] -= temp_r * a_ptr[i2+1] - temp_i * a_ptr[i2]; | |||
#else | |||
y[iy] += temp_r * a_ptr[i2] - temp_i * a_ptr[i2+1]; | |||
y[iy+1] -= temp_r * a_ptr[i2+1] + temp_i * a_ptr[i2]; | |||
#endif | |||
#endif | |||
i2 += 2; | |||
iy += 2; | |||
} | |||
a_ptr += lda2; | |||
ix += 2; | |||
} | |||
return(0); | |||
} | |||
inc_x2 = 2 * inc_x; | |||
inc_y2 = 2 * inc_y; | |||
for (j=0; j<n; j++) | |||
{ | |||
#if !defined(XCONJ) | |||
temp_r = alpha_r * x[ix] - alpha_i * x[ix+1]; | |||
temp_i = alpha_r * x[ix+1] + alpha_i * x[ix]; | |||
#else | |||
temp_r = alpha_r * x[ix] + alpha_i * x[ix+1]; | |||
temp_i = alpha_r * x[ix+1] - alpha_i * x[ix]; | |||
#endif | |||
iy = 0; | |||
i2=0; | |||
for (i=0; i<m; i++) | |||
{ | |||
#if !defined(CONJ) | |||
#if !defined(XCONJ) | |||
y[iy] += temp_r * a_ptr[i2] - temp_i * a_ptr[i2+1]; | |||
y[iy+1] += temp_r * a_ptr[i2+1] + temp_i * a_ptr[i2]; | |||
#else | |||
y[iy] += temp_r * a_ptr[i2] + temp_i * a_ptr[i2+1]; | |||
y[iy+1] += temp_r * a_ptr[i2+1] - temp_i * a_ptr[i2]; | |||
#endif | |||
#else | |||
#if !defined(XCONJ) | |||
y[iy] += temp_r * a_ptr[i2] + temp_i * a_ptr[i2+1]; | |||
y[iy+1] -= temp_r * a_ptr[i2+1] - temp_i * a_ptr[i2]; | |||
#else | |||
y[iy] += temp_r * a_ptr[i2] - temp_i * a_ptr[i2+1]; | |||
y[iy+1] -= temp_r * a_ptr[i2+1] + temp_i * a_ptr[i2]; | |||
#endif | |||
#endif | |||
i2 += 2; | |||
iy += inc_y2; | |||
} | |||
a_ptr += lda2; | |||
ix += inc_x2; | |||
} | |||
return(0); | |||
} | |||
@@ -0,0 +1,140 @@ | |||
/*************************************************************************** | |||
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. | |||
*****************************************************************************/ | |||
/************************************************************************************** | |||
* * 2013/11/23 Saar | |||
* * BLASTEST float : OK | |||
* * BLASTEST double : OK | |||
* CTEST : OK | |||
* TEST : OK | |||
* * | |||
* **************************************************************************************/ | |||
#include "common.h" | |||
int CNAME(BLASLONG m, BLASLONG n, BLASLONG dummy1, FLOAT alpha_r, FLOAT alpha_i, FLOAT *a, BLASLONG lda, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG inc_y, FLOAT *buffer) | |||
{ | |||
BLASLONG i; | |||
BLASLONG ix,iy; | |||
BLASLONG j; | |||
FLOAT *a_ptr; | |||
FLOAT temp_r,temp_i; | |||
BLASLONG inc_x2,inc_y2; | |||
BLASLONG lda2; | |||
BLASLONG i2; | |||
lda2 = 2*lda; | |||
iy = 0; | |||
a_ptr = a; | |||
if ( inc_x == 1 && inc_y == 1 ) | |||
{ | |||
for (j=0; j<n; j++) | |||
{ | |||
temp_r = 0.0; | |||
temp_i = 0.0; | |||
ix = 0; | |||
i2=0; | |||
for (i=0; i<m; i++) | |||
{ | |||
#if ( !defined(CONJ) && !defined(XCONJ) ) || ( defined(CONJ) && defined(XCONJ) ) | |||
temp_r += a_ptr[i2] * x[ix] - a_ptr[i2+1] * x[ix+1]; | |||
temp_i += a_ptr[i2] * x[ix+1] + a_ptr[i2+1] * x[ix]; | |||
#else | |||
temp_r += a_ptr[i2] * x[ix] + a_ptr[i2+1] * x[ix+1]; | |||
temp_i += a_ptr[i2] * x[ix+1] - a_ptr[i2+1] * x[ix]; | |||
#endif | |||
i2 += 2; | |||
ix += 2; | |||
} | |||
#if !defined(XCONJ) | |||
y[iy] += alpha_r * temp_r - alpha_i * temp_i; | |||
y[iy+1] += alpha_r * temp_i + alpha_i * temp_r; | |||
#else | |||
y[iy] += alpha_r * temp_r + alpha_i * temp_i; | |||
y[iy+1] -= alpha_r * temp_i - alpha_i * temp_r; | |||
#endif | |||
a_ptr += lda2; | |||
iy += 2; | |||
} | |||
return(0); | |||
} | |||
inc_x2 = 2 * inc_x; | |||
inc_y2 = 2 * inc_y; | |||
for (j=0; j<n; j++) | |||
{ | |||
temp_r = 0.0; | |||
temp_i = 0.0; | |||
ix = 0; | |||
i2=0; | |||
for (i=0; i<m; i++) | |||
{ | |||
#if ( !defined(CONJ) && !defined(XCONJ) ) || ( defined(CONJ) && defined(XCONJ) ) | |||
temp_r += a_ptr[i2] * x[ix] - a_ptr[i2+1] * x[ix+1]; | |||
temp_i += a_ptr[i2] * x[ix+1] + a_ptr[i2+1] * x[ix]; | |||
#else | |||
temp_r += a_ptr[i2] * x[ix] + a_ptr[i2+1] * x[ix+1]; | |||
temp_i += a_ptr[i2] * x[ix+1] - a_ptr[i2+1] * x[ix]; | |||
#endif | |||
i2 += 2; | |||
ix += inc_x2; | |||
} | |||
#if !defined(XCONJ) | |||
y[iy] += alpha_r * temp_r - alpha_i * temp_i; | |||
y[iy+1] += alpha_r * temp_i + alpha_i * temp_r; | |||
#else | |||
y[iy] += alpha_r * temp_r + alpha_i * temp_i; | |||
y[iy+1] -= alpha_r * temp_i - alpha_i * temp_r; | |||
#endif | |||
a_ptr += lda2; | |||
iy += inc_y2; | |||
} | |||
return(0); | |||
} | |||
@@ -0,0 +1,106 @@ | |||
/*************************************************************************** | |||
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. | |||
*****************************************************************************/ | |||
/************************************************************************************** | |||
* 2013/09/13 Saar | |||
* BLASTEST float : OK | |||
* BLASTEST double : OK | |||
* CTEST : OK | |||
* TEST : OK | |||
* | |||
**************************************************************************************/ | |||
#include "common.h" | |||
#include <math.h> | |||
#if defined(DOUBLE) | |||
#define ABS fabs | |||
#else | |||
#define ABS fabsf | |||
#endif | |||
FLOAT CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x) | |||
{ | |||
BLASLONG i=0; | |||
FLOAT scale = 0.0; | |||
FLOAT ssq = 1.0; | |||
BLASLONG inc_x2; | |||
FLOAT temp; | |||
if (n <= 0 || inc_x <= 0) return(0.0); | |||
inc_x2 = 2 * inc_x; | |||
n *= inc_x2; | |||
while(i < n) | |||
{ | |||
if ( x[i] != 0.0 ) | |||
{ | |||
temp = ABS( x[i] ); | |||
if ( scale < temp ) | |||
{ | |||
ssq = 1 + ssq * ( scale / temp ) * ( scale / temp ); | |||
scale = temp ; | |||
} | |||
else | |||
{ | |||
ssq += ( temp / scale ) * ( temp / scale ); | |||
} | |||
} | |||
if ( x[i+1] != 0.0 ) | |||
{ | |||
temp = ABS( x[i+1] ); | |||
if ( scale < temp ) | |||
{ | |||
ssq = 1 + ssq * ( scale / temp ) * ( scale / temp ); | |||
scale = temp ; | |||
} | |||
else | |||
{ | |||
ssq += ( temp / scale ) * ( temp / scale ); | |||
} | |||
} | |||
i += inc_x2; | |||
} | |||
scale = scale * sqrt( ssq ); | |||
return(scale); | |||
} | |||
@@ -0,0 +1,70 @@ | |||
/*************************************************************************** | |||
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); | |||
} | |||
@@ -0,0 +1,69 @@ | |||
/*************************************************************************** | |||
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); | |||
} | |||
@@ -0,0 +1,71 @@ | |||
/*************************************************************************** | |||
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); | |||
} | |||
@@ -0,0 +1,71 @@ | |||
/*************************************************************************** | |||
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); | |||
} | |||
@@ -0,0 +1,70 @@ | |||
/*************************************************************************** | |||
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); | |||
} | |||
@@ -0,0 +1,69 @@ | |||
/*************************************************************************** | |||
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); | |||
} | |||
@@ -0,0 +1,72 @@ | |||
/*************************************************************************** | |||
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); | |||
} | |||
@@ -0,0 +1,72 @@ | |||
/*************************************************************************** | |||
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); | |||
} | |||
@@ -0,0 +1,70 @@ | |||
/*************************************************************************** | |||
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. | |||
*****************************************************************************/ | |||
/************************************************************************************** | |||
* 2013/09/14 Saar | |||
* BLASTEST float : OK | |||
* BLASTEST double : OK | |||
* CTEST : OK | |||
* TEST : OK | |||
* | |||
**************************************************************************************/ | |||
#include "common.h" | |||
int CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG inc_y, FLOAT c, FLOAT s) | |||
{ | |||
BLASLONG i=0; | |||
BLASLONG ix=0,iy=0; | |||
FLOAT temp[2]; | |||
BLASLONG inc_x2; | |||
BLASLONG inc_y2; | |||
if ( n <= 0 ) return(0); | |||
inc_x2 = 2 * inc_x ; | |||
inc_y2 = 2 * inc_y ; | |||
while(i < n) | |||
{ | |||
temp[0] = c*x[ix] + s*y[iy] ; | |||
temp[1] = c*x[ix+1] + s*y[iy+1] ; | |||
y[iy] = c*y[iy] - s*x[ix] ; | |||
y[iy+1] = c*y[iy+1] - s*x[ix+1] ; | |||
x[ix] = temp[0] ; | |||
x[ix+1] = temp[1] ; | |||
ix += inc_x2 ; | |||
iy += inc_y2 ; | |||
i++ ; | |||
} | |||
return(0); | |||
} | |||
@@ -0,0 +1,88 @@ | |||
/*************************************************************************** | |||
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. | |||
*****************************************************************************/ | |||
/************************************************************************************** | |||
* 2013/09/14 Saar | |||
* BLASTEST float : OK | |||
* BLASTEST double : OK | |||
* CTEST : OK | |||
* TEST : OK | |||
* | |||
**************************************************************************************/ | |||
#include "common.h" | |||
int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da_r,FLOAT da_i, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG inc_y, FLOAT *dummy, BLASLONG dummy2) | |||
{ | |||
BLASLONG i=0; | |||
BLASLONG inc_x2; | |||
BLASLONG ip = 0; | |||
FLOAT temp; | |||
if ( (n <= 0) || (inc_x <= 0)) | |||
return(0); | |||
inc_x2 = 2 * inc_x; | |||
for ( i=0; i<n; i++ ) | |||
{ | |||
if ( da_r == 0.0 ) | |||
{ | |||
if ( da_i == 0.0 ) | |||
{ | |||
temp = 0.0; | |||
x[ip+1] = 0.0 ; | |||
} | |||
else | |||
{ | |||
temp = - da_i * x[ip+1] ; | |||
x[ip+1] = da_i * x[ip] ; | |||
} | |||
} | |||
else | |||
{ | |||
if ( da_i == 0.0 ) | |||
{ | |||
temp = da_r * x[ip] ; | |||
x[ip+1] = da_r * x[ip+1]; | |||
} | |||
else | |||
{ | |||
temp = da_r * x[ip] - da_i * x[ip+1] ; | |||
x[ip+1] = da_r * x[ip+1] + da_i * x[ip] ; | |||
} | |||
} | |||
x[ip] = temp; | |||
ip += inc_x2; | |||
} | |||
return(0); | |||
} | |||
@@ -0,0 +1,72 @@ | |||
/*************************************************************************** | |||
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. | |||
*****************************************************************************/ | |||
/************************************************************************************** | |||
* 2013/09/14 Saar | |||
* BLASTEST float : OK | |||
* BLASTEST double : OK | |||
* CTEST : OK | |||
* TEST : OK | |||
* | |||
**************************************************************************************/ | |||
#include "common.h" | |||
#include <stdio.h> | |||
int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT dummy3, FLOAT dummy4, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG inc_y, FLOAT *dummy, BLASLONG dummy2) | |||
{ | |||
BLASLONG i=0; | |||
BLASLONG ix=0,iy=0; | |||
FLOAT temp[2]; | |||
BLASLONG inc_x2; | |||
BLASLONG inc_y2; | |||
if ( n < 0 ) return(0); | |||
inc_x2 = 2 * inc_x; | |||
inc_y2 = 2 * inc_y; | |||
while(i < n) | |||
{ | |||
temp[0] = x[ix] ; | |||
temp[1] = x[ix+1] ; | |||
x[ix] = y[iy] ; | |||
x[ix+1] = y[iy+1] ; | |||
y[iy] = temp[0] ; | |||
y[iy+1] = temp[1] ; | |||
ix += inc_x2 ; | |||
iy += inc_y2 ; | |||
i++ ; | |||
} | |||
return(0); | |||
} | |||
@@ -0,0 +1,13 @@ | |||
TOPDIR = ../../.. | |||
include ../../../Makefile.system | |||
ifndef LASWP | |||
LASWP = ../generic/laswp_k.c | |||
endif | |||
ifndef ZLASWP | |||
ZLASWP = ../generic/zlaswp_k.c | |||
endif | |||
include ../generic/Makefile | |||
@@ -2343,6 +2343,45 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||
#define SYMV_P 16 | |||
#endif | |||
#ifdef RISCV64 | |||
#define GEMM_DEFAULT_OFFSET_A 0 | |||
#define GEMM_DEFAULT_OFFSET_B 0 | |||
#define GEMM_DEFAULT_ALIGN 0x03fffUL | |||
#define SGEMM_DEFAULT_UNROLL_M 2 | |||
#define SGEMM_DEFAULT_UNROLL_N 2 | |||
#define DGEMM_DEFAULT_UNROLL_M 2 | |||
#define DGEMM_DEFAULT_UNROLL_N 2 | |||
#define CGEMM_DEFAULT_UNROLL_M 2 | |||
#define CGEMM_DEFAULT_UNROLL_N 2 | |||
#define ZGEMM_DEFAULT_UNROLL_M 2 | |||
#define ZGEMM_DEFAULT_UNROLL_N 2 | |||
#define SGEMM_DEFAULT_P 128 | |||
#define DGEMM_DEFAULT_P 128 | |||
#define CGEMM_DEFAULT_P 96 | |||
#define ZGEMM_DEFAULT_P 64 | |||
#define SGEMM_DEFAULT_Q 240 | |||
#define DGEMM_DEFAULT_Q 120 | |||
#define CGEMM_DEFAULT_Q 120 | |||
#define ZGEMM_DEFAULT_Q 120 | |||
#define SGEMM_DEFAULT_R 12288 | |||
#define DGEMM_DEFAULT_R 8192 | |||
#define CGEMM_DEFAULT_R 4096 | |||
#define ZGEMM_DEFAULT_R 4096 | |||
#define SYMV_P 16 | |||
#define GEMM_DEFAULT_OFFSET_A 0 | |||
#define GEMM_DEFAULT_OFFSET_B 0 | |||
#endif | |||
#ifdef ARMV7 | |||
#define SNUMOPT 2 | |||
#define DNUMOPT 2 | |||