diff --git a/.github/scripts/build_and_test.sh b/.github/scripts/build_and_test.sh new file mode 100755 index 0000000..06a3349 --- /dev/null +++ b/.github/scripts/build_and_test.sh @@ -0,0 +1,11 @@ +#! /bin/bash + +cpanm -vn Net::SSLeay +cpanm -n Alien::Build +cpanm Alien::GSL +cpanm Module::Build +mkdir -p xs +perl Build.PL +./Build installdeps --cpan_client cpanm +./Build +./Build test diff --git a/.github/scripts/build_dist.sh b/.github/scripts/build_dist.sh new file mode 100755 index 0000000..09b378d --- /dev/null +++ b/.github/scripts/build_dist.sh @@ -0,0 +1,7 @@ +#! /bin/bash + +export LD_LIBRARY_PATH=${GSL_DIR}/lib +./Build dist +DISTNAME=$(ls -1 Math*.tar.gz) +echo "MATH_GSL_DISTNAME=$DISTNAME" >> $GITHUB_ENV +echo "$DISTNAME" > math-gsl-dist-name.txt diff --git a/.github/scripts/install_gsl.sh b/.github/scripts/install_gsl.sh new file mode 100755 index 0000000..8c58039 --- /dev/null +++ b/.github/scripts/install_gsl.sh @@ -0,0 +1,16 @@ +#! /bin/bash + +GSL_MIRROR=http://mirrors.kernel.org/gnu/gsl +BUILD_DIR=$GSL_DIR/build +INSTALL_DIR=$GSL_DIR +mkdir -p $BUILD_DIR +cd "$BUILD_DIR" +export PATH=$PERL_DIR/bin:$PATH +ZIP_NAME="$GSL_NAME".tar.gz +wget "$GSL_MIRROR"/"$ZIP_NAME" --retry-connrefused --timeout=900 +tar zxvf "$ZIP_NAME" +cd "$GSL_NAME" +./configure --prefix "$INSTALL_DIR" +make -j$(nproc) +make install +echo "PATH=$PATH" >> $GITHUB_ENV diff --git a/.github/scripts/install_perl.sh b/.github/scripts/install_perl.sh new file mode 100755 index 0000000..706a616 --- /dev/null +++ b/.github/scripts/install_perl.sh @@ -0,0 +1,33 @@ +#! /bin/bash + +# NOTE: perl version 5.26.1 is already installed (on Ubuntu 20.04), +# but we would like to not mess with that, so we install a custom perl. + +BUILD_DIR=$PERL_DIR/build +INSTALL_DIR=$PERL_DIR +mkdir -p $BUILD_DIR +cd "$BUILD_DIR" +ZIP_NAME=${PERL_NAME}.tar.gz +wget https://www.cpan.org/src/5.0/$ZIP_NAME +ZIP_TYPE=$(perl -pe 's/^.*\.([^.]*)$/$1/' <<<$ZIP_NAME) +TAR_NAME=$(perl -pe 's/^(.*)\.[^.]*$/$1/' <<<$ZIP_NAME) +if [[ $ZIP_TYPE == 'gz' ]] ; then + gunzip $ZIP_NAME +elif [[ $ZIP_TYPE == 'bz2' ]] ; then + bunzip2 $ZIP_NAME +else + echo "Unknown archive type: $ZIP_TYPE" + exit 1 +fi +tar xvf $TAR_NAME +PERL_DIR2=$(perl -pe 's/\.tar$//' <<<$TAR_NAME) +cd $PERL_DIR2 +sh Configure -des -Dprefix=$INSTALL_DIR -Dman1dir=none -Dman3dir=none +make +make install +export PATH=$INSTALL_DIR/bin:$PATH +echo "PATH=$PATH" >> $GITHUB_ENV +perl --version +cpan -v +cpan App::cpanminus + diff --git a/.github/scripts/set_environment_variables.sh b/.github/scripts/set_environment_variables.sh new file mode 100755 index 0000000..dd91510 --- /dev/null +++ b/.github/scripts/set_environment_variables.sh @@ -0,0 +1,21 @@ +#! /bin/bash + +if [[ -n $PERL_DIR ]] ; then + PERL_DIR="${PERL_DIR/#\~/$HOME}" + echo "PERL_NAME=$PERL_NAME" >> $GITHUB_ENV + echo "PERL_DIR=$PERL_DIR" >> $GITHUB_ENV + export PATH=$PERL_DIR/bin:"$PATH" +fi +if [[ -n $GSL_DIR ]] ; then + # autoconf needs an absolute prefix to install GSL, replace tilde with $HOME + GSL_DIR="${GSL_DIR/#\~/$HOME}" + echo "GSL_NAME=$GSL_NAME" >> $GITHUB_ENV + echo "GSL_DIR=$GSL_DIR" >> $GITHUB_ENV + export LD_LIBRARY_PATH=$GSL_DIR/lib + export PATH=$GSL_DIR/bin:"$PATH" + export PKG_CONFIG_PATH="$GSL_DIR"/lib/pkgconfig +fi + +echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH" >> $GITHUB_ENV +echo "PATH=$PATH" >> $GITHUB_ENV +echo "PKG_CONFIG_PATH=$PKG_CONFIG_PATH" >> $GITHUB_ENV diff --git a/.github/scripts/show_perl_info.sh b/.github/scripts/show_perl_info.sh new file mode 100755 index 0000000..86d5631 --- /dev/null +++ b/.github/scripts/show_perl_info.sh @@ -0,0 +1,9 @@ +#! /bin/bash + +perl --version +export PATH=$GITHUB_WORKSPACE/perl/bin:$PATH +echo "PATH=$PATH" >> $GITHUB_ENV +perl --version +cpan -v +#uname -a +#lsb_release -d diff --git a/.github/workflows/actions.yml b/.github/workflows/actions.yml new file mode 100644 index 0000000..3799ba1 --- /dev/null +++ b/.github/workflows/actions.yml @@ -0,0 +1,167 @@ +name: linux-build-dist +on: [push, pull_request] +jobs: + build-perls: + runs-on: ubuntu-20.04 + strategy: + matrix: + perl: [34, 32, 30, 28, 26] + steps: + - uses: actions/checkout@v2 + - name: set environment variables + env: + PERL_NAME: perl-5.${{ matrix.perl }}.0 + PERL_DIR: ~/perl/${{ runner.os }}/5.${{ matrix.perl }} + run: | + ./.github/scripts/set_environment_variables.sh + - name: perl cache + env: + CACHE_KEY: ${{ runner.os }}-perl3-${{ matrix.perl }} + id: cache-perl + uses: actions/cache@v2 + with: + path: ${{ env.PERL_DIR }} + key: ${{ env.CACHE_KEY }} + - name: install perl + if: steps.cache-perl.outputs.cache-hit != 'true' + run: | + ./.github/scripts/install_perl.sh + build-gsl: + runs-on: ubuntu-20.04 + strategy: + matrix: + gsl: [2.7, 2.6, 2.5, 2.4, 2.3] + steps: + - uses: actions/checkout@v2 + - name: set environment variables + env: + GSL_NAME: gsl-${{ matrix.gsl }} + GSL_DIR: ~/gsl/${{ runner.os }}/gsl-${{ matrix.gsl }} + run: | + ./.github/scripts/set_environment_variables.sh + - name: gsl cache + env: + CACHE_KEY: ${{ runner.os }}-gsl4-${{ matrix.gsl }} + id: cache-gsl + uses: actions/cache@v2 + with: + path: ${{ env.GSL_DIR }} + key: ${{ env.CACHE_KEY }} + - name: install gsl + if: steps.cache-gsl.outputs.cache-hit != 'true' + run: | + ./.github/scripts/install_gsl.sh + build-dist: + runs-on: ubuntu-20.04 + needs: [build-gsl, build-perls] + strategy: + matrix: + gsl: [2.7] + perl: [34] + steps: + - uses: actions/checkout@v2 + - name: set environment variables + env: + GSL_NAME: gsl-${{ matrix.gsl }} + GSL_DIR: ~/gsl/${{ runner.os }}/gsl-${{ matrix.gsl }} + PERL_NAME: perl-5.${{ matrix.perl }}.0 + PERL_DIR: ~/perl/${{ runner.os }}/5.${{ matrix.perl }} + run: | + ./.github/scripts/set_environment_variables.sh + + - name: perl cache + env: + CACHE_KEY: ${{ runner.os }}-perl3-${{ matrix.perl }} + id: cache-perl + uses: actions/cache@v2 + with: + path: ${{ env.PERL_DIR }} + key: ${{ env.CACHE_KEY }} + - name: gsl cache + env: + CACHE_KEY: ${{ runner.os }}-gsl4-${{ matrix.gsl }} + id: cache-gsl + uses: actions/cache@v2 + with: + path: ${{ env.GSL_DIR }} + key: ${{ env.CACHE_KEY }} + - name: install packages + run: | + # NOTE: The following packages are already installed in "ubuntu-20.04" : + # build-essential curl g++ git wget libssl-dev libz-dev + # swig autoconf libtool + #sudo apt-get install swig autoconf libtool + swig -version + - name: install perl modules, build, and test + run: | + ./.github/scripts/build_and_test.sh + - name: build dist + run: | + ./.github/scripts/build_dist.sh + - name: Save dist as artifact + uses: actions/upload-artifact@v2 + with: + name: math_gsl_dist + path: ${{ env.MATH_GSL_DISTNAME }} + - name: Save name of dist as artifact + uses: actions/upload-artifact@v2 + with: + name: math_gsl_dist_name + path: math-gsl-dist-name.txt + install-dist-linux: + runs-on: ubuntu-20.04 + needs: [build-dist] + strategy: + matrix: + gsl: [2.7, 2.6, 2.5, 2.4, 2.3] + perl: [34, 32, 30, 28, 26] + steps: + - uses: actions/checkout@v2 + - name: set environment variables + env: + GSL_NAME: gsl-${{ matrix.gsl }} + GSL_DIR: ~/gsl/${{ runner.os }}/gsl-${{ matrix.gsl }} + PERL_NAME: perl-5.${{ matrix.perl }}.0 + PERL_DIR: ~/perl/${{ runner.os }}/5.${{ matrix.perl }} + run: | + ./.github/scripts/set_environment_variables.sh + - name: perl cache + env: + CACHE_KEY: ${{ runner.os }}-perl3-${{ matrix.perl }} + id: cache-perl + uses: actions/cache@v2 + with: + path: ${{ env.PERL_DIR }} + key: ${{ env.CACHE_KEY }} + - name: gsl cache + env: + CACHE_KEY: ${{ runner.os }}-gsl4-${{ matrix.gsl }} + id: cache-gsl + uses: actions/cache@v2 + with: + path: ${{ env.GSL_DIR }} + key: ${{ env.CACHE_KEY }} + - name: Download dist + env: + PERL_NAME: perl-5.${{ matrix.perl }} + PERL_DIR: ~/perl/${{runner.os}}/5.${{ matrix.perl }} + GSL_NAME: gsl-${{ matrix.gsl }} + GSL_DIR: ~/gsl/${{runner.os}}/gsl-${{ matrix.gsl }} + uses: actions/download-artifact@v2 + with: + name: math_gsl_dist + - name: Download dist name + uses: actions/download-artifact@v2 + with: + name: math_gsl_dist_name + - name: extract dist + run: | + DISTNAME=$(> $GITHUB_ENV + - name: install perl modules and build and test + run: | + BASEDIR=$PWD + cd $DISTDIR + $BASEDIR/.github/scripts/build_and_test.sh diff --git a/MANIFEST b/MANIFEST index 89418d2..1775a20 100644 --- a/MANIFEST +++ b/MANIFEST @@ -100,6 +100,7 @@ pm/Math/GSL/BLAS.pm.2.3 pm/Math/GSL/BLAS.pm.2.4 pm/Math/GSL/BLAS.pm.2.5 pm/Math/GSL/BLAS.pm.2.6 +pm/Math/GSL/BLAS.pm.2.7 pm/Math/GSL/BSpline.pm.1.15 pm/Math/GSL/BSpline.pm.1.16 pm/Math/GSL/BSpline.pm.2.0 @@ -110,6 +111,7 @@ pm/Math/GSL/BSpline.pm.2.3 pm/Math/GSL/BSpline.pm.2.4 pm/Math/GSL/BSpline.pm.2.5 pm/Math/GSL/BSpline.pm.2.6 +pm/Math/GSL/BSpline.pm.2.7 pm/Math/GSL/CBLAS.pm.1.15 pm/Math/GSL/CBLAS.pm.1.16 pm/Math/GSL/CBLAS.pm.2.0 @@ -120,6 +122,7 @@ pm/Math/GSL/CBLAS.pm.2.3 pm/Math/GSL/CBLAS.pm.2.4 pm/Math/GSL/CBLAS.pm.2.5 pm/Math/GSL/CBLAS.pm.2.6 +pm/Math/GSL/CBLAS.pm.2.7 pm/Math/GSL/CDF.pm.1.15 pm/Math/GSL/CDF.pm.1.16 pm/Math/GSL/CDF.pm.2.0 @@ -130,6 +133,7 @@ pm/Math/GSL/CDF.pm.2.3 pm/Math/GSL/CDF.pm.2.4 pm/Math/GSL/CDF.pm.2.5 pm/Math/GSL/CDF.pm.2.6 +pm/Math/GSL/CDF.pm.2.7 pm/Math/GSL/Chebyshev.pm.1.15 pm/Math/GSL/Chebyshev.pm.1.16 pm/Math/GSL/Chebyshev.pm.2.0 @@ -140,6 +144,7 @@ pm/Math/GSL/Chebyshev.pm.2.3 pm/Math/GSL/Chebyshev.pm.2.4 pm/Math/GSL/Chebyshev.pm.2.5 pm/Math/GSL/Chebyshev.pm.2.6 +pm/Math/GSL/Chebyshev.pm.2.7 pm/Math/GSL/Combination.pm.1.15 pm/Math/GSL/Combination.pm.1.16 pm/Math/GSL/Combination.pm.2.0 @@ -150,6 +155,7 @@ pm/Math/GSL/Combination.pm.2.3 pm/Math/GSL/Combination.pm.2.4 pm/Math/GSL/Combination.pm.2.5 pm/Math/GSL/Combination.pm.2.6 +pm/Math/GSL/Combination.pm.2.7 pm/Math/GSL/Complex.pm.1.15 pm/Math/GSL/Complex.pm.1.16 pm/Math/GSL/Complex.pm.2.0 @@ -160,6 +166,7 @@ pm/Math/GSL/Complex.pm.2.3 pm/Math/GSL/Complex.pm.2.4 pm/Math/GSL/Complex.pm.2.5 pm/Math/GSL/Complex.pm.2.6 +pm/Math/GSL/Complex.pm.2.7 pm/Math/GSL/Const.pm.1.15 pm/Math/GSL/Const.pm.1.16 pm/Math/GSL/Const.pm.2.0 @@ -170,6 +177,7 @@ pm/Math/GSL/Const.pm.2.3 pm/Math/GSL/Const.pm.2.4 pm/Math/GSL/Const.pm.2.5 pm/Math/GSL/Const.pm.2.6 +pm/Math/GSL/Const.pm.2.7 pm/Math/GSL/Deriv.pm.1.15 pm/Math/GSL/Deriv.pm.1.16 pm/Math/GSL/Deriv.pm.2.0 @@ -180,6 +188,7 @@ pm/Math/GSL/Deriv.pm.2.3 pm/Math/GSL/Deriv.pm.2.4 pm/Math/GSL/Deriv.pm.2.5 pm/Math/GSL/Deriv.pm.2.6 +pm/Math/GSL/Deriv.pm.2.7 pm/Math/GSL/DHT.pm.1.15 pm/Math/GSL/DHT.pm.1.16 pm/Math/GSL/DHT.pm.2.0 @@ -190,6 +199,7 @@ pm/Math/GSL/DHT.pm.2.3 pm/Math/GSL/DHT.pm.2.4 pm/Math/GSL/DHT.pm.2.5 pm/Math/GSL/DHT.pm.2.6 +pm/Math/GSL/DHT.pm.2.7 pm/Math/GSL/Diff.pm.1.15 pm/Math/GSL/Diff.pm.1.16 pm/Math/GSL/Diff.pm.2.0 @@ -200,6 +210,7 @@ pm/Math/GSL/Diff.pm.2.3 pm/Math/GSL/Diff.pm.2.4 pm/Math/GSL/Diff.pm.2.5 pm/Math/GSL/Diff.pm.2.6 +pm/Math/GSL/Diff.pm.2.7 pm/Math/GSL/Eigen.pm.1.15 pm/Math/GSL/Eigen.pm.1.16 pm/Math/GSL/Eigen.pm.2.0 @@ -210,6 +221,7 @@ pm/Math/GSL/Eigen.pm.2.3 pm/Math/GSL/Eigen.pm.2.4 pm/Math/GSL/Eigen.pm.2.5 pm/Math/GSL/Eigen.pm.2.6 +pm/Math/GSL/Eigen.pm.2.7 pm/Math/GSL/Errno.pm.1.15 pm/Math/GSL/Errno.pm.1.16 pm/Math/GSL/Errno.pm.2.0 @@ -220,6 +232,7 @@ pm/Math/GSL/Errno.pm.2.3 pm/Math/GSL/Errno.pm.2.4 pm/Math/GSL/Errno.pm.2.5 pm/Math/GSL/Errno.pm.2.6 +pm/Math/GSL/Errno.pm.2.7 pm/Math/GSL/FFT.pm.1.15 pm/Math/GSL/FFT.pm.1.16 pm/Math/GSL/FFT.pm.2.0 @@ -230,6 +243,7 @@ pm/Math/GSL/FFT.pm.2.3 pm/Math/GSL/FFT.pm.2.4 pm/Math/GSL/FFT.pm.2.5 pm/Math/GSL/FFT.pm.2.6 +pm/Math/GSL/FFT.pm.2.7 pm/Math/GSL/Fit.pm.1.15 pm/Math/GSL/Fit.pm.1.16 pm/Math/GSL/Fit.pm.2.0 @@ -240,6 +254,7 @@ pm/Math/GSL/Fit.pm.2.3 pm/Math/GSL/Fit.pm.2.4 pm/Math/GSL/Fit.pm.2.5 pm/Math/GSL/Fit.pm.2.6 +pm/Math/GSL/Fit.pm.2.7 pm/Math/GSL/Heapsort.pm.1.15 pm/Math/GSL/Heapsort.pm.1.16 pm/Math/GSL/Heapsort.pm.2.0 @@ -250,6 +265,7 @@ pm/Math/GSL/Heapsort.pm.2.3 pm/Math/GSL/Heapsort.pm.2.4 pm/Math/GSL/Heapsort.pm.2.5 pm/Math/GSL/Heapsort.pm.2.6 +pm/Math/GSL/Heapsort.pm.2.7 pm/Math/GSL/Histogram.pm.1.15 pm/Math/GSL/Histogram.pm.1.16 pm/Math/GSL/Histogram.pm.2.0 @@ -260,6 +276,7 @@ pm/Math/GSL/Histogram.pm.2.3 pm/Math/GSL/Histogram.pm.2.4 pm/Math/GSL/Histogram.pm.2.5 pm/Math/GSL/Histogram.pm.2.6 +pm/Math/GSL/Histogram.pm.2.7 pm/Math/GSL/Histogram2D.pm.1.15 pm/Math/GSL/Histogram2D.pm.1.16 pm/Math/GSL/Histogram2D.pm.2.0 @@ -270,6 +287,7 @@ pm/Math/GSL/Histogram2D.pm.2.3 pm/Math/GSL/Histogram2D.pm.2.4 pm/Math/GSL/Histogram2D.pm.2.5 pm/Math/GSL/Histogram2D.pm.2.6 +pm/Math/GSL/Histogram2D.pm.2.7 pm/Math/GSL/IEEEUtils.pm.1.15 pm/Math/GSL/IEEEUtils.pm.1.16 pm/Math/GSL/IEEEUtils.pm.2.0 @@ -280,6 +298,7 @@ pm/Math/GSL/IEEEUtils.pm.2.3 pm/Math/GSL/IEEEUtils.pm.2.4 pm/Math/GSL/IEEEUtils.pm.2.5 pm/Math/GSL/IEEEUtils.pm.2.6 +pm/Math/GSL/IEEEUtils.pm.2.7 pm/Math/GSL/Integration.pm.1.15 pm/Math/GSL/Integration.pm.1.16 pm/Math/GSL/Integration.pm.2.0 @@ -290,6 +309,7 @@ pm/Math/GSL/Integration.pm.2.3 pm/Math/GSL/Integration.pm.2.4 pm/Math/GSL/Integration.pm.2.5 pm/Math/GSL/Integration.pm.2.6 +pm/Math/GSL/Integration.pm.2.7 pm/Math/GSL/Interp.pm.1.15 pm/Math/GSL/Interp.pm.1.16 pm/Math/GSL/Interp.pm.2.0 @@ -300,6 +320,7 @@ pm/Math/GSL/Interp.pm.2.3 pm/Math/GSL/Interp.pm.2.4 pm/Math/GSL/Interp.pm.2.5 pm/Math/GSL/Interp.pm.2.6 +pm/Math/GSL/Interp.pm.2.7 pm/Math/GSL/Linalg.pm.1.15 pm/Math/GSL/Linalg.pm.1.16 pm/Math/GSL/Linalg.pm.2.0 @@ -310,6 +331,7 @@ pm/Math/GSL/Linalg.pm.2.3 pm/Math/GSL/Linalg.pm.2.4 pm/Math/GSL/Linalg.pm.2.5 pm/Math/GSL/Linalg.pm.2.6 +pm/Math/GSL/Linalg.pm.2.7 pm/Math/GSL/Machine.pm.1.15 pm/Math/GSL/Machine.pm.1.16 pm/Math/GSL/Machine.pm.2.0 @@ -320,6 +342,7 @@ pm/Math/GSL/Machine.pm.2.3 pm/Math/GSL/Machine.pm.2.4 pm/Math/GSL/Machine.pm.2.5 pm/Math/GSL/Machine.pm.2.6 +pm/Math/GSL/Machine.pm.2.7 pm/Math/GSL/Matrix.pm.1.15 pm/Math/GSL/Matrix.pm.1.16 pm/Math/GSL/Matrix.pm.2.0 @@ -330,6 +353,7 @@ pm/Math/GSL/Matrix.pm.2.3 pm/Math/GSL/Matrix.pm.2.4 pm/Math/GSL/Matrix.pm.2.5 pm/Math/GSL/Matrix.pm.2.6 +pm/Math/GSL/Matrix.pm.2.7 pm/Math/GSL/MatrixComplex.pm.1.15 pm/Math/GSL/MatrixComplex.pm.1.16 pm/Math/GSL/MatrixComplex.pm.2.0 @@ -340,6 +364,7 @@ pm/Math/GSL/MatrixComplex.pm.2.3 pm/Math/GSL/MatrixComplex.pm.2.4 pm/Math/GSL/MatrixComplex.pm.2.5 pm/Math/GSL/MatrixComplex.pm.2.6 +pm/Math/GSL/MatrixComplex.pm.2.7 pm/Math/GSL/Min.pm.1.15 pm/Math/GSL/Min.pm.1.16 pm/Math/GSL/Min.pm.2.0 @@ -350,6 +375,7 @@ pm/Math/GSL/Min.pm.2.3 pm/Math/GSL/Min.pm.2.4 pm/Math/GSL/Min.pm.2.5 pm/Math/GSL/Min.pm.2.6 +pm/Math/GSL/Min.pm.2.7 pm/Math/GSL/Monte.pm.1.15 pm/Math/GSL/Monte.pm.1.16 pm/Math/GSL/Monte.pm.2.0 @@ -360,6 +386,7 @@ pm/Math/GSL/Monte.pm.2.3 pm/Math/GSL/Monte.pm.2.4 pm/Math/GSL/Monte.pm.2.5 pm/Math/GSL/Monte.pm.2.6 +pm/Math/GSL/Monte.pm.2.7 pm/Math/GSL/Multifit.pm.2.1 pm/Math/GSL/Multifit.pm.2.2 pm/Math/GSL/Multifit.pm.2.2.1 @@ -367,6 +394,7 @@ pm/Math/GSL/Multifit.pm.2.3 pm/Math/GSL/Multifit.pm.2.4 pm/Math/GSL/Multifit.pm.2.5 pm/Math/GSL/Multifit.pm.2.6 +pm/Math/GSL/Multifit.pm.2.7 pm/Math/GSL/Multilarge.pm.2.1 pm/Math/GSL/Multilarge.pm.2.2 pm/Math/GSL/Multilarge.pm.2.2.1 @@ -374,6 +402,7 @@ pm/Math/GSL/Multilarge.pm.2.3 pm/Math/GSL/Multilarge.pm.2.4 pm/Math/GSL/Multilarge.pm.2.5 pm/Math/GSL/Multilarge.pm.2.6 +pm/Math/GSL/Multilarge.pm.2.7 pm/Math/GSL/Multimin.pm.1.15 pm/Math/GSL/Multimin.pm.1.16 pm/Math/GSL/Multimin.pm.2.0 @@ -384,6 +413,7 @@ pm/Math/GSL/Multimin.pm.2.3 pm/Math/GSL/Multimin.pm.2.4 pm/Math/GSL/Multimin.pm.2.5 pm/Math/GSL/Multimin.pm.2.6 +pm/Math/GSL/Multimin.pm.2.7 pm/Math/GSL/Multiroots.pm.1.15 pm/Math/GSL/Multiroots.pm.1.16 pm/Math/GSL/Multiroots.pm.2.0 @@ -394,6 +424,7 @@ pm/Math/GSL/Multiroots.pm.2.3 pm/Math/GSL/Multiroots.pm.2.4 pm/Math/GSL/Multiroots.pm.2.5 pm/Math/GSL/Multiroots.pm.2.6 +pm/Math/GSL/Multiroots.pm.2.7 pm/Math/GSL/Multiset.pm.1.15 pm/Math/GSL/Multiset.pm.1.16 pm/Math/GSL/Multiset.pm.2.0 @@ -404,6 +435,7 @@ pm/Math/GSL/Multiset.pm.2.3 pm/Math/GSL/Multiset.pm.2.4 pm/Math/GSL/Multiset.pm.2.5 pm/Math/GSL/Multiset.pm.2.6 +pm/Math/GSL/Multiset.pm.2.7 pm/Math/GSL/NTuple.pm.1.15 pm/Math/GSL/NTuple.pm.1.16 pm/Math/GSL/NTuple.pm.2.0 @@ -414,6 +446,7 @@ pm/Math/GSL/NTuple.pm.2.3 pm/Math/GSL/NTuple.pm.2.4 pm/Math/GSL/NTuple.pm.2.5 pm/Math/GSL/NTuple.pm.2.6 +pm/Math/GSL/NTuple.pm.2.7 pm/Math/GSL/ODEIV.pm.1.15 pm/Math/GSL/ODEIV.pm.1.16 pm/Math/GSL/ODEIV.pm.2.0 @@ -424,6 +457,7 @@ pm/Math/GSL/ODEIV.pm.2.3 pm/Math/GSL/ODEIV.pm.2.4 pm/Math/GSL/ODEIV.pm.2.5 pm/Math/GSL/ODEIV.pm.2.6 +pm/Math/GSL/ODEIV.pm.2.7 pm/Math/GSL/Permutation.pm.1.15 pm/Math/GSL/Permutation.pm.1.16 pm/Math/GSL/Permutation.pm.2.0 @@ -434,6 +468,7 @@ pm/Math/GSL/Permutation.pm.2.3 pm/Math/GSL/Permutation.pm.2.4 pm/Math/GSL/Permutation.pm.2.5 pm/Math/GSL/Permutation.pm.2.6 +pm/Math/GSL/Permutation.pm.2.7 pm/Math/GSL/Poly.pm.1.15 pm/Math/GSL/Poly.pm.1.16 pm/Math/GSL/Poly.pm.2.0 @@ -444,6 +479,7 @@ pm/Math/GSL/Poly.pm.2.3 pm/Math/GSL/Poly.pm.2.4 pm/Math/GSL/Poly.pm.2.5 pm/Math/GSL/Poly.pm.2.6 +pm/Math/GSL/Poly.pm.2.7 pm/Math/GSL/PowInt.pm.1.15 pm/Math/GSL/PowInt.pm.1.16 pm/Math/GSL/PowInt.pm.2.0 @@ -454,6 +490,7 @@ pm/Math/GSL/PowInt.pm.2.3 pm/Math/GSL/PowInt.pm.2.4 pm/Math/GSL/PowInt.pm.2.5 pm/Math/GSL/PowInt.pm.2.6 +pm/Math/GSL/PowInt.pm.2.7 pm/Math/GSL/QRNG.pm.1.15 pm/Math/GSL/QRNG.pm.1.16 pm/Math/GSL/QRNG.pm.2.0 @@ -464,6 +501,7 @@ pm/Math/GSL/QRNG.pm.2.3 pm/Math/GSL/QRNG.pm.2.4 pm/Math/GSL/QRNG.pm.2.5 pm/Math/GSL/QRNG.pm.2.6 +pm/Math/GSL/QRNG.pm.2.7 pm/Math/GSL/Randist.pm.1.15 pm/Math/GSL/Randist.pm.1.16 pm/Math/GSL/Randist.pm.2.0 @@ -474,6 +512,7 @@ pm/Math/GSL/Randist.pm.2.3 pm/Math/GSL/Randist.pm.2.4 pm/Math/GSL/Randist.pm.2.5 pm/Math/GSL/Randist.pm.2.6 +pm/Math/GSL/Randist.pm.2.7 pm/Math/GSL/RNG.pm.1.15 pm/Math/GSL/RNG.pm.1.16 pm/Math/GSL/RNG.pm.2.0 @@ -484,6 +523,7 @@ pm/Math/GSL/RNG.pm.2.3 pm/Math/GSL/RNG.pm.2.4 pm/Math/GSL/RNG.pm.2.5 pm/Math/GSL/RNG.pm.2.6 +pm/Math/GSL/RNG.pm.2.7 pm/Math/GSL/Roots.pm.1.15 pm/Math/GSL/Roots.pm.1.16 pm/Math/GSL/Roots.pm.2.0 @@ -494,6 +534,7 @@ pm/Math/GSL/Roots.pm.2.3 pm/Math/GSL/Roots.pm.2.4 pm/Math/GSL/Roots.pm.2.5 pm/Math/GSL/Roots.pm.2.6 +pm/Math/GSL/Roots.pm.2.7 pm/Math/GSL/Rstat.pm.2.0 pm/Math/GSL/Rstat.pm.2.1 pm/Math/GSL/Rstat.pm.2.2 @@ -502,6 +543,7 @@ pm/Math/GSL/Rstat.pm.2.3 pm/Math/GSL/Rstat.pm.2.4 pm/Math/GSL/Rstat.pm.2.5 pm/Math/GSL/Rstat.pm.2.6 +pm/Math/GSL/Rstat.pm.2.7 pm/Math/GSL/SF.pm.1.15 pm/Math/GSL/SF.pm.1.16 pm/Math/GSL/SF.pm.2.0 @@ -512,6 +554,7 @@ pm/Math/GSL/SF.pm.2.3 pm/Math/GSL/SF.pm.2.4 pm/Math/GSL/SF.pm.2.5 pm/Math/GSL/SF.pm.2.6 +pm/Math/GSL/SF.pm.2.7 pm/Math/GSL/Siman.pm.1.15 pm/Math/GSL/Siman.pm.1.16 pm/Math/GSL/Siman.pm.2.0 @@ -522,6 +565,7 @@ pm/Math/GSL/Siman.pm.2.3 pm/Math/GSL/Siman.pm.2.4 pm/Math/GSL/Siman.pm.2.5 pm/Math/GSL/Siman.pm.2.6 +pm/Math/GSL/Siman.pm.2.7 pm/Math/GSL/Sort.pm.1.15 pm/Math/GSL/Sort.pm.1.16 pm/Math/GSL/Sort.pm.2.0 @@ -532,6 +576,7 @@ pm/Math/GSL/Sort.pm.2.3 pm/Math/GSL/Sort.pm.2.4 pm/Math/GSL/Sort.pm.2.5 pm/Math/GSL/Sort.pm.2.6 +pm/Math/GSL/Sort.pm.2.7 pm/Math/GSL/SparseMatrix.pm.2.0 pm/Math/GSL/SparseMatrix.pm.2.1 pm/Math/GSL/SparseMatrix.pm.2.2 @@ -540,6 +585,7 @@ pm/Math/GSL/SparseMatrix.pm.2.3 pm/Math/GSL/SparseMatrix.pm.2.4 pm/Math/GSL/SparseMatrix.pm.2.5 pm/Math/GSL/SparseMatrix.pm.2.6 +pm/Math/GSL/SparseMatrix.pm.2.7 pm/Math/GSL/Spline.pm.1.15 pm/Math/GSL/Spline.pm.1.16 pm/Math/GSL/Spline.pm.2.0 @@ -550,6 +596,7 @@ pm/Math/GSL/Spline.pm.2.3 pm/Math/GSL/Spline.pm.2.4 pm/Math/GSL/Spline.pm.2.5 pm/Math/GSL/Spline.pm.2.6 +pm/Math/GSL/Spline.pm.2.7 pm/Math/GSL/Statistics.pm.1.15 pm/Math/GSL/Statistics.pm.1.16 pm/Math/GSL/Statistics.pm.2.0 @@ -560,6 +607,7 @@ pm/Math/GSL/Statistics.pm.2.3 pm/Math/GSL/Statistics.pm.2.4 pm/Math/GSL/Statistics.pm.2.5 pm/Math/GSL/Statistics.pm.2.6 +pm/Math/GSL/Statistics.pm.2.7 pm/Math/GSL/Sum.pm.1.15 pm/Math/GSL/Sum.pm.1.16 pm/Math/GSL/Sum.pm.2.0 @@ -570,6 +618,7 @@ pm/Math/GSL/Sum.pm.2.3 pm/Math/GSL/Sum.pm.2.4 pm/Math/GSL/Sum.pm.2.5 pm/Math/GSL/Sum.pm.2.6 +pm/Math/GSL/Sum.pm.2.7 pm/Math/GSL/Sys.pm.1.15 pm/Math/GSL/Sys.pm.1.16 pm/Math/GSL/Sys.pm.2.0 @@ -580,6 +629,7 @@ pm/Math/GSL/Sys.pm.2.3 pm/Math/GSL/Sys.pm.2.4 pm/Math/GSL/Sys.pm.2.5 pm/Math/GSL/Sys.pm.2.6 +pm/Math/GSL/Sys.pm.2.7 pm/Math/GSL/Vector.pm.1.15 pm/Math/GSL/Vector.pm.1.16 pm/Math/GSL/Vector.pm.2.0 @@ -590,6 +640,7 @@ pm/Math/GSL/Vector.pm.2.3 pm/Math/GSL/Vector.pm.2.4 pm/Math/GSL/Vector.pm.2.5 pm/Math/GSL/Vector.pm.2.6 +pm/Math/GSL/Vector.pm.2.7 pm/Math/GSL/VectorComplex.pm.1.15 pm/Math/GSL/VectorComplex.pm.1.16 pm/Math/GSL/VectorComplex.pm.2.0 @@ -600,6 +651,7 @@ pm/Math/GSL/VectorComplex.pm.2.3 pm/Math/GSL/VectorComplex.pm.2.4 pm/Math/GSL/VectorComplex.pm.2.5 pm/Math/GSL/VectorComplex.pm.2.6 +pm/Math/GSL/VectorComplex.pm.2.7 pm/Math/GSL/Version.pm.1.15 pm/Math/GSL/Version.pm.1.16 pm/Math/GSL/Version.pm.2.0 @@ -610,6 +662,7 @@ pm/Math/GSL/Version.pm.2.3 pm/Math/GSL/Version.pm.2.4 pm/Math/GSL/Version.pm.2.5 pm/Math/GSL/Version.pm.2.6 +pm/Math/GSL/Version.pm.2.7 pm/Math/GSL/Wavelet.pm.1.15 pm/Math/GSL/Wavelet.pm.1.16 pm/Math/GSL/Wavelet.pm.2.0 @@ -620,6 +673,7 @@ pm/Math/GSL/Wavelet.pm.2.3 pm/Math/GSL/Wavelet.pm.2.4 pm/Math/GSL/Wavelet.pm.2.5 pm/Math/GSL/Wavelet.pm.2.6 +pm/Math/GSL/Wavelet.pm.2.7 pm/Math/GSL/Wavelet2D.pm.1.15 pm/Math/GSL/Wavelet2D.pm.1.16 pm/Math/GSL/Wavelet2D.pm.2.0 @@ -630,6 +684,7 @@ pm/Math/GSL/Wavelet2D.pm.2.3 pm/Math/GSL/Wavelet2D.pm.2.4 pm/Math/GSL/Wavelet2D.pm.2.5 pm/Math/GSL/Wavelet2D.pm.2.6 +pm/Math/GSL/Wavelet2D.pm.2.7 pod/BLAS.pod pod/BSpline.pod pod/CBLAS.pod @@ -812,6 +867,7 @@ xs/BLAS_wrap.2.3.c xs/BLAS_wrap.2.4.c xs/BLAS_wrap.2.5.c xs/BLAS_wrap.2.6.c +xs/BLAS_wrap.2.7.c xs/BSpline_wrap.1.15.c xs/BSpline_wrap.1.16.c xs/BSpline_wrap.2.0.c @@ -822,6 +878,7 @@ xs/BSpline_wrap.2.3.c xs/BSpline_wrap.2.4.c xs/BSpline_wrap.2.5.c xs/BSpline_wrap.2.6.c +xs/BSpline_wrap.2.7.c xs/CBLAS_wrap.1.15.c xs/CBLAS_wrap.1.16.c xs/CBLAS_wrap.2.0.c @@ -832,6 +889,7 @@ xs/CBLAS_wrap.2.3.c xs/CBLAS_wrap.2.4.c xs/CBLAS_wrap.2.5.c xs/CBLAS_wrap.2.6.c +xs/CBLAS_wrap.2.7.c xs/CDF_wrap.1.15.c xs/CDF_wrap.1.16.c xs/CDF_wrap.2.0.c @@ -842,6 +900,7 @@ xs/CDF_wrap.2.3.c xs/CDF_wrap.2.4.c xs/CDF_wrap.2.5.c xs/CDF_wrap.2.6.c +xs/CDF_wrap.2.7.c xs/Chebyshev_wrap.1.15.c xs/Chebyshev_wrap.1.16.c xs/Chebyshev_wrap.2.0.c @@ -852,6 +911,7 @@ xs/Chebyshev_wrap.2.3.c xs/Chebyshev_wrap.2.4.c xs/Chebyshev_wrap.2.5.c xs/Chebyshev_wrap.2.6.c +xs/Chebyshev_wrap.2.7.c xs/Combination_wrap.1.15.c xs/Combination_wrap.1.16.c xs/Combination_wrap.2.0.c @@ -862,6 +922,7 @@ xs/Combination_wrap.2.3.c xs/Combination_wrap.2.4.c xs/Combination_wrap.2.5.c xs/Combination_wrap.2.6.c +xs/Combination_wrap.2.7.c xs/Complex_wrap.1.15.c xs/Complex_wrap.1.16.c xs/Complex_wrap.2.0.c @@ -872,6 +933,7 @@ xs/Complex_wrap.2.3.c xs/Complex_wrap.2.4.c xs/Complex_wrap.2.5.c xs/Complex_wrap.2.6.c +xs/Complex_wrap.2.7.c xs/Const_wrap.1.15.c xs/Const_wrap.1.16.c xs/Const_wrap.2.0.c @@ -882,6 +944,7 @@ xs/Const_wrap.2.3.c xs/Const_wrap.2.4.c xs/Const_wrap.2.5.c xs/Const_wrap.2.6.c +xs/Const_wrap.2.7.c xs/Deriv_wrap.1.15.c xs/Deriv_wrap.1.16.c xs/Deriv_wrap.2.0.c @@ -892,6 +955,7 @@ xs/Deriv_wrap.2.3.c xs/Deriv_wrap.2.4.c xs/Deriv_wrap.2.5.c xs/Deriv_wrap.2.6.c +xs/Deriv_wrap.2.7.c xs/DHT_wrap.1.15.c xs/DHT_wrap.1.16.c xs/DHT_wrap.2.0.c @@ -902,6 +966,7 @@ xs/DHT_wrap.2.3.c xs/DHT_wrap.2.4.c xs/DHT_wrap.2.5.c xs/DHT_wrap.2.6.c +xs/DHT_wrap.2.7.c xs/Diff_wrap.1.15.c xs/Diff_wrap.1.16.c xs/Diff_wrap.2.0.c @@ -912,6 +977,7 @@ xs/Diff_wrap.2.3.c xs/Diff_wrap.2.4.c xs/Diff_wrap.2.5.c xs/Diff_wrap.2.6.c +xs/Diff_wrap.2.7.c xs/Eigen_wrap.1.15.c xs/Eigen_wrap.1.16.c xs/Eigen_wrap.2.0.c @@ -922,6 +988,7 @@ xs/Eigen_wrap.2.3.c xs/Eigen_wrap.2.4.c xs/Eigen_wrap.2.5.c xs/Eigen_wrap.2.6.c +xs/Eigen_wrap.2.7.c xs/Errno_wrap.1.15.c xs/Errno_wrap.1.16.c xs/Errno_wrap.2.0.c @@ -932,6 +999,7 @@ xs/Errno_wrap.2.3.c xs/Errno_wrap.2.4.c xs/Errno_wrap.2.5.c xs/Errno_wrap.2.6.c +xs/Errno_wrap.2.7.c xs/FFT_wrap.1.15.c xs/FFT_wrap.1.16.c xs/FFT_wrap.2.0.c @@ -942,6 +1010,7 @@ xs/FFT_wrap.2.3.c xs/FFT_wrap.2.4.c xs/FFT_wrap.2.5.c xs/FFT_wrap.2.6.c +xs/FFT_wrap.2.7.c xs/Fit_wrap.1.15.c xs/Fit_wrap.1.16.c xs/Fit_wrap.2.0.c @@ -952,6 +1021,7 @@ xs/Fit_wrap.2.3.c xs/Fit_wrap.2.4.c xs/Fit_wrap.2.5.c xs/Fit_wrap.2.6.c +xs/Fit_wrap.2.7.c xs/Heapsort_wrap.1.15.c xs/Heapsort_wrap.1.16.c xs/Heapsort_wrap.2.0.c @@ -962,6 +1032,7 @@ xs/Heapsort_wrap.2.3.c xs/Heapsort_wrap.2.4.c xs/Heapsort_wrap.2.5.c xs/Heapsort_wrap.2.6.c +xs/Heapsort_wrap.2.7.c xs/Histogram2D_wrap.1.15.c xs/Histogram2D_wrap.1.16.c xs/Histogram2D_wrap.2.0.c @@ -972,6 +1043,7 @@ xs/Histogram2D_wrap.2.3.c xs/Histogram2D_wrap.2.4.c xs/Histogram2D_wrap.2.5.c xs/Histogram2D_wrap.2.6.c +xs/Histogram2D_wrap.2.7.c xs/Histogram_wrap.1.15.c xs/Histogram_wrap.1.16.c xs/Histogram_wrap.2.0.c @@ -982,6 +1054,7 @@ xs/Histogram_wrap.2.3.c xs/Histogram_wrap.2.4.c xs/Histogram_wrap.2.5.c xs/Histogram_wrap.2.6.c +xs/Histogram_wrap.2.7.c xs/IEEEUtils_wrap.1.15.c xs/IEEEUtils_wrap.1.16.c xs/IEEEUtils_wrap.2.0.c @@ -992,6 +1065,7 @@ xs/IEEEUtils_wrap.2.3.c xs/IEEEUtils_wrap.2.4.c xs/IEEEUtils_wrap.2.5.c xs/IEEEUtils_wrap.2.6.c +xs/IEEEUtils_wrap.2.7.c xs/Integration_wrap.1.15.c xs/Integration_wrap.1.16.c xs/Integration_wrap.2.0.c @@ -1002,6 +1076,7 @@ xs/Integration_wrap.2.3.c xs/Integration_wrap.2.4.c xs/Integration_wrap.2.5.c xs/Integration_wrap.2.6.c +xs/Integration_wrap.2.7.c xs/Interp_wrap.1.15.c xs/Interp_wrap.1.16.c xs/Interp_wrap.2.0.c @@ -1012,6 +1087,7 @@ xs/Interp_wrap.2.3.c xs/Interp_wrap.2.4.c xs/Interp_wrap.2.5.c xs/Interp_wrap.2.6.c +xs/Interp_wrap.2.7.c xs/Linalg_wrap.1.15.c xs/Linalg_wrap.1.16.c xs/Linalg_wrap.2.0.c @@ -1022,6 +1098,7 @@ xs/Linalg_wrap.2.3.c xs/Linalg_wrap.2.4.c xs/Linalg_wrap.2.5.c xs/Linalg_wrap.2.6.c +xs/Linalg_wrap.2.7.c xs/Machine_wrap.1.15.c xs/Machine_wrap.1.16.c xs/Machine_wrap.2.0.c @@ -1032,6 +1109,7 @@ xs/Machine_wrap.2.3.c xs/Machine_wrap.2.4.c xs/Machine_wrap.2.5.c xs/Machine_wrap.2.6.c +xs/Machine_wrap.2.7.c xs/Matrix_wrap.1.15.c xs/Matrix_wrap.1.16.c xs/Matrix_wrap.2.0.c @@ -1042,6 +1120,7 @@ xs/Matrix_wrap.2.3.c xs/Matrix_wrap.2.4.c xs/Matrix_wrap.2.5.c xs/Matrix_wrap.2.6.c +xs/Matrix_wrap.2.7.c xs/MatrixComplex_wrap.1.15.c xs/MatrixComplex_wrap.1.16.c xs/MatrixComplex_wrap.2.0.c @@ -1052,6 +1131,7 @@ xs/MatrixComplex_wrap.2.3.c xs/MatrixComplex_wrap.2.4.c xs/MatrixComplex_wrap.2.5.c xs/MatrixComplex_wrap.2.6.c +xs/MatrixComplex_wrap.2.7.c xs/Min_wrap.1.15.c xs/Min_wrap.1.16.c xs/Min_wrap.2.0.c @@ -1062,6 +1142,7 @@ xs/Min_wrap.2.3.c xs/Min_wrap.2.4.c xs/Min_wrap.2.5.c xs/Min_wrap.2.6.c +xs/Min_wrap.2.7.c xs/Monte_wrap.1.15.c xs/Monte_wrap.1.16.c xs/Monte_wrap.2.0.c @@ -1072,6 +1153,7 @@ xs/Monte_wrap.2.3.c xs/Monte_wrap.2.4.c xs/Monte_wrap.2.5.c xs/Monte_wrap.2.6.c +xs/Monte_wrap.2.7.c xs/Multifit_wrap.2.1.c xs/Multifit_wrap.2.2.1.c xs/Multifit_wrap.2.2.c @@ -1079,6 +1161,7 @@ xs/Multifit_wrap.2.3.c xs/Multifit_wrap.2.4.c xs/Multifit_wrap.2.5.c xs/Multifit_wrap.2.6.c +xs/Multifit_wrap.2.7.c xs/Multilarge_wrap.2.1.c xs/Multilarge_wrap.2.2.1.c xs/Multilarge_wrap.2.2.c @@ -1086,6 +1169,7 @@ xs/Multilarge_wrap.2.3.c xs/Multilarge_wrap.2.4.c xs/Multilarge_wrap.2.5.c xs/Multilarge_wrap.2.6.c +xs/Multilarge_wrap.2.7.c xs/Multimin_wrap.1.15.c xs/Multimin_wrap.1.16.c xs/Multimin_wrap.2.0.c @@ -1096,6 +1180,7 @@ xs/Multimin_wrap.2.3.c xs/Multimin_wrap.2.4.c xs/Multimin_wrap.2.5.c xs/Multimin_wrap.2.6.c +xs/Multimin_wrap.2.7.c xs/Multiroots_wrap.1.15.c xs/Multiroots_wrap.1.16.c xs/Multiroots_wrap.2.0.c @@ -1106,6 +1191,7 @@ xs/Multiroots_wrap.2.3.c xs/Multiroots_wrap.2.4.c xs/Multiroots_wrap.2.5.c xs/Multiroots_wrap.2.6.c +xs/Multiroots_wrap.2.7.c xs/Multiset_wrap.1.15.c xs/Multiset_wrap.1.16.c xs/Multiset_wrap.2.0.c @@ -1116,6 +1202,7 @@ xs/Multiset_wrap.2.3.c xs/Multiset_wrap.2.4.c xs/Multiset_wrap.2.5.c xs/Multiset_wrap.2.6.c +xs/Multiset_wrap.2.7.c xs/NTuple_wrap.1.15.c xs/NTuple_wrap.1.16.c xs/NTuple_wrap.2.0.c @@ -1126,6 +1213,7 @@ xs/NTuple_wrap.2.3.c xs/NTuple_wrap.2.4.c xs/NTuple_wrap.2.5.c xs/NTuple_wrap.2.6.c +xs/NTuple_wrap.2.7.c xs/ODEIV_wrap.1.15.c xs/ODEIV_wrap.1.16.c xs/ODEIV_wrap.2.0.c @@ -1136,6 +1224,7 @@ xs/ODEIV_wrap.2.3.c xs/ODEIV_wrap.2.4.c xs/ODEIV_wrap.2.5.c xs/ODEIV_wrap.2.6.c +xs/ODEIV_wrap.2.7.c xs/Permutation_wrap.1.15.c xs/Permutation_wrap.1.16.c xs/Permutation_wrap.2.0.c @@ -1146,6 +1235,7 @@ xs/Permutation_wrap.2.3.c xs/Permutation_wrap.2.4.c xs/Permutation_wrap.2.5.c xs/Permutation_wrap.2.6.c +xs/Permutation_wrap.2.7.c xs/Poly_wrap.1.15.c xs/Poly_wrap.1.16.c xs/Poly_wrap.2.0.c @@ -1156,6 +1246,7 @@ xs/Poly_wrap.2.3.c xs/Poly_wrap.2.4.c xs/Poly_wrap.2.5.c xs/Poly_wrap.2.6.c +xs/Poly_wrap.2.7.c xs/PowInt_wrap.1.15.c xs/PowInt_wrap.1.16.c xs/PowInt_wrap.2.0.c @@ -1166,6 +1257,7 @@ xs/PowInt_wrap.2.3.c xs/PowInt_wrap.2.4.c xs/PowInt_wrap.2.5.c xs/PowInt_wrap.2.6.c +xs/PowInt_wrap.2.7.c xs/QRNG_wrap.1.15.c xs/QRNG_wrap.1.16.c xs/QRNG_wrap.2.0.c @@ -1176,6 +1268,7 @@ xs/QRNG_wrap.2.3.c xs/QRNG_wrap.2.4.c xs/QRNG_wrap.2.5.c xs/QRNG_wrap.2.6.c +xs/QRNG_wrap.2.7.c xs/Randist_wrap.1.15.c xs/Randist_wrap.1.16.c xs/Randist_wrap.2.0.c @@ -1186,6 +1279,7 @@ xs/Randist_wrap.2.3.c xs/Randist_wrap.2.4.c xs/Randist_wrap.2.5.c xs/Randist_wrap.2.6.c +xs/Randist_wrap.2.7.c xs/RNG_wrap.1.15.c xs/RNG_wrap.1.16.c xs/RNG_wrap.2.0.c @@ -1196,6 +1290,7 @@ xs/RNG_wrap.2.3.c xs/RNG_wrap.2.4.c xs/RNG_wrap.2.5.c xs/RNG_wrap.2.6.c +xs/RNG_wrap.2.7.c xs/Roots_wrap.1.15.c xs/Roots_wrap.1.16.c xs/Roots_wrap.2.0.c @@ -1206,6 +1301,7 @@ xs/Roots_wrap.2.3.c xs/Roots_wrap.2.4.c xs/Roots_wrap.2.5.c xs/Roots_wrap.2.6.c +xs/Roots_wrap.2.7.c xs/Rstat_wrap.2.0.c xs/Rstat_wrap.2.1.c xs/Rstat_wrap.2.2.1.c @@ -1214,6 +1310,7 @@ xs/Rstat_wrap.2.3.c xs/Rstat_wrap.2.4.c xs/Rstat_wrap.2.5.c xs/Rstat_wrap.2.6.c +xs/Rstat_wrap.2.7.c xs/SF_wrap.1.15.c xs/SF_wrap.1.16.c xs/SF_wrap.2.0.c @@ -1224,6 +1321,7 @@ xs/SF_wrap.2.3.c xs/SF_wrap.2.4.c xs/SF_wrap.2.5.c xs/SF_wrap.2.6.c +xs/SF_wrap.2.7.c xs/Siman_wrap.1.15.c xs/Siman_wrap.1.16.c xs/Siman_wrap.2.0.c @@ -1234,6 +1332,7 @@ xs/Siman_wrap.2.3.c xs/Siman_wrap.2.4.c xs/Siman_wrap.2.5.c xs/Siman_wrap.2.6.c +xs/Siman_wrap.2.7.c xs/Sort_wrap.1.15.c xs/Sort_wrap.1.16.c xs/Sort_wrap.2.0.c @@ -1244,6 +1343,7 @@ xs/Sort_wrap.2.3.c xs/Sort_wrap.2.4.c xs/Sort_wrap.2.5.c xs/Sort_wrap.2.6.c +xs/Sort_wrap.2.7.c xs/SparseMatrix_wrap.2.0.c xs/SparseMatrix_wrap.2.1.c xs/SparseMatrix_wrap.2.2.1.c @@ -1252,6 +1352,7 @@ xs/SparseMatrix_wrap.2.3.c xs/SparseMatrix_wrap.2.4.c xs/SparseMatrix_wrap.2.5.c xs/SparseMatrix_wrap.2.6.c +xs/SparseMatrix_wrap.2.7.c xs/Spline_wrap.1.15.c xs/Spline_wrap.1.16.c xs/Spline_wrap.2.0.c @@ -1262,6 +1363,7 @@ xs/Spline_wrap.2.3.c xs/Spline_wrap.2.4.c xs/Spline_wrap.2.5.c xs/Spline_wrap.2.6.c +xs/Spline_wrap.2.7.c xs/Statistics_wrap.1.15.c xs/Statistics_wrap.1.16.c xs/Statistics_wrap.2.0.c @@ -1272,6 +1374,7 @@ xs/Statistics_wrap.2.3.c xs/Statistics_wrap.2.4.c xs/Statistics_wrap.2.5.c xs/Statistics_wrap.2.6.c +xs/Statistics_wrap.2.7.c xs/Sum_wrap.1.15.c xs/Sum_wrap.1.16.c xs/Sum_wrap.2.0.c @@ -1282,6 +1385,7 @@ xs/Sum_wrap.2.3.c xs/Sum_wrap.2.4.c xs/Sum_wrap.2.5.c xs/Sum_wrap.2.6.c +xs/Sum_wrap.2.7.c xs/Sys_wrap.1.15.c xs/Sys_wrap.1.16.c xs/Sys_wrap.2.0.c @@ -1292,6 +1396,7 @@ xs/Sys_wrap.2.3.c xs/Sys_wrap.2.4.c xs/Sys_wrap.2.5.c xs/Sys_wrap.2.6.c +xs/Sys_wrap.2.7.c xs/Vector_wrap.1.15.c xs/Vector_wrap.1.16.c xs/Vector_wrap.2.0.c @@ -1302,6 +1407,7 @@ xs/Vector_wrap.2.3.c xs/Vector_wrap.2.4.c xs/Vector_wrap.2.5.c xs/Vector_wrap.2.6.c +xs/Vector_wrap.2.7.c xs/VectorComplex_wrap.1.15.c xs/VectorComplex_wrap.1.16.c xs/VectorComplex_wrap.2.0.c @@ -1312,6 +1418,7 @@ xs/VectorComplex_wrap.2.3.c xs/VectorComplex_wrap.2.4.c xs/VectorComplex_wrap.2.5.c xs/VectorComplex_wrap.2.6.c +xs/VectorComplex_wrap.2.7.c xs/Version_wrap.1.15.c xs/Version_wrap.1.16.c xs/Version_wrap.2.0.c @@ -1322,6 +1429,7 @@ xs/Version_wrap.2.3.c xs/Version_wrap.2.4.c xs/Version_wrap.2.5.c xs/Version_wrap.2.6.c +xs/Version_wrap.2.7.c xs/Wavelet2D_wrap.1.15.c xs/Wavelet2D_wrap.1.16.c xs/Wavelet2D_wrap.2.0.c @@ -1332,6 +1440,7 @@ xs/Wavelet2D_wrap.2.3.c xs/Wavelet2D_wrap.2.4.c xs/Wavelet2D_wrap.2.5.c xs/Wavelet2D_wrap.2.6.c +xs/Wavelet2D_wrap.2.7.c xs/Wavelet_wrap.1.15.c xs/Wavelet_wrap.1.16.c xs/Wavelet_wrap.2.0.c @@ -1342,6 +1451,7 @@ xs/Wavelet_wrap.2.3.c xs/Wavelet_wrap.2.4.c xs/Wavelet_wrap.2.5.c xs/Wavelet_wrap.2.6.c +xs/Wavelet_wrap.2.7.c xt/01-pod.t xt/style-trailing-space.t META.json diff --git a/inc/Ver2Func.pm b/inc/Ver2Func.pm index 72e473c..1a9e165 100644 --- a/inc/Ver2Func.pm +++ b/inc/Ver2Func.pm @@ -397,7 +397,137 @@ my @ver2func = ( ^gsl_matrix_uint_scale_columns$ / ] + }, + "2.7" => { + new => [ + qw/ + ^gsl_vector_sum$ + ^gsl_vector_char_sum$ + ^gsl_vector_uchar_sum$ + ^gsl_vector_int_sum$ + ^gsl_vector_uint_sum$ + ^gsl_vector_ushort_sum$ + ^gsl_vector_long_sum$ + ^gsl_vector_ulong_sum$ + ^gsl_vector_long_double_sum$ + ^gsl_vector_float_sum$ + ^gsl_matrix_norm1$ + ^gsl_matrix_int_norm1$ + ^gsl_matrix_uchar_norm1$ + ^gsl_matrix_ushort_norm1$ + ^gsl_matrix_ulong_norm1$ + ^gsl_matrix_char_norm1$ + ^gsl_matrix_float_norm1$ + ^gsl_matrix_short_norm1$ + ^gsl_matrix_long_double_norm1$ + ^gsl_matrix_long_norm1$ + ^gsl_matrix_uint_norm1$ + ^gsl_matrix_scale_rows$ + ^gsl_matrix_complex_float_scale_rows$ + ^gsl_matrix_complex_scale_rows$ + ^gsl_matrix_uchar_scale_rows$ + ^gsl_matrix_ushort_scale_rows$ + ^gsl_matrix_ulong_scale_rows$ + ^gsl_matrix_char_scale_rows$ + ^gsl_matrix_float_scale_rows$ + ^gsl_matrix_short_scale_rows$ + ^gsl_matrix_complex_long_double_scale_rows$ + ^gsl_matrix_long_double_scale_rows$ + ^gsl_matrix_uint_scale_rows$ + ^gsl_matrix_int_scale_rows$ + ^gsl_matrix_scale_columns$ + ^gsl_matrix_complex_scale_columns$ + ^gsl_matrix_uchar_scale_columns$ + ^gsl_matrix_ushort_scale_columns$ + ^gsl_matrix_ulong_scale_columns$ + ^gsl_matrix_char_scale_columns$ + ^gsl_matrix_float_scale_columns$ + ^gsl_matrix_short_scale_columns$ + ^gsl_matrix_complex_long_double_scale_columns$ + ^gsl_matrix_long_double_scale_columns$ + ^gsl_matrix_uint_scale_columns$ + ^gsl_matrix_int_scale_columns$ + ^gsl_matrix_complex_conjtrans_memcpy$ + ^gsl_multifit_linear_lcurvature$ + ^gsl_spmatrix_dense_add$ + ^gsl_spmatrix_uint_dense_add$ + ^gsl_spmatrix_int_dense_add$ + ^gsl_spmatrix_long_double_dense_add$ + ^gsl_spmatrix_float_dense_add$ + ^gsl_spmatrix_long_dense_add$ + ^gsl_spmatrix_complex_float_dense_add$ + ^gsl_spmatrix_char_dense_add$ + ^gsl_spmatrix_uchar_dense_add$ + ^gsl_spmatrix_ulong_dense_add$ + ^gsl_spmatrix_short_dense_add$ + ^gsl_spmatrix_ushort_dense_add$ + ^gsl_spmatrix_long_double_dense_add$ + ^gsl_spmatrix_complex_dense_add$ + ^gsl_spmatrix_complex_long_double_dense_add$ + ^gsl_spmatrix_dense_sub$ + ^gsl_spmatrix_uint_dense_sub$ + ^gsl_spmatrix_int_dense_sub$ + ^gsl_spmatrix_long_double_dense_sub$ + ^gsl_spmatrix_float_dense_sub$ + ^gsl_spmatrix_long_dense_sub$ + ^gsl_spmatrix_complex_float_dense_sub$ + ^gsl_spmatrix_char_dense_sub$ + ^gsl_spmatrix_uchar_dense_sub$ + ^gsl_spmatrix_ulong_dense_sub$ + ^gsl_spmatrix_short_dense_sub$ + ^gsl_spmatrix_ushort_dense_sub$ + ^gsl_spmatrix_long_double_dense_sub$ + ^gsl_spmatrix_complex_long_double_dense_sub$ + ^gsl_spmatrix_complex_dense_sub$ + ^gsl_spmatrix_norm1 + ^gsl_spmatrix_int_norm1$ + ^gsl_spmatrix_float_norm1$ + ^gsl_spmatrix_long_norm1$ + ^gsl_spmatrix_char_norm1$ + ^gsl_spmatrix_ulong_norm1$ + ^gsl_spmatrix_short_norm1$ + ^gsl_spmatrix_ushort_norm1$ + ^gsl_spmatrix_long_double_norm1$ + ^gsl_spmatrix_uint_norm1$ + ^gsl_spmatrix_uchar_norm1$ + ^gsl_linalg_complex_QR_solve_r$ + ^gsl_linalg_complex_QR_solve$ + ^gsl_linalg_complex_QR_svx$ + ^gsl_linalg_complex_QR_decomp$ + ^gsl_linalg_complex_QR_decomp_r$ + ^gsl_linalg_complex_QR_lssolve$ + ^gsl_linalg_complex_QR_lssolve_r$ + ^gsl_linalg_complex_QR_QHvec$ + ^gsl_linalg_complex_QR_QHvec_r$ + ^gsl_linalg_complex_QR_Qvec$ + ^gsl_linalg_complex_QR_unpack$ + ^gsl_linalg_complex_QR_unpack_r$ + ^gsl_linalg_cholesky_band_solvem$ + ^gsl_linalg_cholesky_band_scale_apply$ + ^gsl_linalg_cholesky_band_svxm$ + ^gsl_linalg_cholesky_band_scale$ + ^gsl_linalg_QR_UU_QTvec$ + ^gsl_linalg_QR_UU_decomp$ + ^gsl_linalg_QR_UU_lssolve$ + ^gsl_linalg_QR_UZ_decomp$ + ^gsl_linalg_QR_UD_lssolve$ + ^gsl_linalg_QR_UD_decomp$ + ^gsl_linalg_QR_UR_decomp$ + ^gsl_linalg_QR_decomp_old$ + ^gsl_linalg_QR_band_decomp_L2$ + ^gsl_linalg_QR_band_unpack_L2$ + ^gsl_linalg_QL_decomp$ + ^gsl_linalg_QL_unpack$ + ^gsl_linalg_LU_band_unpack$ + ^gsl_linalg_LU_band_svx$ + ^gsl_linalg_LU_band_decomp$ + ^gsl_linalg_LU_band_solve$ + ^gsl_linalg_householder_transform2$ + + / + ] } + ); my ( %index, @info, @versions ); diff --git a/include/legacy/gsl-2.6/gsl_multilarge.h b/include/legacy/gsl-2.6/gsl_multilarge.h new file mode 100644 index 0000000..e99c1e1 --- /dev/null +++ b/include/legacy/gsl-2.6/gsl_multilarge.h @@ -0,0 +1,141 @@ +/* gsl_multilarge.h + * + * Copyright (C) 2015 Patrick Alken + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or (at + * your option) any later version. + * + * This program 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 + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef __GSL_MULTILARGE_H__ +#define __GSL_MULTILARGE_H__ + +#include +#include +#include +#include + +#undef __BEGIN_DECLS +#undef __END_DECLS +#ifdef __cplusplus +# define __BEGIN_DECLS extern "C" { +# define __END_DECLS } +#else +# define __BEGIN_DECLS /* empty */ +# define __END_DECLS /* empty */ +#endif + +__BEGIN_DECLS + +/* iteration solver type */ +typedef struct +{ + const char *name; + void * (*alloc) (const size_t p); + int (*reset) (void *); + int (*accumulate) (gsl_matrix * X, gsl_vector * y, + void *); + int (*solve) (const double lambda, gsl_vector * c, + double * rnorm, double * snorm, void *); + int (*rcond) (double * rcond, void *); + int (*lcurve) (gsl_vector * reg_param, gsl_vector * rho, + gsl_vector * eta, void *); + void (*free) (void *); +} gsl_multilarge_linear_type; + +typedef struct +{ + const gsl_multilarge_linear_type * type; + void * state; + size_t p; +} gsl_multilarge_linear_workspace; + +/* available types */ +GSL_VAR const gsl_multilarge_linear_type * gsl_multilarge_linear_normal; +GSL_VAR const gsl_multilarge_linear_type * gsl_multilarge_linear_tsqr; + +/* + * Prototypes + */ +gsl_multilarge_linear_workspace * +gsl_multilarge_linear_alloc(const gsl_multilarge_linear_type * T, + const size_t p); + +void gsl_multilarge_linear_free(gsl_multilarge_linear_workspace * w); + +const char *gsl_multilarge_linear_name(const gsl_multilarge_linear_workspace * w); + +int gsl_multilarge_linear_reset(gsl_multilarge_linear_workspace * w); + +int gsl_multilarge_linear_accumulate(gsl_matrix * X, + gsl_vector * y, + gsl_multilarge_linear_workspace * w); + +int gsl_multilarge_linear_solve(const double lambda, gsl_vector * c, + double * rnorm, double * snorm, + gsl_multilarge_linear_workspace * w); + +int gsl_multilarge_linear_rcond(double *rcond, gsl_multilarge_linear_workspace * w); + +int gsl_multilarge_linear_lcurve(gsl_vector * reg_param, gsl_vector * rho, + gsl_vector * eta, + gsl_multilarge_linear_workspace * w); + +int gsl_multilarge_linear_wstdform1 (const gsl_vector * L, + const gsl_matrix * X, + const gsl_vector * w, + const gsl_vector * y, + gsl_matrix * Xs, + gsl_vector * ys, + gsl_multilarge_linear_workspace * work); + +int gsl_multilarge_linear_stdform1 (const gsl_vector * L, + const gsl_matrix * X, + const gsl_vector * y, + gsl_matrix * Xs, + gsl_vector * ys, + gsl_multilarge_linear_workspace * work); + +int gsl_multilarge_linear_L_decomp (gsl_matrix * L, gsl_vector * tau); + +int gsl_multilarge_linear_wstdform2 (const gsl_matrix * LQR, + const gsl_vector * Ltau, + const gsl_matrix * X, + const gsl_vector * w, + const gsl_vector * y, + gsl_matrix * Xs, + gsl_vector * ys, + gsl_multilarge_linear_workspace * work); + +int gsl_multilarge_linear_stdform2 (const gsl_matrix * LQR, + const gsl_vector * Ltau, + const gsl_matrix * X, + const gsl_vector * y, + gsl_matrix * Xs, + gsl_vector * ys, + gsl_multilarge_linear_workspace * work); + +int gsl_multilarge_linear_genform1 (const gsl_vector * L, + const gsl_vector * cs, + gsl_vector * c, + gsl_multilarge_linear_workspace * work); + +int gsl_multilarge_linear_genform2 (const gsl_matrix * LQR, + const gsl_vector * Ltau, + const gsl_vector * cs, + gsl_vector * c, + gsl_multilarge_linear_workspace * work); + +__END_DECLS + +#endif /* __GSL_MULTILARGE_H__ */ diff --git a/swig/Multilarge.i b/swig/Multilarge.i index fe74983..504521a 100644 --- a/swig/Multilarge.i +++ b/swig/Multilarge.i @@ -18,7 +18,6 @@ #include "gsl/gsl_multifit.h" #include "gsl/gsl_multilarge.h" %} - %include "gsl/gsl_inline.h" %include "gsl/gsl_types.h" %include "gsl/gsl_math.h" @@ -26,5 +25,9 @@ %include "gsl/gsl_matrix.h" %include "gsl/gsl_permutation.h" %include "gsl/gsl_multifit.h" -%include "gsl/gsl_multilarge.h" +#if MG_GSL_NUM_VERSION >= 002007 + %include "gsl/gsl_multilarge.h" +#else + %include "legacy/gsl-2.6/gsl_multilarge.h" +#endif %include "../pod/Multifit.pod" diff --git a/swig/SparseMatrix.i b/swig/SparseMatrix.i index 0b2902e..5442473 100644 --- a/swig/SparseMatrix.i +++ b/swig/SparseMatrix.i @@ -10,6 +10,8 @@ %} #if MG_GSL_NUM_VERSION >= 002006 +// ignore gsl_spmatrix_uchar_norm1, gsl_spmatrix_char_norm1, ... + %rename("%(regex:/^gsl_spmatrix_u.*_norm1$/$ignore/)s") ""; %include "gsl/gsl_spmatrix.h" %include "gsl/gsl_spmatrix_double.h" %include "gsl/gsl_spmatrix_complex_long_double.h" diff --git a/t/Rstat.t b/t/Rstat.t index de7e0d9..535cc71 100644 --- a/t/Rstat.t +++ b/t/Rstat.t @@ -24,6 +24,10 @@ BEGIN { sub make_fixture : Test(setup) { my $self = shift; + my $version = gsl_version(); + my ($major, $minor, $tiny) = split /\./, $version; + $self->{major} = $major; + $self->{minor} = $minor; $self->{rstat} = Math::GSL::Rstat::gsl_rstat_alloc(); $self->{quantile} = Math::GSL::Rstat::gsl_rstat_quantile_alloc(0.5); } @@ -32,17 +36,30 @@ sub teardown : Test(teardown) { my $self = shift; } +sub get_data { [17.2, 18.1, 16.5, 18.3, 12.6] } + +sub get_expected_median { + my ( $self ) = @_; + + my $expected_median = 16.500000; + if ($self->{major} >= 3 || ($self->{major} >=2 and $self->{minor} >=7)) { + $expected_median = 17.2; + } + return $expected_median; +} + sub GSL_RSTAT_QUANTILE : Tests { my $self = shift; my $rstat = $self->{quantile}; isa_ok($rstat, "Math::GSL::Rstat"); - my @data = (17.2, 18.1, 16.5, 18.3, 12.6); + my $data = get_data(); map { my $status = gsl_rstat_quantile_add( $_, $rstat); ok_status($status); - } @data; + } @$data; my $q = gsl_rstat_quantile_get($rstat); - ok_similar($q, 16.5,"gsl_rstat_quantile_get=$q"); + my $expected_median = $self->get_expected_median(); + ok_similar($q, $expected_median,"gsl_rstat_quantile_get=$q"); } sub GSL_RSTAT : Tests { @@ -50,14 +67,11 @@ sub GSL_RSTAT : Tests { my $rstat = $self->{rstat}; isa_ok($rstat, "Math::GSL::Rstat"); - my @data = (17.2, 18.1, 16.5, 18.3, 12.6); + my $data = get_data(); map { my $status = gsl_rstat_add( $_, $rstat); ok($status == $GSL_SUCCESS, "gsl_rstat_quantile_add"); - } @data; - - my $version = gsl_version(); - my ($major, $minor, $tiny) = split /\./, $version; + } @$data; my $mean = gsl_rstat_mean($rstat); my $variance = gsl_rstat_variance($rstat); @@ -71,18 +85,18 @@ sub GSL_RSTAT : Tests { my $n = gsl_rstat_n($rstat); my $eps = 1e-3; - if ($major >=2 and $minor >=2) { + if ($self->{major} >=3 || ($self->{major} >=2 and $self->{minor} >=2)) { my $rms = gsl_rstat_rms($rstat); ok_similar( $rms, 16.669433,"The root mean squared is 16.66", $eps); } - + my $expected_median = $self->get_expected_median(); ok_similar( 16.54, $mean, "The sample mean is 16.54", $eps); ok_similar( 5.373, $variance, "The estimated variance is 5.373", $eps); ok_similar( 18.30, $largest, "The largest value is 18.3", $eps); ok_similar( 12.60, $smallest, "The smallest value is 12.6", $eps); ok_similar( $sd, 2.317973, "The standard deviation is 2.31", $eps); ok_similar( $sd_mean, 1.036629,"The sd_mean is 1.03", $eps); - ok_similar( $median, 16.500000, "The median is 16.5", $eps); + ok_similar( $median, $expected_median, "The median is $expected_median", $eps); ok_similar( $skew, -0.829058, "The skew is -0.83", $eps); ok_similar( $kurtosis,-1.221703,"The kurtosis is -1.22", $eps); ok($n == 5, "n=5");