math/ntpoly: adding a library for computing the functions of sparse matrices

This commit is contained in:
Thierry Thomas 2022-10-17 19:36:45 +02:00
parent 764ee7f3bf
commit 3f14cf845a
5 changed files with 206 additions and 0 deletions

View File

@ -514,6 +514,7 @@
SUBDIR += ngraph
SUBDIR += nlopt
SUBDIR += ntl
SUBDIR += ntpoly
SUBDIR += numdiff
SUBDIR += obake
SUBDIR += ocaml-num

62
math/ntpoly/Makefile Normal file
View File

@ -0,0 +1,62 @@
PORTNAME= NTPoly
PORTVERSION= 2.7.1
DISTVERSIONPREFIX= v
CATEGORIES= math
MASTER_SITES= https://github.com/william-dawson/${PORTNAME}/archive/refs/tags/
DISTNAME= ${PORTNAME:tl}-${DISTVERSIONPREFIX}${DISTVERSION}
MAINTAINER= thierry@FreeBSD.org
COMMENT= Library for computing the functions of sparse matrices
WWW= https://github.com/kimwalisch/primecount
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
BUILD_DEPENDS= swig>0:devel/swig
TEST_DEPENDS= ${PYNUMPY} \
bash:shells/bash \
${PYTHON_PKGNAMEPREFIX}mpi4py>0:net/py-mpi4py@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}scipy>0:science/py-scipy@${PY_FLAVOR}
#USE_GITHUB= yes
#GH_ACCOUNT= william-dawson
USES= blaslapack:openblas cmake fortran mpi python
WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTNAME:tl}-${DISTVERSIONPREFIX}${DISTVERSION}
FFLAGS+= -fopenmp -fallow-argument-mismatch
CXXFLAGS+= -fopenmp
CMAKE_ARGS= -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN}
CMAKE_ON= BUILD_SHARED_LIBS
USE_LDCONFIG= yes
TOOLCHAIN= ${WRKSRC}/Targets/${OPSYS}.cmake
NTPLIBS= ${PORTNAME} ${PORTNAME}CPP ${PORTNAME}Wrapper
pre-configure:
${ECHO_CMD} 'set(CMAKE_SYSTEM_NAME ${OPSYS})' > ${TOOLCHAIN}
${ECHO_CMD} 'set(CMAKE_C_COMPILER ${MPICC})' >> ${TOOLCHAIN}
${ECHO_CMD} 'set(CMAKE_Fortran_COMPILER ${MPIFC})' >> ${TOOLCHAIN}
${ECHO_CMD} 'set(CMAKE_CXX_COMPILER ${MPICXX})' >> ${TOOLCHAIN}
${ECHO_CMD} 'set(TOOLCHAIN_LIBS "${BLASLIB}")' >> ${TOOLCHAIN}
${ECHO_CMD} 'set(F_TOOLCHAINFLAGS_RELEASE "${FFLAGS}")' >> ${TOOLCHAIN}
${ECHO_CMD} 'set(CXX_TOOLCHAINFLAGS_DEBUG "${CXXFLAGS}")' >> ${TOOLCHAIN}
${ECHO_CMD} 'set(F_TOOLCHAINFLAGS_DEBUG "${FFLAGS}")' >> ${TOOLCHAIN}
${ECHO_CMD} 'set(TARGET_SUPPORTS_SHARED_LIBS Yes)' >> ${TOOLCHAIN}
post-install:
.for l in ${NTPLIBS}
${MV} ${STAGEDIR}${PREFIX}/lib/lib${l}.so \
${STAGEDIR}${PREFIX}/lib/lib${l}.so.0
${RLN} ${STAGEDIR}${PREFIX}/lib/lib${l}.so.0 \
${STAGEDIR}${PREFIX}/lib/lib${l}.so
.endfor
do-test:
@${ECHO_MSG} "/!\\ WARNING /!\\"
@${ECHO_MSG} "net/py-mpi4py must be built against MPICH!"
cd ${BUILD_WRKSRC} && \
${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} ${ALL_TARGET} && \
${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} test
.include <bsd.port.mk>

3
math/ntpoly/distinfo Normal file
View File

@ -0,0 +1,3 @@
TIMESTAMP = 1665940022
SHA256 (ntpoly-v2.7.1.tar.gz) = c15d9f51ac054b4ef0565ce5c4c8589c10bdbab4dc3442ebd109691e2bbfc7e2
SIZE (ntpoly-v2.7.1.tar.gz) = 281935

3
math/ntpoly/pkg-descr Normal file
View File

@ -0,0 +1,3 @@
NTPoly is a massively parallel library for computing the functions of sparse,
Hermitian matrices based on polynomial expansions. For sufficiently sparse
matrices, most of the matrix functions in NTPoly can be computed in linear time.

137
math/ntpoly/pkg-plist Normal file
View File

