diff options
author | Andrew Sun | 2019-08-02 06:24:53 -0400 |
---|---|---|
committer | Andrew Sun | 2019-08-02 06:24:53 -0400 |
commit | a64a8cb668ceb354c9854e967a01ff3776aed0cf (patch) | |
tree | 600d1f5f94ea218f6fef777f99adfc4d8b212acd | |
parent | 8246e9043495a34edd458f01b5ff4d52a3c5e243 (diff) | |
download | aur-mingw-w64-mpfi.tar.gz |
mingw-w64-mpfi: new tarball
-rw-r--r-- | .SRCINFO | 8 | ||||
-rw-r--r-- | PKGBUILD | 14 | ||||
-rw-r--r-- | div_ext.c | 142 |
3 files changed, 9 insertions, 155 deletions
@@ -1,7 +1,7 @@ pkgbase = mingw-w64-mpfi pkgdesc = C library for interval arithmetic (mingw-w64) pkgver = 1.5.4 - pkgrel = 1 + pkgrel = 2 url = http://perso.ens-lyon.fr/nathalie.revol/software.html arch = any license = GPL @@ -10,10 +10,8 @@ pkgbase = mingw-w64-mpfi options = !strip options = !buildflags options = staticlibs - source = https://gforge.inria.fr/frs/download.php/latestfile/181/mpfi-1.5.4.tar.gz - source = div_ext.c - sha256sums = 76b01b9eed7150a44b3f6aea24ad4ac78b0f2078253be87ff6d1903d02dfa434 - sha256sums = aa280208c1168fbdfdac5cbb3fd8421904bc80d6a323de89a4b6b48a66446b01 + source = https://gforge.inria.fr/frs/download.php/file/38111/mpfi-1.5.4.tgz + sha256sums = 3b3938595d720af17973deaf727cfc0dd41c8b16c20adc103a970f4a43ae3a56 pkgname = mingw-w64-mpfi @@ -2,7 +2,7 @@ pkgname=mingw-w64-mpfi pkgver=1.5.4 -pkgrel=1 +pkgrel=2 pkgdesc="C library for interval arithmetic (mingw-w64)" arch=('any') url="http://perso.ens-lyon.fr/nathalie.revol/software.html" @@ -10,20 +10,18 @@ license=('GPL') makedepends=('mingw-w64-configure') depends=('mingw-w64-mpfr') options=('!strip' '!buildflags' 'staticlibs') -source=("https://gforge.inria.fr/frs/download.php/latestfile/181/mpfi-${pkgver}.tar.gz" div_ext.c) -sha256sums=('76b01b9eed7150a44b3f6aea24ad4ac78b0f2078253be87ff6d1903d02dfa434' - 'aa280208c1168fbdfdac5cbb3fd8421904bc80d6a323de89a4b6b48a66446b01') +source=("https://gforge.inria.fr/frs/download.php/file/38111/mpfi-$pkgver.tgz") +sha256sums=('3b3938595d720af17973deaf727cfc0dd41c8b16c20adc103a970f4a43ae3a56') _architectures="i686-w64-mingw32 x86_64-w64-mingw32" prepare() { - cd "${srcdir}/mpfi-${pkgver}/mpfi" + cd "${srcdir}/mpfi-${pkgver}" ./autogen.sh - cp "${srcdir}"/div_ext.c src # Missing source file } build() { - cd "${srcdir}/mpfi-${pkgver}/mpfi" + cd "${srcdir}/mpfi-${pkgver}" for _arch in ${_architectures}; do mkdir -p build-${_arch} && pushd build-${_arch} ${_arch}-configure .. @@ -34,7 +32,7 @@ build() { package() { for _arch in ${_architectures}; do - cd "${srcdir}/mpfi-${pkgver}/mpfi/build-${_arch}" + cd "${srcdir}/mpfi-${pkgver}/build-${_arch}" make DESTDIR="${pkgdir}" install rm -rf "${pkgdir}/usr/${_arch}/share" ${_arch}-strip --strip-unneeded "$pkgdir"/usr/${_arch}/bin/*.dll diff --git a/div_ext.c b/div_ext.c deleted file mode 100644 index 30cd3dbee6e7..000000000000 --- a/div_ext.c +++ /dev/null @@ -1,142 +0,0 @@ -/* div_ext.c -- Divide two intervals: - when the denominator contains 0, - returns two intervals and a gap between them. - - The returned integer is the number of returned intervals. - -Copyright 2018 - AriC project, Inria Grenoble - Rhone-Alpes, France - -This file is part of the MPFI Library. - -The MPFI Library is free software; you can redistribute it and/or modify -it under the terms of the GNU Lesser General Public License as published by -the Free Software Foundation; either version 2.1 of the License, or (at your -option) any later version. - -The MPFI Library is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public -License for more details. - -You should have received a copy of the GNU Lesser General Public License -along with the MPFI Library; see the file COPYING.LIB. If not, write to -the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, -MA 02110-1301, USA. */ - -#include "mpfi-impl.h" - -int -mpfi_div_ext (mpfi_ptr res1, mpfi_ptr res2, mpfi_srcptr op1, mpfi_srcptr op2) -{ - mpfr_t tmp1, tmp2; - int nb_res = 0, tmp; - - if ( MPFI_NAN_P (op1) || MPFI_NAN_P (op2) ) { - mpfr_set_nan (&(res1->left)); - mpfr_set_nan (&(res1->right)); - mpfr_set_nan (&(res2->left)); - mpfr_set_nan (&(res2->right)); - return 0; - } - - if (MPFI_HAS_ZERO (op2)) { - if ( MPFR_IS_INF(&(op2->left)) && MPFR_IS_INF(&(op2->right)) ) { - mpfr_set_inf (&(res1->left), -1); - mpfr_set_inf (&(res1->right), 1); - mpfr_set_nan (&(res2->left)); - mpfr_set_nan (&(res2->right)); - nb_res = 1; - } - else if ( MPFI_HAS_ZERO_NONSTRICT (op1) ) { - mpfr_set_inf (&(res1->left), -1); - mpfr_set_inf (&(res1->right), 1); - mpfr_set_nan (&(res2->left)); - mpfr_set_nan (&(res2->right)); - nb_res = 1; - } - else if ( MPFI_IS_STRICTLY_NEG (op1) ) { - mpfr_init2 (tmp1, mpfi_get_prec(res1)); - mpfr_init2 (tmp2, mpfi_get_prec(res2)); - if ( mpfr_number_p (&(op2->left)) ) { - tmp = mpfr_div (&(tmp2), &(op1->right), &(op2->left), MPFI_RNDD); - } - else { /* denominator has infinite left endpoint */ - mpfr_set_zero (&(tmp2), 1); - } - - if ( mpfr_number_p (&(op2->right)) ) { - tmp = mpfr_div ( &(tmp1), &(op1->right), &(op2->right), MPFI_RNDU); - } - else { /* denominator has infinite right endpoint */ - mpfr_set_zero( &(tmp1), -1); - } - - mpfr_set_inf (&(res1->left), -1); - mpfr_set (&(res1->right), tmp1, MPFI_RNDU); - mpfr_set (&(res2->left), tmp2, MPFI_RNDD); - mpfr_set_inf (&(res2->right), 1); - - mpfr_clear(tmp1); - mpfr_clear(tmp2); - - nb_res = 2; - } - else { /* if ( MPFI_IS_STRICTLY_POS (op1) ) */ - mpfr_init2 (tmp1, mpfi_get_prec(res1)); - mpfr_init2 (tmp2, mpfi_get_prec(res2)); - if ( mpfr_number_p (&(op2->left)) ) { - tmp = mpfr_div (&(tmp1), &(op1->left), &(op2->left), MPFI_RNDU); - } - else { /* denominator has infinite left endpoint */ - mpfr_set_zero (&(tmp1), -1); - } - - if ( mpfr_number_p (&(op2->right)) ) { - tmp = mpfr_div ( &(tmp2), &(op1->left), &(op2->right), MPFI_RNDD); - } - else { /* denominator has infinite right endpoint */ - mpfr_set_zero( &(tmp2), 1); - } - mpfr_set_inf (&(res1->left), -1); - mpfr_set (&(res1->right), tmp1, MPFI_RNDU); - mpfr_set (&(res2->left), tmp2, MPFI_RNDD); - mpfr_set_inf (&(res2->right), 1); - - mpfr_clear(tmp1); - mpfr_clear(tmp2); - - nb_res = 2; - } - } - - else { - tmp = mpfi_div(res1, op1, op2); - mpfr_set_nan (&(res2->left)); - mpfr_set_nan (&(res2->right)); - return 1; - } - - if (nb_res >= 1) { - /* do not allow -0 as lower bound */ - if (mpfr_zero_p (&(res1->left)) && mpfr_signbit (&(res1->left))) { - mpfr_neg (&(res1->left), &(res1->left), MPFI_RNDU); - } - /* do not allow +0 as upper bound */ - if (mpfr_zero_p (&(res1->right)) && !mpfr_signbit (&(res1->right))) { - mpfr_neg (&(res1->right), &(res1->right), MPFI_RNDD); - } - } - if (nb_res >= 2) { - /* do not allow -0 as lower bound */ - if (mpfr_zero_p (&(res2->left)) && mpfr_signbit (&(res2->left))) { - mpfr_neg (&(res2->left), &(res2->left), MPFI_RNDU); - } - /* do not allow +0 as upper bound */ - if (mpfr_zero_p (&(res2->right)) && !mpfr_signbit (&(res2->right))) { - mpfr_neg (&(res2->right), &(res2->right), MPFI_RNDD); - } - } - - return nb_res; -} |