aboutsummaryrefslogtreecommitdiff
path: root/math/symengine
diff options
context:
space:
mode:
authorYuri Victorovich <yuri@FreeBSD.org>2020-06-11 01:40:55 +0000
committerYuri Victorovich <yuri@FreeBSD.org>2020-06-11 01:40:55 +0000
commit52bc341ca8ab78f67023525308884342529308c9 (patch)
treed3f2d95b59280ff11a63e8c037d0dd7ff820815f /math/symengine
parentb79dab35e6604625e07b361608e596d973ab501e (diff)
Notes
Diffstat (limited to 'math/symengine')
-rw-r--r--math/symengine/Makefile84
-rw-r--r--math/symengine/distinfo3
-rw-r--r--math/symengine/pkg-descr12
-rw-r--r--math/symengine/pkg-plist84
4 files changed, 183 insertions, 0 deletions
diff --git a/math/symengine/Makefile b/math/symengine/Makefile
new file mode 100644
index 000000000000..1a6173882ac7
--- /dev/null
+++ b/math/symengine/Makefile
@@ -0,0 +1,84 @@
+# $FreeBSD$
+
+PORTNAME= symengine
+DISTVERSIONPREFIX= v
+DISTVERSION= 0.6.0
+CATEGORIES= math
+
+MAINTAINER= yuri@FreeBSD.org
+COMMENT= Fast symbolic manipulation library, written in C++
+
+LICENSE= BSD3CLAUSE
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+USES= cmake compiler:c++11-lang
+USE_GITHUB= yes
+USE_LDCONFIG= yes
+
+CMAKE_ON= WITH_SYMENGINE_THREAD_SAFE BUILD_SHARED_LIBS BUILD_FOR_DISTRIBUTION
+CMAKE_OFF= BUILD_BENCHMARKS WITH_COTIRE
+
+OPTIONS_DEFINE= ARB ECM LLVM MPC TCMALLOC ASSERT
+OPTIONS_SINGLE= INTCLASS
+OPTIONS_SINGLE_INTCLASS= GMP GMPXX BOOSTMP FLINT PIRANHA
+OPTIONS_DEFAULT= ARB ECM LLVM MPC TCMALLOC FLINT # FLINT choice is based on best performance
+
+INTCLASS_DESC= Integer class, use integers from:
+
+ARB_DESC= Build with Arb (interval arithmetic library)
+ARB_CMAKE_BOOL= WITH_ARB
+ARB_LIB_DEPENDS= libarb.so:math/arb \
+ libflint.so:math/flint2 \
+ libmpfr.so:math/mpfr
+
+ECM_DESC= Build with ECM support (Elliptic Curve Method)
+ECM_CMAKE_BOOL= WITH_ECM
+ECM_LIB_DEPENDS= libecm.so:math/gmp-ecm
+
+LLVM_DESC= Build with LLVM
+LLVM_CMAKE_BOOL= WITH_LLVM
+LLVM_CMAKE_ON= -DLLVM_INCLUDE_DIRS:STRING=${LOCALBASE}/llvm${LLVM_VERSION}/include
+LLVM_BUILD_DEPENDS= llvm${LLVM_VERSION}>0:devel/llvm${LLVM_VERSION}
+
+MPC_DESC= Build with MPC
+MPC_CMAKE_BOOL= WITH_MPC
+MPC_LIB_DEPENDS= libmpc.so:math/mpc
+
+TCMALLOC_DESC= Use tcmalloc from google-perftools (improves performance)
+TCMALLOC_CMAKE_BOOL= WITH_TCMALLOC
+TCMALLOC_LIB_DEPENDS= libtcmalloc.so:devel/google-perftools
+
+ASSERT_CMAKE_BOOL= WITH_SYMENGINE_ASSERT
+
+GMP_DESC= gmp (supports arbitrary fp precision)
+GMP_CMAKE_ON= -DINTEGER_CLASS:STRING=gmp
+GMP_LIB_DEPENDS= libgmp.so:math/gmp \
+ libmpfr.so:math/mpfr
+
+GMPXX_DESC= gmpxx
+GMPXX_CMAKE_ON= -DINTEGER_CLASS:STRING=gmpxx
+GMPXX_LIB_DEPENDS= libgmp.so:math/gmp
+
+BOOSTMP_DESC= boostmp (no arbitrary fp precision)
+BOOSTMP_CMAKE_ON= -DINTEGER_CLASS:STRING=boostmp
+BOOSTMP_BUILD_DEPENDS= ${LOCALBASE}/include/boost/multiprecision/cpp_int.hpp:devel/boost-libs
+
+FLINT_DESC= flint (supports arbitrary fp precision, best performance)
+FLINT_CMAKE_ON= -DINTEGER_CLASS:STRING=flint
+FLINT_LIB_DEPENDS= libflint.so:math/flint2 \
+ libgmp.so:math/gmp \
+ libmpfr.so:math/mpfr
+
+PIRANHA_DESC= piranha
+PIRANHA_CMAKE_ON= -DINTEGER_CLASS:STRING=piranha
+PIRANHA_BUILD_DEPENDS= piranha>0:math/piranha
+
+LLVM_VERSION= ${LLVM_DEFAULT}
+
+do-test:
+ @cd ${BUILD_WRKSRC} && \
+ ${SETENV} ${CONFIGURE_ENV} ${CMAKE_BIN} ${CMAKE_ARGS} -DBUILD_TESTING:BOOL=ON ${CMAKE_SOURCE_PATH} && \
+ ${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/symengine/distinfo b/math/symengine/distinfo
new file mode 100644
index 000000000000..34b1a1437cc8
--- /dev/null
+++ b/math/symengine/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1591833879
+SHA256 (symengine-symengine-v0.6.0_GH0.tar.gz) = 4d2caa86c03eaaa8ed004084d02f87b5c51b6229f8ba70d161227e22d6302f0a
+SIZE (symengine-symengine-v0.6.0_GH0.tar.gz) = 763481
diff --git a/math/symengine/pkg-descr b/math/symengine/pkg-descr
new file mode 100644
index 000000000000..0771464defd0
--- /dev/null
+++ b/math/symengine/pkg-descr
@@ -0,0 +1,12 @@
+SymEngine is a standalone fast C++ symbolic manipulation library.
+Optional thin wrappers allow usage of the library from other languages, e.g.:
+
+* C wrappers allow usage from C, or as a basis for other wrappers (the
+ symengine/cwrapper.h file)
+* Python wrappers allow easy usage from Python and integration with SymPy and
+ Sage (the symengine.py repository)
+* Ruby wrappers (the symengine.rb repository)
+* Julia wrappers (the SymEngine.jl repository)
+* Haskell wrappers (the symengine.hs repository)
+
+WWW: https://github.com/symengine/symengine
diff --git a/math/symengine/pkg-plist b/math/symengine/pkg-plist
new file mode 100644
index 000000000000..da45962407ba
--- /dev/null
+++ b/math/symengine/pkg-plist
@@ -0,0 +1,84 @@
+include/symengine/add.h
+include/symengine/basic-inl.h
+include/symengine/basic-methods.inc
+include/symengine/basic.h
+include/symengine/complex.h
+include/symengine/complex_double.h
+include/symengine/complex_mpc.h
+include/symengine/constants.h
+include/symengine/cwrapper.h
+include/symengine/derivative.h
+include/symengine/dict.h
+include/symengine/diophantine.h
+include/symengine/eval.h
+include/symengine/eval_arb.h
+include/symengine/eval_double.h
+include/symengine/eval_mpc.h
+include/symengine/eval_mpfr.h
+include/symengine/expression.h
+include/symengine/fields.h
+include/symengine/finitediff.h
+include/symengine/flint_wrapper.h
+include/symengine/functions.h
+include/symengine/infinity.h
+include/symengine/integer.h
+include/symengine/lambda_double.h
+include/symengine/llvm_double.h
+include/symengine/logic.h
+include/symengine/matrix.h
+include/symengine/monomials.h
+include/symengine/mp_class.h
+include/symengine/mp_wrapper.h
+include/symengine/mul.h
+include/symengine/nan.h
+include/symengine/ntheory.h
+include/symengine/number.h
+include/symengine/parser.h
+include/symengine/parser/parser.h
+include/symengine/parser/parser_stype.h
+include/symengine/parser/tokenizer.h
+include/symengine/polys/basic_conversions.h
+include/symengine/polys/cancel.h
+include/symengine/polys/msymenginepoly.h
+include/symengine/polys/uexprpoly.h
+include/symengine/polys/uintpoly.h
+include/symengine/polys/uintpoly_flint.h
+include/symengine/polys/uintpoly_piranha.h
+include/symengine/polys/upolybase.h
+include/symengine/polys/uratpoly.h
+include/symengine/polys/usymenginepoly.h
+include/symengine/pow.h
+include/symengine/printers.h
+include/symengine/printers/codegen.h
+include/symengine/printers/latex.h
+include/symengine/printers/mathml.h
+include/symengine/printers/strprinter.h
+include/symengine/rational.h
+include/symengine/real_double.h
+include/symengine/real_mpfr.h
+include/symengine/rings.h
+include/symengine/series.h
+include/symengine/series_flint.h
+include/symengine/series_generic.h
+include/symengine/series_piranha.h
+include/symengine/series_visitor.h
+include/symengine/sets.h
+include/symengine/solve.h
+include/symengine/subs.h
+include/symengine/symbol.h
+include/symengine/symengine_assert.h
+include/symengine/symengine_casts.h
+include/symengine/symengine_config.h
+include/symengine/symengine_config_cling.h
+include/symengine/symengine_exception.h
+include/symengine/symengine_export.h
+include/symengine/symengine_rcp.h
+include/symengine/type_codes.inc
+include/symengine/visitor.h
+lib/cmake/symengine/SymEngineConfig.cmake
+lib/cmake/symengine/SymEngineConfigVersion.cmake
+lib/cmake/symengine/SymEngineTargets-%%CMAKE_BUILD_TYPE%%.cmake
+lib/cmake/symengine/SymEngineTargets.cmake
+lib/libsymengine.so
+lib/libsymengine.so.0.6
+lib/libsymengine.so.0.6.0