ports/154249: [NEW PORT] math/sprng: Scalable Parallel Pseudo Random Number Generator

Rainer Hurling rhurlin at gwdg.de
Sun Jan 23 22:00:22 UTC 2011


>Number:         154249
>Category:       ports
>Synopsis:       [NEW PORT] math/sprng: Scalable Parallel Pseudo Random Number Generator
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Sun Jan 23 22:00:21 UTC 2011
>Closed-Date:
>Last-Modified:
>Originator:     Rainer Hurling
>Release:        FreeBSD 9.0 CURRENT (amd64)
>Organization:
>Environment:
FreeBSD xxx.xxx.xxx 9.0-CURRENT FreeBSD 9.0-CURRENT #0: Sun Jan 23 09:10:10 CET 2011     xxx at xxx.xxx.xxx:/usr/obj/usr/src/sys/xxx  amd64
>Description:
I created a port for SPRNG version 2, the Scalable Parallel Pseudo Random Number Generators Library ( http://sprng.cs.fsu.edu/ ).

It is needed at least for some math/R stuff, packages like rsprng, Rmpi etc.
>How-To-Repeat:
The sources seem to be incomplete in some way. They only build static libraries and there is no install target in the code. I had to patch the sources on several places to get it compiled.

Now it builds and installs but it is not usable so far because of some problems with the method of building shared libraries.

Several problems remain with the installed libraries 'libsprng*':

(1) After installation with ${INSTALL_LIB} they do not have any symbols any more.

  nm /usr/ports/math/sprng/work/sprng2.0/lib/libsprng.so.2.0

shows symbols built in, the next does not

  nm /usr/local/lib/libsprng.so.2.0

(2) The fortran stuff is not build in correctly. SPRNG has two scripts to test the installed sprng code, 'checksprng' and 'timesprng', see pkg-message. Both give correct results for the C interface and both fail for the fortran interface.

Probably there a more issues with the port and patches.

>Fix:
I have only little experience in creating ports and almost no skills in C/C++ programming, so I could really need some help. (b.f. advised me to file a PR, thanks in advance)

Patch attached with submission follows:

# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	Makefile
#	distinfo
#	files
#	files/patch-SRC_make.INTEL
#	files/patch-SRC_sprng_Makefile
#	files/patch-EXAMPLES_checkpoint-simple.c
#	files/patch-EXAMPLES_pi-simple.c
#	files/patch-EXAMPLES_spawn.c
#	files/patch-TESTS_chisquare.c
#	files/patch-TESTS_collisions.c
#	files/patch-TESTS_coupon.c
#	files/patch-TESTS_maxt.c
#	files/patch-TESTS_poker.c
#	files/patch-TESTS_random__walk.c
#	files/patch-TESTS_sum.c
#	files/patch-TESTS_init__tests.c
#	files/patch-SRC_primes__32.c
#	files/patch-SRC_primes__64.c
#	files/patch-EXAMPLES_checkpoint.c
#	files/patch-TESTS_stirling.c
#	files/patch-TESTS_Makefile
#	files/patch-TESTS_communicate.c
#	files/patch-TESTS_metropolis.c
#	files/patch-SRC_pmgcg_pmlcg.c
#	pkg-descr
#	pkg-plist
#	pkg-message
#
echo x - Makefile
sed 's/^X//' >Makefile << 'b67911656ef5d18c4ae36cb6741b7965'
X# Ports collection makefile for:   sprng
X# Date created:        23 January 2011
X# Whom:                Rainer Hurling <rhurlin at gwdg.de>
X#
X# $FreeBSD$
X
XPORTNAME=	sprng
XPORTVERSION=	2.0b
XCATEGORIES=	math parallel
XMASTER_SITES=	http://sprng.fsu.edu/Version2.0/
XDISTNAME=	${PORTNAME}${PORTVERSION}
X
XMAINTAINER=	rhurlin at gwdg.de
XCOMMENT=	The Scalable Parallel Random Number Generators Library
X
XLIB_DEPENDS=	pthread.20:${PORTSDIR}/devel/pth \
X		gmp.10:${PORTSDIR}/math/gmp \
X		mpich.2:${PORTSDIR}/net/mpich2
X
XWRKSRC=		${WRKDIR}/${PORTNAME}2.0
X
XUSE_LDCONFIG=	yes
XUSE_GCC=	4.4+
X
X.include <bsd.port.pre.mk>
X
Xpost-patch:
X#       [Activate MPI usage]
X	@${REINPLACE_CMD} -e 's|#MPIDEF = -DSPRNG_MPI|MPIDEF = -DSPRNG_MPI|' \
X		${WRKSRC}/make.CHOICES
X#       [Activate GMP usage]
X	@${REINPLACE_CMD} -e 's|GMPLIB = -lgmp|GMPLIB = -L/usr/local/lib -lgmp|' \
X		${WRKSRC}/make.CHOICES
X	@${REINPLACE_CMD} -e 's|"mpi.h"|<mpi.h>|' \
X		${WRKSRC}/EXAMPLES/pi-simple_mpi.c \
X		${WRKSRC}/TESTS/fft.c \
X		${WRKSRC}/TESTS/sum.c
X	@${FIND} ${WRKSRC} -name "*.c" | ${XARGS} ${REINPLACE_CMD} -e \
X		's|void main|int main|g'
X#       [Workaround] poker.c:19: error: 'index' redeclared as different kind of symbol
X	@${REINPLACE_CMD} -e 's|index|indexx|' \
X		${WRKSRC}/TESTS/poker.c
X
Xpost-build:
X	@${REINPLACE_CMD} -e 's|./||' \
X		${WRKSRC}/checksprng \
X		${WRKSRC}/timesprng
X	@${REINPLACE_CMD} -e 's|< gen|< ${DATADIR}/gen|' \
X		${WRKSRC}/checksprng \
X		${WRKSRC}/timesprng
X
Xdo-install:
X	${MKDIR} ${DATADIR}
X	${INSTALL_LIB} ${WRKSRC}/lib/libsprng.a ${PREFIX}/lib
X	${INSTALL_LIB} ${WRKSRC}/lib/libsprngtest.a ${PREFIX}/lib
X	${INSTALL_LIB} ${WRKSRC}/lib/libsprng.so.2.0 ${PREFIX}/lib
X	${INSTALL_LIB} ${WRKSRC}/lib/libsprngtest.so.2.0 ${PREFIX}/lib
X	${LN} -sf ${PREFIX}/lib/libsprng.so.2.0 ${PREFIX}/lib/libsprng.so.2
X	${LN} -sf ${PREFIX}/lib/libsprng.so.2 ${PREFIX}/lib/libsprng.so
X	${LN} -sf ${PREFIX}/lib/libsprngtest.so.2.0 ${PREFIX}/lib/libsprngtest.so.2
X	${LN} -sf ${PREFIX}/lib/libsprngtest.so.2 ${PREFIX}/lib/libsprngtest.so
X	(cd ${WRKSRC}/include && ${INSTALL_DATA} sprng.h sprng_f.h interface.h ${PREFIX}/include)
X	${INSTALL} ${WRKSRC}/checksprng ${PREFIX}/bin
X	${INSTALL} ${WRKSRC}/check.csprng ${PREFIX}/bin
X	${INSTALL} ${WRKSRC}/check.fsprng ${PREFIX}/bin
X	${INSTALL} ${WRKSRC}/check_sim.csprng ${PREFIX}/bin
X	${INSTALL} ${WRKSRC}/check_sim.fsprng ${PREFIX}/bin
X	${INSTALL} ${WRKSRC}/check_ptr.csprng ${PREFIX}/bin
X	${INSTALL} ${WRKSRC}/check_ptr.fsprng ${PREFIX}/bin
X	${INSTALL} ${WRKSRC}/timesprng ${PREFIX}/bin
X	${INSTALL} ${WRKSRC}/timingcsprng ${PREFIX}/bin
X	${INSTALL} ${WRKSRC}/timingfsprng ${PREFIX}/bin
X
Xpost-install:
X	${INSTALL_DATA} ${WRKSRC}/gen* ${DATADIR}
X	${INSTALL_DATA} ${WRKSRC}/DOCS/new_sprng.ps ${DATADIR}/sprng.ps
X	@${ECHO_MSG} ""
X	@${CAT} ${PKGMESSAGE}
X	@${ECHO_MSG} ""
X
X.include <bsd.port.post.mk>
b67911656ef5d18c4ae36cb6741b7965
echo x - distinfo
sed 's/^X//' >distinfo << '57677d168a5ec21bdf22c9501f075a8f'
XSHA256 (sprng2.0b.tar.gz) = 8985d7cae4f20f57889bc7ba11dfed226a02057d396731f4a5cc174704131ac2
XSIZE (sprng2.0b.tar.gz) = 1780931
57677d168a5ec21bdf22c9501f075a8f
echo c - files
mkdir -p files > /dev/null 2>&1
echo x - files/patch-SRC_make.INTEL
sed 's/^X//' >files/patch-SRC_make.INTEL << 'a19f7b5f540407a4020afa8f2b84b9cc'
X--- SRC/make.INTEL	2007-01-26 17:30:06.000000000 +0100
X+++ SRC/make.INTEL	2011-01-23 11:04:47.000000000 +0100
X@@ -3,16 +3,16 @@
X #If your system does not have ranlib, then replace next statement with 
X #RANLIB = echo
X RANLIB = ranlib
X-CC = gcc
X+CC = gcc45
X CLD = $(CC)
X # Set f77 to echo if you do not have a FORTRAN compiler
X-F77 = g77
X+F77 = gfortran45
X #F77 = echo
X F77LD = $(F77)
X-FFXN = -DAdd__
X+FFXN = -DAdd_
X FSUFFIX = F
X 
X-MPIF77 = mpif77
X+MPIF77 = mpif90
X MPICC = mpicc
X 
X # To use MPI, set the MPIDIR to location of mpi library, and MPILIB 
X@@ -21,16 +21,16 @@
X # before compiling for mpi.
X #
X # COMMENTED BY ME
X-#MPIDIR = -L/usr/local/mpi/build/LINUX/ch_p4/lib
X-#MPILIB = -lmpich
X+MPIDIR = -L/usr/local/lib
X+MPILIB = -lmpich -lmpl -lpthread
X 
X # Please include mpi header file path, if needed
X 
X #CFLAGS = -O3 -DLittleEndian $(PMLCGDEF) $(MPIDEF) -D$(PLAT)  -I/usr/local/mpi/include -I/usr/local/mpi/build/LINUX/ch_p4/include
X-CFLAGS = -O3 -DLittleEndian $(PMLCGDEF) $(MPIDEF) -D$(PLAT)  
X-CLDFLAGS =  -O3 
X+CFLAGS = -O -fpic $(PMLCGDEF) $(MPIDEF) -D$(PLAT) -I/usr/local/include
X+CLDFLAGS =  -O
X #FFLAGS = -O3 $(PMLCGDEF) $(MPIDEF) -D$(PLAT)  -I/usr/local/mpi/include -I/usr/local/mpi/build/LINUX/ch_p4/include -I.
X-FFLAGS = -O3 $(PMLCGDEF) $(MPIDEF) -D$(PLAT)
X-F77LDFLAGS =  -O3 
X+FFLAGS = -O $(PMLCGDEF) $(MPIDEF) -D$(PLAT) -I/usr/local/include -I.
X+F77LDFLAGS =  -O
X 
X-CPP = cpp -P
X+CPP = cpp45 -P
a19f7b5f540407a4020afa8f2b84b9cc
echo x - files/patch-SRC_sprng_Makefile
sed 's/^X//' >files/patch-SRC_sprng_Makefile << '52ba6067d48d96b989dbde185b8c32eb'
X--- SRC/sprng/Makefile
X+++ SRC/sprng/Makefile
X@@ -44,16 +44,23 @@
X $(LIBDIR)/libsprng.a : sprng.o   \
X 		$(SRCDIR)/lcg/lcg.o $(SRCDIR)/lfg/lfg.o \
X 		$(SRCDIR)/lcg64/lcg64.o \
X-		$(SRCDIR)/mlfg/mlfg.o $(SRCDIR)/cmrg/cmrg.o \
X 		$(SRCDIR)/pmlcg/pmlcg.o \
X+		$(SRCDIR)/mlfg/mlfg.o $(SRCDIR)/cmrg/cmrg.o \
X 		$(SPRNG_COMMON_DEPEND)
X 	$(AR) $(ARFLAGS) $(LIBDIR)/libsprng.a sprng.o \
X 		$(SRCDIR)/lcg/lcg.o $(SRCDIR)/lfg/lfg.o \
X 		$(SRCDIR)/lcg64/lcg64.o \
X-		$(SRCDIR)/mlfg/mlfg.o $(SRCDIR)/cmrg/cmrg.o \
X 		$(SRCDIR)/pmlcg/pmlcg.o \
X+		$(SRCDIR)/mlfg/mlfg.o $(SRCDIR)/cmrg/cmrg.o \
X 		$(SPRNG_COMMON_DEPEND)
X 	$(RANLIB) $(LIBDIR)/libsprng.a
X+	$(CC) -shared -Wl,-soname,libsprng.so.2 \
X+		-o $(LIBDIR)/libsprng.so.2.0  sprng.o \
X+		$(SRCDIR)/lcg/lcg.o $(SRCDIR)/lfg/lfg.o \
X+		$(SRCDIR)/lcg64/lcg64.o \
X+		$(SRCDIR)/pmlcg/pmlcg.o \
X+		$(SRCDIR)/mlfg/mlfg.o $(SRCDIR)/cmrg/cmrg.o \
X+		$(SPRNG_COMMON_DEPEND) $(GMPLIB)
X 
X sprng.o : $(SRCDIR)/interface.h sprng.c   $(SRCDIR)/memory.h  \
X 	$(SRCDIR)/multiply.h $(SRCDIR)/store.h $(SRCDIR)/fwrap_.h
52ba6067d48d96b989dbde185b8c32eb
echo x - files/patch-EXAMPLES_checkpoint-simple.c
sed 's/^X//' >files/patch-EXAMPLES_checkpoint-simple.c << 'ffd30d00b1e80c51d8c07c984c152a5a'
X--- EXAMPLES/checkpoint-simple.c	1999-06-29 18:42:03.000000000 +0200
X+++ EXAMPLES/checkpoint-simple.c	2011-01-16 11:41:48.000000000 +0100
X@@ -8,6 +8,7 @@
X /****************************************************************************/
X 
X 
X+#include <stdlib.h>
X #include <stdio.h>
X 
X #define SIMPLE_SPRNG		/* simple interface                         */
ffd30d00b1e80c51d8c07c984c152a5a
echo x - files/patch-EXAMPLES_pi-simple.c
sed 's/^X//' >files/patch-EXAMPLES_pi-simple.c << 'e34e8594876ca1569f1aa31faf496c4d'
X--- EXAMPLES/pi-simple.c	1999-06-29 18:42:03.000000000 +0200
X+++ EXAMPLES/pi-simple.c	2011-01-16 11:43:20.000000000 +0100
X@@ -6,6 +6,7 @@
X /***************************************************************************/
X 
X 
X+#include <stdlib.h>
X #include <stdio.h>
X #include <math.h>
X #include <string.h>
e34e8594876ca1569f1aa31faf496c4d
echo x - files/patch-EXAMPLES_spawn.c
sed 's/^X//' >files/patch-EXAMPLES_spawn.c << '69b157c2cc2ce6ad934e8b74fff921f7'
X--- EXAMPLES/spawn.c	1999-06-29 18:42:03.000000000 +0200
X+++ EXAMPLES/spawn.c	2011-01-16 11:44:47.000000000 +0100
X@@ -5,6 +5,7 @@
X /* is printed.                                                            */
X /***************************************************************************/
X 
X+#include <stdlib.h>
X #include <stdio.h>
X 
X /* Uncomment the following line to get the interface with pointer checking */
69b157c2cc2ce6ad934e8b74fff921f7
echo x - files/patch-TESTS_chisquare.c
sed 's/^X//' >files/patch-TESTS_chisquare.c << '2a516c58b026b369dedeb38ede81fdea'
X--- TESTS/chisquare.c	1999-06-29 18:42:11.000000000 +0200
X+++ TESTS/chisquare.c	2011-01-16 12:06:04.000000000 +0100
X@@ -2,7 +2,9 @@
X      Chi-Square Probability Function and Kolmogorv-Smirnov 
X **********************************************************/
X 
X+#include <stdlib.h>
X #include <stdio.h>
X+#include <string.h>
X #include <math.h>
X #include "util.h"
X 
2a516c58b026b369dedeb38ede81fdea
echo x - files/patch-TESTS_collisions.c
sed 's/^X//' >files/patch-TESTS_collisions.c << '7a0cce925605f37248523b79e8ba1fa9'
X--- TESTS/collisions.c	1999-06-29 18:42:11.000000000 +0200
X+++ TESTS/collisions.c	2011-01-16 12:09:10.000000000 +0100
X@@ -1,4 +1,6 @@
X+#include <stdlib.h>
X #include <stdio.h>
X+#include <string.h>
X #include "tests.h"
X #include <math.h>
X 
7a0cce925605f37248523b79e8ba1fa9
echo x - files/patch-TESTS_coupon.c
sed 's/^X//' >files/patch-TESTS_coupon.c << '199a78221c6a3faeccb5b4f07ceede66'
X--- TESTS/coupon.c	1999-06-29 18:42:11.000000000 +0200
X+++ TESTS/coupon.c	2011-01-16 12:10:34.000000000 +0100
X@@ -1,4 +1,6 @@
X+#include <stdlib.h>
X #include <stdio.h>
X+#include <string.h>
X #include "tests.h"
X 
X #ifndef ANSI_ARGS
199a78221c6a3faeccb5b4f07ceede66
echo x - files/patch-TESTS_maxt.c
sed 's/^X//' >files/patch-TESTS_maxt.c << '18073bc1568cc7eab353386094ddedde'
X--- TESTS/maxt.c	1999-06-29 18:42:11.000000000 +0200
X+++ TESTS/maxt.c	2011-01-16 11:48:38.000000000 +0100
X@@ -1,3 +1,4 @@
X+#include <stdlib.h>
X #include <stdio.h>
X #include "tests.h"
X #include <math.h>
18073bc1568cc7eab353386094ddedde
echo x - files/patch-TESTS_poker.c
sed 's/^X//' >files/patch-TESTS_poker.c << '3dc4be4b4d4587424d36052cbae0006c'
X--- TESTS/poker.c	1999-06-29 18:42:11.000000000 +0200
X+++ TESTS/poker.c	2011-01-16 12:11:22.000000000 +0100
X@@ -1,4 +1,6 @@
X+#include <stdlib.h>
X #include <stdio.h>
X+#include <string.h>
X #include "tests.h"
X #include <math.h>
X 
3dc4be4b4d4587424d36052cbae0006c
echo x - files/patch-TESTS_random__walk.c
sed 's/^X//' >files/patch-TESTS_random__walk.c << '2863b2ccf9289f9ac2ce851781b98a5c'
X--- TESTS/random_walk.c	1999-06-29 18:42:11.000000000 +0200
X+++ TESTS/random_walk.c	2011-01-16 11:50:16.000000000 +0100
X@@ -1,6 +1,7 @@
X /* A two-dimensional random walk test based on the code of I. Vattulainen, 
X    et al  */
X 
X+#include <stdlib.h>
X #include <stdio.h>
X #include "tests.h"
X #include <math.h>
2863b2ccf9289f9ac2ce851781b98a5c
echo x - files/patch-TESTS_sum.c
sed 's/^X//' >files/patch-TESTS_sum.c << '247fa2ea2d442d42abbba335981033d0'
X--- TESTS/sum.c	1999-06-29 18:42:11.000000000 +0200
X+++ TESTS/sum.c	2011-01-16 11:51:15.000000000 +0100
X@@ -1,6 +1,7 @@
X /*  Note: This test is not in the regular SPRNG test format */
X 
X 
X+#include <stdlib.h>
X #include <stdio.h>
X #if defined(SPRNG_MPI)
X #include "mpi.h"
247fa2ea2d442d42abbba335981033d0
echo x - files/patch-TESTS_init__tests.c
sed 's/^X//' >files/patch-TESTS_init__tests.c << '3aa39f7d92dd398d8f7027f00ab77fae'
X--- TESTS/init_tests.c	1999-06-29 18:42:11.000000000 +0200
X+++ TESTS/init_tests.c	2011-01-16 11:55:28.000000000 +0100
X@@ -1,6 +1,7 @@
X #ifdef SPRNG_MPI
X #include <mpi.h>
X #endif
X+#include <stdlib.h>
X #include <stdio.h>
X /*#define READ_FROM_STDIN*/   /* read random numbers from stdin */
X #ifndef READ_FROM_STDIN
3aa39f7d92dd398d8f7027f00ab77fae
echo x - files/patch-SRC_primes__32.c
sed 's/^X//' >files/patch-SRC_primes__32.c << 'cf2e5300418a95691f3791555c238c6e'
X--- SRC/primes_32.c~	1999-06-29 18:42:11.000000000 +0200
X+++ SRC/primes_32.c	2011-01-16 11:59:08.000000000 +0100
X@@ -1,5 +1,6 @@
X #include <stdio.h>
X #include <stdlib.h>
X+#include <string.h>
X #include "primes_32.h"
X #include "primelist_32.h"
X 
cf2e5300418a95691f3791555c238c6e
echo x - files/patch-SRC_primes__64.c
sed 's/^X//' >files/patch-SRC_primes__64.c << 'b5b4e3d381d3092d1adb11bc4e9bd2ee'
X--- SRC/primes_64.c	1999-06-29 18:42:11.000000000 +0200
X+++ SRC/primes_64.c	2011-01-16 12:01:30.000000000 +0100
X@@ -1,5 +1,6 @@
X #include <stdio.h>
X #include <stdlib.h>
X+#include <string.h>
X #include "primes_64.h"
X #include "primelist_64.h"
X 
b5b4e3d381d3092d1adb11bc4e9bd2ee
echo x - files/patch-EXAMPLES_checkpoint.c
sed 's/^X//' >files/patch-EXAMPLES_checkpoint.c << 'bd5b9135d4e37e3681661c8e379f1e5f'
X--- EXAMPLES/checkpoint.c	1999-06-29 18:42:03.000000000 +0200
X+++ EXAMPLES/checkpoint.c	2011-01-16 12:02:44.000000000 +0100
X@@ -8,6 +8,7 @@
X /****************************************************************************/
X 
X 
X+#include <stdlib.h>
X #include <stdio.h>
X 
X /* Uncomment the following line to get the interface with pointer checking  */
bd5b9135d4e37e3681661c8e379f1e5f
echo x - files/patch-TESTS_stirling.c
sed 's/^X//' >files/patch-TESTS_stirling.c << '3df0c522fb453404adf0c06bc799117b'
X--- TESTS/stirling.c	1999-06-29 18:42:11.000000000 +0200
X+++ TESTS/stirling.c	2011-01-23 12:18:43.000000000 +0100
X@@ -1,3 +1,4 @@
X+#include <stdlib.h>
X #include <stdio.h>
X #include "util.h"
X 
3df0c522fb453404adf0c06bc799117b
echo x - files/patch-TESTS_Makefile
sed 's/^X//' >files/patch-TESTS_Makefile << 'f2f92588b7522a9f98532e7ffa8a583a'
X--- TESTS/Makefile	1999-07-08 21:46:39.000000000 +0200
X+++ TESTS/Makefile	2011-01-23 17:16:48.000000000 +0100
X@@ -29,7 +29,7 @@
X SRCDIR = ../SRC
X include $(SRCDIR)/make.$(PLAT)
X TESTLIB = sprngtest
X-#GMPLIB = -lgmp #uncomment for pmlcg
X+GMPLIB = -lgmp #uncomment for pmlcg
X 
X #############################################################################
X # Random number libraries
X@@ -63,6 +63,10 @@
X 	$(AR) $(ARFLAGS) $(LIBDIR)/lib$(TESTLIB).a  \
X                 init_tests.o util.o chisquare.o stirling.o communicate.o 
X 	$(RANLIB) $(LIBDIR)/lib$(TESTLIB).a
X+	$(CC) -shared -Wl,-soname,libsprngtest.so.2 \
X+		-o $(LIBDIR)/lib$(TESTLIB).so.2.0 \
X+                init_tests.o util.o chisquare.o stirling.o communicate.o \
X+		$(SPRNG_COMMON_DEPEND) $(GMPLIB)
X 
X init_tests.o : init_tests.c
X 	$(CC) -c $(CFLAGS) $(INCLUDEDIR) $(DEF) init_tests.c
f2f92588b7522a9f98532e7ffa8a583a
echo x - files/patch-TESTS_communicate.c
sed 's/^X//' >files/patch-TESTS_communicate.c << 'fb81fbf1d9070f074922c0c571c81aab'
X--- TESTS/communicate.c	1999-06-29 18:42:11.000000000 +0200
X+++ TESTS/communicate.c	2011-01-23 12:27:57.000000000 +0100
X@@ -1,3 +1,5 @@
X+#include <stdlib.h>
X+#include <string.h>
X #ifdef SPRNG_MPI
X #include <mpi.h>
X #endif
fb81fbf1d9070f074922c0c571c81aab
echo x - files/patch-TESTS_metropolis.c
sed 's/^X//' >files/patch-TESTS_metropolis.c << '2f8e04e89cc0cfffba6626a0ccc6e80c'
X--- TESTS/metropolis.c	1999-06-29 18:42:11.000000000 +0200
X+++ TESTS/metropolis.c	2011-01-23 17:01:07.000000000 +0100
X@@ -154,7 +154,8 @@
X  
X   #ifdef SYNC
X     printf("\n\tStreams are synchronized!\n");
X-  #elif !SYNC
X+  #endif
X+  #ifndef SYNC
X     printf("\n\tStreams are not synchronized!\n");
X   #endif
X printf("         \tEnergy\t\tEnergy_error\tSigma_Energy\tCv\t\tCv_error\tSigma_Cv\n");
X@@ -169,7 +170,8 @@
X 	dE = energy_difference(k);
X #ifdef SYNC
X 	if(expJ[dE]>sprng(genptr[k])){ 
X-#elif !SYNC
X+#endif
X+#ifndef SYNC
X 	if(dE<=0 || expJ[dE]>sprng(genptr[k])){ 
X #endif
X 	  energy += dE;
X@@ -321,7 +323,8 @@
X 	dE = energy_difference(k);
X #ifdef SYNC
X 	if(expJ[dE]>sprng(genptr[k])) 
X-#elif !SYNC
X+#endif
X+#ifndef SYNC
X 	if(dE<=0 || expJ[dE]>sprng(genptr[k]))
X #endif
X 	{    
2f8e04e89cc0cfffba6626a0ccc6e80c
echo x - files/patch-SRC_pmgcg_pmlcg.c
sed 's/^X//' >files/patch-SRC_pmgcg_pmlcg.c << '6e67bf647e57be470bbb41c54dda189c'
X--- SRC/pmlcg/pmlcg.c	1999-06-29 18:42:11.000000000 +0200
X+++ SRC/pmlcg/pmlcg.c	2011-01-23 18:44:04.000000000 +0100
X@@ -30,7 +30,7 @@
X #include "memory.h"
X #include "interface.h"
X #include "pmlcg.h"
X-#include "gmp.h"
X+#include <gmp.h>
X #include "basic.h"
X #include <math.h>
X 
6e67bf647e57be470bbb41c54dda189c
echo x - pkg-descr
sed 's/^X//' >pkg-descr << '7f9555c3c1089940396b503dd37f3979'
XComputational stochastic approaches (Monte Carlo methods) based on the random 
Xsampling are becoming important research tools.
XAn indication of importance is, for example, the fact that Monte Carlo
Xcalculations consume about one half of the supercomputer cycles. One of the
Xindispensable and important ingredients for reliable and statistically sound
Xcalculations is the source of pseudo random numbers.
X
XWhile SPRNG 4.0 is the newest version, this port only implements SPRNG 2.0, 
Xwhich is needed by some other parts of software like packages of math/R.
X
XWWW: http://sprng.fsu.edu/Version2.0/
7f9555c3c1089940396b503dd37f3979
echo x - pkg-plist
sed 's/^X//' >pkg-plist << '842cde48cf18b70a11b15515ca566742'
Xbin/checksprng
Xbin/check.csprng
Xbin/check.fsprng
Xbin/check_sim.csprng
Xbin/check_sim.fsprng
Xbin/check_ptr.csprng
Xbin/check_ptr.fsprng
Xbin/timesprng
Xbin/timingcsprng
Xbin/timingfsprng
Xinclude/sprng.h
Xinclude/sprng_f.h
Xinclude/interface.h
Xlib/libsprng.a
Xlib/libsprngtest.a
Xlib/libsprng.so
Xlib/libsprng.so.2
Xlib/libsprng.so.2.0
Xlib/libsprngtest.so
Xlib/libsprngtest.so.2
Xlib/libsprngtest.so.2.0
Xshare/sprng/gen0_lfg
Xshare/sprng/gen0_lfg.data
Xshare/sprng/gen1_lcg
Xshare/sprng/gen1_lcg.data
Xshare/sprng/gen2_lcg64
Xshare/sprng/gen2_lcg64.data
Xshare/sprng/gen3_cmrg
Xshare/sprng/gen3_cmrg.data
Xshare/sprng/gen4_mlfg
Xshare/sprng/gen4_mlfg.data
Xshare/sprng/gen5_pmlcg
Xshare/sprng/gen5_pmlcg.data
Xshare/sprng/sprng.ps
X at dirrm share/sprng
842cde48cf18b70a11b15515ca566742
echo x - pkg-message
sed 's/^X//' >pkg-message << '90c81c06929c43140502a9f17b449376'
X*******************************************************************************
X
XThe SPRNG libraries of generators produce good quality random numbers,
Xand are also fast. They have been subjected to some of the largest
Xrandom number tests.
X
XLanguages: C, C++, FORTRAN
X
XGenerators: Modified Additive Lagged Fibonacci, Multiplicative Lagged
X            Fibonacci, Combined Multiple Recursive generator, three types of
X            Linear Congruential. 
X
XSPRNG version 2.0b is an old library from 1999 with only a few changes in 2007.
XThere is a newer version 4.0 (from 2007) with many changes on the API. For
Xdifferent reasons version 2.0 is needed from other stuff like multiprocessing 
Xwith math/R (package rsprng ...).
X
XThe installed library can be testet with 'checksprng' and 'timesprng'. They
Xuse test datasets from ${LOCALBASE}/share/sprng.
X
XDocumentation can be found under ${LOCALBASE}/share/sprng/sprng.ps.
X
X*******************************************************************************
90c81c06929c43140502a9f17b449376
exit



>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list