diff --git a/common_reference.h b/common_reference.h index d4dca859e..a324c4d9d 100644 --- a/common_reference.h +++ b/common_reference.h @@ -43,4 +43,11 @@ void BLASFUNC_REF(csrot) (blasint *, float *, blasint *, float *, blasint *, void BLASFUNC_REF(zdrot) (blasint *, double *, blasint *, double *, blasint *, double *, double *); void BLASFUNC_REF(xqrot) (blasint *, xdouble *, blasint *, xdouble *, blasint *, xdouble *, xdouble *); +void BLASFUNC_REF(sswap) (blasint *, float *, blasint *, float *, blasint *); +void BLASFUNC_REF(dswap) (blasint *, double *, blasint *, double *, blasint *); +void BLASFUNC_REF(qswap) (blasint *, xdouble *, blasint *, xdouble *, blasint *); +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 *); + #endif diff --git a/utest/Makefile b/utest/Makefile index 8b65a8d9d..2b92b56ef 100644 --- a/utest/Makefile +++ b/utest/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/Makefile.system TARGET=openblas_utest CUNIT_LIB=/usr/local/lib/libcunit.a -OBJS=main.o test_rot.o +OBJS=main.o test_rot.o test_swap.o all : run_test $(TARGET): $(OBJS) - $(CC) -o $@ $^ ../$(LIBNAME) $(CUNIT_LIB) + $(CC) -o $@ $^ ../$(LIBNAME) $(CUNIT_LIB) $(EXTRALIB) run_test: $(TARGET) ./$(TARGET) diff --git a/utest/common_utest.h b/utest/common_utest.h index 595364c28..7e947b95d 100644 --- a/utest/common_utest.h +++ b/utest/common_utest.h @@ -44,4 +44,9 @@ void test_srot_incx_0(void); void test_zdrot_incx_0(void); void test_csrot_incx_0(void); +void test_dswap_inc_0(void); +void test_zswap_inc_0(void); +void test_sswap_inc_0(void); +void test_cswap_inc_0(void); + #endif diff --git a/utest/main.c b/utest/main.c index 87620b591..0e2d401b2 100644 --- a/utest/main.c +++ b/utest/main.c @@ -33,7 +33,6 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include #include - #include "common_utest.h" #include @@ -42,6 +41,12 @@ CU_TestInfo test_level1[]={ {"Testing drot when incx & incy == 0",test_drot_incx_0}, {"Testing csrot when incx & incy == 0",test_csrot_incx_0}, {"Testing zdrot when incx & incy == 0",test_zdrot_incx_0}, + + {"Testing sswap with incx & incy == 0",test_sswap_inc_0}, + {"Testing dswap with incx & incy == 0",test_dswap_inc_0}, + {"Testing cswap with incx & incy == 0",test_cswap_inc_0}, + {"Testing zswap with incx & incy == 0",test_zswap_inc_0}, + CU_TEST_INFO_NULL, }; @@ -67,7 +72,9 @@ int main() - + printf("Seting OK\n"); + fflush(stdout); + /* Run all tests using the CUnit Basic interface */ CU_basic_set_mode(CU_BRM_VERBOSE); diff --git a/utest/test_swap.c b/utest/test_swap.c new file mode 100644 index 000000000..5218a7198 --- /dev/null +++ b/utest/test_swap.c @@ -0,0 +1,116 @@ +/***************************************************************************** +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_dswap_inc_0(void) +{ + int i; + int N=4,incX=0,incY=0; + double x1[]={1.0,3.0,5.0,7.0}; + double y1[]={2.0,4.0,6.0,8.0}; + double x2[]={1.0,3.0,5.0,7.0}; + double y2[]={2.0,4.0,6.0,8.0}; + + //OpenBLAS + BLASFUNC(dswap)(&N,x1,&incX,y1,&incY); + //reference + BLASFUNC_REF(dswap)(&N,x2,&incX,y2,&incY); + + for(i=0; i