Import LAPACK: top directory
This commit is contained in:
parent
57eee3fa43
commit
77006cc2a3
|
@ -3,7 +3,7 @@ project(LAPACK Fortran)
|
|||
|
||||
set(LAPACK_MAJOR_VERSION 3)
|
||||
set(LAPACK_MINOR_VERSION 6)
|
||||
set(LAPACK_PATCH_VERSION 0)
|
||||
set(LAPACK_PATCH_VERSION 1)
|
||||
set(
|
||||
LAPACK_VERSION
|
||||
${LAPACK_MAJOR_VERSION}.${LAPACK_MINOR_VERSION}.${LAPACK_PATCH_VERSION}
|
||||
|
@ -17,11 +17,10 @@ set(
|
|||
set(CMAKE_MACOSX_RPATH ON)
|
||||
set(CMAKE_SKIP_BUILD_RPATH FALSE)
|
||||
set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
|
||||
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
|
||||
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
|
||||
list(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_PREFIX}/lib" isSystemDir)
|
||||
list(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}" isSystemDir)
|
||||
if("${isSystemDir}" STREQUAL "-1")
|
||||
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
|
||||
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}")
|
||||
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
|
||||
endif()
|
||||
|
||||
|
||||
|
@ -37,7 +36,7 @@ set(CMAKE_MODULE_PATH "${LAPACK_SOURCE_DIR}/CMAKE" ${CMAKE_MODULE_PATH})
|
|||
|
||||
if (UNIX)
|
||||
if ( "${CMAKE_Fortran_COMPILER}" MATCHES "ifort" )
|
||||
set( CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fltconsistency -fp_port" )
|
||||
set( CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fp-model strict" )
|
||||
endif ()
|
||||
if ( "${CMAKE_Fortran_COMPILER}" MATCHES "xlf" )
|
||||
set( CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -qnosave -qstrict=none" )
|
||||
|
@ -47,6 +46,33 @@ if (UNIX)
|
|||
STRING(REPLACE \;mtsk\; \; CMAKE_Fortran_IMPLICIT_LINK_LIBRARIES "${CMAKE_Fortran_IMPLICIT_LINK_LIBRARIES}")
|
||||
endif ()
|
||||
|
||||
if ( CMAKE_Fortran_COMPILER_ID STREQUAL "Compaq" )
|
||||
if ( WIN32 )
|
||||
if (CMAKE_GENERATOR STREQUAL "NMake Makefiles")
|
||||
get_filename_component(CMAKE_Fortran_COMPILER_CMDNAM ${CMAKE_Fortran_COMPILER} NAME_WE)
|
||||
message(STATUS "Using Compaq Fortran compiler with command name ${CMAKE_Fortran_COMPILER_CMDNAM}")
|
||||
set( cmd ${CMAKE_Fortran_COMPILER_CMDNAM} )
|
||||
string( TOLOWER "${cmd}" cmdlc )
|
||||
if ( cmdlc STREQUAL "df" )
|
||||
message(STATUS "Assume the Compaq Visual Fortran Compiler is being used")
|
||||
set(CMAKE_Fortran_USE_RESPONSE_FILE_FOR_OBJECTS 1)
|
||||
set(CMAKE_Fortran_USE_RESPONSE_FILE_FOR_INCLUDES 1)
|
||||
#This is a workaround that is needed to avoid forward-slashes in the
|
||||
#filenames listed in response files from incorrectly being interpreted as
|
||||
#introducing compiler command options
|
||||
if (${BUILD_SHARED_LIBS})
|
||||
message(FATAL_ERROR "Making of shared libraries with CVF has not been tested.")
|
||||
endif()
|
||||
set(str "NMake version 9 or later should be used. NMake version 6.0 which is\n")
|
||||
set(str "${str} included with the CVF distribution fails to build Lapack because\n")
|
||||
set(str "${str} the number of source files exceeds the limit for NMake v6.0\n")
|
||||
message(STATUS ${str})
|
||||
set(CMAKE_Fortran_LINK_EXECUTABLE "LINK /out:<TARGET> <LINK_FLAGS> <LINK_LIBRARIES> <OBJECTS>")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Get Python
|
||||
find_package(PythonInterp)
|
||||
message(STATUS "Looking for Python found - ${PYTHONINTERP_FOUND}")
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
Copyright (c) 1992-2015 The University of Tennessee and The University
|
||||
Copyright (c) 1992-2016 The University of Tennessee and The University
|
||||
of Tennessee Research Foundation. All rights
|
||||
reserved.
|
||||
Copyright (c) 2000-2015 The University of California Berkeley. All
|
||||
Copyright (c) 2000-2016 The University of California Berkeley. All
|
||||
rights reserved.
|
||||
Copyright (c) 2006-2015 The University of Colorado Denver. All rights
|
||||
Copyright (c) 2006-2016 The University of Colorado Denver. All rights
|
||||
reserved.
|
||||
|
||||
$COPYRIGHT$
|
||||
|
|
|
@ -14,13 +14,14 @@ lib: lapacklib tmglib
|
|||
clean: cleanlib cleantesting cleanblas_testing cleancblas_testing
|
||||
|
||||
lapack_install:
|
||||
( cd INSTALL; $(MAKE); )
|
||||
( cd INSTALL; $(MAKE); ./testlsame; ./testslamch; ./testdlamch; \
|
||||
./testsecond; ./testdsecnd; ./testieee; ./testversion )
|
||||
|
||||
blaslib:
|
||||
( cd BLAS/SRC; $(MAKE) )
|
||||
|
||||
cblaslib:
|
||||
( cd CBLAS/src; $(MAKE) )
|
||||
( cd CBLAS; $(MAKE) )
|
||||
|
||||
lapacklib: lapack_install
|
||||
( cd SRC; $(MAKE) )
|
||||
|
@ -116,7 +117,7 @@ cleanblas_testing:
|
|||
( cd BLAS; rm -f xblat* )
|
||||
|
||||
cleancblas_testing:
|
||||
( cd CBLAS; $(MAKE) cleanexe )
|
||||
( cd CBLAS/testing; $(MAKE) clean )
|
||||
|
||||
cleantesting:
|
||||
( cd TESTING/LIN; $(MAKE) clean )
|
||||
|
|
|
@ -22,6 +22,8 @@ VERSION 3.4.1 : April 2012
|
|||
VERSION 3.4.2 : September 2012
|
||||
VERSION 3.5.0 : November 2013
|
||||
VERSION 3.6.0 : November 2015
|
||||
VERSION 3.6.1 : June 2016
|
||||
|
||||
|
||||
LAPACK is a library of Fortran 90 with subroutines for solving
|
||||
the most commonly occurring problems in numerical linear algebra.
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
prefix=@prefix@
|
||||
libdir=@libdir@
|
||||
prefix=@CMAKE_INSTALL_PREFIX@
|
||||
libdir=@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@
|
||||
|
||||
Name: lapack
|
||||
Description: FORTRAN reference implementation of LAPACK Linear Algebra PACKage
|
||||
Version: @LAPACK_VERSION@
|
||||
URL: http://www.netlib.org/lapack/
|
||||
Libs: -L${libdir} -llapack
|
||||
Libs: -L@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@ -llapack
|
||||
Requires: blas
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
# lapack_testing.py
|
||||
###############################################################################
|
||||
|
||||
|
||||
from __future__ import print_function
|
||||
from subprocess import Popen, STDOUT, PIPE
|
||||
import os, sys, math
|
||||
import getopt
|
||||
|
@ -15,9 +15,9 @@ try:
|
|||
opts, args = getopt.getopt(sys.argv[1:], "hd:srep:t:n",
|
||||
["help", "dir", "short", "run", "error","prec=","test=","number"])
|
||||
|
||||
except getopt.error, msg:
|
||||
print msg
|
||||
print "for help use --help"
|
||||
except getopt.error as msg:
|
||||
print(msg)
|
||||
print("for help use --help")
|
||||
sys.exit(2)
|
||||
|
||||
short_summary=0
|
||||
|
@ -33,38 +33,38 @@ abs_bin_dir=os.path.normpath(os.path.join(os.getcwd(),bin_dir))
|
|||
|
||||
for o, a in opts:
|
||||
if o in ("-h", "--help"):
|
||||
print sys.argv[0]+" [-h|--help] [-d dir |--dir dir] [-s |--short] [-r |--run] [-e |--error] [-p p |--prec p] [-t test |--test test] [-n | --number]"
|
||||
print " - h is to print this message"
|
||||
print " - r is to use to run the LAPACK tests then analyse the output (.out files). By default, the script will not run all the LAPACK tests"
|
||||
print " - d [dir] is to indicate where is the LAPACK testing directory (.out files). By default, the script will use ."
|
||||
print " LEVEL OF OUTPUT"
|
||||
print " - x is to print a detailed summary"
|
||||
print " - e is to print only the error summary"
|
||||
print " - s is to print a short summary"
|
||||
print " - n is to print the numbers of failing tests (turn on summary mode)"
|
||||
print " SECLECTION OF TESTS:"
|
||||
print " - p [s/c/d/z/x] is to indicate the PRECISION to run:"
|
||||
print " s=single"
|
||||
print " d=double"
|
||||
print " sd=single/double"
|
||||
print " c=complex"
|
||||
print " z=double complex"
|
||||
print " cz=complex/double complex"
|
||||
print " x=all [DEFAULT]"
|
||||
print " - t [lin/eig/mixed/rfp/all] is to indicate which TEST FAMILY to run:"
|
||||
print " lin=Linear Equation"
|
||||
print " eig=Eigen Problems"
|
||||
print " mixed=mixed-precision"
|
||||
print " rfp=rfp format"
|
||||
print " all=all tests [DEFAULT]"
|
||||
print " EXAMPLES:"
|
||||
print " ./lapack_testing.py -n"
|
||||
print " Will return the numbers of failed tests by analyzing the LAPACK output"
|
||||
print " ./lapack_testing.py -n -r -p s"
|
||||
print " Will return the numbers of failed tests in REAL precision by running the LAPACK Tests then analyzing the output"
|
||||
print " ./lapack_testing.py -n -p s -t eig "
|
||||
print " Will return the numbers of failed tests in REAL precision by analyzing only the LAPACK output of EIGEN testings"
|
||||
print "Written by Julie Langou (June 2011) "
|
||||
print(sys.argv[0]+" [-h|--help] [-d dir |--dir dir] [-s |--short] [-r |--run] [-e |--error] [-p p |--prec p] [-t test |--test test] [-n | --number]")
|
||||
print(" - h is to print this message")
|
||||
print(" - r is to use to run the LAPACK tests then analyse the output (.out files). By default, the script will not run all the LAPACK tests")
|
||||
print(" - d [dir] is to indicate where is the LAPACK testing directory (.out files). By default, the script will use .")
|
||||
print(" LEVEL OF OUTPUT")
|
||||
print(" - x is to print a detailed summary")
|
||||
print(" - e is to print only the error summary")
|
||||
print(" - s is to print a short summary")
|
||||
print(" - n is to print the numbers of failing tests (turn on summary mode)")
|
||||
print(" SECLECTION OF TESTS:")
|
||||
print(" - p [s/c/d/z/x] is to indicate the PRECISION to run:")
|
||||
print(" s=single")
|
||||
print(" d=double")
|
||||
print(" sd=single/double")
|
||||
print(" c=complex")
|
||||
print(" z=double complex")
|
||||
print(" cz=complex/double complex")
|
||||
print(" x=all [DEFAULT]")
|
||||
print(" - t [lin/eig/mixed/rfp/all] is to indicate which TEST FAMILY to run:")
|
||||
print(" lin=Linear Equation")
|
||||
print(" eig=Eigen Problems")
|
||||
print(" mixed=mixed-precision")
|
||||
print(" rfp=rfp format")
|
||||
print(" all=all tests [DEFAULT]")
|
||||
print(" EXAMPLES:")
|
||||
print(" ./lapack_testing.py -n")
|
||||
print(" Will return the numbers of failed tests by analyzing the LAPACK output")
|
||||
print(" ./lapack_testing.py -n -r -p s")
|
||||
print(" Will return the numbers of failed tests in REAL precision by running the LAPACK Tests then analyzing the output")
|
||||
print(" ./lapack_testing.py -n -p s -t eig ")
|
||||
print(" Will return the numbers of failed tests in REAL precision by analyzing only the LAPACK output of EIGEN testings")
|
||||
print("Written by Julie Langou (June 2011) ")
|
||||
sys.exit(0)
|
||||
else:
|
||||
if o in ("-s", "--short"):
|
||||
|
@ -89,7 +89,7 @@ os.chdir(test_dir)
|
|||
|
||||
execution=1
|
||||
summary="\n\t\t\t--> LAPACK TESTING SUMMARY <--\n";
|
||||
if with_file: summary+= "\t\tProcessing LAPACK Testing output found in the "+test_dir+" direcory\n";
|
||||
if with_file: summary+= "\t\tProcessing LAPACK Testing output found in the "+test_dir+" directory\n";
|
||||
summary+="SUMMARY \tnb test run \tnumerical error \tother error \n";
|
||||
summary+="================ \t===========\t=================\t================ \n";
|
||||
nb_of_test=0
|
||||
|
@ -129,12 +129,12 @@ def run_summary_test( f, cmdline, short_summary):
|
|||
error_message=cmdline+" did not work"
|
||||
|
||||
if r != 0 and not with_file:
|
||||
print "---- TESTING " + cmdline.split()[0] + "... FAILED(" + error_message +") !"
|
||||
print("---- TESTING " + cmdline.split()[0] + "... FAILED(" + error_message +") !")
|
||||
for line in pipe.readlines():
|
||||
f.write(str(line))
|
||||
elif r != 0 and with_file and not short_summary:
|
||||
print "---- WARNING: please check that you have the LAPACK output : "+cmdline+"!"
|
||||
print "---- WARNING: with the option -r, we can run the LAPACK testing for you"
|
||||
print("---- WARNING: please check that you have the LAPACK output : "+cmdline+"!")
|
||||
print("---- WARNING: with the option -r, we can run the LAPACK testing for you")
|
||||
# print "---- "+error_message
|
||||
else:
|
||||
for line in pipe.readlines():
|
||||
|
@ -145,14 +145,14 @@ def run_summary_test( f, cmdline, short_summary):
|
|||
whereisrun=words_in_line.index("run)")
|
||||
nb_test_run+=int(words_in_line[whereisrun-2])
|
||||
if (line.find("out of")!=-1):
|
||||
if (short_summary==0): print line,
|
||||
if (short_summary==0): print(line, end=' ')
|
||||
whereisout= words_in_line.index("out")
|
||||
nb_test_fail+=int(words_in_line[whereisout-1])
|
||||
if ((line.find("illegal")!=-1) or (line.find("Illegal")!=-1)):
|
||||
if (short_summary==0):print line,
|
||||
if (short_summary==0):print(line, end=' ')
|
||||
nb_test_illegal+=1
|
||||
if (line.find(" INFO")!=-1):
|
||||
if (short_summary==0):print line,
|
||||
if (short_summary==0):print(line, end=' ')
|
||||
nb_test_info+=1
|
||||
if (with_file==1):
|
||||
pipe.close()
|
||||
|
@ -170,10 +170,10 @@ except IOError:
|
|||
f = sys.stdout
|
||||
|
||||
if (short_summary==0):
|
||||
print " "
|
||||
print "---------------- Testing LAPACK Routines ----------------"
|
||||
print " "
|
||||
print "-- Detailed results are stored in", filename
|
||||
print(" ")
|
||||
print("---------------- Testing LAPACK Routines ----------------")
|
||||
print(" ")
|
||||
print("-- Detailed results are stored in", filename)
|
||||
|
||||
dtypes = (
|
||||
("s", "d", "c", "z"),
|
||||
|
@ -194,7 +194,7 @@ elif prec=='cz':
|
|||
range_prec=[2,3]
|
||||
else:
|
||||
prec='x';
|
||||
range_prec=range(4)
|
||||
range_prec=list(range(4))
|
||||
|
||||
if test=='lin':
|
||||
range_test=[15]
|
||||
|
@ -204,9 +204,9 @@ elif test=='mixed':
|
|||
elif test=='rfp':
|
||||
range_test=[17]
|
||||
elif test=='eig':
|
||||
range_test=range(15)
|
||||
range_test=list(range(15))
|
||||
else:
|
||||
range_test=range(18)
|
||||
range_test=list(range(18))
|
||||
|
||||
list_results = [
|
||||
[0, 0, 0, 0, 0],
|
||||
|
@ -220,9 +220,9 @@ for dtype in range_prec:
|
|||
name = dtypes[1][dtype]
|
||||
|
||||
if (short_summary==0):
|
||||
print " "
|
||||
print "------------------------- %s ------------------------" % name
|
||||
print " "
|
||||
print(" ")
|
||||
print("------------------------- %s ------------------------" % name)
|
||||
print(" ")
|
||||
sys.stdout.flush()
|
||||
|
||||
dtests = (
|
||||
|
@ -268,7 +268,7 @@ for dtype in range_prec:
|
|||
# EIG TESTS
|
||||
cmdbase="xeigtst"+letter+" < "+dtests[0][dtest]+".in > "+dtests[2][dtest]+".out"
|
||||
if (not just_errors and not short_summary):
|
||||
print "--> Testing "+name+" "+dtests[1][dtest]+" [ "+cmdbase+" ]"
|
||||
print("--> Testing "+name+" "+dtests[1][dtest]+" [ "+cmdbase+" ]")
|
||||
# Run the process: either to read the file or run the LAPACK testing
|
||||
nb_test = run_summary_test(f, cmdbase, short_summary)
|
||||
list_results[0][dtype]+=nb_test[0]
|
||||
|
@ -279,18 +279,18 @@ for dtype in range_prec:
|
|||
|
||||
if (not short_summary):
|
||||
if (nb_test[0]>0 and just_errors==0):
|
||||
print "--> Tests passed: "+str(nb_test[0])
|
||||
print("--> Tests passed: "+str(nb_test[0]))
|
||||
if (nb_test[1]>0):
|
||||
print "--> Tests failing to pass the threshold: "+str(nb_test[1])
|
||||
print("--> Tests failing to pass the threshold: "+str(nb_test[1]))
|
||||
if (nb_test[2]>0):
|
||||
print "--> Illegal Error: "+str(nb_test[2])
|
||||
print("--> Illegal Error: "+str(nb_test[2]))
|
||||
if (nb_test[3]>0):
|
||||
print "--> Info Error: "+str(nb_test[3])
|
||||
print("--> Info Error: "+str(nb_test[3]))
|
||||
if (got_error>0 and just_errors==1):
|
||||
print "ERROR IS LOCATED IN "+name+" "+dtests[1][dtest]+" [ "+cmdbase+" ]"
|
||||
print ""
|
||||
print("ERROR IS LOCATED IN "+name+" "+dtests[1][dtest]+" [ "+cmdbase+" ]")
|
||||
print("")
|
||||
if (just_errors==0):
|
||||
print ""
|
||||
print("")
|
||||
# elif (got_error>0):
|
||||
# print dtests[2][dtest]+".out \t"+str(nb_test[1])+"\t"+str(nb_test[2])+"\t"+str(nb_test[3])
|
||||
|
||||
|
@ -308,9 +308,9 @@ for dtype in range_prec:
|
|||
list_results[3][4]+=list_results[3][dtype]
|
||||
|
||||
if only_numbers==1:
|
||||
print str(list_results[1][4])+"\n"+str(list_results[2][4]+list_results[3][4])
|
||||
print(str(list_results[1][4])+"\n"+str(list_results[2][4]+list_results[3][4]))
|
||||
else:
|
||||
print summary
|
||||
print(summary)
|
||||
if (list_results[0][4] > 0 ):
|
||||
percent_num_error=float(list_results[1][4])/float(list_results[0][4])*100
|
||||
percent_error=float(list_results[2][4]+list_results[3][4])/float(list_results[0][4])*100
|
||||
|
@ -318,9 +318,9 @@ else:
|
|||
percent_num_error=0
|
||||
percent_error=0
|
||||
if (prec=='x'):
|
||||
print "--> ALL PRECISIONS\t"+str(list_results[0][4])+"\t\t"+str(list_results[1][4])+"\t("+"%.3f" % percent_num_error+"%)\t"+str(list_results[2][4]+list_results[3][4])+"\t("+"%.3f" % percent_error+"%)\t""\n"
|
||||
print("--> ALL PRECISIONS\t"+str(list_results[0][4])+"\t\t"+str(list_results[1][4])+"\t("+"%.3f" % percent_num_error+"%)\t"+str(list_results[2][4]+list_results[3][4])+"\t("+"%.3f" % percent_error+"%)\t""\n")
|
||||
if list_results[0][4] == 0:
|
||||
print "NO TESTS WERE ANALYZED, please use the -r option to run the LAPACK TESTING"
|
||||
print("NO TESTS WERE ANALYZED, please use the -r option to run the LAPACK TESTING")
|
||||
|
||||
# This may close the sys.stdout stream, so make it the last statement
|
||||
f.close()
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
####################################################################
|
||||
# LAPACK make include file. #
|
||||
# LAPACK, Version 3.6.0 #
|
||||
# November 2015 #
|
||||
# LAPACK, Version 3.6.1 #
|
||||
# June 2016 #
|
||||
####################################################################
|
||||
#
|
||||
SHELL = /bin/sh
|
||||
|
|
Loading…
Reference in New Issue