@ -0,0 +1,137 @@
include/Analysis.h
include/Analysis_c.h
include/CMakeLists.txt
include/ChebyshevSolvers.h
include/ChebyshevSolvers_c.h
include/DensityMatrixSolvers.h
include/DensityMatrixSolvers_c.h
include/EigenBounds.h
include/EigenBounds_c.h
include/ExponentialSolvers.h
include/ExponentialSolvers_c.h
include/GeometryOptimization.h
include/GeometryOptimization_c.h
include/HermiteSolvers.h
include/HermiteSolvers_c.h
include/InverseSolvers.h
include/InverseSolvers_c.h
include/LinearSolvers.h
include/LinearSolvers_c.h
include/LoadBalancer.h
include/LoadBalancer_c.h
include/Logging.h
include/Logging_c.h
include/MatrixConversion.h
include/MatrixConversion_c.h
include/MatrixMapper.h
include/MatrixMemoryPool.h
include/MatrixMemoryPool_c.h
include/PMatrixMemoryPool.h
include/PMatrixMemoryPool_c.h
include/PSMatrix.h
include/PSMatrix_c.h
include/Permutation.h
include/Permutation_c.h
include/Polynomial.h
include/Polynomial_c.h
include/ProcessGrid.h
include/ProcessGrid_c.h
include/RootSolvers.h
include/RootSolvers_c.h
include/SMatrix.h
include/SMatrix_c.h
include/SignSolvers.h
include/SignSolvers_c.h
include/SolverBase.h
include/SolverParameters.h
include/SolverParameters_c.h
include/SquareRootSolvers.h
include/SquareRootSolvers_c.h
include/TrigonometrySolvers.h
include/TrigonometrySolvers_c.h
include/Triplet.h
include/TripletList.h
include/TripletList_c.h
include/Wrapper.h
include/analysismodule.mod
include/analysismodule_wrp.mod
include/chebyshevsolversmodule.mod
include/chebyshevsolversmodule_wrp.mod
include/choleskymodule.mod
include/datatypesmodule.mod
include/densitymatrixsolversmodule.mod
include/densitymatrixsolversmodule_wrp.mod
include/dmatrixmodule.mod
include/eigenboundsmodule.mod
include/eigenboundsmodule_wrp.mod
include/errormodule.mod
include/exponentialsolversmodule.mod
include/exponentialsolversmodule_wrp.mod
include/gemmtasksmodule.mod
include/geometryoptimizationmodule.mod
include/geometryoptimizationmodule_wrp.mod
include/hermitesolversmodule.mod
include/hermitesolversmodule_wrp.mod
include/inversesolversmodule.mod
include/inversesolversmodule_wrp.mod
include/linearsolversmodule.mod
include/linearsolversmodule_wrp.mod
include/loadbalancermodule.mod
include/loadbalancermodule_wrp.mod
include/loggingmodule.mod
include/loggingmodule_wrp.mod
include/matrixconversionmodule.mod
include/matrixconversionmodule_wrp.mod
include/matrixmapsmodule.mod
include/matrixmarketmodule.mod
include/matrixmemorypoolmodule.mod
include/matrixmemorypoolmodule_wrp.mod
include/matrixreducemodule.mod
include/ntmpimodule.mod
include/permutationmodule.mod
include/permutationmodule_wrp.mod
include/pmatrixmemorypoolmodule.mod
include/pmatrixmemorypoolmodule_wrp.mod
include/polynomialsolversmodule.mod
include/polynomialsolversmodule_wrp.mod
include/processgridmodule.mod
include/processgridmodule_wrp.mod
include/psmatrixalgebramodule.mod
include/psmatrixalgebramodule_wrp.mod
include/psmatrixmodule.mod
include/psmatrixmodule_wrp.mod
include/rootsolversmodule.mod
include/rootsolversmodule_wrp.mod
include/signsolversmodule.mod
include/signsolversmodule_wrp.mod
include/smatrixalgebramodule.mod
include/smatrixalgebramodule_wrp.mod
include/smatrixmodule.mod
include/smatrixmodule_wrp.mod
include/solverparametersmodule.mod
include/solverparametersmodule_wrp.mod
include/squarerootsolversmodule.mod
include/squarerootsolversmodule_wrp.mod
include/svectormodule.mod
include/timermodule.mod
include/trigonometrysolversmodule.mod
include/trigonometrysolversmodule_wrp.mod
include/tripletlistmodule.mod
include/tripletlistmodule_wrp.mod
include/tripletmodule.mod
include/wrappermodule.mod
lib/cmake/NTPoly/NTPolyConfig-%%CMAKE_BUILD_TYPE%%.cmake
lib/cmake/NTPoly/NTPolyConfig.cmake
lib/cmake/NTPolyCPP/NTPolyCPPConfig-%%CMAKE_BUILD_TYPE%%.cmake
lib/cmake/NTPolyCPP/NTPolyCPPConfig.cmake
lib/cmake/NTPolyWrapper/NTPolyWrapperConfig-%%CMAKE_BUILD_TYPE%%.cmake
lib/cmake/NTPolyWrapper/NTPolyWrapperConfig.cmake
lib/libNTPoly.so
lib/libNTPoly.so.0
lib/libNTPolyCPP.so
lib/libNTPolyCPP.so.0
lib/libNTPolyWrapper.so
lib/libNTPolyWrapper.so.0
libdata/pkgconfig/NTPoly.pc
libdata/pkgconfig/NTPolyCPP.pc
libdata/pkgconfig/NTPolyWrapper.pc