Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package rk for openSUSE:Factory checked in at 2023-10-19 22:49:06 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/rk (Old) and /work/SRC/openSUSE:Factory/.rk.new.1945 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rk" Thu Oct 19 22:49:06 2023 rev:6 rq:1118760 version:1.8 Changes: -------- --- /work/SRC/openSUSE:Factory/rk/rk.changes 2021-06-07 22:44:55.832630025 +0200 +++ /work/SRC/openSUSE:Factory/.rk.new.1945/rk.changes 2023-10-19 22:51:38.383833629 +0200 @@ -1,0 +2,11 @@ +Fri Oct 13 03:09:12 UTC 2023 - Atri Bhattacharya <badshah...@gmail.com> + +- Update to version 1.8: + * Added a constructor from two P4 objects to the rk::Boost + class. + * Added a few "const" qualifiers to various arguments as + appropriate. +- Specfile cleanups with spec-cleaner. +- Use %license for LICENSE file. + +------------------------------------------------------------------- Old: ---- rk-1.7.tar.gz New: ---- rk-1.8.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ rk.spec ++++++ --- /var/tmp/diff_new_pack.5s9zZr/_old 2023-10-19 22:51:38.871851328 +0200 +++ /var/tmp/diff_new_pack.5s9zZr/_new 2023-10-19 22:51:38.875851474 +0200 @@ -1,7 +1,7 @@ # # spec file for package rk # -# Copyright (c) 2021 SUSE LLC +# Copyright (c) 2023 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,9 +17,8 @@ %define soname lib%{name}0 - Name: rk -Version: 1.7 +Version: 1.8 Release: 0 Summary: A C++ library for relativistic kinematics License: X11 @@ -27,7 +26,7 @@ URL: https://rk.hepforge.org/ Source: http://www.hepforge.org/archive/%{name}/%{name}-%{version}.tar.gz BuildRequires: gcc-c++ -BuildRequires: pkg-config +BuildRequires: pkgconfig %description %{name} provides a C++ double precision implementation of several @@ -76,13 +75,14 @@ %install %make_install -rm %{buildroot}/%{_libdir}/*.la +find %{buildroot} -type f -name "*.la" -delete -print %post -n %{soname} -p /sbin/ldconfig %postun -n %{soname} -p /sbin/ldconfig %files devel -%doc AUTHORS LICENSE NEWS +%license LICENSE +%doc AUTHORS NEWS %{_includedir}/%{name}/ %{_libdir}/*.so %{_libdir}/pkgconfig/%{name}.pc ++++++ rk-1.7.tar.gz -> rk-1.8.tar.gz ++++++ ++++ 17277 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/rk-1.7/LICENSE new/rk-1.8/LICENSE --- old/rk-1.7/LICENSE 2013-02-28 12:23:01.000000000 +0100 +++ new/rk-1.8/LICENSE 2023-05-26 03:42:40.000000000 +0200 @@ -1,4 +1,4 @@ -Copyright (c) 2010 Igor Volobouev +Copyright (c) 2010-2023 Igor Volobouev Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 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/rk-1.7/NEWS new/rk-1.8/NEWS --- old/rk-1.7/NEWS 2016-11-15 05:38:58.000000000 +0100 +++ new/rk-1.8/NEWS 2023-05-26 03:45:12.000000000 +0200 @@ -1,3 +1,10 @@ +Version 1.8 - May 25 2023, by I. Volobouev + +* Added a constructor from two P4 objects to the rk::Boost class. + +* Added a few "const" qualifiers to various arguments as appropriate. + + Version 1.7 - November 15 2016, by I. Volobouev * Added methods "beta", "gamma", "betaGamma", and "velocity" to the 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/rk-1.7/compile new/rk-1.8/compile --- old/rk-1.7/compile 2016-11-15 16:43:55.000000000 +0100 +++ new/rk-1.8/compile 2023-05-26 03:45:48.000000000 +0200 @@ -1,9 +1,9 @@ #! /bin/sh # Wrapper for compilers which do not understand '-c -o'. -scriptversion=2012-10-14.11; # UTC +scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Copyright (C) 1999-2021 Free Software Foundation, Inc. # Written by Tom Tromey <tro...@cygnus.com>. # # This program is free software; you can redistribute it and/or modify @@ -17,7 +17,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. +# along with this program. If not, see <https://www.gnu.org/licenses/>. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -53,7 +53,7 @@ MINGW*) file_conv=mingw ;; - CYGWIN*) + CYGWIN* | MSYS*) file_conv=cygwin ;; *) @@ -67,7 +67,7 @@ mingw/*) file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` ;; - cygwin/*) + cygwin/* | msys/*) file=`cygpath -m "$file" || echo "$file"` ;; wine/*) @@ -255,7 +255,8 @@ echo "compile $scriptversion" exit $? ;; - cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) + cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \ + icl | *[/\\]icl | icl.exe | *[/\\]icl.exe ) func_cl_wrapper "$@" # Doesn't return... ;; esac @@ -339,9 +340,9 @@ # Local Variables: # mode: shell-script # sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: 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/rk-1.7/configure.ac new/rk-1.8/configure.ac --- old/rk-1.7/configure.ac 2016-11-15 04:53:45.000000000 +0100 +++ new/rk-1.8/configure.ac 2023-05-26 03:41:14.000000000 +0200 @@ -1,6 +1,6 @@ -AC_PREREQ([2.59]) +AC_PREREQ([2.71]) -AC_INIT([rk], [1.7]) +AC_INIT([rk],[1.8]) AM_INIT_AUTOMAKE([foreign]) @@ -14,6 +14,7 @@ AC_PREFIX_DEFAULT([/usr/local]) dnl enable libtool -AC_PROG_LIBTOOL +LT_INIT -AC_OUTPUT([Makefile rk/Makefile rk.pc]) +AC_CONFIG_FILES([Makefile rk/Makefile rk.pc]) +AC_OUTPUT 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/rk-1.7/m4/libtool.m4 new/rk-1.8/m4/libtool.m4 --- old/rk-1.7/m4/libtool.m4 2016-11-15 16:43:54.000000000 +0100 +++ new/rk-1.8/m4/libtool.m4 2023-05-26 03:45:46.000000000 +0200 @@ -728,7 +728,6 @@ cat <<_LT_EOF >> "$cfgfile" #! $SHELL # Generated automatically by $as_me ($PACKAGE) $VERSION -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # Provide generalized library-building support services. @@ -1042,8 +1041,8 @@ _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD - echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD - $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD + echo "$AR cr libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD + $AR cr libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD cat > conftest.c << _LT_EOF @@ -1072,11 +1071,11 @@ # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in - 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) + 10.0,*86*-darwin8*|10.0,*-darwin[[912]]*) _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; 10.[[012]][[,.]]*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; - 10.*) + 10.*|11.*) _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; esac ;; @@ -1493,7 +1492,7 @@ m4_defun([_LT_PROG_AR], [AC_CHECK_TOOLS(AR, [ar], false) : ${AR=ar} -: ${AR_FLAGS=cru} +: ${AR_FLAGS=cr} _LT_DECL([], [AR], [1], [The archiver]) _LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) @@ -4064,7 +4063,8 @@ if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. nlist=conftest.nm - if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then + $ECHO "$as_me:$LINENO: $NM conftest.$ac_objext | $lt_cv_sys_global_symbol_pipe > $nlist" >&AS_MESSAGE_LOG_FD + if eval "$NM" conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist 2>&AS_MESSAGE_LOG_FD && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" @@ -4704,6 +4704,12 @@ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; + # flang / f18. f95 an alias for gfortran or flang on Debian + flang* | f18* | f95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) @@ -6439,7 +6445,7 @@ # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' else GXX=no @@ -6814,7 +6820,7 @@ # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP " \-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test yes = "$GXX"; then @@ -6879,7 +6885,7 @@ # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP " \-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test yes = "$GXX"; then @@ -7218,7 +7224,7 @@ # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' else # FIXME: insert proper C++ library support @@ -7302,7 +7308,7 @@ # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' else # g++ 2.7 appears to require '-G' NOT '-shared' on this # platform. @@ -7313,7 +7319,7 @@ # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. - output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir' 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/rk-1.7/missing new/rk-1.8/missing --- old/rk-1.7/missing 2016-11-15 16:43:55.000000000 +0100 +++ new/rk-1.8/missing 2023-05-26 03:45:48.000000000 +0200 @@ -1,9 +1,9 @@ #! /bin/sh # Common wrapper for a few potentially missing GNU programs. -scriptversion=2013-10-28.13; # UTC +scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Copyright (C) 1996-2021 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard <pin...@iro.umontreal.ca>, 1996. # This program is free software; you can redistribute it and/or modify @@ -17,7 +17,7 @@ # GNU General Public License for more details. # You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. +# along with this program. If not, see <https://www.gnu.org/licenses/>. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -101,9 +101,9 @@ exit $st fi -perl_URL=http://www.perl.org/ -flex_URL=http://flex.sourceforge.net/ -gnu_software_URL=http://www.gnu.org/software +perl_URL=https://www.perl.org/ +flex_URL=https://github.com/westes/flex +gnu_software_URL=https://www.gnu.org/software program_details () { @@ -207,9 +207,9 @@ exit $st # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: 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/rk-1.7/rk/Makefile.am new/rk-1.8/rk/Makefile.am --- old/rk-1.7/rk/Makefile.am 2013-02-28 12:27:07.000000000 +0100 +++ new/rk-1.8/rk/Makefile.am 2022-07-20 16:06:19.000000000 +0200 @@ -4,7 +4,7 @@ librk_la_SOURCES = rk.cc geom3.cc -INCLUDES = -I@top_srcdir@/ +AM_CPPFLAGS = -I@top_srcdir@/ includedir = ${prefix}/include/rk 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/rk-1.7/rk/geom3_Point3.icc new/rk-1.8/rk/geom3_Point3.icc --- old/rk-1.7/rk/geom3_Point3.icc 2013-02-28 12:27:07.000000000 +0100 +++ new/rk-1.8/rk/geom3_Point3.icc 2023-05-26 03:33:38.000000000 +0200 @@ -21,7 +21,7 @@ { } - inline Point3::Point3(double x, double y, double z) + inline Point3::Point3(const double x, const double y, const double z) : x_(x), y_(y), z_(z) 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/rk-1.7/rk/geom3_UnitVector3.icc new/rk-1.8/rk/geom3_UnitVector3.icc --- old/rk-1.7/rk/geom3_UnitVector3.icc 2013-02-28 12:27:07.000000000 +0100 +++ new/rk-1.8/rk/geom3_UnitVector3.icc 2023-05-26 03:35:18.000000000 +0200 @@ -31,7 +31,7 @@ } } - inline UnitVector3::UnitVector3(double theta, double phi) + inline UnitVector3::UnitVector3(const double theta, const double phi) : z_(cos(theta)) { assert(theta >= 0.0 && theta <= M_PI); @@ -40,13 +40,13 @@ y_ = s*sin(phi); } - inline UnitVector3::UnitVector3(double phi) + inline UnitVector3::UnitVector3(const double phi) : x_(cos(phi)), y_(sin(phi)), z_(0.0) { } - inline UnitVector3::UnitVector3(double x, double y, double z, - bool mustNormalize) + inline UnitVector3::UnitVector3(const double x, const double y, + const double z, const bool mustNormalize) : x_(x), y_(y), z_(z) { if (mustNormalize) @@ -57,7 +57,8 @@ // as sqrt(x*x + y*y + z*z). This constructor can be used to save // a little bit of time if the length of the vector is known and // we just need its direction. - inline UnitVector3::UnitVector3(double x, double y, double z, double norm) + inline UnitVector3::UnitVector3(const double x, const double y, + const double z, const double norm) : x_(x), y_(y), z_(z) { if (norm > 0.0) 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/rk-1.7/rk/geom3_Vector3.icc new/rk-1.8/rk/geom3_Vector3.icc --- old/rk-1.7/rk/geom3_Vector3.icc 2013-02-28 12:27:07.000000000 +0100 +++ new/rk-1.8/rk/geom3_Vector3.icc 2023-05-26 03:36:32.000000000 +0200 @@ -26,7 +26,7 @@ { } - inline Vector3::Vector3(double x, double y, double z) + inline Vector3::Vector3(const double x, const double y, const double z) : x_(x), y_(y), z_(z), @@ -42,7 +42,7 @@ { } - inline Vector3::Vector3(double length, const UnitVector3& direction) + inline Vector3::Vector3(const double length, const UnitVector3& direction) : l_(fabs(length)) { x_ = length*direction.x_; 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/rk-1.7/rk/rk.cc new/rk-1.8/rk/rk.cc --- old/rk-1.7/rk/rk.cc 2016-11-15 16:21:55.000000000 +0100 +++ new/rk-1.8/rk/rk.cc 2023-05-26 09:29:51.000000000 +0200 @@ -32,6 +32,45 @@ return *this; } + Boost::Boost(const P4& p1, const P4& p2) + : dir_(geom3::UnitVector3::xAxis()), + rapidity_(0.0), + c_(0.0), + s_(0.0) + { + assert(p1.m() == p2.m()); + const geom3::Vector3& p1mom = p1.momentum(); + const geom3::Vector3& pdelta = p2.momentum() - p1mom; + const double pdMag = pdelta.length(); + if (pdMag > 0.0) + { + dir_ = pdelta.direction(); + const double ppar = dir_.dot(p1mom); + const double e1 = p1.e(); + const double denom = e1 - ppar; + assert(denom > 0.0); + const double tmp = pdMag + ppar; + double num = 0.0; + bool numFound = false; + if (tmp > 0.0) + { + const double alpha = denom*(e1 + ppar)/tmp/tmp; + if (alpha < 1.e-4) + { + num = tmp*0.5*alpha*(1.0 + alpha*(-0.25 + alpha*(0.125 - 0.078125*alpha))); + numFound = true; + } + } + if (!numFound) + num = sqrt(pdMag*(pdMag + 2.0*ppar) + e1*e1) - tmp; + assert(num > 0.0); + const double r = log(num/denom); + rapidity_ = r; + c_ = fabs(r) < 1.e-4 ? r*r*(12.0 + r*r)/24.0 : cosh(r) - 1.0; + s_ = sinh(r); + } + } + LT::Biquaternion::Biquaternion(const Boost& b) { const double halfAngleCh = sqrt(1.0 + b.c_/2.0); 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/rk-1.7/rk/rk.hh new/rk-1.8/rk/rk.hh --- old/rk-1.7/rk/rk.hh 2016-11-15 07:04:15.000000000 +0100 +++ new/rk-1.8/rk/rk.hh 2023-05-26 04:00:10.000000000 +0200 @@ -193,6 +193,11 @@ explicit Boost(const geom3::Vector3& velocity_in_units_of_c); Boost(const geom3::UnitVector3& direction, double rapidity); + // The following constructor creates a boost which, + // applied to time-like or light-like 4-vector p1, gives p2. + // Masses of p1 and p2 must be equal. + Boost(const rk::P4& p1, const rk::P4& p2); + // Basic accessors const geom3::UnitVector3& direction() const; double rapidity() const; 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/rk-1.7/rk/rk_Boost.icc new/rk-1.8/rk/rk_Boost.icc --- old/rk-1.7/rk/rk_Boost.icc 2016-11-15 05:25:05.000000000 +0100 +++ new/rk-1.8/rk/rk_Boost.icc 2023-05-26 09:27:05.000000000 +0200 @@ -7,7 +7,7 @@ { } - inline Boost::Boost(const geom3::UnitVector3& direction, double r) + inline Boost::Boost(const geom3::UnitVector3& direction, const double r) : dir_(direction), rapidity_(r), c_(fabs(r) < 1.e-4 ? r*r*(12.0 + r*r)/24.0 : cosh(r) - 1.0), @@ -16,7 +16,7 @@ } inline Boost::Boost(const geom3::UnitVector3& direction, - double ch, double sh) + const double ch, const double sh) : dir_(direction), rapidity_(0.0), c_(ch - 1.0),