diff --git a/common_reference.h b/common_reference.h index a324c4d9d..4bc46bcef 100644 --- a/common_reference.h +++ b/common_reference.h @@ -50,4 +50,9 @@ void BLASFUNC_REF(cswap) (blasint *, float *, blasint *, float *, blasint * void BLASFUNC_REF(zswap) (blasint *, double *, blasint *, double *, blasint *); void BLASFUNC_REF(xswap) (blasint *, xdouble *, blasint *, xdouble *, blasint *); +void BLASFUNC_REF(saxpy) (blasint *, float *, float *, blasint *, float *, blasint *); +void BLASFUNC_REF(daxpy) (blasint *, double *, double *, blasint *, double *, blasint *); +void BLASFUNC_REF(caxpy) (blasint *, float *, float *, blasint *, float *, blasint *); +void BLASFUNC_REF(zaxpy) (blasint *, double *, double *, blasint *, double *, blasint *); + #endif diff --git a/utest/Makefile b/utest/Makefile index 2b92b56ef..defa2a7db 100644 --- a/utest/Makefile +++ b/utest/Makefile @@ -5,7 +5,7 @@ include $(TOPDIR)/Makefile.system TARGET=openblas_utest CUNIT_LIB=/usr/local/lib/libcunit.a -OBJS=main.o test_rot.o test_swap.o +OBJS=main.o test_rot.o test_swap.o test_axpy.o all : run_test diff --git a/utest/common_utest.h b/utest/common_utest.h index 7e947b95d..f4fc72878 100644 --- a/utest/common_utest.h +++ b/utest/common_utest.h @@ -49,4 +49,9 @@ void test_zswap_inc_0(void); void test_sswap_inc_0(void); void test_cswap_inc_0(void); +void test_daxpy_inc_0(void); +void test_zaxpy_inc_0(void); +void test_saxpy_inc_0(void); +void test_caxpy_inc_0(void); + #endif diff --git a/utest/main.c b/utest/main.c index 0e2d401b2..eddf1ce34 100644 --- a/utest/main.c +++ b/utest/main.c @@ -47,6 +47,11 @@ CU_TestInfo test_level1[]={ {"Testing cswap with incx & incy == 0",test_cswap_inc_0}, {"Testing zswap with incx & incy == 0",test_zswap_inc_0}, + {"Testing saxpy with incx & incy == 0",test_saxpy_inc_0}, + {"Testing daxpy with incx & incy == 0",test_daxpy_inc_0}, + {"Testing caxpy with incx & incy == 0",test_caxpy_inc_0}, + {"Testing zaxpy with incx & incy == 0",test_zaxpy_inc_0}, + CU_TEST_INFO_NULL, }; diff --git a/utest/test_axpy.c b/utest/test_axpy.c new file mode 100644 index 000000000..a141d7a11 --- /dev/null +++ b/utest/test_axpy.c @@ -0,0 +1,117 @@ +/***************************************************************************** +Copyright (c) 2011, Lab of Parallel Software and Computational Science,ICSAS +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 ISCAS 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. + +**********************************************************************************/ + +#include "common_utest.h" + +void test_daxpy_inc_0(void) +{ + int i; + int N=8,incX=0,incY=0; + double a=0.25; + double x1[]={1.0,3.0,5.0,7.0,1.0,3.0,5.0,7.0}; + double y1[]={2.0,4.0,6.0,8.0,2.0,4.0,6.0,8.0}; + double x2[]={1.0,3.0,5.0,7.0,1.0,3.0,5.0,7.0}; + double y2[]={2.0,4.0,6.0,8.0,2.0,4.0,6.0,8.0}; + + //OpenBLAS + BLASFUNC(daxpy)(&N,&a,x1,&incX,y1,&incY); + //reference + BLASFUNC_REF(daxpy)(&N,&a,x2,&incX,y2,&incY); + + for(i=0; i