math/dsfmt: new port, double precision SIMD-oriented Fast Mersenne Twister

ATM it is bundled in Julia.
This commit is contained in:
Thierry Thomas
2023-11-10 22:38:00 +01:00
parent f66a958b98
commit 173683a2d0
5 changed files with 102 additions and 0 deletions

View File

@@ -276,6 +276,7 @@
SUBDIR += dionysus
SUBDIR += disco
SUBDIR += dqfun
SUBDIR += dsfmt
SUBDIR += drgeo
SUBDIR += dsdp
SUBDIR += dune-alugrid

55
math/dsfmt/Makefile Normal file
View File

@@ -0,0 +1,55 @@
PORTNAME= dSFMT
PORTVERSION= 2.2.5
DISTVERSIONPREFIX= v
CATEGORIES= math
MAINTAINER= thierry@FreeBSD.org
COMMENT= Double precision SIMD-oriented Fast Mersenne Twister
WWW= http://www.math.sci.hiroshima-u.ac.jp/m-mat/MT/SFMT/
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE.txt
USES= compiler
USE_GITHUB= yes
GH_ACCOUNT= MersenneTwister-Lab
CSTD= c99
CFLAGS+= -DDSFMT_MEXP=19937 -fPIC -DDSFMT_SHLIB ${OPTCFLAGS} \
-finline-functions -fomit-frame-pointer -fno-strict-aliasing \
-Wall -shared
OPTCFLAGS?= -O3
CFLAGS_amd64= -msse2 -DHAVE_SSE2
LDFLAGS+= -Wl,-soname,libdSFMT.so.0
USE_LDCONFIG= yes
OPTIONS_DEFINE= DOCS
.include <bsd.port.pre.mk>
.if ${ARCH} == amd64
TEST_TARGET= sse2-check
.else
TEST_TARGET= std-check
.endif
do-build:
(cd ${WRKSRC} && \
${CC} ${CFLAGS} ${LDFLAGS} dSFMT.c -o libdSFMT.so.0)
do-install:
${INSTALL_DATA} ${WRKSRC}/dSFMT.h ${STAGEDIR}${PREFIX}/include/
${INSTALL_LIB} ${WRKSRC}/libdSFMT.so.0 ${STAGEDIR}${PREFIX}/lib
(cd ${STAGEDIR}${PREFIX}/lib && ${LN} -s libdSFMT.so.0 libdSFMT.so)
do-install-DOCS-on:
${MKDIR} ${STAGEDIR}${DOCSDIR}/html
${INSTALL_DATA} ${WRKSRC}/README.* ${STAGEDIR}${DOCSDIR}
cd ${WRKSRC}/html && ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR}/html
do-test:
${REINPLACE_CMD} -e '/^CC =/d;/^CCFLAGS =/d' ${WRKSRC}/Makefile
(cd ${WRKSRC} && ${DO_MAKE_BUILD} ${TEST_TARGET})
.include <bsd.port.post.mk>

3
math/dsfmt/distinfo Normal file
View File

@@ -0,0 +1,3 @@
TIMESTAMP = 1699641017
SHA256 (MersenneTwister-Lab-dSFMT-v2.2.5_GH0.tar.gz) = b7bc498cd140b4808963b1ff9f33b42a491870f54775c1060ecad0e02bcaffb4
SIZE (MersenneTwister-Lab-dSFMT-v2.2.5_GH0.tar.gz) = 4984272

7
math/dsfmt/pkg-descr Normal file
View File

@@ -0,0 +1,7 @@
The purpose of dSFMT is to speed up the generation by avoiding the expensive
conversion of integer to double (floating point). dSFMT directly generates
double precision floating point pseudorandom numbers which have the IEEE
Standard for Binary Floating-Point Arithmetic (ANSI/IEEE Std 754-1985) format.
dSFMT is only available on the CPUs which use IEEE 754 format double precision
floating point numbers.

36
math/dsfmt/pkg-plist Normal file
View File

@@ -0,0 +1,36 @@
include/dSFMT.h
lib/libdSFMT.so
lib/libdSFMT.so.0
%%PORTDOCS%%%%DOCSDIR%%/README.jp.txt
%%PORTDOCS%%%%DOCSDIR%%/README.txt
%%PORTDOCS%%%%DOCSDIR%%/html/annotated.html
%%PORTDOCS%%%%DOCSDIR%%/html/bc_s.png
%%PORTDOCS%%%%DOCSDIR%%/html/classes.html
%%PORTDOCS%%%%DOCSDIR%%/html/closed.png
%%PORTDOCS%%%%DOCSDIR%%/html/d_s_f_m_t_8c.html
%%PORTDOCS%%%%DOCSDIR%%/html/d_s_f_m_t_8h.html
%%PORTDOCS%%%%DOCSDIR%%/html/d_s_f_m_t_8h_source.html
%%PORTDOCS%%%%DOCSDIR%%/html/doxygen.css
%%PORTDOCS%%%%DOCSDIR%%/html/doxygen.png
%%PORTDOCS%%%%DOCSDIR%%/html/files.html
%%PORTDOCS%%%%DOCSDIR%%/html/functions.html
%%PORTDOCS%%%%DOCSDIR%%/html/functions_vars.html
%%PORTDOCS%%%%DOCSDIR%%/html/globals.html
%%PORTDOCS%%%%DOCSDIR%%/html/globals_defs.html
%%PORTDOCS%%%%DOCSDIR%%/html/globals_func.html
%%PORTDOCS%%%%DOCSDIR%%/html/globals_type.html
%%PORTDOCS%%%%DOCSDIR%%/html/globals_vars.html
%%PORTDOCS%%%%DOCSDIR%%/html/howto-compile.html
%%PORTDOCS%%%%DOCSDIR%%/html/index.html
%%PORTDOCS%%%%DOCSDIR%%/html/jquery.js
%%PORTDOCS%%%%DOCSDIR%%/html/mainpage_8txt.html
%%PORTDOCS%%%%DOCSDIR%%/html/nav_f.png
%%PORTDOCS%%%%DOCSDIR%%/html/nav_h.png
%%PORTDOCS%%%%DOCSDIR%%/html/open.png
%%PORTDOCS%%%%DOCSDIR%%/html/struct_d_s_f_m_t___t.html
%%PORTDOCS%%%%DOCSDIR%%/html/tab_a.png
%%PORTDOCS%%%%DOCSDIR%%/html/tab_b.png
%%PORTDOCS%%%%DOCSDIR%%/html/tab_h.png
%%PORTDOCS%%%%DOCSDIR%%/html/tab_s.png
%%PORTDOCS%%%%DOCSDIR%%/html/tabs.css
%%PORTDOCS%%%%DOCSDIR%%/html/union_w128___t.html