From 17112c1f29d9f7a7ff72de549c70845f40a37145 Mon Sep 17 00:00:00 2001 From: julie Date: Tue, 11 Aug 2009 21:58:21 +0000 Subject: Add CMAKE support to LAPACK --- BLAS/CMakeLists.txt | 2 + BLAS/SRC/CMakeLists.txt | 143 ++++++++++++++++ BLAS/TESTING/CMakeLists.txt | 63 +++++++ CMakeLists.txt | 33 ++++ CTestConfig.cmake | 13 ++ CheckTimeFunction.cmake | 27 +++ SRC/CMakeLists.txt | 380 +++++++++++++++++++++++++++++++++++++++++ TESTING/CMakeLists.txt | 296 ++++++++++++++++++++++++++++++++ TESTING/EIG/CMakeLists.txt | 135 +++++++++++++++ TESTING/LIN/CMakeLists.txt | 223 ++++++++++++++++++++++++ TESTING/MATGEN/CMakeLists.txt | 69 ++++++++ TESTING/runtest.cmake | 31 ++++ cmake_install.cmake | 39 +++++ lapack-config-version.cmake.in | 8 + lapack-config.cmake.in | 1 + 15 files changed, 1463 insertions(+) create mode 100644 BLAS/CMakeLists.txt create mode 100644 BLAS/SRC/CMakeLists.txt create mode 100644 BLAS/TESTING/CMakeLists.txt create mode 100644 CMakeLists.txt create mode 100644 CTestConfig.cmake create mode 100644 CheckTimeFunction.cmake create mode 100644 SRC/CMakeLists.txt create mode 100644 TESTING/CMakeLists.txt create mode 100644 TESTING/EIG/CMakeLists.txt create mode 100644 TESTING/LIN/CMakeLists.txt create mode 100644 TESTING/MATGEN/CMakeLists.txt create mode 100644 TESTING/runtest.cmake create mode 100644 cmake_install.cmake create mode 100644 lapack-config-version.cmake.in create mode 100644 lapack-config.cmake.in diff --git a/BLAS/CMakeLists.txt b/BLAS/CMakeLists.txt new file mode 100644 index 00000000..05b8ff97 --- /dev/null +++ b/BLAS/CMakeLists.txt @@ -0,0 +1,2 @@ +add_subdirectory(SRC) +add_subdirectory(TESTING) \ No newline at end of file diff --git a/BLAS/SRC/CMakeLists.txt b/BLAS/SRC/CMakeLists.txt new file mode 100644 index 00000000..cb28fa49 --- /dev/null +++ b/BLAS/SRC/CMakeLists.txt @@ -0,0 +1,143 @@ +####################################################################### +# This is the makefile to create a library for the BLAS. +# The files are grouped as follows: +# +# SBLAS1 -- Single precision real BLAS routines +# CBLAS1 -- Single precision complex BLAS routines +# DBLAS1 -- Double precision real BLAS routines +# ZBLAS1 -- Double precision complex BLAS routines +# +# CB1AUX -- Real BLAS routines called by complex routines +# ZB1AUX -- D.P. real BLAS routines called by d.p. complex +# routines +# +# ALLBLAS -- Auxiliary routines for Level 2 and 3 BLAS +# +# SBLAS2 -- Single precision real BLAS2 routines +# CBLAS2 -- Single precision complex BLAS2 routines +# DBLAS2 -- Double precision real BLAS2 routines +# ZBLAS2 -- Double precision complex BLAS2 routines +# +# SBLAS3 -- Single precision real BLAS3 routines +# CBLAS3 -- Single precision complex BLAS3 routines +# DBLAS3 -- Double precision real BLAS3 routines +# ZBLAS3 -- Double precision complex BLAS3 routines +# +# The library can be set up to include routines for any combination +# of the four precisions. To create or add to the library, enter make +# followed by one or more of the precisions desired. Some examples: +# make single +# make single complex +# make single double complex complex16 +# Note that these commands are not safe for parallel builds. +# +# Alternatively, the commands +# make all +# or +# make +# without any arguments creates a library of all four precisions. +# The name of the library is held in BLASLIB, which is set in the +# top-level make.inc +# +# To remove the object files after the library is created, enter +# make clean +# To force the source files to be recompiled, enter, for example, +# make single FRC=FRC +# +#--------------------------------------------------------------------- +# +# Edward Anderson, University of Tennessee +# March 26, 1990 +# Susan Ostrouchov, Last updated September 30, 1994 +# ejr, May 2006. +# +####################################################################### + +#--------------------------------------------------------- +# Comment out the next 6 definitions if you already have +# the Level 1 BLAS. +#--------------------------------------------------------- +set(SBLAS1 isamax.f sasum.f saxpy.f scopy.f sdot.f snrm2.f + srot.f srotg.f sscal.f sswap.f sdsdot.f srotmg.f srotm.f) + +set(CBLAS1 scabs1.f scasum.f scnrm2.f icamax.f caxpy.f ccopy.f + cdotc.f cdotu.f csscal.f crotg.f cscal.f cswap.f csrot.f) + +set(DBLAS1 idamax.f dasum.f daxpy.f dcopy.f ddot.f dnrm2.f + drot.f drotg.f dscal.f dsdot.f dswap.f drotmg.f drotm.f) + +set(ZBLAS1 dcabs1.f dzasum.f dznrm2.f izamax.f zaxpy.f zcopy.f + zdotc.f zdotu.f zdscal.f zrotg.f zscal.f zswap.f zdrot.f) + +set(CB1AUX isamax.f sasum.f saxpy.f scopy.f snrm2.f sscal.f) + +set(ZB1AUX idamax.f dasum.f daxpy.f dcopy.f dnrm2.f dscal.f) + +#--------------------------------------------------------------------- +# The following line defines auxiliary routines needed by both the +# Level 2 and Level 3 BLAS. Comment it out only if you already have +# both the Level 2 and 3 BLAS. +#--------------------------------------------------------------------- +set(ALLBLAS lsame.f ) #xerbla.f xerbla_array.f) + +#--------------------------------------------------------- +# Comment out the next 4 definitions if you already have +# the Level 2 BLAS. +#--------------------------------------------------------- +set(SBLAS2 sgemv.f sgbmv.f ssymv.f ssbmv.f sspmv.f + strmv.f stbmv.f stpmv.f strsv.f stbsv.f stpsv.f + sger.f ssyr.f sspr.f ssyr2.f sspr2.f) + +set(CBLAS2 cgemv.f cgbmv.f chemv.f chbmv.f chpmv.f + ctrmv.f ctbmv.f ctpmv.f ctrsv.f ctbsv.f ctpsv.f + cgerc.f cgeru.f cher.f chpr.f cher2.f chpr2.f) + +set(DBLAS2 dgemv.f dgbmv.f dsymv.f dsbmv.f dspmv.f + dtrmv.f dtbmv.f dtpmv.f dtrsv.f dtbsv.f dtpsv.f + dger.f dsyr.f dspr.f dsyr2.f dspr2.f) + +set(ZBLAS2 zgemv.f zgbmv.f zhemv.f zhbmv.f zhpmv.f + ztrmv.f ztbmv.f ztpmv.f ztrsv.f ztbsv.f ztpsv.f + zgerc.f zgeru.f zher.f zhpr.f zher2.f zhpr2.f) + +#--------------------------------------------------------- +# Comment out the next 4 definitions if you already have +# the Level 3 BLAS. +#--------------------------------------------------------- +set(SBLAS3 sgemm.f ssymm.f ssyrk.f ssyr2k.f strmm.f strsm.f ) + +set(CBLAS3 cgemm.f csymm.f csyrk.f csyr2k.f ctrmm.f ctrsm.f + chemm.f cherk.f cher2k.f) + +set(DBLAS3 dgemm.f dsymm.f dsyrk.f dsyr2k.f dtrmm.f dtrsm.f) + +set(ZBLAS3 zgemm.f zsymm.f zsyrk.f zsyr2k.f ztrmm.f ztrsm.f + zhemm.f zherk.f zher2k.f) +# default build all of it +set(ALLOBJ ${SBLAS1} ${SBLAS2} ${SBLAS3} ${DBLAS1} ${DBLAS2} ${DBLAS3} + ${CBLAS1} ${CBLAS2} ${CBLAS3} ${ZBLAS1} + ${ZBLAS2} ${ZBLAS3} ${ALLBLAS}) + +if(BLAS_SINGLE) + set(ALLOBJ ${SBLAS1} ${ALLBLAS} + ${SBLAS2} ${SBLAS3}) +endif() +if(BLAS_DOUBLE) + set(ALLOBJ ${DBLAS1} ${ALLBLAS} + ${DBLAS2} ${DBLAS3}) +endif() +if(BLAS_COMPLEX) + set(ALLOBJ ${BLASLIB} ${CBLAS1} ${CB1AUX} + ${ALLBLAS} ${CBLAS2}) +endif() +if(BLAS_COMPLEX16) + set(ALLOBJ ${BLASLIB} ${ZBLAS1} ${ZB1AUX} + ${ALLBLAS} ${ZBLAS2} ${ZBLAS3}) +endif() + + +add_library(blas ${ALLOBJ}) +if(UNIX) + target_link_libraries(blas m) +endif() +target_link_libraries(blas) diff --git a/BLAS/TESTING/CMakeLists.txt b/BLAS/TESTING/CMakeLists.txt new file mode 100644 index 00000000..9e81501a --- /dev/null +++ b/BLAS/TESTING/CMakeLists.txt @@ -0,0 +1,63 @@ +####################################################################### +# This makefile creates the test programs for the BLAS 1 routines. +# The test files are grouped as follows: +# SBLAT1 -- Single precision real test routines +# CBLAT1 -- Single precision complex test routines +# DBLAT1 -- Double precision real test routines +# ZBLAT1 -- Double precision complex test routines +# +# Test programs can be generated for all or some of the four different +# precisions. To create the test programs, enter make followed by one +# or more of the precisions desired. Some examples: +# make single +# make single complex +# make single double complex complex16 +# Alternatively, the command +# make +# without any arguments creates all four test programs. +# The executable files which are created are called +# ../xblat1s, ../xblat1d, ../xblat1c, and ../xblat1z +# +# To remove the object files after the executable files have been +# created, enter +# make clean +# To force the source files to be recompiled, enter, for example, +# make single FRC=FRC +# +####################################################################### + +macro(add_blas_test name src) + get_filename_component(baseNAME ${src} NAME_WE) + set(TEST_INPUT "${LAPACK_SOURCE_DIR}/BLAS/${baseNAME}.in") + add_executable(${name} ${src}) + get_target_property(TEST_LOC ${name} LOCATION) + target_link_libraries(${name} blas) + if(EXISTS "${TEST_INPUT}") + add_test(${name} "${CMAKE_COMMAND}" + -DTEST=${TEST_LOC} + -DINPUT=${TEST_INPUT} + -DINTDIR=${CMAKE_CFG_INTDIR} + -P "${LAPACK_SOURCE_DIR}/TESTING/runtest.cmake") + else() + add_test(${name} "${CMAKE_COMMAND}" + -DTEST=${TEST_LOC} + -DINTDIR=${CMAKE_CFG_INTDIR} + -P "${LAPACK_SOURCE_DIR}/TESTING/runtest.cmake") + endif() +endmacro(add_blas_test) + +add_blas_test(xblat1s sblat1.f) +add_blas_test(xblat1c cblat1.f) +add_blas_test(xblat1d dblat1.f) +add_blas_test(xblat1z zblat1.f) + +add_blas_test(xblat2s sblat2.f sblat2.in) +add_blas_test(xblat2c cblat2.f ) +add_blas_test(xblat2d dblat2.f) +add_blas_test(xblat2z zblat2.f) + +add_blas_test(xblat3s sblat3.f) +add_blas_test(xblat3c cblat3.f) +add_blas_test(xblat3d dblat3.f) +add_blas_test(xblat3z zblat3.f) + diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 00000000..c4af0d60 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,33 @@ +cmake_minimum_required(VERSION 2.6) +project(LAPACK Fortran) +set(SECOND_SRC ${LAPACK_SOURCE_DIR}/INSTALL/second_INT_ETIME.f) +set(DSECOND_SRC ${LAPACK_SOURCE_DIR}/INSTALL/dsecnd_INT_ETIME.f) +enable_testing() +include(CTest) +enable_testing() +set(CMAKE_MODULE_PATH ${LAPACK_SOURCE_DIR} ${CMAKE_MODULE_PATH}) +include(CheckTimeFunction) +CHECK_TIME_FUNCTION(INT_CPU_TIME TIME_FUNC) +CHECK_TIME_FUNCTION(EXT_ETIME TIME_FUNC) +CHECK_TIME_FUNCTION(EXT_ETIME_ TIME_FUNC) +CHECK_TIME_FUNCTION(INT_ETIME TIME_FUNC) +message(STATUS "--> Will use second_${TIME_FUNC}.f and dsecnd_${TIME_FUNC}.f as timing function.") + +set(SECOND_SRC ${LAPACK_SOURCE_DIR}/INSTALL/second_${TIME_FUNC}.f) +set(DSECOND_SRC ${LAPACK_SOURCE_DIR}/INSTALL/dsecnd_${TIME_FUNC}.f) + + +add_subdirectory(BLAS) +add_subdirectory(SRC) +add_subdirectory(TESTING) + +set(LAPACK_VERSION 3.2.1) +set(CPACK_PACKAGE_VERSION_MAJOR 3) +set(CPACK_PACKAGE_VERSION_MINOR 2) +set(CPACK_PACKAGE_VERSION_PATCH 1) +include(CPack) +export(TARGETS blas FILE lapack-targets.cmake) +configure_file(${LAPACK_SOURCE_DIR}/lapack-config-version.cmake.in + ${LAPACK_BINARY_DIR}/lapack-config-version.cmake @ONLY) +configure_file(${LAPACK_SOURCE_DIR}/lapack-config.cmake.in + ${LAPACK_BINARY_DIR}/lapack-config.cmake @ONLY) diff --git a/CTestConfig.cmake b/CTestConfig.cmake new file mode 100644 index 00000000..a1274964 --- /dev/null +++ b/CTestConfig.cmake @@ -0,0 +1,13 @@ +## This file should be placed in the root directory of your project. +## Then modify the CMakeLists.txt file in the root directory of your +## project to incorporate the testing dashboard. +## # The following are required to uses Dart and the Cdash dashboard +## ENABLE_TESTING() +## INCLUDE(CTest) +set(CTEST_PROJECT_NAME "LAPACK") +set(CTEST_NIGHTLY_START_TIME "00:00:00 EST") + +set(CTEST_DROP_METHOD "http") +set(CTEST_DROP_SITE "my.cdash.org") +set(CTEST_DROP_LOCATION "/submit.php?project=LAPACK") +set(CTEST_DROP_SITE_CDASH TRUE) diff --git a/CheckTimeFunction.cmake b/CheckTimeFunction.cmake new file mode 100644 index 00000000..22d73b27 --- /dev/null +++ b/CheckTimeFunction.cmake @@ -0,0 +1,27 @@ +# - Check if the Fortran function exists. +# CHECK_TIME_FUNCTION(FUNCTION VARIABLE TYPE) +# - macro which checks if the Fortran function exists +# FUNCTION - the name of the Fortran function +# VARIABLE - variable to store the result +# + +macro(CHECK_TIME_FUNCTION FUNCTION VARIABLE) + + execute_process(COMMAND ${CMAKE_Fortran_COMPILER} -o secondtst second_${FUNCTION}.f secondtst.f + WORKING_DIRECTORY ${LAPACK_SOURCE_DIR}/INSTALL + RESULT_VARIABLE RES + OUTPUT_VARIABLE OUT + ERROR_VARIABLE ERR + ) + + if(${RES} EQUAL 0) + set(${VARIABLE} ${FUNCTION} CACHE INTERNAL "Have Fortran function ${FUNCTION}") + message(STATUS "Looking for Fortran ${FUNCTION} - found") + file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log + "Fortran ${FUNCTION} exists. ${OUT} \n\n") + else(${RES} EQUAL 0) + message(STATUS "Looking for Fortran ${FUNCTION} - not found") + file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log + "Fortran ${FUNCTION} does not exist. \n ${ERR} \n") + endif(${RES} EQUAL 0) +endmacro(CHECK_TIME_FUNCTION) diff --git a/SRC/CMakeLists.txt b/SRC/CMakeLists.txt new file mode 100644 index 00000000..f5d21ffd --- /dev/null +++ b/SRC/CMakeLists.txt @@ -0,0 +1,380 @@ +####################################################################### +# This is the makefile to create a library for LAPACK. +# The files are organized as follows: +# ALLAUX -- Auxiliary routines called from all precisions +# ALLXAUX -- Auxiliary routines called from all precisions but +# only from routines using extra precision. +# SCLAUX -- Auxiliary routines called from both REAL and COMPLEX +# DZLAUX -- Auxiliary routines called from both DOUBLE PRECISION +# and COMPLEX*16 +# SLASRC -- Single precision real LAPACK routines +# SXLASRC -- Single precision real LAPACK routines using extra +# precision. +# CLASRC -- Single precision complex LAPACK routines +# CXLASRC -- Single precision complex LAPACK routines using extra +# precision. +# DLASRC -- Double precision real LAPACK routines +# DXLASRC -- Double precision real LAPACK routines using extra +# precision. +# ZLASRC -- Double precision complex LAPACK routines +# ZXLASRC -- Double precision complex LAPACK routines using extra +# precision. +# +# The library can be set up to include routines for any combination +# of the four precisions. To create or add to the library, enter make +# followed by one or more of the precisions desired. Some examples: +# make single +# make single complex +# make single double complex complex16 +# Alternatively, the command +# make +# without any arguments creates a library of all four precisions. +# The library is called +# lapack.a +# and is created at the next higher directory level. +# +# To remove the object files after the library is created, enter +# make clean +# On some systems, you can force the source files to be recompiled by +# entering (for example) +# make single FRC=FRC +# +# ***Note*** +# The functions lsame, second, dsecnd, slamch, and dlamch may have +# to be installed before compiling the library. Refer to the +# installation guide, LAPACK Working Note 41, for instructions. +# +####################################################################### + +set(ALLAUX ilaenv.f ieeeck.f lsamen.f iparmq.f + ilaprec.f ilatrans.f ilauplo.f iladiag.f chla_transtype.f + ../INSTALL/ilaver.f ../INSTALL/lsame.f) # xerbla.f xerbla_array.f + +set(ALLXAUX ) + +set(SCLAUX + sbdsdc.f + sbdsqr.f sdisna.f slabad.f slacpy.f sladiv.f slae2.f slaebz.f + slaed0.f slaed1.f slaed2.f slaed3.f slaed4.f slaed5.f slaed6.f + slaed7.f slaed8.f slaed9.f slaeda.f slaev2.f slagtf.f + slagts.f slamrg.f slanst.f + slapy2.f slapy3.f slarnv.f + slarra.f slarrb.f slarrc.f slarrd.f slarre.f slarrf.f slarrj.f + slarrk.f slarrr.f slaneg.f + slartg.f slaruv.f slas2.f slascl.f + slasd0.f slasd1.f slasd2.f slasd3.f slasd4.f slasd5.f slasd6.f + slasd7.f slasd8.f slasda.f slasdq.f slasdt.f + slaset.f slasq1.f slasq2.f slasq3.f slasq4.f slasq5.f slasq6.f + slasr.f slasrt.f slassq.f slasv2.f spttrf.f sstebz.f sstedc.f + ssteqr.f ssterf.f slaisnan.f sisnan.f + ../INSTALL/slamch.f ${SECOND_SRC}) + +set(DZLAUX + dbdsdc.f + dbdsqr.f ddisna.f dlabad.f dlacpy.f dladiv.f dlae2.f dlaebz.f + dlaed0.f dlaed1.f dlaed2.f dlaed3.f dlaed4.f dlaed5.f dlaed6.f + dlaed7.f dlaed8.f dlaed9.f dlaeda.f dlaev2.f dlagtf.f + dlagts.f dlamrg.f dlanst.f + dlapy2.f dlapy3.f dlarnv.f + dlarra.f dlarrb.f dlarrc.f dlarrd.f dlarre.f dlarrf.f dlarrj.f + dlarrk.f dlarrr.f dlaneg.f + dlartg.f dlaruv.f dlas2.f dlascl.f + dlasd0.f dlasd1.f dlasd2.f dlasd3.f dlasd4.f dlasd5.f dlasd6.f + dlasd7.f dlasd8.f dlasda.f dlasdq.f dlasdt.f + dlaset.f dlasq1.f dlasq2.f dlasq3.f dlasq4.f dlasq5.f dlasq6.f + dlasr.f dlasrt.f dlassq.f dlasv2.f dpttrf.f dstebz.f dstedc.f + dsteqr.f dsterf.f dlaisnan.f disnan.f + ../INSTALL/dlamch.f ${DSECOND_SRC}) + +set(SLASRC + sgbbrd.f sgbcon.f sgbequ.f sgbrfs.f sgbsv.f + sgbsvx.f sgbtf2.f sgbtrf.f sgbtrs.f sgebak.f sgebal.f sgebd2.f + sgebrd.f sgecon.f sgeequ.f sgees.f sgeesx.f sgeev.f sgeevx.f + sgegs.f sgegv.f sgehd2.f sgehrd.f sgelq2.f sgelqf.f + sgels.f sgelsd.f sgelss.f sgelsx.f sgelsy.f sgeql2.f sgeqlf.f + sgeqp3.f sgeqpf.f sgeqr2.f sgeqrf.f sgerfs.f sgerq2.f sgerqf.f + sgesc2.f sgesdd.f sgesv.f sgesvd.f sgesvx.f sgetc2.f sgetf2.f + sgetrf.f sgetri.f + sgetrs.f sggbak.f sggbal.f sgges.f sggesx.f sggev.f sggevx.f + sggglm.f sgghrd.f sgglse.f sggqrf.f + sggrqf.f sggsvd.f sggsvp.f sgtcon.f sgtrfs.f sgtsv.f + sgtsvx.f sgttrf.f sgttrs.f sgtts2.f shgeqz.f + shsein.f shseqr.f slabrd.f slacon.f slacn2.f + slaein.f slaexc.f slag2.f slags2.f slagtm.f slagv2.f slahqr.f + slahrd.f slahr2.f slaic1.f slaln2.f slals0.f slalsa.f slalsd.f + slangb.f slange.f slangt.f slanhs.f slansb.f slansp.f + slansy.f slantb.f slantp.f slantr.f slanv2.f + slapll.f slapmt.f + slaqgb.f slaqge.f slaqp2.f slaqps.f slaqsb.f slaqsp.f slaqsy.f + slaqr0.f slaqr1.f slaqr2.f slaqr3.f slaqr4.f slaqr5.f + slaqtr.f slar1v.f slar2v.f ilaslr.f ilaslc.f + slarf.f slarfb.f slarfg.f slarft.f slarfx.f slargv.f + slarrv.f slartv.f slarfp.f + slarz.f slarzb.f slarzt.f slaswp.f slasy2.f slasyf.f + slatbs.f slatdf.f slatps.f slatrd.f slatrs.f slatrz.f slatzm.f + slauu2.f slauum.f sopgtr.f sopmtr.f sorg2l.f sorg2r.f + sorgbr.f sorghr.f sorgl2.f sorglq.f sorgql.f sorgqr.f sorgr2.f + sorgrq.f sorgtr.f sorm2l.f sorm2r.f + sormbr.f sormhr.f sorml2.f sormlq.f sormql.f sormqr.f sormr2.f + sormr3.f sormrq.f sormrz.f sormtr.f spbcon.f spbequ.f spbrfs.f + spbstf.f spbsv.f spbsvx.f + spbtf2.f spbtrf.f spbtrs.f spocon.f spoequ.f sporfs.f sposv.f + sposvx.f spotf2.f spotrf.f spotri.f spotrs.f spstrf.f spstf2.f + sppcon.f sppequ.f + spprfs.f sppsv.f sppsvx.f spptrf.f spptri.f spptrs.f sptcon.f + spteqr.f sptrfs.f sptsv.f sptsvx.f spttrs.f sptts2.f srscl.f + ssbev.f ssbevd.f ssbevx.f ssbgst.f ssbgv.f ssbgvd.f ssbgvx.f + ssbtrd.f sspcon.f sspev.f sspevd.f sspevx.f sspgst.f + sspgv.f sspgvd.f sspgvx.f ssprfs.f sspsv.f sspsvx.f ssptrd.f + ssptrf.f ssptri.f ssptrs.f sstegr.f sstein.f sstev.f sstevd.f sstevr.f + sstevx.f ssycon.f ssyev.f ssyevd.f ssyevr.f ssyevx.f ssygs2.f + ssygst.f ssygv.f ssygvd.f ssygvx.f ssyrfs.f ssysv.f ssysvx.f + ssytd2.f ssytf2.f ssytrd.f ssytrf.f ssytri.f ssytrs.f stbcon.f + stbrfs.f stbtrs.f stgevc.f stgex2.f stgexc.f stgsen.f + stgsja.f stgsna.f stgsy2.f stgsyl.f stpcon.f stprfs.f stptri.f + stptrs.f + strcon.f strevc.f strexc.f strrfs.f strsen.f strsna.f strsyl.f + strti2.f strtri.f strtrs.f stzrqf.f stzrzf.f sstemr.f + slansf.f spftrf.f spftri.f spftrs.f ssfrk.f stfsm.f stftri.f stfttp.f + stfttr.f stpttf.f stpttr.f strttf.f strttp.f + sgejsv.f sgesvj.f sgsvj0.f sgsvj1.f + sgeequb.f ssyequb.f spoequb.f sgbequb.f) + +set(SXLASRC sgesvxx.f sgerfsx.f sla_gerfsx_extended.f sla_geamv.f + sla_gercond.f sla_rpvgrw.f ssysvxx.f ssyrfsx.f + sla_syrfsx_extended.f sla_syamv.f sla_syrcond.f sla_syrpvgrw.f + sposvxx.f sporfsx.f sla_porfsx_extended.f sla_porcond.f + sla_porpvgrw.f sgbsvxx.f sgbrfsx.f sla_gbrfsx_extended.f + sla_gbamv.f sla_gbrcond.f sla_gbrpvgrw.f sla_lin_berr.f slarscl2.f + slascl2.f sla_wwaddw.f) + +set(CLASRC + cbdsqr.f cgbbrd.f cgbcon.f cgbequ.f cgbrfs.f cgbsv.f cgbsvx.f + cgbtf2.f cgbtrf.f cgbtrs.f cgebak.f cgebal.f cgebd2.f cgebrd.f + cgecon.f cgeequ.f cgees.f cgeesx.f cgeev.f cgeevx.f + cgegs.f cgegv.f cgehd2.f cgehrd.f cgelq2.f cgelqf.f + cgels.f cgelsd.f cgelss.f cgelsx.f cgelsy.f cgeql2.f cgeqlf.f cgeqp3.f + cgeqpf.f cgeqr2.f cgeqrf.f cgerfs.f cgerq2.f cgerqf.f + cgesc2.f cgesdd.f cgesv.f cgesvd.f cgesvx.f cgetc2.f cgetf2.f cgetrf.f + cgetri.f cgetrs.f + cggbak.f cggbal.f cgges.f cggesx.f cggev.f cggevx.f cggglm.f + cgghrd.f cgglse.f cggqrf.f cggrqf.f + cggsvd.f cggsvp.f + cgtcon.f cgtrfs.f cgtsv.f cgtsvx.f cgttrf.f cgttrs.f cgtts2.f chbev.f + chbevd.f chbevx.f chbgst.f chbgv.f chbgvd.f chbgvx.f chbtrd.f + checon.f cheev.f cheevd.f cheevr.f cheevx.f chegs2.f chegst.f + chegv.f chegvd.f chegvx.f cherfs.f chesv.f chesvx.f chetd2.f + chetf2.f chetrd.f + chetrf.f chetri.f chetrs.f chgeqz.f chpcon.f chpev.f chpevd.f + chpevx.f chpgst.f chpgv.f chpgvd.f chpgvx.f chprfs.f chpsv.f + chpsvx.f + chptrd.f chptrf.f chptri.f chptrs.f chsein.f chseqr.f clabrd.f + clacgv.f clacon.f clacn2.f clacp2.f clacpy.f clacrm.f clacrt.f cladiv.f + claed0.f claed7.f claed8.f + claein.f claesy.f claev2.f clags2.f clagtm.f + clahef.f clahqr.f + clahrd.f clahr2.f claic1.f clals0.f clalsa.f clalsd.f clangb.f clange.f clangt.f + clanhb.f clanhe.f + clanhp.f clanhs.f clanht.f clansb.f clansp.f clansy.f clantb.f + clantp.f clantr.f clapll.f clapmt.f clarcm.f claqgb.f claqge.f + claqhb.f claqhe.f claqhp.f claqp2.f claqps.f claqsb.f + claqr0.f claqr1.f claqr2.f claqr3.f claqr4.f claqr5.f + claqsp.f claqsy.f clar1v.f clar2v.f ilaclr.f ilaclc.f + clarf.f clarfb.f clarfg.f clarft.f clarfp.f + clarfx.f clargv.f clarnv.f clarrv.f clartg.f clartv.f + clarz.f clarzb.f clarzt.f clascl.f claset.f clasr.f classq.f + claswp.f clasyf.f clatbs.f clatdf.f clatps.f clatrd.f clatrs.f clatrz.f + clatzm.f clauu2.f clauum.f cpbcon.f cpbequ.f cpbrfs.f cpbstf.f cpbsv.f + cpbsvx.f cpbtf2.f cpbtrf.f cpbtrs.f cpocon.f cpoequ.f cporfs.f + cposv.f cposvx.f cpotf2.f cpotrf.f cpotri.f cpotrs.f cpstrf.f cpstf2.f + cppcon.f cppequ.f cpprfs.f cppsv.f cppsvx.f cpptrf.f cpptri.f cpptrs.f + cptcon.f cpteqr.f cptrfs.f cptsv.f cptsvx.f cpttrf.f cpttrs.f cptts2.f + crot.f cspcon.f cspmv.f cspr.f csprfs.f cspsv.f + cspsvx.f csptrf.f csptri.f csptrs.f csrscl.f cstedc.f + cstegr.f cstein.f csteqr.f csycon.f csymv.f + csyr.f csyrfs.f csysv.f csysvx.f csytf2.f csytrf.f csytri.f + csytrs.f ctbcon.f ctbrfs.f ctbtrs.f ctgevc.f ctgex2.f + ctgexc.f ctgsen.f ctgsja.f ctgsna.f ctgsy2.f ctgsyl.f ctpcon.f + ctprfs.f ctptri.f + ctptrs.f ctrcon.f ctrevc.f ctrexc.f ctrrfs.f ctrsen.f ctrsna.f + ctrsyl.f ctrti2.f ctrtri.f ctrtrs.f ctzrqf.f ctzrzf.f cung2l.f cung2r.f + cungbr.f cunghr.f cungl2.f cunglq.f cungql.f cungqr.f cungr2.f + cungrq.f cungtr.f cunm2l.f cunm2r.f cunmbr.f cunmhr.f cunml2.f + cunmlq.f cunmql.f cunmqr.f cunmr2.f cunmr3.f cunmrq.f cunmrz.f + cunmtr.f cupgtr.f cupmtr.f icmax1.f scsum1.f cstemr.f + chfrk.f ctfttp.f clanhf.f cpftrf.f cpftri.f cpftrs.f ctfsm.f ctftri.f + ctfttr.f ctpttf.f ctpttr.f ctrttf.f ctrttp.f + cgeequb.f cgbequb.f csyequb.f cpoequb.f cheequb.f) + +set(CXLASRC cgesvxx.f cgerfsx.f cla_gerfsx_extended.f cla_geamv.f + cla_gercond_c.f cla_gercond_x.f cla_rpvgrw.f + csysvxx.f csyrfsx.f cla_syrfsx_extended.f cla_syamv.f + cla_syrcond_c.f cla_syrcond_x.f cla_syrpvgrw.f + cposvxx.f cporfsx.f cla_porfsx_extended.f + cla_porcond_c.f cla_porcond_x.f cla_porpvgrw.f + cgbsvxx.f cgbrfsx.f cla_gbrfsx_extended.f cla_gbamv.f + cla_gbrcond_c.f cla_gbrcond_x.f cla_gbrpvgrw.f + chesvxx.f cherfsx.f cla_herfsx_extended.f cla_heamv.f + cla_hercond_c.f cla_hercond_x.f cla_herpvgrw.f + cla_lin_berr.f clarscl2.f clascl2.f cla_wwaddw.f) + +set(DLASRC + dgbbrd.f dgbcon.f dgbequ.f dgbrfs.f dgbsv.f + dgbsvx.f dgbtf2.f dgbtrf.f dgbtrs.f dgebak.f dgebal.f dgebd2.f + dgebrd.f dgecon.f dgeequ.f dgees.f dgeesx.f dgeev.f dgeevx.f + dgegs.f dgegv.f dgehd2.f dgehrd.f dgelq2.f dgelqf.f + dgels.f dgelsd.f dgelss.f dgelsx.f dgelsy.f dgeql2.f dgeqlf.f + dgeqp3.f dgeqpf.f dgeqr2.f dgeqrf.f dgerfs.f dgerq2.f dgerqf.f + dgesc2.f dgesdd.f dgesv.f dgesvd.f dgesvx.f dgetc2.f dgetf2.f + dgetrf.f dgetri.f + dgetrs.f dggbak.f dggbal.f dgges.f dggesx.f dggev.f dggevx.f + dggglm.f dgghrd.f dgglse.f dggqrf.f + dggrqf.f dggsvd.f dggsvp.f dgtcon.f dgtrfs.f dgtsv.f + dgtsvx.f dgttrf.f dgttrs.f dgtts2.f dhgeqz.f + dhsein.f dhseqr.f dlabrd.f dlacon.f dlacn2.f + dlaein.f dlaexc.f dlag2.f dlags2.f dlagtm.f dlagv2.f dlahqr.f + dlahrd.f dlahr2.f dlaic1.f dlaln2.f dlals0.f dlalsa.f dlalsd.f + dlangb.f dlange.f dlangt.f dlanhs.f dlansb.f dlansp.f + dlansy.f dlantb.f dlantp.f dlantr.f dlanv2.f + dlapll.f dlapmt.f + dlaqgb.f dlaqge.f dlaqp2.f dlaqps.f dlaqsb.f dlaqsp.f dlaqsy.f + dlaqr0.f dlaqr1.f dlaqr2.f dlaqr3.f dlaqr4.f dlaqr5.f + dlaqtr.f dlar1v.f dlar2v.f iladlr.f iladlc.f + dlarf.f dlarfb.f dlarfg.f dlarft.f dlarfx.f dlargv.f + dlarrv.f dlartv.f dlarfp.f + dlarz.f dlarzb.f dlarzt.f dlaswp.f dlasy2.f dlasyf.f + dlatbs.f dlatdf.f dlatps.f dlatrd.f dlatrs.f dlatrz.f dlatzm.f dlauu2.f + dlauum.f dopgtr.f dopmtr.f dorg2l.f dorg2r.f + dorgbr.f dorghr.f dorgl2.f dorglq.f dorgql.f dorgqr.f dorgr2.f + dorgrq.f dorgtr.f dorm2l.f dorm2r.f + dormbr.f dormhr.f dorml2.f dormlq.f dormql.f dormqr.f dormr2.f + dormr3.f dormrq.f dormrz.f dormtr.f dpbcon.f dpbequ.f dpbrfs.f + dpbstf.f dpbsv.f dpbsvx.f + dpbtf2.f dpbtrf.f dpbtrs.f dpocon.f dpoequ.f dporfs.f dposv.f + dposvx.f dpotf2.f dpotrf.f dpotri.f dpotrs.f dpstrf.f dpstf2.f + dppcon.f dppequ.f + dpprfs.f dppsv.f dppsvx.f dpptrf.f dpptri.f dpptrs.f dptcon.f + dpteqr.f dptrfs.f dptsv.f dptsvx.f dpttrs.f dptts2.f drscl.f + dsbev.f dsbevd.f dsbevx.f dsbgst.f dsbgv.f dsbgvd.f dsbgvx.f + dsbtrd.f dspcon.f dspev.f dspevd.f dspevx.f dspgst.f + dspgv.f dspgvd.f dspgvx.f dsprfs.f dspsv.f dspsvx.f dsptrd.f + dsptrf.f dsptri.f dsptrs.f dstegr.f dstein.f dstev.f dstevd.f dstevr.f + dstevx.f dsycon.f dsyev.f dsyevd.f dsyevr.f + dsyevx.f dsygs2.f dsygst.f dsygv.f dsygvd.f dsygvx.f dsyrfs.f + dsysv.f dsysvx.f + dsytd2.f dsytf2.f dsytrd.f dsytrf.f dsytri.f dsytrs.f dtbcon.f + dtbrfs.f dtbtrs.f dtgevc.f dtgex2.f dtgexc.f dtgsen.f + dtgsja.f dtgsna.f dtgsy2.f dtgsyl.f dtpcon.f dtprfs.f dtptri.f + dtptrs.f + dtrcon.f dtrevc.f dtrexc.f dtrrfs.f dtrsen.f dtrsna.f dtrsyl.f + dtrti2.f dtrtri.f dtrtrs.f dtzrqf.f dtzrzf.f dstemr.f + dsgesv.f dsposv.f dlag2s.f slag2d.f dlat2s.f + dlansf.f dpftrf.f dpftri.f dpftrs.f dsfrk.f dtfsm.f dtftri.f dtfttp.f + dtfttr.f dtpttf.f dtpttr.f dtrttf.f dtrttp.f + dgejsv.f dgesvj.f dgsvj0.f dgsvj1.f + dgeequb.f dsyequb.f dpoequb.f dgbequb.f) + +set(DXLASRC dgesvxx.f dgerfsx.f dla_gerfsx_extended.f dla_geamv.f + dla_gercond.f dla_rpvgrw.f dsysvxx.f dsyrfsx.f + dla_syrfsx_extended.f dla_syamv.f dla_syrcond.f dla_syrpvgrw.f + dposvxx.f dporfsx.f dla_porfsx_extended.f dla_porcond.f + dla_porpvgrw.f dgbsvxx.f dgbrfsx.f dla_gbrfsx_extended.f + dla_gbamv.f dla_gbrcond.f dla_gbrpvgrw.f dla_lin_berr.f dlarscl2.f + dlascl2.f dla_wwaddw.f) + +set(ZLASRC + zbdsqr.f zgbbrd.f zgbcon.f zgbequ.f zgbrfs.f zgbsv.f zgbsvx.f + zgbtf2.f zgbtrf.f zgbtrs.f zgebak.f zgebal.f zgebd2.f zgebrd.f + zgecon.f zgeequ.f zgees.f zgeesx.f zgeev.f zgeevx.f + zgegs.f zgegv.f zgehd2.f zgehrd.f zgelq2.f zgelqf.f + zgels.f zgelsd.f zgelss.f zgelsx.f zgelsy.f zgeql2.f zgeqlf.f zgeqp3.f + zgeqpf.f zgeqr2.f zgeqrf.f zgerfs.f zgerq2.f zgerqf.f + zgesc2.f zgesdd.f zgesv.f zgesvd.f zgesvx.f zgetc2.f zgetf2.f zgetrf.f + zgetri.f zgetrs.f + zggbak.f zggbal.f zgges.f zggesx.f zggev.f zggevx.f zggglm.f + zgghrd.f zgglse.f zggqrf.f zggrqf.f + zggsvd.f zggsvp.f + zgtcon.f zgtrfs.f zgtsv.f zgtsvx.f zgttrf.f zgttrs.f zgtts2.f zhbev.f + zhbevd.f zhbevx.f zhbgst.f zhbgv.f zhbgvd.f zhbgvx.f zhbtrd.f + zhecon.f zheev.f zheevd.f zheevr.f zheevx.f zhegs2.f zhegst.f + zhegv.f zhegvd.f zhegvx.f zherfs.f zhesv.f zhesvx.f zhetd2.f + zhetf2.f zhetrd.f + zhetrf.f zhetri.f zhetrs.f zhgeqz.f zhpcon.f zhpev.f zhpevd.f + zhpevx.f zhpgst.f zhpgv.f zhpgvd.f zhpgvx.f zhprfs.f zhpsv.f + zhpsvx.f + zhptrd.f zhptrf.f zhptri.f zhptrs.f zhsein.f zhseqr.f zlabrd.f + zlacgv.f zlacon.f zlacn2.f zlacp2.f zlacpy.f zlacrm.f zlacrt.f zladiv.f + zlaed0.f zlaed7.f zlaed8.f + zlaein.f zlaesy.f zlaev2.f zlags2.f zlagtm.f + zlahef.f zlahqr.f + zlahrd.f zlahr2.f zlaic1.f zlals0.f zlalsa.f zlalsd.f zlangb.f zlange.f + zlangt.f zlanhb.f + zlanhe.f + zlanhp.f zlanhs.f zlanht.f zlansb.f zlansp.f zlansy.f zlantb.f + zlantp.f zlantr.f zlapll.f zlapmt.f zlaqgb.f zlaqge.f + zlaqhb.f zlaqhe.f zlaqhp.f zlaqp2.f zlaqps.f zlaqsb.f + zlaqr0.f zlaqr1.f zlaqr2.f zlaqr3.f zlaqr4.f zlaqr5.f + zlaqsp.f zlaqsy.f zlar1v.f zlar2v.f ilazlr.f ilazlc.f + zlarcm.f zlarf.f zlarfb.f + zlarfg.f zlarft.f zlarfp.f + zlarfx.f zlargv.f zlarnv.f zlarrv.f zlartg.f zlartv.f + zlarz.f zlarzb.f zlarzt.f zlascl.f zlaset.f zlasr.f + zlassq.f zlaswp.f zlasyf.f + zlatbs.f zlatdf.f zlatps.f zlatrd.f zlatrs.f zlatrz.f zlatzm.f zlauu2.f + zlauum.f zpbcon.f zpbequ.f zpbrfs.f zpbstf.f zpbsv.f + zpbsvx.f zpbtf2.f zpbtrf.f zpbtrs.f zpocon.f zpoequ.f zporfs.f + zposv.f zposvx.f zpotf2.f zpotrf.f zpotri.f zpotrs.f zpstrf.f zpstf2.f + zppcon.f zppequ.f zpprfs.f zppsv.f zppsvx.f zpptrf.f zpptri.f zpptrs.f + zptcon.f zpteqr.f zptrfs.f zptsv.f zptsvx.f zpttrf.f zpttrs.f zptts2.f + zrot.f zspcon.f zspmv.f zspr.f zsprfs.f zspsv.f + zspsvx.f zsptrf.f zsptri.f zsptrs.f zdrscl.f zstedc.f + zstegr.f zstein.f zsteqr.f zsycon.f zsymv.f + zsyr.f zsyrfs.f zsysv.f zsysvx.f zsytf2.f zsytrf.f zsytri.f + zsytrs.f ztbcon.f ztbrfs.f ztbtrs.f ztgevc.f ztgex2.f + ztgexc.f ztgsen.f ztgsja.f ztgsna.f ztgsy2.f ztgsyl.f ztpcon.f + ztprfs.f ztptri.f + ztptrs.f ztrcon.f ztrevc.f ztrexc.f ztrrfs.f ztrsen.f ztrsna.f + ztrsyl.f ztrti2.f ztrtri.f ztrtrs.f ztzrqf.f ztzrzf.f zung2l.f + zung2r.f zungbr.f zunghr.f zungl2.f zunglq.f zungql.f zungqr.f zungr2.f + zungrq.f zungtr.f zunm2l.f zunm2r.f zunmbr.f zunmhr.f zunml2.f + zunmlq.f zunmql.f zunmqr.f zunmr2.f zunmr3.f zunmrq.f zunmrz.f + zunmtr.f zupgtr.f + zupmtr.f izmax1.f dzsum1.f zstemr.f + zcgesv.f zcposv.f zlag2c.f clag2z.f zlat2c.f + zhfrk.f ztfttp.f zlanhf.f zpftrf.f zpftri.f zpftrs.f ztfsm.f ztftri.f + ztfttr.f ztpttf.f ztpttr.f ztrttf.f ztrttp.f + zgeequb.f zgbequb.f zsyequb.f zpoequb.f zheequb.f) + +set(ZXLASRC zgesvxx.f zgerfsx.f zla_gerfsx_extended.f zla_geamv.f + zla_gercond_c.f zla_gercond_x.f zla_rpvgrw.f zsysvxx.f zsyrfsx.f + zla_syrfsx_extended.f zla_syamv.f zla_syrcond_c.f zla_syrcond_x.f + zla_syrpvgrw.f zposvxx.f zporfsx.f zla_porfsx_extended.f + zla_porcond_c.f zla_porcond_x.f zla_porpvgrw.f zgbsvxx.f zgbrfsx.f + zla_gbrfsx_extended.f zla_gbamv.f zla_gbrcond_c.f zla_gbrcond_x.f + zla_gbrpvgrw.f zhesvxx.f zherfsx.f zla_herfsx_extended.f + zla_heamv.f zla_hercond_c.f zla_hercond_x.f zla_herpvgrw.f + zla_lin_berr.f zlarscl2.f zlascl2.f zla_wwaddw.f) + + +if( USEXBLAS) + set(ALLXOBJ ${SXLASRC} ${DXLASRC} ${CXLASRC} ${ZXLASRC} ${ALLXAUX}) +endif() + +set(ALLOBJ ${SLASRC} ${DLASRC} ${CLASRC} ${ZLASRC} ${SCLAUX} ${DZLAUX} + ${ALLAUX}) +if(BUILD_SINGLE) +set(ALLOBJ ${SLASRC} ${ALLAUX} + ${SCLAUX}) +endif() +if(BUILD_DOUBLE) + set(ALLOBJ ${DLASRC} ${ALLAUX} ${DZLAUX}) +endif() +if(BUILD_COMPLEX) + set(ALLOBJ ${CLASRC} ${ALLAUX} ${SCLAUX}) +endif() +if(BUILD_COMPLEX16) + set(ALLOBJ ${ZLASRC} ${ALLAUX} ${DZLAUX}) +endif() +add_library(lapack ${ALLOBJ} ${ALLXOBJ}) +target_link_libraries(lapack blas) + diff --git a/TESTING/CMakeLists.txt b/TESTING/CMakeLists.txt new file mode 100644 index 00000000..37022d99 --- /dev/null +++ b/TESTING/CMakeLists.txt @@ -0,0 +1,296 @@ +if(MSVC_VERSION) +# string(REPLACE "/STACK:10000000" "/STACK:900000000000000000" +# CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}") + string(REGEX REPLACE "(.*)/STACK:(.*) (.*)" "\\1/STACK:900000000000000000 \\3" + CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}") +endif() +add_subdirectory(MATGEN) +add_subdirectory(LIN) +add_subdirectory(EIG) +macro(add_lapack_test output input target) + set(TEST_INPUT "${LAPACK_SOURCE_DIR}/TESTING/${input}") + set(TEST_OUTPUT "${LAPACK_BINARY_DIR}/TESTING/${output}") + get_target_property(TEST_LOC ${target} LOCATION) + string(REPLACE "." "_" input_name ${input}) + set(testName "${target}_${input_name}") + if(EXISTS "${TEST_INPUT}") + add_test(${testName} "${CMAKE_COMMAND}" + -DTEST=${TEST_LOC} + -DINPUT=${TEST_INPUT} + -DOUTPUT=${TEST_OUTPUT} + -DINTDIR=${CMAKE_CFG_INTDIR} + -P "${LAPACK_SOURCE_DIR}/TESTING/runtest.cmake") + endif() +endmacro(add_lapack_test) + +add_lapack_test(stest.out stest.in xlintsts) + +add_lapack_test(ctest.out ctest.in xlintstc) +# +# ======== DOUBLE LIN TESTS =========================== + +add_lapack_test(dtest.out dtest.in xlintstd) + +# +# ======== COMPLEX16 LIN TESTS ======================== + +add_lapack_test(ztest.out ztest.in xlintstz) + +# +# ======== SINGLE-DOUBLE PROTO LIN TESTS ============== + +add_lapack_test(dstest.out dstest.in xlintstds) + +# +# ======== COMPLEX-COMPLEX16 LIN TESTS ======================== + +add_lapack_test(zctest.out zctest.in xlintstzc) + +# +# ======== SINGLE RFP LIN TESTS ======================== + +add_lapack_test(stest_rfp.out stest_rfp.in xlintstrfs) + +# +# ======== COMPLEX16 RFP LIN TESTS ======================== + +add_lapack_test(dtest_rfp.out dtest_rfp.in xlintstrfd) + +# +# ======== COMPLEX16 RFP LIN TESTS ======================== + +add_lapack_test(ctest_rfp.out ctest_rfp.in xlintstrfc) + +# +# ======== COMPLEX16 RFP LIN TESTS ======================== + +add_lapack_test(ztest_rfp.out ztest_rfp.in xlintstrfz) + +# +# +# ======== SINGLE EIG TESTS =========================== +# + +add_lapack_test(snep.out nep.in xeigtsts) + + +add_lapack_test(ssep.out sep.in xeigtsts) + + +add_lapack_test(ssvd.out svd.in xeigtsts) + + +add_lapack_test(sec.out sec.in xeigtsts) + + +add_lapack_test(sed.out sed.in xeigtsts) + + +add_lapack_test(sgg.out sgg.in xeigtsts) + + +add_lapack_test(sgd.out sgd.in xeigtsts) + + +add_lapack_test(ssb.out ssb.in xeigtsts) + + +add_lapack_test(ssg.out ssg.in xeigtsts) + + +add_lapack_test(sbal.out sbal.in xeigtsts) + + +add_lapack_test(sbak.out sbak.in xeigtsts) + + +add_lapack_test(sgbal.out sgbal.in xeigtsts) + + +add_lapack_test(sgbak.out sgbak.in xeigtsts) + + +add_lapack_test(sbb.out sbb.in xeigtsts) + + +add_lapack_test(sglm.out glm.in xeigtsts) + + +add_lapack_test(sgqr.out gqr.in xeigtsts) + + +add_lapack_test(sgsv.out gsv.in xeigtsts) + + +add_lapack_test(slse.out lse.in xeigtsts) + +# +# ======== COMPLEX EIG TESTS =========================== + +add_lapack_test(cnep.out nep.in xeigtstc) + + +add_lapack_test(csep.out sep.in xeigtstc) + + +add_lapack_test(csvd.out svd.in xeigtstc) + + +add_lapack_test(cec.out cec.in xeigtstc) + + +add_lapack_test(ced.out ced.in xeigtstc) + + +add_lapack_test(cgg.out cgg.in xeigtstc) + + +add_lapack_test(cgd.out cgd.in xeigtstc) + + +add_lapack_test(csb.out csb.in xeigtstc) + + +add_lapack_test(csg.out csg.in xeigtstc) + + +add_lapack_test(cbal.out cbal.in xeigtstc) + + +add_lapack_test(cbak.out cbak.in xeigtstc) + + +add_lapack_test(cgbal.out cgbal.in xeigtstc) + + +add_lapack_test(cgbak.out cgbak.in xeigtstc) + + +add_lapack_test(cbb.out cbb.in xeigtstc) + + +add_lapack_test(cglm.out glm.in xeigtstc) + + +add_lapack_test(cgqr.out gqr.in xeigtstc) + + +add_lapack_test(cgsv.out gsv.in xeigtstc) + + +add_lapack_test(clse.out lse.in xeigtstc) + +# +# ======== DOUBLE EIG TESTS =========================== + +add_lapack_test(dnep.out nep.in xeigtstd) + + +add_lapack_test(dsep.out sep.in xeigtstd) + + +add_lapack_test(dsvd.out svd.in xeigtstd) + + +add_lapack_test(dec.out dec.in xeigtstd) + + +add_lapack_test(ded.out ded.in xeigtstd) + + +add_lapack_test(dgg.out dgg.in xeigtstd) + + +add_lapack_test(dgd.out dgd.in xeigtstd) + + +add_lapack_test(dsb.out dsb.in xeigtstd) + + +add_lapack_test(dsg.out dsg.in xeigtstd) + + +add_lapack_test(dbal.out dbal.in xeigtstd) + + +add_lapack_test(dbak.out dbak.in xeigtstd) + + +add_lapack_test(dgbal.out dgbal.in xeigtstd) + + +add_lapack_test(dgbak.out dgbak.in xeigtstd) + + +add_lapack_test(dbb.out dbb.in xeigtstd) + + +add_lapack_test(dglm.out glm.in xeigtstd) + + +add_lapack_test(dgqr.out gqr.in xeigtstd) + + +add_lapack_test(dgsv.out gsv.in xeigtstd) + + +add_lapack_test(dlse.out lse.in xeigtstd) + +# +# ======== COMPLEX16 EIG TESTS =========================== + +add_lapack_test(znep.out nep.in xeigtstz) + + +add_lapack_test(zsep.out sep.in xeigtstz) + + +add_lapack_test(zsvd.out svd.in xeigtstz) + + +add_lapack_test(zec.out zec.in xeigtstz) + + +add_lapack_test(zed.out zed.in xeigtstz) + + +add_lapack_test(zgg.out zgg.in xeigtstz) + + +add_lapack_test(zgd.out zgd.in xeigtstz) + + +add_lapack_test(zsb.out zsb.in xeigtstz) + + +add_lapack_test(zsg.out zsg.in xeigtstz) + + +add_lapack_test(zbal.out zbal.in xeigtstz) + + +add_lapack_test(zbak.out zbak.in xeigtstz) + + +add_lapack_test(zgbal.out zgbal.in xeigtstz) + + +add_lapack_test(zgbak.out zgbak.in xeigtstz) + + +add_lapack_test(zbb.out zbb.in xeigtstz) + + +add_lapack_test(zglm.out glm.in xeigtstz) + + +add_lapack_test(zgqr.out gqr.in xeigtstz) + + +add_lapack_test(zgsv.out gsv.in xeigtstz) + + +add_lapack_test(zlse.out lse.in xeigtstz) + +# ============================================================================== + diff --git a/TESTING/EIG/CMakeLists.txt b/TESTING/EIG/CMakeLists.txt new file mode 100644 index 00000000..7f9ac9f5 --- /dev/null +++ b/TESTING/EIG/CMakeLists.txt @@ -0,0 +1,135 @@ +######################################################################## +# This is the makefile for the eigenvalue test program from LAPACK. +# The test files are organized as follows: +# +# AEIGTST -- Auxiliary test routines used in all precisions +# SCIGTST -- Auxiliary test routines used in REAL and COMPLEX +# DZIGTST -- Auxiliary test routines used in DOUBLE PRECISION and +# COMPLEX*16 +# SEIGTST -- Single precision real test routines +# CEIGTST -- Single precision complex test routines +# DEIGTST -- Double precision real test routines +# ZEIGTST -- Double precision complex test routines +# +# Test programs can be generated for all or some of the four different +# precisions. Enter make followed by one or more of the data types +# desired. Some examples: +# make single +# make single complex +# make single double complex complex16 +# Alternatively, the command +# make +# without any arguments creates all four test programs. +# The executable files are called +# xeigtsts, xeigtstd, xeigtstc, and xeigtstz +# and are created in the next higher directory level. +# +# To remove the object files after the executable files have been +# created, enter +# make clean +# On some systems, you can force the source files to be recompiled by +# entering (for example) +# make single FRC=FRC +# +######################################################################## + +set(AEIGTST + alahdg.f + alasum.f + alasvm.f + alareq.f + ilaenv.f + xerbla.f + xlaenv.f + chkxer.f) + +set(SCIGTST slafts.f slahd2.f slasum.f slatb9.f sstech.f sstect.f + ssvdch.f ssvdct.f ssxt1.f) + +set(SEIGTST schkee.f + sbdt01.f sbdt02.f sbdt03.f + schkbb.f schkbd.f schkbk.f schkbl.f schkec.f + schkgg.f schkgk.f schkgl.f schkhs.f schksb.f schkst.f + sckglm.f sckgqr.f sckgsv.f scklse.f + sdrges.f sdrgev.f sdrgsx.f sdrgvx.f + sdrvbd.f sdrves.f sdrvev.f sdrvgg.f sdrvsg.f + sdrvst.f sdrvsx.f sdrvvx.f + serrbd.f serrec.f serred.f serrgg.f serrhs.f serrst.f + sget02.f sget10.f sget22.f sget23.f sget24.f sget31.f + sget32.f sget33.f sget34.f sget35.f sget36.f + sget37.f sget38.f sget39.f sget51.f sget52.f sget53.f + sget54.f sglmts.f sgqrts.f sgrqts.f sgsvts.f + shst01.f slarfy.f slarhs.f slatm4.f slctes.f slctsx.f slsets.f sort01.f + sort03.f ssbt21.f ssgt01.f sslect.f sspt21.f sstt21.f + sstt22.f ssyt21.f ssyt22.f) + +set(CEIGTST cchkee.f + cbdt01.f cbdt02.f cbdt03.f + cchkbb.f cchkbd.f cchkbk.f cchkbl.f cchkec.f + cchkgg.f cchkgk.f cchkgl.f cchkhb.f cchkhs.f cchkst.f + cckglm.f cckgqr.f cckgsv.f ccklse.f + cdrges.f cdrgev.f cdrgsx.f cdrgvx.f + cdrvbd.f cdrves.f cdrvev.f cdrvgg.f cdrvsg.f + cdrvst.f cdrvsx.f cdrvvx.f + cerrbd.f cerrec.f cerred.f cerrgg.f cerrhs.f cerrst.f + cget02.f cget10.f cget22.f cget23.f cget24.f + cget35.f cget36.f cget37.f cget38.f cget51.f cget52.f + cget54.f cglmts.f cgqrts.f cgrqts.f cgsvts.f + chbt21.f chet21.f chet22.f chpt21.f chst01.f + clarfy.f clarhs.f clatm4.f clctes.f clctsx.f clsets.f csbmv.f + csgt01.f cslect.f + cstt21.f cstt22.f cunt01.f cunt03.f) + +set(DZIGTST dlafts.f dlahd2.f dlasum.f dlatb9.f dstech.f dstect.f + dsvdch.f dsvdct.f dsxt1.f) + +set(DEIGTST dchkee.f + dbdt01.f dbdt02.f dbdt03.f + dchkbb.f dchkbd.f dchkbk.f dchkbl.f dchkec.f + dchkgg.f dchkgk.f dchkgl.f dchkhs.f dchksb.f dchkst.f + dckglm.f dckgqr.f dckgsv.f dcklse.f + ddrges.f ddrgev.f ddrgsx.f ddrgvx.f + ddrvbd.f ddrves.f ddrvev.f ddrvgg.f ddrvsg.f + ddrvst.f ddrvsx.f ddrvvx.f + derrbd.f derrec.f derred.f derrgg.f derrhs.f derrst.f + dget02.f dget10.f dget22.f dget23.f dget24.f dget31.f + dget32.f dget33.f dget34.f dget35.f dget36.f + dget37.f dget38.f dget39.f dget51.f dget52.f dget53.f + dget54.f dglmts.f dgqrts.f dgrqts.f dgsvts.f + dhst01.f dlarfy.f dlarhs.f dlatm4.f dlctes.f dlctsx.f dlsets.f dort01.f + dort03.f dsbt21.f dsgt01.f dslect.f dspt21.f dstt21.f + dstt22.f dsyt21.f dsyt22.f) + +set(ZEIGTST zchkee.f + zbdt01.f zbdt02.f zbdt03.f + zchkbb.f zchkbd.f zchkbk.f zchkbl.f zchkec.f + zchkgg.f zchkgk.f zchkgl.f zchkhb.f zchkhs.f zchkst.f + zckglm.f zckgqr.f zckgsv.f zcklse.f + zdrges.f zdrgev.f zdrgsx.f zdrgvx.f + zdrvbd.f zdrves.f zdrvev.f zdrvgg.f zdrvsg.f + zdrvst.f zdrvsx.f zdrvvx.f + zerrbd.f zerrec.f zerred.f zerrgg.f zerrhs.f zerrst.f + zget02.f zget10.f zget22.f zget23.f zget24.f + zget35.f zget36.f zget37.f zget38.f zget51.f zget52.f + zget54.f zglmts.f zgqrts.f zgrqts.f zgsvts.f + zhbt21.f zhet21.f zhet22.f zhpt21.f zhst01.f + zlarfy.f zlarhs.f zlatm4.f zlctes.f zlctsx.f zlsets.f zsbmv.f + zsgt01.f zslect.f + zstt21.f zstt22.f zunt01.f zunt03.f) + +macro(add_eig_executable name ) + add_executable(${name} ${ARGN}) + target_link_libraries(${name} tmglib lapack ) +endmacro(add_eig_executable) + +add_eig_executable(xeigtsts ${SEIGTST} ${SCIGTST} ${AEIGTST} + ${SECOND_SRC} ) + +add_eig_executable(xeigtstc ${CEIGTST} ${SCIGTST} ${AEIGTST} + ${SECOND_SRC} ) + +add_eig_executable(xeigtstd ${DEIGTST} ${DZIGTST} ${AEIGTST} + ${DSECOND_SRC} ) + +add_eig_executable(xeigtstz ${ZEIGTST} ${DZIGTST} ${AEIGTST} + ${DSECOND_SRC} ) diff --git a/TESTING/LIN/CMakeLists.txt b/TESTING/LIN/CMakeLists.txt new file mode 100644 index 00000000..41f06866 --- /dev/null +++ b/TESTING/LIN/CMakeLists.txt @@ -0,0 +1,223 @@ +set(ALINTST + aladhd.f alaerh.f alaesm.f alahd.f alareq.f + alasum.f alasvm.f chkxer.f icopy.f ilaenv.f xlaenv.f xerbla.f) + +set(SCLNTST slaord.f) + +set(DZLNTST dlaord.f ) + +set(SLINTST schkaa.f + schkeq.f schkgb.f schkge.f schkgt.f + schklq.f schkpb.f schkpo.f schkps.f schkpp.f + schkpt.f schkq3.f schkql.f schkqp.f schkqr.f schkrq.f + schksp.f schksy.f schktb.f schktp.f schktr.f + schktz.f + sdrvgt.f sdrvls.f sdrvpb.f + sdrvpp.f sdrvpt.f sdrvsp.f sdrvsy.f + serrgt.f serrlq.f serrls.f + serrpo.f serrps.f serrql.f serrqp.f serrqr.f + serrrq.f serrsy.f serrtr.f serrtz.f serrvx.f + sgbt01.f sgbt02.f sgbt05.f sgelqs.f sgeqls.f sgeqrs.f + sgerqs.f sget01.f sget02.f + sget03.f sget04.f sget06.f sget07.f sgtt01.f sgtt02.f + sgtt05.f slaptm.f slarhs.f slatb4.f slatb5.f slattb.f slattp.f + slattr.f slavsp.f slavsy.f slqt01.f slqt02.f + slqt03.f spbt01.f spbt02.f spbt05.f spot01.f + spot02.f spot03.f spot05.f spst01.f sppt01.f + sppt02.f sppt03.f sppt05.f sptt01.f sptt02.f + sptt05.f sqlt01.f sqlt02.f sqlt03.f sqpt01.f + sqrt01.f sqrt02.f sqrt03.f sqrt11.f sqrt12.f + sqrt13.f sqrt14.f sqrt15.f sqrt16.f sqrt17.f + srqt01.f srqt02.f srqt03.f srzt01.f srzt02.f + sspt01.f ssyt01.f + stbt02.f stbt03.f stbt05.f stbt06.f stpt01.f + stpt02.f stpt03.f stpt05.f stpt06.f strt01.f + strt02.f strt03.f strt05.f strt06.f + stzt01.f stzt02.f sgennd.f) + +if(USEXBLAS) + list(APPEND SLINTST sdrvgex.f serrgex.f sdrvgbx.f sdrvpox.f sebchvxx.f) +else() + list(APPEND SLINTST sdrvge.f serrge.f sdrvgb.f sdrvpo.f) +endif() + +set(CLINTST cchkaa.f + cchkeq.f cchkgb.f cchkge.f cchkgt.f + cchkhe.f cchkhp.f cchklq.f cchkpb.f + cchkpo.f cchkps.f cchkpp.f cchkpt.f cchkq3.f cchkql.f cchkqp.f + cchkqr.f cchkrq.f cchksp.f cchksy.f cchktb.f + cchktp.f cchktr.f cchktz.f + cdrvgt.f cdrvhe.f cdrvhp.f + cdrvls.f cdrvpb.f cdrvpp.f cdrvpt.f + cdrvsp.f cdrvsy.f + cerrgt.f cerrhe.f cerrlq.f + cerrls.f cerrps.f cerrql.f cerrqp.f + cerrqr.f cerrrq.f cerrsy.f cerrtr.f cerrtz.f + cerrvx.f + cgbt01.f cgbt02.f cgbt05.f cgelqs.f cgeqls.f cgeqrs.f + cgerqs.f cget01.f cget02.f + cget03.f cget04.f cget07.f cgtt01.f cgtt02.f + cgtt05.f chet01.f chpt01.f claipd.f claptm.f clarhs.f clatb4.f clatb5.f + clatsp.f clatsy.f clattb.f clattp.f clattr.f + clavhe.f clavhp.f clavsp.f clavsy.f clqt01.f + clqt02.f clqt03.f cpbt01.f cpbt02.f cpbt05.f + cpot01.f cpot02.f cpot03.f cpot05.f cpst01.f + cppt01.f cppt02.f cppt03.f cppt05.f cptt01.f + cptt02.f cptt05.f cqlt01.f cqlt02.f cqlt03.f + cqpt01.f cqrt01.f cqrt02.f cqrt03.f cqrt11.f + cqrt12.f cqrt13.f cqrt14.f cqrt15.f cqrt16.f + cqrt17.f crqt01.f crqt02.f crqt03.f crzt01.f crzt02.f + csbmv.f cspt01.f + cspt02.f cspt03.f csyt01.f csyt02.f csyt03.f + ctbt02.f ctbt03.f ctbt05.f ctbt06.f ctpt01.f + ctpt02.f ctpt03.f ctpt05.f ctpt06.f ctrt01.f + ctrt02.f ctrt03.f ctrt05.f ctrt06.f + ctzt01.f ctzt02.f sget06.f cgennd.f) + +if(USEXBLAS) + list(APPEND + CLINTST cdrvgex.f cdrvgbx.f cerrgex.f cdrvpox.f cerrpox.f cebchvxx.f) +else() + list(APPEND CLINTST cdrvge.f cdrvgb.f cerrge.f cdrvpo.f cerrpo.f) +endif() + +set(DLINTST dchkaa.f + dchkeq.f dchkgb.f dchkge.f dchkgt.f + dchklq.f dchkpb.f dchkpo.f dchkps.f dchkpp.f + dchkpt.f dchkq3.f dchkql.f dchkqp.f dchkqr.f dchkrq.f + dchksp.f dchksy.f dchktb.f dchktp.f dchktr.f + dchktz.f + ddrvgt.f ddrvls.f ddrvpb.f + ddrvpp.f ddrvpt.f ddrvsp.f ddrvsy.f + derrgt.f derrlq.f derrls.f + derrps.f derrql.f derrqp.f derrqr.f + derrrq.f derrsy.f derrtr.f derrtz.f derrvx.f + dgbt01.f dgbt02.f dgbt05.f dgelqs.f dgeqls.f dgeqrs.f + dgerqs.f dget01.f dget02.f + dget03.f dget04.f dget06.f dget07.f dgtt01.f dgtt02.f + dgtt05.f dlaptm.f dlarhs.f dlatb4.f dlatb5.f dlattb.f dlattp.f + dlattr.f dlavsp.f dlavsy.f dlqt01.f dlqt02.f + dlqt03.f dpbt01.f dpbt02.f dpbt05.f dpot01.f + dpot02.f dpot03.f dpot05.f dpst01.f dppt01.f + dppt02.f dppt03.f dppt05.f dptt01.f dptt02.f + dptt05.f dqlt01.f dqlt02.f dqlt03.f dqpt01.f + dqrt01.f dqrt02.f dqrt03.f dqrt11.f dqrt12.f + dqrt13.f dqrt14.f dqrt15.f dqrt16.f dqrt17.f + drqt01.f drqt02.f drqt03.f drzt01.f drzt02.f + dspt01.f dsyt01.f + dtbt02.f dtbt03.f dtbt05.f dtbt06.f dtpt01.f + dtpt02.f dtpt03.f dtpt05.f dtpt06.f dtrt01.f + dtrt02.f dtrt03.f dtrt05.f dtrt06.f + dtzt01.f dtzt02.f dgennd.f) + +if(USEXBLAS) + list(APPEND + DLINTST ddrvgex.f ddrvgbx.f derrgex.f ddrvpox.f derrpox.f debchvxx.f) +else() + list(APPEND + DLINTST ddrvge.f ddrvgb.f derrge.f ddrvpo.f derrpo.f) +endif() + +set(ZLINTST zchkaa.f + zchkeq.f zchkgb.f zchkge.f zchkgt.f + zchkhe.f zchkhp.f zchklq.f zchkpb.f + zchkpo.f zchkps.f zchkpp.f zchkpt.f zchkq3.f zchkql.f zchkqp.f + zchkqr.f zchkrq.f zchksp.f zchksy.f zchktb.f + zchktp.f zchktr.f zchktz.f + zdrvgt.f zdrvhe.f zdrvhp.f + zdrvls.f zdrvpb.f zdrvpp.f zdrvpt.f + zdrvsp.f zdrvsy.f + zerrgt.f zerrhe.f zerrlq.f + zerrls.f zerrps.f zerrql.f zerrqp.f + zerrqr.f zerrrq.f zerrsy.f zerrtr.f zerrtz.f + zerrvx.f + zgbt01.f zgbt02.f zgbt05.f zgelqs.f zgeqls.f zgeqrs.f + zgerqs.f zget01.f zget02.f + zget03.f zget04.f zget07.f zgtt01.f zgtt02.f + zgtt05.f zhet01.f zhpt01.f zlaipd.f zlaptm.f zlarhs.f zlatb4.f zlatb5.f + zlatsp.f zlatsy.f zlattb.f zlattp.f zlattr.f + zlavhe.f zlavhp.f zlavsp.f zlavsy.f zlqt01.f + zlqt02.f zlqt03.f zpbt01.f zpbt02.f zpbt05.f + zpot01.f zpot02.f zpot03.f zpot05.f zpst01.f + zppt01.f zppt02.f zppt03.f zppt05.f zptt01.f + zptt02.f zptt05.f zqlt01.f zqlt02.f zqlt03.f + zqpt01.f zqrt01.f zqrt02.f zqrt03.f zqrt11.f + zqrt12.f zqrt13.f zqrt14.f zqrt15.f zqrt16.f + zqrt17.f zrqt01.f zrqt02.f zrqt03.f zrzt01.f zrzt02.f + zsbmv.f zspt01.f + zspt02.f zspt03.f zsyt01.f zsyt02.f zsyt03.f + ztbt02.f ztbt03.f ztbt05.f ztbt06.f ztpt01.f + ztpt02.f ztpt03.f ztpt05.f ztpt06.f ztrt01.f + ztrt02.f ztrt03.f ztrt05.f ztrt06.f + ztzt01.f ztzt02.f dget06.f zgennd.f) + +if(USEXBLAS) + list(APPEND + ZLINTST zdrvgex.f zdrvgbx.f zerrgex.f zdrvpox.f zerrpox.f zebchvxx.f) +else() + list(APPEND + ZLINTST zdrvge.f zdrvgb.f zerrge.f zdrvpo.f zerrpo.f) +endif() + +set(DSLINTST dchkab.f + ddrvab.f ddrvac.f derrab.f derrac.f dget08.f + alaerh.f alahd.f aladhd.f alareq.f + chkxer.f dlarhs.f dlatb4.f xerbla.f + dget02.f dpot06.f) + +set(ZCLINTST zchkab.f + zdrvab.f zdrvac.f zerrab.f zerrac.f zget08.f + alaerh.f alahd.f aladhd.f alareq.f + chkxer.f zget02.f zlarhs.f zlatb4.f + zsbmv.f xerbla.f zpot06.f zlaipd.f) + +set(SLINTSTRFP schkrfp.f sdrvrfp.f sdrvrf1.f sdrvrf2.f sdrvrf3.f sdrvrf4.f serrrfp.f + slatb4.f slarhs.f sget04.f spot01.f spot03.f spot02.f + chkxer.f xerbla.f alaerh.f aladhd.f alahd.f alasvm.f ) + +set(DLINTSTRFP dchkrfp.f ddrvrfp.f ddrvrf1.f ddrvrf2.f ddrvrf3.f ddrvrf4.f derrrfp.f + dlatb4.f dlarhs.f dget04.f dpot01.f dpot03.f dpot02.f + chkxer.f xerbla.f alaerh.f aladhd.f alahd.f alasvm.f ) + +set(CLINTSTRFP cchkrfp.f cdrvrfp.f cdrvrf1.f cdrvrf2.f cdrvrf3.f cdrvrf4.f cerrrfp.f + claipd.f clatb4.f clarhs.f csbmv.f cget04.f cpot01.f cpot03.f cpot02.f + chkxer.f xerbla.f alaerh.f aladhd.f alahd.f alasvm.f ) + +set(ZLINTSTRFP zchkrfp.f zdrvrfp.f zdrvrf1.f zdrvrf2.f zdrvrf3.f zdrvrf4.f zerrrfp.f + zlatb4.f zlaipd.f zlarhs.f zsbmv.f zget04.f zpot01.f zpot03.f zpot02.f + chkxer.f xerbla.f alaerh.f aladhd.f alahd.f alasvm.f ) + +macro(add_lin_executable name ) + add_executable(${name} ${ARGN}) + target_link_libraries(${name} tmglib lapack) +endmacro(add_lin_executable) + +add_lin_executable(xlintsts ${ALINTST} ${SCLNTST} ${SLINTST} + ${SECOND_SRC} ) + +add_lin_executable(xlintstc ${ALINTST} ${CLINTST} ${SCLNTST} + ${SECOND_SRC} ) + +add_lin_executable(xlintstd ${ALINTST} ${DLINTST} ${DZLNTST} + ${DSECOND_SRC}) +add_lin_executable(xlintstz ${ALINTST} ${ZLINTST} ${DZLNTST} + ${DSECOND_SRC}) + +add_lin_executable(xlintstds ${DSLINTST} + ${SECOND_SRC} + ${DSECOND_SRC} ) +add_lin_executable(xlintstzc ${ZCLINTST} + ${SECOND_SRC} + ${DSECOND_SRC} ) + +add_lin_executable(xlintstrfs ${SLINTSTRFP} + ${SECOND_SRC}) + +add_lin_executable(xlintstrfd ${DLINTSTRFP} + ${DSECOND_SRC}) + +add_lin_executable(xlintstrfc ${CLINTSTRFP} + ${SECOND_SRC}) +add_lin_executable(xlintstrfz ${ZLINTSTRFP} + ${DSECOND_SRC}) + diff --git a/TESTING/MATGEN/CMakeLists.txt b/TESTING/MATGEN/CMakeLists.txt new file mode 100644 index 00000000..884019b6 --- /dev/null +++ b/TESTING/MATGEN/CMakeLists.txt @@ -0,0 +1,69 @@ +####################################################################### +# This is the makefile to create a library of the test matrix +# generators used in LAPACK. The files are organized as follows: +# +# SCATGEN -- Auxiliary routines called from both REAL and COMPLEX +# DZATGEN -- Auxiliary routines called from both DOUBLE PRECISION +# and COMPLEX*16 +# SMATGEN -- Single precision real matrix generation routines +# CMATGEN -- Single precision complex matrix generation routines +# DMATGEN -- Double precision real matrix generation routines +# ZMATGEN -- Double precision complex matrix generation routines +# +# The library can be set up to include routines for any combination +# of the four precisions. To create or add to the library, enter make +# followed by one or more of the precisions desired. Some examples: +# make single +# make single complex +# make single double complex complex16 +# Alternatively, the command +# make +# without any arguments creates a library of all four precisions. +# The library is called +# tmglib.a +# and is created at the LAPACK directory level. +# +# To remove the object files after the library is created, enter +# make clean +# On some systems, you can force the source files to be recompiled by +# entering (for example) +# make single FRC=FRC +# +####################################################################### + +set(SCATGEN slatm1.f slaran.f slarnd.f) + +set(SMATGEN slatms.f slatme.f slatmr.f slatmt.f + slagge.f slagsy.f slakf2.f slarge.f slaror.f slarot.f slatm2.f + slatm3.f slatm5.f slatm6.f slatm7.f slahilb.f) + +set(CMATGEN clatms.f clatme.f clatmr.f clatmt.f + clagge.f claghe.f clagsy.f clakf2.f clarge.f claror.f clarot.f + clatm1.f clarnd.f clatm2.f clatm3.f clatm5.f clatm6.f clahilb.f) + +set(DZATGEN dlatm1.f dlaran.f dlarnd.f) + +set(DMATGEN dlatms.f dlatme.f dlatmr.f dlatmt.f + dlagge.f dlagsy.f dlakf2.f dlarge.f dlaror.f dlarot.f dlatm2.f + dlatm3.f dlatm5.f dlatm6.f dlatm7.f dlahilb.f) + +set(ZMATGEN zlatms.f zlatme.f zlatmr.f zlatmt.f + zlagge.f zlaghe.f zlagsy.f zlakf2.f zlarge.f zlaror.f zlarot.f + zlatm1.f zlarnd.f zlatm2.f zlatm3.f zlatm5.f zlatm6.f zlahilb.f) + +set(ALLOBJ ${SMATGEN} ${CMATGEN} ${SCATGEN} ${DMATGEN} ${ZMATGEN} + ${DZATGEN}) +if(BUILD_SINGLE) + set(ALLOBJ $(SMATGEN) $(SCATGEN)) +endif() +if(BUILD_DOUBLE) + set(ALLOBJ $(DMATGEN) $(DZATGEN)) +endif() +if(BUILD_COMPLEX) + set(ALLOBJ $(CMATGEN) $(SCATGEN)) +endif() +if(BUILD_COMPLEX16) + set(ALLOBJ $(ZMATGEN) $(DZATGEN)) +endif() +add_library(tmglib ${ALLOBJ} ) + diff --git a/TESTING/runtest.cmake b/TESTING/runtest.cmake new file mode 100644 index 00000000..49fd9ade --- /dev/null +++ b/TESTING/runtest.cmake @@ -0,0 +1,31 @@ +# Replace INTDIR with the value of $ENV{CMAKE_CONFIG_TYPE} that is set +# by ctest when -C Debug|Releaes|etc is given, and INDIR is passed +# in from the main cmake run and is the variable that is used +# by the build system to specify the build directory +if(NOT "${INTDIR}" STREQUAL ".") + set(TEST_ORIG "${TEST}") + string(REPLACE "${INTDIR}" "$ENV{CMAKE_CONFIG_TYPE}" TEST "${TEST}") + if("$ENV{CMAKE_CONFIG_TYPE}" STREQUAL "") + if(NOT EXISTS "${TEST}") + message("Warning: CMAKE_CONFIG_TYPE not defined did you forget the -C option for ctest?") + message(FATAL_ERROR "Could not find test executable: ${TEST_ORIG}") + endif() + endif() +endif() +set(ARGS ) +if(DEFINED OUTPUT) + set(ARGS OUTPUT_FILE "${OUTPUT}" ERROR_FILE "${OUTPUT}.err") +endif() +if(DEFINED INPUT) + list(APPEND ARGS INPUT_FILE "${INPUT}") +endif() +message("Running: ${TEST}") +message("ARGS= ${ARGS}") +execute_process(COMMAND "${TEST}" + ${ARGS} + RESULT_VARIABLE RET) +# if the test does not return 0, then fail it +if(NOT ${RET} EQUAL 0) + message(FATAL_ERROR "Test ${TEST} returned ${RET}") +endif() +message( "Test ${TEST} returned ${RET}") \ No newline at end of file diff --git a/cmake_install.cmake b/cmake_install.cmake new file mode 100644 index 00000000..0317b845 --- /dev/null +++ b/cmake_install.cmake @@ -0,0 +1,39 @@ +# Install script for directory: /Users/julie/Documents/Boulot/lapack-dev/lapack/trunk + +# Set the install prefix +IF(NOT DEFINED CMAKE_INSTALL_PREFIX) + SET(CMAKE_INSTALL_PREFIX "/usr/local") +ENDIF(NOT DEFINED CMAKE_INSTALL_PREFIX) +STRING(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +IF(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + IF(BUILD_TYPE) + STRING(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + ELSE(BUILD_TYPE) + SET(CMAKE_INSTALL_CONFIG_NAME "") + ENDIF(BUILD_TYPE) + MESSAGE(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +ENDIF(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + +# Set the component getting installed. +IF(NOT CMAKE_INSTALL_COMPONENT) + IF(COMPONENT) + MESSAGE(STATUS "Install component: \"${COMPONENT}\"") + SET(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + ELSE(COMPONENT) + SET(CMAKE_INSTALL_COMPONENT) + ENDIF(COMPONENT) +ENDIF(NOT CMAKE_INSTALL_COMPONENT) + +IF(CMAKE_INSTALL_COMPONENT) + SET(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") +ELSE(CMAKE_INSTALL_COMPONENT) + SET(CMAKE_INSTALL_MANIFEST "install_manifest.txt") +ENDIF(CMAKE_INSTALL_COMPONENT) + +FILE(WRITE "/Users/julie/Documents/Boulot/lapack-dev/lapack/trunk/${CMAKE_INSTALL_MANIFEST}" "") +FOREACH(file ${CMAKE_INSTALL_MANIFEST_FILES}) + FILE(APPEND "/Users/julie/Documents/Boulot/lapack-dev/lapack/trunk/${CMAKE_INSTALL_MANIFEST}" "${file}\n") +ENDFOREACH(file) diff --git a/lapack-config-version.cmake.in b/lapack-config-version.cmake.in new file mode 100644 index 00000000..2caeb4ab --- /dev/null +++ b/lapack-config-version.cmake.in @@ -0,0 +1,8 @@ +set(PACKAGE_VERSION "@LAPACK_VERSION@") +if(NOT ${PACKAGE_FIND_VERSION} VERSION_GREATER ${PACKAGE_VERSION}) + set(PACKAGE_VERSION_COMPATIBLE 1) + if(${PACKAGE_FIND_VERSION} VERSION_EQUAL ${PACKAGE_VERSION}) + set(PACKAGE_VERSION_EXACT 1) + endif() +endif() + diff --git a/lapack-config.cmake.in b/lapack-config.cmake.in new file mode 100644 index 00000000..8d60cc88 --- /dev/null +++ b/lapack-config.cmake.in @@ -0,0 +1 @@ +include("@LAPACK_BINARY_DIR@/lapack-targets.cmake") -- cgit v1.2.3