summaryrefslogtreecommitdiff
path: root/math
diff options
context:
space:
mode:
authorGabor Pali <pgj@FreeBSD.org>2010-01-04 09:32:22 +0000
committerGabor Pali <pgj@FreeBSD.org>2010-01-04 09:32:22 +0000
commitaf23ae58e7be28a56ff953237b102635c12fb92b (patch)
treee01a6834c618b66413e5905de1307e235a743d15 /math
parentThis Haskell library allows exact computation with discrete random variables (diff)
This Haskell package contains code for generating high quality random
numbers that follow either a uniform or normal distribution. The generated numbers are suitable for use in statistical applications. The uniform PRNG uses Marsaglia's MWC256 (also known as MWC8222) multiply-with-carry generator, which has a period of 2^8222 and fares well in tests of randomness. It is also extremely fast, between 2 and 3 times faster than the Mersenne Twister. WWW: http://darcs.serpentine.com/mwc-random PR: ports/142293 Submitted by: Jacula Modyun <jacula(at)gmail.com>
Notes
Notes: svn path=/head/; revision=247119
Diffstat (limited to 'math')
-rw-r--r--math/Makefile1
-rw-r--r--math/hs-mwc-random/Makefile83
-rw-r--r--math/hs-mwc-random/distinfo3
-rw-r--r--math/hs-mwc-random/pkg-descr14
-rw-r--r--math/hs-mwc-random/pkg-plist15
5 files changed, 116 insertions, 0 deletions
diff --git a/math/Makefile b/math/Makefile
index eee72a56acf5..4c1bf9eaee2d 100644
--- a/math/Makefile
+++ b/math/Makefile
@@ -116,6 +116,7 @@
SUBDIR += hs-Agda-executable
SUBDIR += hs-category-extras
SUBDIR += hs-erf
+ SUBDIR += hs-mwc-random
SUBDIR += hs-probability
SUBDIR += igraph
SUBDIR += isabelle
diff --git a/math/hs-mwc-random/Makefile b/math/hs-mwc-random/Makefile
new file mode 100644
index 000000000000..ea414a5e9dec
--- /dev/null
+++ b/math/hs-mwc-random/Makefile
@@ -0,0 +1,83 @@
+# New ports collection makefile for: hs-mwc-random
+# Date created: January 03 2010
+# Whom: Giuseppe Pilichi aka Jacula Modyun <jacula@gmail.com>
+#
+# $FreeBSD$
+#
+
+PORTNAME= mwc-random
+PORTVERSION= 0.4.1.1
+CATEGORIES= math haskell
+MASTER_SITES= http://hackage.haskell.org/packages/archive/${PORTNAME}/${PORTVERSION}/
+PKGNAMEPREFIX= hs-
+
+MAINTAINER= jacula@gmail.com
+COMMENT= Fast, high quality pseudo random number generation in Haskell
+
+BUILD_DEPENDS+= ghc:${PORTSDIR}/lang/ghc \
+ hs-uvector>=0.1.0.4:${PORTSDIR}/devel/hs-uvector
+RUN_DEPENDS+= ghc:${PORTSDIR}/lang/ghc \
+ hs-uvector>=0.1.0.4:${PORTSDIR}/devel/hs-uvector
+
+GHC_VERSION= 6.10.4
+MWCRANDOM_VERSION= ${PORTVERSION}
+
+GHC_CMD= ${LOCALBASE}/bin/ghc
+SETUP_CMD= ./setup
+
+DATADIR= ${PREFIX}/share/${DISTNAME}
+PORTDATA= *
+
+DOCSDIR= ${PREFIX}/share/doc/${DISTNAME}
+MWCRANDOM_LIBDIR_REL= lib/${DISTNAME}
+
+PLIST_SUB= GHC_VERSION=${GHC_VERSION} \
+ MWCRANDOM_VERSION=${MWCRANDOM_VERSION} \
+ MWCRANDOM_LIBDIR_REL=${MWCRANDOM_LIBDIR_REL}
+
+.if defined(NOPORTDOCS)
+PLIST_SUB+= NOPORTDOCS=""
+.else
+PLIST_SUB+= NOPORTDOCS="@comment "
+.endif
+
+.if !defined(NOPORTDOCS)
+
+PORT_HADDOCK!= (cd ${.CURDIR}/../../lang/ghc && ${MAKE} -V PORT_HADDOCK)
+.if !empty(PORT_HADDOCK:M?0)
+BUILD_DEPENDS+= haddock:${PORTSDIR}/devel/hs-haddock
+.endif
+BUILD_DEPENDS+= HsColour:${PORTSDIR}/print/hs-hscolour
+
+HSCOLOUR_VERSION= 1.15
+HSCOLOUR_DATADIR= ${PREFIX}/share/hscolour-${HSCOLOUR_VERSION}
+
+PORTDOCS= *
+.endif
+
+.SILENT:
+
+do-configure:
+ cd ${WRKSRC} && ${GHC_CMD} --make Setup.lhs -o setup -package Cabal \
+ && ${SETUP_CMD} configure --haddock-options=-w --prefix=${PREFIX}
+
+do-build:
+ cd ${WRKSRC} && ${SETUP_CMD} build \
+ && ${SETUP_CMD} register --gen-script
+
+.if !defined(NOPORTDOCS)
+ cd ${WRKSRC} && ${SETUP_CMD} haddock --hyperlink-source \
+ --hscolour-css=${HSCOLOUR_DATADIR}/hscolour.css
+.endif
+
+do-install:
+ cd ${WRKSRC} && ${SETUP_CMD} install \
+ && ${INSTALL_SCRIPT} register.sh ${PREFIX}/${MWCRANDOM_LIBDIR_REL}/register.sh
+.if !defined(NOPORTDATA)
+ ${MKDIR} ${DATADIR} && ${INSTALL_DATA} ${WRKSRC}/README ${DATADIR}
+.endif
+
+post-install:
+ ${RM} -f ${PREFIX}/lib/ghc-${GHC_VERSION}/package.conf.old
+
+.include <bsd.port.mk>
diff --git a/math/hs-mwc-random/distinfo b/math/hs-mwc-random/distinfo
new file mode 100644
index 000000000000..64fd0a85259c
--- /dev/null
+++ b/math/hs-mwc-random/distinfo
@@ -0,0 +1,3 @@
+MD5 (mwc-random-0.4.1.1.tar.gz) = 42b26d5edcd06c8c58d825ba16d3d5ac
+SHA256 (mwc-random-0.4.1.1.tar.gz) = b11c072adb14a59251e8b26afb4a56cade83df5433797078eda7fd86bc7d3951
+SIZE (mwc-random-0.4.1.1.tar.gz) = 8792
diff --git a/math/hs-mwc-random/pkg-descr b/math/hs-mwc-random/pkg-descr
new file mode 100644
index 000000000000..1e0d4f5c6cc8
--- /dev/null
+++ b/math/hs-mwc-random/pkg-descr
@@ -0,0 +1,14 @@
+This Haskell package contains code for generating high quality random
+numbers that follow either a uniform or normal distribution. The
+generated numbers are suitable for use in statistical applications.
+
+The uniform PRNG uses Marsaglia's MWC256 (also known as MWC8222)
+multiply-with-carry generator, which has a period of 2^8222 and
+fares well in tests of randomness. It is also extremely fast,
+between 2 and 3 times faster than the Mersenne Twister.
+
+Compared to the mersenne-random package, this package has a more
+convenient API, is faster, and supports more statistical
+distributions.
+
+WWW: http://darcs.serpentine.com/mwc-random
diff --git a/math/hs-mwc-random/pkg-plist b/math/hs-mwc-random/pkg-plist
new file mode 100644
index 000000000000..7cc8ed45ae35
--- /dev/null
+++ b/math/hs-mwc-random/pkg-plist
@@ -0,0 +1,15 @@
+@comment $FreeBSD$
+%%MWCRANDOM_LIBDIR_REL%%/ghc-%%GHC_VERSION%%/HSmwc-random-%%MWCRANDOM_VERSION%%.o
+%%MWCRANDOM_LIBDIR_REL%%/ghc-%%GHC_VERSION%%/System/Random/MWC.hi
+%%MWCRANDOM_LIBDIR_REL%%/ghc-%%GHC_VERSION%%/libHSmwc-random-%%MWCRANDOM_VERSION%%.a
+%%MWCRANDOM_LIBDIR_REL%%/register.sh
+%%NOPORTDOCS%%%%DOCSDIR%%/LICENSE
+%%NOPORTDOCS%%@dirrmtry %%DOCSDIR%%
+@dirrm %%MWCRANDOM_LIBDIR_REL%%/ghc-%%GHC_VERSION%%/System/Random
+@dirrm %%MWCRANDOM_LIBDIR_REL%%/ghc-%%GHC_VERSION%%/System
+@dirrm %%MWCRANDOM_LIBDIR_REL%%/ghc-%%GHC_VERSION%%
+@dirrm %%MWCRANDOM_LIBDIR_REL%%
+@exec /bin/sh %D/%%MWCRANDOM_LIBDIR_REL%%/register.sh
+@exec /bin/rm -f %D/lib/ghc-%%GHC_VERSION%%/package.conf.old
+@unexec %D/bin/ghc-pkg unregister mwc-random
+@unexec /bin/rm -f %D/lib/ghc-%%GHC_VERSION%%/package.conf.old