aboutsummaryrefslogtreecommitdiff
path: root/math/crlibm
diff options
context:
space:
mode:
authorBrendan Fabeny <bf@FreeBSD.org>2012-01-11 06:47:02 +0000
committerBrendan Fabeny <bf@FreeBSD.org>2012-01-11 06:47:02 +0000
commit11fb6f6ca0ddae1256d4ba04cd510dbb73d38e6b (patch)
treeca04db26da5f13efe79630809606b398949780fa /math/crlibm
parentf1ecf33f43d8a1ea084140395a13cf73f3b692ef (diff)
downloadports-11fb6f6ca0ddae1256d4ba04cd510dbb73d38e6b.tar.gz
ports-11fb6f6ca0ddae1256d4ba04cd510dbb73d38e6b.zip
Add crlibm , correctly-rounded mathematics library.
Notes
Notes: svn path=/head/; revision=288947
Diffstat (limited to 'math/crlibm')
-rw-r--r--math/crlibm/Makefile61
-rw-r--r--math/crlibm/distinfo6
-rw-r--r--math/crlibm/pkg-descr23
-rw-r--r--math/crlibm/pkg-plist10
4 files changed, 100 insertions, 0 deletions
diff --git a/math/crlibm/Makefile b/math/crlibm/Makefile
new file mode 100644
index 000000000000..34d7428fb4a7
--- /dev/null
+++ b/math/crlibm/Makefile
@@ -0,0 +1,61 @@
+# New ports collection makefile for: crlibm
+# Date created: 10 January 2012
+# Whom: bf@FreeBSD.org
+#
+# $FreeBSD$
+#
+
+PORTNAME= crlibm
+DISTVERSION= 1.0beta4
+CATEGORIES= math
+MASTER_SITES= http://lipforge.ens-lyon.fr/frs/download.php/%SUBDIR%/:1,2,3 \
+ LOCAL/bf:4
+MASTER_SITE_SUBDIR= 162/:1 153/:2 154/:3
+DISTFILES= ${DISTNAME}${EXTRACT_SUFX}:1,4
+.if make(makesum) || !defined(NOPORTDOCS)
+DISTFILES+= crlibm-1.0beta3.pdf:2,4 tripledoubleprocedures-1.0beta3.pdf:3,4
+.endif
+DIST_SUBDIR= crlibm
+EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX}
+
+MAINTAINER= bf@FreeBSD.org
+COMMENT= Correctly-rounded mathematics library
+
+LICENSE= LGPL21
+
+LIB_DEPENDS= mpfr.4:${PORTSDIR}/math/mpfr
+
+GNU_CONFIGURE= yes
+CONFIGURE_ARGS = --enable-mpfr
+CPPFLAGS+= -I${LOCALBASE}/include
+LDFLAGS+= -L${LOCALBASE}/lib
+
+.include <bsd.port.pre.mk>
+
+#7-STABLE has log2() in libm after r226457 on 17 Oct 2011, but
+#there was no accompanying OSVERSION bump
+.if ${OSVERSION} < 802502 || (${OSVERSION} >= 900000 && ${OSVERSION} < 900027)
+post-patch:
+ @${REINPLACE_CMD} \
+ -e '/testfun_libm[[:blank:]]*=[[:blank:]]*log2;/s/log2/NULL/' \
+ ${WRKSRC}/tests/test_common.c
+
+.endif
+
+post-build:
+ @cd ${WRKSRC}; ${STRIP_CMD} -x libcrlibm.a scs_lib/libscs.a
+
+check regression-test test: build
+ @cd ${WRKSRC}; ${SETENV} ${MAKE_ENV} ${MAKE} ${_MAKE_JOBS} \
+ ${MAKE_ARGS} check
+
+.if !defined(NOPORTDOCS)
+PORTDOCS= ${DISTFILES:C|\:.*||:M*.pdf}
+
+post-install:
+ @${INSTALL_DATA} -d ${DOCSDIR}
+ @cd ${_DISTDIR}; ${INSTALL_DATA} ${PORTDOCS} ${DOCSDIR}
+
+.endif
+
+.include <bsd.port.post.mk>
diff --git a/math/crlibm/distinfo b/math/crlibm/distinfo
new file mode 100644
index 000000000000..046261b2d061
--- /dev/null
+++ b/math/crlibm/distinfo
@@ -0,0 +1,6 @@
+SHA256 (crlibm/crlibm-1.0beta4.tar.gz) = 6836b4299f9421c99da2bdcd5e04a8d35577db4eb61161a401aa93751a96375d
+SIZE (crlibm/crlibm-1.0beta4.tar.gz) = 2368435
+SHA256 (crlibm/crlibm-1.0beta3.pdf) = cbde4b66d1fa331fa7806effb41119deb42a294df64c117c966fd659d947a5ea
+SIZE (crlibm/crlibm-1.0beta3.pdf) = 1350926
+SHA256 (crlibm/tripledoubleprocedures-1.0beta3.pdf) = 55bd342c623e369e5450b36337da3879e18b1a483d55706e2f979c9cce906fac
+SIZE (crlibm/tripledoubleprocedures-1.0beta3.pdf) = 460704
diff --git a/math/crlibm/pkg-descr b/math/crlibm/pkg-descr
new file mode 100644
index 000000000000..2e5a331d0274
--- /dev/null
+++ b/math/crlibm/pkg-descr
@@ -0,0 +1,23 @@
+CRlibm is an efficient and proven mathematical library, which
+provides implementations of the double-precision C99 standard
+elementary functions, correctly rounded in the four IEEE-754 rounding
+modes, and sufficiently efficient in average time, worst-case time,
+and memory consumption to replace existing libms transparently.
+
+The distribution includes extensive documentation with the proof
+of each function (currently more than 100 pages), as well as all
+the Maple scripts used to develop the functions. This makes this
+library an excellent tutorial on software elementary function
+development.
+
+CRlibm also includes a lightweight library for multiple precision,
+scslib (Software Carry Save Library). This library has been developed
+specifically to answer the needs of the CRlibm project: precision
+up to a few hundred bits, portability, compatibility with IEEE
+floating-point standards, performance comparable to or better than
+GMP, and a small footprint. It uses a data-structure which allows
+carry propagations to be avoided during multiple-precision
+multiplications, and supports addition, subtraction, multiplication,
+and conversions.
+
+WWW: http://lipforge.ens-lyon.fr/www/crlibm/
diff --git a/math/crlibm/pkg-plist b/math/crlibm/pkg-plist
new file mode 100644
index 000000000000..679f462020b2
--- /dev/null
+++ b/math/crlibm/pkg-plist
@@ -0,0 +1,10 @@
+bin/crlibm_blindtest
+bin/crlibm_generate_test_vectors
+bin/crlibm_soaktest
+bin/crlibm_testperf
+bin/crlibm_testval
+include/crlibm.h
+include/crlibm_config.h
+include/scs.h
+lib/libcrlibm.a
+lib/libscs.a