Mentions légales du service

Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • solverstack/morse_cmake
  • gmarait/morse_cmake
  • rboucher/morse_cmake
  • mkuhn/morse_cmake
  • lvilleve/morse_cmake
  • tmijieux/morse_cmake
  • tcojean/morse_cmake
  • thibault/morse_cmake
  • vperrier/morse_cmake
  • tdelarue/morse_cmake
  • ekorkmaz/morse_cmake
11 results
Show changes
Commits on Source (15)
###
#
# @copyright (c) 2017-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
# Univ. Bordeaux. All rights reserved.
#
###
#
# @file GenPkgConfig.cmake
#
# @project MORSE
#
# @version 0.9.0
# @author Florent Pruvost
# @author Mathieu Faverge
# @date 2018-06-21
#
#.rst:
# GenPkgConfig
# ------------
#
# The GenPkgConfig module intend to provide functions to generate a
# pkg-config file with the right format, and a environment file that
# the user can source to setup its environment with the library
# installed.
#
# generate_pkgconfig_files(
# file1 file2 ...
# [PROJECTNAME name]
# [LIBS lib1 lib2 ...]
# [LIBS_PRIVATE lib1 lib2 ...]
# [REQUIRED pkg1 pkg2 ...]
# [REQUIRED_PRIVATE pkg1 pkg2 ...]
# )
# Where:
# - file1, file2, .. are the different input files for the
# pkg-config configuration files.
# - PROJECTNAME defines the prefix of the variables to use for the
# default following values ${PROJECTNAME}_PKGCONFIG_XXX with XXX
# being part of (LIBS, LIBS_PRIVATE, REQUIRED and
# REQUIRED_PRIVATE)
# - LIBS defines the libs of the current project for dynamic
# linking.
# - LIBS_PRIVATE defines the libs of the current project and its
# required dependencies not handled by pkg-config for static
# linking.
# - LIBS defines the additional pkg-config packages needed by the
# project for dynamic linking.
# - LIBS_PRIVATE defines the additional pkg-config packages needed
# by the project for static linking.
#
# The generated files are then installed in the subdirectory
# lib/pkgconfig of the prefix directory.
#
# generate_env_files(
# [PROJECTNAME name]
# )
# Where:
# - PROJECTNAME defines the project name of the library if different
# from CMAKE_PROJECT_NAME.
#
# The generated file is installed in the subdirectory bin of the
# prefix directory.
#
###
###
#
# gpc_convert_incstyle_to_pkgconfig(): convert a libraries list to
# follow the pkg-config style used in gpc_clean_lib_list
#
###
macro(gpc_convert_incstyle_to_pkgconfig _inclist)
set(${_inclist}_CPY "${${_inclist}}")
set(${_inclist} "")
foreach(_dep ${${_inclist}_CPY})
if (${_dep} MATCHES "^-D")
list(APPEND ${_inclist} ${_dep})
else()
list(APPEND ${_inclist} "-I${_dep}")
endif()
endforeach()
endmacro(gpc_convert_incstyle_to_pkgconfig)
###
#
# gpc_convert_libstyle_to_pkgconfig(): convert a libraries list to
# follow the pkg-config style used in gpc_clean_lib_list
#
###
macro(gpc_convert_libstyle_to_pkgconfig _liblist)
# Start by removing duplicates
list(REVERSE ${_liblist})
list(REMOVE_DUPLICATES ${_liblist})
list(REVERSE ${_liblist})
# Convert to pkg-config file format
set(${_liblist}_CPY "${${_liblist}}")
set(${_liblist} "")
foreach(_dep ${${_liblist}_CPY})
if (${_dep} MATCHES "^/")
get_filename_component(dep_libname ${_dep} NAME)
get_filename_component(dep_libdir ${_dep} PATH)
string(REPLACE ".so" "" dep_libname "${dep_libname}")
string(REPLACE ".a" "" dep_libname "${dep_libname}")
string(REPLACE ".dylib" "" dep_libname "${dep_libname}")
string(REPLACE ".dll" "" dep_libname "${dep_libname}")
string(REPLACE "lib" "" dep_libname "${dep_libname}")
list(APPEND ${_liblist} -L${dep_libdir} -l${dep_libname})
elseif(NOT ${_dep} MATCHES "^-")
list(APPEND ${_liblist} "-l${_dep}")
else()
list(APPEND ${_liblist} ${_dep})
endif()
endforeach()
endmacro(gpc_convert_libstyle_to_pkgconfig)
###
#
# gpc_clean_lib_list(): clean libraries lists to follow the pkg-config
# style used in GENERATE_PKGCONFIG_FILE
#
###
macro(gpc_clean_lib_list _package)
if ( ${_package}_PKGCONFIG_INCS )
list(REMOVE_DUPLICATES ${_package}_PKGCONFIG_INCS)
gpc_convert_incstyle_to_pkgconfig(${_package}_PKGCONFIG_INCS)
string(REPLACE ";" " " ${_package}_PKGCONFIG_INCS "${${_package}_PKGCONFIG_INCS}")
endif()
if ( ${_package}_PKGCONFIG_LIBS )
gpc_convert_libstyle_to_pkgconfig(${_package}_PKGCONFIG_LIBS)
string(REPLACE ";" " " ${_package}_PKGCONFIG_LIBS "${${_package}_PKGCONFIG_LIBS}")
endif()
if ( ${_package}_PKGCONFIG_LIBS_PRIVATE )
gpc_convert_libstyle_to_pkgconfig(${_package}_PKGCONFIG_LIBS_PRIVATE)
string(REPLACE ";" " " ${_package}_PKGCONFIG_LIBS_PRIVATE "${${_package}_PKGCONFIG_LIBS_PRIVATE}")
endif()
if ( ${_package}_PKGCONFIG_REQUIRED )
list(REMOVE_DUPLICATES ${_package}_PKGCONFIG_REQUIRED)
string(REPLACE ";" " " ${_package}_PKGCONFIG_REQUIRED "${${_package}_PKGCONFIG_REQUIRED}")
endif()
if ( ${_package}_PKGCONFIG_REQUIRED_PRIVATE )
list(REMOVE_DUPLICATES ${_package}_PKGCONFIG_REQUIRED_PRIVATE)
string(REPLACE ";" " " ${_package}_PKGCONFIG_REQUIRED_PRIVATE "${${_package}_PKGCONFIG_REQUIRED_PRIVATE}")
endif()
endmacro(gpc_clean_lib_list)
###
#
# generate_pkgconfig_file: generate pkg-config file
#
###
macro(generate_pkgconfig_files)
set(_options )
set(_oneValueArgs PROJECTNAME)
set(_multiValueArgs LIBS LIBS_PRIVATE REQUIRED REQUIRED_PRIVATE)
cmake_parse_arguments(generate_pkgconfig_file
"${_options}" "${_oneValueArgs}"
"${_multiValueArgs}" ${ARGN} )
if ( NOT DEFINED PROJECTNAME )
set( PROJECTNAME ${CMAKE_PROJECT_NAME} )
endif()
set(ARGN ${generate_pkgconfig_file_UNPARSED_ARGUMENTS})
# The link flags specific to this package and any required libraries
# that don't support PkgConfig
list(APPEND ${PROJECTNAME}_PKGCONFIG_LIBS ${LIBS})
# The link flags for private libraries required by this package but not
# exposed to applications
list(APPEND ${PROJECTNAME}_PKGCONFIG_LIBS_PRIVATE ${LIBS_PRIVATE})
# A list of packages required by this package
list(APPEND ${PROJECTNAME}_PKGCONFIG_REQUIRED ${REQUIRED})
# A list of private packages required by this package but not exposed to
# applications
list(APPEND ${PROJECTNAME}_PKGCONFIG_REQUIRED_PRIVATE ${REQUIRED_PRIVATE})
# Define required package
# -----------------------
gpc_clean_lib_list(${PROJECTNAME})
foreach(f IN LISTS ARGN)
get_filename_component(fname "${f}" NAME_WE)
# Create .pc files
# ----------------
configure_file(
${f}
"${CMAKE_BINARY_DIR}/lib/pkgconfig/${fname}.pc" @ONLY)
# installation
# ------------
install(FILES
"${CMAKE_BINARY_DIR}/lib/pkgconfig/${fname}.pc"
DESTINATION lib/pkgconfig )
endforeach()
endmacro(generate_pkgconfig_files)
###
#
# generate_env_file: generate pkf-config files
#
###
macro(generate_env_file)
set(_options )
set(_oneValueArgs PROJECTNAME)
set(_multiValueArgs )
cmake_parse_arguments(generate_env_file
"${_options}" "${_oneValueArgs}"
"${_multiValueArgs}" ${ARGN} )
if ( NOT DEFINED PROJECTNAME )
set( PROJECTNAME ${CMAKE_PROJECT_NAME} )
endif()
string(TOLOWER ${PROJECTNAME} LONAME)
string(TOUPPER ${PROJECTNAME} UPNAME)
# Create .sh file
# ---------------
configure_file(
"${MORSE_CMAKE_MODULE_PATH}/env.sh.in"
"${CMAKE_CURRENT_BINARY_DIR}/bin/${LONAME}_env.sh" @ONLY)
# installation
# ------------
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/bin/${LONAME}_env.sh"
DESTINATION bin)
endmacro(generate_env_file)
##
## @end file GenPkgConfig.cmake
##
#
# @file @LONAME@_env.sh
#
# @copyright 2016-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
# Univ. Bordeaux. All rights reserved.
#
# @version 0.9.0
# @author Mathieu Faverge
# @date 2018-06-21
#
#!/bin/sh
LIB=@LONAME@
export @UPNAME@_DIR=@CMAKE_INSTALL_PREFIX@
for i in PATH DYLD_LIBRARY_PATH LD_LIBRARY_PATH LIBRARY_PATH LD_RUN_PATH INCLUDE INCLUDE_PATH PKG_CONFIG_PATH PYTHONPATH
do
for j in /@LONAME@
do
cmd1="echo \\\"\$$i\\\" | sed -E 's+^(\(.*:|\))[^:]*${j}[^:]*(\(|:.*\))$+\1\2+' | sed 's/::/:/' | sed 's/^://' | sed 's/:$//' "
temp=`eval $cmd1`;
eval "$i=$temp";
done
done
export PATH=$PATH:$@UPNAME@_DIR/bin
export LD_RUN_PATH=$LD_RUN_PATH:$@UPNAME@_DIR/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$@UPNAME@_DIR/lib
export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:$@UPNAME@_DIR/lib
export LIBRARY_PATH=$LIBRARY_PATH:$@UPNAME@_DIR/lib
export PYTHONPATH=$PYTHONPATH:$@UPNAME@_DIR/lib/python
export INCLUDE=$INCLUDE:$@UPNAME@_DIR/include
export INCLUDE_PATH=$INCLUDE_PATH:$@UPNAME@_DIR/include
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$@UPNAME@_DIR/lib/pkgconfig
......@@ -537,15 +537,13 @@ if( (NOT BLAS_FOUND_WITH_PKGCONFIG) OR BLAS_GIVEN_BY_USER )
endif()
endif()
set(BLAS_CFLAGS_OTHER "")
if (NOT BLA_VENDOR STREQUAL "Intel10_64lp_seq")
if(BLAS_FIND_REQUIRED)
find_package(OpenMP REQUIRED)
else()
find_package(OpenMP)
endif()
if(OPENMP_C_FLAGS)
list(APPEND BLAS_CFLAGS_OTHER "${OPENMP_C_FLAGS}")
endif()
if (BLA_VENDOR STREQUAL "Intel10_64lp" AND BLAS_FIND_REQUIRED)
find_package(OpenMP REQUIRED)
else()
find_package(OpenMP)
endif()
if(OPENMP_C_FLAGS)
list(APPEND BLAS_CFLAGS_OTHER "${OPENMP_C_FLAGS}")
endif()
if (CMAKE_C_COMPILER_ID STREQUAL "GNU")
if (BLA_VENDOR STREQUAL "Intel10_32")
......
......@@ -6,7 +6,7 @@
# @copyright (c) 2009-2014 The University of Tennessee and The University
# of Tennessee Research Foundation.
# All rights reserved.
# @copyright (c) 2012-2016 Inria. All rights reserved.
# @copyright (c) 2012-2018 Inria. All rights reserved.
# @copyright (c) 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved.
#
###
......@@ -16,12 +16,18 @@
# find_package(HYPRE
# [REQUIRED]) # Fail with error if hypre is not found
#
# HYPRE depends on the following libraries:
# - MPI
#
# This module finds headers and hypre library.
# Results are reported in variables:
# HYPRE_FOUND - True if headers and requested libraries were found
# HYPRE_INCLUDE_DIRS - hypre include directories
# HYPRE_LIBRARY_DIRS - Link directories for hypre libraries
# HYPRE_LIBRARIES - hypre component libraries to be linked
# HYPRE_FOUND - True if headers and requested libraries were found
# HYPRE_INCLUDE_DIRS - hypre include directories
# HYPRE_LIBRARY_DIRS - Link directories for hypre libraries
# HYPRE_LIBRARIES - hypre component libraries to be linked
# HYPRE_INCLUDE_DIRS_DEP - hypre + dependencies include directories
# HYPRE_LIBRARY_DIRS_DEP - hypre + dependencies link directories
# HYPRE_LIBRARIES_DEP - hypre + dependencies libraries
#
# The user can give specific paths where to find the libraries adding cmake
# options at configure (ex: cmake path/to/project -DHYPRE_DIR=path/to/hypre):
......@@ -32,8 +38,8 @@
# are not given as cmake variable: HYPRE_DIR, HYPRE_INCDIR, HYPRE_LIBDIR
#=============================================================================
# Copyright 2016 Inria
# Copyright 2016 Florent Pruvost
# Copyright 2016-2018 Inria
# Copyright 2016-2018 Florent Pruvost
#
# Distributed under the OSI-approved BSD License (the "License");
# see accompanying file MORSE-Copyright.txt for details.
......@@ -63,6 +69,13 @@ if ( HYPRE_DIR OR ( HYPRE_INCDIR AND HYPRE_LIBDIR) OR ENV_HYPRE_DIR OR (ENV_HYPR
set(HYPRE_GIVEN_BY_USER "TRUE")
endif()
# HYPRE depends on MPI, try to find it
if (HYPRE_FIND_REQUIRED)
find_package(MPI REQUIRED)
else()
find_package(MPI)
endif()
# Looking for include
# -------------------
......@@ -223,6 +236,33 @@ if(HYPRE_LIBRARIES)
set(REQUIRED_LIBDIRS "${HYPRE_LIBRARY_DIRS}")
endif()
set(REQUIRED_LIBS "${HYPRE_LIBRARIES}")
# MPI
if (MPI_FOUND)
if (MPI_C_INCLUDE_PATH)
list(APPEND REQUIRED_INCDIRS "${MPI_C_INCLUDE_PATH}")
endif()
if (MPI_C_LINK_FLAGS)
if (${MPI_C_LINK_FLAGS} MATCHES " -")
string(REGEX REPLACE " -" "-" MPI_C_LINK_FLAGS ${MPI_C_LINK_FLAGS})
endif()
list(APPEND REQUIRED_LDFLAGS "${MPI_C_LINK_FLAGS}")
endif()
list(APPEND REQUIRED_LIBS "${MPI_C_LIBRARIES}")
endif()
# libm
set(M_LIBRARY "M_LIBRARY-NOTFOUND")
find_library(M_LIBRARY NAMES m)
mark_as_advanced(M_LIBRARY)
if(M_LIBRARY)
list(APPEND REQUIRED_LIBS "${M_LIBRARY}")
endif()
# libstdc++
set(stdcpp_LIBRARY "stdcpp_LIBRARY-NOTFOUND")
find_library(stdcpp_LIBRARY NAMES stdc++)
mark_as_advanced(stdcpp_LIBRARY)
if(stdcpp_LIBRARY)
list(APPEND REQUIRED_LIBS "${stdcpp_LIBRARY}")
endif()
# set required libraries for link
finds_remove_duplicates()
......@@ -240,7 +280,12 @@ if(HYPRE_LIBRARIES)
check_function_exists(HYPRE_StructGridCreate HYPRE_WORKS)
mark_as_advanced(HYPRE_WORKS)
if(NOT HYPRE_WORKS)
if(HYPRE_WORKS)
# save link with dependencies
set(HYPRE_LIBRARIES_DEP "${REQUIRED_LIBS}")
set(HYPRE_LIBRARY_DIRS_DEP "${REQUIRED_LIBDIRS}")
set(HYPRE_INCLUDE_DIRS_DEP "${REQUIRED_INCDIRS}")
else()
if(NOT HYPRE_FIND_QUIETLY)
message(STATUS "Looking for HYPRE : test of HYPRE_StructGridCreate with HYPRE library fails")
message(STATUS "CMAKE_REQUIRED_LIBRARIES: ${CMAKE_REQUIRED_LIBRARIES}")
......
......@@ -435,6 +435,9 @@ if (LAPACK_FOUND)
check_function_exists(LAPACKE_dlatms_work LAPACKE_WORKS)
endif()
mark_as_advanced(LAPACKE_WORKS)
unset(LAPACKE_WITH_LASCL CACHE)
check_function_exists(LAPACKE_dlascl LAPACKE_WITH_LASCL)
mark_as_advanced(LAPACKE_WITH_LASCL)
if(LAPACKE_WORKS)
# save link with dependencies
......
......@@ -89,14 +89,14 @@ if (ENABLE_CTEST)
GTG
HQR
HWLOC
#HYPRE module not ready TODO: complete it
HYPRE
LAPACK
LAPACKE
LAPACKEXT
METIS
MPIEXT
MUMPS
#PAMPA not able to install it, link problem with ptscotch
PAMPA
PAPI
PARMETIS
PARSEC
......
......@@ -48,12 +48,12 @@ subs = {
('DOUBLE PRECISION', 'COMPLEX_16' ),
('SINGLE PRECISION', 'COMPLEX' ),
('real', 'complex' ),
('float', 'MORSE_Complex32_t' ),
('double', 'MORSE_Complex64_t' ),
('float', 'MORSE_voidComplex32_t' ),
('double', 'MORSE_voidComplex64_t' ),
('MorseRealFloat', 'MorseComplexFloat' ),
('MorseRealDouble', 'MorseComplexDouble' ),
('float', 'CHAMELEON_Complex32_t' ),
('double', 'CHAMELEON_Complex64_t' ),
('float', 'CHAMELEON_voidComplex32_t' ),
('double', 'CHAMELEON_voidComplex64_t' ),
('RealFloat', 'ComplexFloat' ),
('RealDouble', 'ComplexDouble' ),
# ----- CBLAS
('', 'CBLAS_SADDR' ),
......@@ -75,11 +75,11 @@ subs = {
('magma_get_d', 'magma_get_z' ),
('magma_get_s', 'magma_get_c' ),
# ----- Prefixes MORSE
('MORSE_D', 'MORSE_Z' ),
('MORSE_S', 'MORSE_C' ),
('morse_get_d', 'morse_get_z' ),
('morse_get_s', 'morse_get_c' ),
# ----- Prefixes CHAMELEON
('CHAMELEON_D', 'CHAMELEON_Z' ),
('CHAMELEON_S', 'CHAMELEON_C' ),
('chameleon_get_d', 'chameleon_get_z' ),
('chameleon_get_s', 'chameleon_get_c' ),
('TASK_S', 'TASK_C' ),
('TASK_D', 'TASK_Z' ),
('TASKS_S', 'TASKS_C' ),
......@@ -101,13 +101,11 @@ subs = {
# ----- PLASMA / MAGMA
('magma_sdgetrs', 'magma_czgetrs' ),
# ----- MORSE
('morse_sdgetrs', 'morse_czgetrs' ),
# ----- CHAMELEON
('chameleon_sdgetrs', 'chameleon_czgetrs' ),
# ----- Constants
('CblasTrans', 'CblasConjTrans' ),
('MagmaTrans', 'MagmaConjTrans' ),
('MorseTrans', 'MorseConjTrans' ),
('Trans', 'ConjTrans' ),
# ----- BLAS and LAPACK, lowercase, alphabetic order
# copy & paste these to uppercase below and fix case.
......@@ -269,23 +267,23 @@ subs = {
('', 'float', 'double', 'PLASMA_Complex32_t', r'\bPLASMA_Complex64_t' ),
('', 'float', 'double', 'PLASMA_voidComplex32_t', r'\bPLASMA_voidComplex64_t' ),
('', 'PlasmaRealFloat', 'PlasmaRealDouble', 'PlasmaComplexFloat', r'\bPlasmaComplexDouble' ),
# MORSE
('', 'float', 'double', 'MORSE_Complex32_t', r'\bMORSE_Complex64_t' ),
('', 'float', 'double', 'MORSE_voidComplex32_t', r'\bMORSE_voidComplex64_t' ),
('', 'MorseRealFloat', 'MorseRealDouble', 'MorseComplexFloat', r'\bMorseComplexDouble' ),
# CHAMELEON
('', 'float', 'double', 'CHAMELEON_Complex32_t', r'\bCHAMELEON_Complex64_t' ),
('', 'float', 'double', 'CHAMELEON_voidComplex32_t', r'\bCHAMELEON_voidComplex64_t' ),
('', 'ChamRealFloat', 'ChamRealDouble', 'ChamComplexFloat', r'\bChamComplexDouble' ),
# Pastix
('int', 'float', 'double', 'pastix_complex32_t', r'\bpastix_complex64_t'),
('int', 'float', 'double', 'float', r'\bdouble' ),
('PastixPattern', 'PastixFloat', 'PastixDouble', 'PastixComplex32', r'\bPastixComplex64' ),
('PastixPattern', 'PastixFloat', 'PastixDouble', 'PastixFloat', r'\bPastixDouble' ),
('int', 'float', 'double', 'spm_complex32_t', r'\bspm_complex64_t'),
('SpmPattern', 'SpmFloat', 'SpmDouble', 'SpmComplex32', r'\bSpmComplex64' ),
('SpmPattern', 'SpmFloat', 'SpmDouble', 'SpmFloat', r'\bSpmDouble' ),
('', 'sizeof_real', 'sizeof_double', 'sizeof_complex', r'\bsizeof_complex_16' ), # before complex
('', 'real', 'real', 'complex', r'\bcomplex' ),
('', 'float', 'double', 'float2', r'\bdouble2' ),
('', 'float', 'double', 'float', r'\bdouble' ),
('', 'float', 'double', 'complex', 'double_complex' ),
('int', 'float', 'double', 'pastix_complex32_t', r'\bpastix_complex64_t'),
('int', 'float', 'double', 'float', r'\bdouble' ),
('PastixPattern', 'PastixFloat', 'PastixDouble', 'PastixComplex32', r'\bPastixComplex64' ),
('PastixPattern', 'PastixFloat', 'PastixDouble', 'PastixFloat', r'\bPastixDouble' ),
('int', 'float', 'double', 'spm_complex32_t', r'\bspm_complex64_t' ),
('SpmPattern', 'SpmFloat', 'SpmDouble', 'SpmComplex32', r'\bSpmComplex64' ),
('SpmPattern', 'SpmFloat', 'SpmDouble', 'SpmFloat', r'\bSpmDouble' ),
('', 'sizeof_real', 'sizeof_double', 'sizeof_complex', r'\bsizeof_complex_16' ), # before complex
('', 'real', 'real', 'complex', r'\bcomplex' ),
('', 'float', 'double', 'float2', r'\bdouble2' ),
('', 'float', 'double', 'float', r'\bdouble' ),
('', 'float', 'double', 'complex', 'double_complex' ),
# ----- Text
('Symmetric', 'Symmetric', 'Symmetric', 'Hermitian', 'Hermitian' ),
......@@ -333,6 +331,7 @@ subs = {
('', 'CORE_s', 'CORE_d', 'CORE_c', 'CORE_z' ),
('', 'core_s', 'core_d', 'core_c', 'core_z' ),
('', 'CORE_s', 'CORE_d', 'CORE_s', 'CORE_d' ),
('', 'core_s', 'core_d', 'core_s', 'core_d' ),
('', 'cpu_gpu_s', 'cpu_gpu_d', 'cpu_gpu_c', 'cpu_gpu_z' ),
('', 'cublasS', 'cublasD', 'cublasC', 'cublasZ' ),
('', 'CUDA_S', 'CUDA_D', 'CUDA_C', 'CUDA_Z' ),
......@@ -374,14 +373,15 @@ subs = {
('', 'Workspace_s', 'Workspace_d', 'Workspace_c', 'Workspace_z' ),
('', 'workspace_s', 'workspace_d', 'workspace_c', 'workspace_z' ),
# ----- Prefixes MORSE
('', 'MORSE_S', 'MORSE_D', 'MORSE_C', 'MORSE_Z' ),
('', 'MORSE_sor', 'MORSE_dor', 'MORSE_cun', 'MORSE_zun' ),
('', 'MORSE_s', 'MORSE_d', 'MORSE_c', 'MORSE_z' ),
('', 'morse_get_s', 'morse_get_d', 'morse_get_c', 'morse_get_z' ),
('', 'morse_ps', 'morse_pd', 'morse_pc', 'morse_pz' ),
('', 'morse_s', 'morse_d', 'morse_c', 'morse_z' ),
('', 'morse_sdesc', 'morse_ddesc', 'morse_sdesc', 'morse_ddesc' ),
# ----- Prefixes CHAMELEON
('', 'CHAMELEON_S', 'CHAMELEON_D', 'CHAMELEON_C', 'CHAMELEON_Z' ),
('', 'CHAMELEON_sor', 'CHAMELEON_dor', 'CHAMELEON_cun', 'CHAMELEON_zun' ),
('', 'CHAMELEON_s', 'CHAMELEON_d', 'CHAMELEON_c', 'CHAMELEON_z' ),
('', 'chameleon_get_s', 'chameleon_get_d', 'chameleon_get_c', 'chameleon_get_z' ),
('', 'chameleon_ps', 'chameleon_pd', 'chameleon_pc', 'chameleon_pz' ),
('', 'chameleon_s', 'chameleon_d', 'chameleon_c', 'chameleon_z' ),
('', 'chameleon_sdesc', 'chameleon_ddesc', 'chameleon_sdesc', 'chameleon_ddesc' ),
#
('', 'TASK_sasum', 'TASK_dasum', 'TASK_scasum', 'TASK_dzasum' ),
('', 'TASK_ssyrfb', 'TASK_dsyrfb', 'TASK_cherfb', 'TASK_zherfb' ),
('', 'TASK_stsmlq_sy', 'TASK_dtsmlq_sy', 'TASK_ctsmlq_he', 'TASK_ztsmlq_he' ),
......@@ -401,6 +401,7 @@ subs = {
('p_spm', 's_spm', 'd_spm', 'c_spm', 'z_spm' ),
('p_bcsc', 's_bcsc', 'd_bcsc', 'c_bcsc', 'z_bcsc' ),
('', 'csc_s', 'csc_d', 'csc_c', 'csc_z' ),
('', 'vec_s', 'vec_d', 'vec_c', 'vec_z' ),
('', 'sequential_s', 'sequential_d', 'sequential_c', 'sequential_z' ),
('', 'coeftab_s', 'coeftab_d', 'coeftab_c', 'coeftab_z' ),
('', 'cblk_s', 'cblk_d', 'cblk_c', 'cblk_z' ),
......@@ -424,10 +425,10 @@ subs = {
('', 'cublasIsamax', 'cublasIdamax', 'cublasIsamax', 'cublasIdamax' ),
('', 'cublasSnrm2', 'cublasDnrm2', 'cublasScnrm2', 'cublasDznrm2' ),
# ----- PLASMA / MAGMA / MORSE
# ----- PLASMA / MAGMA / CHAMELEON
('', 'bsy2trc', 'bsy2trc', 'bhe2trc', 'bhe2trc' ),
('', 'magma_ssqrt', 'magma_dsqrt', 'magma_ssqrt', 'magma_dsqrt' ),
('', 'morse_ssqrt', 'morse_dsqrt', 'morse_ssqrt', 'morse_dsqrt' ),
('', 'chameleon_ssqrt','chameleon_dsqrt','chameleon_ssqrt','chameleon_dsqrt' ),
('', 'SAUXILIARY', 'DAUXILIARY', 'CAUXILIARY', 'ZAUXILIARY' ),
('', 'sauxiliary', 'dauxiliary', 'cauxiliary', 'zauxiliary' ),
('', 'sbcyclic', 'dbcyclic', 'cbcyclic', 'zbcyclic' ),
......@@ -459,7 +460,7 @@ subs = {
# ----- Constants
('CblasTrans', 'CblasTrans', 'CblasTrans', 'CblasConjTrans', r'\bCblasConjTrans' ),
('MagmaTrans', 'MagmaTrans', 'MagmaTrans', 'MagmaConjTrans', r'\bMagmaConjTrans' ),
('MorseTrans', 'MorseTrans', 'MorseTrans', 'MorseConjTrans', r'\bMorseConjTrans' ),
('ChamTrans', 'ChamTrans', 'ChamTrans', 'ChamConjTrans', r'\bChamConjTrans' ),
('PlasmaTrans', 'PlasmaTrans', 'PlasmaTrans', 'PlasmaConjTrans', r'\bPlasmaConjTrans' ),
('PastixTrans', 'PastixTrans', 'PastixTrans', 'PastixConjTrans', r'\bPastixConjTrans' ),
......@@ -1001,6 +1002,8 @@ subs = {
('', 'STARPU_S', 'STARPU_D', 'STARPU_C', 'STARPU_Z' ),
('', 'pastix_s', 'pastix_d', 'pastix_c', 'pastix_z' ),
('', 'PASTIX_S', 'PASTIX_D', 'PASTIX_C', 'PASTIX_Z' ),
('', 'spm_s', 'spm_d', 'spm_c', r'\bspm_z' ),
('', 'SPM_S', 'SPM_D', 'SPM_C', r'\bSPM_Z' ),
('', 's_', 'd_', 'c_', 'z_' ),
('', 'S_', 'D_', 'C_', 'Z_' ),
('', 'FLT_EPSILON', 'DBL_EPSILON', 'FLT_EPSILON', 'DBL_EPSILON' ),
......