| @@ -3,3 +3,43 @@ lapack-3.1.1 | |||
| lapack-3.1.1.tgz | |||
| *.so | |||
| *.a | |||
| *~ | |||
| config.h | |||
| Makefile.conf | |||
| getarch | |||
| getarch_2nd | |||
| utest/openblas_utest | |||
| ctest/xccblat1 | |||
| ctest/xccblat2 | |||
| ctest/xccblat3 | |||
| ctest/xdcblat1 | |||
| ctest/xdcblat2 | |||
| ctest/xdcblat3 | |||
| ctest/xscblat1 | |||
| ctest/xscblat2 | |||
| ctest/xscblat3 | |||
| ctest/xzcblat1 | |||
| ctest/xzcblat2 | |||
| ctest/xzcblat3 | |||
| exports/linktest.c | |||
| exports/linux.def | |||
| test/CBLAT2.SUMM | |||
| test/CBLAT3.SUMM | |||
| test/DBLAT2.SUMM | |||
| test/DBLAT3.SUMM | |||
| test/SBLAT2.SUMM | |||
| test/SBLAT3.SUMM | |||
| test/ZBLAT2.SUMM | |||
| test/ZBLAT3.SUMM | |||
| test/cblat1 | |||
| test/cblat2 | |||
| test/cblat3 | |||
| test/dblat1 | |||
| test/dblat2 | |||
| test/dblat3 | |||
| test/sblat1 | |||
| test/sblat2 | |||
| test/sblat3 | |||
| test/zblat1 | |||
| test/zblat2 | |||
| test/zblat3 | |||
| @@ -7,13 +7,17 @@ ifndef DYNAMIC_ARCH | |||
| BLASDIRS += kernel | |||
| endif | |||
| ifdef UTEST_CHECK | |||
| SANITY_CHECK = 1 | |||
| endif | |||
| ifdef SANITY_CHECK | |||
| BLASDIRS += reference | |||
| endif | |||
| SUBDIRS = $(BLASDIRS) lapack | |||
| SUBDIRS_ALL = $(SUBDIRS) test ctest exports benchmark ../laswp ../bench | |||
| SUBDIRS_ALL = $(SUBDIRS) test ctest utest exports benchmark ../laswp ../bench | |||
| .PHONY : all libs netlib test ctest shared | |||
| .NOTPARALLEL : all libs prof lapack-test | |||
| @@ -77,6 +81,9 @@ ifndef CROSS | |||
| touch $(LIBNAME) | |||
| ifndef NO_FBLAS | |||
| $(MAKE) -C test all | |||
| ifdef UTEST_CHECK | |||
| $(MAKE) -C utest all | |||
| endif | |||
| endif | |||
| ifndef NO_CBLAS | |||
| $(MAKE) -C ctest all | |||
| @@ -84,6 +84,10 @@ VERSION = 0.1 | |||
| # slow (Not implemented yet). | |||
| # SANITY_CHECK = 1 | |||
| # Run testcases in utest/ . When you enable UTEST_CHECK, it would enable | |||
| # SANITY_CHECK to compare the result with reference BLAS. | |||
| # UTEST_CHECK = 1 | |||
| # Common Optimization Flag; -O2 is enough. | |||
| COMMON_OPT += -O2 | |||
| @@ -141,6 +141,11 @@ NO_EXPRECISION = 1 | |||
| endif | |||
| endif | |||
| ifdef UTEST_CHECK | |||
| CCOMMON_OPT += -DUTEST_CHECK | |||
| SANITY_CHECK = 1 | |||
| endif | |||
| ifdef SANITY_CHECK | |||
| CCOMMON_OPT += -DSANITY_CHECK -DREFNAME=$(*F)f$(BU) | |||
| endif | |||
| @@ -0,0 +1,46 @@ | |||
| /***************************************************************************** | |||
| 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. | |||
| **********************************************************************************/ | |||
| #ifndef ASSEMBLER | |||
| #define REF_BU f | |||
| #define BLASFUNC_REF_2(x,y) BLASFUNC(x## y) | |||
| #define BLASFUNC_REF_1(x,y) BLASFUNC_REF_2(x,y) | |||
| #define BLASFUNC_REF(x) BLASFUNC_REF_1(x,REF_BU) | |||
| void BLASFUNC_REF(srot) (blasint *, float *, blasint *, float *, blasint *, float *, float *); | |||
| void BLASFUNC_REF(drot) (blasint *, double *, blasint *, double *, blasint *, double *, double *); | |||
| void BLASFUNC_REF(qrot) (blasint *, xdouble *, blasint *, xdouble *, blasint *, xdouble *, xdouble *); | |||
| void BLASFUNC_REF(csrot) (blasint *, float *, blasint *, float *, blasint *, float *, float *); | |||
| void BLASFUNC_REF(zdrot) (blasint *, double *, blasint *, double *, blasint *, double *, double *); | |||
| void BLASFUNC_REF(xqrot) (blasint *, xdouble *, blasint *, xdouble *, blasint *, xdouble *, xdouble *); | |||
| #endif | |||
| @@ -0,0 +1,22 @@ | |||
| UTEST_CHECK = 1 | |||
| TOPDIR = .. | |||
| include $(TOPDIR)/Makefile.system | |||
| TARGET=openblas_utest | |||
| CUNIT_LIB=/usr/local/lib/libcunit.a | |||
| OBJS=main.o test_rot.o | |||
| all : run_test | |||
| $(TARGET): $(OBJS) | |||
| $(CC) -o $@ $^ ../$(LIBNAME) $(CUNIT_LIB) | |||
| run_test: $(TARGET) | |||
| ./$(TARGET) | |||
| clean: | |||
| rm -f *.o $(TARGET) | |||
| libs: | |||
| @@ -0,0 +1,44 @@ | |||
| /***************************************************************************** | |||
| 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. | |||
| **********************************************************************************/ | |||
| #ifndef COMMON_UTEST_H_ | |||
| #define COMMON_UTEST_H_ | |||
| #include <CUnit/CUnit.h> | |||
| #include <common.h> | |||
| #define CHECK_EPS 0.0002 | |||
| //Testcase list | |||
| void test_drot_incx_0(void); | |||
| #endif | |||
| @@ -0,0 +1,78 @@ | |||
| /***************************************************************************** | |||
| 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 <stdio.h> | |||
| #include <string.h> | |||
| #include "common_utest.h" | |||
| #include <CUnit/Basic.h> | |||
| CU_TestInfo test_level1[]={ | |||
| {"Testing drot when incx & incy == 0",test_drot_incx_0}, | |||
| CU_TEST_INFO_NULL, | |||
| }; | |||
| CU_SuiteInfo suites[]={ | |||
| {"Level1 Test Suite", NULL,NULL,test_level1}, | |||
| CU_SUITE_INFO_NULL, | |||
| }; | |||
| int main() | |||
| { | |||
| CU_ErrorCode error; | |||
| if (CUE_SUCCESS != CU_initialize_registry()) | |||
| return CU_get_error(); | |||
| error=CU_register_suites(suites); | |||
| if (error != CUE_SUCCESS) { | |||
| perror(CU_get_error_msg()); | |||
| CU_cleanup_registry(); | |||
| return CU_get_error(); | |||
| } | |||
| /* Run all tests using the CUnit Basic interface */ | |||
| CU_basic_set_mode(CU_BRM_VERBOSE); | |||
| CU_basic_run_tests(); | |||
| CU_cleanup_registry(); | |||
| return CU_get_error(); | |||
| } | |||
| @@ -0,0 +1,54 @@ | |||
| /***************************************************************************** | |||
| 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_drot_incx_0(void) | |||
| { | |||
| int i; | |||
| int N=4,incX=0,incY=0; | |||
| double c=0.25,s=0.5; | |||
| 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 | |||
| drot_(&N,x1,&incX,y1,&incY,&c,&s); | |||
| //reference | |||
| drotf_(&N,x2,&incX,y2,&incY,&c,&s); | |||
| for(i=0; i<N; i++){ | |||
| CU_ASSERT_DOUBLE_EQUAL(x1[i], x2[i], CHECK_EPS); | |||
| CU_ASSERT_DOUBLE_EQUAL(y1[i], y2[i], CHECK_EPS); | |||
| } | |||
| } | |||