Hello community, here is the log from the commit of package ThePEG for openSUSE:Factory checked in at 2018-05-15 10:04:29 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ThePEG (Old) and /work/SRC/openSUSE:Factory/.ThePEG.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ThePEG" Tue May 15 10:04:29 2018 rev:12 rq:603190 version:2.1.3 Changes: -------- --- /work/SRC/openSUSE:Factory/ThePEG/ThePEG.changes 2017-11-03 16:28:43.175760788 +0100 +++ /work/SRC/openSUSE:Factory/.ThePEG.new/ThePEG.changes 2018-05-15 10:31:01.993408320 +0200 @@ -1,0 +2,6 @@ +Mon Apr 30 21:27:55 UTC 2018 - badshah...@gmail.com + +- Update to version 2.1.3: + * Use std::array<> where suitable + +------------------------------------------------------------------- Old: ---- ThePEG-2.1.2.tar.bz2 New: ---- ThePEG-2.1.3.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ThePEG.spec ++++++ --- /var/tmp/diff_new_pack.0IA2g8/_old 2018-05-15 10:31:02.837377321 +0200 +++ /var/tmp/diff_new_pack.0IA2g8/_new 2018-05-15 10:31:02.841377174 +0200 @@ -1,7 +1,7 @@ # # spec file for package ThePEG # -# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -23,10 +23,10 @@ # Name: ThePEG -Version: 2.1.2 +Version: 2.1.3 Release: 0 Summary: Toolkit providing a common platform for event generators in C++ -License: GPL-2.0 +License: GPL-2.0-only Group: Development/Libraries/C and C++ Url: http://home.thep.lu.se/~leif/ThePEG/ Source: http://www.hepforge.org/archive/thepeg/%{name}-%{version}.tar.bz2 ++++++ ThePEG-2.1.2.tar.bz2 -> ThePEG-2.1.3.tar.bz2 ++++++ ++++ 2240 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ThePEG-2.1.2/Config/std.h new/ThePEG-2.1.3/Config/std.h --- old/ThePEG-2.1.2/Config/std.h 2017-05-03 16:38:25.000000000 +0200 +++ new/ThePEG-2.1.3/Config/std.h 2018-03-02 17:41:02.000000000 +0100 @@ -25,6 +25,7 @@ #include <map> #include <set> #include <string> +#include <array> #include <vector> #include <list> #include <iostream> @@ -62,6 +63,7 @@ namespace ThePEG { +using std::array; using std::deque; using std::stack; using std::vector; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ThePEG-2.1.2/Doc/fixinterfaces.pl new/ThePEG-2.1.3/Doc/fixinterfaces.pl --- old/ThePEG-2.1.2/Doc/fixinterfaces.pl 2017-11-01 11:57:38.000000000 +0100 +++ new/ThePEG-2.1.3/Doc/fixinterfaces.pl 2018-04-05 13:05:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/perl -pi +#!/opt/local/bin/perl -pi s|<interface>(\S+?)::(\S+?)</interface>|<a href="\1Interfaces.html#\2"><code>\1:\ :\2</code></a>|g; s|<interface>(\S+?)</interface>|<a href="#\1"><code>\1</code></a>|g; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ThePEG-2.1.2/EventRecord/Event.cc new/ThePEG-2.1.3/EventRecord/Event.cc --- old/ThePEG-2.1.2/EventRecord/Event.cc 2017-05-03 16:38:25.000000000 +0200 +++ new/ThePEG-2.1.3/EventRecord/Event.cc 2017-12-12 15:05:18.000000000 +0100 @@ -189,6 +189,14 @@ if ( e.handler() ) os << "performed by " << EventConfig::nameHandler(e.handler()); os << endl; + os << "Weight: " << e.weight(); + if ( ! e.optionalWeights().empty() ) { + os << " [ "; + for ( auto w : e.optionalWeights() ) + os << w.first << ':' << w.second << ' '; + os << " ]"; + } + os << endl; for ( unsigned int i = 0; i < e.collisions().size(); ++i ) { os << string(78, '=') << endl; if ( e.collisions().size() != 1 ) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ThePEG-2.1.2/Helicity/Vertex/Vector/VVVVVertex.h new/ThePEG-2.1.3/Helicity/Vertex/Vector/VVVVVertex.h --- old/ThePEG-2.1.2/Helicity/Vertex/Vector/VVVVVertex.h 2017-05-03 16:37:35.000000000 +0200 +++ new/ThePEG-2.1.3/Helicity/Vertex/Vector/VVVVVertex.h 2018-03-02 18:14:40.000000000 +0100 @@ -152,17 +152,17 @@ /** * Order of the particles. */ - int _iorder[4]; + array<int,4> _iorder; /** * Intermediate particles */ - tcPDPtr _inter[2]; + array<tcPDPtr,2> _inter; /** * Couplings of the intermediate particles. */ - Complex _coup[2]; + array<Complex,2> _coup; }; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ThePEG-2.1.2/Interface/Parameter.cc new/ThePEG-2.1.3/Interface/Parameter.cc --- old/ThePEG-2.1.2/Interface/Parameter.cc 2017-05-03 16:38:26.000000000 +0200 +++ new/ThePEG-2.1.3/Interface/Parameter.cc 2018-04-05 11:59:10.000000000 +0200 @@ -77,6 +77,7 @@ namespace { const std::map<std::string, ThePEG::Energy> energymapping = { + {"TeV",ThePEG::TeV}, {"GeV",ThePEG::GeV}, {"MeV",ThePEG::MeV} }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ThePEG-2.1.2/LesHouches/LesHouches.h new/ThePEG-2.1.3/LesHouches/LesHouches.h --- old/ThePEG-2.1.2/LesHouches/LesHouches.h 2017-05-03 16:38:26.000000000 +0200 +++ new/ThePEG-2.1.3/LesHouches/LesHouches.h 2018-03-02 17:49:44.000000000 +0100 @@ -161,7 +161,7 @@ ISTUP.resize(NUP); MOTHUP.resize(NUP); ICOLUP.resize(NUP); - PUP.resize(NUP, std::vector<double>(5)); + PUP.resize(NUP); VTIMUP.resize(NUP); SPINUP.resize(NUP); } @@ -231,7 +231,7 @@ * Lab frame momentum (Px, Py, Pz, E and M in GeV) for the particle * entries in this event. */ - vector< vector<double> > PUP; + vector< array<double,5> > PUP; /** * Invariant lifetime (c*tau, distance from production to decay im diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ThePEG-2.1.2/LesHouches/LesHouchesReader.cc new/ThePEG-2.1.3/LesHouches/LesHouchesReader.cc --- old/ThePEG-2.1.2/LesHouches/LesHouchesReader.cc 2017-05-03 16:38:26.000000000 +0200 +++ new/ThePEG-2.1.3/LesHouches/LesHouchesReader.cc 2018-03-02 17:41:02.000000000 +0100 @@ -1210,7 +1210,7 @@ pos = mread(pos, hepeup.MOTHUP[0], hepeup.NUP); hepeup.ICOLUP.resize(hepeup.NUP); pos = mread(pos, hepeup.ICOLUP[0], hepeup.NUP); - hepeup.PUP.resize(hepeup.NUP, vector<double>(5)); + hepeup.PUP.resize(hepeup.NUP); for ( int i = 0; i < hepeup.NUP; ++i ) pos = mread(pos, hepeup.PUP[i][0], 5); hepeup.VTIMUP.resize(hepeup.NUP); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ThePEG-2.1.2/LesHouches/MadGraphOneCut.cc new/ThePEG-2.1.3/LesHouches/MadGraphOneCut.cc --- old/ThePEG-2.1.2/LesHouches/MadGraphOneCut.cc 2017-05-03 16:38:26.000000000 +0200 +++ new/ThePEG-2.1.3/LesHouches/MadGraphOneCut.cc 2018-03-02 17:41:02.000000000 +0100 @@ -33,30 +33,30 @@ } Energy MadGraphOneCut::minKT(tcPDPtr p) const { - if ( cutType != PT || !checkType(p) ) return ZERO; + if ( cutType != Cut::PT || !checkType(p) ) return ZERO; return theCut*GeV; } double MadGraphOneCut::minEta(tcPDPtr p) const { - if ( cutType != ETA || !checkType(p) ) return -Constants::MaxRapidity; + if ( cutType != Cut::ETA || !checkType(p) ) return -Constants::MaxRapidity; return -theCut; } double MadGraphOneCut::maxEta(tcPDPtr p) const { - if ( cutType != ETA || !checkType(p) ) return Constants::MaxRapidity; + if ( cutType != Cut::ETA || !checkType(p) ) return Constants::MaxRapidity; return theCut; } Energy MadGraphOneCut::minMaxKT(tcPDPtr p) const { - if ( cutType != XPT || !checkType(p) ) return ZERO; + if ( cutType != Cut::XPT || !checkType(p) ) return ZERO; return theCut*GeV; } bool MadGraphOneCut::passCuts(tcCutsPtr parent, tcPDPtr ptype, LorentzMomentum p) const { if ( !checkType(ptype) ) return true; - if ( cutType == PT ) return p.perp() > theCut*GeV; - if ( cutType == ETA ) { + if ( cutType == Cut::PT ) return p.perp() > theCut*GeV; + if ( cutType == Cut::ETA ) { double y = p.rapidity() + parent->Y() + parent->currentYHat(); return abs(p.mt()*sinh(y)) < p.perp()*sinh(theCut); } @@ -70,18 +70,18 @@ case ParticleID::s: case ParticleID::c: case ParticleID::g: - return particleType == JET; + return particleType == P::JET; case ParticleID::b: - return particleType == JET || particleType == BOT; + return particleType == P::JET || particleType == P::BOT; case ParticleID::gamma: - return particleType == PHO; + return particleType == P::PHO; case ParticleID::eminus: case ParticleID::nu_e: case ParticleID::muminus: case ParticleID::nu_mu: case ParticleID::tauminus: case ParticleID::nu_tau: - return particleType == LEP; + return particleType == P::LEP; default: return false; } @@ -106,51 +106,51 @@ "about cuts. It is also possible to create objects by hand and use " "it as any other OneCutBase object."); - static Switch<MadGraphOneCut,CutType> interfaceCutType + static Switch<MadGraphOneCut,Cut> interfaceCutType ("CutType", "The type of cut this object will do.", - &MadGraphOneCut::cutType, PT, true, false); + &MadGraphOneCut::cutType, Cut::PT, true, false); static SwitchOption interfaceCutTypePT (interfaceCutType, "MinPT", "The minimum transverse momentum of a particle.", - PT); + Cut::PT); static SwitchOption interfaceCutTypeMaxEta (interfaceCutType, "MaxEta", "The maximum (absolute value of) pseudo-rapidity of a particle.", - ETA); + Cut::ETA); static SwitchOption interfaceCutTypeMinMaxPT (interfaceCutType, "MinMaxPT", "The minimum transverse momentum of the particle with largest " "transverse momentum.", - XPT); + Cut::XPT); - static Switch<MadGraphOneCut,PType> interfaceParticleType + static Switch<MadGraphOneCut,P> interfaceParticleType ("ParticleType", "The types of particles this cut is applied to.", - &MadGraphOneCut::particleType, JET, true, false); + &MadGraphOneCut::particleType, P::JET, true, false); static SwitchOption interfaceParticleTypeJets (interfaceParticleType, "Jets", "The cut applies only to coloured particles (jets).", - JET); + P::JET); static SwitchOption interfaceParticleTypeLeptons (interfaceParticleType, "Leptons", "The cut applies only to leptons.", - LEP); + P::LEP); static SwitchOption interfaceParticleTypePhotons (interfaceParticleType, "Photons", "The cut applies only to photons.", - PHO); + P::PHO); static SwitchOption interfaceParticleTypeBottom (interfaceParticleType, "Bottom", "The cut applies only to bottom quarks.", - BOT); + P::BOT); static Parameter<MadGraphOneCut,double> interfaceCut ("Cut", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ThePEG-2.1.2/LesHouches/MadGraphOneCut.h new/ThePEG-2.1.3/LesHouches/MadGraphOneCut.h --- old/ThePEG-2.1.2/LesHouches/MadGraphOneCut.h 2017-05-03 16:38:26.000000000 +0200 +++ new/ThePEG-2.1.3/LesHouches/MadGraphOneCut.h 2018-03-02 17:41:02.000000000 +0100 @@ -32,7 +32,7 @@ /** * Enumerate the different kinds of cuts made by MadGraph. */ - enum CutType { + enum class Cut { PT, /**< The minimum transverse momentum of a particle. */ ETA, /**< The maximum (absolute value of) pseudo-rapidity of a particle. */ XPT /**< The minimum transverse momentum of the particle with @@ -42,7 +42,7 @@ /** * Enumerate the types of particles the cut is made on. */ - enum PType { + enum class P { JET, /**< The cut applies only to coloured particles. */ LEP, /**< The cut applies only to leptons. */ PHO, /**< The cut applies only to photons. */ @@ -56,7 +56,7 @@ /** * The default constructor. */ - MadGraphOneCut() : cutType(PT), particleType(JET), theCut(0.0) {} + MadGraphOneCut() : cutType(Cut::PT), particleType(P::JET), theCut(0.0) {} /** * The constructor used by the MadGraphReader. @@ -64,7 +64,7 @@ * @param p is the type of particles the cut is applied to. * @param c is the value of the cut (in units of GeV where applicable). */ - MadGraphOneCut(CutType t, PType p, double c) + MadGraphOneCut(Cut t, P p, double c) : cutType(t), particleType(p), theCut(c) {} //@} @@ -163,12 +163,12 @@ /** * The type of this cut. */ - CutType cutType; + Cut cutType; /** * The type of particles this cut applies to. */ - PType particleType; + P particleType; /** * The value of the cut to be applied. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ThePEG-2.1.2/LesHouches/MadGraphReader.cc new/ThePEG-2.1.3/LesHouches/MadGraphReader.cc --- old/ThePEG-2.1.2/LesHouches/MadGraphReader.cc 2017-05-03 16:38:26.000000000 +0200 +++ new/ThePEG-2.1.3/LesHouches/MadGraphReader.cc 2018-03-02 17:41:02.000000000 +0100 @@ -300,7 +300,7 @@ for ( int i = 0; i < hepeup.NUP; ++i ) cfile >> hepeup.SPINUP[i]; } - hepeup.PUP.resize(hepeup.NUP, vector<double>(5)); + hepeup.PUP.resize(hepeup.NUP); for ( int i = 0; i < hepeup.NUP; ++i ) { if ( !cfile.readline() ) return false; int dummy = 0; @@ -389,46 +389,46 @@ vector<string> tnames; for ( map<string,double>::iterator i = cuts.begin(); i != cuts.end(); ++i ) { if ( i->second <= 0.0 ) continue; - MadGraphOneCut::CutType t = MadGraphOneCut::PT; + MadGraphOneCut::Cut t = MadGraphOneCut::Cut::PT; char p = 0; if ( i->first.substr(0, 2) == "pt" ) { - t = MadGraphOneCut::PT; + t = MadGraphOneCut::Cut::PT; p = i->first[2]; } else if ( i->first.substr(0, 3) == "eta" ) { - t = MadGraphOneCut::ETA; + t = MadGraphOneCut::Cut::ETA; p = i->first[3]; } else if ( i->first.substr(0, 3) == "xpt" ) { - t = MadGraphOneCut::XPT; + t = MadGraphOneCut::Cut::XPT; p = i->first[3]; } if ( p ) { - MadGraphOneCut::PType pt = MadGraphOneCut::JET; + MadGraphOneCut::P pt = MadGraphOneCut::P::JET; switch ( p ) { - case 'j': pt = MadGraphOneCut::JET; break; - case 'b': pt = MadGraphOneCut::BOT; break; - case 'a': pt = MadGraphOneCut::PHO; break; - case 'l': pt = MadGraphOneCut::LEP; break; + case 'j': pt = MadGraphOneCut::P::JET; break; + case 'b': pt = MadGraphOneCut::P::BOT; break; + case 'a': pt = MadGraphOneCut::P::PHO; break; + case 'l': pt = MadGraphOneCut::P::LEP; break; } ones.push_back(new_ptr(MadGraphOneCut(t, pt, i->second))); onames.push_back(i->first); continue; } if ( i->first.substr(0, 2) == "dr" || i->first.substr(0, 2) == "mm" ) { - MadGraphTwoCut::CutType tt = MadGraphTwoCut::DELTAR; - if ( i->first.substr(0, 2) == "mm" ) tt = MadGraphTwoCut::INVMASS; - MadGraphTwoCut::PPType pp = MadGraphTwoCut::JETJET; - if ( i->first.substr(2, 2) == "jj" ) pp = MadGraphTwoCut::JETJET; - else if ( i->first.substr(2, 2) == "bb" ) pp = MadGraphTwoCut::BOTBOT; - else if ( i->first.substr(2, 2) == "aa" ) pp = MadGraphTwoCut::PHOPHO; - else if ( i->first.substr(2, 2) == "ll" ) pp = MadGraphTwoCut::LEPLEP; - else if ( i->first.substr(2, 2) == "bj" ) pp = MadGraphTwoCut::BOTJET; - else if ( i->first.substr(2, 2) == "aj" ) pp = MadGraphTwoCut::PHOJET; - else if ( i->first.substr(2, 2) == "jl" ) pp = MadGraphTwoCut::JETLEP; - else if ( i->first.substr(2, 2) == "ab" ) pp = MadGraphTwoCut::PHOBOT; - else if ( i->first.substr(2, 2) == "bl" ) pp = MadGraphTwoCut::BOTLEP; - else if ( i->first.substr(2, 2) == "al" ) pp = MadGraphTwoCut::PHOLEP; + MadGraphTwoCut::Cut tt = MadGraphTwoCut::Cut::DELTAR; + if ( i->first.substr(0, 2) == "mm" ) tt = MadGraphTwoCut::Cut::INVMASS; + MadGraphTwoCut::PP pp = MadGraphTwoCut::PP::JETJET; + if ( i->first.substr(2, 2) == "jj" ) pp = MadGraphTwoCut::PP::JETJET; + else if ( i->first.substr(2, 2) == "bb" ) pp = MadGraphTwoCut::PP::BOTBOT; + else if ( i->first.substr(2, 2) == "aa" ) pp = MadGraphTwoCut::PP::PHOPHO; + else if ( i->first.substr(2, 2) == "ll" ) pp = MadGraphTwoCut::PP::LEPLEP; + else if ( i->first.substr(2, 2) == "bj" ) pp = MadGraphTwoCut::PP::BOTJET; + else if ( i->first.substr(2, 2) == "aj" ) pp = MadGraphTwoCut::PP::PHOJET; + else if ( i->first.substr(2, 2) == "jl" ) pp = MadGraphTwoCut::PP::JETLEP; + else if ( i->first.substr(2, 2) == "ab" ) pp = MadGraphTwoCut::PP::PHOBOT; + else if ( i->first.substr(2, 2) == "bl" ) pp = MadGraphTwoCut::PP::BOTLEP; + else if ( i->first.substr(2, 2) == "al" ) pp = MadGraphTwoCut::PP::PHOLEP; twos.push_back(new_ptr(MadGraphTwoCut(tt, pp, i->second))); tnames.push_back(i->first); } @@ -470,46 +470,46 @@ vector<string> tnames; for ( map<string,double>::iterator i = cuts.begin(); i != cuts.end(); ++i ) { if ( i->second <= 0.0 ) continue; - MadGraphOneCut::CutType t = MadGraphOneCut::PT; + MadGraphOneCut::Cut t = MadGraphOneCut::Cut::PT; char p = 0; if ( i->first.substr(0, 2) == "pt" ) { - t = MadGraphOneCut::PT; + t = MadGraphOneCut::Cut::PT; p = i->first[2]; } else if ( i->first.substr(0, 3) == "eta" ) { - t = MadGraphOneCut::ETA; + t = MadGraphOneCut::Cut::ETA; p = i->first[3]; } else if ( i->first.substr(0, 3) == "xpt" ) { - t = MadGraphOneCut::XPT; + t = MadGraphOneCut::Cut::XPT; p = i->first[3]; } if ( p ) { - MadGraphOneCut::PType pt = MadGraphOneCut::JET; + MadGraphOneCut::P pt = MadGraphOneCut::P::JET; switch ( p ) { - case 'j': pt = MadGraphOneCut::JET; break; - case 'b': pt = MadGraphOneCut::BOT; break; - case 'a': pt = MadGraphOneCut::PHO; break; - case 'l': pt = MadGraphOneCut::LEP; break; + case 'j': pt = MadGraphOneCut::P::JET; break; + case 'b': pt = MadGraphOneCut::P::BOT; break; + case 'a': pt = MadGraphOneCut::P::PHO; break; + case 'l': pt = MadGraphOneCut::P::LEP; break; } ones.push_back(new_ptr(MadGraphOneCut(t, pt, i->second))); onames.push_back(i->first); continue; } if ( i->first.substr(0, 2) == "dr" || i->first.substr(0, 2) == "mm" ) { - MadGraphTwoCut::CutType tt = MadGraphTwoCut::DELTAR; - if ( i->first.substr(0, 2) == "mm" ) tt = MadGraphTwoCut::INVMASS; - MadGraphTwoCut::PPType pp = MadGraphTwoCut::JETJET; - if ( i->first.substr(2, 2) == "jj" ) pp = MadGraphTwoCut::JETJET; - else if ( i->first.substr(2, 2) == "bb" ) pp = MadGraphTwoCut::BOTBOT; - else if ( i->first.substr(2, 2) == "aa" ) pp = MadGraphTwoCut::PHOPHO; - else if ( i->first.substr(2, 2) == "ll" ) pp = MadGraphTwoCut::LEPLEP; - else if ( i->first.substr(2, 2) == "bj" ) pp = MadGraphTwoCut::BOTJET; - else if ( i->first.substr(2, 2) == "aj" ) pp = MadGraphTwoCut::PHOJET; - else if ( i->first.substr(2, 2) == "jl" ) pp = MadGraphTwoCut::JETLEP; - else if ( i->first.substr(2, 2) == "ab" ) pp = MadGraphTwoCut::PHOBOT; - else if ( i->first.substr(2, 2) == "bl" ) pp = MadGraphTwoCut::BOTLEP; - else if ( i->first.substr(2, 2) == "al" ) pp = MadGraphTwoCut::PHOLEP; + MadGraphTwoCut::Cut tt = MadGraphTwoCut::Cut::DELTAR; + if ( i->first.substr(0, 2) == "mm" ) tt = MadGraphTwoCut::Cut::INVMASS; + MadGraphTwoCut::PP pp = MadGraphTwoCut::PP::JETJET; + if ( i->first.substr(2, 2) == "jj" ) pp = MadGraphTwoCut::PP::JETJET; + else if ( i->first.substr(2, 2) == "bb" ) pp = MadGraphTwoCut::PP::BOTBOT; + else if ( i->first.substr(2, 2) == "aa" ) pp = MadGraphTwoCut::PP::PHOPHO; + else if ( i->first.substr(2, 2) == "ll" ) pp = MadGraphTwoCut::PP::LEPLEP; + else if ( i->first.substr(2, 2) == "bj" ) pp = MadGraphTwoCut::PP::BOTJET; + else if ( i->first.substr(2, 2) == "aj" ) pp = MadGraphTwoCut::PP::PHOJET; + else if ( i->first.substr(2, 2) == "jl" ) pp = MadGraphTwoCut::PP::JETLEP; + else if ( i->first.substr(2, 2) == "ab" ) pp = MadGraphTwoCut::PP::PHOBOT; + else if ( i->first.substr(2, 2) == "bl" ) pp = MadGraphTwoCut::PP::BOTLEP; + else if ( i->first.substr(2, 2) == "al" ) pp = MadGraphTwoCut::PP::PHOLEP; twos.push_back(new_ptr(MadGraphTwoCut(tt, pp, i->second))); tnames.push_back(i->first); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ThePEG-2.1.2/LesHouches/MadGraphTwoCut.cc new/ThePEG-2.1.3/LesHouches/MadGraphTwoCut.cc --- old/ThePEG-2.1.2/LesHouches/MadGraphTwoCut.cc 2017-05-03 16:38:26.000000000 +0200 +++ new/ThePEG-2.1.3/LesHouches/MadGraphTwoCut.cc 2018-03-02 17:41:02.000000000 +0100 @@ -33,7 +33,7 @@ } Energy2 MadGraphTwoCut::minSij(tcPDPtr pi, tcPDPtr pj) const { - if ( !checkType(pi, pj) || cutType != INVMASS ) return ZERO; + if ( !checkType(pi, pj) || cutType != Cut::INVMASS ) return ZERO; return sqr(theCut*GeV); } @@ -42,7 +42,7 @@ } double MadGraphTwoCut::minDeltaR(tcPDPtr pi, tcPDPtr pj) const { - if ( !checkType(pi, pj) || cutType != DELTAR ) return 0.0; + if ( !checkType(pi, pj) || cutType != Cut::DELTAR ) return 0.0; return theCut; } @@ -58,8 +58,8 @@ LorentzMomentum pi, LorentzMomentum pj, bool inci, bool incj) const { if ( inci || incj || !checkType(pitype, pjtype) ) return true; - if ( cutType == INVMASS ) return (pi + pj).m2() > sqr(theCut*GeV); - if ( cutType == DELTAR ) { + if ( cutType == Cut::INVMASS ) return (pi + pj).m2() > sqr(theCut*GeV); + if ( cutType == Cut::DELTAR ) { double deta2 = sqr(pi.eta() - pj.eta()); double dphi = abs(pi.phi() - pj.phi()); if ( dphi > Constants::pi ) dphi = 2.0*Constants::pi - dphi; @@ -68,66 +68,66 @@ return true; } -MadGraphTwoCut::PType MadGraphTwoCut::getType(tcPDPtr p) const { +MadGraphTwoCut::P MadGraphTwoCut::getType(tcPDPtr p) const { switch ( abs(p->id()) ) { case ParticleID::d: case ParticleID::u: case ParticleID::s: case ParticleID::c: case ParticleID::g: - return JET; + return P::JET; case ParticleID::b: - return BOT; + return P::BOT; case ParticleID::gamma: - return PHO; + return P::PHO; case ParticleID::eminus: case ParticleID::nu_e: case ParticleID::muminus: case ParticleID::nu_mu: case ParticleID::tauminus: case ParticleID::nu_tau: - return LEP; + return P::LEP; default: - return NOT; + return P::NOT; } } bool MadGraphTwoCut::checkType(tcPDPtr pi, tcPDPtr pj) const { switch ( pairType ) { - case JETJET: - return getType(pi) == JET && getType(pj) == JET; - case LEPLEP: - if ( getType(pi) != LEP || getType(pj) != LEP ) return false; - if ( cutType == DELTAR ) return true; - // Special treatment for INVMASS. + case PP::JETJET: + return getType(pi) == P::JET && getType(pj) == P::JET; + case PP::LEPLEP: + if ( getType(pi) != P::LEP || getType(pj) != P::LEP ) return false; + if ( cutType == Cut::DELTAR ) return true; + // Special treatment for Cut::INVMASS. if ( pi->id()*pj->id() >= 0 ) return false; // OK we have a lepton-anti-lepton pair. I it the same lepton if ( pi->id() == -pj->id() ) return true; // NO, well is it the same family? if ( max(abs(pi->id()), abs(pj->id()))%2 ) return false; return abs(pi->id() + pj->id()) == 1 ; - case PHOPHO: - return getType(pi) == PHO && getType(pj) == PHO; - case BOTBOT: - return getType(pi) == BOT && getType(pj) == BOT; - case BOTJET: - return ( getType(pi) == BOT && getType(pj) == JET ) || - ( getType(pi) == JET && getType(pj) == BOT ); - case PHOJET: - return ( getType(pi) == PHO && getType(pj) == JET ) || - ( getType(pi) == JET && getType(pj) == PHO ); - case JETLEP: - return ( getType(pi) == LEP && getType(pj) == JET ) || - ( getType(pi) == JET && getType(pj) == LEP ); - case PHOBOT: - return ( getType(pi) == PHO && getType(pj) == BOT ) || - ( getType(pi) == BOT && getType(pj) == PHO ); - case BOTLEP: - return ( getType(pi) == BOT && getType(pj) == LEP ) || - ( getType(pi) == LEP && getType(pj) == BOT ); - case PHOLEP: - return ( getType(pi) == PHO && getType(pj) == LEP ) || - ( getType(pi) == LEP && getType(pj) == PHO ); + case PP::PHOPHO: + return getType(pi) == P::PHO && getType(pj) == P::PHO; + case PP::BOTBOT: + return getType(pi) == P::BOT && getType(pj) == P::BOT; + case PP::BOTJET: + return ( getType(pi) == P::BOT && getType(pj) == P::JET ) || + ( getType(pi) == P::JET && getType(pj) == P::BOT ); + case PP::PHOJET: + return ( getType(pi) == P::PHO && getType(pj) == P::JET ) || + ( getType(pi) == P::JET && getType(pj) == P::PHO ); + case PP::JETLEP: + return ( getType(pi) == P::LEP && getType(pj) == P::JET ) || + ( getType(pi) == P::JET && getType(pj) == P::LEP ); + case PP::PHOBOT: + return ( getType(pi) == P::PHO && getType(pj) == P::BOT ) || + ( getType(pi) == P::BOT && getType(pj) == P::PHO ); + case PP::BOTLEP: + return ( getType(pi) == P::BOT && getType(pj) == P::LEP ) || + ( getType(pi) == P::LEP && getType(pj) == P::BOT ); + case PP::PHOLEP: + return ( getType(pi) == P::PHO && getType(pj) == P::LEP ) || + ( getType(pi) == P::LEP && getType(pj) == P::PHO ); } return false; } @@ -151,78 +151,78 @@ "about cuts. It is also possible to create objects by hand and use " "it as any other MadGraphTwoCut object."); - static Switch<MadGraphTwoCut,CutType> interfaceCutType + static Switch<MadGraphTwoCut,Cut> interfaceCutType ("CutType", "The kind of cut this object will do.", - &MadGraphTwoCut::cutType, DELTAR, true, false); + &MadGraphTwoCut::cutType, Cut::DELTAR, true, false); static SwitchOption interfaceCutTypeInvariantMass (interfaceCutType, "InvariantMass", "The minimum invariant mass of two particles.", - INVMASS); + Cut::INVMASS); static SwitchOption interfaceCutTypeDeltaR (interfaceCutType, "DeltaR", "The minimum pseudo-rapidity--azimuth-angle distance between two " "particles.", - DELTAR); + Cut::DELTAR); - static Switch<MadGraphTwoCut,PPType> interfacePairType + static Switch<MadGraphTwoCut,PP> interfacePairType ("PairType", "The type of particle pairs this cut is applied to.", - &MadGraphTwoCut::pairType, JETJET, true, false); + &MadGraphTwoCut::pairType, PP::JETJET, true, false); static SwitchOption interfacePairTypeJetJet (interfacePairType, "JetJet", "The cut applies only to pairs of coloured particles (jets).", - JETJET); + PP::JETJET); static SwitchOption interfacePairTypeLeptonLepton (interfacePairType, "LeptonLepton", "The cut applies only to lepton pairs (in case of invariant mass, " "lepton--anti-lepton pairs of same flavour).", - LEPLEP); + PP::LEPLEP); static SwitchOption interfacePairTypePhotonPhoton (interfacePairType, "PhotonPhoton", "The cut applies only to pairs photons.", - PHOPHO); + PP::PHOPHO); static SwitchOption interfacePairTypeBottomPairs (interfacePairType, "BottomPairs", "The cut applies only to pairs of bottom quarks.", - BOTBOT); + PP::BOTBOT); static SwitchOption interfacePairTypeJetBottom (interfacePairType, "JetBottom", "The cut applies only to bottom quarks paired with another coloured " "particle (jet).", - BOTJET); + PP::BOTJET); static SwitchOption interfacePairTypePhotonJet (interfacePairType, "PhotonJet", "The cut applies only to a photon paired with a coloured particle (jet).", - PHOJET); + PP::PHOJET); static SwitchOption interfacePairTypeJetLepton (interfacePairType, "JetLepton", "The cut applies only to a coloured particle (jet) paired with a lepton.", - JETLEP); + PP::JETLEP); static SwitchOption interfacePairTypePhotonBottom (interfacePairType, "PhotonBottom", "The cut applies only to a photon paired with a bottom quark.", - PHOBOT); + PP::PHOBOT); static SwitchOption interfacePairTypeBottomLepton (interfacePairType, "BottomLepton", "The cut applies only to bottom quarks paired with a lepton.", - BOTLEP); + PP::BOTLEP); static SwitchOption interfacePairTypePhotonLepton (interfacePairType, "PhotonLepton", "The cut applies only to a photon paired with a lepton.", - PHOLEP); + PP::PHOLEP); static Parameter<MadGraphTwoCut,double> interfaceCut ("Cut", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ThePEG-2.1.2/LesHouches/MadGraphTwoCut.h new/ThePEG-2.1.3/LesHouches/MadGraphTwoCut.h --- old/ThePEG-2.1.2/LesHouches/MadGraphTwoCut.h 2017-05-03 16:38:26.000000000 +0200 +++ new/ThePEG-2.1.3/LesHouches/MadGraphTwoCut.h 2018-03-02 17:41:02.000000000 +0100 @@ -32,7 +32,7 @@ /** * Enumerate the different kinds of cuts made by MadGraph. */ - enum CutType { + enum class Cut { INVMASS, /**< The minimum invariant mass of two particles. */ DELTAR /**< The minimum pseudo-rapidity--azimuth-angle distance between two particles. */ @@ -41,7 +41,7 @@ /** * Enumerate the types of particles the cut is made on. */ - enum PType { + enum class P { JET, /**< Coloured particles (jets). */ LEP, /**< Leptons. */ PHO, /**< Photons. */ @@ -52,7 +52,7 @@ /** * Enumerate the types of particles pairs the cut is made on. */ - enum PPType { + enum class PP { JETJET, /**< The cut applies only to pairs of coloured particles (jets). */ LEPLEP, /**< The cut applies only to lepton pairs (in case of INVMASS lepton--anti-lepton pairs of same flavour). */ @@ -77,7 +77,7 @@ * The default constructor. */ MadGraphTwoCut() - : cutType(DELTAR), pairType(JETJET), theCut(0.0) {} + : cutType(Cut::DELTAR), pairType(PP::JETJET), theCut(0.0) {} /** * The constructor used by the MadGraphReader. @@ -85,7 +85,7 @@ * @param p is the type of particles the cut is applied to. * @param c is the value of the cut (in units of GeV where applicable). */ - MadGraphTwoCut(CutType t, PPType p, double c) + MadGraphTwoCut(Cut t, PP p, double c) : cutType(t), pairType(p), theCut(c) {} //@} @@ -156,7 +156,7 @@ /** * Get the type of particle \a p. */ - PType getType(tcPDPtr p) const; + P getType(tcPDPtr p) const; public: @@ -206,12 +206,12 @@ /** * The type of this cut. */ - CutType cutType; + Cut cutType; /** * The type of particle pairs this cut applies to. */ - PPType pairType; + PP pairType; /** * The value of the cut to be applied. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ThePEG-2.1.2/LesHouches/Makefile.am new/ThePEG-2.1.3/LesHouches/Makefile.am --- old/ThePEG-2.1.2/LesHouches/Makefile.am 2017-11-01 11:56:49.000000000 +0100 +++ new/ThePEG-2.1.3/LesHouches/Makefile.am 2018-04-05 12:52:34.000000000 +0200 @@ -20,7 +20,7 @@ # Version info should be updated if any interface or persistent I/O # function is changed -LesHouches_la_LDFLAGS = $(AM_LDFLAGS) -module -version-info 25:2:0 +LesHouches_la_LDFLAGS = $(AM_LDFLAGS) -module $(LIBTOOLVERSIONINFO) LesHouches_la_SOURCES = $(mySOURCES) $(INCLUDEFILES) include $(top_srcdir)/Config/Makefile.aminclude diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ThePEG-2.1.2/Makefile.am new/ThePEG-2.1.3/Makefile.am --- old/ThePEG-2.1.2/Makefile.am 2017-11-01 12:00:10.000000000 +0100 +++ new/ThePEG-2.1.3/Makefile.am 2015-12-07 14:18:23.000000000 +0100 @@ -11,7 +11,7 @@ EXTRA_DIST = GUIDELINES -DISTCHECK_CONFIGURE_FLAGS = --without-lhapdf --with-gsl=$(GSLPATH) +## DISTCHECK_CONFIGURE_FLAGS = --enable-unitchecks --without-lhapdf --with-gsl=$(GSLPATH) ACLOCAL_AMFLAGS = -I m4 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ThePEG-2.1.2/NEWS new/ThePEG-2.1.3/NEWS --- old/ThePEG-2.1.2/NEWS 2017-11-01 11:56:49.000000000 +0100 +++ new/ThePEG-2.1.3/NEWS 2018-04-05 13:02:57.000000000 +0200 @@ -9,6 +9,11 @@ or at https:///herwig.hepforge.org/ +* ThePEG-2.1.3 release: 2018-04-05 + +** Use std::array<> where suitable + + * ThePEG-2.1.2 release: 2017-11-01 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ThePEG-2.1.2/Persistency/PersistentIStream.h new/ThePEG-2.1.3/Persistency/PersistentIStream.h --- old/ThePEG-2.1.2/Persistency/PersistentIStream.h 2017-05-03 16:38:25.000000000 +0200 +++ new/ThePEG-2.1.3/Persistency/PersistentIStream.h 2018-03-02 17:41:02.000000000 +0100 @@ -629,11 +629,19 @@ /** Input a vector of objects. */ template <typename T, typename A> inline PersistentIStream & operator>>(PersistentIStream & is, - vector<T,A> & v) { + vector<T,A> & v) { is.getContainer(v); return is; } +/** Input an array of objects. */ +template <typename T, size_t N> +inline PersistentIStream & operator>>(PersistentIStream & is, + array<T,N> & a) { + for ( size_t i = 0; i < N && is.good(); ++i ) + is >> a[i]; + return is; +} /** Input a deque of objects. */ template <typename T, typename A> @@ -643,7 +651,7 @@ return is; } -/** Input a deque of objects. */ +/** Input a valarray. */ template <typename T> inline PersistentIStream & operator>>(PersistentIStream & is, std::valarray<T> & v) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ThePEG-2.1.2/Persistency/PersistentOStream.h new/ThePEG-2.1.3/Persistency/PersistentOStream.h --- old/ThePEG-2.1.2/Persistency/PersistentOStream.h 2017-05-03 16:38:25.000000000 +0200 +++ new/ThePEG-2.1.3/Persistency/PersistentOStream.h 2018-03-02 17:41:02.000000000 +0100 @@ -628,12 +628,23 @@ */ template <typename T, typename A> inline PersistentOStream & operator<<(PersistentOStream & os, - const vector<T,A> & v) { + const vector<T,A> & v) { os.putContainer(v); return os; } /** + * Output an array of objects. + */ +template <typename T, size_t N> +inline PersistentOStream & operator<<(PersistentOStream & os, + const array<T,N> & a) { + for ( auto it = a.cbegin(); it != a.cend() && os.good() ; ++it ) + os << *it; + return os; +} + +/** * Output a deque of objects. */ template <typename T, typename A> @@ -644,7 +655,7 @@ } /** - * Output a valarray of objects. + * Output a valarray. */ template <typename T> inline PersistentOStream & operator<<(PersistentOStream & os, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ThePEG-2.1.2/Repository/StandardRandom.h new/ThePEG-2.1.3/Repository/StandardRandom.h --- old/ThePEG-2.1.2/Repository/StandardRandom.h 2017-05-03 16:38:25.000000000 +0200 +++ new/ThePEG-2.1.3/Repository/StandardRandom.h 2018-03-02 17:52:48.000000000 +0100 @@ -32,7 +32,7 @@ /** * Default constructor. */ - StandardRandom() : u(97) { if ( theSeed != 0 ) setSeed(theSeed); } + StandardRandom() : u() { if ( theSeed != 0 ) setSeed(theSeed); } //@} public: @@ -96,7 +96,7 @@ /** * The internal state vector. */ - vector<double> u; + array<double,97> u; /** * Parameter for the internal state. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ThePEG-2.1.2/Utilities/SimplePhaseSpace.h new/ThePEG-2.1.3/Utilities/SimplePhaseSpace.h --- old/ThePEG-2.1.2/Utilities/SimplePhaseSpace.h 2017-05-03 16:38:26.000000000 +0200 +++ new/ThePEG-2.1.3/Utilities/SimplePhaseSpace.h 2018-04-05 11:59:10.000000000 +0200 @@ -29,7 +29,7 @@ * properly. When needed, random numbers are generated with the * generator given by the static UseRandom class. */ -struct SimplePhaseSpace { +namespace SimplePhaseSpace { /** * Set two momenta in their center of mass system. Their total @@ -44,7 +44,7 @@ * larger than the given invariant mass (\f$\sqrt{s}\f$). */ template <typename PType> - static void CMS(Energy2 s, PType & p1, PType & p2); + void CMS(Energy2 s, PType & p1, PType & p2); /** * Set two momenta in their center of mass system. Their total @@ -62,7 +62,7 @@ * larger than the given invariant mass (\f$\sqrt{s}\f$). */ template <typename PType> - static void CMS(PType & p1, PType & p2, Energy2 s, + void CMS(PType & p1, PType & p2, Energy2 s, double cosTheta, double phi); /** @@ -82,7 +82,7 @@ * larger than the given invariant mass (\f$\sqrt{s}\f$). */ template <typename PType> - static void CMS(PType & p1, PType & p2, Energy2 s, Energy2 t, double phi, + void CMS(PType & p1, PType & p2, Energy2 s, Energy2 t, double phi, const PType & p0); /** @@ -97,7 +97,7 @@ * larger than the given invariant mass (\f$\sqrt{s}\f$). */ template <typename PType> - static void CMS(PType & p1, PType & p2, Energy2 s); + void CMS(PType & p1, PType & p2, Energy2 s); /** * Set two momenta in their center of mass system. Their total @@ -110,7 +110,7 @@ * larger than the given invariant mass (\f$\sqrt{s}\f$). */ template <typename PPairType> - static void CMS(const PPairType & p, Energy2 s) + void CMS(const PPairType & p, Energy2 s) { CMS(*p.first, *p.second, s); } @@ -133,7 +133,7 @@ * larger than the given invariant mass (\f$\sqrt{s}\f$). */ template <typename PType> - static void CMS(PType & p1, PType & p2, PType & p3, Energy2 s, + void CMS(PType & p1, PType & p2, PType & p3, Energy2 s, double x1, double x3); /** @@ -159,7 +159,7 @@ * larger than the given invariant mass (\f$\sqrt{s}\f$). */ template <typename PType> - static void CMS(PType & p1, PType & p2, PType & p3, Energy2 s, + void CMS(PType & p1, PType & p2, PType & p3, Energy2 s, double x1, double x3, double phii = 0.0, double theta = 0.0, double phi = 0.0); @@ -173,7 +173,7 @@ * @throw ImpossibleKinematics if the sum of the masses was * larger than the given invariant mass (\f$\sqrt{s}\f$). */ - static Energy getMagnitude(Energy2 s, Energy m1, Energy m2); + Energy getMagnitude(Energy2 s, Energy m1, Energy m2); /** * Return a three-vector given the absolute momentum, cos(theta) and @@ -182,7 +182,7 @@ * @param costheta the cosine of the polar angle. * @param phi the azimuth angle. */ - static Momentum3 polar3Vector(Energy p, double costheta, double phi) + inline Momentum3 polar3Vector(Energy p, double costheta, double phi) { return Momentum3(p*sqrt(1.0 - sqr(costheta))*sin(phi), p*sqrt(1.0 - sqr(costheta))*cos(phi), @@ -203,7 +203,7 @@ * @throw ImpossibleKinematics if the sum of the masses was * larger than the given invariant mass (\f$\sqrt{s}\f$). */ - static vector<LorentzMomentum> + vector<LorentzMomentum> CMSn(Energy m0, const vector<Energy> & m); /** @@ -219,9 +219,9 @@ * larger than the given invariant mass (\f$\sqrt{s}\f$). */ template <typename Container> - static void CMSn(Container & particles, Energy m0); + void CMSn(Container & particles, Energy m0); -}; +} } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ThePEG-2.1.2/Utilities/XSecStat.h new/ThePEG-2.1.3/Utilities/XSecStat.h --- old/ThePEG-2.1.2/Utilities/XSecStat.h 2017-05-03 16:38:26.000000000 +0200 +++ new/ThePEG-2.1.3/Utilities/XSecStat.h 2018-03-02 17:53:59.000000000 +0100 @@ -54,8 +54,8 @@ */ XSecStat() : theMaxXSec(ZERO), theAttempts(0), theAccepted(0), theVetoed(0), - theSumWeights (vector<double>(4,0.0)), - theSumWeights2(vector<double>(4,0.0)), theLastWeight(0.0) {} + theSumWeights (), + theSumWeights2(), theLastWeight(0.0) {} /** * Constructor taking the overestimated cross section, \a xsecmax, @@ -63,22 +63,13 @@ */ explicit XSecStat(CrossSection xsecmax) : theMaxXSec(xsecmax), theAttempts(0), theAccepted(0), theVetoed(0), - theSumWeights (vector<double>(4,0.0)), - theSumWeights2(vector<double>(4,0.0)), theLastWeight(0.0) {} + theSumWeights (), + theSumWeights2(), theLastWeight(0.0) {} /** * The assignment operator. */ - XSecStat & operator=(const XSecStat & x) { - theMaxXSec = x.theMaxXSec; - theAttempts = x.theAttempts; - theAccepted = x.theAccepted; - theVetoed = x.theVetoed; - theSumWeights = x.theSumWeights; - theSumWeights2 = x.theSumWeights2; - theLastWeight = x.theLastWeight; - return *this; - } + XSecStat & operator=(const XSecStat & x) = default; /** * Add the contents of another XSecStat. @@ -100,7 +91,7 @@ */ void reset() { theAttempts = theAccepted = theVetoed = 0; - theSumWeights = theSumWeights2 = vector<double>(4,0.0); + theSumWeights = theSumWeights2 = {}; theLastWeight = 0.0; } @@ -299,12 +290,12 @@ /** * The sum of the weights so far. */ - vector<double> theSumWeights; + array<double,4> theSumWeights; /** * The sum of the squared weights so far. */ - vector<double> theSumWeights2; + array<double,4> theSumWeights2; /** * The last selected weight, ignoring reweighting. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ThePEG-2.1.2/Vectors/SpinHalfLorentzRotation.cc new/ThePEG-2.1.3/Vectors/SpinHalfLorentzRotation.cc --- old/ThePEG-2.1.2/Vectors/SpinHalfLorentzRotation.cc 2017-05-03 16:38:26.000000000 +0200 +++ new/ThePEG-2.1.3/Vectors/SpinHalfLorentzRotation.cc 2018-04-05 12:13:22.000000000 +0200 @@ -17,25 +17,25 @@ // default constructor SpinHalfLorentzRotation::SpinHalfLorentzRotation() - : _mx(4,vector<Complex>(4)) { - unsigned ix; - for(ix=0;ix<4;++ix) { - _mx[ix][ix]=1.0; - } -} +: _mx{{ {{1., 0., 0., 0.}}, + {{0., 1., 0., 0.}}, + {{0., 0., 1., 0.}}, + {{0., 0., 0., 1.}} }} +{} // constructor giving the components of a Lorentz boost SpinHalfLorentzRotation:: SpinHalfLorentzRotation(double bx, double by, double bz, double gamma) - : _mx(4,vector<Complex>(4)) +: _mx{} { - setBoost (bx,by,bz,gamma); + setBoost(bx,by,bz,gamma); } // constructor with boost vector SpinHalfLorentzRotation:: -SpinHalfLorentzRotation (const Boost & b, double gamma) -: _mx(4,vector<Complex>(4)) { +SpinHalfLorentzRotation (const Boost & b, double gamma) +: _mx{} +{ setBoost(b,gamma); } @@ -45,35 +45,34 @@ Complex c2c1,Complex c2c2,Complex c2c3,Complex c2c4, Complex c3c1,Complex c3c2,Complex c3c3,Complex c3c4, Complex c4c1,Complex c4c2,Complex c4c3,Complex c4c4) -: _mx(4,vector<Complex>(4)) { - _mx[0][0]=c1c1;_mx[1][0]=c2c1;_mx[2][0]=c3c1;_mx[3][0]=c4c1; - _mx[0][1]=c1c2;_mx[1][1]=c2c2;_mx[2][1]=c3c2;_mx[3][1]=c4c2; - _mx[0][2]=c1c3;_mx[1][2]=c2c3;_mx[2][2]=c3c3;_mx[3][2]=c4c3; - _mx[0][3]=c1c4;_mx[1][3]=c2c4;_mx[2][3]=c3c4;_mx[3][3]=c4c4; -} +: _mx{{ {{c1c1, c1c2, c1c3, c1c4}}, + {{c2c1, c2c2, c2c3, c2c4}}, + {{c3c1, c3c2, c3c3, c3c4}}, + {{c4c1, c4c2, c4c3, c4c4}} }} +{} // check for identity matrix bool SpinHalfLorentzRotation::isIdentity() const { - return (_mx[0][0]==1.0&&_mx[0][1]==0.0&&_mx[0][2]==0.0&&_mx[0][3]==0.0&& - _mx[1][0]==0.0&&_mx[1][1]==1.0&&_mx[1][2]==0.0&&_mx[1][3]==0.0&& - _mx[2][0]==0.0&&_mx[2][1]==0.0&&_mx[2][2]==1.0&&_mx[2][3]==0.0&& - _mx[3][0]==0.0&&_mx[3][1]==0.0&&_mx[3][2]==0.0&&_mx[3][3]==1.0); + return _mx == MatrixT{{ {{1., 0., 0., 0.}}, + {{0., 1., 0., 0.}}, + {{0., 0., 1., 0.}}, + {{0., 0., 0., 1.}} }}; } // inverse ( inverse is gamma0 S dagger gamma 0) SpinHalfLorentzRotation SpinHalfLorentzRotation::inverse() const { return SpinHalfLorentzRotation - (conj(_mx[2][2]),conj(_mx[3][2]),conj(_mx[0][2]),conj(_mx[1][2]), + {conj(_mx[2][2]),conj(_mx[3][2]),conj(_mx[0][2]),conj(_mx[1][2]), conj(_mx[2][3]),conj(_mx[3][3]),conj(_mx[0][3]),conj(_mx[1][3]), conj(_mx[2][0]),conj(_mx[3][0]),conj(_mx[0][0]),conj(_mx[1][0]), - conj(_mx[2][1]),conj(_mx[3][1]),conj(_mx[0][1]),conj(_mx[1][1])); + conj(_mx[2][1]),conj(_mx[3][1]),conj(_mx[0][1]),conj(_mx[1][1])}; } // specify the components of a lorentz boost SpinHalfLorentzRotation & SpinHalfLorentzRotation:: setBoost (double bx, double by, double bz, double) { // work out beta and chi - static double eps=1e-10; + const double eps=1e-10; double beta(sqrt(bx*bx+by*by+bz*bz)); double chi(atanh(beta)), chc(cosh(0.5*chi)), shc(0.5); if ( beta > eps ) @@ -104,7 +103,7 @@ // specify a boost vector SpinHalfLorentzRotation & SpinHalfLorentzRotation::setBoost (const Boost & b,double) { // work out beta and chi - static double eps=1e-10; + const double eps=1e-10; double bx(b.x()),by(b.y()),bz(b.z()),beta(b.mag()),chi(atanh(beta)), chc(cosh(0.5*chi)),shc(0.5); if(beta>eps){shc=sinh(0.5*chi)/beta;} @@ -156,18 +155,15 @@ SpinHalfLorentzRotation & SpinHalfLorentzRotation::boostX(double bx) { double chi(atanh(bx)),shc(sinh(0.5*chi)),chc(cosh(0.5*chi)); - Complex temp[4][4]; - unsigned int ix,iy; - for(ix=0;ix<4;++ix) + MatrixT temp; + for(size_t ix=0;ix<4;++ix) { temp[0][ix]= chc*_mx[0][ix]-shc*_mx[1][ix]; temp[1][ix]= chc*_mx[1][ix]-shc*_mx[0][ix]; temp[2][ix]= chc*_mx[2][ix]+shc*_mx[3][ix]; temp[3][ix]= chc*_mx[3][ix]+shc*_mx[2][ix]; } - for(ix=0;ix<4;++ix) - for(iy=0;iy<4;++iy) - _mx[ix][iy]=temp[ix][iy]; + _mx = temp; return *this; } // Pure boost along the y-axis; equivalent to LT = BoostY(beta) * LT @@ -175,18 +171,15 @@ { double chi(atanh(by)),chc(cosh(0.5*chi)); Complex shc(0.,sinh(0.5*chi)); - Complex temp[4][4]; - unsigned int ix,iy; - for(ix=0;ix<4;++ix) + MatrixT temp; + for(size_t ix=0;ix<4;++ix) { temp[0][ix]= chc*_mx[0][ix]+shc*_mx[1][ix]; temp[1][ix]= chc*_mx[1][ix]-shc*_mx[0][ix]; temp[2][ix]= chc*_mx[2][ix]-shc*_mx[3][ix]; temp[3][ix]= chc*_mx[3][ix]+shc*_mx[2][ix]; } - for(ix=0;ix<4;++ix) - for(iy=0;iy<4;++iy) - _mx[ix][iy]=temp[ix][iy]; + _mx = temp; return *this; } @@ -194,18 +187,15 @@ SpinHalfLorentzRotation & SpinHalfLorentzRotation::boostZ(double bz) { double chi(atanh(bz)),shc(sinh(0.5*chi)),chc(cosh(0.5*chi)); - Complex temp[4][4]; - unsigned int ix,iy; - for(ix=0;ix<4;++ix) + MatrixT temp; + for(size_t ix=0;ix<4;++ix) { temp[0][ix]=(chc-shc)*_mx[0][ix]; temp[1][ix]=(chc+shc)*_mx[1][ix]; temp[2][ix]=(chc+shc)*_mx[2][ix]; temp[3][ix]=( chc-shc)*_mx[3][ix]; } - for(ix=0;ix<4;++ix) - for(iy=0;iy<4;++iy) - _mx[ix][iy]=temp[ix][iy]; + _mx = temp; return *this; } @@ -216,20 +206,18 @@ if(gamma<1.) gamma = 1./sqrt(1.-b2); double beta = sqrt(b2); // work out beta and chi - static double eps=1e-8; + const double eps=1e-8; double chc = sqrt(0.5*(1+gamma)); double shc = beta>eps ? sqrt(0.5*(gamma-1))/beta : 0.5+b2*(0.1875+0.12109375*b2); - Complex ii(0.,1.),nxminy(bx-ii*by),nxplny(bx+ii*by),temp[4][4]; - unsigned int ix,iy; - for(ix=0;ix<4;++ix) { + Complex ii(0.,1.),nxminy(bx-ii*by),nxplny(bx+ii*by); + MatrixT temp; + for(size_t ix=0;ix<4;++ix) { temp[0][ix]= (chc-shc*bz)*_mx[0][ix]-shc*nxminy *_mx[1][ix]; temp[1][ix]=-shc*nxplny *_mx[0][ix]+(chc+shc*bz)*_mx[1][ix]; temp[2][ix]= (chc+shc*bz)*_mx[2][ix]+shc*nxminy *_mx[3][ix]; temp[3][ix]= shc*nxplny *_mx[2][ix]+(chc-shc*bz)*_mx[3][ix]; } - for(ix=0;ix<4;++ix) - for(iy=0;iy<4;++iy) - _mx[ix][iy]=temp[ix][iy]; + _mx = temp; return *this; } @@ -240,21 +228,19 @@ if(gamma<1.) gamma = 1./sqrt(1.-b2); double beta = sqrt(b2); // work out chi - static double eps=1e-8; + const double eps=1e-8; double bx(b.x()),by(b.y()),bz(b.z()); double chc = sqrt(0.5*(1+gamma)); double shc = beta>eps ? sqrt(0.5*(gamma-1))/beta : 0.5+b2*(0.1875+0.12109375*b2); - Complex ii(0.,1.),nxminy(bx-ii*by),nxplny(bx+ii*by),temp[4][4]; - unsigned int ix,iy; - for(ix=0;ix<4;++ix) { + Complex ii(0.,1.),nxminy(bx-ii*by),nxplny(bx+ii*by); + MatrixT temp; + for(size_t ix=0;ix<4;++ix) { temp[0][ix]= (chc-shc*bz)*_mx[0][ix]-shc*nxminy *_mx[1][ix]; temp[1][ix]=-shc*nxplny *_mx[0][ix]+(chc+shc*bz)*_mx[1][ix]; temp[2][ix]= (chc+shc*bz)*_mx[2][ix]+shc*nxminy *_mx[3][ix]; temp[3][ix]= shc*nxplny *_mx[2][ix]+(chc-shc*bz)*_mx[3][ix]; } - for(ix=0;ix<4;++ix) - for(iy=0;iy<4;++iy) - _mx[ix][iy]=temp[ix][iy]; + _mx = temp; return *this; } @@ -338,92 +324,76 @@ // product SpinHalfLorentzRotation SpinHalfLorentzRotation::operator * (const SpinHalfLorentzRotation & lt) const { - Complex output[4][4]; - unsigned int ix,iy,iz; - for(ix=0;ix<4;++ix) { - for(iy=0;iy<4;++iy) { - output[ix][iy]=0.; - for(iz=0;iz<4;++iz){output[ix][iy]+=_mx[ix][iz]*lt._mx[iz][iy];} - } - } - return SpinHalfLorentzRotation(output[0][0],output[0][1],output[0][2],output[0][3], - output[1][0],output[1][1],output[1][2],output[1][3], - output[2][0],output[2][1],output[2][2],output[2][3], - output[3][0],output[3][1],output[3][2],output[3][3]); + SpinHalfLorentzRotation temp{_mx}; + temp *= lt; + return temp; } // multiply and assign - SpinHalfLorentzRotation & +SpinHalfLorentzRotation & SpinHalfLorentzRotation::operator *= (const SpinHalfLorentzRotation & lt) { - Complex output[4][4]; - unsigned int ix,iy,iz; - for(ix=0;ix<4;++ix) { - for(iy=0;iy<4;++iy) { - output[ix][iy]=0.; - for(iz=0;iz<4;++iz){output[ix][iy]+=_mx[ix][iz]*lt._mx[iz][iy];} - } + MatrixT temp; + for(size_t ix=0;ix<4;++ix) { + for(size_t iy=0;iy<4;++iy) { + temp[ix][iy] = 0.0; + for(size_t iz=0;iz<4;++iz) + temp[ix][iy] += _mx[ix][iz] * lt._mx[iz][iy]; + } } - for(ix=0;ix<4;++ix){for(iy=0;iy<4;++iy){_mx[ix][iy]=output[ix][iy];}} + _mx = temp; return *this; } // transform method - SpinHalfLorentzRotation & +SpinHalfLorentzRotation & SpinHalfLorentzRotation::transform(const SpinHalfLorentzRotation & lt) { - Complex output[4][4]; - unsigned int ix,iy,iz; - for(ix=0;ix<4;++ix) { - for(iy=0;iy<4;++iy) { - output[ix][iy]=0.; - for(iz=0;iz<4;++iz){output[ix][iy]+=lt._mx[ix][iz]*_mx[iz][iy];} - } - } - for(ix=0;ix<4;++ix){for(iy=0;iy<4;++iy){_mx[ix][iy]=output[ix][iy];}} + SpinHalfLorentzRotation temp{lt._mx}; + temp *= (*this); + _mx = temp._mx; return *this; } // Rotation around the x-axis; equivalent to LT = RotationX(delta) * LT SpinHalfLorentzRotation & SpinHalfLorentzRotation::rotateX(double phi) { double cp(cos(0.5*phi)); - Complex isp(0.,sin(0.5*phi)),temp[4][4]; - unsigned int ix,iy; - for(ix=0;ix<4;++ix) { + Complex isp(0.,sin(0.5*phi)); + MatrixT temp; + for(size_t ix=0;ix<4;++ix) { temp[0][ix]= cp*_mx[0][ix]-isp*_mx[1][ix]; temp[1][ix]=-isp*_mx[0][ix]+ cp*_mx[1][ix]; temp[2][ix]= cp*_mx[2][ix]-isp*_mx[3][ix]; temp[3][ix]=-isp*_mx[2][ix]+ cp*_mx[3][ix]; } - for(ix=0;ix<4;++ix){for(iy=0;iy<4;++iy){_mx[ix][iy]=temp[ix][iy];}} + _mx = temp; return *this; } // Rotation around the y-axis; equivalent to LT = RotationY(delta) * LT SpinHalfLorentzRotation & SpinHalfLorentzRotation::rotateY(double phi) { double cp(cos(0.5*phi)),sp(sin(0.5*phi)); - Complex temp[4][4]; - unsigned int ix,iy; - for(ix=0;ix<4;++ix) { + MatrixT temp; + for(size_t ix=0;ix<4;++ix) { temp[0][ix]= cp*_mx[0][ix]-sp*_mx[1][ix]; temp[1][ix]= sp*_mx[0][ix]+cp*_mx[1][ix]; temp[2][ix]= cp*_mx[2][ix]-sp*_mx[3][ix]; temp[3][ix]= sp*_mx[2][ix]+cp*_mx[3][ix]; } - for(ix=0;ix<4;++ix){for(iy=0;iy<4;++iy){_mx[ix][iy]=temp[ix][iy];}} + _mx = temp; return *this; } // Rotation around the z-axis; equivalent to LT = RotationZ(delta) * LT SpinHalfLorentzRotation & SpinHalfLorentzRotation::rotateZ(double phi) { double cp(cos(0.5*phi)); - Complex isp(0.,sin(0.5*phi)),temp[4][4]; - unsigned int ix,iy; - for(ix=0;ix<4;++ix) { + Complex isp(0.,sin(0.5*phi)); + MatrixT temp; + for(size_t ix=0;ix<4;++ix) { temp[0][ix]= (cp-isp)*_mx[0][ix]; temp[1][ix]= (cp+isp)*_mx[1][ix]; temp[2][ix]= (cp-isp)*_mx[2][ix]; temp[3][ix]= (cp+isp)*_mx[3][ix]; } - for(ix=0;ix<4;++ix){for(iy=0;iy<4;++iy){_mx[ix][iy]=temp[ix][iy];}} + _mx = temp; return *this; } @@ -432,14 +402,14 @@ SpinHalfLorentzRotation::rotate(double phi, const Axis & axis) { double cp(cos(0.5*phi)),amag(axis.mag()), ax(axis.x()/amag),ay(axis.y()/amag),az(axis.z()/amag); - Complex ii(0.,1.),nxminy(ax-ii*ay),nxplny(ax+ii*ay),isp(0.,sin(0.5*phi)),temp[4][4]; - unsigned int ix,iy; - for(ix=0;ix<4;++ix) { + Complex ii(0.,1.),nxminy(ax-ii*ay),nxplny(ax+ii*ay),isp(0.,sin(0.5*phi)); + MatrixT temp; + for(size_t ix=0;ix<4;++ix) { temp[0][ix]= (cp-isp*az)*_mx[0][ix]-isp*nxminy *_mx[1][ix]; temp[1][ix]=-isp*nxplny *_mx[0][ix]+(cp+isp*az)*_mx[1][ix]; temp[2][ix]= (cp-isp*az)*_mx[2][ix]-isp*nxminy *_mx[3][ix]; temp[3][ix]=-isp*nxplny *_mx[2][ix]+(cp+isp*az)*_mx[3][ix]; } - for(ix=0;ix<4;++ix){for(iy=0;iy<4;++iy){_mx[ix][iy]=temp[ix][iy];}} + _mx = temp; return *this; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ThePEG-2.1.2/Vectors/SpinHalfLorentzRotation.h new/ThePEG-2.1.3/Vectors/SpinHalfLorentzRotation.h --- old/ThePEG-2.1.2/Vectors/SpinHalfLorentzRotation.h 2017-05-03 16:38:26.000000000 +0200 +++ new/ThePEG-2.1.3/Vectors/SpinHalfLorentzRotation.h 2018-03-02 17:41:03.000000000 +0100 @@ -323,11 +323,14 @@ private: + using MatrixT = array<array<Complex,4>,4>; + + SpinHalfLorentzRotation(const MatrixT & m) : _mx(m) {} /** * The members of the transformation matrix. */ - vector<vector<Complex> > _mx; + MatrixT _mx; }; /** diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ThePEG-2.1.2/Vectors/SpinOneLorentzRotation.cc new/ThePEG-2.1.3/Vectors/SpinOneLorentzRotation.cc --- old/ThePEG-2.1.2/Vectors/SpinOneLorentzRotation.cc 2017-05-03 16:38:26.000000000 +0200 +++ new/ThePEG-2.1.3/Vectors/SpinOneLorentzRotation.cc 2018-03-02 17:41:03.000000000 +0100 @@ -19,7 +19,7 @@ double yx, double yy, double yz, double yt, double zx, double zy, double zz, double zt, double tx, double ty, double tz, double tt) - : matrix_(16) { +{ xx_() = xx; xy_() = xy; xz_() = xz; xt_() = xt; yx_() = yx; yy_() = yy; yz_() = yz; yt_() = yt; zx_() = zx; zy_() = zy; zz_() = zz; zt_() = zt; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ThePEG-2.1.2/Vectors/SpinOneLorentzRotation.h new/ThePEG-2.1.3/Vectors/SpinOneLorentzRotation.h --- old/ThePEG-2.1.2/Vectors/SpinOneLorentzRotation.h 2017-05-03 16:38:26.000000000 +0200 +++ new/ThePEG-2.1.3/Vectors/SpinOneLorentzRotation.h 2018-03-02 18:03:07.000000000 +0100 @@ -30,7 +30,7 @@ /** * Default constructor. Gives a unit matrix. */ - SpinOneLorentzRotation() : matrix_(16) { + SpinOneLorentzRotation() { xx_() = yy_() = zz_() = tt_() = 1.0; } @@ -42,7 +42,7 @@ * @param gamma The \f$\gamma\f$ factor (optional) */ SpinOneLorentzRotation (double bx, double by, double bz, double gamma=-1.) - : matrix_(16) { + { setBoost(bx,by,bz,gamma); } @@ -52,7 +52,7 @@ * @param gamma The \f$\gamma\f$ factor (optional) */ explicit SpinOneLorentzRotation (const Boost & b, double gamma=-1.) - : matrix_(16) { + { setBoost(b.x(), b.y(), b.z(),gamma); } //@} @@ -344,7 +344,7 @@ template<typename Value> friend class Helicity::LorentzRSSpinorBar; /// Matrix components, order: \f$(xx, xy, \ldots, tz, tt)\f$. - vector<double> matrix_; + array<double,16> matrix_ = {}; /// Constructor from doubles. SpinOneLorentzRotation (double xx, double xy, double xz, double xt, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ThePEG-2.1.2/configure.ac new/ThePEG-2.1.3/configure.ac --- old/ThePEG-2.1.2/configure.ac 2017-11-01 11:56:49.000000000 +0100 +++ new/ThePEG-2.1.3/configure.ac 2018-04-05 13:03:13.000000000 +0200 @@ -1,11 +1,11 @@ dnl Process this file with autoconf to produce a configure script. AC_PREREQ([2.59]) -AC_INIT([ThePEG],[2.1.2],[http://www.thep.lu.se/ThePEG/],[ThePEG]) +AC_INIT([ThePEG],[2.1.3],[http://www.thep.lu.se/ThePEG/],[ThePEG]) AC_CONFIG_AUX_DIR([Config]) AC_CONFIG_MACRO_DIR([m4]) -THEPEG_LIBTOOL_VERSION_INFO(25,0,0) +THEPEG_LIBTOOL_VERSION_INFO(27,0,0) AC_CONFIG_SRCDIR([EventRecord/SubProcess.h]) AC_CONFIG_HEADERS([Config/config.h]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ThePEG-2.1.2/lib/Makefile.am new/ThePEG-2.1.3/lib/Makefile.am --- old/ThePEG-2.1.2/lib/Makefile.am 2017-11-01 11:56:49.000000000 +0100 +++ new/ThePEG-2.1.3/lib/Makefile.am 2018-04-05 12:59:41.000000000 +0200 @@ -16,7 +16,7 @@ # Version info should be updated if any interface or persistent I/O # function is changed -libThePEG_la_LDFLAGS = $(AM_LDFLAGS) -version-info 26:1:1 -export-dynamic +libThePEG_la_LDFLAGS = $(AM_LDFLAGS) $(LIBTOOLVERSIONINFO) -export-dynamic libThePEG_la_SOURCES = libThePEG_la_LIBADD = \ $(top_builddir)/Utilities/libThePEGUtilities.la \ Binary files old/ThePEG-2.1.2/m4/._libtool.m4 and new/ThePEG-2.1.3/m4/._libtool.m4 differ Binary files old/ThePEG-2.1.2/m4/._ltoptions.m4 and new/ThePEG-2.1.3/m4/._ltoptions.m4 differ Binary files old/ThePEG-2.1.2/m4/._ltsugar.m4 and new/ThePEG-2.1.3/m4/._ltsugar.m4 differ Binary files old/ThePEG-2.1.2/m4/._lt~obsolete.m4 and new/ThePEG-2.1.3/m4/._lt~obsolete.m4 differ