git: 3f14cf845a56 - main - math/ntpoly: adding a library for computing the functions of sparse matrices
Date: Mon, 17 Oct 2022 17:38:34 UTC
The branch main has been updated by thierry: URL: https://cgit.FreeBSD.org/ports/commit/?id=3f14cf845a561b47fd1f5bc109612588c6abf7c1 commit 3f14cf845a561b47fd1f5bc109612588c6abf7c1 Author: Thierry Thomas <thierry@FreeBSD.org> AuthorDate: 2022-10-17 17:36:45 +0000 Commit: Thierry Thomas <thierry@FreeBSD.org> CommitDate: 2022-10-17 17:36:45 +0000 math/ntpoly: adding a library for computing the functions of sparse matrices --- math/Makefile | 1 + math/ntpoly/Makefile | 62 +++++++++++++++++++++++ math/ntpoly/distinfo | 3 ++ math/ntpoly/pkg-descr | 3 ++ math/ntpoly/pkg-plist | 137 ++++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 206 insertions(+) diff --git a/math/Makefile b/math/Makefile index b0342747c9a8..db2287a2a58f 100644 --- a/math/Makefile +++ b/math/Makefile @@ -514,6 +514,7 @@ SUBDIR += ngraph SUBDIR += nlopt SUBDIR += ntl + SUBDIR += ntpoly SUBDIR += numdiff SUBDIR += obake SUBDIR += ocaml-num diff --git a/math/ntpoly/Makefile b/math/ntpoly/Makefile new file mode 100644 index 000000000000..edc58425933c --- /dev/null +++ b/math/ntpoly/Makefile @@ -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> diff --git a/math/ntpoly/distinfo b/math/ntpoly/distinfo new file mode 100644 index 000000000000..ff65e443cf0b --- /dev/null +++ b/math/ntpoly/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1665940022 +SHA256 (ntpoly-v2.7.1.tar.gz) = c15d9f51ac054b4ef0565ce5c4c8589c10bdbab4dc3442ebd109691e2bbfc7e2 +SIZE (ntpoly-v2.7.1.tar.gz) = 281935 diff --git a/math/ntpoly/pkg-descr b/math/ntpoly/pkg-descr new file mode 100644 index 000000000000..ab83cc600003 --- /dev/null +++ b/math/ntpoly/pkg-descr @@ -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. diff --git a/math/ntpoly/pkg-plist b/math/ntpoly/pkg-plist new file mode 100644 index 000000000000..8e2138c7244f --- /dev/null +++ b/math/ntpoly/pkg-plist @@ -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