MIPS P5600(32 bit) and I6400(64 bit) cores support added.
Seperated mips and mips64 files. Configurations support for mips 32 bit. Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
This commit is contained in:
parent
ef30e52c8f
commit
2c3dfe2bf3
|
@ -0,0 +1,3 @@
|
||||||
|
ifdef BINARY64
|
||||||
|
else
|
||||||
|
endif
|
|
@ -462,7 +462,7 @@ endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(ARCH), mips64)
|
ifeq ($(ARCH), $(filter $(ARCH),mips64 mips))
|
||||||
NO_BINARY_MODE = 1
|
NO_BINARY_MODE = 1
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -502,11 +502,11 @@ endif
|
||||||
|
|
||||||
ifdef NO_BINARY_MODE
|
ifdef NO_BINARY_MODE
|
||||||
|
|
||||||
ifeq ($(ARCH), mips64)
|
ifeq ($(ARCH), $(filter $(ARCH),mips64 mips))
|
||||||
ifdef BINARY64
|
ifdef BINARY64
|
||||||
CCOMMON_OPT += -mabi=64
|
CCOMMON_OPT += -mabi=64
|
||||||
else
|
else
|
||||||
CCOMMON_OPT += -mabi=n32
|
CCOMMON_OPT += -mabi=32
|
||||||
endif
|
endif
|
||||||
BINARY_DEFINED = 1
|
BINARY_DEFINED = 1
|
||||||
endif
|
endif
|
||||||
|
@ -589,11 +589,11 @@ ifneq ($(NO_LAPACK), 1)
|
||||||
EXTRALIB += -lgfortran
|
EXTRALIB += -lgfortran
|
||||||
endif
|
endif
|
||||||
ifdef NO_BINARY_MODE
|
ifdef NO_BINARY_MODE
|
||||||
ifeq ($(ARCH), mips64)
|
ifeq ($(ARCH), $(filter $(ARCH),mips64 mips))
|
||||||
ifdef BINARY64
|
ifdef BINARY64
|
||||||
FCOMMON_OPT += -mabi=64
|
FCOMMON_OPT += -mabi=64
|
||||||
else
|
else
|
||||||
FCOMMON_OPT += -mabi=n32
|
FCOMMON_OPT += -mabi=32
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
|
@ -678,7 +678,7 @@ endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifneq ($(ARCH), mips64)
|
ifeq ($(filter $(ARCH),mips64 mips))
|
||||||
ifndef BINARY64
|
ifndef BINARY64
|
||||||
FCOMMON_OPT += -m32
|
FCOMMON_OPT += -m32
|
||||||
else
|
else
|
||||||
|
@ -688,7 +688,7 @@ else
|
||||||
ifdef BINARY64
|
ifdef BINARY64
|
||||||
FCOMMON_OPT += -mabi=64
|
FCOMMON_OPT += -mabi=64
|
||||||
else
|
else
|
||||||
FCOMMON_OPT += -mabi=n32
|
FCOMMON_OPT += -mabi=32
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -707,7 +707,7 @@ endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(ARCH), mips64)
|
ifeq ($(ARCH), $(filter $(ARCH),mips64 mips))
|
||||||
ifndef BINARY64
|
ifndef BINARY64
|
||||||
FCOMMON_OPT += -n32
|
FCOMMON_OPT += -n32
|
||||||
else
|
else
|
||||||
|
@ -737,7 +737,7 @@ endif
|
||||||
|
|
||||||
ifeq ($(C_COMPILER), OPEN64)
|
ifeq ($(C_COMPILER), OPEN64)
|
||||||
|
|
||||||
ifeq ($(ARCH), mips64)
|
ifeq ($(ARCH), $(filter $(ARCH),mips64 mips))
|
||||||
ifndef BINARY64
|
ifndef BINARY64
|
||||||
CCOMMON_OPT += -n32
|
CCOMMON_OPT += -n32
|
||||||
else
|
else
|
||||||
|
|
|
@ -53,26 +53,30 @@ PPC440
|
||||||
PPC440FP2
|
PPC440FP2
|
||||||
CELL
|
CELL
|
||||||
|
|
||||||
3.MIPS64 CPU:
|
3.MIPS CPU:
|
||||||
|
P5600
|
||||||
|
|
||||||
|
4.MIPS64 CPU:
|
||||||
SICORTEX
|
SICORTEX
|
||||||
LOONGSON3A
|
LOONGSON3A
|
||||||
LOONGSON3B
|
LOONGSON3B
|
||||||
|
I6400
|
||||||
|
|
||||||
4.IA64 CPU:
|
5.IA64 CPU:
|
||||||
ITANIUM2
|
ITANIUM2
|
||||||
|
|
||||||
5.SPARC CPU:
|
6.SPARC CPU:
|
||||||
SPARC
|
SPARC
|
||||||
SPARCV7
|
SPARCV7
|
||||||
|
|
||||||
6.ARM CPU:
|
7.ARM CPU:
|
||||||
CORTEXA15
|
CORTEXA15
|
||||||
CORTEXA9
|
CORTEXA9
|
||||||
ARMV7
|
ARMV7
|
||||||
ARMV6
|
ARMV6
|
||||||
ARMV5
|
ARMV5
|
||||||
|
|
||||||
7.ARM 64-bit CPU:
|
8.ARM 64-bit CPU:
|
||||||
ARMV8
|
ARMV8
|
||||||
CORTEXA57
|
CORTEXA57
|
||||||
|
|
||||||
|
|
8
c_check
8
c_check
|
@ -63,7 +63,7 @@ $os = Android if ($data =~ /OS_ANDROID/);
|
||||||
$architecture = x86 if ($data =~ /ARCH_X86/);
|
$architecture = x86 if ($data =~ /ARCH_X86/);
|
||||||
$architecture = x86_64 if ($data =~ /ARCH_X86_64/);
|
$architecture = x86_64 if ($data =~ /ARCH_X86_64/);
|
||||||
$architecture = power if ($data =~ /ARCH_POWER/);
|
$architecture = power if ($data =~ /ARCH_POWER/);
|
||||||
$architecture = mips32 if ($data =~ /ARCH_MIPS32/);
|
$architecture = mips if ($data =~ /ARCH_MIPS/);
|
||||||
$architecture = mips64 if ($data =~ /ARCH_MIPS64/);
|
$architecture = mips64 if ($data =~ /ARCH_MIPS64/);
|
||||||
$architecture = alpha if ($data =~ /ARCH_ALPHA/);
|
$architecture = alpha if ($data =~ /ARCH_ALPHA/);
|
||||||
$architecture = sparc if ($data =~ /ARCH_SPARC/);
|
$architecture = sparc if ($data =~ /ARCH_SPARC/);
|
||||||
|
@ -79,8 +79,8 @@ if ($os eq "AIX") {
|
||||||
$defined = 1;
|
$defined = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (($architecture eq "mips32") || ($architecture eq "mips64")) {
|
if (($architecture eq "mips") || ($architecture eq "mips64")) {
|
||||||
$compiler_name .= " -mabi=n32" if ($binary eq "32");
|
$compiler_name .= " -mabi=32" if ($binary eq "32");
|
||||||
$compiler_name .= " -mabi=64" if ($binary eq "64");
|
$compiler_name .= " -mabi=64" if ($binary eq "64");
|
||||||
$defined = 1;
|
$defined = 1;
|
||||||
}
|
}
|
||||||
|
@ -155,7 +155,7 @@ if ($?) {
|
||||||
$architecture = x86 if ($data =~ /ARCH_X86/);
|
$architecture = x86 if ($data =~ /ARCH_X86/);
|
||||||
$architecture = x86_64 if ($data =~ /ARCH_X86_64/);
|
$architecture = x86_64 if ($data =~ /ARCH_X86_64/);
|
||||||
$architecture = power if ($data =~ /ARCH_POWER/);
|
$architecture = power if ($data =~ /ARCH_POWER/);
|
||||||
$architecture = mips32 if ($data =~ /ARCH_MIPS32/);
|
$architecture = mips if ($data =~ /ARCH_MIPS/);
|
||||||
$architecture = mips64 if ($data =~ /ARCH_MIPS64/);
|
$architecture = mips64 if ($data =~ /ARCH_MIPS64/);
|
||||||
$architecture = alpha if ($data =~ /ARCH_ALPHA/);
|
$architecture = alpha if ($data =~ /ARCH_ALPHA/);
|
||||||
$architecture = sparc if ($data =~ /ARCH_SPARC/);
|
$architecture = sparc if ($data =~ /ARCH_SPARC/);
|
||||||
|
|
4
common.h
4
common.h
|
@ -397,6 +397,10 @@ please https://github.com/xianyi/OpenBLAS/issues/246
|
||||||
#include "common_sparc.h"
|
#include "common_sparc.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef ARCH_MIPS
|
||||||
|
#include "common_mips.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef ARCH_MIPS64
|
#ifdef ARCH_MIPS64
|
||||||
#include "common_mips64.h"
|
#include "common_mips64.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -0,0 +1,109 @@
|
||||||
|
/*****************************************************************************
|
||||||
|
Copyright (c) 2016, 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.
|
||||||
|
**********************************************************************************/
|
||||||
|
|
||||||
|
#ifndef COMMON_MIPS
|
||||||
|
#define COMMON_MIPS
|
||||||
|
|
||||||
|
#define MB
|
||||||
|
#define WMB
|
||||||
|
|
||||||
|
#define INLINE inline
|
||||||
|
|
||||||
|
#define RETURN_BY_COMPLEX
|
||||||
|
|
||||||
|
#ifndef ASSEMBLER
|
||||||
|
|
||||||
|
static void INLINE blas_lock(volatile unsigned long *address){
|
||||||
|
|
||||||
|
}
|
||||||
|
#define BLAS_LOCK_DEFINED
|
||||||
|
|
||||||
|
static inline unsigned int rpcc(void){
|
||||||
|
unsigned long ret;
|
||||||
|
|
||||||
|
__asm__ __volatile__(".set push \n"
|
||||||
|
"rdhwr %0, $30 \n"
|
||||||
|
".set pop" : "=r"(ret) : : "memory");
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
#define RPCC_DEFINED
|
||||||
|
|
||||||
|
static inline int blas_quickdivide(blasint x, blasint y){
|
||||||
|
return x / y;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define GET_IMAGE(res)
|
||||||
|
|
||||||
|
#define GET_IMAGE_CANCEL
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef F_INTERFACE
|
||||||
|
#define REALNAME ASMNAME
|
||||||
|
#else
|
||||||
|
#define REALNAME ASMFNAME
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(ASSEMBLER) && !defined(NEEDPARAM)
|
||||||
|
|
||||||
|
#define PROLOGUE \
|
||||||
|
.arm ;\
|
||||||
|
.global REALNAME ;\
|
||||||
|
.func REALNAME ;\
|
||||||
|
REALNAME:
|
||||||
|
|
||||||
|
#define EPILOGUE
|
||||||
|
|
||||||
|
#define PROFCODE
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#define SEEK_ADDRESS
|
||||||
|
|
||||||
|
#ifndef PAGESIZE
|
||||||
|
#define PAGESIZE ( 4 << 10)
|
||||||
|
#endif
|
||||||
|
#define HUGE_PAGESIZE ( 4 << 20)
|
||||||
|
|
||||||
|
#define BUFFER_SIZE (16 << 20)
|
||||||
|
|
||||||
|
|
||||||
|
#define BASE_ADDRESS (START_ADDRESS - BUFFER_SIZE * MAX_CPU_NUMBER)
|
||||||
|
|
||||||
|
#ifndef MAP_ANONYMOUS
|
||||||
|
#define MAP_ANONYMOUS MAP_ANON
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
|
@ -102,7 +102,7 @@ static void INLINE blas_lock(volatile unsigned long *address){
|
||||||
|
|
||||||
static inline unsigned int rpcc(void){
|
static inline unsigned int rpcc(void){
|
||||||
unsigned long ret;
|
unsigned long ret;
|
||||||
#if defined(LOONGSON3A) || defined(LOONGSON3B)
|
|
||||||
// unsigned long long tmp;
|
// unsigned long long tmp;
|
||||||
//__asm__ __volatile__("dmfc0 %0, $25, 1": "=r"(tmp):: "memory");
|
//__asm__ __volatile__("dmfc0 %0, $25, 1": "=r"(tmp):: "memory");
|
||||||
//ret=tmp;
|
//ret=tmp;
|
||||||
|
@ -111,17 +111,10 @@ static inline unsigned int rpcc(void){
|
||||||
"rdhwr %0, $2\n"
|
"rdhwr %0, $2\n"
|
||||||
".set pop": "=r"(ret):: "memory");
|
".set pop": "=r"(ret):: "memory");
|
||||||
|
|
||||||
#else
|
|
||||||
__asm__ __volatile__(".set push \n"
|
|
||||||
".set mips32r2\n"
|
|
||||||
"rdhwr %0, $30 \n"
|
|
||||||
".set pop" : "=r"(ret) : : "memory");
|
|
||||||
#endif
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
#define RPCC_DEFINED
|
#define RPCC_DEFINED
|
||||||
|
|
||||||
#if defined(LOONGSON3A) || defined(LOONGSON3B)
|
|
||||||
#ifndef NO_AFFINITY
|
#ifndef NO_AFFINITY
|
||||||
#define WHEREAMI
|
#define WHEREAMI
|
||||||
static inline int WhereAmI(void){
|
static inline int WhereAmI(void){
|
||||||
|
@ -134,7 +127,6 @@ static inline int WhereAmI(void){
|
||||||
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#endif
|
|
||||||
|
|
||||||
static inline int blas_quickdivide(blasint x, blasint y){
|
static inline int blas_quickdivide(blasint x, blasint y){
|
||||||
return x / y;
|
return x / y;
|
||||||
|
|
60
cpuid_mips.c
60
cpuid_mips.c
|
@ -71,15 +71,11 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
/*********************************************************************/
|
/*********************************************************************/
|
||||||
|
|
||||||
#define CPU_UNKNOWN 0
|
#define CPU_UNKNOWN 0
|
||||||
#define CPU_SICORTEX 1
|
#define CPU_P5600 1
|
||||||
#define CPU_LOONGSON3A 2
|
|
||||||
#define CPU_LOONGSON3B 3
|
|
||||||
|
|
||||||
static char *cpuname[] = {
|
static char *cpuname[] = {
|
||||||
"UNKOWN",
|
"UNKOWN",
|
||||||
"SICORTEX",
|
"P5600"
|
||||||
"LOONGSON3A",
|
|
||||||
"LOONGSON3B"
|
|
||||||
};
|
};
|
||||||
|
|
||||||
int detect(void){
|
int detect(void){
|
||||||
|
@ -120,7 +116,7 @@ int detect(void){
|
||||||
if (strstr(p, "loongson3a"))
|
if (strstr(p, "loongson3a"))
|
||||||
return CPU_LOONGSON3A;
|
return CPU_LOONGSON3A;
|
||||||
}else{
|
}else{
|
||||||
return CPU_SICORTEX;
|
return CPU_UNKNOWN;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//Check model name for Loongson3
|
//Check model name for Loongson3
|
||||||
|
@ -149,64 +145,40 @@ char *get_corename(void){
|
||||||
}
|
}
|
||||||
|
|
||||||
void get_architecture(void){
|
void get_architecture(void){
|
||||||
printf("MIPS64");
|
printf("MIPS");
|
||||||
}
|
}
|
||||||
|
|
||||||
void get_subarchitecture(void){
|
void get_subarchitecture(void){
|
||||||
if(detect()==CPU_LOONGSON3A) {
|
if(detect()==CPU_P5600){
|
||||||
printf("LOONGSON3A");
|
printf("P5600");
|
||||||
}else if(detect()==CPU_LOONGSON3B){
|
|
||||||
printf("LOONGSON3B");
|
|
||||||
}else{
|
}else{
|
||||||
printf("SICORTEX");
|
printf("UNKNOWN");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void get_subdirname(void){
|
void get_subdirname(void){
|
||||||
printf("mips64");
|
printf("mips");
|
||||||
}
|
}
|
||||||
|
|
||||||
void get_cpuconfig(void){
|
void get_cpuconfig(void){
|
||||||
if(detect()==CPU_LOONGSON3A) {
|
if(detect()==CPU_P5600){
|
||||||
printf("#define LOONGSON3A\n");
|
printf("#define P5600\n");
|
||||||
printf("#define L1_DATA_SIZE 65536\n");
|
printf("#define L1_DATA_SIZE 65536\n");
|
||||||
printf("#define L1_DATA_LINESIZE 32\n");
|
printf("#define L1_DATA_LINESIZE 32\n");
|
||||||
printf("#define L2_SIZE 512488\n");
|
printf("#define L2_SIZE 1048576\n");
|
||||||
printf("#define L2_LINESIZE 32\n");
|
printf("#define L2_LINESIZE 32\n");
|
||||||
printf("#define DTB_DEFAULT_ENTRIES 64\n");
|
printf("#define DTB_DEFAULT_ENTRIES 64\n");
|
||||||
printf("#define DTB_SIZE 4096\n");
|
printf("#define DTB_SIZE 4096\n");
|
||||||
printf("#define L2_ASSOCIATIVE 4\n");
|
|
||||||
}else if(detect()==CPU_LOONGSON3B){
|
|
||||||
printf("#define LOONGSON3B\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");
|
|
||||||
}else{
|
|
||||||
printf("#define SICORTEX\n");
|
|
||||||
printf("#define L1_DATA_SIZE 32768\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 32\n");
|
|
||||||
printf("#define DTB_SIZE 4096\n");
|
|
||||||
printf("#define L2_ASSOCIATIVE 8\n");
|
printf("#define L2_ASSOCIATIVE 8\n");
|
||||||
|
}else{
|
||||||
|
printf("#define UNKNOWN\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void get_libname(void){
|
void get_libname(void){
|
||||||
if(detect()==CPU_LOONGSON3A) {
|
if(detect()==CPU_P5600) {
|
||||||
printf("loongson3a\n");
|
printf("p5600\n");
|
||||||
}else if(detect()==CPU_LOONGSON3B) {
|
|
||||||
printf("loongson3b\n");
|
|
||||||
}else{
|
}else{
|
||||||
#ifdef __mips64
|
printf("mips\n");
|
||||||
printf("mips64\n");
|
|
||||||
#else
|
|
||||||
printf("mips32\n");
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,223 @@
|
||||||
|
/*****************************************************************************
|
||||||
|
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
|
||||||
|
#define CPU_SICORTEX 1
|
||||||
|
#define CPU_LOONGSON3A 2
|
||||||
|
#define CPU_LOONGSON3B 3
|
||||||
|
#define CPU_I6400 4
|
||||||
|
|
||||||
|
static char *cpuname[] = {
|
||||||
|
"UNKOWN",
|
||||||
|
"SICORTEX",
|
||||||
|
"LOONGSON3A",
|
||||||
|
"LOONGSON3B",
|
||||||
|
"I6400"
|
||||||
|
};
|
||||||
|
|
||||||
|
int detect(void){
|
||||||
|
|
||||||
|
#ifdef linux
|
||||||
|
FILE *infile;
|
||||||
|
char buffer[512], *p;
|
||||||
|
|
||||||
|
p = (char *)NULL;
|
||||||
|
infile = fopen("/proc/cpuinfo", "r");
|
||||||
|
while (fgets(buffer, sizeof(buffer), infile)){
|
||||||
|
if (!strncmp("cpu", buffer, 3)){
|
||||||
|
p = strchr(buffer, ':') + 2;
|
||||||
|
#if 0
|
||||||
|
fprintf(stderr, "%s\n", p);
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fclose(infile);
|
||||||
|
|
||||||
|
if(p != NULL){
|
||||||
|
if (strstr(p, "Loongson-3A")){
|
||||||
|
return CPU_LOONGSON3A;
|
||||||
|
}else if(strstr(p, "Loongson-3B")){
|
||||||
|
return CPU_LOONGSON3B;
|
||||||
|
}else if (strstr(p, "Loongson-3")){
|
||||||
|
infile = fopen("/proc/cpuinfo", "r");
|
||||||
|
p = (char *)NULL;
|
||||||
|
while (fgets(buffer, sizeof(buffer), infile)){
|
||||||
|
if (!strncmp("system type", buffer, 11)){
|
||||||
|
p = strchr(buffer, ':') + 2;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fclose(infile);
|
||||||
|
if (strstr(p, "loongson3a"))
|
||||||
|
return CPU_LOONGSON3A;
|
||||||
|
}else{
|
||||||
|
return CPU_SICORTEX;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Check model name for Loongson3
|
||||||
|
infile = fopen("/proc/cpuinfo", "r");
|
||||||
|
p = (char *)NULL;
|
||||||
|
while (fgets(buffer, sizeof(buffer), infile)){
|
||||||
|
if (!strncmp("model name", buffer, 10)){
|
||||||
|
p = strchr(buffer, ':') + 2;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fclose(infile);
|
||||||
|
if(p != NULL){
|
||||||
|
if (strstr(p, "Loongson-3A")){
|
||||||
|
return CPU_LOONGSON3A;
|
||||||
|
}else if(strstr(p, "Loongson-3B")){
|
||||||
|
return CPU_LOONGSON3B;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
return CPU_UNKNOWN;
|
||||||
|
}
|
||||||
|
|
||||||
|
char *get_corename(void){
|
||||||
|
return cpuname[detect()];
|
||||||
|
}
|
||||||
|
|
||||||
|
void get_architecture(void){
|
||||||
|
printf("MIPS64");
|
||||||
|
}
|
||||||
|
|
||||||
|
void get_subarchitecture(void){
|
||||||
|
if(detect()==CPU_LOONGSON3A) {
|
||||||
|
printf("LOONGSON3A");
|
||||||
|
}else if(detect()==CPU_LOONGSON3B){
|
||||||
|
printf("LOONGSON3B");
|
||||||
|
}else if(detect()==CPU_I6400){
|
||||||
|
printf("I6400");
|
||||||
|
}else{
|
||||||
|
printf("SICORTEX");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void get_subdirname(void){
|
||||||
|
printf("mips64");
|
||||||
|
}
|
||||||
|
|
||||||
|
void get_cpuconfig(void){
|
||||||
|
if(detect()==CPU_LOONGSON3A) {
|
||||||
|
printf("#define LOONGSON3A\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");
|
||||||
|
}else if(detect()==CPU_LOONGSON3B){
|
||||||
|
printf("#define LOONGSON3B\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");
|
||||||
|
}else if(detect()==CPU_I6400){
|
||||||
|
printf("#define I6400\n");
|
||||||
|
printf("#define L1_DATA_SIZE 65536\n");
|
||||||
|
printf("#define L1_DATA_LINESIZE 32\n");
|
||||||
|
printf("#define L2_SIZE 1048576\n");
|
||||||
|
printf("#define L2_LINESIZE 32\n");
|
||||||
|
printf("#define DTB_DEFAULT_ENTRIES 64\n");
|
||||||
|
printf("#define DTB_SIZE 4096\n");
|
||||||
|
printf("#define L2_ASSOCIATIVE 8\n");
|
||||||
|
}else{
|
||||||
|
printf("#define SICORTEX\n");
|
||||||
|
printf("#define L1_DATA_SIZE 32768\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 32\n");
|
||||||
|
printf("#define DTB_SIZE 4096\n");
|
||||||
|
printf("#define L2_ASSOCIATIVE 8\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void get_libname(void){
|
||||||
|
if(detect()==CPU_LOONGSON3A) {
|
||||||
|
printf("loongson3a\n");
|
||||||
|
}else if(detect()==CPU_LOONGSON3B) {
|
||||||
|
printf("loongson3b\n");
|
||||||
|
}else if(detect()==CPU_I6400) {
|
||||||
|
printf("i6400\n");
|
||||||
|
}else{
|
||||||
|
printf("mips64\n");
|
||||||
|
}
|
||||||
|
}
|
2
ctest.c
2
ctest.c
|
@ -110,7 +110,7 @@ ARCH_MIPS64
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(__mips32) || defined(__mips)
|
#if defined(__mips32) || defined(__mips)
|
||||||
ARCH_MIPS32
|
ARCH_MIPS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __alpha
|
#ifdef __alpha
|
||||||
|
|
34
getarch.c
34
getarch.c
|
@ -131,6 +131,8 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
/* #define FORCE_SICORTEX */
|
/* #define FORCE_SICORTEX */
|
||||||
/* #define FORCE_LOONGSON3A */
|
/* #define FORCE_LOONGSON3A */
|
||||||
/* #define FORCE_LOONGSON3B */
|
/* #define FORCE_LOONGSON3B */
|
||||||
|
/* #define FORCE_I6400 */
|
||||||
|
/* #define FORCE_P5600 */
|
||||||
/* #define FORCE_ITANIUM2 */
|
/* #define FORCE_ITANIUM2 */
|
||||||
/* #define FORCE_SPARC */
|
/* #define FORCE_SPARC */
|
||||||
/* #define FORCE_SPARCV7 */
|
/* #define FORCE_SPARCV7 */
|
||||||
|
@ -699,6 +701,34 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#else
|
#else
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef FORCE_I6400
|
||||||
|
#define FORCE
|
||||||
|
#define ARCHITECTURE "MIPS"
|
||||||
|
#define SUBARCHITECTURE "I6400"
|
||||||
|
#define SUBDIRNAME "mips64"
|
||||||
|
#define ARCHCONFIG "-DI6400 " \
|
||||||
|
"-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=32 " \
|
||||||
|
"-DL2_SIZE=1048576 -DL2_LINESIZE=32 " \
|
||||||
|
"-DDTB_DEFAULT_ENTRIES=64 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=8 "
|
||||||
|
#define LIBNAME "i6400"
|
||||||
|
#define CORENAME "I6400"
|
||||||
|
#else
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef FORCE_P5600
|
||||||
|
#define FORCE
|
||||||
|
#define ARCHITECTURE "MIPS"
|
||||||
|
#define SUBARCHITECTURE "P5600"
|
||||||
|
#define SUBDIRNAME "mips"
|
||||||
|
#define ARCHCONFIG "-DP5600 " \
|
||||||
|
"-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=32 " \
|
||||||
|
"-DL2_SIZE=1048576 -DL2_LINESIZE=32 " \
|
||||||
|
"-DDTB_DEFAULT_ENTRIES=64 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=8 "
|
||||||
|
#define LIBNAME "p5600"
|
||||||
|
#define CORENAME "P5600"
|
||||||
|
#else
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef FORCE_ITANIUM2
|
#ifdef FORCE_ITANIUM2
|
||||||
#define FORCE
|
#define FORCE
|
||||||
#define ARCHITECTURE "IA64"
|
#define ARCHITECTURE "IA64"
|
||||||
|
@ -888,7 +918,11 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __mips__
|
#ifdef __mips__
|
||||||
|
#ifdef __mips64
|
||||||
|
#include "cpuid_mips64.c"
|
||||||
|
#else
|
||||||
#include "cpuid_mips.c"
|
#include "cpuid_mips.c"
|
||||||
|
#endif
|
||||||
#define OPENBLAS_SUPPORTED
|
#define OPENBLAS_SUPPORTED
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,46 @@
|
||||||
|
ifndef SNRM2KERNEL
|
||||||
|
SNRM2KERNEL = nrm2.c
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef DNRM2KERNEL
|
||||||
|
DNRM2KERNEL = nrm2.c
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef CNRM2KERNEL
|
||||||
|
CNRM2KERNEL = znrm2.c
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef ZNRM2KERNEL
|
||||||
|
ZNRM2KERNEL = znrm2.c
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef SCABS_KERNEL
|
||||||
|
SCABS_KERNEL = ../generic/cabs.c
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef DCABS_KERNEL
|
||||||
|
DCABS_KERNEL = ../generic/cabs.c
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef QCABS_KERNEL
|
||||||
|
QCABS_KERNEL = ../generic/cabs.c
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef LSAME_KERNEL
|
||||||
|
LSAME_KERNEL = ../generic/lsame.c
|
||||||
|
endif
|
||||||
|
|
||||||
|
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,130 @@
|
||||||
|
SAMAXKERNEL = ../mips/amax.c
|
||||||
|
DAMAXKERNEL = ../mips/amax.c
|
||||||
|
CAMAXKERNEL = ../mips/zamax.c
|
||||||
|
ZAMAXKERNEL = ../mips/zamax.c
|
||||||
|
|
||||||
|
SAMINKERNEL = ../mips/amin.c
|
||||||
|
DAMINKERNEL = ../mips/amin.c
|
||||||
|
CAMINKERNEL = ../mips/zamin.c
|
||||||
|
ZAMINKERNEL = ../mips/zamin.c
|
||||||
|
|
||||||
|
SMAXKERNEL = ../mips/max.c
|
||||||
|
DMAXKERNEL = ../mips/max.c
|
||||||
|
|
||||||
|
SMINKERNEL = ../mips/min.c
|
||||||
|
DMINKERNEL = ../mips/min.c
|
||||||
|
|
||||||
|
ISAMAXKERNEL = ../mips/iamax.c
|
||||||
|
IDAMAXKERNEL = ../mips/iamax.c
|
||||||
|
ICAMAXKERNEL = ../mips/izamax.c
|
||||||
|
IZAMAXKERNEL = ../mips/izamax.c
|
||||||
|
|
||||||
|
ISAMINKERNEL = ../mips/iamin.c
|
||||||
|
IDAMINKERNEL = ../mips/iamin.c
|
||||||
|
ICAMINKERNEL = ../mips/izamin.c
|
||||||
|
IZAMINKERNEL = ../mips/izamin.c
|
||||||
|
|
||||||
|
ISMAXKERNEL = ../mips/imax.c
|
||||||
|
IDMAXKERNEL = ../mips/imax.c
|
||||||
|
|
||||||
|
ISMINKERNEL = ../mips/imin.c
|
||||||
|
IDMINKERNEL = ../mips/imin.c
|
||||||
|
|
||||||
|
SASUMKERNEL = ../mips/asum.c
|
||||||
|
DASUMKERNEL = ../mips/asum.c
|
||||||
|
CASUMKERNEL = ../mips/zasum.c
|
||||||
|
ZASUMKERNEL = ../mips/zasum.c
|
||||||
|
|
||||||
|
SAXPYKERNEL = ../mips/axpy.c
|
||||||
|
DAXPYKERNEL = ../mips/axpy.c
|
||||||
|
CAXPYKERNEL = ../mips/zaxpy.c
|
||||||
|
ZAXPYKERNEL = ../mips/zaxpy.c
|
||||||
|
|
||||||
|
SCOPYKERNEL = ../mips/copy.c
|
||||||
|
DCOPYKERNEL = ../mips/copy.c
|
||||||
|
CCOPYKERNEL = ../mips/zcopy.c
|
||||||
|
ZCOPYKERNEL = ../mips/zcopy.c
|
||||||
|
|
||||||
|
SDOTKERNEL = ../mips/dot.c
|
||||||
|
DDOTKERNEL = ../mips/dot.c
|
||||||
|
CDOTKERNEL = ../mips/zdot.c
|
||||||
|
ZDOTKERNEL = ../mips/zdot.c
|
||||||
|
|
||||||
|
SNRM2KERNEL = ../mips/nrm2.c
|
||||||
|
DNRM2KERNEL = ../mips/nrm2.c
|
||||||
|
CNRM2KERNEL = ../mips/znrm2.c
|
||||||
|
ZNRM2KERNEL = ../mips/znrm2.c
|
||||||
|
|
||||||
|
SROTKERNEL = ../mips/rot.c
|
||||||
|
DROTKERNEL = ../mips/rot.c
|
||||||
|
CROTKERNEL = ../mips/zrot.c
|
||||||
|
ZROTKERNEL = ../mips/zrot.c
|
||||||
|
|
||||||
|
SSCALKERNEL = ../mips/scal.c
|
||||||
|
DSCALKERNEL = ../mips/scal.c
|
||||||
|
CSCALKERNEL = ../mips/zscal.c
|
||||||
|
ZSCALKERNEL = ../mips/zscal.c
|
||||||
|
|
||||||
|
SSWAPKERNEL = ../mips/swap.c
|
||||||
|
DSWAPKERNEL = ../mips/swap.c
|
||||||
|
CSWAPKERNEL = ../mips/zswap.c
|
||||||
|
ZSWAPKERNEL = ../mips/zswap.c
|
||||||
|
|
||||||
|
SGEMVNKERNEL = ../mips/gemv_n.c
|
||||||
|
DGEMVNKERNEL = ../mips/gemv_n.c
|
||||||
|
CGEMVNKERNEL = ../mips/zgemv_n.c
|
||||||
|
ZGEMVNKERNEL = ../mips/zgemv_n.c
|
||||||
|
|
||||||
|
SGEMVTKERNEL = ../mips/gemv_t.c
|
||||||
|
DGEMVTKERNEL = ../mips/gemv_t.c
|
||||||
|
CGEMVTKERNEL = ../mips/zgemv_t.c
|
||||||
|
ZGEMVTKERNEL = ../mips/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
|
|
@ -0,0 +1,2 @@
|
||||||
|
clean ::
|
||||||
|
|
|
@ -0,0 +1,66 @@
|
||||||
|
/***************************************************************************
|
||||||
|
Copyright (c) 2016, 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"
|
||||||
|
#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,66 @@
|
||||||
|
/***************************************************************************
|
||||||
|
Copyright (c) 2016, 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"
|
||||||
|
#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,57 @@
|
||||||
|
/***************************************************************************
|
||||||
|
Copyright (c) 2016, 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"
|
||||||
|
#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,95 @@
|
||||||
|
/***************************************************************************
|
||||||
|
Copyright (c) 2016, 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,54 @@
|
||||||
|
/***************************************************************************
|
||||||
|
Copyright (c) 2016, 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, 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,50 @@
|
||||||
|
/***************************************************************************
|
||||||
|
Copyright (c) 2016, 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 *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,55 @@
|
||||||
|
/***************************************************************************
|
||||||
|
Copyright (c) 2016, 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"
|
||||||
|
|
||||||
|
#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,56 @@
|
||||||
|
/***************************************************************************
|
||||||
|
Copyright (c) 2016, 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 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,58 @@
|
||||||
|
/***************************************************************************
|
||||||
|
Copyright (c) 2016, 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 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,68 @@
|
||||||
|
/***************************************************************************
|
||||||
|
Copyright (c) 2016, 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"
|
||||||
|
#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,68 @@
|
||||||
|
/***************************************************************************
|
||||||
|
Copyright (c) 2016, 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"
|
||||||
|
#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,59 @@
|
||||||
|
/***************************************************************************
|
||||||
|
Copyright (c) 2016, 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"
|
||||||
|
#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,59 @@
|
||||||
|
/***************************************************************************
|
||||||
|
Copyright (c) 2016, 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"
|
||||||
|
#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,72 @@
|
||||||
|
/***************************************************************************
|
||||||
|
Copyright (c) 2016, 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"
|
||||||
|
#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,72 @@
|
||||||
|
/***************************************************************************
|
||||||
|
Copyright (c) 2016, 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"
|
||||||
|
#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,82 @@
|
||||||
|
/***************************************************************************
|
||||||
|
Copyright (c) 2016, 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 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,81 @@
|
||||||
|
/***************************************************************************
|
||||||
|
Copyright (c) 2016, 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 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,82 @@
|
||||||
|
/***************************************************************************
|
||||||
|
Copyright (c) 2016, 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 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,54 @@
|
||||||
|
/***************************************************************************
|
||||||
|
Copyright (c) 2016, 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 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,53 @@
|
||||||
|
/***************************************************************************
|
||||||
|
Copyright (c) 2016, 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 *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,50 @@
|
||||||
|
/***************************************************************************
|
||||||
|
Copyright (c) 2016, 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, 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;
|
||||||
|
|
||||||
|
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,55 @@
|
||||||
|
/***************************************************************************
|
||||||
|
Copyright (c) 2016, 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"
|
||||||
|
#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) 2016, 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) 2016, 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,70 @@
|
||||||
|
/***************************************************************************
|
||||||
|
Copyright (c) 2016, 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"
|
||||||
|
#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,70 @@
|
||||||
|
/***************************************************************************
|
||||||
|
Copyright (c) 2016, 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"
|
||||||
|
#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,62 @@
|
||||||
|
/***************************************************************************
|
||||||
|
Copyright (c) 2016, 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"
|
||||||
|
#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,113 @@
|
||||||
|
/***************************************************************************
|
||||||
|
Copyright (c) 2016, 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_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,64 @@
|
||||||
|
/***************************************************************************
|
||||||
|
Copyright (c) 2016, 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, 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,56 @@
|
||||||
|
/***************************************************************************
|
||||||
|
Copyright (c) 2016, 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 *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,75 @@
|
||||||
|
/***************************************************************************
|
||||||
|
Copyright (c) 2016, 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"
|
||||||
|
|
||||||
|
#ifndef _MSC_VER
|
||||||
|
#include <complex.h>
|
||||||
|
FLOAT _Complex CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG inc_y)
|
||||||
|
#else
|
||||||
|
OPENBLAS_COMPLEX_FLOAT CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG inc_y)
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
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,147 @@
|
||||||
|
/***************************************************************************
|
||||||
|
Copyright (c) 2016, 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 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,130 @@
|
||||||
|
/***************************************************************************
|
||||||
|
Copyright (c) 2016, 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 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,97 @@
|
||||||
|
/***************************************************************************
|
||||||
|
Copyright (c) 2016, 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"
|
||||||
|
#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,62 @@
|
||||||
|
/***************************************************************************
|
||||||
|
Copyright (c) 2016, 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 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,61 @@
|
||||||
|
/***************************************************************************
|
||||||
|
Copyright (c) 2016, 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 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,63 @@
|
||||||
|
/***************************************************************************
|
||||||
|
Copyright (c) 2016, 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 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,63 @@
|
||||||
|
/***************************************************************************
|
||||||
|
Copyright (c) 2016, 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 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,62 @@
|
||||||
|
/***************************************************************************
|
||||||
|
Copyright (c) 2016, 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 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,61 @@
|
||||||
|
/***************************************************************************
|
||||||
|
Copyright (c) 2016, 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 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,64 @@
|
||||||
|
/***************************************************************************
|
||||||
|
Copyright (c) 2016, 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 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,64 @@
|
||||||
|
/***************************************************************************
|
||||||
|
Copyright (c) 2016, 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 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,61 @@
|
||||||
|
/***************************************************************************
|
||||||
|
Copyright (c) 2016, 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 *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,75 @@
|
||||||
|
/***************************************************************************
|
||||||
|
Copyright (c) 2016, 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, 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;
|
||||||
|
|
||||||
|
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,63 @@
|
||||||
|
/***************************************************************************
|
||||||
|
Copyright (c) 2016, 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"
|
||||||
|
#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 @@
|
||||||
|
include $(KERNELDIR)/../mips/KERNEL.P5600
|
|
@ -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
|
||||||
|
|
77
param.h
77
param.h
|
@ -2174,6 +2174,83 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#define SYMV_P 16
|
#define SYMV_P 16
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(I6400)
|
||||||
|
#define SNUMOPT 2
|
||||||
|
#define DNUMOPT 2
|
||||||
|
|
||||||
|
#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
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(P5600)
|
||||||
|
#define SNUMOPT 2
|
||||||
|
#define DNUMOPT 2
|
||||||
|
|
||||||
|
#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
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef ARMV7
|
#ifdef ARMV7
|
||||||
#define SNUMOPT 2
|
#define SNUMOPT 2
|
||||||
|
|
Loading…
Reference in New Issue