Skip to content

Commit

Permalink
math/ntpoly: adding a library for computing the functions of sparse m…
Browse files Browse the repository at this point in the history
…atrices
  • Loading branch information
thierry-FreeBSD committed Oct 17, 2022
1 parent 764ee7f commit 3f14cf8
Show file tree
Hide file tree
Showing 5 changed files with 206 additions and 0 deletions.
1 change: 1 addition & 0 deletions math/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -514,6 +514,7 @@
SUBDIR += ngraph
SUBDIR += nlopt
SUBDIR += ntl
SUBDIR += ntpoly
SUBDIR += numdiff
SUBDIR += obake
SUBDIR += ocaml-num
Expand Down
62 changes: 62 additions & 0 deletions math/ntpoly/Makefile
Original file line number Diff line number Diff line change
@@ -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 changes: 3 additions & 0 deletions math/ntpoly/distinfo
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
TIMESTAMP = 1665940022
SHA256 (ntpoly-v2.7.1.tar.gz) = c15d9f51ac054b4ef0565ce5c4c8589c10bdbab4dc3442ebd109691e2bbfc7e2
SIZE (ntpoly-v2.7.1.tar.gz) = 281935
3 changes: 3 additions & 0 deletions math/ntpoly/pkg-descr
Original file line number Diff line number Diff line change
@@ -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 changes: 137 additions & 0 deletions math/ntpoly/pkg-plist
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit 3f14cf8

Please sign in to comment.