Hello community,
here is the log from the commit of package LHAPDF for openSUSE:Factory checked in at 2014-09-07 11:10:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/LHAPDF (Old)
and /work/SRC/openSUSE:Factory/.LHAPDF.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "LHAPDF"
Changes:
--------
--- /work/SRC/openSUSE:Factory/LHAPDF/LHAPDF.changes 2014-06-24 15:16:11.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.LHAPDF.new/LHAPDF.changes 2014-09-07 11:10:24.000000000 +0200
@@ -1,0 +2,30 @@
+Sat Sep 6 22:23:20 UTC 2014 - badshah400@gmail.com
+
+- Update to version 6.1.4:
+ - Adding multiset variants of the 5 getmin/max LHAGlue
+ functions
+ - Adding the 'unofficial' getminmax Fortran function to
+ LHAGlue.cc
+ - Treat PID 0 as an alias for 21 in PDF::hasFlavor as well as
+ the PDF::xf* functions
+ - Clarify in lhapdf script help that 'list' by default shows all
+ available sets, not those installed on the user's system
+ - Update CONFIGFLAGS docs to fix some errors w.r.t. actual flag
+ usage
+ - Treat a DataVersion of 0 as unvalidated: valid numbers now
+ start at 1
+ - Remove the LHAPDF ID from the warning printout about
+ unvalidated PDFs, since in that case there will usually be no
+ standard ID number and it just gets unhelpfully reported as -1
+ - Detect and report improperly terminated grid files (ones
+ missing a --- final line)
+ - Replace asserts with exceptions and improve subgrid error
+ reporting in GridPDF
+ - Report the value of Q2 that causes a subgrid-finding failure
+ - Improve testgrid to use PDFNAME/MEMNUM arg syntax
+ - Forbid compilation if the demon combination of Boost < 1.47
+ and GCC >= 4.6, with a serious bug in BOOST_FOREACH, is found:
+ http://code-muse.com/2013/08/06/boostforeach-and-compiler-bugs
+ - Improved AlphaS ODE solver performance.
+
+-------------------------------------------------------------------
Old:
----
LHAPDF-6.1.3.tar.gz
New:
----
LHAPDF-6.1.4.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ LHAPDF.spec ++++++
--- /var/tmp/diff_new_pack.28Y7JI/_old 2014-09-07 11:10:25.000000000 +0200
+++ /var/tmp/diff_new_pack.28Y7JI/_new 2014-09-07 11:10:25.000000000 +0200
@@ -20,7 +20,7 @@
%define execname lhapdf
Name: LHAPDF
-Version: 6.1.3
+Version: 6.1.4
Release: 0
Summary: A library for unified and easy to use interface to modern PDF sets
License: GPL-3.0
++++++ LHAPDF-6.1.3.tar.gz -> LHAPDF-6.1.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/LHAPDF-6.1.3/AUTHORS new/LHAPDF-6.1.4/AUTHORS
--- old/LHAPDF-6.1.3/AUTHORS 2014-05-19 11:56:01.000000000 +0200
+++ new/LHAPDF-6.1.4/AUTHORS 2014-07-27 22:23:30.000000000 +0200
@@ -20,3 +20,17 @@
Juan Rojo
Marek Schoenherr
Mike Whalley
+
+
+CITATION
+========
+
+Please cite the contribution
+
+ "New access to PDF data via LHAPDF6", by A. Buckley
+ in "Les Houches 2013: Physics at TeV Colliders: Standard Model Working Group Report"
+ http://arxiv.org/abs/1405.1067
+ http://inspirehep.net/search?p=find+eprint+1405.1067
+
+A full write-up of LHAPDF6 will appear as soon as possible and
+will replace this current recommendation.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/LHAPDF-6.1.3/ChangeLog new/LHAPDF-6.1.4/ChangeLog
--- old/LHAPDF-6.1.3/ChangeLog 2014-06-17 16:51:19.000000000 +0200
+++ new/LHAPDF-6.1.4/ChangeLog 2014-08-19 10:49:01.000000000 +0200
@@ -1,3 +1,52 @@
+2014-08-19 Andy Buckley
+
+ * LHAPDF 6.1.4 release
+
+2014-08-15 Andy Buckley
+
+ * Adding multiset variants of the 5 getmin/max LHAGlue functions.
+
+ * Adding the 'unofficial' getminmax Fortran function to LHAGlue.cc
+ (thanks to Andrey Sapronov for the report and patch).
+
+2014-07-18 Andy Buckley
+
+ * Treat PID 0 as an alias for 21 in PDF::hasFlavor as well as the
+ PDF::xf* functions. Thanks to Nathan Hartland for the report.
+
+2014-07-10 Andy Buckley
+
+ * Clarify in lhapdf script help that 'list' by default shows all
+ available sets, not those installed on the user's system.
+
+2014-07-09 Andy Buckley
+
+ * Update CONFIGFLAGS docs to fix some errors w.r.t. actual flag usage.
+
+ * Treat a DataVersion of 0 as unvalidated: valid numbers now start at 1.
+
+ * Remove the LHAPDF ID from the warning printout about unvalidated
+ PDFs, since in that case there will usually be no standard ID
+ number and it just gets unhelpfully reported as -1.
+
+ * Detect and report improperly terminated grid files (ones missing a --- final line).
+
+ * Replace asserts with exceptions and improve subgrid error reporting in GridPDF.
+
+ * Report the value of Q2 that causes a subgrid-finding failure.
+
+ * Improve testgrid to use PDFNAME/MEMNUM arg syntax.
+
+2014-07-7 David Grellscheid
+
+ * Forbid compilation if the demon combination of Boost < 1.47 and
+ GCC >= 4.6, with a serious bug in BOOST_FOREACH, is found:
+ http://code-muse.com/2013/08/06/boostforeach-and-compiler-bugs
+
+2014-06-18 Karl Nordstrom
+
+ * Improved AlphaS ODE solver performance.
+
2014-06-17 Andy Buckley
* 6.1.3 release!
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/LHAPDF-6.1.3/INSTALL new/LHAPDF-6.1.4/INSTALL
--- old/LHAPDF-6.1.3/INSTALL 2014-05-27 15:16:57.000000000 +0200
+++ new/LHAPDF-6.1.4/INSTALL 2014-07-12 22:52:55.000000000 +0200
@@ -159,11 +159,12 @@
The Mac OS X "Homebrew" system (http://brew.sh/) comes recommended by several
LHAPDF developers. Many HEP packages are already available for Homebrew via the
-homebrew-hep project: http://davidchall.github.io/homebrew-hep/ Success has also
-been reported with the MacPorts system (http://www.macports.org/). With both
-these approaches, you should set your environment to *only* use compilers and
-Python from the Brew/Ports area and to ignore the system packages: a hybrid
-approach will only cause unnecessary pain.
+homebrew-hep project: http://davidchall.github.io/homebrew-hep/ . Success has
+also been reported with the MacPorts system (http://www.macports.org/): please
+see HepForge's information about MacPorts at https://www.hepforge.org/docs/macosx .
+With both these approaches, you should set your environment to *only* use
+compilers and Python from the Brew/Ports area and to ignore the system packages:
+a hybrid approach will only cause unnecessary pain.
*/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/LHAPDF-6.1.3/Makefile.in new/LHAPDF-6.1.4/Makefile.in
--- old/LHAPDF-6.1.3/Makefile.in 2014-06-17 15:35:58.000000000 +0200
+++ new/LHAPDF-6.1.4/Makefile.in 2014-08-15 16:49:15.000000000 +0200
@@ -95,11 +95,11 @@
$(top_srcdir)/config/missing
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cxx_compile_stdcxx_11.m4 \
- $(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/compilerflags.m4 \
- $(top_srcdir)/m4/cython.m4 $(top_srcdir)/m4/libtool.m4 \
- $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
- $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/boost_bug.m4 \
+ $(top_srcdir)/m4/compilerflags.m4 $(top_srcdir)/m4/cython.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/LHAPDF-6.1.3/TODO new/LHAPDF-6.1.4/TODO
--- old/LHAPDF-6.1.3/TODO 2014-06-17 17:03:17.000000000 +0200
+++ new/LHAPDF-6.1.4/TODO 2014-08-15 22:11:18.000000000 +0200
@@ -98,6 +98,14 @@
VERSION 6.2
-----------
+- **Nuclear PDFs**
+
+ There's definitely a need for interfaces both to individual nuclear modification
+ functions (like PDFs themselves, a function of x,Q2) for application on top
+ of nucleon PDFs, and for all-inclusive nuclear PDFs. Individual "sets" for
+ each nucleus (A) as well as error sets: need to decide on groupings as well
+ as the API. Quite active, cf. "Lisbon Accord".
+
- **Optimize the grid PDF interpolator code**
Cache log(x), log(Q) between samplings -> log() still accounts for 15% of
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/LHAPDF-6.1.3/aclocal.m4 new/LHAPDF-6.1.4/aclocal.m4
--- old/LHAPDF-6.1.3/aclocal.m4 2014-06-17 15:35:57.000000000 +0200
+++ new/LHAPDF-6.1.4/aclocal.m4 2014-08-15 16:49:14.000000000 +0200
@@ -1384,6 +1384,7 @@
m4_include([m4/ax_cxx_compile_stdcxx_11.m4])
m4_include([m4/boost.m4])
+m4_include([m4/boost_bug.m4])
m4_include([m4/compilerflags.m4])
m4_include([m4/cython.m4])
m4_include([m4/libtool.m4])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/LHAPDF-6.1.3/configure new/LHAPDF-6.1.4/configure
--- old/LHAPDF-6.1.3/configure 2014-06-17 15:35:58.000000000 +0200
+++ new/LHAPDF-6.1.4/configure 2014-08-15 16:49:15.000000000 +0200
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for LHAPDF 6.1.3.
+# Generated by GNU Autoconf 2.69 for LHAPDF 6.1.4.
#
# Report bugs to .
#
@@ -650,8 +650,8 @@
# Identity of this package.
PACKAGE_NAME='LHAPDF'
PACKAGE_TARNAME='LHAPDF'
-PACKAGE_VERSION='6.1.3'
-PACKAGE_STRING='LHAPDF 6.1.3'
+PACKAGE_VERSION='6.1.4'
+PACKAGE_STRING='LHAPDF 6.1.4'
PACKAGE_BUGREPORT='lhapdf@projects.hepforge.org'
PACKAGE_URL=''
@@ -1422,7 +1422,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures LHAPDF 6.1.3 to adapt to many kinds of systems.
+\`configure' configures LHAPDF 6.1.4 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1492,7 +1492,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of LHAPDF 6.1.3:";;
+ short | recursive ) echo "Configuration of LHAPDF 6.1.4:";;
esac
cat <<\_ACEOF
@@ -1609,7 +1609,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-LHAPDF configure 6.1.3
+LHAPDF configure 6.1.4
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2095,11 +2095,53 @@
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_cxx_check_header_mongrel
+
+# ac_fn_cxx_try_run LINENO
+# ------------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
+# that executables *can* be run.
+ac_fn_cxx_try_run ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: program exited with status $ac_status" >&5
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=$ac_status
+fi
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_cxx_try_run
cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by LHAPDF $as_me 6.1.3, which was
+It was created by LHAPDF $as_me 6.1.4, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2966,7 +3008,7 @@
# Define the identity of the package.
PACKAGE='LHAPDF'
- VERSION='6.1.3'
+ VERSION='6.1.4'
cat >>confdefs.h <<_ACEOF
@@ -16735,6 +16777,69 @@
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if boost rvalue bug is present" >&5
+$as_echo_n "checking if boost rvalue bug is present... " >&6; }
+oldcppflags_boost="$CPPFLAGS"
+CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
+if test "$cross_compiling" = yes; then :
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot run test program while cross compiling
+See \`config.log' for more details" "$LINENO" 5; }
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+
+ #include
+ #include
+ #include <vector>
+ const std::vector f()
+ {
+ return std::vector(4,
+ boost::shared_ptr<int>(new int(12)));
+ }
+
+int
+main ()
+{
+int sum = 48;
+ BOOST_FOREACH(const boost::shared_ptr<int> &pi, f())
+ {
+ sum -= *pi;
+ }
+ return sum;
+
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_run "$LINENO"; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ as_fn_error $? "
+***********************************************
+*** Boost is too old for this compiler version. $CXX needs boost > 1_47.
+*** See http://code-muse.com/2013/08/06/boostforeach-and-compiler-bugs
+***********************************************" "$LINENO" 5
+
+
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+CPPFLAGS="$oldcppflags_boost"
+
+
## Export base compiler flags
@@ -17326,7 +17431,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by LHAPDF $as_me 6.1.3, which was
+This file was extended by LHAPDF $as_me 6.1.4, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -17392,7 +17497,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-LHAPDF config.status 6.1.3
+LHAPDF config.status 6.1.4
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/LHAPDF-6.1.3/configure.ac new/LHAPDF-6.1.4/configure.ac
--- old/LHAPDF-6.1.3/configure.ac 2014-06-12 21:30:54.000000000 +0200
+++ new/LHAPDF-6.1.4/configure.ac 2014-08-15 16:48:59.000000000 +0200
@@ -1,7 +1,7 @@
## Process this file with autoconf to produce a configure script.
AC_PREREQ(2.61)
-AC_INIT([LHAPDF],[6.1.3],[lhapdf@projects.hepforge.org],[LHAPDF])
+AC_INIT([LHAPDF],[6.1.4],[lhapdf@projects.hepforge.org],[LHAPDF])
if test "$prefix" = "$PWD"; then
AC_MSG_ERROR([Installation into the build directory is not supported: use a different --prefix argument])
fi
@@ -168,6 +168,7 @@
BOOST_FIND_HEADER([boost/math/distributions/chi_squared.hpp])
BOOST_FIND_HEADER([boost/math/special_functions/erf.hpp])
+BOOST_BUG_IN_FOREACH
## Export base compiler flags
AC_SUBST(AM_CPPFLAGS)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/LHAPDF-6.1.3/doc/Makefile.in new/LHAPDF-6.1.4/doc/Makefile.in
--- old/LHAPDF-6.1.3/doc/Makefile.in 2014-06-17 15:35:58.000000000 +0200
+++ new/LHAPDF-6.1.4/doc/Makefile.in 2014-08-15 16:49:15.000000000 +0200
@@ -82,11 +82,11 @@
$(srcdir)/Doxyfile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cxx_compile_stdcxx_11.m4 \
- $(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/compilerflags.m4 \
- $(top_srcdir)/m4/cython.m4 $(top_srcdir)/m4/libtool.m4 \
- $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
- $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/boost_bug.m4 \
+ $(top_srcdir)/m4/compilerflags.m4 $(top_srcdir)/m4/cython.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
@@ -367,8 +367,8 @@
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
-@WITH_DOXYGEN_FALSE@uninstall-local:
@WITH_DOXYGEN_FALSE@mostlyclean-local:
+@WITH_DOXYGEN_FALSE@uninstall-local:
clean: clean-am
clean-am: clean-generic clean-libtool mostlyclean-am
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/LHAPDF-6.1.3/doc/pdfsets.dox new/LHAPDF-6.1.4/doc/pdfsets.dox
--- old/LHAPDF-6.1.3/doc/pdfsets.dox 2014-06-02 12:48:03.000000000 +0200
+++ new/LHAPDF-6.1.4/doc/pdfsets.dox 2014-08-15 22:06:40.000000000 +0200
@@ -1,7 +1,7 @@
/**
@page pdfsets PDF sets
-<b>Official LHAPDF 6.1 PDF sets: currently 254 available, of which 239 are validated.</b>
+<b>Official LHAPDF 6.1 PDF sets: currently 264 available, of which 249 are validated.</b>
See http://www.hepforge.org/archive/lhapdf/pdfsets/6.1 for data downloads.
@@ -272,6 +272,16 @@
<tr style="background-color: #efe;"><td>247000</td><td><a href="http://www.hepforge.org/archive/lhapdf/pdfsets/6.1/NNPDF23_lo_as_0130_qed.tar.gz">NNPDF23_lo_as_0130_qed</a></td><td>101</td><td>1</td><td></td></tr>
<tr style="background-color: #efe;"><td>247200</td><td><a href="http://www.hepforge.org/archive/lhapdf/pdfsets/6.1/NNPDF23_nlo_as_0119_qed_mc.tar.gz">NNPDF23_nlo_as_0119_qed_mc</a></td><td>101</td><td>1</td><td></td></tr>
<tr style="background-color: #efe;"><td>247400</td><td><a href="http://www.hepforge.org/archive/lhapdf/pdfsets/6.1/NNPDF23_nnlo_as_0119_qed_mc.tar.gz">NNPDF23_nnlo_as_0119_qed_mc</a></td><td>101</td><td>1</td><td></td></tr>
+ <tr style="background-color: #efe;"><td>250000</td><td><a href="http://www.hepforge.org/archive/lhapdf/pdfsets/6.1/NNPDFpol10_100.tar.gz">NNPDFpol10_100</a></td><td>101</td><td>1</td><td></td></tr>
+ <tr style="background-color: #efe;"><td>251000</td><td><a href="http://www.hepforge.org/archive/lhapdf/pdfsets/6.1/NNPDFpol11_100.tar.gz">NNPDFpol11_100</a></td><td>101</td><td>1</td><td></td></tr>
+ <tr style="background-color: #efe;"><td>260000</td><td><a href="http://www.hepforge.org/archive/lhapdf/pdfsets/6.1/NNPDF30_nlo_as_0118.tar.gz">NNPDF30_nlo_as_0118</a></td><td>101</td><td>1</td><td></td></tr>
+ <tr style="background-color: #efe;"><td>260200</td><td><a href="http://www.hepforge.org/archive/lhapdf/pdfsets/6.1/NNPDF30_nlo_as_0118_nf_3.tar.gz">NNPDF30_nlo_as_0118_nf_3</a></td><td>101</td><td>1</td><td></td></tr>
+ <tr style="background-color: #efe;"><td>260400</td><td><a href="http://www.hepforge.org/archive/lhapdf/pdfsets/6.1/NNPDF30_nlo_as_0118_nf_4.tar.gz">NNPDF30_nlo_as_0118_nf_4</a></td><td>101</td><td>1</td><td></td></tr>
+ <tr style="background-color: #efe;"><td>260600</td><td><a href="http://www.hepforge.org/archive/lhapdf/pdfsets/6.1/NNPDF30_nlo_as_0118_nf_6.tar.gz">NNPDF30_nlo_as_0118_nf_6</a></td><td>101</td><td>1</td><td></td></tr>
+ <tr style="background-color: #efe;"><td>261000</td><td><a href="http://www.hepforge.org/archive/lhapdf/pdfsets/6.1/NNPDF30_nnlo_as_0118.tar.gz">NNPDF30_nnlo_as_0118</a></td><td>101</td><td>1</td><td></td></tr>
+ <tr style="background-color: #efe;"><td>261200</td><td><a href="http://www.hepforge.org/archive/lhapdf/pdfsets/6.1/NNPDF30_nnlo_as_0118_nf_3.tar.gz">NNPDF30_nnlo_as_0118_nf_3</a></td><td>101</td><td>1</td><td></td></tr>
+ <tr style="background-color: #efe;"><td>261400</td><td><a href="http://www.hepforge.org/archive/lhapdf/pdfsets/6.1/NNPDF30_nnlo_as_0118_nf_4.tar.gz">NNPDF30_nnlo_as_0118_nf_4</a></td><td>101</td><td>1</td><td></td></tr>
+ <tr style="background-color: #efe;"><td>261600</td><td><a href="http://www.hepforge.org/archive/lhapdf/pdfsets/6.1/NNPDF30_nnlo_as_0118_nf_6.tar.gz">NNPDF30_nnlo_as_0118_nf_6</a></td><td>101</td><td>1</td><td></td></tr>
</table>
*/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/LHAPDF-6.1.3/examples/Makefile.in new/LHAPDF-6.1.4/examples/Makefile.in
--- old/LHAPDF-6.1.3/examples/Makefile.in 2014-06-17 15:35:58.000000000 +0200
+++ new/LHAPDF-6.1.4/examples/Makefile.in 2014-08-15 16:49:15.000000000 +0200
@@ -87,11 +87,11 @@
$(top_srcdir)/config/depcomp
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cxx_compile_stdcxx_11.m4 \
- $(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/compilerflags.m4 \
- $(top_srcdir)/m4/cython.m4 $(top_srcdir)/m4/libtool.m4 \
- $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
- $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/boost_bug.m4 \
+ $(top_srcdir)/m4/compilerflags.m4 $(top_srcdir)/m4/cython.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/LHAPDF-6.1.3/include/LHAPDF/AlphaS.h new/LHAPDF-6.1.4/include/LHAPDF/AlphaS.h
--- old/LHAPDF-6.1.3/include/LHAPDF/AlphaS.h 2014-06-17 15:31:21.000000000 +0200
+++ new/LHAPDF-6.1.4/include/LHAPDF/AlphaS.h 2014-06-24 13:47:05.000000000 +0200
@@ -294,7 +294,7 @@
private:
/// Vector of Q2s in case specific anchor points are used
- std::vector<double> _q2s;
+ mutable std::vector<double> _q2s;
/// Whether or not the ODE has been solved yet
mutable bool _calculated;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/LHAPDF-6.1.3/include/LHAPDF/GridPDF.h new/LHAPDF-6.1.4/include/LHAPDF/GridPDF.h
--- old/LHAPDF-6.1.3/include/LHAPDF/GridPDF.h 2014-06-17 15:31:21.000000000 +0200
+++ new/LHAPDF-6.1.4/include/LHAPDF/GridPDF.h 2014-07-09 14:46:30.000000000 +0200
@@ -177,9 +177,12 @@
/// Get the N-flavour subgrid containing Q2 = q2
const KnotArrayNF& subgrid(double q2) const {
assert(q2 >= 0);
+ assert(!q2Knots().empty());
map::const_iterator it = _knotarrays.upper_bound(q2);
- if (it == _knotarrays.begin()) throw GridError("Requested Q2 is lower than any available Q2 subgrid");
- if (it == _knotarrays.end() && q2 > q2Knots().back()) throw GridError("Requested Q2 is higher than any available Q2 subgrid");
+ if (it == _knotarrays.begin())
+ throw GridError("Requested Q2 " + to_str(q2) + " is lower than any available Q2 subgrid (lowest Q2 = " + to_str(q2Knots().front()) + ")");
+ if (it == _knotarrays.end() && q2 > q2Knots().back())
+ throw GridError("Requested Q2 " + to_str(q2) + " is higher than any available Q2 subgrid (highest Q2 = " + to_str(q2Knots().back()) + ")");
--it; // upper_bound (and lower_bound) returns the entry *above* q2: we need to decrement by one element
// std::cout << "Using subgrid #" << std::distance(_knotarrays.begin(), it) << std::endl;
return it->second;
@@ -209,8 +212,8 @@
for (map::const_iterator isub = _knotarrays.begin(); isub != _knotarrays.end(); ++isub) {
const KnotArrayNF& subgrid = isub->second;
const KnotArray1F& grid1 = subgrid.get_first();
- if (grid1.q2s().empty()) continue;
- BOOST_FOREACH (const double& q2, grid1.q2s()) {
+ if (grid1.q2s().empty()) continue; //< @todo This shouldn't be possible, right? Throw instead, or ditch the check?
+ BOOST_FOREACH (double q2, grid1.q2s()) {
if (_q2knots.empty() || q2 != _q2knots.back()) _q2knots.push_back(q2);
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/LHAPDF-6.1.3/include/LHAPDF/Makefile.in new/LHAPDF-6.1.4/include/LHAPDF/Makefile.in
--- old/LHAPDF-6.1.3/include/LHAPDF/Makefile.in 2014-06-17 15:35:58.000000000 +0200
+++ new/LHAPDF-6.1.4/include/LHAPDF/Makefile.in 2014-08-15 16:49:15.000000000 +0200
@@ -84,11 +84,11 @@
$(srcdir)/Version.h.in $(am__pkginclude_HEADERS_DIST)
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cxx_compile_stdcxx_11.m4 \
- $(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/compilerflags.m4 \
- $(top_srcdir)/m4/cython.m4 $(top_srcdir)/m4/libtool.m4 \
- $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
- $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/boost_bug.m4 \
+ $(top_srcdir)/m4/compilerflags.m4 $(top_srcdir)/m4/cython.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/LHAPDF-6.1.3/include/LHAPDF/PDF.h new/LHAPDF-6.1.4/include/LHAPDF/PDF.h
--- old/LHAPDF-6.1.3/include/LHAPDF/PDF.h 2014-06-17 15:31:21.000000000 +0200
+++ new/LHAPDF-6.1.4/include/LHAPDF/PDF.h 2014-07-18 14:08:26.000000000 +0200
@@ -68,9 +68,8 @@
print(std::cout, v);
}
/// Print out a warning message if this PDF data is unvalidated
- if (_info.get_entry_as<int>("DataVersion", -1) < 0) {
- std::cerr << "WARNING: PDF #" << lhapdfID() << " is preliminary, unvalidated, "
- << "and not for production use!" << std::endl;
+ if (_info.get_entry_as<int>("DataVersion", -1) <= 0) {
+ std::cerr << "WARNING: this PDF is preliminary, unvalidated, and not for production use!" << std::endl;
}
}
@@ -115,13 +114,9 @@
throw RangeError("Unphysical Q2 given: " + to_str(q2));
}
// Treat PID = 0 as always equivalent to a gluon: query as PID = 21
- const int id2 = (id != 0) ? id : 21;
+ const int id2 = (id != 0) ? id : 21; //< @note Treat 0 as an alias for 21
// Undefined PIDs
- if (!hasFlavor(id2)) {
- /// @todo Should look up the UndefFlavorAction flag, but efficiency hit for top?
- //throw FlavorError("Undefined flavour requested: " + to_str(id));
- return 0.0;
- }
+ if (!hasFlavor(id2)) return 0.0;
// Call the delegated method in the concrete PDF object to calculate the in-range value
double xfx = _xfxQ2(id2, x, q2);
// Apply positivity forcing at the enabled level
@@ -475,8 +470,9 @@
/// Checks whether @a id is a valid parton for this PDF.
bool hasFlavor(int id) const {
+ const int id2 = (id != 0) ? id : 21; //< @note Treat 0 as an alias for 21
const vector<int>& ids = flavors();
- return find(ids.begin(), ids.end(), id) != ids.end();
+ return find(ids.begin(), ids.end(), id2) != ids.end();
}
/// @brief Order of QCD at which this PDF has been constructed
@@ -488,8 +484,7 @@
return info().get_entry_as<int>("OrderQCD");
}
/// @deprecated Use orderQCD instead
- int qcdOrder() const {
- return orderQCD(); }
+ int qcdOrder() const { return orderQCD(); }
//@}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/LHAPDF-6.1.3/include/LHAPDF/Version.h new/LHAPDF-6.1.4/include/LHAPDF/Version.h
--- old/LHAPDF-6.1.3/include/LHAPDF/Version.h 2014-06-17 15:36:09.000000000 +0200
+++ new/LHAPDF-6.1.4/include/LHAPDF/Version.h 2014-08-15 16:49:46.000000000 +0200
@@ -11,10 +11,10 @@
#include <string>
/* "LHAPDF version string" */
-#define LHAPDF_VERSION "6.1.3"
+#define LHAPDF_VERSION "6.1.4"
/* "LHAPDF version as an int" */
-#define LHAPDF_VERSION_CODE 60103
+#define LHAPDF_VERSION_CODE 60104
/* "Whether PDFLIB Fortran compatibility is available" */
#define LHAPDF_PDFLIB 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/LHAPDF-6.1.3/include/Makefile.in new/LHAPDF-6.1.4/include/Makefile.in
--- old/LHAPDF-6.1.3/include/Makefile.in 2014-06-17 15:35:58.000000000 +0200
+++ new/LHAPDF-6.1.4/include/Makefile.in 2014-08-15 16:49:15.000000000 +0200
@@ -81,11 +81,11 @@
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cxx_compile_stdcxx_11.m4 \
- $(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/compilerflags.m4 \
- $(top_srcdir)/m4/cython.m4 $(top_srcdir)/m4/libtool.m4 \
- $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
- $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/boost_bug.m4 \
+ $(top_srcdir)/m4/compilerflags.m4 $(top_srcdir)/m4/cython.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/LHAPDF-6.1.3/lhapdf.in new/LHAPDF-6.1.4/lhapdf.in
--- old/LHAPDF-6.1.3/lhapdf.in 2014-06-16 16:07:31.000000000 +0200
+++ new/LHAPDF-6.1.4/lhapdf.in 2014-07-10 14:59:35.000000000 +0200
@@ -366,8 +366,9 @@
help='update list of available PDF sets')
list_cmd = Subcommand('list', aliases=('ls',), usage='%prog [options] pattern...',
- description='List all available PDF sets, or search using a pattern.' + pattern_match_desc,
- help='list installed/available PDF sets')
+ description='List all standard PDF sets, or search using a pattern.' + pattern_match_desc,
+ help='list PDF sets (by default lists all sets available for download; ' +
+ 'use --installed or --outdated to explore those installed on the current system)')
list_cmd.parser.add_option('--installed', dest="INSTALLED", action='store_true',
help='list installed PDF sets')
list_cmd.parser.add_option('--outdated', dest="OUTDATED", action='store_true',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/LHAPDF-6.1.3/lhapdf.pc new/LHAPDF-6.1.4/lhapdf.pc
--- old/LHAPDF-6.1.3/lhapdf.pc 2014-06-17 15:36:09.000000000 +0200
+++ new/LHAPDF-6.1.4/lhapdf.pc 2014-08-15 16:49:45.000000000 +0200
@@ -7,7 +7,7 @@
Name: lhapdf
Description: LHAPDF parton density library
URL: https://lhapdf.hepforge.org
-Version: 6.1.3
+Version: 6.1.4
Libs: -L${exec_prefix}/lib -lLHAPDF
Cflags: -I${prefix}/include
#-I
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/LHAPDF-6.1.3/m4/boost_bug.m4 new/LHAPDF-6.1.4/m4/boost_bug.m4
--- old/LHAPDF-6.1.3/m4/boost_bug.m4 1970-01-01 01:00:00.000000000 +0100
+++ new/LHAPDF-6.1.4/m4/boost_bug.m4 2014-07-09 18:59:56.000000000 +0200
@@ -0,0 +1,42 @@
+AC_DEFUN([BOOST_BUG_IN_FOREACH],
+[
+dnl
+dnl see http://code-muse.com/2013/08/06/boostforeach-and-compiler-bugs
+dnl
+m4_pattern_allow([BOOST_FOREACH])
+AC_MSG_CHECKING([if boost rvalue bug is present])
+oldcppflags_boost="$CPPFLAGS"
+CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
+AC_RUN_IFELSE([
+ AC_LANG_PROGRAM([[
+ #include
+ #include
+ #include <vector>
+ const std::vector f()
+ {
+ return std::vector(4,
+ boost::shared_ptr<int>(new int(12)));
+ }
+ ]],
+ [[int sum = 48;
+ BOOST_FOREACH(const boost::shared_ptr<int> &pi, f())
+ {
+ sum -= *pi;
+ }
+ return sum;
+ ]]
+ )],
+ [
+ AC_MSG_RESULT([no])
+ ],
+ [
+ AC_MSG_RESULT([yes])
+ AC_MSG_ERROR([
+***********************************************
+*** Boost is too old for this compiler version. $CXX needs boost > 1_47.
+*** See http://code-muse.com/2013/08/06/boostforeach-and-compiler-bugs
+***********************************************])
+ ]
+)
+CPPFLAGS="$oldcppflags_boost"
+])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/LHAPDF-6.1.3/pdfsets.index new/LHAPDF-6.1.4/pdfsets.index
--- old/LHAPDF-6.1.3/pdfsets.index 2014-05-27 14:54:26.000000000 +0200
+++ new/LHAPDF-6.1.4/pdfsets.index 2014-08-15 22:06:24.000000000 +0200
@@ -252,3 +252,13 @@
247000 NNPDF23_lo_as_0130_qed 1
247200 NNPDF23_nlo_as_0119_qed_mc 1
247400 NNPDF23_nnlo_as_0119_qed_mc 1
+250000 NNPDFpol10_100 1
+251000 NNPDFpol11_100 1
+260000 NNPDF30_nlo_as_0118 1
+260200 NNPDF30_nlo_as_0118_nf_3 1
+260400 NNPDF30_nlo_as_0118_nf_4 1
+260600 NNPDF30_nlo_as_0118_nf_6 1
+261000 NNPDF30_nnlo_as_0118 1
+261200 NNPDF30_nnlo_as_0118_nf_3 1
+261400 NNPDF30_nnlo_as_0118_nf_4 1
+261600 NNPDF30_nnlo_as_0118_nf_6 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/LHAPDF-6.1.3/src/AlphaS_Ipol.cc new/LHAPDF-6.1.4/src/AlphaS_Ipol.cc
--- old/LHAPDF-6.1.3/src/AlphaS_Ipol.cc 2014-06-17 17:50:46.000000000 +0200
+++ new/LHAPDF-6.1.4/src/AlphaS_Ipol.cc 2014-06-24 13:47:05.000000000 +0200
@@ -87,13 +87,10 @@
// Remember to take situations where the first knot also is a
// flavor threshold into account
double dlogq2, dlogas;
- if( _q2s[0] != _q2s[1] ) {
- dlogq2 = log10( _q2s[1] / _q2s[0] );
- dlogas = log10( _as[1] / _as[0] );
- } else {
- dlogq2 = log10( _q2s[2] / _q2s[0] );
- dlogas = log10( _as[2] / _as[0] );
- }
+ unsigned int next_point = 1;
+ while ( _q2s[0] == _q2s[next_point] ) next_point++;
+ dlogq2 = log10( _q2s[next_point] / _q2s[0] );
+ dlogas = log10( _as[next_point] / _as[0] );
const double loggrad = dlogas / dlogq2;
return _as[0] * pow( q2/_q2s[0] , loggrad );
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/LHAPDF-6.1.3/src/AlphaS_ODE.cc new/LHAPDF-6.1.4/src/AlphaS_ODE.cc
--- old/LHAPDF-6.1.3/src/AlphaS_ODE.cc 2014-06-15 23:07:50.000000000 +0200
+++ new/LHAPDF-6.1.4/src/AlphaS_ODE.cc 2014-07-09 18:59:56.000000000 +0200
@@ -120,19 +120,74 @@
// If a vector of knots in q2 has been given, solve for those.
if ( !_q2s.empty() ) {
+ // If for some reason the highest q2 knot is below m_{Z},
+ // force a knot there anyway (since we know it, might as well
+ // use it)
+ if ( _q2s[_q2s.size()-1] < sqr(_mz) ) _q2s.push_back(sqr(_mz));
+
+ // Find the index of the knot right below m_{Z}
+ unsigned int index_of_mz_lower = 0;
+
+ while ( _q2s[index_of_mz_lower + 1] < sqr(_mz) ) {
+ if ( index_of_mz_lower == _q2s.size() -1 ) break;
+ index_of_mz_lower++;
+ }
+
+ vector > grid; // for storing in correct order
+
vector<double> alphas;
double low_lim = 0;
double last_val = -1;
- // BOOST_FOREACH (double q2, _q2s)
- for ( size_t ind = 0; ind < _q2s.size(); ++ind) {
+ bool threshold = false;
+
+ // We do this by starting from m_{Z}, going down to the lowest q2,
+ // and then jumping back up to m_{Z} to avoid calculating things twice
+ for ( int ind = index_of_mz_lower; ind >= 0; --ind) {
+ const double q2 = _q2s[ind];
+ // Deal with cases with two identical adjacent points (thresholds) by decreasing step size,
+ // allowed errors, and accuracy.
+ if ( ind != 0 ) {
+ if ( q2 == _q2s[ind-1] ) {
+ last_val = q2;
+ threshold = true;
+ _solve(q2, t, y, allowed_relative/5, h/5, accuracy/5);
+ grid.push_back(make_pair(ind, y));
+ // Define divergence after y > 2. -- we have no accuracy after that any way
+ if ( y > 2. ) { low_lim = q2; }
+ continue;
+ }
+ }
+ // If q2 is lower than a value that already diverged, it will also diverge
+ if ( q2 < low_lim ) {
+ alphas.push_back( std::numeric_limits<double>::max() );
+ continue;
+ // If last point was the same we don't need to recalculate
+ } else if ( q2 == last_val ) {
+ alphas.push_back(y);
+ continue;
+ // Else calculate
+ } else {
+ last_val = q2;
+ if ( threshold ) { _solve(q2, t, y, allowed_relative/5, h/5, accuracy/5); threshold = false; }
+ else { _solve(q2, t, y, allowed_relative, h, accuracy); }
+ grid.push_back(make_pair(ind, y));
+ // Define divergence after y > 2. -- we have no accuracy after that any way
+ if ( y > 2. ) { low_lim = q2; }
+ }
+ }
+
+ t = sqr(_mz); // starting point
+ y = _alphas_mz; // starting value
+
+ for ( size_t ind = index_of_mz_lower + 1; ind < _q2s.size(); ++ind) {
double q2 = _q2s[ind];
- /// Deal with cases with two identical adjacent points (thresholds) by decreasing step size,
- /// allowed errors, and accuracy.
+ // Deal with cases with two identical adjacent points (thresholds) by decreasing step size,
+ // allowed errors, and accuracy.
if ( ind != _q2s.size() - 1 ) {
if ( q2 == _q2s[ind+1] ) {
last_val = q2;
_solve(q2, t, y, allowed_relative/5, h/5, accuracy/5);
- alphas.push_back(y);
+ grid.push_back(make_pair(ind, y));
// Define divergence after y > 2. -- we have no accuracy after that any way
if ( y > 2. ) { low_lim = q2; }
continue;
@@ -141,8 +196,6 @@
// If q2 is lower than a value that already diverged, it will also diverge
if ( q2 < low_lim ) {
alphas.push_back( std::numeric_limits<double>::max() );
- t = sqr(_mz);
- y = _alphas_mz;
continue;
// If last point was the same we don't need to recalculate
} else if ( q2 == last_val ) {
@@ -152,12 +205,19 @@
} else {
last_val = q2;
_solve(q2, t, y, allowed_relative, h, accuracy);
- alphas.push_back(y);
+ grid.push_back(make_pair(ind, y));
// Define divergence after y > 2. -- we have no accuracy after that any way
if ( y > 2. ) { low_lim = q2; }
}
}
+ std::sort(grid.begin(), grid.end(),
+ boost::bind(&std::pair::first, _1) < boost::bind(&std::pair::first, _2));
+
+ for ( size_t x = 0; x < grid.size(); ++x ) {
+ alphas.push_back(grid.at(x).second);
+ }
+
_ipol.setQ2Values(_q2s);
_ipol.setAlphaSValues(alphas);
@@ -201,8 +261,6 @@
std::sort(grid.begin(), grid.end(),
boost::bind(&std::pair::first, _1) < boost::bind(&std::pair::first, _2));
- // Need to do this since BOOST_FOREACH can't deal with arguments
- // with ,s (and I don't want to clutter with a typedef)
for ( size_t x = 0; x < grid.size(); ++x ) {
alphas.push_back(grid.at(x).second);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/LHAPDF-6.1.3/src/GridPDF.cc new/LHAPDF-6.1.4/src/GridPDF.cc
--- old/LHAPDF-6.1.3/src/GridPDF.cc 2014-04-17 14:40:51.000000000 +0200
+++ new/LHAPDF-6.1.4/src/GridPDF.cc 2014-07-15 11:22:13.000000000 +0200
@@ -83,7 +83,7 @@
void GridPDF::_loadData(const std::string& mempath) {
- string line;
+ string line, prevline;
int iblock(0), iblockline(0), iline(0);
vector<double> xs, q2s;
const size_t npid = flavors().size();
@@ -95,6 +95,7 @@
while (getline(file, line)) {
// Trim the current line to ensure that there is no effect of leading spaces, etc.
trim(line);
+ prevline = line; // used to test the last line after the while loop fails
// If the line is commented out, increment the line number but not the block line
iline += 1;
@@ -113,8 +114,13 @@
nparser.reset(line);
if (iblockline == 1) { // x knots line
while (nparser >> token) xs.push_back(token);
+ if (xs.empty())
+ throw ReadError("Empty x knot array on line " + to_str(iline));
} else if (iblockline == 2) { // Q knots line
while (nparser >> token) q2s.push_back(token*token); // note Q -> Q2
+ if (q2s.empty())
+ throw ReadError("Empty Q knot array on line " + to_str(iline));
+ //cout << q2s.size() << ", " << q2s.front() << ", " << q2s.back() << endl;
} else if (iblockline == 3) { // internal flavor IDs line
// DO NOTHING FOR NOW: only handling this for prospective forward compatibility
/// @todo Handle internal partial flavour representations
@@ -149,11 +155,9 @@
// Escape here if we've just finished reading the 0th (metadata) block
if (iblock == 1) continue;
- // Die with an assert if the block was of zero size
- /// @todo Convert to throwing some exception? Is this ever allowable?
- assert(xs.size() > 0);
- assert(q2s.size() > 0);
- assert(ipid_xfs.size() > 0);
+ // Throw if the block was of zero size
+ if (ipid_xfs.empty())
+ throw ReadError("Empty xf values array in block " + to_str(iblock) + ", ended on line " + to_str(iline));
// Register data from the previous (>0th) block into the GridPDF data structure
KnotArrayNF& arraynf = _knotarrays[q2s.front()]; //< Reference to newly created subgrid object
@@ -167,9 +171,11 @@
//cout << _knotarrays.size() << endl;
xs.clear(); q2s.clear();
for (size_t ipid = 0; ipid < npid; ++ipid) ipid_xfs[ipid].clear();
-
}
}
+ // File reading finished: complain if it was not properly terminated
+ if (prevline != "---")
+ throw ReadError("Grid file " + mempath + " is not properly terminated: .dat files MUST end with a --- separator line");
} catch (Exception& e) {
throw;
} catch (std::exception& e) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/LHAPDF-6.1.3/src/LHAGlue.cc new/LHAPDF-6.1.4/src/LHAGlue.cc
--- old/LHAPDF-6.1.3/src/LHAGlue.cc 2014-05-28 17:03:54.000000000 +0200
+++ new/LHAPDF-6.1.4/src/LHAGlue.cc 2014-08-15 19:21:33.000000000 +0200
@@ -507,31 +507,64 @@
}
+ void getxminm_(const int& nset, const int& nmem, double& xmin) {
+ ACTIVESETS[nset].loadMember(nmem);
+ xmin = ACTIVESETS[nset].activemember()->info().get_entry_as<double>("XMin");
+ }
+
void getxmin_(const int& nmem, double& xmin) {
currentset = 1;
- ACTIVESETS[1].loadMember(nmem);
- xmin = ACTIVESETS[1].activemember()->info().get_entry_as<double>("XMin");
+ getxminm_(currentset, nmem, xmin);
+ }
+
+
+ void getxmaxm_(const int& nset, const int& nmem, double& xmax) {
+ ACTIVESETS[nset].loadMember(nmem);
+ xmax = ACTIVESETS[nset].activemember()->info().get_entry_as<double>("XMax");
}
void getxmax_(const int& nmem, double& xmax) {
currentset = 1;
- ACTIVESETS[1].loadMember(nmem);
- xmax = ACTIVESETS[1].activemember()->info().get_entry_as<double>("XMax");
+ getxmaxm_(currentset, nmem, xmax);
+ }
+
+
+ void getq2minm_(const int& nset, const int& nmem, double& q2min) {
+ ACTIVESETS[nset].loadMember(nmem);
+ q2min = LHAPDF::sqr(ACTIVESETS[nset].activemember()->info().get_entry_as<double>("QMin"));
}
void getq2min_(const int& nmem, double& q2min) {
currentset = 1;
- ACTIVESETS[1].loadMember(nmem);
- q2min = LHAPDF::sqr(ACTIVESETS[1].activemember()->info().get_entry_as<double>("QMin"));
+ getq2minm_(currentset, nmem, q2min);
+ }
+
+
+ void getq2maxm_(const int& nset, const int& nmem, double& q2max) {
+ ACTIVESETS[nset].loadMember(nmem);
+ q2max = LHAPDF::sqr(ACTIVESETS[nset].activemember()->info().get_entry_as<double>("QMax"));
}
void getq2max_(const int& nmem, double& q2max) {
currentset = 1;
- ACTIVESETS[1].loadMember(nmem);
- q2max = LHAPDF::sqr(ACTIVESETS[1].activemember()->info().get_entry_as<double>("QMax"));
+ getq2maxm_(currentset, nmem, q2max);
}
+ void getminmaxm_(const int& nset, const int& nmem, double& xmin, double& xmax, double& q2min, double& q2max) {
+ ACTIVESETS[nset].loadMember(nmem);
+ xmin = ACTIVESETS[nset].activemember()->info().get_entry_as<double>("XMin");
+ xmax = ACTIVESETS[nset].activemember()->info().get_entry_as<double>("XMax");
+ q2min = LHAPDF::sqr(ACTIVESETS[nset].activemember()->info().get_entry_as<double>("QMin"));
+ q2max = LHAPDF::sqr(ACTIVESETS[nset].activemember()->info().get_entry_as<double>("QMax"));
+ }
+
+ void getminmax_(const int& nmem, double& xmin, double& xmax, double& q2min, double& q2max) {
+ currentset = 1;
+ getminmaxm_(currentset, nmem, xmin, xmax, q2min, q2max);
+ }
+
+
/// Backwards compatibility functions for LHAPDF5 calculations of
/// PDF uncertainties and PDF correlations (G. Watt, March 2014).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/LHAPDF-6.1.3/src/Makefile.in new/LHAPDF-6.1.4/src/Makefile.in
--- old/LHAPDF-6.1.3/src/Makefile.in 2014-06-17 15:35:58.000000000 +0200
+++ new/LHAPDF-6.1.4/src/Makefile.in 2014-08-15 16:49:15.000000000 +0200
@@ -85,11 +85,11 @@
$(top_srcdir)/config/depcomp
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cxx_compile_stdcxx_11.m4 \
- $(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/compilerflags.m4 \
- $(top_srcdir)/m4/cython.m4 $(top_srcdir)/m4/libtool.m4 \
- $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
- $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/boost_bug.m4 \
+ $(top_srcdir)/m4/compilerflags.m4 $(top_srcdir)/m4/cython.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/LHAPDF-6.1.3/src/yamlcpp/Makefile.in new/LHAPDF-6.1.4/src/yamlcpp/Makefile.in
--- old/LHAPDF-6.1.3/src/yamlcpp/Makefile.in 2014-06-17 15:35:58.000000000 +0200
+++ new/LHAPDF-6.1.4/src/yamlcpp/Makefile.in 2014-08-15 16:49:16.000000000 +0200
@@ -89,11 +89,11 @@
$(top_srcdir)/config/depcomp $(dist_noinst_HEADERS)
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cxx_compile_stdcxx_11.m4 \
- $(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/compilerflags.m4 \
- $(top_srcdir)/m4/cython.m4 $(top_srcdir)/m4/libtool.m4 \
- $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
- $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/boost_bug.m4 \
+ $(top_srcdir)/m4/compilerflags.m4 $(top_srcdir)/m4/cython.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/LHAPDF-6.1.3/tests/Makefile.in new/LHAPDF-6.1.4/tests/Makefile.in
--- old/LHAPDF-6.1.3/tests/Makefile.in 2014-06-17 16:52:08.000000000 +0200
+++ new/LHAPDF-6.1.4/tests/Makefile.in 2014-08-15 16:49:16.000000000 +0200
@@ -86,11 +86,11 @@
$(top_srcdir)/config/depcomp $(top_srcdir)/config/test-driver
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cxx_compile_stdcxx_11.m4 \
- $(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/compilerflags.m4 \
- $(top_srcdir)/m4/cython.m4 $(top_srcdir)/m4/libtool.m4 \
- $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
- $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/boost_bug.m4 \
+ $(top_srcdir)/m4/compilerflags.m4 $(top_srcdir)/m4/cython.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/LHAPDF-6.1.3/tests/testgrid.cc new/LHAPDF-6.1.4/tests/testgrid.cc
--- old/LHAPDF-6.1.3/tests/testgrid.cc 2014-06-16 12:08:01.000000000 +0200
+++ new/LHAPDF-6.1.4/tests/testgrid.cc 2014-07-09 14:02:58.000000000 +0200
@@ -3,11 +3,10 @@
#include "LHAPDF/GridPDF.h"
#include <iostream>
#include <fstream>
-using namespace LHAPDF;
using namespace std;
-void safeprint(const PDF& pdf, const string& key) {
+void safeprint(const LHAPDF::PDF& pdf, const string& key) {
if (pdf.info().has_key(key))
cout << key << " = " << pdf.info().get_entry(key) << endl;
}
@@ -21,40 +20,39 @@
}
const string setname = (argc < 2) ? "CT10nlo" : argv[1];
- for (int i = 0; i <= 1; ++i) {
- const GridPDF pdf(setname, i);
+ const LHAPDF::PDF* basepdf = LHAPDF::mkPDF(setname);
+ const LHAPDF::GridPDF& pdf = * dynamic_cast(basepdf);
- BOOST_FOREACH (const string& p, paths()) cout << p << " : "; cout << endl;
+ BOOST_FOREACH (const string& p, LHAPDF::paths()) cout << p << " : "; cout << endl;
- safeprint(pdf, "Verbosity");
- safeprint(pdf, "PdfDesc");
- safeprint(pdf, "SetDesc");
- cout << "Flavors (str) = " << pdf.info().get_entry("Flavors") << endl;
- vector<int> pids = pdf.info().get_entry_as< vector<int> >("Flavors");
- cout << "Flavors (ints) = ";
- BOOST_FOREACH (int f, pids) cout << f << " "; cout << endl;
- cout << "Flavors (vec<int>) = " << LHAPDF::to_str(pids) << endl;
-
- cout << "x0, Q0 = " << pdf.subgrid(21, 100).xf(0, 0) << endl;
- cout << "x1, Q0 = " << pdf.subgrid(21, 100).xf(1, 0) << endl;
- cout << "x0, Q1 = " << pdf.subgrid(21, 100).xf(0, 1) << endl;
- cout << "x1, Q1 = " << pdf.subgrid(21, 100).xf(1, 1) << endl;
-
- cout << pdf.xfxQ(21, 0.7, 10.0) << endl;
- cout << pdf.xfxQ2(21, 0.2, 126) << endl;
- BOOST_FOREACH (int pid, pdf.flavors()) {
- cout << pid << " = " << pdf.xfxQ2(pid, 0.2, 124) << endl;
- }
+ safeprint(pdf, "Verbosity");
+ safeprint(pdf, "PdfDesc");
+ safeprint(pdf, "SetDesc");
+ cout << "Flavors (str) = " << pdf.info().get_entry("Flavors") << endl;
+ vector<int> pids = pdf.info().get_entry_as< vector<int> >("Flavors");
+ cout << "Flavors (ints) = ";
+ BOOST_FOREACH (int f, pids) cout << f << " "; cout << endl;
+ cout << "Flavors (vec<int>) = " << LHAPDF::to_str(pids) << endl;
+
+ cout << "x0, Q0 = " << pdf.subgrid(21, 100).xf(0, 0) << endl;
+ cout << "x1, Q0 = " << pdf.subgrid(21, 100).xf(1, 0) << endl;
+ cout << "x0, Q1 = " << pdf.subgrid(21, 100).xf(0, 1) << endl;
+ cout << "x1, Q1 = " << pdf.subgrid(21, 100).xf(1, 1) << endl;
+
+ cout << pdf.xfxQ(21, 0.7, 10.0) << endl;
+ cout << pdf.xfxQ(21, 0.2, 126) << endl;
+ BOOST_FOREACH (int pid, pdf.flavors()) {
+ cout << pid << " = " << pdf.xfxQ(pid, 0.2, 124) << endl;
+ }
- ofstream f("pdf.dat");
- for (double x = 0; x <= 1; x += 0.02) {
- for (double log10q2 = 1; log10q2 < 5; log10q2 += 0.05) {
- f << x << " " << log10q2 << " " << pdf.xfxQ2(21, x, pow(10, log10q2)) << endl;
- }
+ ofstream f("pdf.dat");
+ for (double x = 0; x <= 1; x += 0.02) {
+ for (double log10q2 = 1; log10q2 < 5; log10q2 += 0.05) {
+ f << x << " " << log10q2 << " " << pdf.xfxQ2(21, x, pow(10, log10q2)) << endl;
}
- f.close();
- cout << endl;
}
+ f.close();
+ cout << endl;
return 0;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/LHAPDF-6.1.3/wrappers/Makefile.in new/LHAPDF-6.1.4/wrappers/Makefile.in
--- old/LHAPDF-6.1.3/wrappers/Makefile.in 2014-06-17 15:35:58.000000000 +0200
+++ new/LHAPDF-6.1.4/wrappers/Makefile.in 2014-08-15 16:49:16.000000000 +0200
@@ -81,11 +81,11 @@
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cxx_compile_stdcxx_11.m4 \
- $(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/compilerflags.m4 \
- $(top_srcdir)/m4/cython.m4 $(top_srcdir)/m4/libtool.m4 \
- $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
- $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/boost_bug.m4 \
+ $(top_srcdir)/m4/compilerflags.m4 $(top_srcdir)/m4/cython.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/LHAPDF-6.1.3/wrappers/python/Makefile.in new/LHAPDF-6.1.4/wrappers/python/Makefile.in
--- old/LHAPDF-6.1.3/wrappers/python/Makefile.in 2014-06-17 15:35:58.000000000 +0200
+++ new/LHAPDF-6.1.4/wrappers/python/Makefile.in 2014-08-15 16:49:16.000000000 +0200
@@ -82,11 +82,11 @@
$(srcdir)/setup.py.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cxx_compile_stdcxx_11.m4 \
- $(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/compilerflags.m4 \
- $(top_srcdir)/m4/cython.m4 $(top_srcdir)/m4/libtool.m4 \
- $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
- $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/boost_bug.m4 \
+ $(top_srcdir)/m4/compilerflags.m4 $(top_srcdir)/m4/cython.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
@@ -369,8 +369,8 @@
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
-@WITH_PYTHON_FALSE@install-exec-local:
@WITH_PYTHON_FALSE@uninstall-local:
+@WITH_PYTHON_FALSE@install-exec-local:
@WITH_PYTHON_FALSE@distclean-local:
clean: clean-am
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org