diff --git a/CMakeLists.txt b/CMakeLists.txt index 5558500d8..b40fd7c55 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -245,7 +245,7 @@ endif() if (APPLE AND DYNAMIC_ARCH AND BUILD_SHARED_LIBS) set (CMAKE_C_USE_RESPONSE_FILE_FOR_OBJECTS 1) - if (NOT NOFORTRAN) + if (NOT NOFORTRAN) set (CMAKE_Fortran_USE_RESPONSE_FILE_FOR_OBJECTS 1) set (CMAKE_Fortran_CREATE_SHARED_LIBRARY "sh -c 'cat ${CMAKE_BINARY_DIR}/CMakeFiles/openblas_shared.dir/objects*.rsp | xargs -n 1024 ar -ru libopenblas.a && exit 0' " @@ -395,7 +395,7 @@ if (BUILD_SHARED_LIBS AND NOT ${SYMBOLPREFIX}${SYMBOLSUFFIX} STREQUAL "") endif() add_custom_command(TARGET ${OpenBLAS_LIBNAME}_shared POST_BUILD - COMMAND perl ${PROJECT_SOURCE_DIR}/exports/gensymbol "objcopy" "${ARCH}" "${BU}" "${EXPRECISION_IN}" "${NO_CBLAS_IN}" "${NO_LAPACK_IN}" "${NO_LAPACKE_IN}" "${NEED2UNDERSCORES_IN}" "${ONLY_CBLAS_IN}" \"${SYMBOLPREFIX}\" \"${SYMBOLSUFFIX}\" "${BUILD_LAPACK_DEPRECATED}" > ${PROJECT_BINARY_DIR}/objcopy.def + COMMAND ${PROJECT_SOURCE_DIR}/exports/gensymbol "objcopy" "${ARCH}" "${BU}" "${EXPRECISION_IN}" "${NO_CBLAS_IN}" "${NO_LAPACK_IN}" "${NO_LAPACKE_IN}" "${NEED2UNDERSCORES_IN}" "${ONLY_CBLAS_IN}" \"${SYMBOLPREFIX}\" \"${SYMBOLSUFFIX}\" "${BUILD_LAPACK_DEPRECATED}" > ${PROJECT_BINARY_DIR}/objcopy.def COMMAND objcopy -v --redefine-syms ${PROJECT_BINARY_DIR}/objcopy.def ${PROJECT_BINARY_DIR}/lib/lib${OpenBLAS_LIBNAME}.so COMMENT "renaming symbols" ) diff --git a/Makefile.prebuild b/Makefile.prebuild index e6d07c013..751ca0c84 100644 --- a/Makefile.prebuild +++ b/Makefile.prebuild @@ -54,9 +54,9 @@ all: getarch_2nd ./getarch_2nd 1 >> $(TARGET_CONF) $(TARGET_CONF): c_check f_check getarch - perl ./c_check $(TARGET_MAKE) $(TARGET_CONF) $(CC) $(TARGET_FLAGS) $(CFLAGS) + ./c_check $(TARGET_MAKE) $(TARGET_CONF) $(CC) $(TARGET_FLAGS) $(CFLAGS) ifneq ($(ONLY_CBLAS), 1) - perl ./f_check $(TARGET_MAKE) $(TARGET_CONF) $(FC) $(TARGET_FLAGS) + ./f_check $(TARGET_MAKE) $(TARGET_CONF) $(FC) $(TARGET_FLAGS) else #When we only build CBLAS, we set NOFORTRAN=2 echo "NOFORTRAN=2" >> $(TARGET_MAKE) @@ -71,8 +71,8 @@ endif getarch : getarch.c cpuid.S dummy $(CPUIDEMU) - avx512=$$(perl c_check - - $(CC) $(TARGET_FLAGS) $(CFLAGS) | grep NO_AVX512); \ - rv64gv=$$(perl c_check - - $(CC) $(TARGET_FLAGS) $(CFLAGS) | grep NO_RV64GV); \ + avx512=$$(./c_check - - $(CC) $(TARGET_FLAGS) $(CFLAGS) | grep NO_AVX512); \ + rv64gv=$$(./c_check - - $(CC) $(TARGET_FLAGS) $(CFLAGS) | grep NO_RV64GV); \ $(HOSTCC) $(HOST_CFLAGS) $(EXFLAGS) $${avx512:+-D$${avx512}} $${rv64gv:+-D$${rv64gv}} -o $(@F) getarch.c cpuid.S $(CPUIDEMU) getarch_2nd : getarch_2nd.c $(TARGET_CONF) dummy diff --git a/c_check b/c_check old mode 100644 new mode 100755 index a3afea838..d2f2eb036 --- a/c_check +++ b/c_check @@ -1,451 +1,413 @@ -#!/usr/bin/env perl - -#use File::Basename; -# use File::Temp qw(tempfile); +#!/bin/sh # Checking cross compile -$hostos = `uname -s | sed -e s/\-.*//`; chop($hostos); -$hostarch = `uname -m | sed -e s/i.86/x86/`; -$hostarch = `uname -p` if ($hostos eq "AIX" || $hostos eq "SunOS"); -chop($hostarch); -$hostarch = "x86_64" if ($hostarch eq "amd64"); -$hostarch = "arm" if ($hostarch ne "arm64" && $hostarch =~ /^arm.*/); -$hostarch = "arm64" if ($hostarch eq "aarch64"); -$hostarch = "power" if ($hostarch =~ /^(powerpc|ppc).*/); -$hostarch = "zarch" if ($hostarch eq "s390x"); +hostos=`uname -s | sed -e 's/\-.*//'` +hostarch=`uname -m | sed -e 's/i.86/x86/'` +if [ "$hostos" = "AIX" ] || [ "$hostos" = "SunOS" ]; then + hostarch=`uname -p` +fi +case "$hostarch" in + amd64) hostarch=x86_64 ;; + arm*) [ "$hostarch" = "arm64" ] || hostarch='arm' ;; + aarch64) hostarch=arm64 ;; + powerpc*|ppc*) hostarch=power ;; + s390x) hostarch=zarch ;; +esac -#$tmpf = new File::Temp( UNLINK => 1 ); -$binary = $ENV{"BINARY"}; +makefile="$1" +config="$2" -$makefile = shift(@ARGV); -$config = shift(@ARGV); - -$compiler_name = shift(@ARGV); -$flags = join(" ", @ARGV); +compiler_name="$3" +shift 3 +flags="$*" # First, we need to know the target OS and compiler name - -$data = `$compiler_name $flags -E ctest.c`; - -if ($?) { - printf STDERR "C Compiler ($compiler_name) is something wrong.\n"; - die 1; +{ + data=`$compiler_name $flags -E ctest.c` +} || { + printf '%s\n' "C Compiler ($compiler_name) is something wrong." >&2 + exit 1 } -$cross_suffix = ""; +cross_suffix="" -eval "use File::Basename"; -if ($@){ - warn "could not load PERL module File::Basename, emulating its functionality"; - my $dirnam = substr($compiler_name, 0, rindex($compiler_name, "/")-1 ); - if ($dirnam ne ".") { - $cross_suffix .= $dirnam . "/"; - } - my $basnam = substr($compiler_name, rindex($compiler_name,"/")+1, length($compiler_name)-rindex($compiler_name,"/")-1); - if ($basnam =~ /([^\s]*-)(.*)/) { - $cross_suffix .= $1; - } -} else { - if (dirname($compiler_name) ne ".") { - $cross_suffix .= dirname($compiler_name) . "/"; - } +if [ "`dirname $compiler_name`" != '.' ]; then + cross_suffix="$cross_suffix`dirname $compiler_name`/" +fi - if (basename($compiler_name) =~ /([^\s]*-)(.*)/) { - $cross_suffix .= $1; - } -} +bn=`basename $compiler_name` +case "$bn" in + *-*) cross_suffix="$cross_suffix${bn%-*}-" +esac -$compiler = ""; -$compiler = LSB if ($data =~ /COMPILER_LSB/); -$compiler = CLANG if ($data =~ /COMPILER_CLANG/); -$compiler = PGI if ($data =~ /COMPILER_PGI/); -$compiler = PATHSCALE if ($data =~ /COMPILER_PATHSCALE/); -$compiler = INTEL if ($data =~ /COMPILER_INTEL/); -$compiler = OPEN64 if ($data =~ /COMPILER_OPEN64/); -$compiler = SUN if ($data =~ /COMPILER_SUN/); -$compiler = IBM if ($data =~ /COMPILER_IBM/); -$compiler = DEC if ($data =~ /COMPILER_DEC/); -$compiler = GCC if ($compiler eq ""); +compiler="" +case "$data" in + *COMPILER_LSB*) compiler=LSB ;; + *COMPILER_CLANG*) compiler=CLANG ;; + *COMPILER_PGI*) compiler=PGI ;; + *COMPILER_PATHSCALE*) compiler=PATHSCALE ;; + *COMPILER_INTEL*) compiler=INTEL ;; + *COMPILER_OPEN64*) compiler=OPEN64 ;; + *COMPILER_SUN*) compiler=SUN ;; + *COMPILER_IBM*) compiler=IBM ;; + *COMPILER_DEC*) compiler=DEC ;; +esac +if [ -z "$compiler" ]; then + compiler=GCC +fi -$os = Linux if ($data =~ /OS_LINUX/); -$os = FreeBSD if ($data =~ /OS_FREEBSD/); -$os = NetBSD if ($data =~ /OS_NETBSD/); -$os = OpenBSD if ($data =~ /OS_OPENBSD/); -$os = DragonFly if ($data =~ /OS_DRAGONFLY/); -$os = Darwin if ($data =~ /OS_DARWIN/); -$os = SunOS if ($data =~ /OS_SUNOS/); -$os = AIX if ($data =~ /OS_AIX/); -$os = osf if ($data =~ /OS_OSF/); -$os = WINNT if ($data =~ /OS_WINNT/); -$os = CYGWIN_NT if ($data =~ /OS_CYGWIN_NT/); -$os = Interix if ($data =~ /OS_INTERIX/); -$os = Android if ($data =~ /OS_ANDROID/); -$os = Haiku if ($data =~ /OS_HAIKU/); +case "$data" in *OS_LINUX*) os=Linux ;; esac +case "$data" in *OS_FREEBSD*) os=FreeBSD ;; esac +case "$data" in *OS_NETBSD*) os=NetBSD ;; esac +case "$data" in *OS_OPENBSD*) os=OpenBSD ;; esac +case "$data" in *OS_DRAGONFLY*) os=DragonFly ;; esac +case "$data" in *OS_DARWIN*) os=Darwin ;; esac +case "$data" in *OS_SUNOS*) os=SunOS ;; esac +case "$data" in *OS_AIX*) os=AIX ;; esac +case "$data" in *OS_OSF*) os=osf ;; esac +case "$data" in *OS_WINNT*) os=WINNT ;; esac +case "$data" in *OS_CYGWIN_NT*) os=CYGWIN_NT ;; esac +case "$data" in *OS_INTERIX*) os=Interix ;; esac +case "$data" in *OS_ANDROID*) os=Android ;; esac +case "$data" in *OS_HAIKU*) os=Haiku ;; esac -$architecture = x86 if ($data =~ /ARCH_X86/); -$architecture = x86_64 if ($data =~ /ARCH_X86_64/); -$architecture = e2k if ($data =~ /ARCH_E2K/); -$architecture = power if ($data =~ /ARCH_POWER/); -$architecture = mips if ($data =~ /ARCH_MIPS/); -$architecture = mips64 if ($data =~ /ARCH_MIPS64/); -$architecture = alpha if ($data =~ /ARCH_ALPHA/); -$architecture = sparc if ($data =~ /ARCH_SPARC/); -$architecture = ia64 if ($data =~ /ARCH_IA64/); -$architecture = arm if ($data =~ /ARCH_ARM/); -$architecture = arm64 if ($data =~ /ARCH_ARM64/); -$architecture = zarch if ($data =~ /ARCH_ZARCH/); -$architecture = riscv64 if ($data =~ /ARCH_RISCV64/); -$architecture = loongarch64 if ($data =~ /ARCH_LOONGARCH64/); +case "$data" in + *ARCH_X86_64*) architecture=x86_64 ;; + *ARCH_X86*) architecture=x86 ;; + *ARCH_E2K*) architecture=e2k ;; + *ARCH_POWER*) architecture=power ;; + *ARCH_MIPS64*) architecture=mips64 ;; + *ARCH_MIPS*) architecture=mips ;; + *ARCH_ALPHA*) architecture=alpha ;; + *ARCH_SPARC*) architecture=sparc ;; + *ARCH_IA64*) architecture=ia64 ;; + *ARCH_ARM64*) architecture=arm64 ;; + *ARCH_ARM*) architecture=arm ;; + *ARCH_ZARCH*) architecture=zarch ;; + *ARCH_RISCV64*) architecture=riscv64 ;; + *ARCH_LOONGARCH64*) architecture=loongarch64 ;; +esac -$defined = 0; +defined=0 -if ($os eq "AIX") { - $compiler_name .= " -maix32" if ($binary eq "32"); - $compiler_name .= " -maix64" if ($binary eq "64"); - $defined = 1; -} +if [ "$os" = "AIX" ]; then + case "$BINARY" in + 32) compiler_name="$compiler_name -maix32" ;; + 64) compiler_name="$compiler_name -maix64" ;; + esac + defined=1 +fi -if ($architecture eq "mips") { - $compiler_name .= " -mabi=32"; - $defined = 1; -} +case "$architecture" in + mips) + compiler_name="$compiler_name -mabi=32" + defined=1 + ;; + mips64) + case "$BINARY" in + 32) compiler_name="$compiler_name -mabi=n32" ;; + 64) compiler_name="$compiler_name -mabi=64" ;; + esac + defined=1 + ;; + arm|arm64) defined=1 ;; + zarch|e2k|alpha|ia64|riscv64|loonarch64) + defined=1 + BINARY=64 + ;; + x86) + [ "$os" != "Darwin" ] && [ "$os" != "SunOS" ] && { + defined=1 + BINARY=32 + } + ;; +esac -if ($architecture eq "mips64") { - $compiler_name .= " -mabi=n32" if ($binary eq "32"); - $compiler_name .= " -mabi=64" if ($binary eq "64"); - $defined = 1; -} +case "$compiler" in + PGI) + case "$BINARY" in + 32) compiler_name="$compiler_name -tp p7" ;; + 64) compiler_name="$compiler_name -tp p7-64" ;; + esac + openmp='-mp' + defined=1 + ;; + IBM) + case "$BINARY" in + 32) compiler_name="$compiler_name -q32" ;; + 64) compiler_name="$compiler_name -q64" ;; + esac + openmp='-qsmp=omp' + defined=1 + ;; + INTEL) openmp='-openmp' ;; + PATHSCALE|OPEN64) openmp='-mp' ;; + CLANG|GCC|LSB) openmp='-fopenmp' ;; +esac -if (($architecture eq "arm") || ($architecture eq "arm64")) { - $defined = 1; -} - -if ($architecture eq "zarch") { - $defined = 1; - $binary = 64; -} - -if ($architecture eq "e2k") { - $defined = 1; - $binary = 64; -} - -if ($architecture eq "alpha") { - $defined = 1; - $binary = 64; -} - -if ($architecture eq "ia64") { - $defined = 1; - $binary = 64; -} - -if (($architecture eq "x86") && ($os ne Darwin) && ($os ne SunOS)) { - $defined = 1; - $binary =32; -} - -if ($architecture eq "riscv64") { - $defined = 1; - $binary = 64; -} - -if ($architecture eq "loongarch64") { - $defined = 1; - $binary = 64; -} - -if ($compiler eq "PGI") { - $compiler_name .= " -tp p7" if ($binary eq "32"); - $compiler_name .= " -tp p7-64" if ($binary eq "64"); - $openmp = "-mp"; - $defined = 1; -} - -if ($compiler eq "IBM") { - $compiler_name .= " -q32" if ($binary eq "32"); - $compiler_name .= " -q64" if ($binary eq "64"); - $openmp = "-qsmp=omp"; - $defined = 1; -} - -if ($compiler eq "INTEL") { - $openmp = "-openmp"; -} - -if ($compiler eq "PATHSCALE") { - $openmp = "-mp"; -} - -if ($compiler eq "OPEN64") { - $openmp = "-mp"; -} - -if ($compiler eq "CLANG") { - $openmp = "-fopenmp"; -} - -if ($compiler eq "GCC" || $compiler eq "LSB") { - $openmp = "-fopenmp"; -} - -if ($defined == 0) { - $compiler_name .= " -m32" if ($binary eq "32"); - $compiler_name .= " -m64" if ($binary eq "64"); -} +if [ "$defined" -eq 0 ]; then + case "$BINARY" in + 32) compiler_name="$compiler_name -m32" ;; + 64) compiler_name="$compiler_name -m64" ;; + esac +fi # Do again - -$data = `$compiler_name $flags -E ctest.c`; - -if ($?) { - printf STDERR "C Compiler ($compiler_name) is something wrong.\n"; - die 1; -} - -$have_msa = 0; -if (($architecture eq "mips") || ($architecture eq "mips64")) { - eval "use File::Temp qw(tempfile)"; - if ($@){ - warn "could not load PERL module File::Temp, so could not check MSA capatibility"; - } else { - $tmpf = new File::Temp( SUFFIX => '.c' , UNLINK => 1 ); - $code = '"addvi.b $w0, $w1, 1"'; - $msa_flags = "-mmsa -mfp64 -mload-store-pairs"; - print $tmpf "#include \n\n"; - print $tmpf "void main(void){ __asm__ volatile($code); }\n"; - - $args = "$msa_flags -o $tmpf.o $tmpf"; - my @cmd = ("$compiler_name $flags $args >/dev/null 2>/dev/null"); - system(@cmd) == 0; - if ($? != 0) { - $have_msa = 0; - } else { - $have_msa = 1; - } - unlink("$tmpf.o"); - } -} - -$architecture = x86 if ($data =~ /ARCH_X86/); -$architecture = x86_64 if ($data =~ /ARCH_X86_64/); -$architecture = e2k if ($data =~ /ARCH_E2K/); -$architecture = power if ($data =~ /ARCH_POWER/); -$architecture = mips if ($data =~ /ARCH_MIPS/); -$architecture = mips64 if ($data =~ /ARCH_MIPS64/); -$architecture = alpha if ($data =~ /ARCH_ALPHA/); -$architecture = sparc if ($data =~ /ARCH_SPARC/); -$architecture = ia64 if ($data =~ /ARCH_IA64/); -$architecture = arm if ($data =~ /ARCH_ARM/); -$architecture = arm64 if ($data =~ /ARCH_ARM64/); -$architecture = zarch if ($data =~ /ARCH_ZARCH/); -$architecture = loongarch64 if ($data =~ /ARCH_LOONGARCH64/); - -$binformat = bin32; -$binformat = bin64 if ($data =~ /BINARY_64/); - -$no_avx512= 0; -if (($architecture eq "x86") || ($architecture eq "x86_64")) { - eval "use File::Temp qw(tempfile)"; - if ($@){ - warn "could not load PERL module File::Temp, so could not check compiler compatibility with AVX512"; - $no_avx512 = 0; - } else { -# $tmpf = new File::Temp( UNLINK => 1 ); - ($fh,$tmpf) = tempfile( SUFFIX => '.c' , UNLINK => 1 ); - $code = '"vbroadcastss -4 * 4(%rsi), %zmm2"'; - print $fh "#include \n\nint main(void){ __asm__ volatile($code); }\n"; - $args = " -march=skylake-avx512 -c -o $tmpf.o $tmpf"; - if ($compiler eq "PGI") { - $args = " -tp skylake -c -o $tmpf.o $tmpf"; - } - my @cmd = ("$compiler_name $flags $args >/dev/null 2>/dev/null"); - system(@cmd) == 0; - if ($? != 0) { - $no_avx512 = 1; - } else { - $no_avx512 = 0; - } - unlink("$tmpf.o"); - } -} - -$no_rv64gv= 0; -if (($architecture eq "riscv64")) { - eval "use File::Temp qw(tempfile)"; - if ($@){ - warn "could not load PERL module File::Temp, so could not check compiler compatibility with the RISCV vector extension"; - $no_rv64gv = 0; - } else { -# $tmpf = new File::Temp( UNLINK => 1 ); - ($fh,$tmpf) = tempfile( SUFFIX => '.c' , UNLINK => 1 ); - $code = '"vsetvli zero, zero, e8, m1\n"'; - print $fh "int main(void){ __asm__ volatile($code); }\n"; - $args = " -march=rv64gv -c -o $tmpf.o $tmpf"; - my @cmd = ("$compiler_name $flags $args >/dev/null 2>/dev/null"); - system(@cmd) == 0; - if ($? != 0) { - $no_rv64gv = 1; - } else { - $no_rv64gv = 0; - } - unlink("$tmpf.o"); - } -} - -$c11_atomics = 0; -if ($data =~ /HAVE_C11/) { - eval "use File::Temp qw(tempfile)"; - if ($@){ - warn "could not load PERL module File::Temp, so could not check compiler compatibility with C11"; - $c11_atomics = 0; - } else { - ($fh,$tmpf) = tempfile( SUFFIX => '.c' , UNLINK => 1 ); - print $fh "#include \nint main(void){}\n"; - $args = " -c -o $tmpf.o $tmpf"; - my @cmd = ("$compiler_name $flags $args >/dev/null 2>/dev/null"); - system(@cmd) == 0; - if ($? != 0) { - $c11_atomics = 0; - } else { - $c11_atomics = 1; - } - unlink("$tmpf.o"); - } -} - -if ($compiler eq "GCC" &&( ($architecture eq "x86") || ($architecture eq "x86_64"))) { - $no_avx2 = 0; - $oldgcc = 0; - $data = `$compiler_name -dumpversion`; - if ($data <= 4.6) { - $no_avx2 = 1; - $oldgcc = 1; - } -} - -$data = `$compiler_name $flags -S ctest1.c && grep globl ctest1.s | head -n 1 && rm -f ctest1.s`; - -$data =~ /globl\s([_\.]*)(.*)/; - -$need_fu = $1; - -$cross = 0; - -if ($architecture ne $hostarch) { - $cross = 1; - $cross = 0 if (($hostarch eq "x86_64") && ($architecture eq "x86")); - $cross = 0 if (($hostarch eq "mips64") && ($architecture eq "mips")); -} - -$cross = 1 if ($os ne $hostos); -$cross = 0 if (($os eq "Android") && ($hostos eq "Linux") && ($ENV{TERMUX_APP_PID} != "")); - -$openmp = "" if $ENV{USE_OPENMP} != 1; - -$linker_L = ""; -$linker_l = ""; -$linker_a = ""; - { - $link = `$compiler_name $flags -c ctest2.c -o ctest2.o 2>&1 && $compiler_name $flags $openmp -v ctest2.o -o ctest2 2>&1 && rm -f ctest2.o ctest2 ctest2.exe`; - - $link =~ s/\-Y\sP\,/\-Y/g; - - @flags = split(/[\s\,\n]/, $link); - # remove leading and trailing quotes from each flag. - @flags = map {s/^['"]|['"]$//g; $_} @flags; - - foreach $flags (@flags) { - if ( - ($flags =~ /^\-L/) - && ($flags !~ /^-LIST:/) - && ($flags !~ /^-LANG:/) - ) { - $linker_L .= $flags . " " - } - - if ($flags =~ /^\-Y/) { - $linker_L .= "-Wl,". $flags . " " - } - - if ($flags =~ /^\--exclude-libs/) { - $linker_L .= "-Wl,". $flags . " "; - $flags=""; - } - - if ( - ($flags =~ /^\-l/) - && ($flags !~ /gfortranbegin/) - && ($flags !~ /frtbegin/) - && ($flags !~ /pathfstart/) - && ($flags !~ /numa/) - && ($flags !~ /crt[0-9]/) - && ($flags !~ /gcc/) - && ($flags !~ /user32/) - && ($flags !~ /kernel32/) - && ($flags !~ /advapi32/) - && ($flags !~ /shell32/) - && ($flags !~ /omp/) - && ($flags !~ /[0-9]+/) - ) { - $linker_l .= $flags . " " - } - - $linker_a .= $flags . " " if $flags =~ /\.a$/; - } - + data="$($compiler_name $flags -E ctest.c)" +} || { + printf '%s\n' "C Compiler ($compiler_name) is something wrong." >&2 + exit 1 } -open(MAKEFILE, "> $makefile") || die "Can't create $makefile"; -open(CONFFILE, "> $config" ) || die "Can't create $config"; +have_msa=0 +if [ "$architecture" = "mips" ] || [ "$architecture" = "mips64" ]; then + tmpd="$(mktemp -d)" + tmpf="$tmpd/a.c" + code='"addvi.b $w0, $w1, 1"' + msa_flags='-mmsa -mfp64 -mload-store-pairs' + printf "#include \n\n" >> "$tmpf" + printf "void main(void){ __asm__ volatile(%s); }\n" "$code" >> "$tmpf" + + args="$msa_flags -o $tmpf.o $tmpf" + have_msa=1 + { + $compiler_name $flags $args >/dev/null 2>&1 + } || { + have_msa=0 + } + + rm -rf "$tmpd" +fi + +case "$data" in + *ARCH_X86_64*) architecture=x86_64 ;; + *ARCH_X86*) architecture=x86 ;; + *ARCH_E2K*) architecture=e2k ;; + *ARCH_POWER*) architecture=power ;; + *ARCH_MIPS64*) architecture=mips64 ;; + *ARCH_MIPS*) architecture=mips ;; + *ARCH_ALPHA*) architecture=alpha ;; + *ARCH_SPARC*) architecture=sparc ;; + *ARCH_IA64*) architecture=ia64 ;; + *ARCH_ARM64*) architecture=arm64 ;; + *ARCH_ARM*) architecture=arm ;; + *ARCH_ZARCH*) architecture=zarch ;; + *ARCH_LOONGARCH64*) architecture=loongarch64 ;; +esac + +binformat='bin32' +case "$data" in + *BINARY_64*) binformat='bin64' ;; +esac + +no_avx512=0 +if [ "$architecture" = "x86" ] || [ "$architecture" = "x86_64" ]; then + tmpd=`mktemp -d` + tmpf="$tmpd/a.c" + code='"vbroadcastss -4 * 4(%rsi), %zmm2"' + printf "#include \n\nint main(void){ __asm__ volatile(%s); }\n" "$code" >> "$tmpf" + if [ "$compiler" = "PGI" ]; then + args=" -tp skylake -c -o $tmpf.o $tmpf" + else + args=" -march=skylake-avx512 -c -o $tmpf.o $tmpf" + fi + no_avx512=0 + { + $compiler_name $flags $args >/dev/null 2>&1 + } || { + no_avx512=1 + } + + rm -rf "$tmpd" +fi + +no_rv64gv=0 +if [ "$architecture" = "riscv64" ]; then + tmpd=`mktemp -d` + tmpf="$tmpd/a.c" + code='"vsetvli zero, zero, e8, m1\n"' + printf "int main(void){ __asm__ volatile(%s); }\n" "$code" >> "$tmpf" + args=" -march=rv64gv -c -o $tmpf.o $tmpf" + no_rv64gv=0 + { + $compiler_name $flags $args >/dev/null 2>&1 + } || { + no_rv64gv=1 + } + rm -rf "$tmpd" +fi + +c11_atomics=0 +case "$data" in + *HAVE_C11*) + tmpd=`mktemp -d` + tmpf="$tmpd/a.c" + printf "#include \nint main(void){}\n" >> "$tmpf" + args=' -c -o $tmpf.o $tmpf' + c11_atomics=1 + { + $compiler_name $flags $args >/dev/null 2>&1 + } || { + c11_atomics=0 + } + + rm -rf "$tmpd" + ;; +esac + +oldgcc=0 +no_avx2=0 +if [ "$compiler" = "GCC" ]; then + case "$architecture" in x86|x86_64) + no_avx2=0 + oldgcc=0 + data=`$compiler_name -dumpversion` + case "$data" in *.*.*) + data="${data%.*}" + esac + if awk -v n1=$data -v n2=4.6 'BEGIN { exit !(n1 <= n2) }'; then + no_avx2=1 + oldgcc=1 + fi + esac +fi + +data=`$compiler_name $flags -S ctest1.c && grep globl ctest1.s | head -n 1 && rm -f ctest1.s` + +need_fu='' +if echo "$data" | grep 'globl[[:space:]][_\.]'; then + need_fu="${data##*globl[[:space:]]}" + need_fu="${need_fu%%[!_\.]*}" +fi + +cross=0 + +if [ "$architecture" != "$hostarch" ]; then + cross=1 + [ "$hostarch" = "x86_64" ] && [ "$architecture" = "x86" ] && cross=0 + [ "$hostarch" = "mips64" ] && [ "$architecture" = "mips" ] && cross=0 +fi + +[ "$os" != "$hostos" ] && cross=1 +[ "$os" = "Android" ] && [ "$hostos" = "Linux" ] && [ -n "$TERMUX_APP_PID" ] \ + && cross=0 + +[ "$USE_OPENMP" != 1 ] && openmp='' + +linker_L="" +linker_l="" +linker_a="" + +link=`$compiler_name $flags -c ctest2.c -o ctest2.o 2>&1 && $compiler_name $flags $openmp -v ctest2.o -o ctest2 2>&1 && rm -f ctest2.o ctest2 ctest2.exe` + +link=`echo "$link" | sed 's/\-Y[[:space:]]P\,/\-Y/g'` + + +flags=`echo $link | tr '[[:space:]],\n' ' '` + +# Strip trailing quotes +old_flags="$flags" +flags='' + + +for flag in $old_flags; do + f=`echo "$flag" | tr '"' ' '` + flags="$flags $f" +done + +for flag in $flags; do + case "$flag" in -L*) + case "$flag" in + -LIST:*|-LANG:*) ;; + *) linker_L="$linker_L $flag" ;; + esac + esac + + case "$flag" in -Y*) + linker_L="$linker_L -Wl,$flag" ;; + esac + + case "$flag" in --exclude-libs*) + linker_L="$linker_L -Wl,$flag" + flags="" + ;; + esac + + case "$flag" in -l*) + case "$flag" in + *gfortranbegin*|*frtbegin*|*pathfstart*|*numa*|*crt[0-9]*|\ + *gcc*|*user32*|*kernel32*|*advapi32*|*shell32*|*omp*|\ + *[0-9]*) ;; + *) linker_l="$linker_l $flag" ;; + esac + esac + + case "$flag" in *.a) linker_a="$linker_a $flag" ;; esac +done + + [ "$makefile" = "-" ] && { + [ "$no_rv64gv" -eq 1 ] && printf "NO_RV64GV=1\n" + [ "$no_avx512" -eq 1 ] && printf "NO_AVX512=1\n" + [ "$no_avx2" -eq 1 ] && printf "NO_AVX2=1\n" + [ "$oldgcc" -eq 1 ] && printf "OLDGCC=1\n" + exit 0 +} + +:> "$makefile" || exit 1 +:> "$config" || exit 1 + # print $data, "\n"; -print MAKEFILE "OSNAME=$os\n"; -print MAKEFILE "ARCH=$architecture\n"; -print MAKEFILE "C_COMPILER=$compiler\n"; -print MAKEFILE "BINARY32=\n" if $binformat ne bin32; -print MAKEFILE "BINARY64=\n" if $binformat ne bin64; -print MAKEFILE "BINARY32=1\n" if $binformat eq bin32; -print MAKEFILE "BINARY64=1\n" if $binformat eq bin64; -print MAKEFILE "FU=$need_fu\n" if $need_fu ne ""; -print MAKEFILE "CROSS_SUFFIX=$cross_suffix\n" if $cross != 0 && $cross_suffix ne ""; -print MAKEFILE "CROSS=1\n" if $cross != 0; -print MAKEFILE "CEXTRALIB=$linker_L $linker_l $linker_a\n"; -print MAKEFILE "HAVE_MSA=1\n" if $have_msa eq 1; -print MAKEFILE "MSA_FLAGS=$msa_flags\n" if $have_msa eq 1; -print MAKEFILE "NO_RV64GV=1\n" if $no_rv64gv eq 1; -print MAKEFILE "NO_AVX512=1\n" if $no_avx512 eq 1; -print MAKEFILE "NO_AVX2=1\n" if $no_avx2 eq 1; -print MAKEFILE "OLDGCC=1\n" if $oldgcc eq 1; +{ + printf "OSNAME=%s\n" "$os" + printf "ARCH=%s\n" "$architecture" + printf "C_COMPILER=%s\n" "$compiler" + [ $binformat != 'bin32' ] && printf "BINARY32=\n" + [ $binformat != 'bin64' ] && printf "BINARY64=\n" + [ "$binformat" = "bin32" ] && printf "BINARY32=1\n" + [ "$binformat" = "bin64" ] && printf "BINARY64=1\n" + [ -n "$need_fu" ] && printf 'FU=%s\n' "$need_fu" + [ "$cross" -ne 0 ] && [ -n "$cross_suffix" ] && \ + printf "CROSS_SUFFIX=%s\n" "$cross_suffix" + [ "$cross" -ne 0 ] && printf "CROSS=1\n" + printf "CEXTRALIB=%s %s %s\n" "$linker_L" "$linker_l" "$linker_a" + [ "$have_msa" -eq 1 ] && { + printf "HAVE_MSA=1\n" + printf "MSA_FLAGS=%s\n" "$msa_flags" + } + [ "$no_rv64gv" -eq 1 ] && printf "NO_RV64GV=1\n" + [ "$no_avx512" -eq 1 ] && printf "NO_AVX512=1\n" + [ "$no_avx2" -eq 1 ] && printf "NO_AVX2=1\n" + [ "$oldgcc" -eq 1 ] && printf "OLDGCC=1\n" +} >> "$makefile" -$os =~ tr/[a-z]/[A-Z]/; -$architecture =~ tr/[a-z]/[A-Z]/; -$compiler =~ tr/[a-z]/[A-Z]/; +os=`echo "$os" | tr '[[:lower:]]' '[[:upper:]]'/ ` +architecture=`echo "$architecture" | tr '[[:lower:]]' '[[:upper:]]' ` +compiler=`echo "$compiler" | tr '[[:lower:]]' '[[:upper:]]' ` -print CONFFILE "#define OS_$os\t1\n"; -print CONFFILE "#define ARCH_$architecture\t1\n"; -print CONFFILE "#define C_$compiler\t1\n"; -print CONFFILE "#define __32BIT__\t1\n" if $binformat eq bin32; -print CONFFILE "#define __64BIT__\t1\n" if $binformat eq bin64; -print CONFFILE "#define FUNDERSCORE\t$need_fu\n" if $need_fu ne ""; -print CONFFILE "#define HAVE_MSA\t1\n" if $have_msa eq 1; -print CONFFILE "#define HAVE_C11\t1\n" if $c11_atomics eq 1; +{ + printf "#define OS_%s\t1\n" "$os" + printf "#define ARCH_%s\t1\n" "$architecture" + printf "#define C_%s\t1\n" "$compiler" + [ "$binformat" = "bin32" ] && printf "#define __32BIT__\t1\n" + [ "$binformat" = "bin64" ] && printf "#define __64BIT__\t1\n" + [ -n "$need_fu" ] && printf "#define FUNDERSCORE\t%s\n" "$need_fu" + [ "$have_msa" -eq 1 ] && printf "#define HAVE_MSA\t1\n" + [ "$c11_atomics" -eq 1 ] && printf "#define HAVE_C11\t1\n" +} >> "$config" -if ($os eq "LINUX") { +if [ "$os" = "LINUX" ]; then # @pthread = split(/\s+/, `nm /lib/libpthread.so* | grep _pthread_create`); # if ($pthread[2] ne "") { # print CONFFILE "#define PTHREAD_CREATE_FUNC $pthread[2]\n"; # } else { - print CONFFILE "#define PTHREAD_CREATE_FUNC pthread_create\n"; + printf "#define PTHREAD_CREATE_FUNC pthread_create\n" >> "$config" # } -} else { - print CONFFILE "#define PTHREAD_CREATE_FUNC pthread_create\n"; -} - -close(MAKEFILE); -close(CONFFILE); +else + printf "#define PTHREAD_CREATE_FUNC pthread_create\n" >> "$config" +fi diff --git a/cmake/export.cmake b/cmake/export.cmake index a9d1fc458..2a40fe515 100644 --- a/cmake/export.cmake +++ b/cmake/export.cmake @@ -53,8 +53,8 @@ endif() add_custom_command( OUTPUT ${PROJECT_BINARY_DIR}/openblas.def #TARGET ${OpenBLAS_LIBNAME} PRE_LINK - COMMAND perl - ARGS "${PROJECT_SOURCE_DIR}/exports/gensymbol" "win2k" "${ARCH_IN}" "dummy" "${EXPRECISION_IN}" "${NO_CBLAS_IN}" "${NO_LAPACK_IN}" "${NO_LAPACKE_IN}" "${NEED2UNDERSCORES_IN}" "${ONLY_CBLAS_IN}" "${SYMBOLPREFIX}" "${SYMBOLSUFFIX}" > "${PROJECT_BINARY_DIR}/openblas.def" + COMMAND "${PROJECT_SOURCE_DIR}/exports/gensymbol" + ARGS "win2k" "${ARCH_IN}" "dummy" "${EXPRECISION_IN}" "${NO_CBLAS_IN}" "${NO_LAPACK_IN}" "${NO_LAPACKE_IN}" "${NEED2UNDERSCORES_IN}" "${ONLY_CBLAS_IN}" "${SYMBOLPREFIX}" "${SYMBOLSUFFIX}" > "${PROJECT_BINARY_DIR}/openblas.def" COMMENT "Create openblas.def file" VERBATIM) diff --git a/cmake/prebuild.cmake b/cmake/prebuild.cmake index 4ef0ce93a..993919d66 100644 --- a/cmake/prebuild.cmake +++ b/cmake/prebuild.cmake @@ -199,12 +199,12 @@ if (DEFINED CORE AND CMAKE_CROSSCOMPILING AND NOT (${HOST_OS} STREQUAL "WINDOWSS "#define HAVE_VFP\n" "#define HAVE_NEON\n" "#define ARMV8\n") -if ("${TCORE}" STREQUAL "CORTEXA57") +if ("${TCORE}" STREQUAL "CORTEXA57") set(SGEMM_UNROLL_M 16) set(SGEMM_UNROLL_N 4) else () set(SGEMM_UNROLL_M 8) - set(SGEMM_UNROLL_N 8) + set(SGEMM_UNROLL_N 8) endif () set(DGEMM_UNROLL_M 8) set(DGEMM_UNROLL_N 4) @@ -603,7 +603,7 @@ endif () "#define GEMM_MULTITHREAD_THRESHOLD\t${GEMM_MULTITHREAD_THRESHOLD}\n") # Move to where gen_config_h would place it file(MAKE_DIRECTORY ${TARGET_CONF_DIR}) - file(RENAME ${TARGET_CONF_TEMP} "${TARGET_CONF_DIR}/${TARGET_CONF}") + file(RENAME ${TARGET_CONF_TEMP} "${TARGET_CONF_DIR}/${TARGET_CONF}") else(NOT CMAKE_CROSSCOMPILING) # compile getarch @@ -639,7 +639,7 @@ else(NOT CMAKE_CROSSCOMPILING) OUTPUT_VARIABLE GETARCH_LOG COPY_FILE ${PROJECT_BINARY_DIR}/${GETARCH_BIN} ) - + if (NOT ${GETARCH_RESULT}) MESSAGE(FATAL_ERROR "Compiling getarch failed ${GETARCH_LOG}") endif () diff --git a/exports/Makefile b/exports/Makefile index baaa33623..413e132a8 100644 --- a/exports/Makefile +++ b/exports/Makefile @@ -120,10 +120,10 @@ dll : ../$(LIBDLLNAME) -Wl,--whole-archive ../$(LIBNAME) -Wl,--no-whole-archive $(FEXTRALIB) $(EXTRALIB) $(LIBPREFIX).def : gensymbol - perl ./gensymbol win2k $(ARCH) dummy $(EXPRECISION) $(NO_CBLAS) $(NO_LAPACK) $(NO_LAPACKE) $(NEED2UNDERSCORES) $(ONLY_CBLAS) "$(SYMBOLPREFIX)" "$(SYMBOLSUFFIX)" $(BUILD_LAPACK_DEPRECATED) $(BUILD_BFLOAT16) $(BUILD_SINGLE) $(BUILD_DOUBLE) $(BUILD_COMPLEX) $(BUILD_COMPLEX16) > $(@F) + ./gensymbol win2k $(ARCH) dummy $(EXPRECISION) $(NO_CBLAS) $(NO_LAPACK) $(NO_LAPACKE) $(NEED2UNDERSCORES) $(ONLY_CBLAS) "$(SYMBOLPREFIX)" "$(SYMBOLSUFFIX)" $(BUILD_LAPACK_DEPRECATED) $(BUILD_BFLOAT16) $(BUILD_SINGLE) $(BUILD_DOUBLE) $(BUILD_COMPLEX) $(BUILD_COMPLEX16) > $(@F) libgoto_hpl.def : gensymbol - perl ./gensymbol win2khpl $(ARCH) dummy $(EXPRECISION) $(NO_CBLAS) $(NO_LAPACK) $(NO_LAPACKE) $(NEED2UNDERSCORES) $(ONLY_CBLAS) "$(SYMBOLPREFIX)" "$(SYMBOLSUFFIX)" $(BUILD_LAPACK_DEPRECATED) $(BUILD_BFLOAT16) $(BUILD_SINGLE) $(BUILD_DOUBLE) $(BUILD_COMPLEX) $(BUILD_COMPLEX16) > $(@F) + ./gensymbol win2khpl $(ARCH) dummy $(EXPRECISION) $(NO_CBLAS) $(NO_LAPACK) $(NO_LAPACKE) $(NEED2UNDERSCORES) $(ONLY_CBLAS) "$(SYMBOLPREFIX)" "$(SYMBOLSUFFIX)" $(BUILD_LAPACK_DEPRECATED) $(BUILD_BFLOAT16) $(BUILD_SINGLE) $(BUILD_DOUBLE) $(BUILD_COMPLEX) $(BUILD_COMPLEX16) > $(@F) ifeq ($(OSNAME), Darwin) INTERNALNAME = $(LIBPREFIX).$(MAJOR_VERSION).dylib @@ -266,23 +266,23 @@ static : ../$(LIBNAME) rm -f goto.$(SUFFIX) osx.def : gensymbol ../Makefile.system ../getarch.c - perl ./gensymbol osx $(ARCH) $(BU) $(EXPRECISION) $(NO_CBLAS) $(NO_LAPACK) $(NO_LAPACKE) $(NEED2UNDERSCORES) $(ONLY_CBLAS) "$(SYMBOLPREFIX)" "$(SYMBOLSUFFIX)" $(BUILD_LAPACK_DEPRECATED) $(BUILD_BFLOAT16) $(BUILD_SINGLE) $(BUILD_DOUBLE) $(BUILD_COMPLEX) $(BUILD_COMPLEX16) > $(@F) + ./gensymbol osx $(ARCH) $(BU) $(EXPRECISION) $(NO_CBLAS) $(NO_LAPACK) $(NO_LAPACKE) $(NEED2UNDERSCORES) $(ONLY_CBLAS) "$(SYMBOLPREFIX)" "$(SYMBOLSUFFIX)" $(BUILD_LAPACK_DEPRECATED) $(BUILD_BFLOAT16) $(BUILD_SINGLE) $(BUILD_DOUBLE) $(BUILD_COMPLEX) $(BUILD_COMPLEX16) > $(@F) aix.def : gensymbol ../Makefile.system ../getarch.c - perl ./gensymbol aix $(ARCH) $(BU) $(EXPRECISION) $(NO_CBLAS) $(NO_LAPACK) $(NO_LAPACKE) $(NEED2UNDERSCORES) $(ONLY_CBLAS) "$(SYMBOLPREFIX)" "$(SYMBOLSUFFIX)" $(BUILD_LAPACK_DEPRECATED) $(BUILD_BFLOAT16) $(BUILD_SINGLE) $(BUILD_DOUBLE) $(BUILD_COMPLEX) $(BUILD_COMPLEX16) > $(@F) + ./gensymbol aix $(ARCH) $(BU) $(EXPRECISION) $(NO_CBLAS) $(NO_LAPACK) $(NO_LAPACKE) $(NEED2UNDERSCORES) $(ONLY_CBLAS) "$(SYMBOLPREFIX)" "$(SYMBOLSUFFIX)" $(BUILD_LAPACK_DEPRECATED) $(BUILD_BFLOAT16) $(BUILD_SINGLE) $(BUILD_DOUBLE) $(BUILD_COMPLEX) $(BUILD_COMPLEX16) > $(@F) objcopy.def : gensymbol ../Makefile.system ../getarch.c - perl ./gensymbol objcopy $(ARCH) $(BU) $(EXPRECISION) $(NO_CBLAS) $(NO_LAPACK) $(NO_LAPACKE) $(NEED2UNDERSCORES) $(ONLY_CBLAS) "$(SYMBOLPREFIX)" "$(SYMBOLSUFFIX)" $(BUILD_LAPACK_DEPRECATED) $(BUILD_BFLOAT16) $(BUILD_SINGLE) $(BUILD_DOUBLE) $(BUILD_COMPLEX) $(BUILD_COMPLEX16) > $(@F) + ./gensymbol objcopy $(ARCH) $(BU) $(EXPRECISION) $(NO_CBLAS) $(NO_LAPACK) $(NO_LAPACKE) $(NEED2UNDERSCORES) $(ONLY_CBLAS) "$(SYMBOLPREFIX)" "$(SYMBOLSUFFIX)" $(BUILD_LAPACK_DEPRECATED) $(BUILD_BFLOAT16) $(BUILD_SINGLE) $(BUILD_DOUBLE) $(BUILD_COMPLEX) $(BUILD_COMPLEX16) > $(@F) objconv.def : gensymbol ../Makefile.system ../getarch.c - perl ./gensymbol objconv $(ARCH) $(BU) $(EXPRECISION) $(NO_CBLAS) $(NO_LAPACK) $(NO_LAPACKE) $(NEED2UNDERSCORES) $(ONLY_CBLAS) "$(SYMBOLPREFIX)" "$(SYMBOLSUFFIX)" $(BUILD_LAPACK_DEPRECATED) $(BUILD_BFLOAT16) $(BUILD_SINGLE) $(BUILD_DOUBLE) $(BUILD_COMPLEX) $(BUILD_COMPLEX16) > $(@F) + ./gensymbol objconv $(ARCH) $(BU) $(EXPRECISION) $(NO_CBLAS) $(NO_LAPACK) $(NO_LAPACKE) $(NEED2UNDERSCORES) $(ONLY_CBLAS) "$(SYMBOLPREFIX)" "$(SYMBOLSUFFIX)" $(BUILD_LAPACK_DEPRECATED) $(BUILD_BFLOAT16) $(BUILD_SINGLE) $(BUILD_DOUBLE) $(BUILD_COMPLEX) $(BUILD_COMPLEX16) > $(@F) test : linktest.c $(CC) $(CFLAGS) $(LDFLAGS) -w -o linktest linktest.c ../$(LIBSONAME) -lm && echo OK. rm -f linktest linktest.c : gensymbol ../Makefile.system ../getarch.c - perl ./gensymbol linktest $(ARCH) $(BU) $(EXPRECISION) $(NO_CBLAS) $(NO_LAPACK) $(NO_LAPACKE) $(NEED2UNDERSCORES) $(ONLY_CBLAS) "$(SYMBOLPREFIX)" "$(SYMBOLSUFFIX)" $(BUILD_LAPACK_DEPRECATED) $(BUILD_BFLOAT16) $(BUILD_SINGLE) $(BUILD_DOUBLE) $(BUILD_COMPLEX) $(BUILD_COMPLEX16) > linktest.c + ./gensymbol linktest $(ARCH) $(BU) $(EXPRECISION) $(NO_CBLAS) $(NO_LAPACK) $(NO_LAPACKE) $(NEED2UNDERSCORES) $(ONLY_CBLAS) "$(SYMBOLPREFIX)" "$(SYMBOLSUFFIX)" $(BUILD_LAPACK_DEPRECATED) $(BUILD_BFLOAT16) $(BUILD_SINGLE) $(BUILD_DOUBLE) $(BUILD_COMPLEX) $(BUILD_COMPLEX16) > linktest.c clean :: @rm -f *.def *.dylib __.SYMDEF* *.renamed diff --git a/exports/gensymbol b/exports/gensymbol old mode 100644 new mode 100755 index e7210a030..eafa2f828 --- a/exports/gensymbol +++ b/exports/gensymbol @@ -1,4 +1,4 @@ -#!/usr/bin/env perl +#!/bin/sh # Changelog # 2017/09/03 staticfloat @@ -16,3918 +16,3970 @@ # 2017/08/01 Saar # removed blas_thread_shutdown_ # -@blasobjsc = ( - caxpy,caxpby,ccopy,cdotc,cdotu,cgbmv,cgemm,cgemv,cgerc,cgeru, - chbmv,chemm,chemv,cher2,cher2k,cher,cherk,scabs1,scamax, - chpmv,chpr2,chpr,crotg,cscal,csrot,csscal,cswap,scamin,scasum,scnrm2, - csymm,csyr2k,csyrk,ctbmv,ctbsv,ctpmv,ctpsv,ctrmm,ctrmv,ctrsm, - ctrsv,icamax,icamin,cimatcopy,comatcopy,cgeadd,scsum); - -@blasobjsd = ( - damax,damin,dasum,daxpy,daxpby,dcabs1,dcopy,ddot,dgbmv,dgemm, - dgemv,dger,dmax,dmin,dnrm2,drot,drotg,drotm,drotmg,dsbmv, - dscal,dsdot,dspmv,dspr2,dimatcopy,domatcopy, - dspr,dswap,dsymm,dsymv,dsyr2,dsyr2k,dsyr,dsyrk,dtbmv,dtbsv, - dtpmv,dtpsv,dtrmm,dtrmv,dtrsm,dtrsv, - idamax,idamin,idmax,idmin,dgeadd,dsum); - -@blasobjss = ( - isamax,isamin,ismax,ismin, - samax,samin,sasum,saxpy, saxpby, - scopy,sdot,sdsdot,sgbmv,sgemm,sgemv,sger, - smax,smin,snrm2,simatcopy,somatcopy, - srot,srotg,srotm,srotmg,ssbmv,sscal,sspmv,sspr2,sspr,sswap, - ssymm,ssymv,ssyr2,ssyr2k,ssyr,ssyrk,stbmv,stbsv,stpmv,stpsv, - strmm,strmv,strsm,strsv, sgeadd,ssum); - -@blasobjsz = ( - izamax,izamin,, - zaxpy,zaxpby,zcopy,zdotc,zdotu,zdrot, - zdscal,zgbmv,zgemm,zgemv,zgerc,zgeru, - zhbmv,zhemm,zhemv,zher2,zher2k,zher,zherk,zhpmv,zhpr2, - zhpr,zrotg,zscal,zswap,zsymm,zsyr2k,zsyrk,ztbmv, - ztbsv,ztpmv,ztpsv,ztrmm,ztrmv,ztrsm,ztrsv, - zomatcopy, zimatcopy,dzamax,dzamin,dzasum,dznrm2, - zgeadd, dzsum); +blasobjsc=" + caxpy caxpby ccopy cdotc cdotu cgbmv cgemm cgemv cgerc cgeru + chbmv chemm chemv cher2 cher2k cher cherk scabs1 scamax + chpmv chpr2 chpr crotg cscal csrot csscal cswap scamin scasum scnrm2 + csymm csyr2k csyrk ctbmv ctbsv ctpmv ctpsv ctrmm ctrmv ctrsm + ctrsv icamax icamin cimatcopy comatcopy cgeadd scsum" -@blasobjs = (lsame, xerbla); -@bfblasobjs = (sbgemm, sbgemv, sbdot, sbstobf16, sbdtobf16, sbf16tos, dbf16tod); -@cblasobjsc = ( - cblas_caxpy, cblas_ccopy, cblas_cdotc, cblas_cdotu, cblas_cgbmv, cblas_cgemm, cblas_cgemv, - cblas_cgerc, cblas_cgeru, cblas_chbmv, cblas_chemm, cblas_chemv, cblas_cher2, cblas_cher2k, - cblas_cher, cblas_cherk, cblas_chpmv, cblas_chpr2, cblas_chpr, cblas_cscal, cblas_caxpby, - cblas_csscal, cblas_cswap, cblas_csymm, cblas_csyr2k, cblas_csyrk, cblas_ctbmv, cblas_cgeadd, - cblas_ctbsv, cblas_ctpmv, cblas_ctpsv, cblas_ctrmm, cblas_ctrmv, cblas_ctrsm, cblas_ctrsv, - cblas_scnrm2, cblas_scasum, - cblas_icamax, cblas_icamin, cblas_icmin, cblas_icmax, cblas_scsum,cblas_cimatcopy,cblas_comatcopy - ); -@cblasobjsd = ( - cblas_dasum, cblas_daxpy, cblas_dcopy, cblas_ddot, - cblas_dgbmv, cblas_dgemm, cblas_dgemv, cblas_dger, cblas_dnrm2, - cblas_drot, cblas_drotg, cblas_drotm, cblas_drotmg, cblas_dsbmv, cblas_dscal, cblas_dsdot, - cblas_dspmv, cblas_dspr2, cblas_dspr, cblas_dswap, cblas_dsymm, cblas_dsymv, cblas_dsyr2, - cblas_dsyr2k, cblas_dsyr, cblas_dsyrk, cblas_dtbmv, cblas_dtbsv, cblas_dtpmv, cblas_dtpsv, - cblas_dtrmm, cblas_dtrmv, cblas_dtrsm, cblas_dtrsv, cblas_daxpby, cblas_dgeadd, - cblas_idamax, cblas_idamin, cblas_idmin, cblas_idmax, cblas_dsum,cblas_dimatcopy,cblas_domatcopy - ); - -@cblasobjss = ( - cblas_sasum, cblas_saxpy, cblas_saxpby, - cblas_scopy, cblas_sdot, cblas_sdsdot, cblas_sgbmv, cblas_sgemm, - cblas_sgemv, cblas_sger, cblas_snrm2, cblas_srot, cblas_srotg, - cblas_srotm, cblas_srotmg, cblas_ssbmv, cblas_sscal, cblas_sspmv, cblas_sspr2, cblas_sspr, - cblas_sswap, cblas_ssymm, cblas_ssymv, cblas_ssyr2, cblas_ssyr2k, cblas_ssyr, cblas_ssyrk, - cblas_stbmv, cblas_stbsv, cblas_stpmv, cblas_stpsv, cblas_strmm, cblas_strmv, cblas_strsm, - cblas_strsv, cblas_sgeadd, - cblas_isamax, cblas_isamin, cblas_ismin, cblas_ismax, cblas_ssum,cblas_simatcopy,cblas_somatcopy - ); -@cblasobjsz = ( - cblas_dzasum, cblas_dznrm2, cblas_zaxpy, cblas_zcopy, cblas_zdotc, cblas_zdotu, cblas_zdscal, - cblas_zgbmv, cblas_zgemm, cblas_zgemv, cblas_zgerc, cblas_zgeru, cblas_zhbmv, cblas_zhemm, - cblas_zhemv, cblas_zher2, cblas_zher2k, cblas_zher, cblas_zherk, cblas_zhpmv, cblas_zhpr2, - cblas_zhpr, cblas_zscal, cblas_zswap, cblas_zsymm, cblas_zsyr2k, cblas_zsyrk, - cblas_ztbmv, cblas_ztbsv, cblas_ztpmv, cblas_ztpsv, cblas_ztrmm, cblas_ztrmv, cblas_ztrsm, - cblas_ztrsv, cblas_cdotc_sub, cblas_cdotu_sub, cblas_zdotc_sub, cblas_zdotu_sub, - cblas_zaxpby, cblas_zgeadd, - cblas_izamax, cblas_izamin, cblas_izmin, cblas_izmax, cblas_dzsum,cblas_zimatcopy,cblas_zomatcopy -); +blasobjsd=" + damax damin dasum daxpy daxpby dcabs1 dcopy ddot dgbmv dgemm + dgemv dger dmax dmin dnrm2 drot drotg drotm drotmg dsbmv + dscal dsdot dspmv dspr2 dimatcopy domatcopy + dspr dswap dsymm dsymv dsyr2 dsyr2k dsyr dsyrk dtbmv dtbsv + dtpmv dtpsv dtrmm dtrmv dtrsm dtrsv + idamax idamin idmax idmin dgeadd dsum" -@cblasobjs = ( cblas_xerbla ); +blasobjss=" + isamax isamin ismax ismin + samax samin sasum saxpy saxpby + scopy sdot sdsdot sgbmv sgemm sgemv sger + smax smin snrm2 simatcopy somatcopy + srot srotg srotm srotmg ssbmv sscal sspmv sspr2 sspr sswap + ssymm ssymv ssyr2 ssyr2k ssyr ssyrk stbmv stbsv stpmv stpsv + strmm strmv strsm strsv sgeadd ssum" -@bfcblasobjs = (cblas_sbgemm, cblas_sbgemv, cblas_sbdot, cblas_sbstobf16, cblas_sbdtobf16, cblas_sbf16tos, cblas_dbf16tod); +blasobjsz=" + izamax izamin + zaxpy zaxpby zcopy zdotc zdotu zdrot + zdscal zgbmv zgemm zgemv zgerc zgeru + zhbmv zhemm zhemv zher2 zher2k zher zherk zhpmv zhpr2 + zhpr zrotg zscal zswap zsymm zsyr2k zsyrk ztbmv + ztbsv ztpmv ztpsv ztrmm ztrmv ztrsm ztrsv + zomatcopy zimatcopy dzamax dzamin dzasum dznrm2 + zgeadd dzsum" -@exblasobjs = ( - qamax,qamin,qasum,qaxpy,qcabs1,qcopy,qdot,qgbmv,qgemm, - qgemv,qger,qmax,qmin, - qnrm2, - qsbmv,qscal,qspmv,qspr2, - qspr,qswap,qsymm,qsymv,qsyr2,qsyr2k,qsyr,qsyrk,qtbmv,qtbsv, - qtpmv,qtpsv,qtrmm,qtrmv,qtrsm,qtrsv, - qxamax,qxamin,qxasum,qxnrm2, - xaxpy,xcopy,xdotc,xdotu, - xqscal,xgbmv,xgemm,xgemv,xgerc,xgeru, - xhbmv,xhemm,xhemv,xher2,xher2k,xher,xherk,xhpmv,xhpr2, - xhpr,xscal,xswap,xsymm,xsyr2k,xsyrk,xtbmv, - xtbsv,xtpmv,xtpsv,xtrmm,xtrmv,xtrsm,xtrsv, -# qrot,qrotg,qrotm,qrotmg, -# xdrot,xrotg, -); +blasobjs="lsame xerbla" +bfblasobjs="sbgemm sbgemv sbdot sbstobf16 sbdtobf16 sbf16tos dbf16tod" +cblasobjsc=" + cblas_caxpy cblas_ccopy cblas_cdotc cblas_cdotu cblas_cgbmv cblas_cgemm cblas_cgemv + cblas_cgerc cblas_cgeru cblas_chbmv cblas_chemm cblas_chemv cblas_cher2 cblas_cher2k + cblas_cher cblas_cherk cblas_chpmv cblas_chpr2 cblas_chpr cblas_cscal cblas_caxpby + cblas_csscal cblas_cswap cblas_csymm cblas_csyr2k cblas_csyrk cblas_ctbmv cblas_cgeadd + cblas_ctbsv cblas_ctpmv cblas_ctpsv cblas_ctrmm cblas_ctrmv cblas_ctrsm cblas_ctrsv + cblas_scnrm2 cblas_scasum + cblas_icamax cblas_icamin cblas_icmin cblas_icmax cblas_scsum cblas_cimatcopy cblas_comatcopy + " +cblasobjsd=" + cblas_dasum cblas_daxpy cblas_dcopy cblas_ddot + cblas_dgbmv cblas_dgemm cblas_dgemv cblas_dger cblas_dnrm2 + cblas_drot cblas_drotg cblas_drotm cblas_drotmg cblas_dsbmv cblas_dscal cblas_dsdot + cblas_dspmv cblas_dspr2 cblas_dspr cblas_dswap cblas_dsymm cblas_dsymv cblas_dsyr2 + cblas_dsyr2k cblas_dsyr cblas_dsyrk cblas_dtbmv cblas_dtbsv cblas_dtpmv cblas_dtpsv + cblas_dtrmm cblas_dtrmv cblas_dtrsm cblas_dtrsv cblas_daxpby cblas_dgeadd + cblas_idamax cblas_idamin cblas_idmin cblas_idmax cblas_dsum cblas_dimatcopy cblas_domatcopy + " - @gemm3mobjs=(); +cblasobjss=" + cblas_sasum cblas_saxpy cblas_saxpby + cblas_scopy cblas_sdot cblas_sdsdot cblas_sgbmv cblas_sgemm + cblas_sgemv cblas_sger cblas_snrm2 cblas_srot cblas_srotg + cblas_srotm cblas_srotmg cblas_ssbmv cblas_sscal cblas_sspmv cblas_sspr2 cblas_sspr + cblas_sswap cblas_ssymm cblas_ssymv cblas_ssyr2 cblas_ssyr2k cblas_ssyr cblas_ssyrk + cblas_stbmv cblas_stbsv cblas_stpmv cblas_stpsv cblas_strmm cblas_strmv cblas_strsm + cblas_strsv cblas_sgeadd + cblas_isamax cblas_isamin cblas_ismin cblas_ismax cblas_ssum cblas_simatcopy cblas_somatcopy + " - @cblasgemm3mobjs=(); +cblasobjsz=" + cblas_dzasum cblas_dznrm2 cblas_zaxpy cblas_zcopy cblas_zdotc cblas_zdotu cblas_zdscal + cblas_zgbmv cblas_zgemm cblas_zgemv cblas_zgerc cblas_zgeru cblas_zhbmv cblas_zhemm + cblas_zhemv cblas_zher2 cblas_zher2k cblas_zher cblas_zherk cblas_zhpmv cblas_zhpr2 + cblas_zhpr cblas_zscal cblas_zswap cblas_zsymm cblas_zsyr2k cblas_zsyrk + cblas_ztbmv cblas_ztbsv cblas_ztpmv cblas_ztpsv cblas_ztrmm cblas_ztrmv cblas_ztrsm + cblas_ztrsv cblas_cdotc_sub cblas_cdotu_sub cblas_zdotc_sub cblas_zdotu_sub + cblas_zaxpby cblas_zgeadd + cblas_izamax cblas_izamin cblas_izmin cblas_izmax cblas_dzsum cblas_zimatcopy cblas_zomatcopy +" -@gemm3mobjsc = ( - cgemm3m, -); -@gemm3mobjsz = ( +cblasobjs="cblas_xerbla" + +bfcblasobjs="cblas_sbgemm cblas_sbgemv cblas_sbdot cblas_sbstobf16 cblas_sbdtobf16 cblas_sbf16tos cblas_dbf16tod" + +exblasobjs=" + qamax qamin qasum qaxpy qcabs1 qcopy qdot qgbmv qgemm + qgemv qger qmax qmin + qnrm2 + qsbmv qscal qspmv qspr2 + qspr qswap qsymm qsymv qsyr2 qsyr2k qsyr qsyrk qtbmv qtbsv + qtpmv qtpsv qtrmm qtrmv qtrsm qtrsv + qxamax qxamin qxasum qxnrm2 + xaxpy xcopy xdotc xdotu + xqscal xgbmv xgemm xgemv xgerc xgeru + xhbmv xhemm xhemv xher2 xher2k xher xherk xhpmv xhpr2 + xhpr xscal xswap xsymm xsyr2k xsyrk xtbmv + xtbsv xtpmv xtpsv xtrmm xtrmv xtrsm xtrsv +" +# qrot,qrotg,qrotm,qrotmg, +# xdrot,xrotg, + +gemm3mobj="" + +cblasgemm3mobj="" + +gemm3mobjsc=" + cgemm3m +" +gemm3mobjsz=" zgemm3m -); +" -@cblasgemm3mobjsc = ( +cblasgemm3mobjsc=" cblas_cgemm3m -); -@cblasgemm3mobjsz = ( +" +cblasgemm3mobjsz=" cblas_zgemm3m -); +" #both underscore and no underscore -@misc_common_objs = ( - openblas_get_parallel, - openblas_get_num_procs, - openblas_set_num_threads, - openblas_get_num_threads, -); +misc_common_objs=" + openblas_get_parallel + openblas_get_num_procs + openblas_set_num_threads + openblas_get_num_threads +" -@misc_no_underscore_objs = ( - goto_set_num_threads, - openblas_get_config, - openblas_get_corename, -); +misc_no_underscore_objs=" + goto_set_num_threads + openblas_get_config + openblas_get_corename +" -@misc_underscore_objs = ( -); +misc_underscore_objs="" -@lapackobjss = ( - # These routines are provided by OpenBLAS. - sgesv, - sgetf2, - sgetrf, - slaswp, - sgetrs, - slauu2, - slauum, - spotf2, - spotrf, - strti2, - strtri, - spotri, -); +# These routines are provided by OpenBLAS. +lapackobjss=" + sgesv + sgetf2 + sgetrf + slaswp + sgetrs + slauu2 + slauum + spotf2 + spotrf + strti2 + strtri + spotri +" -@lapackobjsd = ( - dgesv, - dgetf2, - dgetrf, - dlaswp, - dgetrs, - dlauu2, - dlauum, - dpotf2, - dpotrf, - dtrti2, - dtrtri, - dpotri, -); +lapackobjsd=" + dgesv + dgetf2 + dgetrf + dlaswp + dgetrs + dlauu2 + dlauum + dpotf2 + dpotrf + dtrti2 + dtrtri + dpotri +" -@lapackobjsc = ( -cgesv, -cgetf2, -cgetrf, -claswp, -cgetrs, -clauu2, -clauum, -cpotf2, -cpotrf, -ctrti2, -ctrtri, -cpotri, -); +lapackobjsc=" +cgesv +cgetf2 +cgetrf +claswp +cgetrs +clauu2 +clauum +cpotf2 +cpotrf +ctrti2 +ctrtri +cpotri +" -@lapackobjsz = ( -zgesv, -zgetf2, -zgetrf, -zlaswp, -zgetrs, -zlauu2, -zlauum, -zpotf2, -zpotrf, -ztrti2, -ztrtri, -zpotri, -); +lapackobjsz=" +zgesv +zgetf2 +zgetrf +zlaswp +zgetrs +zlauu2 +zlauum +zpotf2 +zpotrf +ztrti2 +ztrtri +zpotri +" -@lapackobjs2 = ( - # These routines are provided by LAPACK (reference implementation). - # - # This list is prepared by copying all routines listed in - # `lapack-3.4.1/SRC/Makefile` and replacing the '.o' suffix with a comma. - # Thereafter the following routines should be removed: - # - those provided by OpenBLAS (see @lapackobjs) - # - extra precision routines (see @lapack_extendedprecision_objs) - # Each of these have been marked individually with "already provided" or "excluded". +# These routines are provided by LAPACK (reference implementation). +# +# This list is prepared by copying all routines listed in +# `lapack-3.4.1/SRC/Makefile` and replacing the '.o' suffix with a comma. +# Thereafter the following routines should be removed: +# - those provided by OpenBLAS (see @lapackobjs) +# - extra precision routines (see @lapack_extendedprecision_objs) +# Each of these have been marked individually with "already provided" or "excluded". - # ALLAUX -- Auxiliary routines called from all precisions - # already provided by @blasobjs: xerbla, lsame - ilaenv, ieeeck, lsamen, iparmq, - ilaprec, ilatrans, ilauplo, iladiag, - ilaver, slamch, slamc3, -); +# ALLAUX -- Auxiliary routines called from all precisions +# already provided by b"asobjs: xerbla lsame +lapackobjs2=" + ilaenv ieeeck lsamen iparmq + ilaprec ilatrans ilauplo iladiag + ilaver slamch slamc3 +" -@lapackobjs2sc = ( - # SCLAUX -- Auxiliary routines called from both REAL and COMPLEX. - # excluded: second_$(TIMER) - sbdsdc, - sbdsqr, sdisna, slabad, slacpy, sladiv, slae2, slaebz, - slaed0, slaed1, slaed2, slaed3, slaed4, slaed5, slaed6, - slaed7, slaed8, slaed9, slaeda, slaev2, slagtf, - slagts, slamrg, slanst, - slapy2, slapy3, slarnv, - slarra, slarrb, slarrc, slarrd, slarre, slarrf, slarrj, - slarrk, slarrr, slaneg, - slartg, slaruv, slas2, slascl, - slasd0, slasd1, slasd2, slasd3, slasd4, slasd5, slasd6, - slasd7, slasd8, slasda, slasdq, slasdt, - slaset, slasq1, slasq2, slasq3, slasq4, slasq5, slasq6, - slasr, slasrt, slassq, slasv2, spttrf, sstebz, sstedc, - ssteqr, ssterf, slaisnan, sisnan, - slartgp, slartgs, -); +# SCLAUX -- Auxiliary routines called from both REAL and COMPLEX. +# excluded: second_$(TIMER) +lapackobjs2sc=" + sbdsdc + sbdsqr sdisna slabad slacpy sladiv slae2 slaebz + slaed0 slaed1 slaed2 slaed3 slaed4 slaed5 slaed6 + slaed7 slaed8 slaed9 slaeda slaev2 slagtf + slagts slamrg slanst + slapy2 slapy3 slarnv + slarra slarrb slarrc slarrd slarre slarrf slarrj + slarrk slarrr slaneg + slartg slaruv slas2 slascl + slasd0 slasd1 slasd2 slasd3 slasd4 slasd5 slasd6 + slasd7 slasd8 slasda slasdq slasdt + slaset slasq1 slasq2 slasq3 slasq4 slasq5 slasq6 + slasr slasrt slassq slasv2 spttrf sstebz sstedc + ssteqr ssterf slaisnan sisnan + slartgp slartgs +" -@lapackobjs2dz = ( - # DZLAUX -- Auxiliary routines called from both DOUBLE and COMPLEX*16. - # excluded: dsecnd_$(TIMER) - dbdsdc, - dbdsqr, ddisna, dlabad, dlacpy, dladiv, dlae2, dlaebz, - dlaed0, dlaed1, dlaed2, dlaed3, dlaed4, dlaed5, dlaed6, - dlaed7, dlaed8, dlaed9, dlaeda, dlaev2, dlagtf, - dlagts, dlamrg, dlanst, - dlapy2, dlapy3, dlarnv, - dlarra, dlarrb, dlarrc, dlarrd, dlarre, dlarrf, dlarrj, - dlarrk, dlarrr, dlaneg, - dlartg, dlaruv, dlas2, dlascl, - dlasd0, dlasd1, dlasd2, dlasd3, dlasd4, dlasd5, dlasd6, - dlasd7, dlasd8, dlasda, dlasdq, dlasdt, - dlaset, dlasq1, dlasq2, dlasq3, dlasq4, dlasq5, dlasq6, - dlasr, dlasrt, dlassq, dlasv2, dpttrf, dstebz, dstedc, - dsteqr, dsterf, dlaisnan, disnan, - dlartgp, dlartgs, - dlamch, dlamc3, -); +# DZLAUX -- Auxiliary routines called from both DOUBLE and COMPLEX*16. +# excluded: dsecnd_$(TIMER) +lapackobjs2dz=" + dbdsdc + dbdsqr ddisna dlabad dlacpy dladiv dlae2 dlaebz + dlaed0 dlaed1 dlaed2 dlaed3 dlaed4 dlaed5 dlaed6 + dlaed7 dlaed8 dlaed9 dlaeda dlaev2 dlagtf + dlagts dlamrg dlanst + dlapy2 dlapy3 dlarnv + dlarra dlarrb dlarrc dlarrd dlarre dlarrf dlarrj + dlarrk dlarrr dlaneg + dlartg dlaruv dlas2 dlascl + dlasd0 dlasd1 dlasd2 dlasd3 dlasd4 dlasd5 dlasd6 + dlasd7 dlasd8 dlasda dlasdq dlasdt + dlaset dlasq1 dlasq2 dlasq3 dlasq4 dlasq5 dlasq6 + dlasr dlasrt dlassq dlasv2 dpttrf dstebz dstedc + dsteqr dsterf dlaisnan disnan + dlartgp dlartgs + dlamch dlamc3 +" -@lapackobjs2s = ( - # SLASRC -- Single precision real LAPACK routines - # already provided by @lapackobjs: - # sgesv, sgetf2, slaswp, slauu2, slauum, spotf2, spotri, strti2, strtri - sgbbrd, sgbcon, sgbequ, sgbrfs, sgbsv, - sgbsvx, sgbtf2, sgbtrf, sgbtrs, sgebak, sgebal, sgebd2, - sgebrd, sgecon, sgeequ, sgees, sgeesx, sgeev, sgeevx, - sgehd2, sgehrd, sgelq2, sgelqf, - sgels, sgelsd, sgelss, sgelsy, sgeql2, sgeqlf, - sgeqp3, sgeqr2, sgeqr2p, sgeqrf, sgeqrfp, sgerfs, - sgerq2, sgerqf, sgesc2, sgesdd, sgesvd, sgesvx, - sgetc2, sgetri, - sggbak, sggbal, sgges, sggesx, sggev, sggevx, - sggglm, sgghrd, sgglse, sggqrf, - sggrqf, sgtcon, sgtrfs, sgtsv, - sgtsvx, sgttrf, sgttrs, sgtts2, shgeqz, - shsein, shseqr, slabrd, slacon, slacn2, - slaein, slaexc, slag2, slags2, slagtm, slagv2, slahqr, - slahr2, slaic1, slaln2, slals0, slalsa, slalsd, - slangb, slange, slangt, slanhs, slansb, slansp, - slansy, slantb, slantp, slantr, slanv2, - slapll, slapmt, - slaqgb, slaqge, slaqp2, slaqps, slaqsb, slaqsp, slaqsy, - slaqr0, slaqr1, slaqr2, slaqr3, slaqr4, slaqr5, - slaqtr, slar1v, slar2v, ilaslr, ilaslc, - slarf, slarfb, slarfg, slarfgp, slarft, slarfx, slargv, - slarrv, slartv, - slarz, slarzb, slarzt, slasy2, slasyf, - slatbs, slatdf, slatps, slatrd, slatrs, slatrz, - sopgtr, sopmtr, sorg2l, sorg2r, - sorgbr, sorghr, sorgl2, sorglq, sorgql, sorgqr, sorgr2, - sorgrq, sorgtr, sorm2l, sorm2r, - sormbr, sormhr, sorml2, sormlq, sormql, sormqr, sormr2, - sormr3, sormrq, sormrz, sormtr, spbcon, spbequ, spbrfs, - spbstf, spbsv, spbsvx, - spbtf2, spbtrf, spbtrs, spocon, spoequ, sporfs, sposv, - sposvx, spstrf, spstf2, - sppcon, sppequ, - spprfs, sppsv, sppsvx, spptrf, spptri, spptrs, sptcon, - spteqr, sptrfs, sptsv, sptsvx, spttrs, sptts2, srscl, - ssbev, ssbevd, ssbevx, ssbgst, ssbgv, ssbgvd, ssbgvx, - ssbtrd, sspcon, sspev, sspevd, sspevx, sspgst, - sspgv, sspgvd, sspgvx, ssprfs, sspsv, sspsvx, ssptrd, - ssptrf, ssptri, ssptrs, sstegr, sstein, sstev, sstevd, sstevr, - sstevx, - ssycon, ssyev, ssyevd, ssyevr, ssyevx, ssygs2, - ssygst, ssygv, ssygvd, ssygvx, ssyrfs, ssysv, ssysvx, - ssytd2, ssytf2, ssytrd, ssytrf, ssytri, ssytri2, ssytri2x, - ssyswapr, ssytrs, ssytrs2, ssyconv, - stbcon, - stbrfs, stbtrs, stgevc, stgex2, stgexc, stgsen, - stgsja, stgsna, stgsy2, stgsyl, stpcon, stprfs, stptri, - stptrs, - strcon, strevc, strexc, strrfs, strsen, strsna, strsyl, - strtrs, stzrzf, sstemr, - slansf, spftrf, spftri, spftrs, ssfrk, stfsm, stftri, stfttp, - stfttr, stpttf, stpttr, strttf, strttp, - sgejsv, sgesvj, sgsvj0, sgsvj1, - sgeequb, ssyequb, spoequb, sgbequb, - sbbcsd, slapmr, sorbdb, sorbdb1, sorbdb2, sorbdb3, sorbdb4, - sorbdb5, sorbdb6, sorcsd, sorcsd2by1, - sgeqrt, sgeqrt2, sgeqrt3, sgemqrt, - stpqrt, stpqrt2, stpmqrt, stprfb, -); +# SLASRC -- Single precision real LAPACK routines +# already provided by l"packobjs: +# sgesv sgetf2 slaswp slauu2 slauum spotf2 spotri strti2 strtri +lapackobjs2s=" + sgbbrd sgbcon sgbequ sgbrfs sgbsv + sgbsvx sgbtf2 sgbtrf sgbtrs sgebak sgebal sgebd2 + sgebrd sgecon sgeequ sgees sgeesx sgeev sgeevx + sgehd2 sgehrd sgelq2 sgelqf + sgels sgelsd sgelss sgelsy sgeql2 sgeqlf + sgeqp3 sgeqr2 sgeqr2p sgeqrf sgeqrfp sgerfs + sgerq2 sgerqf sgesc2 sgesdd sgesvd sgesvx + sgetc2 sgetri + sggbak sggbal sgges sggesx sggev sggevx + sggglm sgghrd sgglse sggqrf + sggrqf sgtcon sgtrfs sgtsv + sgtsvx sgttrf sgttrs sgtts2 shgeqz + shsein shseqr slabrd slacon slacn2 + slaein slaexc slag2 slags2 slagtm slagv2 slahqr + slahr2 slaic1 slaln2 slals0 slalsa slalsd + slangb slange slangt slanhs slansb slansp + slansy slantb slantp slantr slanv2 + slapll slapmt + slaqgb slaqge slaqp2 slaqps slaqsb slaqsp slaqsy + slaqr0 slaqr1 slaqr2 slaqr3 slaqr4 slaqr5 + slaqtr slar1v slar2v ilaslr ilaslc + slarf slarfb slarfg slarfgp slarft slarfx slargv + slarrv slartv + slarz slarzb slarzt slasy2 slasyf + slatbs slatdf slatps slatrd slatrs slatrz + sopgtr sopmtr sorg2l sorg2r + sorgbr sorghr sorgl2 sorglq sorgql sorgqr sorgr2 + sorgrq sorgtr sorm2l sorm2r + sormbr sormhr sorml2 sormlq sormql sormqr sormr2 + sormr3 sormrq sormrz sormtr spbcon spbequ spbrfs + spbstf spbsv spbsvx + spbtf2 spbtrf spbtrs spocon spoequ sporfs sposv + sposvx spstrf spstf2 + sppcon sppequ + spprfs sppsv sppsvx spptrf spptri spptrs sptcon + spteqr sptrfs sptsv sptsvx spttrs sptts2 srscl + ssbev ssbevd ssbevx ssbgst ssbgv ssbgvd ssbgvx + ssbtrd sspcon sspev sspevd sspevx sspgst + sspgv sspgvd sspgvx ssprfs sspsv sspsvx ssptrd + ssptrf ssptri ssptrs sstegr sstein sstev sstevd sstevr + sstevx + ssycon ssyev ssyevd ssyevr ssyevx ssygs2 + ssygst ssygv ssygvd ssygvx ssyrfs ssysv ssysvx + ssytd2 ssytf2 ssytrd ssytrf ssytri ssytri2 ssytri2x + ssyswapr ssytrs ssytrs2 ssyconv + stbcon + stbrfs stbtrs stgevc stgex2 stgexc stgsen + stgsja stgsna stgsy2 stgsyl stpcon stprfs stptri + stptrs + strcon strevc strexc strrfs strsen strsna strsyl + strtrs stzrzf sstemr + slansf spftrf spftri spftrs ssfrk stfsm stftri stfttp + stfttr stpttf stpttr strttf strttp + sgejsv sgesvj sgsvj0 sgsvj1 + sgeequb ssyequb spoequb sgbequb + sbbcsd slapmr sorbdb sorbdb1 sorbdb2 sorbdb3 sorbdb4 + sorbdb5 sorbdb6 sorcsd sorcsd2by1 + sgeqrt sgeqrt2 sgeqrt3 sgemqrt + stpqrt stpqrt2 stpmqrt stprfb +" -@lapackobjs2ds = ( - # DSLASRC -- Double-single mixed precision real routines called from - # single, single-extra and double precision real LAPACK - # routines (i.e. from SLASRC, SXLASRC, DLASRC). - # - # already provided by @lapackobjs: - # sgetrs, spotrf, sgetrf - spotrs, -); +# DSLASRC -- Double-single mixed precision real routines called from +# single, single-extra and double precision real LAPACK +# routines (i.e. from SLASRC, SXLASRC, DLASRC). +# +# already provided by @lapackobjs: +# sgetrs, spotrf, sgetrf +lapackobjs2ds=" + spotrs +" -@lapackobjs2c = ( - # CLASRC -- Single precision complex LAPACK routines - # already provided by @blasobjs: - # already provided by @lapackobjs: - # cgesv, cgetf2, claswp, clauu2, clauum, cpotf2, cpotri, ctrti2, ctrtri - cbdsqr, cgbbrd, cgbcon, cgbequ, cgbrfs, cgbsv, cgbsvx, - cgbtf2, cgbtrf, cgbtrs, cgebak, cgebal, cgebd2, cgebrd, - cgecon, cgeequ, cgees, cgeesx, cgeev, cgeevx, - cgehd2, cgehrd, cgelq2, cgelqf, - cgels, cgelsd, cgelss, cgelsy, cgeql2, cgeqlf, cgeqp3, - cgeqr2, cgeqr2p, cgeqrf, cgeqrfp, cgerfs, - cgerq2, cgerqf, cgesc2, cgesdd, cgesvd, - cgesvx, cgetc2, cgetri, - cggbak, cggbal, cgges, cggesx, cggev, cggevx, cggglm, - cgghrd, cgglse, cggqrf, cggrqf, - cgtcon, cgtrfs, cgtsv, cgtsvx, cgttrf, cgttrs, cgtts2, chbev, - chbevd, chbevx, chbgst, chbgv, chbgvd, chbgvx, chbtrd, - checon, cheev, cheevd, cheevr, cheevx, chegs2, chegst, - chegv, chegvd, chegvx, cherfs, chesv, chesvx, chetd2, - chetf2, chetrd, - chetrf, chetri, chetri2, chetri2x, cheswapr, - chetrs, chetrs2, chgeqz, chpcon, chpev, chpevd, - chpevx, chpgst, chpgv, chpgvd, chpgvx, chprfs, chpsv, - chpsvx, - chptrd, chptrf, chptri, chptrs, chsein, chseqr, clabrd, - clacgv, clacon, clacn2, clacp2, clacpy, clacrm, clacrt, cladiv, - claed0, claed7, claed8, - claein, claesy, claev2, clags2, clagtm, - clahef, clahqr, - clahr2, claic1, clals0, clalsa, clalsd, clangb, clange, clangt, - clanhb, clanhe, - clanhp, clanhs, clanht, clansb, clansp, clansy, clantb, - clantp, clantr, clapll, clapmt, clarcm, claqgb, claqge, - claqhb, claqhe, claqhp, claqp2, claqps, claqsb, - claqr0, claqr1, claqr2, claqr3, claqr4, claqr5, - claqsp, claqsy, clar1v, clar2v, ilaclr, ilaclc, - clarf, clarfb, clarfg, clarft, clarfgp, - clarfx, clargv, clarnv, clarrv, clartg, clartv, - clarz, clarzb, clarzt, clascl, claset, clasr, classq, - clasyf, clatbs, clatdf, clatps, clatrd, clatrs, clatrz, - cpbcon, cpbequ, cpbrfs, cpbstf, cpbsv, - cpbsvx, cpbtf2, cpbtrf, cpbtrs, cpocon, cpoequ, cporfs, - cposv, cposvx, cpstrf, cpstf2, - cppcon, cppequ, cpprfs, cppsv, cppsvx, cpptrf, cpptri, cpptrs, - cptcon, cpteqr, cptrfs, cptsv, cptsvx, cpttrf, cpttrs, cptts2, - crot, cspcon, cspmv, cspr, csprfs, cspsv, - cspsvx, csptrf, csptri, csptrs, csrscl, cstedc, - cstegr, cstein, csteqr, - csycon, - csymv, - csyr, csyrfs, csysv, csysvx, csytf2, csytrf, csytri, csytri2, csytri2x, - csyswapr, csytrs, csytrs2, csyconv, - ctbcon, ctbrfs, ctbtrs, ctgevc, ctgex2, - ctgexc, ctgsen, ctgsja, ctgsna, ctgsy2, ctgsyl, ctpcon, - ctprfs, ctptri, - ctptrs, ctrcon, ctrevc, ctrexc, ctrrfs, ctrsen, ctrsna, - ctrsyl, ctrtrs, ctzrzf, cung2l, cung2r, - cungbr, cunghr, cungl2, cunglq, cungql, cungqr, cungr2, - cungrq, cungtr, cunm2l, cunm2r, cunmbr, cunmhr, cunml2, - cunmlq, cunmql, cunmqr, cunmr2, cunmr3, cunmrq, cunmrz, - cunmtr, cupgtr, cupmtr, icmax1, scsum1, cstemr, - chfrk, ctfttp, clanhf, cpftrf, cpftri, cpftrs, ctfsm, ctftri, - ctfttr, ctpttf, ctpttr, ctrttf, ctrttp, - cgeequb, cgbequb, csyequb, cpoequb, cheequb, - cbbcsd, clapmr, cunbdb, cunbdb1, cunbdb2, cunbdb3, cunbdb4, - cunbdb5, cunbdb6, cuncsd, cuncsd2by1, - cgeqrt, cgeqrt2, cgeqrt3, cgemqrt, - ctpqrt, ctpqrt2, ctpmqrt, ctprfb, -); -@lapackobjs2zc = ( - # ZCLASRC -- Double-single mixed precision complex routines called from - # single, single-extra and double precision complex LAPACK - # routines (i.e. from CLASRC, CXLASRC, ZLASRC). - # - # already provided by @lapackobjs: - # cgetrs, cpotrf, cgetrf - cpotrs, -); +# CLASRC -- Single precision complex LAPACK routines +# already provided by @blasobjs: +# already provided by @lapackobjs: +# cgesv, cgetf2, claswp, clauu2, clauum, cpotf2, cpotri, ctrti2, ctrtri +lapackobjs2c=" + cbdsqr cgbbrd cgbcon cgbequ cgbrfs cgbsv cgbsvx + cgbtf2 cgbtrf cgbtrs cgebak cgebal cgebd2 cgebrd + cgecon cgeequ cgees cgeesx cgeev cgeevx + cgehd2 cgehrd cgelq2 cgelqf + cgels cgelsd cgelss cgelsy cgeql2 cgeqlf cgeqp3 + cgeqr2 cgeqr2p cgeqrf cgeqrfp cgerfs + cgerq2 cgerqf cgesc2 cgesdd cgesvd + cgesvx cgetc2 cgetri + cggbak cggbal cgges cggesx cggev cggevx cggglm + cgghrd cgglse cggqrf cggrqf + cgtcon cgtrfs cgtsv cgtsvx cgttrf cgttrs cgtts2 chbev + chbevd chbevx chbgst chbgv chbgvd chbgvx chbtrd + checon cheev cheevd cheevr cheevx chegs2 chegst + chegv chegvd chegvx cherfs chesv chesvx chetd2 + chetf2 chetrd + chetrf chetri chetri2 chetri2x cheswapr + chetrs chetrs2 chgeqz chpcon chpev chpevd + chpevx chpgst chpgv chpgvd chpgvx chprfs chpsv + chpsvx + chptrd chptrf chptri chptrs chsein chseqr clabrd + clacgv clacon clacn2 clacp2 clacpy clacrm clacrt cladiv + claed0 claed7 claed8 + claein claesy claev2 clags2 clagtm + clahef clahqr + clahr2 claic1 clals0 clalsa clalsd clangb clange clangt + clanhb clanhe + clanhp clanhs clanht clansb clansp clansy clantb + clantp clantr clapll clapmt clarcm claqgb claqge + claqhb claqhe claqhp claqp2 claqps claqsb + claqr0 claqr1 claqr2 claqr3 claqr4 claqr5 + claqsp claqsy clar1v clar2v ilaclr ilaclc + clarf clarfb clarfg clarft clarfgp + clarfx clargv clarnv clarrv clartg clartv + clarz clarzb clarzt clascl claset clasr classq + clasyf clatbs clatdf clatps clatrd clatrs clatrz + cpbcon cpbequ cpbrfs cpbstf cpbsv + cpbsvx cpbtf2 cpbtrf cpbtrs cpocon cpoequ cporfs + cposv cposvx cpstrf cpstf2 + cppcon cppequ cpprfs cppsv cppsvx cpptrf cpptri cpptrs + cptcon cpteqr cptrfs cptsv cptsvx cpttrf cpttrs cptts2 + crot cspcon cspmv cspr csprfs cspsv + cspsvx csptrf csptri csptrs csrscl cstedc + cstegr cstein csteqr + csycon + csymv + csyr csyrfs csysv csysvx csytf2 csytrf csytri csytri2 csytri2x + csyswapr csytrs csytrs2 csyconv + ctbcon ctbrfs ctbtrs ctgevc ctgex2 + ctgexc ctgsen ctgsja ctgsna ctgsy2 ctgsyl ctpcon + ctprfs ctptri + ctptrs ctrcon ctrevc ctrexc ctrrfs ctrsen ctrsna + ctrsyl ctrtrs ctzrzf cung2l cung2r + cungbr cunghr cungl2 cunglq cungql cungqr cungr2 + cungrq cungtr cunm2l cunm2r cunmbr cunmhr cunml2 + cunmlq cunmql cunmqr cunmr2 cunmr3 cunmrq cunmrz + cunmtr cupgtr cupmtr icmax1 scsum1 cstemr + chfrk ctfttp clanhf cpftrf cpftri cpftrs ctfsm ctftri + ctfttr ctpttf ctpttr ctrttf ctrttp + cgeequb cgbequb csyequb cpoequb cheequb + cbbcsd clapmr cunbdb cunbdb1 cunbdb2 cunbdb3 cunbdb4 + cunbdb5 cunbdb6 cuncsd cuncsd2by1 + cgeqrt cgeqrt2 cgeqrt3 cgemqrt + ctpqrt ctpqrt2 ctpmqrt ctprfb +" -@lapackobjs2d = ( - # DLASRC -- Double precision real LAPACK routines - # already provided by @lapackobjs: - # dgesv, dgetf2, dgetrs, dlaswp, dlauu2, dlauum, dpotf2, dpotrf, dpotri, - # dtrti2, dtrtri - dgbbrd, dgbcon, dgbequ, dgbrfs, dgbsv, - dgbsvx, dgbtf2, dgbtrf, dgbtrs, dgebak, dgebal, dgebd2, - dgebrd, dgecon, dgeequ, dgees, dgeesx, dgeev, dgeevx, - dgehd2, dgehrd, dgelq2, dgelqf, - dgels, dgelsd, dgelss, dgelsy, dgeql2, dgeqlf, - dgeqp3, dgeqr2, dgeqr2p, dgeqrf, dgeqrfp, dgerfs, - dgerq2, dgerqf, dgesc2, dgesdd, dgesvd, dgesvx, - dgetc2, dgetri, - dggbak, dggbal, dgges, dggesx, dggev, dggevx, - dggglm, dgghrd, dgglse, dggqrf, - dggrqf, dgtcon, dgtrfs, dgtsv, - dgtsvx, dgttrf, dgttrs, dgtts2, dhgeqz, - dhsein, dhseqr, dlabrd, dlacon, dlacn2, - dlaein, dlaexc, dlag2, dlags2, dlagtm, dlagv2, dlahqr, - dlahr2, dlaic1, dlaln2, dlals0, dlalsa, dlalsd, - dlangb, dlange, dlangt, dlanhs, dlansb, dlansp, - dlansy, dlantb, dlantp, dlantr, dlanv2, - dlapll, dlapmt, - dlaqgb, dlaqge, dlaqp2, dlaqps, dlaqsb, dlaqsp, dlaqsy, - dlaqr0, dlaqr1, dlaqr2, dlaqr3, dlaqr4, dlaqr5, - dlaqtr, dlar1v, dlar2v, iladlr, iladlc, - dlarf, dlarfb, dlarfg, dlarfgp, dlarft, dlarfx, - dlargv, dlarrv, dlartv, - dlarz, dlarzb, dlarzt, dlasy2, dlasyf, - dlatbs, dlatdf, dlatps, dlatrd, dlatrs, dlatrz, - dopgtr, dopmtr, dorg2l, dorg2r, - dorgbr, dorghr, dorgl2, dorglq, dorgql, dorgqr, dorgr2, - dorgrq, dorgtr, dorm2l, dorm2r, - dormbr, dormhr, dorml2, dormlq, dormql, dormqr, dormr2, - dormr3, dormrq, dormrz, dormtr, dpbcon, dpbequ, dpbrfs, - dpbstf, dpbsv, dpbsvx, - dpbtf2, dpbtrf, dpbtrs, dpocon, dpoequ, dporfs, dposv, - dposvx, dpotrs, dpstrf, dpstf2, - dppcon, dppequ, - dpprfs, dppsv, dppsvx, dpptrf, dpptri, dpptrs, dptcon, - dpteqr, dptrfs, dptsv, dptsvx, dpttrs, dptts2, drscl, - dsbev, dsbevd, dsbevx, dsbgst, dsbgv, dsbgvd, dsbgvx, - dsbtrd, dspcon, dspev, dspevd, dspevx, dspgst, - dspgv, dspgvd, dspgvx, dsprfs, dspsv, dspsvx, dsptrd, - dsptrf, dsptri, dsptrs, dstegr, dstein, dstev, dstevd, dstevr, - dstevx, - dsycon, dsyev, dsyevd, dsyevr, - dsyevx, dsygs2, dsygst, dsygv, dsygvd, dsygvx, dsyrfs, - dsysv, dsysvx, - dsytd2, dsytf2, dsytrd, dsytrf, dsytri, dsytri2, dsytri2x, - dsyswapr, dsytrs, dsytrs2, dsyconv, - dtbcon, dtbrfs, dtbtrs, dtgevc, dtgex2, dtgexc, dtgsen, - dtgsja, dtgsna, dtgsy2, dtgsyl, dtpcon, dtprfs, dtptri, - dtptrs, - dtrcon, dtrevc, dtrexc, dtrrfs, dtrsen, dtrsna, dtrsyl, - dtrtrs, dtzrzf, dstemr, - dsgesv, dsposv, dlag2s, slag2d, dlat2s, - dlansf, dpftrf, dpftri, dpftrs, dsfrk, dtfsm, dtftri, dtfttp, - dtfttr, dtpttf, dtpttr, dtrttf, dtrttp, - dgejsv, dgesvj, dgsvj0, dgsvj1, - dgeequb, dsyequb, dpoequb, dgbequb, - dbbcsd, dlapmr, dorbdb, dorbdb1, dorbdb2, dorbdb3, dorbdb4, - dorbdb5, dorbdb6, dorcsd, dorcsd2by1, - dgeqrt, dgeqrt2, dgeqrt3, dgemqrt, - dtpqrt, dtpqrt2, dtpmqrt, dtprfb, -); -@lapackobjs2z = ( - # ZLASRC -- Double precision complex LAPACK routines - # already provided by @blasobjs: - # already provided by @lapackobjs: - # zgesv, zgetrs, zgetf2, zlaswp, zlauu2, zlauum, zpotf2, zpotrf, zpotri, - # ztrti2, ztrtri - zbdsqr, zgbbrd, zgbcon, zgbequ, zgbrfs, zgbsv, zgbsvx, - zgbtf2, zgbtrf, zgbtrs, zgebak, zgebal, zgebd2, zgebrd, - zgecon, zgeequ, zgees, zgeesx, zgeev, zgeevx, - zgehd2, zgehrd, zgelq2, zgelqf, - zgels, zgelsd, zgelss, zgelsy, zgeql2, zgeqlf, zgeqp3, - zgeqr2, zgeqr2p, zgeqrf, zgeqrfp, zgerfs, zgerq2, zgerqf, - zgesc2, zgesdd, zgesvd, zgesvx, zgetc2, - zgetri, - zggbak, zggbal, zgges, zggesx, zggev, zggevx, zggglm, - zgghrd, zgglse, zggqrf, zggrqf, - zgtcon, zgtrfs, zgtsv, zgtsvx, zgttrf, zgttrs, zgtts2, zhbev, - zhbevd, zhbevx, zhbgst, zhbgv, zhbgvd, zhbgvx, zhbtrd, - zhecon, zheev, zheevd, zheevr, zheevx, zhegs2, zhegst, - zhegv, zhegvd, zhegvx, zherfs, zhesv, zhesvx, zhetd2, - zhetf2, zhetrd, - zhetrf, zhetri, zhetri2, zhetri2x, zheswapr, - zhetrs, zhetrs2, zhgeqz, zhpcon, zhpev, zhpevd, - zhpevx, zhpgst, zhpgv, zhpgvd, zhpgvx, zhprfs, zhpsv, - zhpsvx, - zhptrd, zhptrf, zhptri, zhptrs, zhsein, zhseqr, zlabrd, - zlacgv, zlacon, zlacn2, zlacp2, zlacpy, zlacrm, zlacrt, zladiv, - zlaed0, zlaed7, zlaed8, - zlaein, zlaesy, zlaev2, zlags2, zlagtm, - zlahef, zlahqr, - zlahr2, zlaic1, zlals0, zlalsa, zlalsd, zlangb, zlange, - zlangt, zlanhb, - zlanhe, - zlanhp, zlanhs, zlanht, zlansb, zlansp, zlansy, zlantb, - zlantp, zlantr, zlapll, zlapmt, zlaqgb, zlaqge, - zlaqhb, zlaqhe, zlaqhp, zlaqp2, zlaqps, zlaqsb, - zlaqr0, zlaqr1, zlaqr2, zlaqr3, zlaqr4, zlaqr5, - zlaqsp, zlaqsy, zlar1v, zlar2v, ilazlr, ilazlc, - zlarcm, zlarf, zlarfb, - zlarfg, zlarft, zlarfgp, - zlarfx, zlargv, zlarnv, zlarrv, zlartg, zlartv, - zlarz, zlarzb, zlarzt, zlascl, zlaset, zlasr, - zlassq, zlasyf, - zlatbs, zlatdf, zlatps, zlatrd, zlatrs, zlatrz, - zpbcon, zpbequ, zpbrfs, zpbstf, zpbsv, - zpbsvx, zpbtf2, zpbtrf, zpbtrs, zpocon, zpoequ, zporfs, - zposv, zposvx, zpotrs, zpstrf, zpstf2, - zppcon, zppequ, zpprfs, zppsv, zppsvx, zpptrf, zpptri, zpptrs, - zptcon, zpteqr, zptrfs, zptsv, zptsvx, zpttrf, zpttrs, zptts2, - zrot, zspcon, zspmv, zspr, zsprfs, zspsv, - zspsvx, zsptrf, zsptri, zsptrs, zdrscl, zstedc, - zstegr, zstein, zsteqr, - zsycon, - zsymv, - zsyr, zsyrfs, zsysv, zsysvx, zsytf2, zsytrf, zsytri, zsytri2, zsytri2x, - zsyswapr, zsytrs, zsytrs2, zsyconv, - ztbcon, ztbrfs, ztbtrs, ztgevc, ztgex2, - ztgexc, ztgsen, ztgsja, ztgsna, ztgsy2, ztgsyl, ztpcon, - ztprfs, ztptri, - ztptrs, ztrcon, ztrevc, ztrexc, ztrrfs, ztrsen, ztrsna, - ztrsyl, ztrtrs, ztzrzf, zung2l, - zung2r, zungbr, zunghr, zungl2, zunglq, zungql, zungqr, zungr2, - zungrq, zungtr, zunm2l, zunm2r, zunmbr, zunmhr, zunml2, - zunmlq, zunmql, zunmqr, zunmr2, zunmr3, zunmrq, zunmrz, - zunmtr, zupgtr, - zupmtr, izmax1, dzsum1, zstemr, - zcgesv, zcposv, zlag2c, clag2z, zlat2c, - zhfrk, ztfttp, zlanhf, zpftrf, zpftri, zpftrs, ztfsm, ztftri, - ztfttr, ztpttf, ztpttr, ztrttf, ztrttp, - zgeequb, zgbequb, zsyequb, zpoequb, zheequb, - zbbcsd, zlapmr, zunbdb, zunbdb1, zunbdb2, zunbdb3, zunbdb4, - zunbdb5, zunbdb6, zuncsd, zuncsd2by1, - zgeqrt, zgeqrt2, zgeqrt3, zgemqrt, - ztpqrt, ztpqrt2, ztpmqrt, ztprfb, -); - # functions added for lapack-3.6.0 +# ZCLASRC -- Double-single mixed precision complex routines called from +# single, single-extra and double precision complex LAPACK +# routines (i.e. from CLASRC, CXLASRC, ZLASRC). +# +# already provided by @lapackobjs: +# cgetrs, cpotrf, cgetrf +lapackobjs2zc=" + cpotrs +" -@lapackobjs2c = ( @lapackobjs2c, - cgejsv, - cgesvdx, - cgesvj, - cgetrf2, - cgges3, - cggev3, - cgghd3, - cggsvd3, - cggsvp3, - cgsvj0, - cgsvj1, - clagge, - claghe, - clagsy, - clahilb, - clakf2, - clarge, - clarnd, - claror, - clarot, - clatm1, - clatm2, - clatm3, - clatm5, - clatm6, - clatme, - clatmr, - clatms, - clatmt, - cpotrf2, - csbmv, - cspr2, - csyr2, - cunm22, -); -@lapackobjs2d = (@lapackobjs2d, - dbdsvdx, - dgesvdx, - dgetrf2, - dgges3, - dggev3, - dgghd3, - dggsvd3, - dggsvp3, - dladiv2, - dlagge, - dlagsy, - dlahilb, - dlakf2, - dlaran, - dlarge, - dlarnd, - dlaror, - dlarot, - dlatm1, - dlatm2, - dlatm3, - dlatm5, - dlatm6, - dlatm7, - dlatme, - dlatmr, - dlatms, - dlatmt, - dorm22, - dpotrf2, - dsecnd, - ); - @lapackobjs2s = (@lapackobjs2s, - sbdsvdx, - second, - sgesvdx, - sgetrf2, - sgges3, - sggev3, - sgghd3, - sggsvd3, - sggsvp3, - sladiv2, - slagge, - slagsy, - slahilb, - slakf2, - slaran, - slarge, - slarnd, - slaror, - slarot, - slatm1, - slatm2, - slatm3, - slatm5, - slatm6, - slatm7, - slatme, - slatmr, - slatms, - slatmt, - sorm22, - spotrf2, - ); - @lapackobjs2z = (@lapackobjs2z, - zgejsv, - zgesvdx, - zgesvj, - zgetrf2, - zgges3, - zggev3, - zgghd3, - zggsvd3, - zggsvp3, - zgsvj0, - zgsvj1, - zlagge, - zlaghe, - zlagsy, - zlahilb, - zlakf2, - zlarge, - zlarnd, - zlaror, - zlarot, - zlatm1, - zlatm2, - zlatm3, - zlatm5, - zlatm6, - zlatme, - zlatmr, - zlatms, - zlatmt, - zpotrf2, - zsbmv, - zspr2, - zsyr2, - zunm22, -); - # functions added for lapack-3.7.0 -@lapackobjs2s = (@lapackobjs2s, - slarfy, - strevc3, - sgelqt, - sgelqt3, - sgemlqt, - sgetsls, - sgeqr, - slatsqr, - slamtsqr, - sgemqr, - sgelq, - slaswlq, - slamswlq, - sgemlq, - stplqt, - stplqt2, - stpmlqt, - ); - @lapackobjs2d = (@lapackobjs2d, - dlarfy, - dsyconvf, - dtrevc3, - dgelqt, - dgelqt3, - dgemlqt, - dgetsls, - dgeqr, - dlatsqr, - dlamtsqr, - dgemqr, - dgelq, - dlaswlq, - dlamswlq, - dgemlq, - dtplqt, - dtplqt2, - dtpmlqt, - ); - @lapackobjs2c = (@lapackobjs2c, - clarfy, - csyconvf, - ctrevc3, - cgelqt, - cgelqt3, - cgemlqt, - cgetsls, - cgeqr, - clatsqr, - clamtsqr, - cgemqr, - cgelq, - claswlq, - clamswlq, - cgemlq, - ctplqt, - ctplqt2, - ctpmlqt, - ); - @lapackobjs2z = (@lapackobjs2z, - zlarfy, - zsyconvf, - ztrevc3, - ztplqt, - ztplqt2, - ztpmlqt, - zgelqt, - zgelqt3, - zgemlqt, - zgetsls, - zgeqr, - zlatsqr, - zlamtsqr, - zgemqr, - zgelq, - zlaswlq, - zlamswlq, - zgemlq, - ); - @lapackobjs2s = (@lapackobjs2s, - sladiv1); - @lapackobjs2d = (@lapackobjs2d, - dladiv1); - @lapackobjs = (@lapackobjs, - iparam2stage, - # functions added for lapack-3.8.0 - ilaenv2stage, - ); - # functions added for lapack-3.9.0 -@lapackobjs2c = (@lapackobjs2c, - cgesvdq, +# DLASRC -- Double precision real LAPACK routines +# already provided by @lapackobjs: +# dgesv, dgetf2, dgetrs, dlaswp, dlauu2, dlauum, dpotf2, dpotrf, dpotri, +# dtrti2, dtrtri +lapackobjs2d=" + dgbbrd dgbcon dgbequ dgbrfs dgbsv + dgbsvx dgbtf2 dgbtrf dgbtrs dgebak dgebal dgebd2 + dgebrd dgecon dgeequ dgees dgeesx dgeev dgeevx + dgehd2 dgehrd dgelq2 dgelqf + dgels dgelsd dgelss dgelsy dgeql2 dgeqlf + dgeqp3 dgeqr2 dgeqr2p dgeqrf dgeqrfp dgerfs + dgerq2 dgerqf dgesc2 dgesdd dgesvd dgesvx + dgetc2 dgetri + dggbak dggbal dgges dggesx dggev dggevx + dggglm dgghrd dgglse dggqrf + dggrqf dgtcon dgtrfs dgtsv + dgtsvx dgttrf dgttrs dgtts2 dhgeqz + dhsein dhseqr dlabrd dlacon dlacn2 + dlaein dlaexc dlag2 dlags2 dlagtm dlagv2 dlahqr + dlahr2 dlaic1 dlaln2 dlals0 dlalsa dlalsd + dlangb dlange dlangt dlanhs dlansb dlansp + dlansy dlantb dlantp dlantr dlanv2 + dlapll dlapmt + dlaqgb dlaqge dlaqp2 dlaqps dlaqsb dlaqsp dlaqsy + dlaqr0 dlaqr1 dlaqr2 dlaqr3 dlaqr4 dlaqr5 + dlaqtr dlar1v dlar2v iladlr iladlc + dlarf dlarfb dlarfg dlarfgp dlarft dlarfx + dlargv dlarrv dlartv + dlarz dlarzb dlarzt dlasy2 dlasyf + dlatbs dlatdf dlatps dlatrd dlatrs dlatrz + dopgtr dopmtr dorg2l dorg2r + dorgbr dorghr dorgl2 dorglq dorgql dorgqr dorgr2 + dorgrq dorgtr dorm2l dorm2r + dormbr dormhr dorml2 dormlq dormql dormqr dormr2 + dormr3 dormrq dormrz dormtr dpbcon dpbequ dpbrfs + dpbstf dpbsv dpbsvx + dpbtf2 dpbtrf dpbtrs dpocon dpoequ dporfs dposv + dposvx dpotrs dpstrf dpstf2 + dppcon dppequ + dpprfs dppsv dppsvx dpptrf dpptri dpptrs dptcon + dpteqr dptrfs dptsv dptsvx dpttrs dptts2 drscl + dsbev dsbevd dsbevx dsbgst dsbgv dsbgvd dsbgvx + dsbtrd dspcon dspev dspevd dspevx dspgst + dspgv dspgvd dspgvx dsprfs dspsv dspsvx dsptrd + dsptrf dsptri dsptrs dstegr dstein dstev dstevd dstevr + dstevx + dsycon dsyev dsyevd dsyevr + dsyevx dsygs2 dsygst dsygv dsygvd dsygvx dsyrfs + dsysv dsysvx + dsytd2 dsytf2 dsytrd dsytrf dsytri dsytri2 dsytri2x + dsyswapr dsytrs dsytrs2 dsyconv + dtbcon dtbrfs dtbtrs dtgevc dtgex2 dtgexc dtgsen + dtgsja dtgsna dtgsy2 dtgsyl dtpcon dtprfs dtptri + dtptrs + dtrcon dtrevc dtrexc dtrrfs dtrsen dtrsna dtrsyl + dtrtrs dtzrzf dstemr + dsgesv dsposv dlag2s slag2d dlat2s + dlansf dpftrf dpftri dpftrs dsfrk dtfsm dtftri dtfttp + dtfttr dtpttf dtpttr dtrttf dtrttp + dgejsv dgesvj dgsvj0 dgsvj1 + dgeequb dsyequb dpoequb dgbequb + dbbcsd dlapmr dorbdb dorbdb1 dorbdb2 dorbdb3 dorbdb4 + dorbdb5 dorbdb6 dorcsd dorcsd2by1 + dgeqrt dgeqrt2 dgeqrt3 dgemqrt + dtpqrt dtpqrt2 dtpmqrt dtprfb +" + +# ZLASRC -- Double precision complex LAPACK routines +# already provided by b"asobjs: +# already provided by @lapackobjs: +# zgesv zgetrs zgetf2 zlaswp zlauu2 zlauum zpotf2 zpotrf zpotri +# ztrti2 ztrtri +lapackobjs2z=" + zbdsqr zgbbrd zgbcon zgbequ zgbrfs zgbsv zgbsvx + zgbtf2 zgbtrf zgbtrs zgebak zgebal zgebd2 zgebrd + zgecon zgeequ zgees zgeesx zgeev zgeevx + zgehd2 zgehrd zgelq2 zgelqf + zgels zgelsd zgelss zgelsy zgeql2 zgeqlf zgeqp3 + zgeqr2 zgeqr2p zgeqrf zgeqrfp zgerfs zgerq2 zgerqf + zgesc2 zgesdd zgesvd zgesvx zgetc2 + zgetri + zggbak zggbal zgges zggesx zggev zggevx zggglm + zgghrd zgglse zggqrf zggrqf + zgtcon zgtrfs zgtsv zgtsvx zgttrf zgttrs zgtts2 zhbev + zhbevd zhbevx zhbgst zhbgv zhbgvd zhbgvx zhbtrd + zhecon zheev zheevd zheevr zheevx zhegs2 zhegst + zhegv zhegvd zhegvx zherfs zhesv zhesvx zhetd2 + zhetf2 zhetrd + zhetrf zhetri zhetri2 zhetri2x zheswapr + zhetrs zhetrs2 zhgeqz zhpcon zhpev zhpevd + zhpevx zhpgst zhpgv zhpgvd zhpgvx zhprfs zhpsv + zhpsvx + zhptrd zhptrf zhptri zhptrs zhsein zhseqr zlabrd + zlacgv zlacon zlacn2 zlacp2 zlacpy zlacrm zlacrt zladiv + zlaed0 zlaed7 zlaed8 + zlaein zlaesy zlaev2 zlags2 zlagtm + zlahef zlahqr + zlahr2 zlaic1 zlals0 zlalsa zlalsd zlangb zlange + zlangt zlanhb + zlanhe + zlanhp zlanhs zlanht zlansb zlansp zlansy zlantb + zlantp zlantr zlapll zlapmt zlaqgb zlaqge + zlaqhb zlaqhe zlaqhp zlaqp2 zlaqps zlaqsb + zlaqr0 zlaqr1 zlaqr2 zlaqr3 zlaqr4 zlaqr5 + zlaqsp zlaqsy zlar1v zlar2v ilazlr ilazlc + zlarcm zlarf zlarfb + zlarfg zlarft zlarfgp + zlarfx zlargv zlarnv zlarrv zlartg zlartv + zlarz zlarzb zlarzt zlascl zlaset zlasr + zlassq zlasyf + zlatbs zlatdf zlatps zlatrd zlatrs zlatrz + zpbcon zpbequ zpbrfs zpbstf zpbsv + zpbsvx zpbtf2 zpbtrf zpbtrs zpocon zpoequ zporfs + zposv zposvx zpotrs zpstrf zpstf2 + zppcon zppequ zpprfs zppsv zppsvx zpptrf zpptri zpptrs + zptcon zpteqr zptrfs zptsv zptsvx zpttrf zpttrs zptts2 + zrot zspcon zspmv zspr zsprfs zspsv + zspsvx zsptrf zsptri zsptrs zdrscl zstedc + zstegr zstein zsteqr + zsycon + zsymv + zsyr zsyrfs zsysv zsysvx zsytf2 zsytrf zsytri zsytri2 zsytri2x + zsyswapr zsytrs zsytrs2 zsyconv + ztbcon ztbrfs ztbtrs ztgevc ztgex2 + ztgexc ztgsen ztgsja ztgsna ztgsy2 ztgsyl ztpcon + ztprfs ztptri + ztptrs ztrcon ztrevc ztrexc ztrrfs ztrsen ztrsna + ztrsyl ztrtrs ztzrzf zung2l + zung2r zungbr zunghr zungl2 zunglq zungql zungqr zungr2 + zungrq zungtr zunm2l zunm2r zunmbr zunmhr zunml2 + zunmlq zunmql zunmqr zunmr2 zunmr3 zunmrq zunmrz + zunmtr zupgtr + zupmtr izmax1 dzsum1 zstemr + zcgesv zcposv zlag2c clag2z zlat2c + zhfrk ztfttp zlanhf zpftrf zpftri zpftrs ztfsm ztftri + ztfttr ztpttf ztpttr ztrttf ztrttp + zgeequb zgbequb zsyequb zpoequb zheequb + zbbcsd zlapmr zunbdb zunbdb1 zunbdb2 zunbdb3 zunbdb4 + zunbdb5 zunbdb6 zuncsd zuncsd2by1 + zgeqrt zgeqrt2 zgeqrt3 zgemqrt + ztpqrt ztpqrt2 ztpmqrt ztprfb +" + +# functions added for lapack-3.6.0 + +lapackobjs2c="$lapackobjs2c + cgejsv + cgesvdx + cgesvj + cgetrf2 + cgges3 + cggev3 + cgghd3 + cggsvd3 + cggsvp3 + cgsvj0 + cgsvj1 + clagge + claghe + clagsy + clahilb + clakf2 + clarge + clarnd + claror + clarot + clatm1 + clatm2 + clatm3 + clatm5 + clatm6 + clatme + clatmr + clatms + clatmt + cpotrf2 + csbmv + cspr2 + csyr2 + cunm22 +" + +lapackobjs2d="$lapackobjs2d + dbdsvdx + dgesvdx + dgetrf2 + dgges3 + dggev3 + dgghd3 + dggsvd3 + dggsvp3 + dladiv2 + dlagge + dlagsy + dlahilb + dlakf2 + dlaran + dlarge + dlarnd + dlaror + dlarot + dlatm1 + dlatm2 + dlatm3 + dlatm5 + dlatm6 + dlatm7 + dlatme + dlatmr + dlatms + dlatmt + dorm22 + dpotrf2 + dsecnd +" + +lapackobjs2s="$lapackobjs2s + sbdsvdx + second + sgesvdx + sgetrf2 + sgges3 + sggev3 + sgghd3 + sggsvd3 + sggsvp3 + sladiv2 + slagge + slagsy + slahilb + slakf2 + slaran + slarge + slarnd + slaror + slarot + slatm1 + slatm2 + slatm3 + slatm5 + slatm6 + slatm7 + slatme + slatmr + slatms + slatmt + sorm22 + spotrf2 +" + +lapackobjs2z="$lapackobjs2z + zgejsv + zgesvdx + zgesvj + zgetrf2 + zgges3 + zggev3 + zgghd3 + zggsvd3 + zggsvp3 + zgsvj0 + zgsvj1 + zlagge + zlaghe + zlagsy + zlahilb + zlakf2 + zlarge + zlarnd + zlaror + zlarot + zlatm1 + zlatm2 + zlatm3 + zlatm5 + zlatm6 + zlatme + zlatmr + zlatms + zlatmt + zpotrf2 + zsbmv + zspr2 + zsyr2 + zunm22 +" + +# functions added for lapack-3.7.0 +lapackobjs2s="$lapackobjs2s + slarfy + strevc3 + sgelqt + sgelqt3 + sgemlqt + sgetsls + sgeqr + slatsqr + slamtsqr + sgemqr + sgelq + slaswlq + slamswlq + sgemlq + stplqt + stplqt2 + stpmlqt +" + +lapackobjs2d="$lapackobjs2d + dlarfy + dsyconvf + dtrevc3 + dgelqt + dgelqt3 + dgemlqt + dgetsls + dgeqr + dlatsqr + dlamtsqr + dgemqr + dgelq + dlaswlq + dlamswlq + dgemlq + dtplqt + dtplqt2 + dtpmlqt + " +lapackobjs2c="$lapackobjs2c + clarfy + csyconvf + ctrevc3 + cgelqt + cgelqt3 + cgemlqt + cgetsls + cgeqr + clatsqr + clamtsqr + cgemqr + cgelq + claswlq + clamswlq + cgemlq + ctplqt + ctplqt2 + ctpmlqt +" +lapackobjs2z="$lapackobjs2z + zlarfy + zsyconvf + ztrevc3 + ztplqt + ztplqt2 + ztpmlqt + zgelqt + zgelqt3 + zgemlqt + zgetsls + zgeqr + zlatsqr + zlamtsqr + zgemqr + zgelq + zlaswlq + zlamswlq + zgemlq +" + +lapackobjs2s="$lapackobjs2s +sladiv1" + +lapackobjs2d="$lapackobjs2d +dladiv1" + +lapackobjs="$lapackobjs +iparam2stage +ilaenv2stage +" + +# functions added for lapack-3.9.0 +lapackobjs2c="$lapackobjs2c + cgesvdq cungtsqr - ); -@lapackobjs2d = (@lapackobjs2d, - dcombssq, - dgesvdq, - dorgtsqr, - ); -@lapackobjs2s = (@lapackobjs2s, - scombssq, - sgesvdq, - sorgtsqr, - ); -@lapackobjs2z = (@lapackobjs2z, - zgesvdq, + " +lapackobjs2d="$lapackobjs2d + dcombssq + dgesvdq + dorgtsqr + " +lapackobjs2s="$lapackobjs2s + scombssq + sgesvdq + sorgtsqr + " +lapackobjs2z="$lapackobjs2z + zgesvdq zungtsqr -); +" -@lapack_extendedprecision_objs = ( - zposvxx, clagge, clatms, chesvxx, cposvxx, cgesvxx, ssyrfssx, csyrfsx, - dlagsy, dsysvxx, sporfsx, slatms, zlatms, zherfsx, csysvxx, -); +lapack_extendedprecision_objs=" + zposvxx clagge clatms chesvxx cposvxx cgesvxx ssyrfssx csyrfsx + dlagsy dsysvxx sporfsx slatms zlatms zherfsx csysvxx +" -@lapack_deprecated_objsc = ( - cgegs, cggsvd, - cgegv, cggsvp, - cgelsx, clahrd, - cgeqpf, clatzm, - ctzrqf, - ); -@lapack_deprecated_objsd = ( - dgegs, dgeqpf, - dgegv, dggsvd, - dgelsx, dggsvp, - dlahrd, - dlatzm, dtzrqf); - -@lapack_deprecated_objss = ( - sgelsx, - sgegs, - sgegv, - sgeqpf, - sggsvd, - sggsvp, - slahrd, - slatzm, +lapack_deprecated_objsc=" + cgegs cggsvd + cgegv cggsvp + cgelsx clahrd + cgeqpf clatzm + ctzrqf + " + +lapack_deprecated_objsd=" + dgegs dgeqpf + dgegv dggsvd + dgelsx dggsvp + dlahrd + dlatzm dtzrqf" + +lapack_deprecated_objss=" + sgelsx + sgegs + sgegv + sgeqpf + sggsvd + sggsvp + slahrd + slatzm stzrqf - ); + " -@lapack_deprecated_objsz = ( - zgegs, - zgegv, - zgelsx, - zgeqpf, - zggsvd, - zggsvp, - zlahrd, - zlatzm, +lapack_deprecated_objsz=" + zgegs + zgegv + zgelsx + zgeqpf + zggsvd + zggsvp + zlahrd + zlatzm ztzrqf - ); + " -@lapacke_deprecated_objsc = ( - LAPACKE_cggsvp, - LAPACKE_cggsvp_work, - LAPACKE_cggsvd, - LAPACKE_cggsvd_work, - LAPACKE_cgeqpf, - LAPACKE_cgeqpf_work, -); -@lapacke_deprecated_objsd = ( - LAPACKE_dggsvp, - LAPACKE_dggsvp_work, - LAPACKE_dggsvd, - LAPACKE_dggsvd_work, - LAPACKE_dgeqpf, - LAPACKE_dgeqpf_work, -); -@lapacke_deprecated_objss = ( - LAPACKE_sggsvp, - LAPACKE_sggsvp_work, - LAPACKE_sggsvd, - LAPACKE_sggsvd_work, - LAPACKE_sgeqpf, - LAPACKE_sgeqpf_work, -); -@lapacke_deprecated_objsz = ( - LAPACKE_zggsvp, - LAPACKE_zggsvp_work, - LAPACKE_zggsvd, - LAPACKE_zggsvd_work, - LAPACKE_zgeqpf, - LAPACKE_zgeqpf_work, -); +lapacke_deprecated_objsc=" + LAPACKE_cggsvp + LAPACKE_cggsvp_work + LAPACKE_cggsvd + LAPACKE_cggsvd_work + LAPACKE_cgeqpf + LAPACKE_cgeqpf_work +" +lapacke_deprecated_objsd=" + LAPACKE_dggsvp + LAPACKE_dggsvp_work + LAPACKE_dggsvd + LAPACKE_dggsvd_work + LAPACKE_dgeqpf + LAPACKE_dgeqpf_work +" -@lapackeobjs = ( - # LAPACK C interface routines. - # - # This list is prepared in a similar manner to @lapackobjs2, however the - # functions all begin with an uppercase prefix (with the exception of the - # make_complex_* routines). - # - # The functions corresponding to @(MATGEN_OBJ) and @(SRCX_OBJ) are not - # exported since the respective LAPACK routines are not built by default. +lapacke_deprecated_objss=" + LAPACKE_sggsvp + LAPACKE_sggsvp_work + LAPACKE_sggsvd + LAPACKE_sggsvd_work + LAPACKE_sgeqpf + LAPACKE_sgeqpf_work +" - # @(OBJ) from `lapack-3.4.1/lapacke/utils/Makefile` - LAPACKE_lsame, - LAPACKE_ilaver, - LAPACKE_xerbla, - lapack_make_complex_float, - lapack_make_complex_double, - LAPACKE_get_nancheck, - LAPACKE_set_nancheck, -); -@lapackeobjsc = ( - LAPACKE_cgb_nancheck, - LAPACKE_cgb_trans, - LAPACKE_cge_nancheck, - LAPACKE_cge_trans, - LAPACKE_cgg_nancheck, - LAPACKE_cgg_trans, - LAPACKE_cgt_nancheck, - LAPACKE_chb_nancheck, - LAPACKE_chb_trans, - LAPACKE_che_nancheck, - LAPACKE_che_trans, - LAPACKE_chp_nancheck, - LAPACKE_chp_trans, - LAPACKE_chs_nancheck, - LAPACKE_chs_trans, - LAPACKE_c_nancheck, - LAPACKE_cpb_nancheck, - LAPACKE_cpb_trans, - LAPACKE_cpf_nancheck, - LAPACKE_cpf_trans, - LAPACKE_cpo_nancheck, - LAPACKE_cpo_trans, - LAPACKE_cpp_nancheck, - LAPACKE_cpp_trans, - LAPACKE_cpt_nancheck, - LAPACKE_csp_nancheck, - LAPACKE_csp_trans, - LAPACKE_cst_nancheck, - LAPACKE_csy_nancheck, - LAPACKE_csy_trans, - LAPACKE_ctb_nancheck, - LAPACKE_ctb_trans, - LAPACKE_ctf_nancheck, - LAPACKE_ctf_trans, - LAPACKE_ctp_nancheck, - LAPACKE_ctp_trans, - LAPACKE_ctr_nancheck, - LAPACKE_ctr_trans, - LAPACKE_cbbcsd, - LAPACKE_cbbcsd_work, - LAPACKE_cbdsqr, - LAPACKE_cbdsqr_work, - LAPACKE_cgbbrd, - LAPACKE_cgbbrd_work, - LAPACKE_cgbcon, - LAPACKE_cgbcon_work, - LAPACKE_cgbequ, - LAPACKE_cgbequ_work, - LAPACKE_cgbequb, - LAPACKE_cgbequb_work, - LAPACKE_cgbrfs, - LAPACKE_cgbrfs_work, - LAPACKE_cgbsv, - LAPACKE_cgbsv_work, - LAPACKE_cgbsvx, - LAPACKE_cgbsvx_work, - LAPACKE_cgbtrf, - LAPACKE_cgbtrf_work, - LAPACKE_cgbtrs, - LAPACKE_cgbtrs_work, - LAPACKE_cgebak, - LAPACKE_cgebak_work, - LAPACKE_cgebal, - LAPACKE_cgebal_work, - LAPACKE_cgebrd, - LAPACKE_cgebrd_work, - LAPACKE_cgecon, - LAPACKE_cgecon_work, - LAPACKE_cgeequ, - LAPACKE_cgeequ_work, - LAPACKE_cgeequb, - LAPACKE_cgeequb_work, - LAPACKE_cgees, - LAPACKE_cgees_work, - LAPACKE_cgeesx, - LAPACKE_cgeesx_work, - LAPACKE_cgeev, - LAPACKE_cgeev_work, - LAPACKE_cgeevx, - LAPACKE_cgeevx_work, - LAPACKE_cgehrd, - LAPACKE_cgehrd_work, - LAPACKE_cgelq2, - LAPACKE_cgelq2_work, - LAPACKE_cgelqf, - LAPACKE_cgelqf_work, - LAPACKE_cgels, - LAPACKE_cgels_work, - LAPACKE_cgelsd, - LAPACKE_cgelsd_work, - LAPACKE_cgelss, - LAPACKE_cgelss_work, - LAPACKE_cgelsy, - LAPACKE_cgelsy_work, - LAPACKE_cgemqrt, - LAPACKE_cgemqrt_work, - LAPACKE_cgeqlf, - LAPACKE_cgeqlf_work, - LAPACKE_cgeqp3, - LAPACKE_cgeqp3_work, - LAPACKE_cgeqr2, - LAPACKE_cgeqr2_work, - LAPACKE_cgeqrf, - LAPACKE_cgeqrf_work, - LAPACKE_cgeqrfp, - LAPACKE_cgeqrfp_work, - LAPACKE_cgeqrt, - LAPACKE_cgeqrt2, - LAPACKE_cgeqrt2_work, - LAPACKE_cgeqrt3, - LAPACKE_cgeqrt3_work, - LAPACKE_cgeqrt_work, - LAPACKE_cgerfs, - LAPACKE_cgerfs_work, - LAPACKE_cgerqf, - LAPACKE_cgerqf_work, - LAPACKE_cgesdd, - LAPACKE_cgesdd_work, - LAPACKE_cgesv, - LAPACKE_cgesv_work, - LAPACKE_cgesvd, - LAPACKE_cgesvd_work, - LAPACKE_cgesvx, - LAPACKE_cgesvx_work, - LAPACKE_cgetf2, - LAPACKE_cgetf2_work, - LAPACKE_cgetrf, - LAPACKE_cgetrf_work, - LAPACKE_cgetri, - LAPACKE_cgetri_work, - LAPACKE_cgetrs, - LAPACKE_cgetrs_work, - LAPACKE_cggbak, - LAPACKE_cggbak_work, - LAPACKE_cggbal, - LAPACKE_cggbal_work, - LAPACKE_cgges, - LAPACKE_cgges_work, - LAPACKE_cggesx, - LAPACKE_cggesx_work, - LAPACKE_cggev, - LAPACKE_cggev_work, - LAPACKE_cggevx, - LAPACKE_cggevx_work, - LAPACKE_cggglm, - LAPACKE_cggglm_work, - LAPACKE_cgghrd, - LAPACKE_cgghrd_work, - LAPACKE_cgglse, - LAPACKE_cgglse_work, - LAPACKE_cggqrf, - LAPACKE_cggqrf_work, - LAPACKE_cggrqf, - LAPACKE_cggrqf_work, - LAPACKE_cgtcon, - LAPACKE_cgtcon_work, - LAPACKE_cgtrfs, - LAPACKE_cgtrfs_work, - LAPACKE_cgtsv, - LAPACKE_cgtsv_work, - LAPACKE_cgtsvx, - LAPACKE_cgtsvx_work, - LAPACKE_cgttrf, - LAPACKE_cgttrf_work, - LAPACKE_cgttrs, - LAPACKE_cgttrs_work, - LAPACKE_chbev, - LAPACKE_chbev_work, - LAPACKE_chbevd, - LAPACKE_chbevd_work, - LAPACKE_chbevx, - LAPACKE_chbevx_work, - LAPACKE_chbgst, - LAPACKE_chbgst_work, - LAPACKE_chbgv, - LAPACKE_chbgv_work, - LAPACKE_chbgvd, - LAPACKE_chbgvd_work, - LAPACKE_chbgvx, - LAPACKE_chbgvx_work, - LAPACKE_chbtrd, - LAPACKE_chbtrd_work, - LAPACKE_checon, - LAPACKE_checon_work, - LAPACKE_cheequb, - LAPACKE_cheequb_work, - LAPACKE_cheev, - LAPACKE_cheev_work, - LAPACKE_cheevd, - LAPACKE_cheevd_work, - LAPACKE_cheevr, - LAPACKE_cheevr_work, - LAPACKE_cheevx, - LAPACKE_cheevx_work, - LAPACKE_chegst, - LAPACKE_chegst_work, - LAPACKE_chegv, - LAPACKE_chegv_work, - LAPACKE_chegvd, - LAPACKE_chegvd_work, - LAPACKE_chegvx, - LAPACKE_chegvx_work, - LAPACKE_cherfs, - LAPACKE_cherfs_work, - LAPACKE_chesv, - LAPACKE_chesv_work, - LAPACKE_chesvx, - LAPACKE_chesvx_work, - LAPACKE_cheswapr, - LAPACKE_cheswapr_work, - LAPACKE_chetrd, - LAPACKE_chetrd_work, - LAPACKE_chetrf, - LAPACKE_chetrf_work, - LAPACKE_chetri, - LAPACKE_chetri2, - LAPACKE_chetri2_work, - LAPACKE_chetri2x, - LAPACKE_chetri2x_work, - LAPACKE_chetri_work, - LAPACKE_chetrs, - LAPACKE_chetrs2, - LAPACKE_chetrs2_work, - LAPACKE_chetrs_work, - LAPACKE_chfrk, - LAPACKE_chfrk_work, - LAPACKE_chgeqz, - LAPACKE_chgeqz_work, - LAPACKE_chpcon, - LAPACKE_chpcon_work, - LAPACKE_chpev, - LAPACKE_chpev_work, - LAPACKE_chpevd, - LAPACKE_chpevd_work, - LAPACKE_chpevx, - LAPACKE_chpevx_work, - LAPACKE_chpgst, - LAPACKE_chpgst_work, - LAPACKE_chpgv, - LAPACKE_chpgv_work, - LAPACKE_chpgvd, - LAPACKE_chpgvd_work, - LAPACKE_chpgvx, - LAPACKE_chpgvx_work, - LAPACKE_chprfs, - LAPACKE_chprfs_work, - LAPACKE_chpsv, - LAPACKE_chpsv_work, - LAPACKE_chpsvx, - LAPACKE_chpsvx_work, - LAPACKE_chptrd, - LAPACKE_chptrd_work, - LAPACKE_chptrf, - LAPACKE_chptrf_work, - LAPACKE_chptri, - LAPACKE_chptri_work, - LAPACKE_chptrs, - LAPACKE_chptrs_work, - LAPACKE_chsein, - LAPACKE_chsein_work, - LAPACKE_chseqr, - LAPACKE_chseqr_work, - LAPACKE_clacgv, - LAPACKE_clacgv_work, - LAPACKE_clacn2, - LAPACKE_clacn2_work, - LAPACKE_clacp2, - LAPACKE_clacp2_work, - LAPACKE_clacpy, - LAPACKE_clacpy_work, - LAPACKE_clag2z, - LAPACKE_clag2z_work, - LAPACKE_clange, - LAPACKE_clange_work, - LAPACKE_clanhe, - LAPACKE_clanhe_work, - LAPACKE_clansy, - LAPACKE_clansy_work, - LAPACKE_clantr, - LAPACKE_clantr_work, - LAPACKE_clapmr, - LAPACKE_clapmr_work, - LAPACKE_clarfb, - LAPACKE_clarfb_work, - LAPACKE_clarfg, - LAPACKE_clarfg_work, - LAPACKE_clarft, - LAPACKE_clarft_work, - LAPACKE_clarfx, - LAPACKE_clarfx_work, - LAPACKE_clarnv, - LAPACKE_clarnv_work, - LAPACKE_claset, - LAPACKE_claset_work, - LAPACKE_claswp, - LAPACKE_claswp_work, - LAPACKE_clauum, - LAPACKE_clauum_work, - LAPACKE_cpbcon, - LAPACKE_cpbcon_work, - LAPACKE_cpbequ, - LAPACKE_cpbequ_work, - LAPACKE_cpbrfs, - LAPACKE_cpbrfs_work, - LAPACKE_cpbstf, - LAPACKE_cpbstf_work, - LAPACKE_cpbsv, - LAPACKE_cpbsv_work, - LAPACKE_cpbsvx, - LAPACKE_cpbsvx_work, - LAPACKE_cpbtrf, - LAPACKE_cpbtrf_work, - LAPACKE_cpbtrs, - LAPACKE_cpbtrs_work, - LAPACKE_cpftrf, - LAPACKE_cpftrf_work, - LAPACKE_cpftri, - LAPACKE_cpftri_work, - LAPACKE_cpftrs, - LAPACKE_cpftrs_work, - LAPACKE_cpocon, - LAPACKE_cpocon_work, - LAPACKE_cpoequ, - LAPACKE_cpoequ_work, - LAPACKE_cpoequb, - LAPACKE_cpoequb_work, - LAPACKE_cporfs, - LAPACKE_cporfs_work, - LAPACKE_cposv, - LAPACKE_cposv_work, - LAPACKE_cposvx, - LAPACKE_cposvx_work, - LAPACKE_cpotrf, - LAPACKE_cpotrf_work, - LAPACKE_cpotri, - LAPACKE_cpotri_work, - LAPACKE_cpotrs, - LAPACKE_cpotrs_work, - LAPACKE_cppcon, - LAPACKE_cppcon_work, - LAPACKE_cppequ, - LAPACKE_cppequ_work, - LAPACKE_cpprfs, - LAPACKE_cpprfs_work, - LAPACKE_cppsv, - LAPACKE_cppsv_work, - LAPACKE_cppsvx, - LAPACKE_cppsvx_work, - LAPACKE_cpptrf, - LAPACKE_cpptrf_work, - LAPACKE_cpptri, - LAPACKE_cpptri_work, - LAPACKE_cpptrs, - LAPACKE_cpptrs_work, - LAPACKE_cpstrf, - LAPACKE_cpstrf_work, - LAPACKE_cptcon, - LAPACKE_cptcon_work, - LAPACKE_cpteqr, - LAPACKE_cpteqr_work, - LAPACKE_cptrfs, - LAPACKE_cptrfs_work, - LAPACKE_cptsv, - LAPACKE_cptsv_work, - LAPACKE_cptsvx, - LAPACKE_cptsvx_work, - LAPACKE_cpttrf, - LAPACKE_cpttrf_work, - LAPACKE_cpttrs, - LAPACKE_cpttrs_work, - LAPACKE_cspcon, - LAPACKE_cspcon_work, - LAPACKE_csprfs, - LAPACKE_csprfs_work, - LAPACKE_cspsv, - LAPACKE_cspsv_work, - LAPACKE_cspsvx, - LAPACKE_cspsvx_work, - LAPACKE_csptrf, - LAPACKE_csptrf_work, - LAPACKE_csptri, - LAPACKE_csptri_work, - LAPACKE_csptrs, - LAPACKE_csptrs_work, - LAPACKE_cstedc, - LAPACKE_cstedc_work, - LAPACKE_cstegr, - LAPACKE_cstegr_work, - LAPACKE_cstein, - LAPACKE_cstein_work, - LAPACKE_cstemr, - LAPACKE_cstemr_work, - LAPACKE_csteqr, - LAPACKE_csteqr_work, - LAPACKE_csycon, - LAPACKE_csycon_work, - LAPACKE_csyconv, - LAPACKE_csyconv_work, - LAPACKE_csyequb, - LAPACKE_csyequb_work, - LAPACKE_csyrfs, - LAPACKE_csyrfs_work, - LAPACKE_csysv, - LAPACKE_csysv_rook, - LAPACKE_csysv_rook_work, - LAPACKE_csysv_work, - LAPACKE_csysvx, - LAPACKE_csysvx_work, - LAPACKE_csyswapr, - LAPACKE_csyswapr_work, - LAPACKE_csytrf, - LAPACKE_csytrf_work, - LAPACKE_csytri, - LAPACKE_csytri2, - LAPACKE_csytri2_work, - LAPACKE_csytri2x, - LAPACKE_csytri2x_work, - LAPACKE_csytri_work, - LAPACKE_csytrs, - LAPACKE_csytrs2, - LAPACKE_csytrs2_work, - LAPACKE_csytrs_work, - LAPACKE_ctbcon, - LAPACKE_ctbcon_work, - LAPACKE_ctbrfs, - LAPACKE_ctbrfs_work, - LAPACKE_ctbtrs, - LAPACKE_ctbtrs_work, - LAPACKE_ctfsm, - LAPACKE_ctfsm_work, - LAPACKE_ctftri, - LAPACKE_ctftri_work, - LAPACKE_ctfttp, - LAPACKE_ctfttp_work, - LAPACKE_ctfttr, - LAPACKE_ctfttr_work, - LAPACKE_ctgevc, - LAPACKE_ctgevc_work, - LAPACKE_ctgexc, - LAPACKE_ctgexc_work, - LAPACKE_ctgsen, - LAPACKE_ctgsen_work, - LAPACKE_ctgsja, - LAPACKE_ctgsja_work, - LAPACKE_ctgsna, - LAPACKE_ctgsna_work, - LAPACKE_ctgsyl, - LAPACKE_ctgsyl_work, - LAPACKE_ctpcon, - LAPACKE_ctpcon_work, - LAPACKE_ctpmqrt, - LAPACKE_ctpmqrt_work, - LAPACKE_ctpqrt, - LAPACKE_ctpqrt2, - LAPACKE_ctpqrt2_work, - LAPACKE_ctpqrt_work, - LAPACKE_ctprfb, - LAPACKE_ctprfb_work, - LAPACKE_ctprfs, - LAPACKE_ctprfs_work, - LAPACKE_ctptri, - LAPACKE_ctptri_work, - LAPACKE_ctptrs, - LAPACKE_ctptrs_work, - LAPACKE_ctpttf, - LAPACKE_ctpttf_work, - LAPACKE_ctpttr, - LAPACKE_ctpttr_work, - LAPACKE_ctrcon, - LAPACKE_ctrcon_work, - LAPACKE_ctrevc, - LAPACKE_ctrevc_work, - LAPACKE_ctrexc, - LAPACKE_ctrexc_work, - LAPACKE_ctrrfs, - LAPACKE_ctrrfs_work, - LAPACKE_ctrsen, - LAPACKE_ctrsen_work, - LAPACKE_ctrsna, - LAPACKE_ctrsna_work, - LAPACKE_ctrsyl, - LAPACKE_ctrsyl_work, - LAPACKE_ctrtri, - LAPACKE_ctrtri_work, - LAPACKE_ctrtrs, - LAPACKE_ctrtrs_work, - LAPACKE_ctrttf, - LAPACKE_ctrttf_work, - LAPACKE_ctrttp, - LAPACKE_ctrttp_work, - LAPACKE_ctzrzf, - LAPACKE_ctzrzf_work, - LAPACKE_cunbdb, - LAPACKE_cunbdb_work, - LAPACKE_cuncsd, - LAPACKE_cuncsd_work, - LAPACKE_cungbr, - LAPACKE_cungbr_work, - LAPACKE_cunghr, - LAPACKE_cunghr_work, - LAPACKE_cunglq, - LAPACKE_cunglq_work, - LAPACKE_cungql, - LAPACKE_cungql_work, - LAPACKE_cungqr, - LAPACKE_cungqr_work, - LAPACKE_cungrq, - LAPACKE_cungrq_work, - LAPACKE_cungtr, - LAPACKE_cungtr_work, - LAPACKE_cunmbr, - LAPACKE_cunmbr_work, - LAPACKE_cunmhr, - LAPACKE_cunmhr_work, - LAPACKE_cunmlq, - LAPACKE_cunmlq_work, - LAPACKE_cunmql, - LAPACKE_cunmql_work, - LAPACKE_cunmqr, - LAPACKE_cunmqr_work, - LAPACKE_cunmrq, - LAPACKE_cunmrq_work, - LAPACKE_cunmrz, - LAPACKE_cunmrz_work, - LAPACKE_cunmtr, - LAPACKE_cunmtr_work, - LAPACKE_cupgtr, - LAPACKE_cupgtr_work, - LAPACKE_cupmtr, - LAPACKE_cupmtr_work, - LAPACKE_csyr, - LAPACKE_csyr_work, - LAPACKE_clatms, - LAPACKE_clatms_work, - LAPACKE_clagge, - LAPACKE_clagge_work, - LAPACKE_claghe, - LAPACKE_claghe_work, - LAPACKE_clagsy, - LAPACKE_clagsy_work, - LAPACKE_cgejsv, - LAPACKE_cgejsv_work, - LAPACKE_cgesvdx, - LAPACKE_cgesvdx_work, - LAPACKE_cgesvj, - LAPACKE_cgesvj_work, - LAPACKE_cgetrf2, - LAPACKE_cgetrf2_work, - LAPACKE_cgges3, - LAPACKE_cgges3_work, - LAPACKE_cggev3, - LAPACKE_cggev3_work, - LAPACKE_cgghd3, - LAPACKE_cgghd3_work, - LAPACKE_cggsvd3, - LAPACKE_cggsvd3_work, - LAPACKE_cggsvp3, - LAPACKE_cggsvp3_work, - LAPACKE_chetrf_rook, - LAPACKE_chetrf_rook_work, - LAPACKE_chetrs_rook, - LAPACKE_chetrs_rook_work, - LAPACKE_clapmt, - LAPACKE_clapmt_work, - LAPACKE_clascl, - LAPACKE_clascl_work, - LAPACKE_cpotrf2, - LAPACKE_cpotrf2_work, - LAPACKE_csytrf_rook, - LAPACKE_csytrf_rook_work, - LAPACKE_csytrs_rook, - LAPACKE_csytrs_rook_work, - LAPACKE_cuncsd2by1, - LAPACKE_cuncsd2by1_work, - LAPACKE_cgelq, - LAPACKE_cgelq_work, - LAPACKE_cgemlq, - LAPACKE_cgemlq_work, - LAPACKE_cgemqr, - LAPACKE_cgemqr_work, - LAPACKE_cgeqr, - LAPACKE_cgeqr_work, - LAPACKE_cgetsls, - LAPACKE_cgetsls_work, - LAPACKE_chbev_2stage, - LAPACKE_chbev_2stage_work, - LAPACKE_chbevd_2stage, - LAPACKE_chbevd_2stage_work, - LAPACKE_chbevx_2stage, - LAPACKE_chbevx_2stage_work, - LAPACKE_checon_3, - LAPACKE_checon_3_work, - LAPACKE_cheev_2stage, - LAPACKE_cheev_2stage_work, - LAPACKE_cheevd_2stage, - LAPACKE_cheevd_2stage_work, - LAPACKE_cheevr_2stage, - LAPACKE_cheevr_2stage_work, - LAPACKE_cheevx_2stage, - LAPACKE_cheevx_2stage_work, - LAPACKE_chegv_2stage, - LAPACKE_chegv_2stage_work, - LAPACKE_chesv_aa, - LAPACKE_chesv_aa_work, - LAPACKE_chesv_rk, - LAPACKE_chesv_rk_work, - LAPACKE_chetrf_aa, - LAPACKE_chetrf_aa_work, - LAPACKE_chetrf_rk, - LAPACKE_chetrf_rk_work, - LAPACKE_chetri_3, - LAPACKE_chetri_3_work, - LAPACKE_chetrs_aa, - LAPACKE_chetrs_aa_work, - LAPACKE_chetrs_3, - LAPACKE_chetrs_3_work, - LAPACKE_csycon_3, - LAPACKE_csycon_3_work, - LAPACKE_csysv_aa, - LAPACKE_csysv_aa_work, - LAPACKE_csysv_rk, - LAPACKE_csysv_rk_work, - LAPACKE_csytrf_aa, - LAPACKE_csytrf_aa_work, - LAPACKE_csytrf_rk, - LAPACKE_csytrf_rk_work, - LAPACKE_csytri_3, - LAPACKE_csytri_3_work, - LAPACKE_csytrs_aa, - LAPACKE_csytrs_aa_work, - LAPACKE_csytrs_3, - LAPACKE_csytrs_3_work, - LAPACKE_chesv_aa_2stage, - LAPACKE_chesv_aa_2stage_work, - LAPACKE_chetrf_aa_2stage, - LAPACKE_chetrf_aa_2stage_work, - LAPACKE_chetrs_aa_2stage, - LAPACKE_chetrs_aa_2stage_work, - LAPACKE_clacrm, - LAPACKE_clacrm_work, - LAPACKE_clarcm, - LAPACKE_clarcm_work, - LAPACKE_classq, - LAPACKE_classq_work, - LAPACKE_csysv_aa_2stage, - LAPACKE_csysv_aa_2stage_work, - LAPACKE_csytrf_aa_2stage, - LAPACKE_csytrf_aa_2stage_work, - LAPACKE_csytrs_aa_2stage, - LAPACKE_csytrs_aa_2stage_work, -); -@lapackeobjsd = ( - LAPACKE_dgb_nancheck, - LAPACKE_dgb_trans, - LAPACKE_dge_nancheck, - LAPACKE_dge_trans, - LAPACKE_dgg_nancheck, - LAPACKE_dgg_trans, - LAPACKE_dgt_nancheck, - LAPACKE_dhs_nancheck, - LAPACKE_dhs_trans, - LAPACKE_d_nancheck, - LAPACKE_dpb_nancheck, - LAPACKE_dpb_trans, - LAPACKE_dpf_nancheck, - LAPACKE_dpf_trans, - LAPACKE_dpo_nancheck, - LAPACKE_dpo_trans, - LAPACKE_dpp_nancheck, - LAPACKE_dpp_trans, - LAPACKE_dpt_nancheck, - LAPACKE_dsb_nancheck, - LAPACKE_dsb_trans, - LAPACKE_dsp_nancheck, - LAPACKE_dsp_trans, - LAPACKE_dst_nancheck, - LAPACKE_dsy_nancheck, - LAPACKE_dsy_trans, - LAPACKE_dtb_nancheck, - LAPACKE_dtb_trans, - LAPACKE_dtf_nancheck, - LAPACKE_dtf_trans, - LAPACKE_dtp_nancheck, - LAPACKE_dtp_trans, - LAPACKE_dtr_nancheck, - LAPACKE_dtr_trans, - LAPACKE_dbbcsd, - LAPACKE_dbbcsd_work, - LAPACKE_dbdsdc, - LAPACKE_dbdsdc_work, - LAPACKE_dbdsqr, - LAPACKE_dbdsqr_work, - LAPACKE_ddisna, - LAPACKE_ddisna_work, - LAPACKE_dgbbrd, - LAPACKE_dgbbrd_work, - LAPACKE_dgbcon, - LAPACKE_dgbcon_work, - LAPACKE_dgbequ, - LAPACKE_dgbequ_work, - LAPACKE_dgbequb, - LAPACKE_dgbequb_work, - LAPACKE_dgbrfs, - LAPACKE_dgbrfs_work, - LAPACKE_dgbsv, - LAPACKE_dgbsv_work, - LAPACKE_dgbsvx, - LAPACKE_dgbsvx_work, - LAPACKE_dgbtrf, - LAPACKE_dgbtrf_work, - LAPACKE_dgbtrs, - LAPACKE_dgbtrs_work, - LAPACKE_dgebak, - LAPACKE_dgebak_work, - LAPACKE_dgebal, - LAPACKE_dgebal_work, - LAPACKE_dgebrd, - LAPACKE_dgebrd_work, - LAPACKE_dgecon, - LAPACKE_dgecon_work, - LAPACKE_dgeequ, - LAPACKE_dgeequ_work, - LAPACKE_dgeequb, - LAPACKE_dgeequb_work, - LAPACKE_dgees, - LAPACKE_dgees_work, - LAPACKE_dgeesx, - LAPACKE_dgeesx_work, - LAPACKE_dgeev, - LAPACKE_dgeev_work, - LAPACKE_dgeevx, - LAPACKE_dgeevx_work, - LAPACKE_dgehrd, - LAPACKE_dgehrd_work, - LAPACKE_dgejsv, - LAPACKE_dgejsv_work, - LAPACKE_dgelq2, - LAPACKE_dgelq2_work, - LAPACKE_dgelqf, - LAPACKE_dgelqf_work, - LAPACKE_dgels, - LAPACKE_dgels_work, - LAPACKE_dgelsd, - LAPACKE_dgelsd_work, - LAPACKE_dgelss, - LAPACKE_dgelss_work, - LAPACKE_dgelsy, - LAPACKE_dgelsy_work, - LAPACKE_dgemqrt, - LAPACKE_dgemqrt_work, - LAPACKE_dgeqlf, - LAPACKE_dgeqlf_work, - LAPACKE_dgeqp3, - LAPACKE_dgeqp3_work, - LAPACKE_dgeqr2, - LAPACKE_dgeqr2_work, - LAPACKE_dgeqrf, - LAPACKE_dgeqrf_work, - LAPACKE_dgeqrfp, - LAPACKE_dgeqrfp_work, - LAPACKE_dgeqrt, - LAPACKE_dgeqrt2, - LAPACKE_dgeqrt2_work, - LAPACKE_dgeqrt3, - LAPACKE_dgeqrt3_work, - LAPACKE_dgeqrt_work, - LAPACKE_dgerfs, - LAPACKE_dgerfs_work, - LAPACKE_dgerqf, - LAPACKE_dgerqf_work, - LAPACKE_dgesdd, - LAPACKE_dgesdd_work, - LAPACKE_dgesv, - LAPACKE_dgesv_work, - LAPACKE_dgesvd, - LAPACKE_dgesvd_work, - LAPACKE_dgesvj, - LAPACKE_dgesvj_work, - LAPACKE_dgesvx, - LAPACKE_dgesvx_work, - LAPACKE_dgetf2, - LAPACKE_dgetf2_work, - LAPACKE_dgetrf, - LAPACKE_dgetrf_work, - LAPACKE_dgetri, - LAPACKE_dgetri_work, - LAPACKE_dgetrs, - LAPACKE_dgetrs_work, - LAPACKE_dggbak, - LAPACKE_dggbak_work, - LAPACKE_dggbal, - LAPACKE_dggbal_work, - LAPACKE_dgges, - LAPACKE_dgges_work, - LAPACKE_dggesx, - LAPACKE_dggesx_work, - LAPACKE_dggev, - LAPACKE_dggev_work, - LAPACKE_dggevx, - LAPACKE_dggevx_work, - LAPACKE_dggglm, - LAPACKE_dggglm_work, - LAPACKE_dgghrd, - LAPACKE_dgghrd_work, - LAPACKE_dgglse, - LAPACKE_dgglse_work, - LAPACKE_dggqrf, - LAPACKE_dggqrf_work, - LAPACKE_dggrqf, - LAPACKE_dggrqf_work, - LAPACKE_dgtcon, - LAPACKE_dgtcon_work, - LAPACKE_dgtrfs, - LAPACKE_dgtrfs_work, - LAPACKE_dgtsv, - LAPACKE_dgtsv_work, - LAPACKE_dgtsvx, - LAPACKE_dgtsvx_work, - LAPACKE_dgttrf, - LAPACKE_dgttrf_work, - LAPACKE_dgttrs, - LAPACKE_dgttrs_work, - LAPACKE_dhgeqz, - LAPACKE_dhgeqz_work, - LAPACKE_dhsein, - LAPACKE_dhsein_work, - LAPACKE_dhseqr, - LAPACKE_dhseqr_work, - LAPACKE_dlacn2, - LAPACKE_dlacn2_work, - LAPACKE_dlacpy, - LAPACKE_dlacpy_work, - LAPACKE_dlag2s, - LAPACKE_dlag2s_work, - LAPACKE_dlamch, - LAPACKE_dlamch_work, - LAPACKE_dlange, - LAPACKE_dlange_work, - LAPACKE_dlansy, - LAPACKE_dlansy_work, - LAPACKE_dlantr, - LAPACKE_dlantr_work, - LAPACKE_dlapmr, - LAPACKE_dlapmr_work, - LAPACKE_dlapy2, - LAPACKE_dlapy2_work, - LAPACKE_dlapy3, - LAPACKE_dlapy3_work, - LAPACKE_dlarfb, - LAPACKE_dlarfb_work, - LAPACKE_dlarfg, - LAPACKE_dlarfg_work, - LAPACKE_dlarft, - LAPACKE_dlarft_work, - LAPACKE_dlarfx, - LAPACKE_dlarfx_work, - LAPACKE_dlarnv, - LAPACKE_dlarnv_work, - LAPACKE_dlartgp, - LAPACKE_dlartgp_work, - LAPACKE_dlartgs, - LAPACKE_dlartgs_work, - LAPACKE_dlaset, - LAPACKE_dlaset_work, - LAPACKE_dlasrt, - LAPACKE_dlasrt_work, - LAPACKE_dlaswp, - LAPACKE_dlaswp_work, - LAPACKE_dlauum, - LAPACKE_dlauum_work, - LAPACKE_dopgtr, - LAPACKE_dopgtr_work, - LAPACKE_dopmtr, - LAPACKE_dopmtr_work, - LAPACKE_dorbdb, - LAPACKE_dorbdb_work, - LAPACKE_dorcsd, - LAPACKE_dorcsd_work, - LAPACKE_dorgbr, - LAPACKE_dorgbr_work, - LAPACKE_dorghr, - LAPACKE_dorghr_work, - LAPACKE_dorglq, - LAPACKE_dorglq_work, - LAPACKE_dorgql, - LAPACKE_dorgql_work, - LAPACKE_dorgqr, - LAPACKE_dorgqr_work, - LAPACKE_dorgrq, - LAPACKE_dorgrq_work, - LAPACKE_dorgtr, - LAPACKE_dorgtr_work, - LAPACKE_dormbr, - LAPACKE_dormbr_work, - LAPACKE_dormhr, - LAPACKE_dormhr_work, - LAPACKE_dormlq, - LAPACKE_dormlq_work, - LAPACKE_dormql, - LAPACKE_dormql_work, - LAPACKE_dormqr, - LAPACKE_dormqr_work, - LAPACKE_dormrq, - LAPACKE_dormrq_work, - LAPACKE_dormrz, - LAPACKE_dormrz_work, - LAPACKE_dormtr, - LAPACKE_dormtr_work, - LAPACKE_dpbcon, - LAPACKE_dpbcon_work, - LAPACKE_dpbequ, - LAPACKE_dpbequ_work, - LAPACKE_dpbrfs, - LAPACKE_dpbrfs_work, - LAPACKE_dpbstf, - LAPACKE_dpbstf_work, - LAPACKE_dpbsv, - LAPACKE_dpbsv_work, - LAPACKE_dpbsvx, - LAPACKE_dpbsvx_work, - LAPACKE_dpbtrf, - LAPACKE_dpbtrf_work, - LAPACKE_dpbtrs, - LAPACKE_dpbtrs_work, - LAPACKE_dpftrf, - LAPACKE_dpftrf_work, - LAPACKE_dpftri, - LAPACKE_dpftri_work, - LAPACKE_dpftrs, - LAPACKE_dpftrs_work, - LAPACKE_dpocon, - LAPACKE_dpocon_work, - LAPACKE_dpoequ, - LAPACKE_dpoequ_work, - LAPACKE_dpoequb, - LAPACKE_dpoequb_work, - LAPACKE_dporfs, - LAPACKE_dporfs_work, - LAPACKE_dposv, - LAPACKE_dposv_work, - LAPACKE_dposvx, - LAPACKE_dposvx_work, - LAPACKE_dpotrf, - LAPACKE_dpotrf_work, - LAPACKE_dpotri, - LAPACKE_dpotri_work, - LAPACKE_dpotrs, - LAPACKE_dpotrs_work, - LAPACKE_dppcon, - LAPACKE_dppcon_work, - LAPACKE_dppequ, - LAPACKE_dppequ_work, - LAPACKE_dpprfs, - LAPACKE_dpprfs_work, - LAPACKE_dppsv, - LAPACKE_dppsv_work, - LAPACKE_dppsvx, - LAPACKE_dppsvx_work, - LAPACKE_dpptrf, - LAPACKE_dpptrf_work, - LAPACKE_dpptri, - LAPACKE_dpptri_work, - LAPACKE_dpptrs, - LAPACKE_dpptrs_work, - LAPACKE_dpstrf, - LAPACKE_dpstrf_work, - LAPACKE_dptcon, - LAPACKE_dptcon_work, - LAPACKE_dpteqr, - LAPACKE_dpteqr_work, - LAPACKE_dptrfs, - LAPACKE_dptrfs_work, - LAPACKE_dptsv, - LAPACKE_dptsv_work, - LAPACKE_dptsvx, - LAPACKE_dptsvx_work, - LAPACKE_dpttrf, - LAPACKE_dpttrf_work, - LAPACKE_dpttrs, - LAPACKE_dpttrs_work, - LAPACKE_dsbev, - LAPACKE_dsbev_work, - LAPACKE_dsbevd, - LAPACKE_dsbevd_work, - LAPACKE_dsbevx, - LAPACKE_dsbevx_work, - LAPACKE_dsbgst, - LAPACKE_dsbgst_work, - LAPACKE_dsbgv, - LAPACKE_dsbgv_work, - LAPACKE_dsbgvd, - LAPACKE_dsbgvd_work, - LAPACKE_dsbgvx, - LAPACKE_dsbgvx_work, - LAPACKE_dsbtrd, - LAPACKE_dsbtrd_work, - LAPACKE_dsfrk, - LAPACKE_dsfrk_work, - LAPACKE_dsgesv, - LAPACKE_dsgesv_work, - LAPACKE_dspcon, - LAPACKE_dspcon_work, - LAPACKE_dspev, - LAPACKE_dspev_work, - LAPACKE_dspevd, - LAPACKE_dspevd_work, - LAPACKE_dspevx, - LAPACKE_dspevx_work, - LAPACKE_dspgst, - LAPACKE_dspgst_work, - LAPACKE_dspgv, - LAPACKE_dspgv_work, - LAPACKE_dspgvd, - LAPACKE_dspgvd_work, - LAPACKE_dspgvx, - LAPACKE_dspgvx_work, - LAPACKE_dsposv, - LAPACKE_dsposv_work, - LAPACKE_dsprfs, - LAPACKE_dsprfs_work, - LAPACKE_dspsv, - LAPACKE_dspsv_work, - LAPACKE_dspsvx, - LAPACKE_dspsvx_work, - LAPACKE_dsptrd, - LAPACKE_dsptrd_work, - LAPACKE_dsptrf, - LAPACKE_dsptrf_work, - LAPACKE_dsptri, - LAPACKE_dsptri_work, - LAPACKE_dsptrs, - LAPACKE_dsptrs_work, - LAPACKE_dstebz, - LAPACKE_dstebz_work, - LAPACKE_dstedc, - LAPACKE_dstedc_work, - LAPACKE_dstegr, - LAPACKE_dstegr_work, - LAPACKE_dstein, - LAPACKE_dstein_work, - LAPACKE_dstemr, - LAPACKE_dstemr_work, - LAPACKE_dsteqr, - LAPACKE_dsteqr_work, - LAPACKE_dsterf, - LAPACKE_dsterf_work, - LAPACKE_dstev, - LAPACKE_dstev_work, - LAPACKE_dstevd, - LAPACKE_dstevd_work, - LAPACKE_dstevr, - LAPACKE_dstevr_work, - LAPACKE_dstevx, - LAPACKE_dstevx_work, - LAPACKE_dsycon, - LAPACKE_dsycon_work, - LAPACKE_dsyconv, - LAPACKE_dsyconv_work, - LAPACKE_dsyequb, - LAPACKE_dsyequb_work, - LAPACKE_dsyev, - LAPACKE_dsyev_work, - LAPACKE_dsyevd, - LAPACKE_dsyevd_work, - LAPACKE_dsyevr, - LAPACKE_dsyevr_work, - LAPACKE_dsyevx, - LAPACKE_dsyevx_work, - LAPACKE_dsygst, - LAPACKE_dsygst_work, - LAPACKE_dsygv, - LAPACKE_dsygv_work, - LAPACKE_dsygvd, - LAPACKE_dsygvd_work, - LAPACKE_dsygvx, - LAPACKE_dsygvx_work, - LAPACKE_dsyrfs, - LAPACKE_dsyrfs_work, - LAPACKE_dsysv, - LAPACKE_dsysv_rook, - LAPACKE_dsysv_rook_work, - LAPACKE_dsysv_work, - LAPACKE_dsysvx, - LAPACKE_dsysvx_work, - LAPACKE_dsyswapr, - LAPACKE_dsyswapr_work, - LAPACKE_dsytrd, - LAPACKE_dsytrd_work, - LAPACKE_dsytrf, - LAPACKE_dsytrf_work, - LAPACKE_dsytri, - LAPACKE_dsytri2, - LAPACKE_dsytri2_work, - LAPACKE_dsytri2x, - LAPACKE_dsytri2x_work, - LAPACKE_dsytri_work, - LAPACKE_dsytrs, - LAPACKE_dsytrs2, - LAPACKE_dsytrs2_work, - LAPACKE_dsytrs_work, - LAPACKE_dtbcon, - LAPACKE_dtbcon_work, - LAPACKE_dtbrfs, - LAPACKE_dtbrfs_work, - LAPACKE_dtbtrs, - LAPACKE_dtbtrs_work, - LAPACKE_dtfsm, - LAPACKE_dtfsm_work, - LAPACKE_dtftri, - LAPACKE_dtftri_work, - LAPACKE_dtfttp, - LAPACKE_dtfttp_work, - LAPACKE_dtfttr, - LAPACKE_dtfttr_work, - LAPACKE_dtgevc, - LAPACKE_dtgevc_work, - LAPACKE_dtgexc, - LAPACKE_dtgexc_work, - LAPACKE_dtgsen, - LAPACKE_dtgsen_work, - LAPACKE_dtgsja, - LAPACKE_dtgsja_work, - LAPACKE_dtgsna, - LAPACKE_dtgsna_work, - LAPACKE_dtgsyl, - LAPACKE_dtgsyl_work, - LAPACKE_dtpcon, - LAPACKE_dtpcon_work, - LAPACKE_dtpmqrt, - LAPACKE_dtpmqrt_work, - LAPACKE_dtpqrt, - LAPACKE_dtpqrt2, - LAPACKE_dtpqrt2_work, - LAPACKE_dtpqrt_work, - LAPACKE_dtprfb, - LAPACKE_dtprfb_work, - LAPACKE_dtprfs, - LAPACKE_dtprfs_work, - LAPACKE_dtptri, - LAPACKE_dtptri_work, - LAPACKE_dtptrs, - LAPACKE_dtptrs_work, - LAPACKE_dtpttf, - LAPACKE_dtpttf_work, - LAPACKE_dtpttr, - LAPACKE_dtpttr_work, - LAPACKE_dtrcon, - LAPACKE_dtrcon_work, - LAPACKE_dtrevc, - LAPACKE_dtrevc_work, - LAPACKE_dtrexc, - LAPACKE_dtrexc_work, - LAPACKE_dtrrfs, - LAPACKE_dtrrfs_work, - LAPACKE_dtrsen, - LAPACKE_dtrsen_work, - LAPACKE_dtrsna, - LAPACKE_dtrsna_work, - LAPACKE_dtrsyl, - LAPACKE_dtrsyl_work, - LAPACKE_dtrtri, - LAPACKE_dtrtri_work, - LAPACKE_dtrtrs, - LAPACKE_dtrtrs_work, - LAPACKE_dtrttf, - LAPACKE_dtrttf_work, - LAPACKE_dtrttp, - LAPACKE_dtrttp_work, - LAPACKE_dtzrzf, - LAPACKE_dtzrzf_work, - LAPACKE_dlatms, - LAPACKE_dlatms_work, - LAPACKE_dlagge, - LAPACKE_dlagge_work, - LAPACKE_dlagsy, - LAPACKE_dlagsy_work, - LAPACKE_dbdsvdx, - LAPACKE_dbdsvdx_work, - LAPACKE_dgesvdx, - LAPACKE_dgesvdx_work, - LAPACKE_dgetrf2, - LAPACKE_dgetrf2_work, - LAPACKE_dgges3, - LAPACKE_dgges3_work, - LAPACKE_dggev3, - LAPACKE_dggev3_work, - LAPACKE_dgghd3, - LAPACKE_dgghd3_work, - LAPACKE_dggsvd3, - LAPACKE_dggsvd3_work, - LAPACKE_dggsvp3, - LAPACKE_dggsvp3_work, - LAPACKE_dlapmt, - LAPACKE_dlapmt_work, - LAPACKE_dlascl, - LAPACKE_dlascl_work, - LAPACKE_dorcsd2by1, - LAPACKE_dorcsd2by1_work, - LAPACKE_dpotrf2, - LAPACKE_dpotrf2_work, - LAPACKE_dsytrf_rook, - LAPACKE_dsytrf_rook_work, - LAPACKE_dsytrs_rook, - LAPACKE_dsytrs_rook_work, - LAPACKE_dgelq, - LAPACKE_dgelq_work, - LAPACKE_dgemlq, - LAPACKE_dgemlq_work, - LAPACKE_dgemqr, - LAPACKE_dgemqr_work, - LAPACKE_dgeqr, - LAPACKE_dgeqr_work, - LAPACKE_dgetsls, - LAPACKE_dgetsls_work, - LAPACKE_dsbev_2stage, - LAPACKE_dsbev_2stage_work, - LAPACKE_dsbevd_2stage, - LAPACKE_dsbevd_2stage_work, - LAPACKE_dsbevx_2stage, - LAPACKE_dsbevx_2stage_work, - LAPACKE_dsycon_3, - LAPACKE_dsycon_3_work, - LAPACKE_dsyev_2stage, - LAPACKE_dsyev_2stage_work, - LAPACKE_dsyevd_2stage, - LAPACKE_dsyevd_2stage_work, - LAPACKE_dsyevr_2stage, - LAPACKE_dsyevr_2stage_work, - LAPACKE_dsyevx_2stage, - LAPACKE_dsyevx_2stage_work, - LAPACKE_dsygv_2stage, - LAPACKE_dsygv_2stage_work, - LAPACKE_dsysv_aa, - LAPACKE_dsysv_aa_work, - LAPACKE_dsysv_rk, - LAPACKE_dsysv_rk_work, - LAPACKE_dsytrf_aa, - LAPACKE_dsytrf_aa_work, - LAPACKE_dsytrf_rk, - LAPACKE_dsytrf_rk_work, - LAPACKE_dsytri_3, - LAPACKE_dsytri_3_work, - LAPACKE_dsytrs_aa, - LAPACKE_dsytrs_aa_work, - LAPACKE_dsytrs_3, - LAPACKE_dsytrs_3_work, - LAPACKE_dlassq, - LAPACKE_dlassq_work, - LAPACKE_dsysv_aa_2stage, - LAPACKE_dsysv_aa_2stage_work, - LAPACKE_dsytrf_aa_2stage, - LAPACKE_dsytrf_aa_2stage_work, - LAPACKE_dsytrs_aa_2stage, - LAPACKE_dsytrs_aa_2stage_work, - LAPACKE_dgesvdq, - LAPACKE_dgesvdq_work, - LAPACKE_slag2d, - LAPACKE_slag2d_work, -); -@lapackeobjss = ( - LAPACKE_sgb_nancheck, - LAPACKE_sgb_trans, - LAPACKE_sge_nancheck, - LAPACKE_sge_trans, - LAPACKE_sgg_nancheck, - LAPACKE_sgg_trans, - LAPACKE_sgt_nancheck, - LAPACKE_shs_nancheck, - LAPACKE_shs_trans, - LAPACKE_s_nancheck, - LAPACKE_spb_nancheck, - LAPACKE_spb_trans, - LAPACKE_spf_nancheck, - LAPACKE_spf_trans, - LAPACKE_spo_nancheck, - LAPACKE_spo_trans, - LAPACKE_spp_nancheck, - LAPACKE_spp_trans, - LAPACKE_spt_nancheck, - LAPACKE_ssb_nancheck, - LAPACKE_ssb_trans, - LAPACKE_ssp_nancheck, - LAPACKE_ssp_trans, - LAPACKE_sst_nancheck, - LAPACKE_ssy_nancheck, - LAPACKE_ssy_trans, - LAPACKE_stb_nancheck, - LAPACKE_stb_trans, - LAPACKE_stf_nancheck, - LAPACKE_stf_trans, - LAPACKE_stp_nancheck, - LAPACKE_stp_trans, - LAPACKE_str_nancheck, - LAPACKE_str_trans, - LAPACKE_sbbcsd, - LAPACKE_sbbcsd_work, - LAPACKE_sbdsdc, - LAPACKE_sbdsdc_work, - LAPACKE_sbdsqr, - LAPACKE_sbdsqr_work, - LAPACKE_sdisna, - LAPACKE_sdisna_work, - LAPACKE_sgbbrd, - LAPACKE_sgbbrd_work, - LAPACKE_sgbcon, - LAPACKE_sgbcon_work, - LAPACKE_sgbequ, - LAPACKE_sgbequ_work, - LAPACKE_sgbequb, - LAPACKE_sgbequb_work, - LAPACKE_sgbrfs, - LAPACKE_sgbrfs_work, - LAPACKE_sgbsv, - LAPACKE_sgbsv_work, - LAPACKE_sgbsvx, - LAPACKE_sgbsvx_work, - LAPACKE_sgbtrf, - LAPACKE_sgbtrf_work, - LAPACKE_sgbtrs, - LAPACKE_sgbtrs_work, - LAPACKE_sgebak, - LAPACKE_sgebak_work, - LAPACKE_sgebal, - LAPACKE_sgebal_work, - LAPACKE_sgebrd, - LAPACKE_sgebrd_work, - LAPACKE_sgecon, - LAPACKE_sgecon_work, - LAPACKE_sgeequ, - LAPACKE_sgeequ_work, - LAPACKE_sgeequb, - LAPACKE_sgeequb_work, - LAPACKE_sgees, - LAPACKE_sgees_work, - LAPACKE_sgeesx, - LAPACKE_sgeesx_work, - LAPACKE_sgeev, - LAPACKE_sgeev_work, - LAPACKE_sgeevx, - LAPACKE_sgeevx_work, - LAPACKE_sgehrd, - LAPACKE_sgehrd_work, - LAPACKE_sgejsv, - LAPACKE_sgejsv_work, - LAPACKE_sgelq2, - LAPACKE_sgelq2_work, - LAPACKE_sgelqf, - LAPACKE_sgelqf_work, - LAPACKE_sgels, - LAPACKE_sgels_work, - LAPACKE_sgelsd, - LAPACKE_sgelsd_work, - LAPACKE_sgelss, - LAPACKE_sgelss_work, - LAPACKE_sgelsy, - LAPACKE_sgelsy_work, - LAPACKE_sgemqrt, - LAPACKE_sgemqrt_work, - LAPACKE_sgeqlf, - LAPACKE_sgeqlf_work, - LAPACKE_sgeqp3, - LAPACKE_sgeqp3_work, - LAPACKE_sgeqr2, - LAPACKE_sgeqr2_work, - LAPACKE_sgeqrf, - LAPACKE_sgeqrf_work, - LAPACKE_sgeqrfp, - LAPACKE_sgeqrfp_work, - LAPACKE_sgeqrt, - LAPACKE_sgeqrt2, - LAPACKE_sgeqrt2_work, - LAPACKE_sgeqrt3, - LAPACKE_sgeqrt3_work, - LAPACKE_sgeqrt_work, - LAPACKE_sgerfs, - LAPACKE_sgerfs_work, - LAPACKE_sgerqf, - LAPACKE_sgerqf_work, - LAPACKE_sgesdd, - LAPACKE_sgesdd_work, - LAPACKE_sgesv, - LAPACKE_sgesv_work, - LAPACKE_sgesvd, - LAPACKE_sgesvd_work, - LAPACKE_sgesvj, - LAPACKE_sgesvj_work, - LAPACKE_sgesvx, - LAPACKE_sgesvx_work, - LAPACKE_sgetf2, - LAPACKE_sgetf2_work, - LAPACKE_sgetrf, - LAPACKE_sgetrf_work, - LAPACKE_sgetri, - LAPACKE_sgetri_work, - LAPACKE_sgetrs, - LAPACKE_sgetrs_work, - LAPACKE_sggbak, - LAPACKE_sggbak_work, - LAPACKE_sggbal, - LAPACKE_sggbal_work, - LAPACKE_sgges, - LAPACKE_sgges_work, - LAPACKE_sggesx, - LAPACKE_sggesx_work, - LAPACKE_sggev, - LAPACKE_sggev_work, - LAPACKE_sggevx, - LAPACKE_sggevx_work, - LAPACKE_sggglm, - LAPACKE_sggglm_work, - LAPACKE_sgghrd, - LAPACKE_sgghrd_work, - LAPACKE_sgglse, - LAPACKE_sgglse_work, - LAPACKE_sggqrf, - LAPACKE_sggqrf_work, - LAPACKE_sggrqf, - LAPACKE_sggrqf_work, - LAPACKE_sgtcon, - LAPACKE_sgtcon_work, - LAPACKE_sgtrfs, - LAPACKE_sgtrfs_work, - LAPACKE_sgtsv, - LAPACKE_sgtsv_work, - LAPACKE_sgtsvx, - LAPACKE_sgtsvx_work, - LAPACKE_sgttrf, - LAPACKE_sgttrf_work, - LAPACKE_sgttrs, - LAPACKE_sgttrs_work, - LAPACKE_shgeqz, - LAPACKE_shgeqz_work, - LAPACKE_shsein, - LAPACKE_shsein_work, - LAPACKE_shseqr, - LAPACKE_shseqr_work, - LAPACKE_slacn2, - LAPACKE_slacn2_work, - LAPACKE_slacpy, - LAPACKE_slacpy_work, - LAPACKE_slamch, - LAPACKE_slamch_work, - LAPACKE_slange, - LAPACKE_slange_work, - LAPACKE_slansy, - LAPACKE_slansy_work, - LAPACKE_slantr, - LAPACKE_slantr_work, - LAPACKE_slapmr, - LAPACKE_slapmr_work, - LAPACKE_slapy2, - LAPACKE_slapy2_work, - LAPACKE_slapy3, - LAPACKE_slapy3_work, - LAPACKE_slarfb, - LAPACKE_slarfb_work, - LAPACKE_slarfg, - LAPACKE_slarfg_work, - LAPACKE_slarft, - LAPACKE_slarft_work, - LAPACKE_slarfx, - LAPACKE_slarfx_work, - LAPACKE_slarnv, - LAPACKE_slarnv_work, - LAPACKE_slartgp, - LAPACKE_slartgp_work, - LAPACKE_slartgs, - LAPACKE_slartgs_work, - LAPACKE_slaset, - LAPACKE_slaset_work, - LAPACKE_slasrt, - LAPACKE_slasrt_work, - LAPACKE_slaswp, - LAPACKE_slaswp_work, - LAPACKE_slauum, - LAPACKE_slauum_work, - LAPACKE_sopgtr, - LAPACKE_sopgtr_work, - LAPACKE_sopmtr, - LAPACKE_sopmtr_work, - LAPACKE_sorbdb, - LAPACKE_sorbdb_work, - LAPACKE_sorcsd, - LAPACKE_sorcsd_work, - LAPACKE_sorgbr, - LAPACKE_sorgbr_work, - LAPACKE_sorghr, - LAPACKE_sorghr_work, - LAPACKE_sorglq, - LAPACKE_sorglq_work, - LAPACKE_sorgql, - LAPACKE_sorgql_work, - LAPACKE_sorgqr, - LAPACKE_sorgqr_work, - LAPACKE_sorgrq, - LAPACKE_sorgrq_work, - LAPACKE_sorgtr, - LAPACKE_sorgtr_work, - LAPACKE_sormbr, - LAPACKE_sormbr_work, - LAPACKE_sormhr, - LAPACKE_sormhr_work, - LAPACKE_sormlq, - LAPACKE_sormlq_work, - LAPACKE_sormql, - LAPACKE_sormql_work, - LAPACKE_sormqr, - LAPACKE_sormqr_work, - LAPACKE_sormrq, - LAPACKE_sormrq_work, - LAPACKE_sormrz, - LAPACKE_sormrz_work, - LAPACKE_sormtr, - LAPACKE_sormtr_work, - LAPACKE_spbcon, - LAPACKE_spbcon_work, - LAPACKE_spbequ, - LAPACKE_spbequ_work, - LAPACKE_spbrfs, - LAPACKE_spbrfs_work, - LAPACKE_spbstf, - LAPACKE_spbstf_work, - LAPACKE_spbsv, - LAPACKE_spbsv_work, - LAPACKE_spbsvx, - LAPACKE_spbsvx_work, - LAPACKE_spbtrf, - LAPACKE_spbtrf_work, - LAPACKE_spbtrs, - LAPACKE_spbtrs_work, - LAPACKE_spftrf, - LAPACKE_spftrf_work, - LAPACKE_spftri, - LAPACKE_spftri_work, - LAPACKE_spftrs, - LAPACKE_spftrs_work, - LAPACKE_spocon, - LAPACKE_spocon_work, - LAPACKE_spoequ, - LAPACKE_spoequ_work, - LAPACKE_spoequb, - LAPACKE_spoequb_work, - LAPACKE_sporfs, - LAPACKE_sporfs_work, - LAPACKE_sposv, - LAPACKE_sposv_work, - LAPACKE_sposvx, - LAPACKE_sposvx_work, - LAPACKE_spotrf, - LAPACKE_spotrf_work, - LAPACKE_spotri, - LAPACKE_spotri_work, - LAPACKE_spotrs, - LAPACKE_spotrs_work, - LAPACKE_sppcon, - LAPACKE_sppcon_work, - LAPACKE_sppequ, - LAPACKE_sppequ_work, - LAPACKE_spprfs, - LAPACKE_spprfs_work, - LAPACKE_sppsv, - LAPACKE_sppsv_work, - LAPACKE_sppsvx, - LAPACKE_sppsvx_work, - LAPACKE_spptrf, - LAPACKE_spptrf_work, - LAPACKE_spptri, - LAPACKE_spptri_work, - LAPACKE_spptrs, - LAPACKE_spptrs_work, - LAPACKE_spstrf, - LAPACKE_spstrf_work, - LAPACKE_sptcon, - LAPACKE_sptcon_work, - LAPACKE_spteqr, - LAPACKE_spteqr_work, - LAPACKE_sptrfs, - LAPACKE_sptrfs_work, - LAPACKE_sptsv, - LAPACKE_sptsv_work, - LAPACKE_sptsvx, - LAPACKE_sptsvx_work, - LAPACKE_spttrf, - LAPACKE_spttrf_work, - LAPACKE_spttrs, - LAPACKE_spttrs_work, - LAPACKE_ssbev, - LAPACKE_ssbev_work, - LAPACKE_ssbevd, - LAPACKE_ssbevd_work, - LAPACKE_ssbevx, - LAPACKE_ssbevx_work, - LAPACKE_ssbgst, - LAPACKE_ssbgst_work, - LAPACKE_ssbgv, - LAPACKE_ssbgv_work, - LAPACKE_ssbgvd, - LAPACKE_ssbgvd_work, - LAPACKE_ssbgvx, - LAPACKE_ssbgvx_work, - LAPACKE_ssbtrd, - LAPACKE_ssbtrd_work, - LAPACKE_ssfrk, - LAPACKE_ssfrk_work, - LAPACKE_sspcon, - LAPACKE_sspcon_work, - LAPACKE_sspev, - LAPACKE_sspev_work, - LAPACKE_sspevd, - LAPACKE_sspevd_work, - LAPACKE_sspevx, - LAPACKE_sspevx_work, - LAPACKE_sspgst, - LAPACKE_sspgst_work, - LAPACKE_sspgv, - LAPACKE_sspgv_work, - LAPACKE_sspgvd, - LAPACKE_sspgvd_work, - LAPACKE_sspgvx, - LAPACKE_sspgvx_work, - LAPACKE_ssprfs, - LAPACKE_ssprfs_work, - LAPACKE_sspsv, - LAPACKE_sspsv_work, - LAPACKE_sspsvx, - LAPACKE_sspsvx_work, - LAPACKE_ssptrd, - LAPACKE_ssptrd_work, - LAPACKE_ssptrf, - LAPACKE_ssptrf_work, - LAPACKE_ssptri, - LAPACKE_ssptri_work, - LAPACKE_ssptrs, - LAPACKE_ssptrs_work, - LAPACKE_sstebz, - LAPACKE_sstebz_work, - LAPACKE_sstedc, - LAPACKE_sstedc_work, - LAPACKE_sstegr, - LAPACKE_sstegr_work, - LAPACKE_sstein, - LAPACKE_sstein_work, - LAPACKE_sstemr, - LAPACKE_sstemr_work, - LAPACKE_ssteqr, - LAPACKE_ssteqr_work, - LAPACKE_ssterf, - LAPACKE_ssterf_work, - LAPACKE_sstev, - LAPACKE_sstev_work, - LAPACKE_sstevd, - LAPACKE_sstevd_work, - LAPACKE_sstevr, - LAPACKE_sstevr_work, - LAPACKE_sstevx, - LAPACKE_sstevx_work, - LAPACKE_ssycon, - LAPACKE_ssycon_work, - LAPACKE_ssyconv, - LAPACKE_ssyconv_work, - LAPACKE_ssyequb, - LAPACKE_ssyequb_work, - LAPACKE_ssyev, - LAPACKE_ssyev_work, - LAPACKE_ssyevd, - LAPACKE_ssyevd_work, - LAPACKE_ssyevr, - LAPACKE_ssyevr_work, - LAPACKE_ssyevx, - LAPACKE_ssyevx_work, - LAPACKE_ssygst, - LAPACKE_ssygst_work, - LAPACKE_ssygv, - LAPACKE_ssygv_work, - LAPACKE_ssygvd, - LAPACKE_ssygvd_work, - LAPACKE_ssygvx, - LAPACKE_ssygvx_work, - LAPACKE_ssyrfs, - LAPACKE_ssyrfs_work, - LAPACKE_ssysv, - LAPACKE_ssysv_rook, - LAPACKE_ssysv_rook_work, - LAPACKE_ssysv_work, - LAPACKE_ssysvx, - LAPACKE_ssysvx_work, - LAPACKE_ssyswapr, - LAPACKE_ssyswapr_work, - LAPACKE_ssytrd, - LAPACKE_ssytrd_work, - LAPACKE_ssytrf, - LAPACKE_ssytrf_work, - LAPACKE_ssytri, - LAPACKE_ssytri2, - LAPACKE_ssytri2_work, - LAPACKE_ssytri2x, - LAPACKE_ssytri2x_work, - LAPACKE_ssytri_work, - LAPACKE_ssytrs, - LAPACKE_ssytrs2, - LAPACKE_ssytrs2_work, - LAPACKE_ssytrs_work, - LAPACKE_stbcon, - LAPACKE_stbcon_work, - LAPACKE_stbrfs, - LAPACKE_stbrfs_work, - LAPACKE_stbtrs, - LAPACKE_stbtrs_work, - LAPACKE_stfsm, - LAPACKE_stfsm_work, - LAPACKE_stftri, - LAPACKE_stftri_work, - LAPACKE_stfttp, - LAPACKE_stfttp_work, - LAPACKE_stfttr, - LAPACKE_stfttr_work, - LAPACKE_stgevc, - LAPACKE_stgevc_work, - LAPACKE_stgexc, - LAPACKE_stgexc_work, - LAPACKE_stgsen, - LAPACKE_stgsen_work, - LAPACKE_stgsja, - LAPACKE_stgsja_work, - LAPACKE_stgsna, - LAPACKE_stgsna_work, - LAPACKE_stgsyl, - LAPACKE_stgsyl_work, - LAPACKE_stpcon, - LAPACKE_stpcon_work, - LAPACKE_stpmqrt, - LAPACKE_stpmqrt_work, - LAPACKE_stpqrt2, - LAPACKE_stpqrt2_work, - LAPACKE_stprfb, - LAPACKE_stprfb_work, - LAPACKE_stprfs, - LAPACKE_stprfs_work, - LAPACKE_stptri, - LAPACKE_stptri_work, - LAPACKE_stptrs, - LAPACKE_stptrs_work, - LAPACKE_stpttf, - LAPACKE_stpttf_work, - LAPACKE_stpttr, - LAPACKE_stpttr_work, - LAPACKE_strcon, - LAPACKE_strcon_work, - LAPACKE_strevc, - LAPACKE_strevc_work, - LAPACKE_strexc, - LAPACKE_strexc_work, - LAPACKE_strrfs, - LAPACKE_strrfs_work, - LAPACKE_strsen, - LAPACKE_strsen_work, - LAPACKE_strsna, - LAPACKE_strsna_work, - LAPACKE_strsyl, - LAPACKE_strsyl_work, - LAPACKE_strtri, - LAPACKE_strtri_work, - LAPACKE_strtrs, - LAPACKE_strtrs_work, - LAPACKE_strttf, - LAPACKE_strttf_work, - LAPACKE_strttp, - LAPACKE_strttp_work, - LAPACKE_stzrzf, - LAPACKE_stzrzf_work, - LAPACKE_slatms, - LAPACKE_slatms_work, - LAPACKE_slagge, - LAPACKE_slagge_work, - LAPACKE_slagsy, - LAPACKE_slagsy_work, - LAPACKE_sbdsvdx, - LAPACKE_sbdsvdx_work, - LAPACKE_sgesvdx, - LAPACKE_sgesvdx_work, - LAPACKE_sgetrf2, - LAPACKE_sgetrf2_work, - LAPACKE_sgges3, - LAPACKE_sgges3_work, - LAPACKE_sggev3, - LAPACKE_sggev3_work, - LAPACKE_sgghd3, - LAPACKE_sgghd3_work, - LAPACKE_sggsvd3, - LAPACKE_sggsvd3_work, - LAPACKE_sggsvp3, - LAPACKE_sggsvp3_work, - LAPACKE_slapmt, - LAPACKE_slapmt_work, - LAPACKE_slascl, - LAPACKE_slascl_work, - LAPACKE_sorcsd2by1, - LAPACKE_sorcsd2by1_work, - LAPACKE_spotrf2, - LAPACKE_spotrf2_work, - LAPACKE_ssytrf_rook, - LAPACKE_ssytrf_rook_work, - LAPACKE_ssytrs_rook, - LAPACKE_ssytrs_rook_work, - LAPACKE_stpqrt, - LAPACKE_stpqrt_work, - LAPACKE_sgelq, - LAPACKE_sgelq_work, - LAPACKE_sgemlq, - LAPACKE_sgemlq_work, - LAPACKE_sgemqr, - LAPACKE_sgemqr_work, - LAPACKE_sgeqr, - LAPACKE_sgeqr_work, - LAPACKE_sgetsls, - LAPACKE_sgetsls_work, - LAPACKE_ssbev_2stage, - LAPACKE_ssbev_2stage_work, - LAPACKE_ssbevd_2stage, - LAPACKE_ssbevd_2stage_work, - LAPACKE_ssbevx_2stage, - LAPACKE_ssbevx_2stage_work, - LAPACKE_ssycon_3, - LAPACKE_ssycon_3_work, - LAPACKE_ssyev_2stage, - LAPACKE_ssyev_2stage_work, - LAPACKE_ssyevd_2stage, - LAPACKE_ssyevd_2stage_work, - LAPACKE_ssyevr_2stage, - LAPACKE_ssyevr_2stage_work, - LAPACKE_ssyevx_2stage, - LAPACKE_ssyevx_2stage_work, - LAPACKE_ssygv_2stage, - LAPACKE_ssygv_2stage_work, - LAPACKE_ssysv_aa, - LAPACKE_ssysv_aa_work, - LAPACKE_ssysv_rk, - LAPACKE_ssysv_rk_work, - LAPACKE_ssytrf_aa, - LAPACKE_ssytrf_aa_work, - LAPACKE_ssytrf_rk, - LAPACKE_ssytrf_rk_work, - LAPACKE_ssytri_3, - LAPACKE_ssytri_3_work, - LAPACKE_ssytrs_aa, - LAPACKE_ssytrs_aa_work, - LAPACKE_ssytrs_3, - LAPACKE_ssytrs_3_work, - LAPACKE_slassq, - LAPACKE_slassq_work, - LAPACKE_ssysv_aa_2stage, - LAPACKE_ssysv_aa_2stage_work, - LAPACKE_ssytrf_aa_2stage, - LAPACKE_ssytrf_aa_2stage_work, - LAPACKE_ssytrs_aa_2stage, - LAPACKE_ssytrs_aa_2stage_work, - LAPACKE_sgesvdq, - LAPACKE_sgesvdq_work, -); -@lapackeobjsz = ( - LAPACKE_zgb_nancheck, - LAPACKE_zgb_trans, - LAPACKE_zge_nancheck, - LAPACKE_zge_trans, - LAPACKE_zgg_nancheck, - LAPACKE_zgg_trans, - LAPACKE_zgt_nancheck, - LAPACKE_zhb_nancheck, - LAPACKE_zhb_trans, - LAPACKE_zhe_nancheck, - LAPACKE_zhe_trans, - LAPACKE_zhp_nancheck, - LAPACKE_zhp_trans, - LAPACKE_zhs_nancheck, - LAPACKE_zhs_trans, - LAPACKE_z_nancheck, - LAPACKE_zpb_nancheck, - LAPACKE_zpb_trans, - LAPACKE_zpf_nancheck, - LAPACKE_zpf_trans, - LAPACKE_zpo_nancheck, - LAPACKE_zpo_trans, - LAPACKE_zpp_nancheck, - LAPACKE_zpp_trans, - LAPACKE_zpt_nancheck, - LAPACKE_zsp_nancheck, - LAPACKE_zsp_trans, - LAPACKE_zst_nancheck, - LAPACKE_zsy_nancheck, - LAPACKE_zsy_trans, - LAPACKE_ztb_nancheck, - LAPACKE_ztb_trans, - LAPACKE_ztf_nancheck, - LAPACKE_ztf_trans, - LAPACKE_ztp_nancheck, - LAPACKE_ztp_trans, - LAPACKE_ztr_nancheck, - LAPACKE_ztr_trans, - LAPACKE_zbbcsd, - LAPACKE_zbbcsd_work, - LAPACKE_zbdsqr, - LAPACKE_zbdsqr_work, - LAPACKE_zcgesv, - LAPACKE_zcgesv_work, - LAPACKE_zcposv, - LAPACKE_zcposv_work, - LAPACKE_zgbbrd, - LAPACKE_zgbbrd_work, - LAPACKE_zgbcon, - LAPACKE_zgbcon_work, - LAPACKE_zgbequ, - LAPACKE_zgbequ_work, - LAPACKE_zgbequb, - LAPACKE_zgbequb_work, - LAPACKE_zgbrfs, - LAPACKE_zgbrfs_work, - LAPACKE_zgbsv, - LAPACKE_zgbsv_work, - LAPACKE_zgbsvx, - LAPACKE_zgbsvx_work, - LAPACKE_zgbtrf, - LAPACKE_zgbtrf_work, - LAPACKE_zgbtrs, - LAPACKE_zgbtrs_work, - LAPACKE_zgebak, - LAPACKE_zgebak_work, - LAPACKE_zgebal, - LAPACKE_zgebal_work, - LAPACKE_zgebrd, - LAPACKE_zgebrd_work, - LAPACKE_zgecon, - LAPACKE_zgecon_work, - LAPACKE_zgeequ, - LAPACKE_zgeequ_work, - LAPACKE_zgeequb, - LAPACKE_zgeequb_work, - LAPACKE_zgees, - LAPACKE_zgees_work, - LAPACKE_zgeesx, - LAPACKE_zgeesx_work, - LAPACKE_zgeev, - LAPACKE_zgeev_work, - LAPACKE_zgeevx, - LAPACKE_zgeevx_work, - LAPACKE_zgehrd, - LAPACKE_zgehrd_work, - LAPACKE_zgelq2, - LAPACKE_zgelq2_work, - LAPACKE_zgelqf, - LAPACKE_zgelqf_work, - LAPACKE_zgels, - LAPACKE_zgels_work, - LAPACKE_zgelsd, - LAPACKE_zgelsd_work, - LAPACKE_zgelss, - LAPACKE_zgelss_work, - LAPACKE_zgelsy, - LAPACKE_zgelsy_work, - LAPACKE_zgemqrt, - LAPACKE_zgemqrt_work, - LAPACKE_zgeqlf, - LAPACKE_zgeqlf_work, - LAPACKE_zgeqp3, - LAPACKE_zgeqp3_work, - LAPACKE_zgeqr2, - LAPACKE_zgeqr2_work, - LAPACKE_zgeqrf, - LAPACKE_zgeqrf_work, - LAPACKE_zgeqrfp, - LAPACKE_zgeqrfp_work, - LAPACKE_zgeqrt, - LAPACKE_zgeqrt2, - LAPACKE_zgeqrt2_work, - LAPACKE_zgeqrt3, - LAPACKE_zgeqrt3_work, - LAPACKE_zgeqrt_work, - LAPACKE_zgerfs, - LAPACKE_zgerfs_work, - LAPACKE_zgerqf, - LAPACKE_zgerqf_work, - LAPACKE_zgesdd, - LAPACKE_zgesdd_work, - LAPACKE_zgesv, - LAPACKE_zgesv_work, - LAPACKE_zgesvd, - LAPACKE_zgesvd_work, - LAPACKE_zgesvx, - LAPACKE_zgesvx_work, - LAPACKE_zgetf2, - LAPACKE_zgetf2_work, - LAPACKE_zgetrf, - LAPACKE_zgetrf_work, - LAPACKE_zgetri, - LAPACKE_zgetri_work, - LAPACKE_zgetrs, - LAPACKE_zgetrs_work, - LAPACKE_zggbak, - LAPACKE_zggbak_work, - LAPACKE_zggbal, - LAPACKE_zggbal_work, - LAPACKE_zgges, - LAPACKE_zgges_work, - LAPACKE_zggesx, - LAPACKE_zggesx_work, - LAPACKE_zggev, - LAPACKE_zggev_work, - LAPACKE_zggevx, - LAPACKE_zggevx_work, - LAPACKE_zggglm, - LAPACKE_zggglm_work, - LAPACKE_zgghrd, - LAPACKE_zgghrd_work, - LAPACKE_zgglse, - LAPACKE_zgglse_work, - LAPACKE_zggqrf, - LAPACKE_zggqrf_work, - LAPACKE_zggrqf, - LAPACKE_zggrqf_work, - LAPACKE_zgtcon, - LAPACKE_zgtcon_work, - LAPACKE_zgtrfs, - LAPACKE_zgtrfs_work, - LAPACKE_zgtsv, - LAPACKE_zgtsv_work, - LAPACKE_zgtsvx, - LAPACKE_zgtsvx_work, - LAPACKE_zgttrf, - LAPACKE_zgttrf_work, - LAPACKE_zgttrs, - LAPACKE_zgttrs_work, - LAPACKE_zhbev, - LAPACKE_zhbev_work, - LAPACKE_zhbevd, - LAPACKE_zhbevd_work, - LAPACKE_zhbevx, - LAPACKE_zhbevx_work, - LAPACKE_zhbgst, - LAPACKE_zhbgst_work, - LAPACKE_zhbgv, - LAPACKE_zhbgv_work, - LAPACKE_zhbgvd, - LAPACKE_zhbgvd_work, - LAPACKE_zhbgvx, - LAPACKE_zhbgvx_work, - LAPACKE_zhbtrd, - LAPACKE_zhbtrd_work, - LAPACKE_zhecon, - LAPACKE_zhecon_work, - LAPACKE_zheequb, - LAPACKE_zheequb_work, - LAPACKE_zheev, - LAPACKE_zheev_work, - LAPACKE_zheevd, - LAPACKE_zheevd_work, - LAPACKE_zheevr, - LAPACKE_zheevr_work, - LAPACKE_zheevx, - LAPACKE_zheevx_work, - LAPACKE_zhegst, - LAPACKE_zhegst_work, - LAPACKE_zhegv, - LAPACKE_zhegv_work, - LAPACKE_zhegvd, - LAPACKE_zhegvd_work, - LAPACKE_zhegvx, - LAPACKE_zhegvx_work, - LAPACKE_zherfs, - LAPACKE_zherfs_work, - LAPACKE_zhesv, - LAPACKE_zhesv_work, - LAPACKE_zhesvx, - LAPACKE_zhesvx_work, - LAPACKE_zheswapr, - LAPACKE_zheswapr_work, - LAPACKE_zhetrd, - LAPACKE_zhetrd_work, - LAPACKE_zhetrf, - LAPACKE_zhetrf_work, - LAPACKE_zhetri, - LAPACKE_zhetri2, - LAPACKE_zhetri2_work, - LAPACKE_zhetri2x, - LAPACKE_zhetri2x_work, - LAPACKE_zhetri_work, - LAPACKE_zhetrs, - LAPACKE_zhetrs2, - LAPACKE_zhetrs2_work, - LAPACKE_zhetrs_work, - LAPACKE_zhfrk, - LAPACKE_zhfrk_work, - LAPACKE_zhgeqz, - LAPACKE_zhgeqz_work, - LAPACKE_zhpcon, - LAPACKE_zhpcon_work, - LAPACKE_zhpev, - LAPACKE_zhpev_work, - LAPACKE_zhpevd, - LAPACKE_zhpevd_work, - LAPACKE_zhpevx, - LAPACKE_zhpevx_work, - LAPACKE_zhpgst, - LAPACKE_zhpgst_work, - LAPACKE_zhpgv, - LAPACKE_zhpgv_work, - LAPACKE_zhpgvd, - LAPACKE_zhpgvd_work, - LAPACKE_zhpgvx, - LAPACKE_zhpgvx_work, - LAPACKE_zhprfs, - LAPACKE_zhprfs_work, - LAPACKE_zhpsv, - LAPACKE_zhpsv_work, - LAPACKE_zhpsvx, - LAPACKE_zhpsvx_work, - LAPACKE_zhptrd, - LAPACKE_zhptrd_work, - LAPACKE_zhptrf, - LAPACKE_zhptrf_work, - LAPACKE_zhptri, - LAPACKE_zhptri_work, - LAPACKE_zhptrs, - LAPACKE_zhptrs_work, - LAPACKE_zhsein, - LAPACKE_zhsein_work, - LAPACKE_zhseqr, - LAPACKE_zhseqr_work, - LAPACKE_zlacgv, - LAPACKE_zlacgv_work, - LAPACKE_zlacn2, - LAPACKE_zlacn2_work, - LAPACKE_zlacp2, - LAPACKE_zlacp2_work, - LAPACKE_zlacpy, - LAPACKE_zlacpy_work, - LAPACKE_zlag2c, - LAPACKE_zlag2c_work, - LAPACKE_zlange, - LAPACKE_zlange_work, - LAPACKE_zlanhe, - LAPACKE_zlanhe_work, - LAPACKE_zlansy, - LAPACKE_zlansy_work, - LAPACKE_zlantr, - LAPACKE_zlantr_work, - LAPACKE_zlapmr, - LAPACKE_zlapmr_work, - LAPACKE_zlarfb, - LAPACKE_zlarfb_work, - LAPACKE_zlarfg, - LAPACKE_zlarfg_work, - LAPACKE_zlarft, - LAPACKE_zlarft_work, - LAPACKE_zlarfx, - LAPACKE_zlarfx_work, - LAPACKE_zlarnv, - LAPACKE_zlarnv_work, - LAPACKE_zlaset, - LAPACKE_zlaset_work, - LAPACKE_zlaswp, - LAPACKE_zlaswp_work, - LAPACKE_zlauum, - LAPACKE_zlauum_work, - LAPACKE_zpbcon, - LAPACKE_zpbcon_work, - LAPACKE_zpbequ, - LAPACKE_zpbequ_work, - LAPACKE_zpbrfs, - LAPACKE_zpbrfs_work, - LAPACKE_zpbstf, - LAPACKE_zpbstf_work, - LAPACKE_zpbsv, - LAPACKE_zpbsv_work, - LAPACKE_zpbsvx, - LAPACKE_zpbsvx_work, - LAPACKE_zpbtrf, - LAPACKE_zpbtrf_work, - LAPACKE_zpbtrs, - LAPACKE_zpbtrs_work, - LAPACKE_zpftrf, - LAPACKE_zpftrf_work, - LAPACKE_zpftri, - LAPACKE_zpftri_work, - LAPACKE_zpftrs, - LAPACKE_zpftrs_work, - LAPACKE_zpocon, - LAPACKE_zpocon_work, - LAPACKE_zpoequ, - LAPACKE_zpoequ_work, - LAPACKE_zpoequb, - LAPACKE_zpoequb_work, - LAPACKE_zporfs, - LAPACKE_zporfs_work, - LAPACKE_zposv, - LAPACKE_zposv_work, - LAPACKE_zposvx, - LAPACKE_zposvx_work, - LAPACKE_zpotrf, - LAPACKE_zpotrf_work, - LAPACKE_zpotri, - LAPACKE_zpotri_work, - LAPACKE_zpotrs, - LAPACKE_zpotrs_work, - LAPACKE_zppcon, - LAPACKE_zppcon_work, - LAPACKE_zppequ, - LAPACKE_zppequ_work, - LAPACKE_zpprfs, - LAPACKE_zpprfs_work, - LAPACKE_zppsv, - LAPACKE_zppsv_work, - LAPACKE_zppsvx, - LAPACKE_zppsvx_work, - LAPACKE_zpptrf, - LAPACKE_zpptrf_work, - LAPACKE_zpptri, - LAPACKE_zpptri_work, - LAPACKE_zpptrs, - LAPACKE_zpptrs_work, - LAPACKE_zpstrf, - LAPACKE_zpstrf_work, - LAPACKE_zptcon, - LAPACKE_zptcon_work, - LAPACKE_zpteqr, - LAPACKE_zpteqr_work, - LAPACKE_zptrfs, - LAPACKE_zptrfs_work, - LAPACKE_zptsv, - LAPACKE_zptsv_work, - LAPACKE_zptsvx, - LAPACKE_zptsvx_work, - LAPACKE_zpttrf, - LAPACKE_zpttrf_work, - LAPACKE_zpttrs, - LAPACKE_zpttrs_work, - LAPACKE_zspcon, - LAPACKE_zspcon_work, - LAPACKE_zsprfs, - LAPACKE_zsprfs_work, - LAPACKE_zspsv, - LAPACKE_zspsv_work, - LAPACKE_zspsvx, - LAPACKE_zspsvx_work, - LAPACKE_zsptrf, - LAPACKE_zsptrf_work, - LAPACKE_zsptri, - LAPACKE_zsptri_work, - LAPACKE_zsptrs, - LAPACKE_zsptrs_work, - LAPACKE_zstedc, - LAPACKE_zstedc_work, - LAPACKE_zstegr, - LAPACKE_zstegr_work, - LAPACKE_zstein, - LAPACKE_zstein_work, - LAPACKE_zstemr, - LAPACKE_zstemr_work, - LAPACKE_zsteqr, - LAPACKE_zsteqr_work, - LAPACKE_zsycon, - LAPACKE_zsycon_work, - LAPACKE_zsyconv, - LAPACKE_zsyconv_work, - LAPACKE_zsyequb, - LAPACKE_zsyequb_work, - LAPACKE_zsyrfs, - LAPACKE_zsyrfs_work, - LAPACKE_zsysv, - LAPACKE_zsysv_rook, - LAPACKE_zsysv_rook_work, - LAPACKE_zsysv_work, - LAPACKE_zsysvx, - LAPACKE_zsysvx_work, - LAPACKE_zsyswapr, - LAPACKE_zsyswapr_work, - LAPACKE_zsytrf, - LAPACKE_zsytrf_work, - LAPACKE_zsytri, - LAPACKE_zsytri2, - LAPACKE_zsytri2_work, - LAPACKE_zsytri2x, - LAPACKE_zsytri2x_work, - LAPACKE_zsytri_work, - LAPACKE_zsytrs, - LAPACKE_zsytrs2, - LAPACKE_zsytrs2_work, - LAPACKE_zsytrs_work, - LAPACKE_ztbcon, - LAPACKE_ztbcon_work, - LAPACKE_ztbrfs, - LAPACKE_ztbrfs_work, - LAPACKE_ztbtrs, - LAPACKE_ztbtrs_work, - LAPACKE_ztfsm, - LAPACKE_ztfsm_work, - LAPACKE_ztftri, - LAPACKE_ztftri_work, - LAPACKE_ztfttp, - LAPACKE_ztfttp_work, - LAPACKE_ztfttr, - LAPACKE_ztfttr_work, - LAPACKE_ztgevc, - LAPACKE_ztgevc_work, - LAPACKE_ztgexc, - LAPACKE_ztgexc_work, - LAPACKE_ztgsen, - LAPACKE_ztgsen_work, - LAPACKE_ztgsja, - LAPACKE_ztgsja_work, - LAPACKE_ztgsna, - LAPACKE_ztgsna_work, - LAPACKE_ztgsyl, - LAPACKE_ztgsyl_work, - LAPACKE_ztpcon, - LAPACKE_ztpcon_work, - LAPACKE_ztpmqrt, - LAPACKE_ztpmqrt_work, - LAPACKE_ztpqrt, - LAPACKE_ztpqrt2, - LAPACKE_ztpqrt2_work, - LAPACKE_ztpqrt_work, - LAPACKE_ztprfb, - LAPACKE_ztprfb_work, - LAPACKE_ztprfs, - LAPACKE_ztprfs_work, - LAPACKE_ztptri, - LAPACKE_ztptri_work, - LAPACKE_ztptrs, - LAPACKE_ztptrs_work, - LAPACKE_ztpttf, - LAPACKE_ztpttf_work, - LAPACKE_ztpttr, - LAPACKE_ztpttr_work, - LAPACKE_ztrcon, - LAPACKE_ztrcon_work, - LAPACKE_ztrevc, - LAPACKE_ztrevc_work, - LAPACKE_ztrexc, - LAPACKE_ztrexc_work, - LAPACKE_ztrrfs, - LAPACKE_ztrrfs_work, - LAPACKE_ztrsen, - LAPACKE_ztrsen_work, - LAPACKE_ztrsna, - LAPACKE_ztrsna_work, - LAPACKE_ztrsyl, - LAPACKE_ztrsyl_work, - LAPACKE_ztrtri, - LAPACKE_ztrtri_work, - LAPACKE_ztrtrs, - LAPACKE_ztrtrs_work, - LAPACKE_ztrttf, - LAPACKE_ztrttf_work, - LAPACKE_ztrttp, - LAPACKE_ztrttp_work, - LAPACKE_ztzrzf, - LAPACKE_ztzrzf_work, - LAPACKE_zunbdb, - LAPACKE_zunbdb_work, - LAPACKE_zuncsd, - LAPACKE_zuncsd_work, - LAPACKE_zungbr, - LAPACKE_zungbr_work, - LAPACKE_zunghr, - LAPACKE_zunghr_work, - LAPACKE_zunglq, - LAPACKE_zunglq_work, - LAPACKE_zungql, - LAPACKE_zungql_work, - LAPACKE_zungqr, - LAPACKE_zungqr_work, - LAPACKE_zungrq, - LAPACKE_zungrq_work, - LAPACKE_zungtr, - LAPACKE_zungtr_work, - LAPACKE_zunmbr, - LAPACKE_zunmbr_work, - LAPACKE_zunmhr, - LAPACKE_zunmhr_work, - LAPACKE_zunmlq, - LAPACKE_zunmlq_work, - LAPACKE_zunmql, - LAPACKE_zunmql_work, - LAPACKE_zunmqr, - LAPACKE_zunmqr_work, - LAPACKE_zunmrq, - LAPACKE_zunmrq_work, - LAPACKE_zunmrz, - LAPACKE_zunmrz_work, - LAPACKE_zunmtr, - LAPACKE_zunmtr_work, - LAPACKE_zupgtr, - LAPACKE_zupgtr_work, - LAPACKE_zupmtr, - LAPACKE_zupmtr_work, - LAPACKE_zsyr, - LAPACKE_zsyr_work, - ## @(SRCX_OBJ) from `lapack-3.4.1/lapacke/src/Makefile` - ## Not exported: requires LAPACKE_EXTENDED to be set and depends on the - ## corresponding LAPACK extended precision routines. - #LAPACKE_cgbrfsx, - #LAPACKE_cporfsx, - #LAPACKE_dgerfsx, - #LAPACKE_sgbrfsx, - #LAPACKE_ssyrfsx, - #LAPACKE_zherfsx, - #LAPACKE_cgbrfsx_work, - #LAPACKE_cporfsx_work, - #LAPACKE_dgerfsx_work, - #LAPACKE_sgbrfsx_work, - #LAPACKE_ssyrfsx_work, - #LAPACKE_zherfsx_work, - #LAPACKE_cgerfsx, - #LAPACKE_csyrfsx, - #LAPACKE_dporfsx, - #LAPACKE_sgerfsx, - #LAPACKE_zgbrfsx, - #LAPACKE_zporfsx, - #LAPACKE_cgerfsx_work, - #LAPACKE_csyrfsx_work, - #LAPACKE_dporfsx_work, - #LAPACKE_sgerfsx_work, - #LAPACKE_zgbrfsx_work, - #LAPACKE_zporfsx_work, - #LAPACKE_cherfsx, - #LAPACKE_dgbrfsx, - #LAPACKE_dsyrfsx, - #LAPACKE_sporfsx, - #LAPACKE_zgerfsx, - #LAPACKE_zsyrfsx, - #LAPACKE_cherfsx_work, - #LAPACKE_dgbrfsx_work, - #LAPACKE_dsyrfsx_work, - #LAPACKE_sporfsx_work, - #LAPACKE_zgerfsx_work, - #LAPACKE_zsyrfsx_work, - #LAPACKE_cgbsvxx, - #LAPACKE_cposvxx, - #LAPACKE_dgesvxx, - #LAPACKE_sgbsvxx, - #LAPACKE_ssysvxx, - #LAPACKE_zhesvxx, - #LAPACKE_cgbsvxx_work, - #LAPACKE_cposvxx_work, - #LAPACKE_dgesvxx_work, - #LAPACKE_sgbsvxx_work, - #LAPACKE_ssysvxx_work, - #LAPACKE_zhesvxx_work, - #LAPACKE_cgesvxx, - #LAPACKE_csysvxx, - #LAPACKE_dposvxx, - #LAPACKE_sgesvxx, - #LAPACKE_zgbsvxx, - #LAPACKE_zposvxx, - #LAPACKE_cgesvxx_work, - #LAPACKE_csysvxx_work, - #LAPACKE_dposvxx_work, - #LAPACKE_sgesvxx_work, - #LAPACKE_zgbsvxx_work, - #LAPACKE_zposvxx_work, - #LAPACKE_chesvxx, - #LAPACKE_dgbsvxx, - #LAPACKE_dsysvxx, - #LAPACKE_sposvxx, - #LAPACKE_zgesvxx, - #LAPACKE_zsysvxx, - #LAPACKE_chesvxx_work, - #LAPACKE_dgbsvxx_work, - #LAPACKE_dsysvxx_work, - #LAPACKE_sposvxx_work, - #LAPACKE_zgesvxx_work, - #LAPACKE_zsysvxx_work, +lapacke_deprecated_objsz=" + LAPACKE_zggsvp + LAPACKE_zggsvp_work + LAPACKE_zggsvd + LAPACKE_zggsvd_work + LAPACKE_zgeqpf + LAPACKE_zgeqpf_work +" - ## @(MATGEN_OBJ) from `lapack-3.4.1/lapacke/src/Makefile` - ## Not exported: requires LAPACKE_TESTING to be set and depends on libtmg - ## (see `lapack-3.4.1/TESTING/MATGEN`). - LAPACKE_zlatms, - LAPACKE_zlatms_work, - LAPACKE_zlagge, - LAPACKE_zlagge_work, - LAPACKE_zlaghe, - LAPACKE_zlaghe_work, - LAPACKE_zlagsy, - LAPACKE_zlagsy_work, - ## new function from lapack-3.6.0 - LAPACKE_zgejsv, - LAPACKE_zgejsv_work, - LAPACKE_zgesvdx, - LAPACKE_zgesvdx_work, - LAPACKE_zgesvj, - LAPACKE_zgesvj_work, - LAPACKE_zgetrf2, - LAPACKE_zgetrf2_work, - LAPACKE_zgges3, - LAPACKE_zgges3_work, - LAPACKE_zggev3, - LAPACKE_zggev3_work, - LAPACKE_zgghd3, - LAPACKE_zgghd3_work, - LAPACKE_zggsvd3, - LAPACKE_zggsvd3_work, - LAPACKE_zggsvp3, - LAPACKE_zggsvp3_work, - LAPACKE_zhetrf_rook, - LAPACKE_zhetrf_rook_work, - LAPACKE_zhetrs_rook, - LAPACKE_zhetrs_rook_work, - LAPACKE_zlapmt, - LAPACKE_zlapmt_work, - LAPACKE_zlascl, - LAPACKE_zlascl_work, - LAPACKE_zpotrf2, - LAPACKE_zpotrf2_work, - LAPACKE_zsytrf_rook, - LAPACKE_zsytrf_rook_work, - LAPACKE_zsytrs_rook, - LAPACKE_zsytrs_rook_work, - LAPACKE_zuncsd2by1, - LAPACKE_zuncsd2by1_work, +# LAPACK C interface routines. +# +# This list is prepared in a similar manner to @lapackobjs2, however the +# functions all begin with an uppercase prefix (with the exception of the +# make_complex_* routines). +# +# The functions corresponding to @(MATGEN_OBJ) and @(SRCX_OBJ) are not +# exported since the respective LAPACK routines are not built by default. - ## new function from lapack-3.7.0 - LAPACKE_zgelq, - LAPACKE_zgelq_work, - LAPACKE_zgemlq, - LAPACKE_zgemlq_work, - LAPACKE_zgemqr, - LAPACKE_zgemqr_work, - LAPACKE_zgeqr, - LAPACKE_zgeqr_work, - LAPACKE_zgetsls, - LAPACKE_zgetsls_work, - LAPACKE_zhbev_2stage, - LAPACKE_zhbev_2stage_work, - LAPACKE_zhbevd_2stage, - LAPACKE_zhbevd_2stage_work, - LAPACKE_zhbevx_2stage, - LAPACKE_zhbevx_2stage_work, - LAPACKE_zhecon_3, - LAPACKE_zhecon_3_work, - LAPACKE_zheev_2stage, - LAPACKE_zheev_2stage_work, - LAPACKE_zheevd_2stage, - LAPACKE_zheevd_2stage_work, - LAPACKE_zheevr_2stage, - LAPACKE_zheevr_2stage_work, - LAPACKE_zheevx_2stage, - LAPACKE_zheevx_2stage_work, - LAPACKE_zhegv_2stage, - LAPACKE_zhegv_2stage_work, - LAPACKE_zhesv_aa, - LAPACKE_zhesv_aa_work, - LAPACKE_zhesv_rk, - LAPACKE_zhesv_rk_work, - LAPACKE_zhetrf_aa, - LAPACKE_zhetrf_aa_work, - LAPACKE_zhetrf_rk, - LAPACKE_zhetrf_rk_work, - LAPACKE_zhetri_3, - LAPACKE_zhetri_3_work, - LAPACKE_zhetrs_aa, - LAPACKE_zhetrs_aa_work, - LAPACKE_zhetrs_3, - LAPACKE_zhetrs_3_work, - LAPACKE_zsycon_3, - LAPACKE_zsycon_3_work, - LAPACKE_zsysv_aa, - LAPACKE_zsysv_aa_work, - LAPACKE_zsysv_rk, - LAPACKE_zsysv_rk_work, - LAPACKE_zsytrf_aa, - LAPACKE_zsytrf_aa_work, - LAPACKE_zsytrf_rk, - LAPACKE_zsytrf_rk_work, - LAPACKE_zsytri_3, - LAPACKE_zsytri_3_work, - LAPACKE_zsytrs_aa, - LAPACKE_zsytrs_aa_work, - LAPACKE_zsytrs_3, - LAPACKE_zsytrs_3_work, - - ## new function from lapack-3.8.0 - LAPACKE_zhesv_aa_2stage, - LAPACKE_zhesv_aa_2stage_work, - LAPACKE_zhetrf_aa_2stage, - LAPACKE_zhetrf_aa_2stage_work, - LAPACKE_zhetrs_aa_2stage, - LAPACKE_zhetrs_aa_2stage_work, - LAPACKE_zlacrm, - LAPACKE_zlacrm_work, - LAPACKE_zlarcm, - LAPACKE_zlarcm_work, - LAPACKE_zlassq, - LAPACKE_zlassq_work, - LAPACKE_zsysv_aa_2stage, - LAPACKE_zsysv_aa_2stage_work, - LAPACKE_zsytrf_aa_2stage, - LAPACKE_zsytrf_aa_2stage_work, - LAPACKE_zsytrs_aa_2stage, - LAPACKE_zsytrs_aa_2stage_work, - # new functions from 3.9.0 - LAPACKE_zgesvdq, +# @(OBJ) from `lapack-3.4.1/lapacke/utils/Makefile` +lapackeobjs=" + LAPACKE_lsame + LAPACKE_ilaver + LAPACKE_xerbla + lapack_make_complex_float + lapack_make_complex_double + LAPACKE_get_nancheck + LAPACKE_set_nancheck +" + +lapackeobjsc=" + LAPACKE_cgb_nancheck + LAPACKE_cgb_trans + LAPACKE_cge_nancheck + LAPACKE_cge_trans + LAPACKE_cgg_nancheck + LAPACKE_cgg_trans + LAPACKE_cgt_nancheck + LAPACKE_chb_nancheck + LAPACKE_chb_trans + LAPACKE_che_nancheck + LAPACKE_che_trans + LAPACKE_chp_nancheck + LAPACKE_chp_trans + LAPACKE_chs_nancheck + LAPACKE_chs_trans + LAPACKE_c_nancheck + LAPACKE_cpb_nancheck + LAPACKE_cpb_trans + LAPACKE_cpf_nancheck + LAPACKE_cpf_trans + LAPACKE_cpo_nancheck + LAPACKE_cpo_trans + LAPACKE_cpp_nancheck + LAPACKE_cpp_trans + LAPACKE_cpt_nancheck + LAPACKE_csp_nancheck + LAPACKE_csp_trans + LAPACKE_cst_nancheck + LAPACKE_csy_nancheck + LAPACKE_csy_trans + LAPACKE_ctb_nancheck + LAPACKE_ctb_trans + LAPACKE_ctf_nancheck + LAPACKE_ctf_trans + LAPACKE_ctp_nancheck + LAPACKE_ctp_trans + LAPACKE_ctr_nancheck + LAPACKE_ctr_trans + LAPACKE_cbbcsd + LAPACKE_cbbcsd_work + LAPACKE_cbdsqr + LAPACKE_cbdsqr_work + LAPACKE_cgbbrd + LAPACKE_cgbbrd_work + LAPACKE_cgbcon + LAPACKE_cgbcon_work + LAPACKE_cgbequ + LAPACKE_cgbequ_work + LAPACKE_cgbequb + LAPACKE_cgbequb_work + LAPACKE_cgbrfs + LAPACKE_cgbrfs_work + LAPACKE_cgbsv + LAPACKE_cgbsv_work + LAPACKE_cgbsvx + LAPACKE_cgbsvx_work + LAPACKE_cgbtrf + LAPACKE_cgbtrf_work + LAPACKE_cgbtrs + LAPACKE_cgbtrs_work + LAPACKE_cgebak + LAPACKE_cgebak_work + LAPACKE_cgebal + LAPACKE_cgebal_work + LAPACKE_cgebrd + LAPACKE_cgebrd_work + LAPACKE_cgecon + LAPACKE_cgecon_work + LAPACKE_cgeequ + LAPACKE_cgeequ_work + LAPACKE_cgeequb + LAPACKE_cgeequb_work + LAPACKE_cgees + LAPACKE_cgees_work + LAPACKE_cgeesx + LAPACKE_cgeesx_work + LAPACKE_cgeev + LAPACKE_cgeev_work + LAPACKE_cgeevx + LAPACKE_cgeevx_work + LAPACKE_cgehrd + LAPACKE_cgehrd_work + LAPACKE_cgelq2 + LAPACKE_cgelq2_work + LAPACKE_cgelqf + LAPACKE_cgelqf_work + LAPACKE_cgels + LAPACKE_cgels_work + LAPACKE_cgelsd + LAPACKE_cgelsd_work + LAPACKE_cgelss + LAPACKE_cgelss_work + LAPACKE_cgelsy + LAPACKE_cgelsy_work + LAPACKE_cgemqrt + LAPACKE_cgemqrt_work + LAPACKE_cgeqlf + LAPACKE_cgeqlf_work + LAPACKE_cgeqp3 + LAPACKE_cgeqp3_work + LAPACKE_cgeqr2 + LAPACKE_cgeqr2_work + LAPACKE_cgeqrf + LAPACKE_cgeqrf_work + LAPACKE_cgeqrfp + LAPACKE_cgeqrfp_work + LAPACKE_cgeqrt + LAPACKE_cgeqrt2 + LAPACKE_cgeqrt2_work + LAPACKE_cgeqrt3 + LAPACKE_cgeqrt3_work + LAPACKE_cgeqrt_work + LAPACKE_cgerfs + LAPACKE_cgerfs_work + LAPACKE_cgerqf + LAPACKE_cgerqf_work + LAPACKE_cgesdd + LAPACKE_cgesdd_work + LAPACKE_cgesv + LAPACKE_cgesv_work + LAPACKE_cgesvd + LAPACKE_cgesvd_work + LAPACKE_cgesvx + LAPACKE_cgesvx_work + LAPACKE_cgetf2 + LAPACKE_cgetf2_work + LAPACKE_cgetrf + LAPACKE_cgetrf_work + LAPACKE_cgetri + LAPACKE_cgetri_work + LAPACKE_cgetrs + LAPACKE_cgetrs_work + LAPACKE_cggbak + LAPACKE_cggbak_work + LAPACKE_cggbal + LAPACKE_cggbal_work + LAPACKE_cgges + LAPACKE_cgges_work + LAPACKE_cggesx + LAPACKE_cggesx_work + LAPACKE_cggev + LAPACKE_cggev_work + LAPACKE_cggevx + LAPACKE_cggevx_work + LAPACKE_cggglm + LAPACKE_cggglm_work + LAPACKE_cgghrd + LAPACKE_cgghrd_work + LAPACKE_cgglse + LAPACKE_cgglse_work + LAPACKE_cggqrf + LAPACKE_cggqrf_work + LAPACKE_cggrqf + LAPACKE_cggrqf_work + LAPACKE_cgtcon + LAPACKE_cgtcon_work + LAPACKE_cgtrfs + LAPACKE_cgtrfs_work + LAPACKE_cgtsv + LAPACKE_cgtsv_work + LAPACKE_cgtsvx + LAPACKE_cgtsvx_work + LAPACKE_cgttrf + LAPACKE_cgttrf_work + LAPACKE_cgttrs + LAPACKE_cgttrs_work + LAPACKE_chbev + LAPACKE_chbev_work + LAPACKE_chbevd + LAPACKE_chbevd_work + LAPACKE_chbevx + LAPACKE_chbevx_work + LAPACKE_chbgst + LAPACKE_chbgst_work + LAPACKE_chbgv + LAPACKE_chbgv_work + LAPACKE_chbgvd + LAPACKE_chbgvd_work + LAPACKE_chbgvx + LAPACKE_chbgvx_work + LAPACKE_chbtrd + LAPACKE_chbtrd_work + LAPACKE_checon + LAPACKE_checon_work + LAPACKE_cheequb + LAPACKE_cheequb_work + LAPACKE_cheev + LAPACKE_cheev_work + LAPACKE_cheevd + LAPACKE_cheevd_work + LAPACKE_cheevr + LAPACKE_cheevr_work + LAPACKE_cheevx + LAPACKE_cheevx_work + LAPACKE_chegst + LAPACKE_chegst_work + LAPACKE_chegv + LAPACKE_chegv_work + LAPACKE_chegvd + LAPACKE_chegvd_work + LAPACKE_chegvx + LAPACKE_chegvx_work + LAPACKE_cherfs + LAPACKE_cherfs_work + LAPACKE_chesv + LAPACKE_chesv_work + LAPACKE_chesvx + LAPACKE_chesvx_work + LAPACKE_cheswapr + LAPACKE_cheswapr_work + LAPACKE_chetrd + LAPACKE_chetrd_work + LAPACKE_chetrf + LAPACKE_chetrf_work + LAPACKE_chetri + LAPACKE_chetri2 + LAPACKE_chetri2_work + LAPACKE_chetri2x + LAPACKE_chetri2x_work + LAPACKE_chetri_work + LAPACKE_chetrs + LAPACKE_chetrs2 + LAPACKE_chetrs2_work + LAPACKE_chetrs_work + LAPACKE_chfrk + LAPACKE_chfrk_work + LAPACKE_chgeqz + LAPACKE_chgeqz_work + LAPACKE_chpcon + LAPACKE_chpcon_work + LAPACKE_chpev + LAPACKE_chpev_work + LAPACKE_chpevd + LAPACKE_chpevd_work + LAPACKE_chpevx + LAPACKE_chpevx_work + LAPACKE_chpgst + LAPACKE_chpgst_work + LAPACKE_chpgv + LAPACKE_chpgv_work + LAPACKE_chpgvd + LAPACKE_chpgvd_work + LAPACKE_chpgvx + LAPACKE_chpgvx_work + LAPACKE_chprfs + LAPACKE_chprfs_work + LAPACKE_chpsv + LAPACKE_chpsv_work + LAPACKE_chpsvx + LAPACKE_chpsvx_work + LAPACKE_chptrd + LAPACKE_chptrd_work + LAPACKE_chptrf + LAPACKE_chptrf_work + LAPACKE_chptri + LAPACKE_chptri_work + LAPACKE_chptrs + LAPACKE_chptrs_work + LAPACKE_chsein + LAPACKE_chsein_work + LAPACKE_chseqr + LAPACKE_chseqr_work + LAPACKE_clacgv + LAPACKE_clacgv_work + LAPACKE_clacn2 + LAPACKE_clacn2_work + LAPACKE_clacp2 + LAPACKE_clacp2_work + LAPACKE_clacpy + LAPACKE_clacpy_work + LAPACKE_clag2z + LAPACKE_clag2z_work + LAPACKE_clange + LAPACKE_clange_work + LAPACKE_clanhe + LAPACKE_clanhe_work + LAPACKE_clansy + LAPACKE_clansy_work + LAPACKE_clantr + LAPACKE_clantr_work + LAPACKE_clapmr + LAPACKE_clapmr_work + LAPACKE_clarfb + LAPACKE_clarfb_work + LAPACKE_clarfg + LAPACKE_clarfg_work + LAPACKE_clarft + LAPACKE_clarft_work + LAPACKE_clarfx + LAPACKE_clarfx_work + LAPACKE_clarnv + LAPACKE_clarnv_work + LAPACKE_claset + LAPACKE_claset_work + LAPACKE_claswp + LAPACKE_claswp_work + LAPACKE_clauum + LAPACKE_clauum_work + LAPACKE_cpbcon + LAPACKE_cpbcon_work + LAPACKE_cpbequ + LAPACKE_cpbequ_work + LAPACKE_cpbrfs + LAPACKE_cpbrfs_work + LAPACKE_cpbstf + LAPACKE_cpbstf_work + LAPACKE_cpbsv + LAPACKE_cpbsv_work + LAPACKE_cpbsvx + LAPACKE_cpbsvx_work + LAPACKE_cpbtrf + LAPACKE_cpbtrf_work + LAPACKE_cpbtrs + LAPACKE_cpbtrs_work + LAPACKE_cpftrf + LAPACKE_cpftrf_work + LAPACKE_cpftri + LAPACKE_cpftri_work + LAPACKE_cpftrs + LAPACKE_cpftrs_work + LAPACKE_cpocon + LAPACKE_cpocon_work + LAPACKE_cpoequ + LAPACKE_cpoequ_work + LAPACKE_cpoequb + LAPACKE_cpoequb_work + LAPACKE_cporfs + LAPACKE_cporfs_work + LAPACKE_cposv + LAPACKE_cposv_work + LAPACKE_cposvx + LAPACKE_cposvx_work + LAPACKE_cpotrf + LAPACKE_cpotrf_work + LAPACKE_cpotri + LAPACKE_cpotri_work + LAPACKE_cpotrs + LAPACKE_cpotrs_work + LAPACKE_cppcon + LAPACKE_cppcon_work + LAPACKE_cppequ + LAPACKE_cppequ_work + LAPACKE_cpprfs + LAPACKE_cpprfs_work + LAPACKE_cppsv + LAPACKE_cppsv_work + LAPACKE_cppsvx + LAPACKE_cppsvx_work + LAPACKE_cpptrf + LAPACKE_cpptrf_work + LAPACKE_cpptri + LAPACKE_cpptri_work + LAPACKE_cpptrs + LAPACKE_cpptrs_work + LAPACKE_cpstrf + LAPACKE_cpstrf_work + LAPACKE_cptcon + LAPACKE_cptcon_work + LAPACKE_cpteqr + LAPACKE_cpteqr_work + LAPACKE_cptrfs + LAPACKE_cptrfs_work + LAPACKE_cptsv + LAPACKE_cptsv_work + LAPACKE_cptsvx + LAPACKE_cptsvx_work + LAPACKE_cpttrf + LAPACKE_cpttrf_work + LAPACKE_cpttrs + LAPACKE_cpttrs_work + LAPACKE_cspcon + LAPACKE_cspcon_work + LAPACKE_csprfs + LAPACKE_csprfs_work + LAPACKE_cspsv + LAPACKE_cspsv_work + LAPACKE_cspsvx + LAPACKE_cspsvx_work + LAPACKE_csptrf + LAPACKE_csptrf_work + LAPACKE_csptri + LAPACKE_csptri_work + LAPACKE_csptrs + LAPACKE_csptrs_work + LAPACKE_cstedc + LAPACKE_cstedc_work + LAPACKE_cstegr + LAPACKE_cstegr_work + LAPACKE_cstein + LAPACKE_cstein_work + LAPACKE_cstemr + LAPACKE_cstemr_work + LAPACKE_csteqr + LAPACKE_csteqr_work + LAPACKE_csycon + LAPACKE_csycon_work + LAPACKE_csyconv + LAPACKE_csyconv_work + LAPACKE_csyequb + LAPACKE_csyequb_work + LAPACKE_csyrfs + LAPACKE_csyrfs_work + LAPACKE_csysv + LAPACKE_csysv_rook + LAPACKE_csysv_rook_work + LAPACKE_csysv_work + LAPACKE_csysvx + LAPACKE_csysvx_work + LAPACKE_csyswapr + LAPACKE_csyswapr_work + LAPACKE_csytrf + LAPACKE_csytrf_work + LAPACKE_csytri + LAPACKE_csytri2 + LAPACKE_csytri2_work + LAPACKE_csytri2x + LAPACKE_csytri2x_work + LAPACKE_csytri_work + LAPACKE_csytrs + LAPACKE_csytrs2 + LAPACKE_csytrs2_work + LAPACKE_csytrs_work + LAPACKE_ctbcon + LAPACKE_ctbcon_work + LAPACKE_ctbrfs + LAPACKE_ctbrfs_work + LAPACKE_ctbtrs + LAPACKE_ctbtrs_work + LAPACKE_ctfsm + LAPACKE_ctfsm_work + LAPACKE_ctftri + LAPACKE_ctftri_work + LAPACKE_ctfttp + LAPACKE_ctfttp_work + LAPACKE_ctfttr + LAPACKE_ctfttr_work + LAPACKE_ctgevc + LAPACKE_ctgevc_work + LAPACKE_ctgexc + LAPACKE_ctgexc_work + LAPACKE_ctgsen + LAPACKE_ctgsen_work + LAPACKE_ctgsja + LAPACKE_ctgsja_work + LAPACKE_ctgsna + LAPACKE_ctgsna_work + LAPACKE_ctgsyl + LAPACKE_ctgsyl_work + LAPACKE_ctpcon + LAPACKE_ctpcon_work + LAPACKE_ctpmqrt + LAPACKE_ctpmqrt_work + LAPACKE_ctpqrt + LAPACKE_ctpqrt2 + LAPACKE_ctpqrt2_work + LAPACKE_ctpqrt_work + LAPACKE_ctprfb + LAPACKE_ctprfb_work + LAPACKE_ctprfs + LAPACKE_ctprfs_work + LAPACKE_ctptri + LAPACKE_ctptri_work + LAPACKE_ctptrs + LAPACKE_ctptrs_work + LAPACKE_ctpttf + LAPACKE_ctpttf_work + LAPACKE_ctpttr + LAPACKE_ctpttr_work + LAPACKE_ctrcon + LAPACKE_ctrcon_work + LAPACKE_ctrevc + LAPACKE_ctrevc_work + LAPACKE_ctrexc + LAPACKE_ctrexc_work + LAPACKE_ctrrfs + LAPACKE_ctrrfs_work + LAPACKE_ctrsen + LAPACKE_ctrsen_work + LAPACKE_ctrsna + LAPACKE_ctrsna_work + LAPACKE_ctrsyl + LAPACKE_ctrsyl_work + LAPACKE_ctrtri + LAPACKE_ctrtri_work + LAPACKE_ctrtrs + LAPACKE_ctrtrs_work + LAPACKE_ctrttf + LAPACKE_ctrttf_work + LAPACKE_ctrttp + LAPACKE_ctrttp_work + LAPACKE_ctzrzf + LAPACKE_ctzrzf_work + LAPACKE_cunbdb + LAPACKE_cunbdb_work + LAPACKE_cuncsd + LAPACKE_cuncsd_work + LAPACKE_cungbr + LAPACKE_cungbr_work + LAPACKE_cunghr + LAPACKE_cunghr_work + LAPACKE_cunglq + LAPACKE_cunglq_work + LAPACKE_cungql + LAPACKE_cungql_work + LAPACKE_cungqr + LAPACKE_cungqr_work + LAPACKE_cungrq + LAPACKE_cungrq_work + LAPACKE_cungtr + LAPACKE_cungtr_work + LAPACKE_cunmbr + LAPACKE_cunmbr_work + LAPACKE_cunmhr + LAPACKE_cunmhr_work + LAPACKE_cunmlq + LAPACKE_cunmlq_work + LAPACKE_cunmql + LAPACKE_cunmql_work + LAPACKE_cunmqr + LAPACKE_cunmqr_work + LAPACKE_cunmrq + LAPACKE_cunmrq_work + LAPACKE_cunmrz + LAPACKE_cunmrz_work + LAPACKE_cunmtr + LAPACKE_cunmtr_work + LAPACKE_cupgtr + LAPACKE_cupgtr_work + LAPACKE_cupmtr + LAPACKE_cupmtr_work + LAPACKE_csyr + LAPACKE_csyr_work + LAPACKE_clatms + LAPACKE_clatms_work + LAPACKE_clagge + LAPACKE_clagge_work + LAPACKE_claghe + LAPACKE_claghe_work + LAPACKE_clagsy + LAPACKE_clagsy_work + LAPACKE_cgejsv + LAPACKE_cgejsv_work + LAPACKE_cgesvdx + LAPACKE_cgesvdx_work + LAPACKE_cgesvj + LAPACKE_cgesvj_work + LAPACKE_cgetrf2 + LAPACKE_cgetrf2_work + LAPACKE_cgges3 + LAPACKE_cgges3_work + LAPACKE_cggev3 + LAPACKE_cggev3_work + LAPACKE_cgghd3 + LAPACKE_cgghd3_work + LAPACKE_cggsvd3 + LAPACKE_cggsvd3_work + LAPACKE_cggsvp3 + LAPACKE_cggsvp3_work + LAPACKE_chetrf_rook + LAPACKE_chetrf_rook_work + LAPACKE_chetrs_rook + LAPACKE_chetrs_rook_work + LAPACKE_clapmt + LAPACKE_clapmt_work + LAPACKE_clascl + LAPACKE_clascl_work + LAPACKE_cpotrf2 + LAPACKE_cpotrf2_work + LAPACKE_csytrf_rook + LAPACKE_csytrf_rook_work + LAPACKE_csytrs_rook + LAPACKE_csytrs_rook_work + LAPACKE_cuncsd2by1 + LAPACKE_cuncsd2by1_work + LAPACKE_cgelq + LAPACKE_cgelq_work + LAPACKE_cgemlq + LAPACKE_cgemlq_work + LAPACKE_cgemqr + LAPACKE_cgemqr_work + LAPACKE_cgeqr + LAPACKE_cgeqr_work + LAPACKE_cgetsls + LAPACKE_cgetsls_work + LAPACKE_chbev_2stage + LAPACKE_chbev_2stage_work + LAPACKE_chbevd_2stage + LAPACKE_chbevd_2stage_work + LAPACKE_chbevx_2stage + LAPACKE_chbevx_2stage_work + LAPACKE_checon_3 + LAPACKE_checon_3_work + LAPACKE_cheev_2stage + LAPACKE_cheev_2stage_work + LAPACKE_cheevd_2stage + LAPACKE_cheevd_2stage_work + LAPACKE_cheevr_2stage + LAPACKE_cheevr_2stage_work + LAPACKE_cheevx_2stage + LAPACKE_cheevx_2stage_work + LAPACKE_chegv_2stage + LAPACKE_chegv_2stage_work + LAPACKE_chesv_aa + LAPACKE_chesv_aa_work + LAPACKE_chesv_rk + LAPACKE_chesv_rk_work + LAPACKE_chetrf_aa + LAPACKE_chetrf_aa_work + LAPACKE_chetrf_rk + LAPACKE_chetrf_rk_work + LAPACKE_chetri_3 + LAPACKE_chetri_3_work + LAPACKE_chetrs_aa + LAPACKE_chetrs_aa_work + LAPACKE_chetrs_3 + LAPACKE_chetrs_3_work + LAPACKE_csycon_3 + LAPACKE_csycon_3_work + LAPACKE_csysv_aa + LAPACKE_csysv_aa_work + LAPACKE_csysv_rk + LAPACKE_csysv_rk_work + LAPACKE_csytrf_aa + LAPACKE_csytrf_aa_work + LAPACKE_csytrf_rk + LAPACKE_csytrf_rk_work + LAPACKE_csytri_3 + LAPACKE_csytri_3_work + LAPACKE_csytrs_aa + LAPACKE_csytrs_aa_work + LAPACKE_csytrs_3 + LAPACKE_csytrs_3_work + LAPACKE_chesv_aa_2stage + LAPACKE_chesv_aa_2stage_work + LAPACKE_chetrf_aa_2stage + LAPACKE_chetrf_aa_2stage_work + LAPACKE_chetrs_aa_2stage + LAPACKE_chetrs_aa_2stage_work + LAPACKE_clacrm + LAPACKE_clacrm_work + LAPACKE_clarcm + LAPACKE_clarcm_work + LAPACKE_classq + LAPACKE_classq_work + LAPACKE_csysv_aa_2stage + LAPACKE_csysv_aa_2stage_work + LAPACKE_csytrf_aa_2stage + LAPACKE_csytrf_aa_2stage_work + LAPACKE_csytrs_aa_2stage + LAPACKE_csytrs_aa_2stage_work +" + +lapackeobjsd=" + LAPACKE_dgb_nancheck + LAPACKE_dgb_trans + LAPACKE_dge_nancheck + LAPACKE_dge_trans + LAPACKE_dgg_nancheck + LAPACKE_dgg_trans + LAPACKE_dgt_nancheck + LAPACKE_dhs_nancheck + LAPACKE_dhs_trans + LAPACKE_d_nancheck + LAPACKE_dpb_nancheck + LAPACKE_dpb_trans + LAPACKE_dpf_nancheck + LAPACKE_dpf_trans + LAPACKE_dpo_nancheck + LAPACKE_dpo_trans + LAPACKE_dpp_nancheck + LAPACKE_dpp_trans + LAPACKE_dpt_nancheck + LAPACKE_dsb_nancheck + LAPACKE_dsb_trans + LAPACKE_dsp_nancheck + LAPACKE_dsp_trans + LAPACKE_dst_nancheck + LAPACKE_dsy_nancheck + LAPACKE_dsy_trans + LAPACKE_dtb_nancheck + LAPACKE_dtb_trans + LAPACKE_dtf_nancheck + LAPACKE_dtf_trans + LAPACKE_dtp_nancheck + LAPACKE_dtp_trans + LAPACKE_dtr_nancheck + LAPACKE_dtr_trans + LAPACKE_dbbcsd + LAPACKE_dbbcsd_work + LAPACKE_dbdsdc + LAPACKE_dbdsdc_work + LAPACKE_dbdsqr + LAPACKE_dbdsqr_work + LAPACKE_ddisna + LAPACKE_ddisna_work + LAPACKE_dgbbrd + LAPACKE_dgbbrd_work + LAPACKE_dgbcon + LAPACKE_dgbcon_work + LAPACKE_dgbequ + LAPACKE_dgbequ_work + LAPACKE_dgbequb + LAPACKE_dgbequb_work + LAPACKE_dgbrfs + LAPACKE_dgbrfs_work + LAPACKE_dgbsv + LAPACKE_dgbsv_work + LAPACKE_dgbsvx + LAPACKE_dgbsvx_work + LAPACKE_dgbtrf + LAPACKE_dgbtrf_work + LAPACKE_dgbtrs + LAPACKE_dgbtrs_work + LAPACKE_dgebak + LAPACKE_dgebak_work + LAPACKE_dgebal + LAPACKE_dgebal_work + LAPACKE_dgebrd + LAPACKE_dgebrd_work + LAPACKE_dgecon + LAPACKE_dgecon_work + LAPACKE_dgeequ + LAPACKE_dgeequ_work + LAPACKE_dgeequb + LAPACKE_dgeequb_work + LAPACKE_dgees + LAPACKE_dgees_work + LAPACKE_dgeesx + LAPACKE_dgeesx_work + LAPACKE_dgeev + LAPACKE_dgeev_work + LAPACKE_dgeevx + LAPACKE_dgeevx_work + LAPACKE_dgehrd + LAPACKE_dgehrd_work + LAPACKE_dgejsv + LAPACKE_dgejsv_work + LAPACKE_dgelq2 + LAPACKE_dgelq2_work + LAPACKE_dgelqf + LAPACKE_dgelqf_work + LAPACKE_dgels + LAPACKE_dgels_work + LAPACKE_dgelsd + LAPACKE_dgelsd_work + LAPACKE_dgelss + LAPACKE_dgelss_work + LAPACKE_dgelsy + LAPACKE_dgelsy_work + LAPACKE_dgemqrt + LAPACKE_dgemqrt_work + LAPACKE_dgeqlf + LAPACKE_dgeqlf_work + LAPACKE_dgeqp3 + LAPACKE_dgeqp3_work + LAPACKE_dgeqr2 + LAPACKE_dgeqr2_work + LAPACKE_dgeqrf + LAPACKE_dgeqrf_work + LAPACKE_dgeqrfp + LAPACKE_dgeqrfp_work + LAPACKE_dgeqrt + LAPACKE_dgeqrt2 + LAPACKE_dgeqrt2_work + LAPACKE_dgeqrt3 + LAPACKE_dgeqrt3_work + LAPACKE_dgeqrt_work + LAPACKE_dgerfs + LAPACKE_dgerfs_work + LAPACKE_dgerqf + LAPACKE_dgerqf_work + LAPACKE_dgesdd + LAPACKE_dgesdd_work + LAPACKE_dgesv + LAPACKE_dgesv_work + LAPACKE_dgesvd + LAPACKE_dgesvd_work + LAPACKE_dgesvj + LAPACKE_dgesvj_work + LAPACKE_dgesvx + LAPACKE_dgesvx_work + LAPACKE_dgetf2 + LAPACKE_dgetf2_work + LAPACKE_dgetrf + LAPACKE_dgetrf_work + LAPACKE_dgetri + LAPACKE_dgetri_work + LAPACKE_dgetrs + LAPACKE_dgetrs_work + LAPACKE_dggbak + LAPACKE_dggbak_work + LAPACKE_dggbal + LAPACKE_dggbal_work + LAPACKE_dgges + LAPACKE_dgges_work + LAPACKE_dggesx + LAPACKE_dggesx_work + LAPACKE_dggev + LAPACKE_dggev_work + LAPACKE_dggevx + LAPACKE_dggevx_work + LAPACKE_dggglm + LAPACKE_dggglm_work + LAPACKE_dgghrd + LAPACKE_dgghrd_work + LAPACKE_dgglse + LAPACKE_dgglse_work + LAPACKE_dggqrf + LAPACKE_dggqrf_work + LAPACKE_dggrqf + LAPACKE_dggrqf_work + LAPACKE_dgtcon + LAPACKE_dgtcon_work + LAPACKE_dgtrfs + LAPACKE_dgtrfs_work + LAPACKE_dgtsv + LAPACKE_dgtsv_work + LAPACKE_dgtsvx + LAPACKE_dgtsvx_work + LAPACKE_dgttrf + LAPACKE_dgttrf_work + LAPACKE_dgttrs + LAPACKE_dgttrs_work + LAPACKE_dhgeqz + LAPACKE_dhgeqz_work + LAPACKE_dhsein + LAPACKE_dhsein_work + LAPACKE_dhseqr + LAPACKE_dhseqr_work + LAPACKE_dlacn2 + LAPACKE_dlacn2_work + LAPACKE_dlacpy + LAPACKE_dlacpy_work + LAPACKE_dlag2s + LAPACKE_dlag2s_work + LAPACKE_dlamch + LAPACKE_dlamch_work + LAPACKE_dlange + LAPACKE_dlange_work + LAPACKE_dlansy + LAPACKE_dlansy_work + LAPACKE_dlantr + LAPACKE_dlantr_work + LAPACKE_dlapmr + LAPACKE_dlapmr_work + LAPACKE_dlapy2 + LAPACKE_dlapy2_work + LAPACKE_dlapy3 + LAPACKE_dlapy3_work + LAPACKE_dlarfb + LAPACKE_dlarfb_work + LAPACKE_dlarfg + LAPACKE_dlarfg_work + LAPACKE_dlarft + LAPACKE_dlarft_work + LAPACKE_dlarfx + LAPACKE_dlarfx_work + LAPACKE_dlarnv + LAPACKE_dlarnv_work + LAPACKE_dlartgp + LAPACKE_dlartgp_work + LAPACKE_dlartgs + LAPACKE_dlartgs_work + LAPACKE_dlaset + LAPACKE_dlaset_work + LAPACKE_dlasrt + LAPACKE_dlasrt_work + LAPACKE_dlaswp + LAPACKE_dlaswp_work + LAPACKE_dlauum + LAPACKE_dlauum_work + LAPACKE_dopgtr + LAPACKE_dopgtr_work + LAPACKE_dopmtr + LAPACKE_dopmtr_work + LAPACKE_dorbdb + LAPACKE_dorbdb_work + LAPACKE_dorcsd + LAPACKE_dorcsd_work + LAPACKE_dorgbr + LAPACKE_dorgbr_work + LAPACKE_dorghr + LAPACKE_dorghr_work + LAPACKE_dorglq + LAPACKE_dorglq_work + LAPACKE_dorgql + LAPACKE_dorgql_work + LAPACKE_dorgqr + LAPACKE_dorgqr_work + LAPACKE_dorgrq + LAPACKE_dorgrq_work + LAPACKE_dorgtr + LAPACKE_dorgtr_work + LAPACKE_dormbr + LAPACKE_dormbr_work + LAPACKE_dormhr + LAPACKE_dormhr_work + LAPACKE_dormlq + LAPACKE_dormlq_work + LAPACKE_dormql + LAPACKE_dormql_work + LAPACKE_dormqr + LAPACKE_dormqr_work + LAPACKE_dormrq + LAPACKE_dormrq_work + LAPACKE_dormrz + LAPACKE_dormrz_work + LAPACKE_dormtr + LAPACKE_dormtr_work + LAPACKE_dpbcon + LAPACKE_dpbcon_work + LAPACKE_dpbequ + LAPACKE_dpbequ_work + LAPACKE_dpbrfs + LAPACKE_dpbrfs_work + LAPACKE_dpbstf + LAPACKE_dpbstf_work + LAPACKE_dpbsv + LAPACKE_dpbsv_work + LAPACKE_dpbsvx + LAPACKE_dpbsvx_work + LAPACKE_dpbtrf + LAPACKE_dpbtrf_work + LAPACKE_dpbtrs + LAPACKE_dpbtrs_work + LAPACKE_dpftrf + LAPACKE_dpftrf_work + LAPACKE_dpftri + LAPACKE_dpftri_work + LAPACKE_dpftrs + LAPACKE_dpftrs_work + LAPACKE_dpocon + LAPACKE_dpocon_work + LAPACKE_dpoequ + LAPACKE_dpoequ_work + LAPACKE_dpoequb + LAPACKE_dpoequb_work + LAPACKE_dporfs + LAPACKE_dporfs_work + LAPACKE_dposv + LAPACKE_dposv_work + LAPACKE_dposvx + LAPACKE_dposvx_work + LAPACKE_dpotrf + LAPACKE_dpotrf_work + LAPACKE_dpotri + LAPACKE_dpotri_work + LAPACKE_dpotrs + LAPACKE_dpotrs_work + LAPACKE_dppcon + LAPACKE_dppcon_work + LAPACKE_dppequ + LAPACKE_dppequ_work + LAPACKE_dpprfs + LAPACKE_dpprfs_work + LAPACKE_dppsv + LAPACKE_dppsv_work + LAPACKE_dppsvx + LAPACKE_dppsvx_work + LAPACKE_dpptrf + LAPACKE_dpptrf_work + LAPACKE_dpptri + LAPACKE_dpptri_work + LAPACKE_dpptrs + LAPACKE_dpptrs_work + LAPACKE_dpstrf + LAPACKE_dpstrf_work + LAPACKE_dptcon + LAPACKE_dptcon_work + LAPACKE_dpteqr + LAPACKE_dpteqr_work + LAPACKE_dptrfs + LAPACKE_dptrfs_work + LAPACKE_dptsv + LAPACKE_dptsv_work + LAPACKE_dptsvx + LAPACKE_dptsvx_work + LAPACKE_dpttrf + LAPACKE_dpttrf_work + LAPACKE_dpttrs + LAPACKE_dpttrs_work + LAPACKE_dsbev + LAPACKE_dsbev_work + LAPACKE_dsbevd + LAPACKE_dsbevd_work + LAPACKE_dsbevx + LAPACKE_dsbevx_work + LAPACKE_dsbgst + LAPACKE_dsbgst_work + LAPACKE_dsbgv + LAPACKE_dsbgv_work + LAPACKE_dsbgvd + LAPACKE_dsbgvd_work + LAPACKE_dsbgvx + LAPACKE_dsbgvx_work + LAPACKE_dsbtrd + LAPACKE_dsbtrd_work + LAPACKE_dsfrk + LAPACKE_dsfrk_work + LAPACKE_dsgesv + LAPACKE_dsgesv_work + LAPACKE_dspcon + LAPACKE_dspcon_work + LAPACKE_dspev + LAPACKE_dspev_work + LAPACKE_dspevd + LAPACKE_dspevd_work + LAPACKE_dspevx + LAPACKE_dspevx_work + LAPACKE_dspgst + LAPACKE_dspgst_work + LAPACKE_dspgv + LAPACKE_dspgv_work + LAPACKE_dspgvd + LAPACKE_dspgvd_work + LAPACKE_dspgvx + LAPACKE_dspgvx_work + LAPACKE_dsposv + LAPACKE_dsposv_work + LAPACKE_dsprfs + LAPACKE_dsprfs_work + LAPACKE_dspsv + LAPACKE_dspsv_work + LAPACKE_dspsvx + LAPACKE_dspsvx_work + LAPACKE_dsptrd + LAPACKE_dsptrd_work + LAPACKE_dsptrf + LAPACKE_dsptrf_work + LAPACKE_dsptri + LAPACKE_dsptri_work + LAPACKE_dsptrs + LAPACKE_dsptrs_work + LAPACKE_dstebz + LAPACKE_dstebz_work + LAPACKE_dstedc + LAPACKE_dstedc_work + LAPACKE_dstegr + LAPACKE_dstegr_work + LAPACKE_dstein + LAPACKE_dstein_work + LAPACKE_dstemr + LAPACKE_dstemr_work + LAPACKE_dsteqr + LAPACKE_dsteqr_work + LAPACKE_dsterf + LAPACKE_dsterf_work + LAPACKE_dstev + LAPACKE_dstev_work + LAPACKE_dstevd + LAPACKE_dstevd_work + LAPACKE_dstevr + LAPACKE_dstevr_work + LAPACKE_dstevx + LAPACKE_dstevx_work + LAPACKE_dsycon + LAPACKE_dsycon_work + LAPACKE_dsyconv + LAPACKE_dsyconv_work + LAPACKE_dsyequb + LAPACKE_dsyequb_work + LAPACKE_dsyev + LAPACKE_dsyev_work + LAPACKE_dsyevd + LAPACKE_dsyevd_work + LAPACKE_dsyevr + LAPACKE_dsyevr_work + LAPACKE_dsyevx + LAPACKE_dsyevx_work + LAPACKE_dsygst + LAPACKE_dsygst_work + LAPACKE_dsygv + LAPACKE_dsygv_work + LAPACKE_dsygvd + LAPACKE_dsygvd_work + LAPACKE_dsygvx + LAPACKE_dsygvx_work + LAPACKE_dsyrfs + LAPACKE_dsyrfs_work + LAPACKE_dsysv + LAPACKE_dsysv_rook + LAPACKE_dsysv_rook_work + LAPACKE_dsysv_work + LAPACKE_dsysvx + LAPACKE_dsysvx_work + LAPACKE_dsyswapr + LAPACKE_dsyswapr_work + LAPACKE_dsytrd + LAPACKE_dsytrd_work + LAPACKE_dsytrf + LAPACKE_dsytrf_work + LAPACKE_dsytri + LAPACKE_dsytri2 + LAPACKE_dsytri2_work + LAPACKE_dsytri2x + LAPACKE_dsytri2x_work + LAPACKE_dsytri_work + LAPACKE_dsytrs + LAPACKE_dsytrs2 + LAPACKE_dsytrs2_work + LAPACKE_dsytrs_work + LAPACKE_dtbcon + LAPACKE_dtbcon_work + LAPACKE_dtbrfs + LAPACKE_dtbrfs_work + LAPACKE_dtbtrs + LAPACKE_dtbtrs_work + LAPACKE_dtfsm + LAPACKE_dtfsm_work + LAPACKE_dtftri + LAPACKE_dtftri_work + LAPACKE_dtfttp + LAPACKE_dtfttp_work + LAPACKE_dtfttr + LAPACKE_dtfttr_work + LAPACKE_dtgevc + LAPACKE_dtgevc_work + LAPACKE_dtgexc + LAPACKE_dtgexc_work + LAPACKE_dtgsen + LAPACKE_dtgsen_work + LAPACKE_dtgsja + LAPACKE_dtgsja_work + LAPACKE_dtgsna + LAPACKE_dtgsna_work + LAPACKE_dtgsyl + LAPACKE_dtgsyl_work + LAPACKE_dtpcon + LAPACKE_dtpcon_work + LAPACKE_dtpmqrt + LAPACKE_dtpmqrt_work + LAPACKE_dtpqrt + LAPACKE_dtpqrt2 + LAPACKE_dtpqrt2_work + LAPACKE_dtpqrt_work + LAPACKE_dtprfb + LAPACKE_dtprfb_work + LAPACKE_dtprfs + LAPACKE_dtprfs_work + LAPACKE_dtptri + LAPACKE_dtptri_work + LAPACKE_dtptrs + LAPACKE_dtptrs_work + LAPACKE_dtpttf + LAPACKE_dtpttf_work + LAPACKE_dtpttr + LAPACKE_dtpttr_work + LAPACKE_dtrcon + LAPACKE_dtrcon_work + LAPACKE_dtrevc + LAPACKE_dtrevc_work + LAPACKE_dtrexc + LAPACKE_dtrexc_work + LAPACKE_dtrrfs + LAPACKE_dtrrfs_work + LAPACKE_dtrsen + LAPACKE_dtrsen_work + LAPACKE_dtrsna + LAPACKE_dtrsna_work + LAPACKE_dtrsyl + LAPACKE_dtrsyl_work + LAPACKE_dtrtri + LAPACKE_dtrtri_work + LAPACKE_dtrtrs + LAPACKE_dtrtrs_work + LAPACKE_dtrttf + LAPACKE_dtrttf_work + LAPACKE_dtrttp + LAPACKE_dtrttp_work + LAPACKE_dtzrzf + LAPACKE_dtzrzf_work + LAPACKE_dlatms + LAPACKE_dlatms_work + LAPACKE_dlagge + LAPACKE_dlagge_work + LAPACKE_dlagsy + LAPACKE_dlagsy_work + LAPACKE_dbdsvdx + LAPACKE_dbdsvdx_work + LAPACKE_dgesvdx + LAPACKE_dgesvdx_work + LAPACKE_dgetrf2 + LAPACKE_dgetrf2_work + LAPACKE_dgges3 + LAPACKE_dgges3_work + LAPACKE_dggev3 + LAPACKE_dggev3_work + LAPACKE_dgghd3 + LAPACKE_dgghd3_work + LAPACKE_dggsvd3 + LAPACKE_dggsvd3_work + LAPACKE_dggsvp3 + LAPACKE_dggsvp3_work + LAPACKE_dlapmt + LAPACKE_dlapmt_work + LAPACKE_dlascl + LAPACKE_dlascl_work + LAPACKE_dorcsd2by1 + LAPACKE_dorcsd2by1_work + LAPACKE_dpotrf2 + LAPACKE_dpotrf2_work + LAPACKE_dsytrf_rook + LAPACKE_dsytrf_rook_work + LAPACKE_dsytrs_rook + LAPACKE_dsytrs_rook_work + LAPACKE_dgelq + LAPACKE_dgelq_work + LAPACKE_dgemlq + LAPACKE_dgemlq_work + LAPACKE_dgemqr + LAPACKE_dgemqr_work + LAPACKE_dgeqr + LAPACKE_dgeqr_work + LAPACKE_dgetsls + LAPACKE_dgetsls_work + LAPACKE_dsbev_2stage + LAPACKE_dsbev_2stage_work + LAPACKE_dsbevd_2stage + LAPACKE_dsbevd_2stage_work + LAPACKE_dsbevx_2stage + LAPACKE_dsbevx_2stage_work + LAPACKE_dsycon_3 + LAPACKE_dsycon_3_work + LAPACKE_dsyev_2stage + LAPACKE_dsyev_2stage_work + LAPACKE_dsyevd_2stage + LAPACKE_dsyevd_2stage_work + LAPACKE_dsyevr_2stage + LAPACKE_dsyevr_2stage_work + LAPACKE_dsyevx_2stage + LAPACKE_dsyevx_2stage_work + LAPACKE_dsygv_2stage + LAPACKE_dsygv_2stage_work + LAPACKE_dsysv_aa + LAPACKE_dsysv_aa_work + LAPACKE_dsysv_rk + LAPACKE_dsysv_rk_work + LAPACKE_dsytrf_aa + LAPACKE_dsytrf_aa_work + LAPACKE_dsytrf_rk + LAPACKE_dsytrf_rk_work + LAPACKE_dsytri_3 + LAPACKE_dsytri_3_work + LAPACKE_dsytrs_aa + LAPACKE_dsytrs_aa_work + LAPACKE_dsytrs_3 + LAPACKE_dsytrs_3_work + LAPACKE_dlassq + LAPACKE_dlassq_work + LAPACKE_dsysv_aa_2stage + LAPACKE_dsysv_aa_2stage_work + LAPACKE_dsytrf_aa_2stage + LAPACKE_dsytrf_aa_2stage_work + LAPACKE_dsytrs_aa_2stage + LAPACKE_dsytrs_aa_2stage_work + LAPACKE_dgesvdq + LAPACKE_dgesvdq_work + LAPACKE_slag2d + LAPACKE_slag2d_work +" + +lapackeobjss=" + LAPACKE_sgb_nancheck + LAPACKE_sgb_trans + LAPACKE_sge_nancheck + LAPACKE_sge_trans + LAPACKE_sgg_nancheck + LAPACKE_sgg_trans + LAPACKE_sgt_nancheck + LAPACKE_shs_nancheck + LAPACKE_shs_trans + LAPACKE_s_nancheck + LAPACKE_spb_nancheck + LAPACKE_spb_trans + LAPACKE_spf_nancheck + LAPACKE_spf_trans + LAPACKE_spo_nancheck + LAPACKE_spo_trans + LAPACKE_spp_nancheck + LAPACKE_spp_trans + LAPACKE_spt_nancheck + LAPACKE_ssb_nancheck + LAPACKE_ssb_trans + LAPACKE_ssp_nancheck + LAPACKE_ssp_trans + LAPACKE_sst_nancheck + LAPACKE_ssy_nancheck + LAPACKE_ssy_trans + LAPACKE_stb_nancheck + LAPACKE_stb_trans + LAPACKE_stf_nancheck + LAPACKE_stf_trans + LAPACKE_stp_nancheck + LAPACKE_stp_trans + LAPACKE_str_nancheck + LAPACKE_str_trans + LAPACKE_sbbcsd + LAPACKE_sbbcsd_work + LAPACKE_sbdsdc + LAPACKE_sbdsdc_work + LAPACKE_sbdsqr + LAPACKE_sbdsqr_work + LAPACKE_sdisna + LAPACKE_sdisna_work + LAPACKE_sgbbrd + LAPACKE_sgbbrd_work + LAPACKE_sgbcon + LAPACKE_sgbcon_work + LAPACKE_sgbequ + LAPACKE_sgbequ_work + LAPACKE_sgbequb + LAPACKE_sgbequb_work + LAPACKE_sgbrfs + LAPACKE_sgbrfs_work + LAPACKE_sgbsv + LAPACKE_sgbsv_work + LAPACKE_sgbsvx + LAPACKE_sgbsvx_work + LAPACKE_sgbtrf + LAPACKE_sgbtrf_work + LAPACKE_sgbtrs + LAPACKE_sgbtrs_work + LAPACKE_sgebak + LAPACKE_sgebak_work + LAPACKE_sgebal + LAPACKE_sgebal_work + LAPACKE_sgebrd + LAPACKE_sgebrd_work + LAPACKE_sgecon + LAPACKE_sgecon_work + LAPACKE_sgeequ + LAPACKE_sgeequ_work + LAPACKE_sgeequb + LAPACKE_sgeequb_work + LAPACKE_sgees + LAPACKE_sgees_work + LAPACKE_sgeesx + LAPACKE_sgeesx_work + LAPACKE_sgeev + LAPACKE_sgeev_work + LAPACKE_sgeevx + LAPACKE_sgeevx_work + LAPACKE_sgehrd + LAPACKE_sgehrd_work + LAPACKE_sgejsv + LAPACKE_sgejsv_work + LAPACKE_sgelq2 + LAPACKE_sgelq2_work + LAPACKE_sgelqf + LAPACKE_sgelqf_work + LAPACKE_sgels + LAPACKE_sgels_work + LAPACKE_sgelsd + LAPACKE_sgelsd_work + LAPACKE_sgelss + LAPACKE_sgelss_work + LAPACKE_sgelsy + LAPACKE_sgelsy_work + LAPACKE_sgemqrt + LAPACKE_sgemqrt_work + LAPACKE_sgeqlf + LAPACKE_sgeqlf_work + LAPACKE_sgeqp3 + LAPACKE_sgeqp3_work + LAPACKE_sgeqr2 + LAPACKE_sgeqr2_work + LAPACKE_sgeqrf + LAPACKE_sgeqrf_work + LAPACKE_sgeqrfp + LAPACKE_sgeqrfp_work + LAPACKE_sgeqrt + LAPACKE_sgeqrt2 + LAPACKE_sgeqrt2_work + LAPACKE_sgeqrt3 + LAPACKE_sgeqrt3_work + LAPACKE_sgeqrt_work + LAPACKE_sgerfs + LAPACKE_sgerfs_work + LAPACKE_sgerqf + LAPACKE_sgerqf_work + LAPACKE_sgesdd + LAPACKE_sgesdd_work + LAPACKE_sgesv + LAPACKE_sgesv_work + LAPACKE_sgesvd + LAPACKE_sgesvd_work + LAPACKE_sgesvj + LAPACKE_sgesvj_work + LAPACKE_sgesvx + LAPACKE_sgesvx_work + LAPACKE_sgetf2 + LAPACKE_sgetf2_work + LAPACKE_sgetrf + LAPACKE_sgetrf_work + LAPACKE_sgetri + LAPACKE_sgetri_work + LAPACKE_sgetrs + LAPACKE_sgetrs_work + LAPACKE_sggbak + LAPACKE_sggbak_work + LAPACKE_sggbal + LAPACKE_sggbal_work + LAPACKE_sgges + LAPACKE_sgges_work + LAPACKE_sggesx + LAPACKE_sggesx_work + LAPACKE_sggev + LAPACKE_sggev_work + LAPACKE_sggevx + LAPACKE_sggevx_work + LAPACKE_sggglm + LAPACKE_sggglm_work + LAPACKE_sgghrd + LAPACKE_sgghrd_work + LAPACKE_sgglse + LAPACKE_sgglse_work + LAPACKE_sggqrf + LAPACKE_sggqrf_work + LAPACKE_sggrqf + LAPACKE_sggrqf_work + LAPACKE_sgtcon + LAPACKE_sgtcon_work + LAPACKE_sgtrfs + LAPACKE_sgtrfs_work + LAPACKE_sgtsv + LAPACKE_sgtsv_work + LAPACKE_sgtsvx + LAPACKE_sgtsvx_work + LAPACKE_sgttrf + LAPACKE_sgttrf_work + LAPACKE_sgttrs + LAPACKE_sgttrs_work + LAPACKE_shgeqz + LAPACKE_shgeqz_work + LAPACKE_shsein + LAPACKE_shsein_work + LAPACKE_shseqr + LAPACKE_shseqr_work + LAPACKE_slacn2 + LAPACKE_slacn2_work + LAPACKE_slacpy + LAPACKE_slacpy_work + LAPACKE_slamch + LAPACKE_slamch_work + LAPACKE_slange + LAPACKE_slange_work + LAPACKE_slansy + LAPACKE_slansy_work + LAPACKE_slantr + LAPACKE_slantr_work + LAPACKE_slapmr + LAPACKE_slapmr_work + LAPACKE_slapy2 + LAPACKE_slapy2_work + LAPACKE_slapy3 + LAPACKE_slapy3_work + LAPACKE_slarfb + LAPACKE_slarfb_work + LAPACKE_slarfg + LAPACKE_slarfg_work + LAPACKE_slarft + LAPACKE_slarft_work + LAPACKE_slarfx + LAPACKE_slarfx_work + LAPACKE_slarnv + LAPACKE_slarnv_work + LAPACKE_slartgp + LAPACKE_slartgp_work + LAPACKE_slartgs + LAPACKE_slartgs_work + LAPACKE_slaset + LAPACKE_slaset_work + LAPACKE_slasrt + LAPACKE_slasrt_work + LAPACKE_slaswp + LAPACKE_slaswp_work + LAPACKE_slauum + LAPACKE_slauum_work + LAPACKE_sopgtr + LAPACKE_sopgtr_work + LAPACKE_sopmtr + LAPACKE_sopmtr_work + LAPACKE_sorbdb + LAPACKE_sorbdb_work + LAPACKE_sorcsd + LAPACKE_sorcsd_work + LAPACKE_sorgbr + LAPACKE_sorgbr_work + LAPACKE_sorghr + LAPACKE_sorghr_work + LAPACKE_sorglq + LAPACKE_sorglq_work + LAPACKE_sorgql + LAPACKE_sorgql_work + LAPACKE_sorgqr + LAPACKE_sorgqr_work + LAPACKE_sorgrq + LAPACKE_sorgrq_work + LAPACKE_sorgtr + LAPACKE_sorgtr_work + LAPACKE_sormbr + LAPACKE_sormbr_work + LAPACKE_sormhr + LAPACKE_sormhr_work + LAPACKE_sormlq + LAPACKE_sormlq_work + LAPACKE_sormql + LAPACKE_sormql_work + LAPACKE_sormqr + LAPACKE_sormqr_work + LAPACKE_sormrq + LAPACKE_sormrq_work + LAPACKE_sormrz + LAPACKE_sormrz_work + LAPACKE_sormtr + LAPACKE_sormtr_work + LAPACKE_spbcon + LAPACKE_spbcon_work + LAPACKE_spbequ + LAPACKE_spbequ_work + LAPACKE_spbrfs + LAPACKE_spbrfs_work + LAPACKE_spbstf + LAPACKE_spbstf_work + LAPACKE_spbsv + LAPACKE_spbsv_work + LAPACKE_spbsvx + LAPACKE_spbsvx_work + LAPACKE_spbtrf + LAPACKE_spbtrf_work + LAPACKE_spbtrs + LAPACKE_spbtrs_work + LAPACKE_spftrf + LAPACKE_spftrf_work + LAPACKE_spftri + LAPACKE_spftri_work + LAPACKE_spftrs + LAPACKE_spftrs_work + LAPACKE_spocon + LAPACKE_spocon_work + LAPACKE_spoequ + LAPACKE_spoequ_work + LAPACKE_spoequb + LAPACKE_spoequb_work + LAPACKE_sporfs + LAPACKE_sporfs_work + LAPACKE_sposv + LAPACKE_sposv_work + LAPACKE_sposvx + LAPACKE_sposvx_work + LAPACKE_spotrf + LAPACKE_spotrf_work + LAPACKE_spotri + LAPACKE_spotri_work + LAPACKE_spotrs + LAPACKE_spotrs_work + LAPACKE_sppcon + LAPACKE_sppcon_work + LAPACKE_sppequ + LAPACKE_sppequ_work + LAPACKE_spprfs + LAPACKE_spprfs_work + LAPACKE_sppsv + LAPACKE_sppsv_work + LAPACKE_sppsvx + LAPACKE_sppsvx_work + LAPACKE_spptrf + LAPACKE_spptrf_work + LAPACKE_spptri + LAPACKE_spptri_work + LAPACKE_spptrs + LAPACKE_spptrs_work + LAPACKE_spstrf + LAPACKE_spstrf_work + LAPACKE_sptcon + LAPACKE_sptcon_work + LAPACKE_spteqr + LAPACKE_spteqr_work + LAPACKE_sptrfs + LAPACKE_sptrfs_work + LAPACKE_sptsv + LAPACKE_sptsv_work + LAPACKE_sptsvx + LAPACKE_sptsvx_work + LAPACKE_spttrf + LAPACKE_spttrf_work + LAPACKE_spttrs + LAPACKE_spttrs_work + LAPACKE_ssbev + LAPACKE_ssbev_work + LAPACKE_ssbevd + LAPACKE_ssbevd_work + LAPACKE_ssbevx + LAPACKE_ssbevx_work + LAPACKE_ssbgst + LAPACKE_ssbgst_work + LAPACKE_ssbgv + LAPACKE_ssbgv_work + LAPACKE_ssbgvd + LAPACKE_ssbgvd_work + LAPACKE_ssbgvx + LAPACKE_ssbgvx_work + LAPACKE_ssbtrd + LAPACKE_ssbtrd_work + LAPACKE_ssfrk + LAPACKE_ssfrk_work + LAPACKE_sspcon + LAPACKE_sspcon_work + LAPACKE_sspev + LAPACKE_sspev_work + LAPACKE_sspevd + LAPACKE_sspevd_work + LAPACKE_sspevx + LAPACKE_sspevx_work + LAPACKE_sspgst + LAPACKE_sspgst_work + LAPACKE_sspgv + LAPACKE_sspgv_work + LAPACKE_sspgvd + LAPACKE_sspgvd_work + LAPACKE_sspgvx + LAPACKE_sspgvx_work + LAPACKE_ssprfs + LAPACKE_ssprfs_work + LAPACKE_sspsv + LAPACKE_sspsv_work + LAPACKE_sspsvx + LAPACKE_sspsvx_work + LAPACKE_ssptrd + LAPACKE_ssptrd_work + LAPACKE_ssptrf + LAPACKE_ssptrf_work + LAPACKE_ssptri + LAPACKE_ssptri_work + LAPACKE_ssptrs + LAPACKE_ssptrs_work + LAPACKE_sstebz + LAPACKE_sstebz_work + LAPACKE_sstedc + LAPACKE_sstedc_work + LAPACKE_sstegr + LAPACKE_sstegr_work + LAPACKE_sstein + LAPACKE_sstein_work + LAPACKE_sstemr + LAPACKE_sstemr_work + LAPACKE_ssteqr + LAPACKE_ssteqr_work + LAPACKE_ssterf + LAPACKE_ssterf_work + LAPACKE_sstev + LAPACKE_sstev_work + LAPACKE_sstevd + LAPACKE_sstevd_work + LAPACKE_sstevr + LAPACKE_sstevr_work + LAPACKE_sstevx + LAPACKE_sstevx_work + LAPACKE_ssycon + LAPACKE_ssycon_work + LAPACKE_ssyconv + LAPACKE_ssyconv_work + LAPACKE_ssyequb + LAPACKE_ssyequb_work + LAPACKE_ssyev + LAPACKE_ssyev_work + LAPACKE_ssyevd + LAPACKE_ssyevd_work + LAPACKE_ssyevr + LAPACKE_ssyevr_work + LAPACKE_ssyevx + LAPACKE_ssyevx_work + LAPACKE_ssygst + LAPACKE_ssygst_work + LAPACKE_ssygv + LAPACKE_ssygv_work + LAPACKE_ssygvd + LAPACKE_ssygvd_work + LAPACKE_ssygvx + LAPACKE_ssygvx_work + LAPACKE_ssyrfs + LAPACKE_ssyrfs_work + LAPACKE_ssysv + LAPACKE_ssysv_rook + LAPACKE_ssysv_rook_work + LAPACKE_ssysv_work + LAPACKE_ssysvx + LAPACKE_ssysvx_work + LAPACKE_ssyswapr + LAPACKE_ssyswapr_work + LAPACKE_ssytrd + LAPACKE_ssytrd_work + LAPACKE_ssytrf + LAPACKE_ssytrf_work + LAPACKE_ssytri + LAPACKE_ssytri2 + LAPACKE_ssytri2_work + LAPACKE_ssytri2x + LAPACKE_ssytri2x_work + LAPACKE_ssytri_work + LAPACKE_ssytrs + LAPACKE_ssytrs2 + LAPACKE_ssytrs2_work + LAPACKE_ssytrs_work + LAPACKE_stbcon + LAPACKE_stbcon_work + LAPACKE_stbrfs + LAPACKE_stbrfs_work + LAPACKE_stbtrs + LAPACKE_stbtrs_work + LAPACKE_stfsm + LAPACKE_stfsm_work + LAPACKE_stftri + LAPACKE_stftri_work + LAPACKE_stfttp + LAPACKE_stfttp_work + LAPACKE_stfttr + LAPACKE_stfttr_work + LAPACKE_stgevc + LAPACKE_stgevc_work + LAPACKE_stgexc + LAPACKE_stgexc_work + LAPACKE_stgsen + LAPACKE_stgsen_work + LAPACKE_stgsja + LAPACKE_stgsja_work + LAPACKE_stgsna + LAPACKE_stgsna_work + LAPACKE_stgsyl + LAPACKE_stgsyl_work + LAPACKE_stpcon + LAPACKE_stpcon_work + LAPACKE_stpmqrt + LAPACKE_stpmqrt_work + LAPACKE_stpqrt2 + LAPACKE_stpqrt2_work + LAPACKE_stprfb + LAPACKE_stprfb_work + LAPACKE_stprfs + LAPACKE_stprfs_work + LAPACKE_stptri + LAPACKE_stptri_work + LAPACKE_stptrs + LAPACKE_stptrs_work + LAPACKE_stpttf + LAPACKE_stpttf_work + LAPACKE_stpttr + LAPACKE_stpttr_work + LAPACKE_strcon + LAPACKE_strcon_work + LAPACKE_strevc + LAPACKE_strevc_work + LAPACKE_strexc + LAPACKE_strexc_work + LAPACKE_strrfs + LAPACKE_strrfs_work + LAPACKE_strsen + LAPACKE_strsen_work + LAPACKE_strsna + LAPACKE_strsna_work + LAPACKE_strsyl + LAPACKE_strsyl_work + LAPACKE_strtri + LAPACKE_strtri_work + LAPACKE_strtrs + LAPACKE_strtrs_work + LAPACKE_strttf + LAPACKE_strttf_work + LAPACKE_strttp + LAPACKE_strttp_work + LAPACKE_stzrzf + LAPACKE_stzrzf_work + LAPACKE_slatms + LAPACKE_slatms_work + LAPACKE_slagge + LAPACKE_slagge_work + LAPACKE_slagsy + LAPACKE_slagsy_work + LAPACKE_sbdsvdx + LAPACKE_sbdsvdx_work + LAPACKE_sgesvdx + LAPACKE_sgesvdx_work + LAPACKE_sgetrf2 + LAPACKE_sgetrf2_work + LAPACKE_sgges3 + LAPACKE_sgges3_work + LAPACKE_sggev3 + LAPACKE_sggev3_work + LAPACKE_sgghd3 + LAPACKE_sgghd3_work + LAPACKE_sggsvd3 + LAPACKE_sggsvd3_work + LAPACKE_sggsvp3 + LAPACKE_sggsvp3_work + LAPACKE_slapmt + LAPACKE_slapmt_work + LAPACKE_slascl + LAPACKE_slascl_work + LAPACKE_sorcsd2by1 + LAPACKE_sorcsd2by1_work + LAPACKE_spotrf2 + LAPACKE_spotrf2_work + LAPACKE_ssytrf_rook + LAPACKE_ssytrf_rook_work + LAPACKE_ssytrs_rook + LAPACKE_ssytrs_rook_work + LAPACKE_stpqrt + LAPACKE_stpqrt_work + LAPACKE_sgelq + LAPACKE_sgelq_work + LAPACKE_sgemlq + LAPACKE_sgemlq_work + LAPACKE_sgemqr + LAPACKE_sgemqr_work + LAPACKE_sgeqr + LAPACKE_sgeqr_work + LAPACKE_sgetsls + LAPACKE_sgetsls_work + LAPACKE_ssbev_2stage + LAPACKE_ssbev_2stage_work + LAPACKE_ssbevd_2stage + LAPACKE_ssbevd_2stage_work + LAPACKE_ssbevx_2stage + LAPACKE_ssbevx_2stage_work + LAPACKE_ssycon_3 + LAPACKE_ssycon_3_work + LAPACKE_ssyev_2stage + LAPACKE_ssyev_2stage_work + LAPACKE_ssyevd_2stage + LAPACKE_ssyevd_2stage_work + LAPACKE_ssyevr_2stage + LAPACKE_ssyevr_2stage_work + LAPACKE_ssyevx_2stage + LAPACKE_ssyevx_2stage_work + LAPACKE_ssygv_2stage + LAPACKE_ssygv_2stage_work + LAPACKE_ssysv_aa + LAPACKE_ssysv_aa_work + LAPACKE_ssysv_rk + LAPACKE_ssysv_rk_work + LAPACKE_ssytrf_aa + LAPACKE_ssytrf_aa_work + LAPACKE_ssytrf_rk + LAPACKE_ssytrf_rk_work + LAPACKE_ssytri_3 + LAPACKE_ssytri_3_work + LAPACKE_ssytrs_aa + LAPACKE_ssytrs_aa_work + LAPACKE_ssytrs_3 + LAPACKE_ssytrs_3_work + LAPACKE_slassq + LAPACKE_slassq_work + LAPACKE_ssysv_aa_2stage + LAPACKE_ssysv_aa_2stage_work + LAPACKE_ssytrf_aa_2stage + LAPACKE_ssytrf_aa_2stage_work + LAPACKE_ssytrs_aa_2stage + LAPACKE_ssytrs_aa_2stage_work + LAPACKE_sgesvdq + LAPACKE_sgesvdq_work +" + +lapackeobjsz=" + LAPACKE_zgb_nancheck + LAPACKE_zgb_trans + LAPACKE_zge_nancheck + LAPACKE_zge_trans + LAPACKE_zgg_nancheck + LAPACKE_zgg_trans + LAPACKE_zgt_nancheck + LAPACKE_zhb_nancheck + LAPACKE_zhb_trans + LAPACKE_zhe_nancheck + LAPACKE_zhe_trans + LAPACKE_zhp_nancheck + LAPACKE_zhp_trans + LAPACKE_zhs_nancheck + LAPACKE_zhs_trans + LAPACKE_z_nancheck + LAPACKE_zpb_nancheck + LAPACKE_zpb_trans + LAPACKE_zpf_nancheck + LAPACKE_zpf_trans + LAPACKE_zpo_nancheck + LAPACKE_zpo_trans + LAPACKE_zpp_nancheck + LAPACKE_zpp_trans + LAPACKE_zpt_nancheck + LAPACKE_zsp_nancheck + LAPACKE_zsp_trans + LAPACKE_zst_nancheck + LAPACKE_zsy_nancheck + LAPACKE_zsy_trans + LAPACKE_ztb_nancheck + LAPACKE_ztb_trans + LAPACKE_ztf_nancheck + LAPACKE_ztf_trans + LAPACKE_ztp_nancheck + LAPACKE_ztp_trans + LAPACKE_ztr_nancheck + LAPACKE_ztr_trans + LAPACKE_zbbcsd + LAPACKE_zbbcsd_work + LAPACKE_zbdsqr + LAPACKE_zbdsqr_work + LAPACKE_zcgesv + LAPACKE_zcgesv_work + LAPACKE_zcposv + LAPACKE_zcposv_work + LAPACKE_zgbbrd + LAPACKE_zgbbrd_work + LAPACKE_zgbcon + LAPACKE_zgbcon_work + LAPACKE_zgbequ + LAPACKE_zgbequ_work + LAPACKE_zgbequb + LAPACKE_zgbequb_work + LAPACKE_zgbrfs + LAPACKE_zgbrfs_work + LAPACKE_zgbsv + LAPACKE_zgbsv_work + LAPACKE_zgbsvx + LAPACKE_zgbsvx_work + LAPACKE_zgbtrf + LAPACKE_zgbtrf_work + LAPACKE_zgbtrs + LAPACKE_zgbtrs_work + LAPACKE_zgebak + LAPACKE_zgebak_work + LAPACKE_zgebal + LAPACKE_zgebal_work + LAPACKE_zgebrd + LAPACKE_zgebrd_work + LAPACKE_zgecon + LAPACKE_zgecon_work + LAPACKE_zgeequ + LAPACKE_zgeequ_work + LAPACKE_zgeequb + LAPACKE_zgeequb_work + LAPACKE_zgees + LAPACKE_zgees_work + LAPACKE_zgeesx + LAPACKE_zgeesx_work + LAPACKE_zgeev + LAPACKE_zgeev_work + LAPACKE_zgeevx + LAPACKE_zgeevx_work + LAPACKE_zgehrd + LAPACKE_zgehrd_work + LAPACKE_zgelq2 + LAPACKE_zgelq2_work + LAPACKE_zgelqf + LAPACKE_zgelqf_work + LAPACKE_zgels + LAPACKE_zgels_work + LAPACKE_zgelsd + LAPACKE_zgelsd_work + LAPACKE_zgelss + LAPACKE_zgelss_work + LAPACKE_zgelsy + LAPACKE_zgelsy_work + LAPACKE_zgemqrt + LAPACKE_zgemqrt_work + LAPACKE_zgeqlf + LAPACKE_zgeqlf_work + LAPACKE_zgeqp3 + LAPACKE_zgeqp3_work + LAPACKE_zgeqr2 + LAPACKE_zgeqr2_work + LAPACKE_zgeqrf + LAPACKE_zgeqrf_work + LAPACKE_zgeqrfp + LAPACKE_zgeqrfp_work + LAPACKE_zgeqrt + LAPACKE_zgeqrt2 + LAPACKE_zgeqrt2_work + LAPACKE_zgeqrt3 + LAPACKE_zgeqrt3_work + LAPACKE_zgeqrt_work + LAPACKE_zgerfs + LAPACKE_zgerfs_work + LAPACKE_zgerqf + LAPACKE_zgerqf_work + LAPACKE_zgesdd + LAPACKE_zgesdd_work + LAPACKE_zgesv + LAPACKE_zgesv_work + LAPACKE_zgesvd + LAPACKE_zgesvd_work + LAPACKE_zgesvx + LAPACKE_zgesvx_work + LAPACKE_zgetf2 + LAPACKE_zgetf2_work + LAPACKE_zgetrf + LAPACKE_zgetrf_work + LAPACKE_zgetri + LAPACKE_zgetri_work + LAPACKE_zgetrs + LAPACKE_zgetrs_work + LAPACKE_zggbak + LAPACKE_zggbak_work + LAPACKE_zggbal + LAPACKE_zggbal_work + LAPACKE_zgges + LAPACKE_zgges_work + LAPACKE_zggesx + LAPACKE_zggesx_work + LAPACKE_zggev + LAPACKE_zggev_work + LAPACKE_zggevx + LAPACKE_zggevx_work + LAPACKE_zggglm + LAPACKE_zggglm_work + LAPACKE_zgghrd + LAPACKE_zgghrd_work + LAPACKE_zgglse + LAPACKE_zgglse_work + LAPACKE_zggqrf + LAPACKE_zggqrf_work + LAPACKE_zggrqf + LAPACKE_zggrqf_work + LAPACKE_zgtcon + LAPACKE_zgtcon_work + LAPACKE_zgtrfs + LAPACKE_zgtrfs_work + LAPACKE_zgtsv + LAPACKE_zgtsv_work + LAPACKE_zgtsvx + LAPACKE_zgtsvx_work + LAPACKE_zgttrf + LAPACKE_zgttrf_work + LAPACKE_zgttrs + LAPACKE_zgttrs_work + LAPACKE_zhbev + LAPACKE_zhbev_work + LAPACKE_zhbevd + LAPACKE_zhbevd_work + LAPACKE_zhbevx + LAPACKE_zhbevx_work + LAPACKE_zhbgst + LAPACKE_zhbgst_work + LAPACKE_zhbgv + LAPACKE_zhbgv_work + LAPACKE_zhbgvd + LAPACKE_zhbgvd_work + LAPACKE_zhbgvx + LAPACKE_zhbgvx_work + LAPACKE_zhbtrd + LAPACKE_zhbtrd_work + LAPACKE_zhecon + LAPACKE_zhecon_work + LAPACKE_zheequb + LAPACKE_zheequb_work + LAPACKE_zheev + LAPACKE_zheev_work + LAPACKE_zheevd + LAPACKE_zheevd_work + LAPACKE_zheevr + LAPACKE_zheevr_work + LAPACKE_zheevx + LAPACKE_zheevx_work + LAPACKE_zhegst + LAPACKE_zhegst_work + LAPACKE_zhegv + LAPACKE_zhegv_work + LAPACKE_zhegvd + LAPACKE_zhegvd_work + LAPACKE_zhegvx + LAPACKE_zhegvx_work + LAPACKE_zherfs + LAPACKE_zherfs_work + LAPACKE_zhesv + LAPACKE_zhesv_work + LAPACKE_zhesvx + LAPACKE_zhesvx_work + LAPACKE_zheswapr + LAPACKE_zheswapr_work + LAPACKE_zhetrd + LAPACKE_zhetrd_work + LAPACKE_zhetrf + LAPACKE_zhetrf_work + LAPACKE_zhetri + LAPACKE_zhetri2 + LAPACKE_zhetri2_work + LAPACKE_zhetri2x + LAPACKE_zhetri2x_work + LAPACKE_zhetri_work + LAPACKE_zhetrs + LAPACKE_zhetrs2 + LAPACKE_zhetrs2_work + LAPACKE_zhetrs_work + LAPACKE_zhfrk + LAPACKE_zhfrk_work + LAPACKE_zhgeqz + LAPACKE_zhgeqz_work + LAPACKE_zhpcon + LAPACKE_zhpcon_work + LAPACKE_zhpev + LAPACKE_zhpev_work + LAPACKE_zhpevd + LAPACKE_zhpevd_work + LAPACKE_zhpevx + LAPACKE_zhpevx_work + LAPACKE_zhpgst + LAPACKE_zhpgst_work + LAPACKE_zhpgv + LAPACKE_zhpgv_work + LAPACKE_zhpgvd + LAPACKE_zhpgvd_work + LAPACKE_zhpgvx + LAPACKE_zhpgvx_work + LAPACKE_zhprfs + LAPACKE_zhprfs_work + LAPACKE_zhpsv + LAPACKE_zhpsv_work + LAPACKE_zhpsvx + LAPACKE_zhpsvx_work + LAPACKE_zhptrd + LAPACKE_zhptrd_work + LAPACKE_zhptrf + LAPACKE_zhptrf_work + LAPACKE_zhptri + LAPACKE_zhptri_work + LAPACKE_zhptrs + LAPACKE_zhptrs_work + LAPACKE_zhsein + LAPACKE_zhsein_work + LAPACKE_zhseqr + LAPACKE_zhseqr_work + LAPACKE_zlacgv + LAPACKE_zlacgv_work + LAPACKE_zlacn2 + LAPACKE_zlacn2_work + LAPACKE_zlacp2 + LAPACKE_zlacp2_work + LAPACKE_zlacpy + LAPACKE_zlacpy_work + LAPACKE_zlag2c + LAPACKE_zlag2c_work + LAPACKE_zlange + LAPACKE_zlange_work + LAPACKE_zlanhe + LAPACKE_zlanhe_work + LAPACKE_zlansy + LAPACKE_zlansy_work + LAPACKE_zlantr + LAPACKE_zlantr_work + LAPACKE_zlapmr + LAPACKE_zlapmr_work + LAPACKE_zlarfb + LAPACKE_zlarfb_work + LAPACKE_zlarfg + LAPACKE_zlarfg_work + LAPACKE_zlarft + LAPACKE_zlarft_work + LAPACKE_zlarfx + LAPACKE_zlarfx_work + LAPACKE_zlarnv + LAPACKE_zlarnv_work + LAPACKE_zlaset + LAPACKE_zlaset_work + LAPACKE_zlaswp + LAPACKE_zlaswp_work + LAPACKE_zlauum + LAPACKE_zlauum_work + LAPACKE_zpbcon + LAPACKE_zpbcon_work + LAPACKE_zpbequ + LAPACKE_zpbequ_work + LAPACKE_zpbrfs + LAPACKE_zpbrfs_work + LAPACKE_zpbstf + LAPACKE_zpbstf_work + LAPACKE_zpbsv + LAPACKE_zpbsv_work + LAPACKE_zpbsvx + LAPACKE_zpbsvx_work + LAPACKE_zpbtrf + LAPACKE_zpbtrf_work + LAPACKE_zpbtrs + LAPACKE_zpbtrs_work + LAPACKE_zpftrf + LAPACKE_zpftrf_work + LAPACKE_zpftri + LAPACKE_zpftri_work + LAPACKE_zpftrs + LAPACKE_zpftrs_work + LAPACKE_zpocon + LAPACKE_zpocon_work + LAPACKE_zpoequ + LAPACKE_zpoequ_work + LAPACKE_zpoequb + LAPACKE_zpoequb_work + LAPACKE_zporfs + LAPACKE_zporfs_work + LAPACKE_zposv + LAPACKE_zposv_work + LAPACKE_zposvx + LAPACKE_zposvx_work + LAPACKE_zpotrf + LAPACKE_zpotrf_work + LAPACKE_zpotri + LAPACKE_zpotri_work + LAPACKE_zpotrs + LAPACKE_zpotrs_work + LAPACKE_zppcon + LAPACKE_zppcon_work + LAPACKE_zppequ + LAPACKE_zppequ_work + LAPACKE_zpprfs + LAPACKE_zpprfs_work + LAPACKE_zppsv + LAPACKE_zppsv_work + LAPACKE_zppsvx + LAPACKE_zppsvx_work + LAPACKE_zpptrf + LAPACKE_zpptrf_work + LAPACKE_zpptri + LAPACKE_zpptri_work + LAPACKE_zpptrs + LAPACKE_zpptrs_work + LAPACKE_zpstrf + LAPACKE_zpstrf_work + LAPACKE_zptcon + LAPACKE_zptcon_work + LAPACKE_zpteqr + LAPACKE_zpteqr_work + LAPACKE_zptrfs + LAPACKE_zptrfs_work + LAPACKE_zptsv + LAPACKE_zptsv_work + LAPACKE_zptsvx + LAPACKE_zptsvx_work + LAPACKE_zpttrf + LAPACKE_zpttrf_work + LAPACKE_zpttrs + LAPACKE_zpttrs_work + LAPACKE_zspcon + LAPACKE_zspcon_work + LAPACKE_zsprfs + LAPACKE_zsprfs_work + LAPACKE_zspsv + LAPACKE_zspsv_work + LAPACKE_zspsvx + LAPACKE_zspsvx_work + LAPACKE_zsptrf + LAPACKE_zsptrf_work + LAPACKE_zsptri + LAPACKE_zsptri_work + LAPACKE_zsptrs + LAPACKE_zsptrs_work + LAPACKE_zstedc + LAPACKE_zstedc_work + LAPACKE_zstegr + LAPACKE_zstegr_work + LAPACKE_zstein + LAPACKE_zstein_work + LAPACKE_zstemr + LAPACKE_zstemr_work + LAPACKE_zsteqr + LAPACKE_zsteqr_work + LAPACKE_zsycon + LAPACKE_zsycon_work + LAPACKE_zsyconv + LAPACKE_zsyconv_work + LAPACKE_zsyequb + LAPACKE_zsyequb_work + LAPACKE_zsyrfs + LAPACKE_zsyrfs_work + LAPACKE_zsysv + LAPACKE_zsysv_rook + LAPACKE_zsysv_rook_work + LAPACKE_zsysv_work + LAPACKE_zsysvx + LAPACKE_zsysvx_work + LAPACKE_zsyswapr + LAPACKE_zsyswapr_work + LAPACKE_zsytrf + LAPACKE_zsytrf_work + LAPACKE_zsytri + LAPACKE_zsytri2 + LAPACKE_zsytri2_work + LAPACKE_zsytri2x + LAPACKE_zsytri2x_work + LAPACKE_zsytri_work + LAPACKE_zsytrs + LAPACKE_zsytrs2 + LAPACKE_zsytrs2_work + LAPACKE_zsytrs_work + LAPACKE_ztbcon + LAPACKE_ztbcon_work + LAPACKE_ztbrfs + LAPACKE_ztbrfs_work + LAPACKE_ztbtrs + LAPACKE_ztbtrs_work + LAPACKE_ztfsm + LAPACKE_ztfsm_work + LAPACKE_ztftri + LAPACKE_ztftri_work + LAPACKE_ztfttp + LAPACKE_ztfttp_work + LAPACKE_ztfttr + LAPACKE_ztfttr_work + LAPACKE_ztgevc + LAPACKE_ztgevc_work + LAPACKE_ztgexc + LAPACKE_ztgexc_work + LAPACKE_ztgsen + LAPACKE_ztgsen_work + LAPACKE_ztgsja + LAPACKE_ztgsja_work + LAPACKE_ztgsna + LAPACKE_ztgsna_work + LAPACKE_ztgsyl + LAPACKE_ztgsyl_work + LAPACKE_ztpcon + LAPACKE_ztpcon_work + LAPACKE_ztpmqrt + LAPACKE_ztpmqrt_work + LAPACKE_ztpqrt + LAPACKE_ztpqrt2 + LAPACKE_ztpqrt2_work + LAPACKE_ztpqrt_work + LAPACKE_ztprfb + LAPACKE_ztprfb_work + LAPACKE_ztprfs + LAPACKE_ztprfs_work + LAPACKE_ztptri + LAPACKE_ztptri_work + LAPACKE_ztptrs + LAPACKE_ztptrs_work + LAPACKE_ztpttf + LAPACKE_ztpttf_work + LAPACKE_ztpttr + LAPACKE_ztpttr_work + LAPACKE_ztrcon + LAPACKE_ztrcon_work + LAPACKE_ztrevc + LAPACKE_ztrevc_work + LAPACKE_ztrexc + LAPACKE_ztrexc_work + LAPACKE_ztrrfs + LAPACKE_ztrrfs_work + LAPACKE_ztrsen + LAPACKE_ztrsen_work + LAPACKE_ztrsna + LAPACKE_ztrsna_work + LAPACKE_ztrsyl + LAPACKE_ztrsyl_work + LAPACKE_ztrtri + LAPACKE_ztrtri_work + LAPACKE_ztrtrs + LAPACKE_ztrtrs_work + LAPACKE_ztrttf + LAPACKE_ztrttf_work + LAPACKE_ztrttp + LAPACKE_ztrttp_work + LAPACKE_ztzrzf + LAPACKE_ztzrzf_work + LAPACKE_zunbdb + LAPACKE_zunbdb_work + LAPACKE_zuncsd + LAPACKE_zuncsd_work + LAPACKE_zungbr + LAPACKE_zungbr_work + LAPACKE_zunghr + LAPACKE_zunghr_work + LAPACKE_zunglq + LAPACKE_zunglq_work + LAPACKE_zungql + LAPACKE_zungql_work + LAPACKE_zungqr + LAPACKE_zungqr_work + LAPACKE_zungrq + LAPACKE_zungrq_work + LAPACKE_zungtr + LAPACKE_zungtr_work + LAPACKE_zunmbr + LAPACKE_zunmbr_work + LAPACKE_zunmhr + LAPACKE_zunmhr_work + LAPACKE_zunmlq + LAPACKE_zunmlq_work + LAPACKE_zunmql + LAPACKE_zunmql_work + LAPACKE_zunmqr + LAPACKE_zunmqr_work + LAPACKE_zunmrq + LAPACKE_zunmrq_work + LAPACKE_zunmrz + LAPACKE_zunmrz_work + LAPACKE_zunmtr + LAPACKE_zunmtr_work + LAPACKE_zupgtr + LAPACKE_zupgtr_work + LAPACKE_zupmtr + LAPACKE_zupmtr_work + LAPACKE_zsyr + LAPACKE_zsyr_work + LAPACKE_zlatms + LAPACKE_zlatms_work + LAPACKE_zlagge + LAPACKE_zlagge_work + LAPACKE_zlaghe + LAPACKE_zlaghe_work + LAPACKE_zlagsy + LAPACKE_zlagsy_work + LAPACKE_zgejsv + LAPACKE_zgejsv_work + LAPACKE_zgesvdx + LAPACKE_zgesvdx_work + LAPACKE_zgesvj + LAPACKE_zgesvj_work + LAPACKE_zgetrf2 + LAPACKE_zgetrf2_work + LAPACKE_zgges3 + LAPACKE_zgges3_work + LAPACKE_zggev3 + LAPACKE_zggev3_work + LAPACKE_zgghd3 + LAPACKE_zgghd3_work + LAPACKE_zggsvd3 + LAPACKE_zggsvd3_work + LAPACKE_zggsvp3 + LAPACKE_zggsvp3_work + LAPACKE_zhetrf_rook + LAPACKE_zhetrf_rook_work + LAPACKE_zhetrs_rook + LAPACKE_zhetrs_rook_work + LAPACKE_zlapmt + LAPACKE_zlapmt_work + LAPACKE_zlascl + LAPACKE_zlascl_work + LAPACKE_zpotrf2 + LAPACKE_zpotrf2_work + LAPACKE_zsytrf_rook + LAPACKE_zsytrf_rook_work + LAPACKE_zsytrs_rook + LAPACKE_zsytrs_rook_work + LAPACKE_zuncsd2by1 + LAPACKE_zuncsd2by1_work + LAPACKE_zgelq + LAPACKE_zgelq_work + LAPACKE_zgemlq + LAPACKE_zgemlq_work + LAPACKE_zgemqr + LAPACKE_zgemqr_work + LAPACKE_zgeqr + LAPACKE_zgeqr_work + LAPACKE_zgetsls + LAPACKE_zgetsls_work + LAPACKE_zhbev_2stage + LAPACKE_zhbev_2stage_work + LAPACKE_zhbevd_2stage + LAPACKE_zhbevd_2stage_work + LAPACKE_zhbevx_2stage + LAPACKE_zhbevx_2stage_work + LAPACKE_zhecon_3 + LAPACKE_zhecon_3_work + LAPACKE_zheev_2stage + LAPACKE_zheev_2stage_work + LAPACKE_zheevd_2stage + LAPACKE_zheevd_2stage_work + LAPACKE_zheevr_2stage + LAPACKE_zheevr_2stage_work + LAPACKE_zheevx_2stage + LAPACKE_zheevx_2stage_work + LAPACKE_zhegv_2stage + LAPACKE_zhegv_2stage_work + LAPACKE_zhesv_aa + LAPACKE_zhesv_aa_work + LAPACKE_zhesv_rk + LAPACKE_zhesv_rk_work + LAPACKE_zhetrf_aa + LAPACKE_zhetrf_aa_work + LAPACKE_zhetrf_rk + LAPACKE_zhetrf_rk_work + LAPACKE_zhetri_3 + LAPACKE_zhetri_3_work + LAPACKE_zhetrs_aa + LAPACKE_zhetrs_aa_work + LAPACKE_zhetrs_3 + LAPACKE_zhetrs_3_work + LAPACKE_zsycon_3 + LAPACKE_zsycon_3_work + LAPACKE_zsysv_aa + LAPACKE_zsysv_aa_work + LAPACKE_zsysv_rk + LAPACKE_zsysv_rk_work + LAPACKE_zsytrf_aa + LAPACKE_zsytrf_aa_work + LAPACKE_zsytrf_rk + LAPACKE_zsytrf_rk_work + LAPACKE_zsytri_3 + LAPACKE_zsytri_3_work + LAPACKE_zsytrs_aa + LAPACKE_zsytrs_aa_work + LAPACKE_zsytrs_3 + LAPACKE_zsytrs_3_work + LAPACKE_zhesv_aa_2stage + LAPACKE_zhesv_aa_2stage_work + LAPACKE_zhetrf_aa_2stage + LAPACKE_zhetrf_aa_2stage_work + LAPACKE_zhetrs_aa_2stage + LAPACKE_zhetrs_aa_2stage_work + LAPACKE_zlacrm + LAPACKE_zlacrm_work + LAPACKE_zlarcm + LAPACKE_zlarcm_work + LAPACKE_zlassq + LAPACKE_zlassq_work + LAPACKE_zsysv_aa_2stage + LAPACKE_zsysv_aa_2stage_work + LAPACKE_zsytrf_aa_2stage + LAPACKE_zsytrf_aa_2stage_work + LAPACKE_zsytrs_aa_2stage + LAPACKE_zsytrs_aa_2stage_work + LAPACKE_zgesvdq LAPACKE_zgesvdq_work -); +" +## @(SRCX_OBJ) from `lapack-3.4.1/lapacke/src/Makefile` +## Not exported: requires LAPACKE_EXTENDED to be set and depends on the +## corresponding LAPACK extended precision routines. +#LAPACKE_cgbrfsx, +#LAPACKE_cporfsx, +#LAPACKE_dgerfsx, +#LAPACKE_sgbrfsx, +#LAPACKE_ssyrfsx, +#LAPACKE_zherfsx, +#LAPACKE_cgbrfsx_work, +#LAPACKE_cporfsx_work, +#LAPACKE_dgerfsx_work, +#LAPACKE_sgbrfsx_work, +#LAPACKE_ssyrfsx_work, +#LAPACKE_zherfsx_work, +#LAPACKE_cgerfsx, +#LAPACKE_csyrfsx, +#LAPACKE_dporfsx, +#LAPACKE_sgerfsx, +#LAPACKE_zgbrfsx, +#LAPACKE_zporfsx, +#LAPACKE_cgerfsx_work, +#LAPACKE_csyrfsx_work, +#LAPACKE_dporfsx_work, +#LAPACKE_sgerfsx_work, +#LAPACKE_zgbrfsx_work, +#LAPACKE_zporfsx_work, +#LAPACKE_cherfsx, +#LAPACKE_dgbrfsx, +#LAPACKE_dsyrfsx, +#LAPACKE_sporfsx, +#LAPACKE_zgerfsx, +#LAPACKE_zsyrfsx, +#LAPACKE_cherfsx_work, +#LAPACKE_dgbrfsx_work, +#LAPACKE_dsyrfsx_work, +#LAPACKE_sporfsx_work, +#LAPACKE_zgerfsx_work, +#LAPACKE_zsyrfsx_work, +#LAPACKE_cgbsvxx, +#LAPACKE_cposvxx, +#LAPACKE_dgesvxx, +#LAPACKE_sgbsvxx, +#LAPACKE_ssysvxx, +#LAPACKE_zhesvxx, +#LAPACKE_cgbsvxx_work, +#LAPACKE_cposvxx_work, +#LAPACKE_dgesvxx_work, +#LAPACKE_sgbsvxx_work, +#LAPACKE_ssysvxx_work, +#LAPACKE_zhesvxx_work, +#LAPACKE_cgesvxx, +#LAPACKE_csysvxx, +#LAPACKE_dposvxx, +#LAPACKE_sgesvxx, +#LAPACKE_zgbsvxx, +#LAPACKE_zposvxx, +#LAPACKE_cgesvxx_work, +#LAPACKE_csysvxx_work, +#LAPACKE_dposvxx_work, +#LAPACKE_sgesvxx_work, +#LAPACKE_zgbsvxx_work, +#LAPACKE_zposvxx_work, +#LAPACKE_chesvxx, +#LAPACKE_dgbsvxx, +#LAPACKE_dsysvxx, +#LAPACKE_sposvxx, +#LAPACKE_zgesvxx, +#LAPACKE_zsysvxx, +#LAPACKE_chesvxx_work, +#LAPACKE_dgbsvxx_work, +#LAPACKE_dsysvxx_work, +#LAPACKE_sposvxx_work, +#LAPACKE_zgesvxx_work, +#LAPACKE_zsysvxx_work, + +## @(MATGEN_OBJ) from `lapack-3.4.1/lapacke/src/Makefile` +## Not exported: requires LAPACKE_TESTING to be set and depends on libtmg +## (see `lapack-3.4.1/TESTING/MATGEN`). #These function may need 2 underscores. -@lapack_embeded_underscore_objs=( - xerbla_array, chla_transtype, - ); -@lapack_embeded_underscore_objs_s=( - slasyf_rook, - ssytf2_rook, ssytrf_rook, ssytrs_rook, - ssytri_rook, ssycon_rook, ssysv_rook, - slasyf_rk, ssyconvf_rook, ssytf2_rk, - ssytrf_rk, ssytrs_3, ssytri_3, - ssytri_3x, ssycon_3, ssysv_rk, - slasyf_aa, ssysv_aa, ssytrf_aa, - ssytrs_aa, ssytrd_2stage, ssytrd_sy2sb, - ssytrd_sb2st, ssb2st_kernels, ssyevd_2stage, - ssyev_2stage, ssyevx_2stage, ssyevr_2stage, - ssbev_2stage, ssbevx_2stage, ssbevd_2stage, - ssygv_2stage, - ssysv_aa_2stage, ssytrf_aa_2stage, - ssytrs_aa_2stage, - slaorhr_col_getrfnp, slaorhr_col_getrfnp2, sorhr_col, -); -@lapack_embeded_underscore_objs_c=( - chetf2_rook, chetrf_rook, chetri_rook, - chetrs_rook, checon_rook, chesv_rook, - clahef_rook, clasyf_rook, - csytf2_rook, csytrf_rook, csytrs_rook, - csytri_rook, csycon_rook, csysv_rook, - chetf2_rk, - chetrf_rk, chetri_3, chetri_3x, - chetrs_3, checon_3, chesv_rk, - chesv_aa, chetrf_aa, chetrs_aa, - clahef_aa, clahef_rk, clasyf_rk, - clasyf_aa, csytf2_rk, csytrf_rk, - csytrf_aa, csytrs_3, csytrs_aa, - csytri_3, csytri_3x, csycon_3, - csysv_rk, csysv_aa, csyconvf_rook, - chetrd_2stage, chetrd_he2hb, chetrd_hb2st, - chb2st_kernels, cheevd_2stage, cheev_2stage, - cheevx_2stage, cheevr_2stage, chbev_2stage, - chbevx_2stage, chbevd_2stage, chegv_2stage, - chesv_aa_2stage, - chetrf_aa_2stage, chetrs_aa_2stage, - csysv_aa_2stage, csytrf_aa_2stage, - csytrs_aa_2stage, - claunhr_col_getrfnp, claunhr_col_getrfnp2, cunhr_col, -); -@lapack_embeded_underscore_objs_d=( - dlasyf_rook, - dsytf2_rook, dsytrf_rook, dsytrs_rook, - dsytri_rook, dsycon_rook, dsysv_rook, - dlasyf_rk, dsyconvf_rook, - dsytf2_rk, dsytrf_rk, dsytrs_3, - dsytri_3, dsytri_3x, dsycon_3, - dsysv_rk, dlasyf_aa, dsysv_aa, - dsytrf_aa, dsytrs_aa, dsytrd_2stage, - dsytrd_sy2sb, dsytrd_sb2st, dsb2st_kernels, - dsyevd_2stage, dsyev_2stage, dsyevx_2stage, - dsyevr_2stage, dsbev_2stage, dsbevx_2stage, - dsbevd_2stage, dsygv_2stage, - dsysv_aa_2stage, - dsytrf_aa_2stage, dsytrs_aa_2stage, - dlaorhr_col_getrfnp, dlaorhr_col_getrfnp2, dorhr_col, -); -@lapack_embeded_underscore_objs_z=( - zhetf2_rook, zhetrf_rook, zhetri_rook, - zhetrs_rook, zhecon_rook, zhesv_rook, - zlahef_rook, zlasyf_rook, - zsytf2_rook, zsytrf_rook, zsytrs_rook, - zsytri_rook, zsycon_rook, zsysv_rook, - zhetf2_rk, zhetrf_rk, zhetri_3, - zhetri_3x, zhetrs_3, zhecon_3, - zhesv_rk, zhesv_aa, zhetrf_aa, - zhetrs_aa, zlahef_aa, zlahef_rk, - zlasyf_rk, zlasyf_aa, zsyconvf_rook, - zsytrs_aa, zsytf2_rk, zsytrf_rk, - zsytrf_aa, zsytrs_3, zsytri_3, - zsytri_3x, zsycon_3, zsysv_rk, - zsysv_aa, zhetrd_2stage, zhetrd_he2hb, - zhetrd_hb2st, zhb2st_kernels, zheevd_2stage, - zheev_2stage, zheevx_2stage, zheevr_2stage, - zhbev_2stage, zhbevx_2stage, zhbevd_2stage, - zhegv_2stage, - zhesv_aa_2stage, zhetrf_aa_2stage, - zhetrs_aa_2stage, zsysv_aa_2stage, - zsytrf_aa_2stage, zsytrs_aa_2stage, - zlaunhr_col_getrfnp, zlaunhr_col_getrfnp2, zunhr_col -); +lapack_embeded_underscore_objs=" + xerbla_array chla_transtype + " +lapack_embeded_underscore_objs_s=" + slasyf_rook + ssytf2_rook ssytrf_rook ssytrs_rook + ssytri_rook ssycon_rook ssysv_rook + slasyf_rk ssyconvf_rook ssytf2_rk + ssytrf_rk ssytrs_3 ssytri_3 + ssytri_3x ssycon_3 ssysv_rk + slasyf_aa ssysv_aa ssytrf_aa + ssytrs_aa ssytrd_2stage ssytrd_sy2sb + ssytrd_sb2st ssb2st_kernels ssyevd_2stage + ssyev_2stage ssyevx_2stage ssyevr_2stage + ssbev_2stage ssbevx_2stage ssbevd_2stage + ssygv_2stage + ssysv_aa_2stage ssytrf_aa_2stage + ssytrs_aa_2stage + slaorhr_col_getrfnp slaorhr_col_getrfnp2 sorhr_col +" +lapack_embeded_underscore_objs_c=" + chetf2_rook chetrf_rook chetri_rook + chetrs_rook checon_rook chesv_rook + clahef_rook clasyf_rook + csytf2_rook csytrf_rook csytrs_rook + csytri_rook csycon_rook csysv_rook + chetf2_rk + chetrf_rk chetri_3 chetri_3x + chetrs_3 checon_3 chesv_rk + chesv_aa chetrf_aa chetrs_aa + clahef_aa clahef_rk clasyf_rk + clasyf_aa csytf2_rk csytrf_rk + csytrf_aa csytrs_3 csytrs_aa + csytri_3 csytri_3x csycon_3 + csysv_rk csysv_aa csyconvf_rook + chetrd_2stage chetrd_he2hb chetrd_hb2st + chb2st_kernels cheevd_2stage cheev_2stage + cheevx_2stage cheevr_2stage chbev_2stage + chbevx_2stage chbevd_2stage chegv_2stage + chesv_aa_2stage + chetrf_aa_2stage chetrs_aa_2stage + csysv_aa_2stage csytrf_aa_2stage + csytrs_aa_2stage + claunhr_col_getrfnp claunhr_col_getrfnp2 cunhr_col +" +lapack_embeded_underscore_objs_d=" + dlasyf_rook + dsytf2_rook dsytrf_rook dsytrs_rook + dsytri_rook dsycon_rook dsysv_rook + dlasyf_rk dsyconvf_rook + dsytf2_rk dsytrf_rk dsytrs_3 + dsytri_3 dsytri_3x dsycon_3 + dsysv_rk dlasyf_aa dsysv_aa + dsytrf_aa dsytrs_aa dsytrd_2stage + dsytrd_sy2sb dsytrd_sb2st dsb2st_kernels + dsyevd_2stage dsyev_2stage dsyevx_2stage + dsyevr_2stage dsbev_2stage dsbevx_2stage + dsbevd_2stage dsygv_2stage + dsysv_aa_2stage + dsytrf_aa_2stage dsytrs_aa_2stage + dlaorhr_col_getrfnp dlaorhr_col_getrfnp2 dorhr_col +" +lapack_embeded_underscore_objs_z=" + zhetf2_rook zhetrf_rook zhetri_rook + zhetrs_rook zhecon_rook zhesv_rook + zlahef_rook zlasyf_rook + zsytf2_rook zsytrf_rook zsytrs_rook + zsytri_rook zsycon_rook zsysv_rook + zhetf2_rk zhetrf_rk zhetri_3 + zhetri_3x zhetrs_3 zhecon_3 + zhesv_rk zhesv_aa zhetrf_aa + zhetrs_aa zlahef_aa zlahef_rk + zlasyf_rk zlasyf_aa zsyconvf_rook + zsytrs_aa zsytf2_rk zsytrf_rk + zsytrf_aa zsytrs_3 zsytri_3 + zsytri_3x zsycon_3 zsysv_rk + zsysv_aa zhetrd_2stage zhetrd_he2hb + zhetrd_hb2st zhb2st_kernels zheevd_2stage + zheev_2stage zheevx_2stage zheevr_2stage + zhbev_2stage zhbevx_2stage zhbevd_2stage + zhegv_2stage + zhesv_aa_2stage zhetrf_aa_2stage + zhetrs_aa_2stage zsysv_aa_2stage + zsytrf_aa_2stage zsytrs_aa_2stage + zlaunhr_col_getrfnp zlaunhr_col_getrfnp2 zunhr_col +" +dirname=`pwd`/lapack-netlib -use File::Spec; -use File::Basename; -my $dirname = File::Spec->catfile(dirname(dirname(File::Spec->rel2abs(__FILE__))), "lapack-netlib"); +p1=$1 +p2=$2 +p3=$3 +p4=$4 +p5=$5 +p6=$6 +p7=$7 +p8=$8 +p9=$9 +shift +p10=$9 +shift +p11=$9 +shift +p12=$9 +shift +p13=$9 +shift +p14=$9 +shift +p15=$9 +shift +p16=$9 +shift +p17=$9 -if ($ARGV[12] == 1) { - @blasobjs = (@blasobjs, @bfblasobjs); - @cblasobjs = (@cblasobjs, @bfcblasobjs); -} -if ($ARGV[13] == 1) { - @blasobjs = (@blasobjs, @blasobjss); - @cblasobjs = (@cblasobjs, @cblasobjss); - @lapackobjs = (@lapackobjs, @lapackobjss); - @lapackobjs2 = (@lapackobjs2, @lapackobjs2s); - @lapackobjs2 = (@lapackobjs2, @lapackobjs2sc); - @lapackobjs2 = (@lapackobjs2, @lapackobjs2ds); - @lapack_deprecated_objs = (@lapack_deprecated_objs, @lapack_deprecated_objss); - @lapacke_deprecated_objs = (@lapacke_deprecated_objs, @lapacke_deprecated_objss); - @lapack_embeded_underscore_objs = (@lapack_embeded_underscore_objs, @lapack_embeded_underscore_objs_s); - @lapackeobjs = (@lapackeobjs, @lapackeobjss); -} -if ($ARGV[14] == 1) { - @blasobjs = (@blasobjs, @blasobjsd); - @cblasobjs = (@cblasobjs, @cblasobjsd); - @lapackobjs = (@lapackobjs, @lapackobjsd); - if ($ARGV[13] == 0) { - @lapackobjs2 = (@lapackobjs2, @lapackobjs2ds); - } - @lapackobjs2 = (@lapackobjs2, @lapackobjs2d, @lapackobjs2dz); - @lapack_deprecated_objs = (@lapack_deprecated_objs, @lapack_deprecated_objsd); - @lapacke_deprecated_objs = (@lapacke_deprecated_objs, @lapacke_deprecated_objsd); - @lapack_embeded_underscore_objs = (@lapack_embeded_underscore_objs, @lapack_embeded_underscore_objs_d); - @lapackeobjs = (@lapackeobjs, @lapackeobjsd); -} -if ($ARGV[15] == 1) { - @blasobjs = (@blasobjs, @blasobjsc); - @cblasobjs = (@cblasobjs, @cblasobjsc); - @gemm3mobjs = (@gemm3mobjs, @gemm3mobjsc); - @cblasgemm3mobjs = (@cblasgemm3mobjs, @cblasgemm3mobjsc); - @lapackobjs = (@lapackobjs, @lapackobjsc); - @lapackobjs2 = (@lapackobjs2, @lapackobjs2c, @lapackobjs2zc); - if ($ARGV[13] == 0) { - @lapackobjs2 = (@lapackobjs2, @lapackobjs2sc); - } - @lapack_deprecated_objs = (@lapack_deprecated_objs, @lapack_deprecated_objsc); - @lapacke_deprecated_objs = (@lapacke_deprecated_objs, @lapacke_deprecated_objsc); - @lapack_embeded_underscore_objs = (@lapack_embeded_underscore_objs, @lapack_embeded_underscore_objs_c); - @lapackeobjs = (@lapackeobjs, @lapackeobjsc); -} -if ($ARGV[16] == 1) { - @blasobjs = (@blasobjs, @blasobjsz); - @cblasobjs = (@cblasobjs, @cblasobjsz); - @gemm3mobjs = (@gemm3mobjs, @gemm3mobjsz); - @cblasgemm3mobjs = (@cblasgemm3mobjs, @cblasgemm3mobjsz); - @lapackobjs = (@lapackobjs, @lapackobjsz); - @lapackobjs2 = (@lapackobjs2, @lapackobjs2z); - if ($ARGV[15] == 0) { - @lapackobjs2 = (@lapackobjs2, @lapackobjs2zc); - } - if ($ARGV[14] == 0) { - @lapackobjs2 = (@lapackobjs2, @lapackobjs2dz); - } - @lapack_deprecated_objs = (@lapack_deprecated_objs, @lapack_deprecated_objsz); - @lapacke_deprecated_objs = (@lapacke_deprecated_objs, @lapacke_deprecated_objsz); - @lapack_embeded_underscore_objs = (@lapack_embeded_underscore_objs, @lapack_embeded_underscore_objs_z); - @lapackeobjs = (@lapackeobjs, @lapackeobjsz); -} -if ($ARGV[8] == 1) { +if [ $p13 -eq 1 ]; then + blasobjs="$blasobjs $bfblasobjs" + cblasobjs="$cblasobjs $bfcblasobjs" +fi + +if [ $p14 -eq 1 ]; then + blasobjs="$blasobjs $blasobjss" + cblasobjs="$cblasobjs $cblasobjss" + lapackobjs="$lapackobjs $lapackobjss" + lapackobjs2="$lapackobjs2 $lapackobjs2s" + lapackobjs2="$lapackobjs2 $lapackobjs2sc" + lapackobjs2="$lapackobjs2 $lapackobjs2ds" + lapack_deprecated_objs="$lapack_deprecated_objs $lapack_deprecated_objss" + lapacke_deprecated_objs="$lapacke_deprecated_objs $lapacke_deprecated_objss" + lapack_embeded_underscore_objs="$lapack_embeded_underscore_objs $lapack_embeded_underscore_objs_s" + lapackeobjs="$lapackeobjs $lapackeobjss" +fi + +if [ $p15 -eq 1 ]; then + blasobjs="$blasobjs $blasobjsd" + cblasobjs="$cblasobjs $cblasobjsd" + lapackobjs="$lapackobjs $lapackobjsd" + if [ $p14 -eq 0 ]; then + lapackobjs2="$lapackobjs2 $lapackobjs2ds" + fi + lapackobjs2="$lapackobjs2 $lapackobjs2d $lapackobjs2dz" + lapack_deprecated_objs="$lapack_deprecated_objs $lapack_deprecated_objsd" + lapacke_deprecated_objs="$lapacke_deprecated_objs $lapacke_deprecated_objsd" + lapack_embeded_underscore_objs="$lapack_embeded_underscore_objs $lapack_embeded_underscore_objs_d" + lapackeobjs="$lapackeobjs $lapackeobjsd" +fi + +if [ $p16 -eq 1 ]; then + blasobjs="$blasobjs $blasobjsc" + cblasobjs="$cblasobjs $cblasobjsc" + gemm3mobjs="$gemm3mobjs $gemm3mobjsc" + cblasgemm3mobjs="$cblasgemm3mobjs $cblasgemm3mobjsc" + lapackobjs="$lapackobjs $lapackobjsc" + lapackobjs2="$lapackobjs2 $lapackobjs2c $lapackobjs2zc" + if [ $p14 -eq 0 ]; then + lapackobjs2="$lapackobjs2 $lapackobjs2sc" + fi + lapack_deprecated_objs="$lapack_deprecated_objs $lapack_deprecated_objsc" + lapacke_deprecated_objs="$lapacke_deprecated_objs $lapacke_deprecated_objsc" + lapack_embeded_underscore_objs="$lapack_embeded_underscore_objs $lapack_embeded_underscore_objs_c" + lapackeobjs="$lapackeobjs $lapackeobjsc" +fi + +if [ $p17 -eq 1 ]; then + blasobjs="$blasobjs $blasobjsz" + cblasobjs="$cblasobjs $cblasobjsz" + gemm3mobjs="$gemm3mobjs $gemm3mobjsz" + cblasgemm3mobjs="$cblasgemm3mobjs $cblasgemm3mobjsz" + lapackobjs="$lapackobjs $lapackobjsz" + lapackobjs2="$lapackobjs2 $lapackobjs2z" + if [ $p16 -eq 0 ]; then + lapackobjs2="$lapackobjs2 $lapackobjs2zc" + fi + if [ $p15 -eq 0 ]; then + lapackobjs2="$lapackobjs2 $lapackobjs2dz" + fi + lapack_deprecated_objs="$lapack_deprecated_objs $lapack_deprecated_objsz" + lapacke_deprecated_objs="$lapacke_deprecated_objs $lapacke_deprecated_objsz" + lapack_embeded_underscore_objs="$lapack_embeded_underscore_objs $lapack_embeded_underscore_objs_z" + lapackeobjs="$lapackeobjs $lapackeobjsz" +fi + +if [ $p9 -eq 1 ]; then #ONLY_CBLAS=1 - @underscore_objs = (@misc_underscore_objs); -} elsif ($ARGV[5] == 1) { + underscore_objs="$misc_underscore_objs" +elif [ $p6 -eq 1 ]; then #NO_LAPACK=1 - @underscore_objs = (@blasobjs, @misc_underscore_objs); -} elsif (-d $dirname) { - if ($ARGV[7] == 0) { + underscore_objs="$blasobjs $misc_underscore_objs" +elif [ -d "$dirname" ]; then + if [ $p8 -eq 0 ]; then # NEED2UNDERSCORES=0 # Don't need 2 underscores - @underscore_objs = (@blasobjs, @lapackobjs, @lapackobjs2, @misc_underscore_objs, @lapack_embeded_underscore_objs); - } else { + underscore_objs="$blasobjs $lapackobjs $lapackobjs2 $misc_underscore_objs $lapack_embeded_underscore_objs" + else # Need 2 underscores - @underscore_objs = (@blasobjs, @lapackobjs, @lapackobjs2, @misc_underscore_objs); - @need_2underscore_objs = (@lapack_embeded_underscore_objs); - }; + underscore_objs="$blasobjs $lapackobjs $lapackobjs2 $misc_underscore_objs" + need_2underscore_objs="$lapack_embeded_underscore_objs" + fi - if ($ARGV[11] == 1) { + if [ $p12 -eq 1 ]; then #BUILD_LAPACK_DEPRECATED=1 - @underscore_objs = (@underscore_objs, @lapack_deprecated_objs); - } -} else { - @underscore_objs = (@blasobjs, @lapackobjs, @misc_underscore_objs); -} + underscore_objs="$underscore_objs $lapack_deprecated_objs" + fi +else + underscore_objs="$blasobjs $lapackobjs $misc_underscore_objs" +fi -if ($ARGV[8] == 1) { - #ONLY_CBLAS=1 - @gemm3mobjs=(); - @exblasobjs=(); -} +if [ $p9 -eq 1 ]; then + # ONLY_CBLAS=1 + gemm3mobjs='' + exblasobjs='' +fi -if ($ARGV[3] == 1) { - @underscore_objs = (@underscore_objs, @exblasobjs); -}; +if [ $p4 -eq 1 ]; then + underscore_objs="$underscore_objs $exblasobjs" +fi -if ($ARGV[1] eq "x86_64") { @underscore_objs = (@underscore_objs, @gemm3mobjs); }; -if ($ARGV[1] eq "x86") { @underscore_objs = (@underscore_objs, @gemm3mobjs); }; -if ($ARGV[1] eq "ia64") { @underscore_objs = (@underscore_objs, @gemm3mobjs); }; -if ($ARGV[1] eq "MIPS") { @underscore_objs = (@underscore_objs, @gemm3mobjs); }; +case $p2 in + x86_64|x86|ia64|MIPS) + underscore_objs="$underscore_objs $gemm3mobjs" + ;; +esac -if ($ARGV[4] == 0) { - @no_underscore_objs = (@cblasobjs, @misc_no_underscore_objs); - if ($ARGV[1] eq "x86_64") { @no_underscore_objs = (@no_underscore_objs, @cblasgemm3mobjs); }; - if ($ARGV[1] eq "x86") { @no_underscore_objs = (@no_underscore_objs, @cblasgemm3mobjs); }; - if ($ARGV[1] eq "ia64") { @no_underscore_objs = (@no_underscore_objs, @cblasgemm3mobjs); }; - if ($ARGV[1] eq "MIPS") { @no_underscore_objs = (@no_underscore_objs, @cblasgemm3mobjs); }; -}else{ - #NO_CBLAS=1 - @no_underscore_objs = (@misc_no_underscore_objs); -} -if ($ARGV[6] == 1) { - #NO_LAPACKE=1 - @no_underscore_objs = (@no_underscore_objs); -} else { - if ($ARGV[11] == 1) { - #BUILD_LAPACK_DEPRECATED=1 - @no_underscore_objs = (@no_underscore_objs, @lapackeobjs, @lapacke_deprecated_objs); - } else { - @no_underscore_objs = (@no_underscore_objs, @lapackeobjs); - } -} +if [ $p5 -eq 0 ]; then + no_underscore_objs="$cblasobjs $misc_no_underscore_objs" + case $p2 in + x86_64|x86|ia64|MIPS) + no_underscore_objs="$no_underscore_objs $cblasgemm3mobjs" + ;; + esac +else + # NO_CBLAS=1 + no_underscore_objs="$misc_no_underscore_objs" +fi -@hplobjs = (daxpy, dcopy, dscal, idamax, dgemv, dtrsv, dger, dgemm, dtrsm); -@hplobjs2 = (HPL_dlaswp00N, HPL_dlaswp01N, HPL_dlaswp01T); +if [ $p7 -ne 1 ]; then + if [ $p12 -eq 1 ]; then + # BUILD_LAPACK_DEPRECATED=1 + no_underscore_objs="$no_underscore_objs $lapackeobjs $lapacke_deprecated_objs" + else + no_underscore_objs="$no_underscore_objs $lapackeobjs" + fi +fi -$bu = $ARGV[2]; +hplobjs="daxpy dcopy dscal idamax dgemv dtrsv dger dgemm dtrsm" +#hplobjs2="HPL_dlaswp00N HPL_dlaswp01N HPL_dlaswp01T" -$bu = "" if (($bu eq "0") || ($bu eq "1")); +bu="$p3" -$symbolprefix = $ARGV[9]; +if [ "$bu" = "0" ] || [ "$bu" = "1" ]; then + bu="" +fi -$symbolsuffix = $ARGV[10]; +symbolprefix=$p10 +symbolsuffix=$p11 -if ($ARGV[0] eq "osx") { - @underscore_objs = (@underscore_objs, @misc_common_objs); - @no_underscore_objs = (@no_underscore_objs, @misc_common_objs); +case "$p1" in + osx) + underscore_objs="$underscore_objs $misc_common_objs" + no_underscore_objs="$no_underscore_objs $misc_common_objs" - foreach $objs (@underscore_objs) { - print "_", $symbolprefix, $objs, $bu, $symbolsuffix, "\n"; - } + for obj in $underscore_objs; do + printf '_%s%s%s%s\n' "$symbolprefix" "$obj" "$bu" "$symbolsuffix" + done - foreach $objs (@need_2underscore_objs) { - print "_", $symbolprefix, $objs, $bu, $bu, $symbolsuffix, "\n"; - } + for obj in $need_2underscore_objs; do + printf '_%s%s%s%s%s\n' "$symbolprefix" "$obj" "$bu" "$bu" "$symbolsuffix" + done - foreach $objs (@no_underscore_objs) { - print "_", $symbolprefix, $objs, $symbolsuffix, "\n"; - } - exit(0); -} + for obj in $no_underscore_objs; do + printf '_%s%s%s\n' "$symbolprefix" "$obj" "$symbolsuffix" + done + ;; -if ($ARGV[0] eq "aix"){ - @underscore_objs = (@underscore_objs, @misc_common_objs); - @no_underscore_objs = (@no_underscore_objs, @misc_common_objs); + aix) + underscore_objs="$underscore_objs $misc_common_objs" + no_underscore_objs="$no_underscore_objs $misc_common_objs" - foreach $objs (@underscore_objs) { - print $symbolprefix, $objs, $bu, $symbolsuffix, "\n"; - } + for obj in $underscore_objs; do + printf '_%s%s%s%s\n' "$symbolprefix" "$obj" "$bu" "$symbolsuffix" + done - foreach $objs (@need_2underscore_objs) { - print $symbolprefix, $objs, $bu, $bu, $symbolsuffix, "\n"; - } + for obj in $need_2underscore_objs; do + printf '_%s%s%s%s%s\n' "$symbolprefix" "$obj" "$bu" "$bu" "$symbolsuffix" + done - foreach $objs (@no_underscore_objs) { - print $symbolprefix, $objs, $symbolsuffix, "\n"; - } - exit(0); -} + for obj in $no_underscore_objs; do + printf '_%s%s%s\n' "$symbolprefix" "$obj" "$symbolsuffix" + done + ;; -if ($ARGV[0] eq "objcopy") { - @underscore_objs = (@underscore_objs, @misc_common_objs); - @no_underscore_objs = (@no_underscore_objs, @misc_common_objs); + objcopy) + underscore_objs="$underscore_objs $misc_common_objs" + no_underscore_objs="$no_underscore_objs $misc_common_objs" - foreach $objs (@underscore_objs) { - print $objs, $bu, " ", $symbolprefix, $objs, $bu, $symbolsuffix, "\n"; - } + for obj in $underscore_objs; do + printf '%s%s %s%s%s%s\n' "$obj" "$bu" \ + "$symbolprefix" "$obj" "$bu" "$symbolsuffix" + done - foreach $objs (@need_2underscore_objs) { - print $objs, $bu, $bu, " ", $symbolprefix, $objs, $bu, $bu, $symbolsuffix, "\n"; - } + for obj in $need_2underscore_objs; do + printf '%s%s%s %s%s%s%s%s\n' "$obj" "$bu" "$bu" \ + "$symbolprefix" "$obj" "$bu" "$bu" "$symbolsuffix" + done - foreach $objs (@no_underscore_objs) { - print $objs, " ", $symbolprefix, $objs, $symbolsuffix, "\n"; - } - exit(0); -} + for obj in $no_underscore_objs; do + printf '%s %s%s%s\n' "$obj" "$symbolprefix" "$obj" "$symbolsuffix" + done + ;; -if ($ARGV[0] eq "objconv") { - @underscore_objs = (@underscore_objs, @misc_common_objs); - @no_underscore_objs = (@no_underscore_objs, @misc_common_objs); + objconv) + underscore_objs="$underscore_objs $misc_common_objs" + no_underscore_objs="$no_underscore_objs $misc_common_objs" - foreach $objs (@underscore_objs) { - print "-nr:_", $objs, $bu, ":_", $symbolprefix, $objs, $bu, $symbolsuffix, "\n"; - } + for obj in $underscore_objs; do + printf -- '-nr:_%s%s:_%s%s%s%s\n' "$obj" "$bu" \ + "$symbolprefix" "$obj" "$bu" "$symbolsuffix" + done - foreach $objs (@need_2underscore_objs) { - print "-nr:_", $objs, $bu, $bu, ":_", $symbolprefix, $objs, $bu, $bu, $symbolsuffix, "\n"; - } + for obj in $need_2underscore_objs; do + printf -- '-nr:_%s%s%s:_%s%s%s%s%s\n' "$obj" "$bu" "$bu" \ + "$symbolprefix" "$obj" "$bu" "$bu" "$symbolsuffix" + done - foreach $objs (@no_underscore_objs) { - print "-nr:_", $objs, ":_", $symbolprefix, $objs, $symbolsuffix, "\n"; - } - exit(0); -} + for obj in $no_underscore_objs; do + printf -- '-nr:_%s:_%s%s%s\n' "$obj" \ + "$symbolprefix" "$obj" "$symbolsuffix" + done + ;; -if ($ARGV[0] eq "win2k"){ - print "EXPORTS\n"; - $count = 1; + win2k) + printf 'EXPORTS\n' + count=1 - @no_underscore_objs = (@no_underscore_objs, @misc_common_objs); + no_underscore_objs="$no_underscore_objs $misc_common_objs" - foreach $objs (@underscore_objs) { - $uppercase = $objs; - $uppercase =~ tr/[a-z]/[A-Z]/; - print "\t",$symbolprefix, $objs, $symbolsuffix, "=$objs","_ \@", $count, "\n"; - $count ++; - print "\t",$symbolprefix, $objs, "_", $symbolsuffix, "=$objs","_ \@", $count, "\n"; - $count ++; - print "\t",$symbolprefix, $uppercase, $symbolsuffix, "=$objs", "_ \@", $count, "\n"; - $count ++; - } + for obj in $underscore_objs; do + uppercase=`echo "$obj" | tr '[[:lower:]]' '[[:upper:]]'` + printf '\t%s%s%s=%s_ @%s\n' \ + "$symbolprefix" "$obj" "$symbolsuffix" "$obj" "$count" + count=`expr $count + 1` + printf '\t%s%s_%s=%s_ @%s\n' \ + "$symbolprefix" "$obj" "$symbolsuffix" "$obj" "$count" + count=`expr $count + 1` + printf '\t%s%s%s=%s_ @%s\n' \ + "$symbolprefix" "$uppercase" "$symbolsuffix" "$obj" "$count" + count=`expr $count + 1` + done - foreach $objs (@need_2underscore_objs) { - $uppercase = $objs; - $uppercase =~ tr/[a-z]/[A-Z]/; - print "\t",$symbolprefix, $objs, $symbolsuffix, "=$objs","__ \@", $count, "\n"; - $count ++; - print "\t",$symbolprefix, $objs, "__", $symbolsuffix, "=$objs","__ \@", $count, "\n"; - $count ++; - print "\t",$symbolprefix, $uppercase, $symbolsuffix, "=$objs", "__ \@", $count, "\n"; - $count ++; - } + for obj in $need_2underscore_objs; do + uppercase=`echo "$obj" | tr '[[:lower:]]' '[[:upper:]]'` + printf '\t%s%s%s=%s__ @%s\n' \ + "$symbolprefix" "$obj" "$symbolsuffix" "$obj" "$count" + count=`expr $count + 1` + printf '\t%s%s__%s=%s__ @%s\n' \ + "$symbolprefix" "$obj" "$symbolsuffix" "$obj" "$count" + count=`expr $count + 1` + printf '\t%s%s%s=%s__ @%s\n' \ + "$symbolprefix" "$uppercase" "$symbolsuffix" "$obj" "$count" + count=`expr $count + 1` + done - #for misc_common_objs - foreach $objs (@misc_common_objs) { - $uppercase = $objs; - $uppercase =~ tr/[a-z]/[A-Z]/; - print "\t",$symbolprefix, $objs, "_", $symbolsuffix, "=$objs","_ \@", $count, "\n"; - $count ++; - print "\t",$symbolprefix, $uppercase, $symbolsuffix, "=$objs", "_ \@", $count, "\n"; - $count ++; - } + for obj in $misc_common_objs; do + uppercase=`echo "$obj" | tr '[[:lower:]]' '[[:upper:]]'` + printf '\t%s%s_%s=%s_ @%s\n' \ + "$symbolprefix" "$obj" "$symbolsuffix" "$obj" "$count" + count=`expr $count + 1` + printf '\t%s%s%s=%s_ @%s\n' \ + "$symbolprefix" "$uppercase" "$symbolsuffix" "$obj" "$count" + count=`expr $count + 1` + done + for obj in $no_underscore_objs; do + printf '\t%s%s%s=%s @%s\n' \ + "$symbolprefix" "$obj" "$symbolsuffix" "$obj" "$count" + count=`expr $count + 1` + done + ;; - foreach $objs (@no_underscore_objs) { - print "\t",$symbolprefix,$objs,$symbolsuffix,"=$objs"," \@", $count, "\n"; - $count ++; - } + win2khpl) + printf 'EXPORTS\n' + count=1 + for obj in $hplobjs; do + uppercase=`echo "$obj" | tr '[[:lower:]]' '[[:upper:]]'` + printf '\t%s%s%s=%s_ @%s\n' \ + "$symbolprefix" "$obj" "$symbolsuffix" "$obj" "$count" + count=`expr $count + 1` + printf '\t%s%s_%s=%s_ @%s\n' \ + "$symbolprefix" "$obj" "$symbolsuffix" "$obj" "$count" + count=`expr $count + 1` + printf '\t%s%s%s=%s_ @%s\n' \ + "$symbolprefix" "$uppercase" "$symbolsuffix" "$obj" "$count" + count=`expr $count + 1` + done + ;; - exit(0); -} + microsoft) + underscore_objs="$underscore_objs $misc_common_objs" -if ($ARGV[0] eq "win2khpl") { - print "EXPORTS\n"; - $count = 1; - foreach $objs (@hplobjs) { - $uppercase = $objs; - $uppercase =~ tr/[a-z]/[A-Z]/; - print "\t",$symbolprefix, $objs, $symbolsuffix, "=$objs","_ \@", $count, "\n"; - $count ++; - print "\t",$symbolprefix, $objs, "_", $symbolsuffix, "=$objs","_ \@", $count, "\n"; - $count ++; - print "\t",$symbolprefix, $uppercase, $symbolsuffix, "=$objs", "_ \@", $count, "\n"; - $count ++; - } + printf 'EXPORTS\n' + count=1 + for obj in $underscore_objs; do + uppercase=`echo "$obj" | tr '[[:lower:]]' '[[:upper:]]'` + printf '\t%s%s%s = %s_\n' \ + "$symbolprefix" "$obj" "$symbolsuffix" "$obj" + count=`expr $count + 1` + printf '\t%s%s_%s = %s_\n' \ + "$symbolprefix" "$obj" "$symbolsuffix" "$obj" + count=`expr $count + 1` + printf '\t%s%s%s = %s_\n' \ + "$symbolprefix" "$uppercase" "$symbolsuffix" "$obj" + count=`expr $count + 1` + printf '\t%s%s_%s = %s_\n' \ + "$symbolprefix" "$uppercase" "$symbolsuffix" "$obj" + count=`expr $count + 1` + done - exit(0); -} + for obj in $need_2underscore_objs; do + uppercase=`echo "$obj" | tr '[[:lower:]]' '[[:upper:]]'` + printf '\t%s%s%s=%s__ @%s\n' \ + "$symbolprefix" "$obj" "$symbolsuffix" "$obj" "$count" + count=`expr $count + 1` + printf '\t%s%s__%s=%s__ @%s\n' \ + "$symbolprefix" "$obj" "$symbolsuffix" "$obj" "$count" + count=`expr $count + 1` + printf '\t%s%s%s=%s__ @%s\n' \ + "$symbolprefix" "$uppercase" "$symbolsuffix" "$obj" "$count" + count=`expr $count + 1` + done + ;; -if ($ARGV[0] eq "microsoft"){ - @underscore_objs = (@underscore_objs, @misc_common_objs); + linktest) - print "EXPORTS\n"; - $count = 1; - foreach $objs (@underscore_objs) { - $uppercase = $objs; - $uppercase =~ tr/[a-z]/[A-Z]/; - print "\t",$symbolprefix, $objs, $symbolsuffix, " = $objs","_\n"; - $count ++; - print "\t",$symbolprefix, $objs, "\_", $symbolsuffix, " = $objs","_\n"; - $count ++; - print "\t",$symbolprefix, $uppercase, $symbolsuffix, " = $objs","_\n"; - $count ++; - print "\t",$symbolprefix, $uppercase, "\_", $symbolsuffix, " = $objs","_\n"; - $count ++; - } + underscore_objs="$underscore_objs $misc_common_objs" + no_underscore_objs="$no_underscore_objs $misc_common_objs" - foreach $objs (@need_2underscore_objs) { - $uppercase = $objs; - $uppercase =~ tr/[a-z]/[A-Z]/; - print "\t",$symbolprefix, $objs, $symbolsuffix, "=$objs","__ \@", $count, "\n"; - $count ++; - print "\t",$symbolprefix, $objs, "__", $symbolsuffix, "=$objs","__ \@", $count, "\n"; - $count ++; - print "\t",$symbolprefix, $uppercase, $symbolsuffix, "=$objs", "__ \@", $count, "\n"; - $count ++; - } + printf 'int main(void){\n' + for obj in $underscore_objs; do + [ "$obj" != "xerbla" ] && printf '%s%s%s%s();\n' \ + "$symbolprefix" "$obj" "$bu" "$symbolsuffix" + done - exit(0); -} + for obj in $need_2underscore_objs; do + printf '%s%s%s%s%s();\n' \ + "$symbolprefix" "$obj" "$bu" "$bu" "$symbolsuffix" + done -if ($ARGV[0] eq "linktest") { - @underscore_objs = (@underscore_objs, @misc_common_objs); - @no_underscore_objs = (@no_underscore_objs, @misc_common_objs); + for obj in $no_underscore_objs; do + printf '%s%s%s();\n' \ + "$symbolprefix" "$obj" "$symbolsuffix" + done - print "int main(void){\n"; - foreach $objs (@underscore_objs) { - print $symbolprefix, $objs, $bu, $symbolsuffix, "();\n" if $objs ne "xerbla"; - } - - foreach $objs (@need_2underscore_objs) { - print $symbolprefix, $objs, $bu, $bu, $symbolsuffix, "();\n"; - } - - foreach $objs (@no_underscore_objs) { - print $symbolprefix, $objs, $symbolsuffix, "();\n"; - } - - print "return 0;}\n"; - exit(0); -} + printf 'return 0;}\n' + ;; +esac diff --git a/f_check b/f_check old mode 100644 new mode 100755 index 71293b53f..7be51e96f --- a/f_check +++ b/f_check @@ -1,6 +1,16 @@ -#!/usr/bin/env perl +#!/bin/sh -$hostos = `uname -s | sed -e s/\-.*//`; chop($hostos); +split() { + set -f + old_ifs=$IFS + IFS=$2 + set -- $1 + printf '%s ' "$@" + IFS=$old_ifs + set +f +} + +hostos="$(uname -s | sed 's/\-.*//')" # # 1. Not specified @@ -12,407 +22,386 @@ $hostos = `uname -s | sed -e s/\-.*//`; chop($hostos); # 2.2.2 Path is not correct, invalid compiler name, then gfortran is default with NOFORTRAN definition # -$makefile = shift(@ARGV); -$config = shift(@ARGV); +makefile="$1" +config="$2" -$nofortran = 0; +nofortran=0 + +shift 2 +compiler="$*" +compiler_bin="$1" -$compiler = join(" ", @ARGV); -$compiler_bin = shift(@ARGV); - # f77 is too ambiguous -$compiler = "" if $compiler eq "f77"; +[ "$compiler" = "f77" ] && compiler='' -@path = split(/:/, $ENV{"PATH"}); +path=`split "$PATH" ':'` -if ($compiler eq "") { +if [ -z "$compiler" ]; then - @lists = ("gfortran", "g95", "frt", "fort", "openf90", "openf95", - "sunf77", "sunf90", "sunf95", - "xlf95", "xlf90", "xlf", - "ppuf77", "ppuf95", "ppuf90", "ppuxlf", - "pathf90", "pathf95", - "pgf95", "pgf90", "pgf77", "pgfortran", "nvfortran", - "flang", "egfortran", - "ifort", "nagfor"); + lists="gfortran g95 frt fort openf90 openf95 + sunf77 sunf90 sunf95 + xlf95 xlf90 xlf + ppuf77 ppuf95 ppuf90 ppuxlf + pathf90 pathf95 + pgf95 pgf90 pgf77 pgfortran nvfortran + flang egfortran + ifort nagfor" -OUTER: - foreach $lists (@lists) { - foreach $path (@path) { - if (-x $path . "/" . $lists) { - $compiler = $lists; - $compiler_bin = $lists; - last OUTER; + for list in $lists; do + for p in $path; do + if [ -x "$p/$list" ]; then + compiler=$list + compiler_bin=$list + break 2 + fi + done + done +fi + +if [ -z "$compiler" ]; then + + nofortran=1 + compiler=gfortran + vendor=GFORTRAN + bu="_" + +else + { + data="$(command -v "$compiler_bin" >/dev/null 2>&1)" + vendor="" + } && { + data=`$compiler -O2 -S ftest.f > /dev/null 2>&1 && cat ftest.s && rm -f ftest.s` + if [ -z "$data" ]; then + data=`$compiler -O2 -S ftest.f > /dev/null 2>&1 && cat ftest.c && rm -f ftest.c` + fi + + case "$data" in *zhoge_*) bu=_ ;; esac + + case "$data" in + *Fujitsu*) + vendor=FUJITSU + openmp='-Kopenmp' + ;; + *GNU*|*GCC*) + + v="${data##*GCC: *\) }" + v="${v%%\"*}" + + major="${v%%.*}" + + if [ "$major" -ge 4 ]; then + vendor=GFORTRAN + openmp='-fopenmp' + else + case "$compiler" in + *flang*) + vendor=FLANG + openmp='-fopenmp' + ;; + *pgf*|*nvf*) + vendor=PGI + openmp='-mp' + ;; + *) + vendor=G77 + openmp='' + ;; + esac + fi + ;; + *g95*) + vendor=G95 + openmp='' + ;; + *Intel*) + vendor=INTEL + openmp='-fopenmp' + ;; + *'Sun Fortran'*) + vendor=SUN + openmp='-xopenmp=parallel' + ;; + *PathScale*) + vendor=PATHSCALE + openmp='-openmp' + ;; + *Open64*) + vendor=OPEN64 + openmp='-mp' + ;; + *PGF*|*NVF*) + vendor=PGI + openmp='-mp' + ;; + *'IBM XL'*) + vendor=IBM + openmp='-openmp' + ;; + *NAG*) + vendor=NAG + openmp='-openmp' + ;; + esac + + # for embedded underscore name, e.g. zho_ge, it may append 2 underscores. + data=`$compiler -O2 -S ftest3.f >/dev/null 2>&1 && cat ftest3.s && rm -f ftest3.s` + + [ -z "$data" ] && { + data=`$compiler -O2 -S ftest3.f >/dev/null 2>&1 && cat ftest3.c && rm -f ftest3.c` + } + + case "$data" in *' zho_ge__'*) need2bu=1 ;; esac + case "$vendor" in *G95*) [ "$NO_LAPACKE" != 1 ] && need2bu='' ;; esac + } + + if [ -z "$vendor" ]; then + case "$compiler" in + *g77*) + vendor=G77 + bu=_ + openmp='' + ;; + *g95*) + vendor=G95 + bu=_ + openmp='' + ;; + *gfortran*) + vendor=GFORTRAN + bu=_ + openmp='-fopenmp' + ;; + *ifort*) + vendor=INTEL + bu=_ + openmp='-fopenmp' + ;; + *pathf*) + vendor=PATHSCALE + bu=_ + openmp='-mp' + ;; + *pgf*|*nvf*) + vendor=PGI + bu=_ + openmp='-mp' + ;; + *ftn*) + vendor=PGI + bu=_ + openmp=-openmp + ;; + *frt*) + vendor=FUJITSU + bu=_ + openmp='-openmp' + ;; + *sunf77*|*sunf90*|*sunf95*) + vendor=SUN + bu=_ + openmp='-xopenmp=parallel' + ;; + *ppuf*|*xlf*) + vendor=IBM + openmp='-openmp' + ;; + *open64*) + vendor=OPEN64 + openmp='-mp' + ;; + *flang*) + vendor=FLANG + bu=_ + openmp='-fopenmp' + ;; + *nagfor*) + vendor=NAG + bu=_ + openmp='-openmp' + ;; + esac + + if [ -z "$vendor" ]; then + nofortran=1 + compiler="gfortran" + vendor=GFORTRAN + bu=_ + openmp='' + fi + fi +fi + +{ + data=`command -v $compiler_bin >/dev/null 2>&1` +} && { + + binary=$BINARY + + [ "$USE_OPENMP" != 1 ] && openmp='' + + case "$binary" in + 32) + { + link=`$compiler $openmp -m32 -v ftest2.f 2>&1 && rm -f a.out a.exe` + } || { + link=`$compiler $openmp -q32 -v ftest2.f 2>&1 && rm -f a.out a.exe` + } || { + # for AIX + link=`$compiler $openmp -maix32 -v ftest2.f 2>&1 && rm -f a.out a.exe` + } || { + # for gfortran MIPS + mips_data=`$compiler_bin -E -dM - < /dev/null` + case "$mips_data" in + *_MIPS_ISA_MIPS64*) + link=`$compiler $openmp -mabi=n32 -v ftest2.f 2>&1 && rm -f a.out a.exe` + ;; + *) + link=`$compiler $openmp -mabi=32 -v ftest2.f 2>&1 && rm -f a.out a.exe` + ;; + esac + } || { + binary='' } - } - } + ;; + 64) + { + link=`$compiler $openmp -m64 -v ftest2.f 2>&1 && rm -f a.out a.exe` + } || { + link=`$compiler $openmp -q64 -v ftest2.f 2>&1 && rm -f a.out a.exe` + } || { + # for AIX + link=`$compiler $openmp -maix64 -v ftest2.f 2>&1 && rm -f a.out a.exe` + } || { + # for gfortran MIPS + link=`$compiler $openmp -mabi=64 -v ftest2.f 2>&1 && rm -f a.out a.exe` + } || { + # for nagfor + link=`$compiler $openmp -dryrun ftest2.f 2>&1 && rm -f a.out a.exe` + } || { + binary='' + } + ;; + esac + if [ -z "$binary" ]; then + link=`$compiler $openmp -v ftest2.f 2>&1 && rm -f a.out a.exe` + fi } -if ($compiler eq "") { +if [ "$vendor" = "NAG" ]; then + link=`$compiler $openmp -dryrun ftest2.f 2>&1 && rm -f a.out a.exe` +fi +linker_L="" +linker_l="" +linker_a="" - $nofortran = 1; - $compiler = "gfortran"; - $vendor = GFORTRAN; - $bu = "_"; +if [ -n "$link" ]; then -} else { + link=`echo "$link" | sed 's/\-Y[[:space:]]P\,/\-Y/g'` - $data = `which $compiler_bin > /dev/null 2> /dev/null`; - $vendor = ""; + link=`echo "$link" | sed 's/\-R[[:space:]]*/\-rpath\%/g'` - if (!$?) { + link=`echo "$link" | sed 's/\-rpath[[:space:]]+/\-rpath\%/g'` - $data = `$compiler -O2 -S ftest.f > /dev/null 2>&1 && cat ftest.s && rm -f ftest.s`; - if ($data eq "") { - $data = `$compiler -O2 -S ftest.f > /dev/null 2>&1 && cat ftest.c && rm -f ftest.c`; - } - if ($data =~ /zhoge_/) { - $bu = "_"; - } + link=`echo "$link" | sed 's/\-rpath-link[[:space:]]+/\-rpath-link\%/g'` - if ($data =~ /Fujitsu/) { - - $vendor = FUJITSU; - $openmp = "-Kopenmp"; - - } elsif ($data =~ /GNU/ || $data =~ /GCC/ ) { - - $data =~ s/\(+.*?\)+//g; - $data =~ /(\d+)\.(\d+).(\d+)/; - $major = $1; - $minor = $2; - - if ($major >= 4) { - $vendor = GFORTRAN; - $openmp = "-fopenmp"; - } else { - if ($compiler =~ /flang/) { - $vendor = FLANG; - $openmp = "-fopenmp"; - } elsif ($compiler =~ /pgf/ || $compiler =~ /nvf/) { - $vendor = PGI; - $openmp = "-mp"; - } else { - $vendor = G77; - $openmp = ""; - } - } - - } - - if ($data =~ /g95/) { - $vendor = G95; - $openmp = ""; - } - - if ($data =~ /Intel/) { - $vendor = INTEL; - $openmp = "-fopenmp"; - } - - if ($data =~ /Sun Fortran/) { - $vendor = SUN; - $openmp = "-xopenmp=parallel"; - } - - if ($data =~ /PathScale/) { - $vendor = PATHSCALE; - $openmp = "-openmp"; - } - - if ($data =~ /Open64/) { - $vendor = OPEN64; - $openmp = "-mp"; - } - - if ($data =~ /PGF/ || $data =~ /NVF/) { - $vendor = PGI; - $openmp = "-mp"; - } - - if ($data =~ /IBM XL/) { - $vendor = IBM; - $openmp = "-openmp"; - } - - if ($data =~ /NAG/) { - $vendor = NAG; - $openmp = "-openmp"; - } - - # for embedded underscore name, e.g. zho_ge, it may append 2 underscores. - $data = `$compiler -O2 -S ftest3.f > /dev/null 2>&1 && cat ftest3.s && rm -f ftest3.s`; - if ($data eq "") { - $data = `$compiler -O2 -S ftest3.f > /dev/null 2>&1 && cat ftest3.c && rm -f ftest3.c`; - } - if ($data =~ / zho_ge__/) { - $need2bu = 1; - } - if ($vendor =~ /G95/) { - if ($ENV{NO_LAPACKE} != 1) { - $need2bu = ""; - } - } - } - - if ($vendor eq "") { - - if ($compiler =~ /g77/) { - $vendor = G77; - $bu = "_"; - $openmp = ""; - } - - if ($compiler =~ /g95/) { - $vendor = G95; - $bu = "_"; - $openmp = ""; - } - - if ($compiler =~ /gfortran/) { - $vendor = GFORTRAN; - $bu = "_"; - $openmp = "-fopenmp"; - } - - if ($compiler =~ /ifort/) { - $vendor = INTEL; - $bu = "_"; - $openmp = "-fopenmp"; - } - - if ($compiler =~ /pathf/) { - $vendor = PATHSCALE; - $bu = "_"; - $openmp = "-mp"; - } - - if ($compiler =~ /pgf/ || $compiler =~ /nvf/) { - $vendor = PGI; - $bu = "_"; - $openmp = "-mp"; - } - - if ($compiler =~ /ftn/) { - $vendor = PGI; - $bu = "_"; - $openmp = "-openmp"; - } - - if ($compiler =~ /frt/) { - $vendor = FUJITSU; - $bu = "_"; - $openmp = "-openmp"; - } - - if ($compiler =~ /sunf77|sunf90|sunf95/) { - $vendor = SUN; - $bu = "_"; - $openmp = "-xopenmp=parallel"; - } - - if ($compiler =~ /ppuf/) { - $vendor = IBM; - $openmp = "-openmp"; - } - - if ($compiler =~ /xlf/) { - $vendor = IBM; - $openmp = "-openmp"; - } - - if ($compiler =~ /open64/) { - $vendor = OPEN64; - $openmp = "-mp"; - } - - if ($compiler =~ /flang/) { - $vendor = FLANG; - $bu = "_"; - $openmp = "-fopenmp"; - } - - if ($compiler =~ /nagfor/) { - $vendor = NAG; - $bu = "_"; - $openmp = "-openmp"; - } - - if ($vendor eq "") { - $nofortran = 1; - $compiler = "gfortran"; - $vendor = GFORTRAN; - $bu = "_"; - $openmp = ""; - } - - } -} - -$data = `which $compiler_bin > /dev/null 2> /dev/null`; - -if (!$?) { - - $binary = $ENV{"BINARY"}; - - $openmp = "" if $ENV{USE_OPENMP} != 1; - - if ($binary == 32) { - $link = `$compiler $openmp -m32 -v ftest2.f 2>&1 && rm -f a.out a.exe`; - if ($?) { - $link = `$compiler $openmp -q32 -v ftest2.f 2>&1 && rm -f a.out a.exe`; - } - # for AIX - if ($?) { - $link = `$compiler $openmp -maix32 -v ftest2.f 2>&1 && rm -f a.out a.exe`; - } - #For gfortran MIPS - if ($?) { - $mips_data = `$compiler_bin -E -dM - < /dev/null`; - if ($mips_data =~ /_MIPS_ISA_MIPS64/) { - $link = `$compiler $openmp -mabi=n32 -v ftest2.f 2>&1 && rm -f a.out a.exe`; - } else { - $link = `$compiler $openmp -mabi=32 -v ftest2.f 2>&1 && rm -f a.out a.exe`; - } - } - $binary = "" if ($?); - } - - if ($binary == 64) { - $link = `$compiler $openmp -m64 -v ftest2.f 2>&1 && rm -f a.out a.exe`; - if ($?) { - $link = `$compiler $openmp -q64 -v ftest2.f 2>&1 && rm -f a.out a.exe`; - } - # for AIX - if ($?) { - $link = `$compiler $openmp -maix64 -v ftest2.f 2>&1 && rm -f a.out a.exe`; - } - #For gfortran MIPS - if ($?) { - $link = `$compiler $openmp -mabi=64 -v ftest2.f 2>&1 && rm -f a.out a.exe`; - } - #For nagfor - if ($?) { - $link = `$compiler $openmp -dryrun ftest2.f 2>&1 && rm -f a.out a.exe`; - } - $binary = "" if ($?); - } - if ($binary eq "") { - $link = `$compiler $openmp -v ftest2.f 2>&1 && rm -f a.out a.exe`; - } -} - -if ( $vendor eq "NAG") { - $link = `$compiler $openmp -dryrun ftest2.f 2>&1 && rm -f a.out a.exe`; - } -$linker_L = ""; -$linker_l = ""; -$linker_a = ""; - -if ($link ne "") { - - $link =~ s/\-Y\sP\,/\-Y/g; - - $link =~ s/\-R\s*/\-rpath\%/g; - - $link =~ s/\-rpath\s+/\-rpath\%/g; - - $link =~ s/\-rpath-link\s+/\-rpath-link\%/g; - - @flags = split(/[\s\,\n]/, $link); + flags=`echo "$link" | tr ',\n' ' '` # remove leading and trailing quotes from each flag. - @flags = map {s/^['"]|['"]$//g; $_} @flags; + #@flags = map {s/^['"]|['"]$//g; $_} @flags; - foreach $flags (@flags) { - if ( - ($flags =~ /^\-L/) - && ($flags !~ /^-LIST:/) - && ($flags !~ /^-LANG:/) - ) { - $linker_L .= $flags . " "; - } + for flag in $flags; do + case "$flag" in -L*) + case "$flag" in + -LIST:*|-LANG:*) ;; + *) linker_L="$linker_L $flag" ;; + esac + esac - if ($flags =~ /^\-Y/) { - next if ($hostos eq 'SunOS'); - $linker_L .= "-Wl,". $flags . " "; - } + case "$flag" in -Y*) + [ "$hostos" = "SunOS" ] && continue + linker_L="$linker_L -Wl,$flag" + ;; + esac - if ($flags =~ /^\--exclude-libs/) { - $linker_L .= "-Wl,". $flags . " "; - $flags=""; - } + case "$flag" in --exclude-libs*) + linker_L="$linker_L -Wl,$flag" + flag="" + ;; + esac + case "$flag" in -rpath%*) + flag=`echo "$flag" | sed 's/\%/\,/g'` + linker_L="$linker_L -Wl,$flag" + esac - if ($flags =~ /^\-rpath\%/) { - $flags =~ s/\%/\,/g; - $linker_L .= "-Wl,". $flags . " " ; - } + case "$flag" in -rpath-link%*) + flag=`echo "$flag" | sed 's/\%/\,/g'` + linker_L="$linker_L -Wl,$flag" + ;; + esac - if ($flags =~ /^\-rpath-link\%/) { - $flags =~ s/\%/\,/g; - $linker_L .= "-Wl,". $flags . " " ; - } - if ($flags =~ /-lgomp/ && $ENV{"CC"} =~ /clang/) { - $flags = "-lomp"; - } + case "$flag" in *-lgomp*) + case "$CC" in *clang*) + flag="-lomp" + ;; + esac + esac - if ( - ($flags =~ /^\-l/) - && ($flags !~ /ibrary/) - && ($flags !~ /gfortranbegin/) - && ($flags !~ /flangmain/) - && ($flags !~ /frtbegin/) - && ($flags !~ /pathfstart/) - && ($flags !~ /crt[0-9]/) - && ($flags !~ /gcc/) - && ($flags !~ /user32/) - && ($flags !~ /kernel32/) - && ($flags !~ /advapi32/) - && ($flags !~ /shell32/) - && ($flags !~ /omp/ || ($vendor !~ /PGI/ && $vendor !~ /FUJITSU/ && $flags =~ /omp/)) - && ($flags !~ /[0-9]+/ || ($vendor == FUJITSU && $flags =~ /^-lfj90/)) - && ($flags !~ /^\-l$/) - ) { - $linker_l .= $flags . " "; - } + case "$flag" in -l*) + case "$flag" in + *ibrary*|*gfortranbegin*|*flangmain*|*frtbegin*|*pathfstart*|\ + *crt[0-9]*|*gcc*|*user32*|*kernel32*|*advapi32*|*shell32*|\ + -l) ;; + *omp*) + case "$vendor" in + *PGI*|*FUJITSU*) ;; + *) linker_l="$linker_l $flag" ;; + esac + ;; + *[0-9]*) + if [ "$vendor" = "FUJITSU" ]; then + case "$flag" in + -lfj90*) linker_l="$linker_l $flag" ;; + *) ;; + esac + fi + ;; + *) linker_l="$linker_l $flag" ;; + esac + esac - if ( $flags =~ /quickfit.o/ && $vendor == NAG) { - $linker_l .= $flags . " "; - } - if ( $flags =~ /safefit.o/ && $vendor == NAG) { - $linker_l .= $flags . " "; - } - if ( $flags =~ /thsafe.o/ && $vendor == NAG) { - $linker_l .= $flags . " "; - } + case "$flag" in *quickfit.o*) + [ "$vendor" = "NAG" ] && linker_l="$linker_l $flag" ;; + esac - $linker_a .= $flags . " " if $flags =~ /\.a$/; - } + case "$flag" in *safefit.o*) + [ "$vendor" = "NAG" ] && linker_l="$linker_l $flag" ;; + esac -} + case "$flag" in *thsafe.o*) + [ "$vendor" = "NAG" ] && linker_l="$linker_l $flag" ;; + esac -if ($vendor eq "FLANG"){ - $linker_a .= "-lflang" -} + case "$flag" in *.a) linker_a="$linker_a $flag" ;; esac + done +fi -open(MAKEFILE, ">> $makefile") || die "Can't append $makefile"; -open(CONFFILE, ">> $config" ) || die "Can't append $config"; +if [ "$vendor" = "FLANG" ]; then + linker_a="$linker_a -lflang" +fi -print MAKEFILE "F_COMPILER=$vendor\n"; -print MAKEFILE "FC=$compiler\n"; -print MAKEFILE "BU=$bu\n" if $bu ne ""; -print MAKEFILE "NOFORTRAN=1\n" if $nofortran == 1; +printf "F_COMPILER=%s\n" "$vendor" >> "$makefile" +printf "FC=%s\n" "$compiler" >> "$makefile" +[ -n "$bu" ] && printf 'BU=%s\n' "$bu" >> "$makefile" +[ "$nofortran" -eq 1 ] && printf 'NOFORTRAN=1\n' >> "$makefile" -print CONFFILE "#define BUNDERSCORE\t$bu\n" if $bu ne ""; -print CONFFILE "#define NEEDBUNDERSCORE\t1\n" if $bu ne ""; -print CONFFILE "#define NEED2UNDERSCORES\t1\n" if $need2bu ne ""; +[ -n "$bu" ] && printf '#define BUNDERSCORE\t%s\n' "$bu" >> "$config" +[ -n "$bu" ] && printf '#define NEEDBUNDERSCORE\t1\n' >> "$config" +[ -n "$need2bu" ] && printf "#define NEED2UNDERSCORES\t1\n" >> "$config" -print MAKEFILE "NEED2UNDERSCORES=1\n" if $need2bu ne ""; +[ -n "$need2bu" ] && printf "#define NEED2UNDERSCORES=1\n" >> "$config" -if (($linker_l ne "") || ($linker_a ne "")) { - print MAKEFILE "FEXTRALIB=$linker_L $linker_l $linker_a\n"; -} +if [ -n "$linker_l" ] || [ -n "$linker_a" ]; then + printf "FEXTRALIB=%s %s %s\n" "$linker_L" "$linker_l" "$linker_a" >> "$makefile" +fi -close(MAKEFILE); -close(CONFFILE); diff --git a/interface/create b/interface/create index 0b9cefa2b..3547a0c88 100755 --- a/interface/create +++ b/interface/create @@ -1,22 +1,22 @@ -#!/usr/bin/env perl +#!/bin/sh -$count = 0; +count=0 -foreach (@ARGV) { - print "#define\tinterface_", $_, "\t\t", $count, "\n"; - $count ++; -} +for arg in "$@"; do + printf "#define\tinterface_%s\t\t%d\n" "$arg" "$count" + count=`expr $count + 1` +done -print "#ifdef USE_FUNCTABLE\n"; +printf "#ifdef USE_FUNCTABLE\n" -print "#define MAX_PROF_TABLE ", $count, "\n"; +printf "#define MAX_PROF_TABLE %d\n" "$count" -print "static char *func_table[] = {\n"; +printf "static char *func_table[] = {\n" -foreach (@ARGV) { - print "\"", $_, "\",\n"; -} +for arg in "$@"; do + printf "\"%s\",\n" "$arg" +done -print "};\n"; -print "#endif\n"; +printf "};\n" +printf "#endif\n"