From 8c8c1cf2c1929bfd6533cb117e8e59f5e8f6d0f86ddd4919c35b1b6b204f5d2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20Br=C3=BCns?= Date: Sat, 4 Feb 2023 21:54:15 +0000 Subject: [PATCH] Accepting request 1063158 from home:StefanBruens:branches:science MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Update to version 2.1.0. * New Features: + Support for CUDA based dense solvers - DENSE_QR, DENSE_NORMAL_CHOLESKY & DENSE_SCHUR (Joydeep Biswas, Sameer Agarwal) + Manifold is the new LocalParameterization. Version 2.1 is the transition release where users can use both LocalParameterization as well as Manifold objects as they transition from the former to the latter. LocalParameterization will be removed in version 2.2. There should be no numerical change to the results as a result of this change. (Sameer Agarwal, Johannes Beck, Sergiu Deitsch) + A number of changes to Jet s (Sergiu Deitsch): - Jet gained support for, copysign, fma (fused multiply-add), midpoint (C++20 and above), lerp (C++20 and above), 3-argument hypot (C++17 and above), log10, log1p, exp1m, norm (squared norm). - Quiet floating-point comparison: isless, isgreater, islessgreater, islessequal, isgreaterequal, isunordered, signbit, fdim - Categorization and comparison operations are applied exclusively and consistently to the scalar part of a Jet now: isnan, isinf, isnormal, isfinite, fpclassify (new), fmin, fmax - It is now possible to safely compare a Jet against a scalar (or literal) without constructing a Jet first (even if it’s nested) This enables interaction with various arithmetic functions that expect a scalar like instance, such as boost::math::pow<-N> for reciprocal computation. + Add NumericDiffFirstOrderFunction (Sameer Agarwal) * Backward Incompatible API Changes: + LocalParameterization is deprecated. It will be removed in version 2.2. Use Manifold instead. + Classification functions like IsFinite are deprecated. Use the C++11 functions (isfinite, isnan etc) going forward. However to maintain consistent behaviour with comparison operators, these functions only inspect the scalar part of the Jet. * Many Bug Fixes & Minor Changes, for details, see http://ceres-solver.org/version_history.html - Drop upstream fix-tbb-2021.1-detection.patch - Use memory-constrains to avoid occasional OOM build failures OBS-URL: https://build.opensuse.org/request/show/1063158 OBS-URL: https://build.opensuse.org/package/show/science/ceres-solver?expand=0&rev=11 --- ceres-solver-2.0.0.tar.gz | 3 --- ceres-solver-2.1.0.tar.gz | 3 +++ ceres-solver.changes | 48 ++++++++++++++++++++++++++++++++++ ceres-solver.spec | 14 ++++++---- fix-tbb-2021.1-detection.patch | 41 ----------------------------- 5 files changed, 60 insertions(+), 49 deletions(-) delete mode 100644 ceres-solver-2.0.0.tar.gz create mode 100644 ceres-solver-2.1.0.tar.gz delete mode 100644 fix-tbb-2021.1-detection.patch diff --git a/ceres-solver-2.0.0.tar.gz b/ceres-solver-2.0.0.tar.gz deleted file mode 100644 index 4033db8..0000000 --- a/ceres-solver-2.0.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:10298a1d75ca884aa0507d1abb0e0f04800a92871cd400d4c361b56a777a7603 -size 11225245 diff --git a/ceres-solver-2.1.0.tar.gz b/ceres-solver-2.1.0.tar.gz new file mode 100644 index 0000000..2def8f4 --- /dev/null +++ b/ceres-solver-2.1.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f7d74eecde0aed75bfc51ec48c91d01fe16a6bf16bce1987a7073286701e2fc6 +size 3802187 diff --git a/ceres-solver.changes b/ceres-solver.changes index 6dde083..43cb1af 100644 --- a/ceres-solver.changes +++ b/ceres-solver.changes @@ -1,3 +1,51 @@ +------------------------------------------------------------------- +Sat Feb 4 11:16:58 UTC 2023 - Stefan Brüns + +- Update to version 2.1.0. + * New Features: + + Support for CUDA based dense solvers - DENSE_QR, + DENSE_NORMAL_CHOLESKY & DENSE_SCHUR (Joydeep Biswas, + Sameer Agarwal) + + Manifold is the new LocalParameterization. Version 2.1 is + the transition release where users can use both + LocalParameterization as well as Manifold objects as they + transition from the former to the latter. + LocalParameterization will be removed in version 2.2. + There should be no numerical change to the results as a + result of this change. (Sameer Agarwal, Johannes Beck, + Sergiu Deitsch) + + A number of changes to Jet s (Sergiu Deitsch): + - Jet gained support for, copysign, fma (fused multiply-add), + midpoint (C++20 and above), lerp (C++20 and above), + 3-argument hypot (C++17 and above), log10, log1p, exp1m, + norm (squared norm). + - Quiet floating-point comparison: isless, isgreater, + islessgreater, islessequal, isgreaterequal, isunordered, + signbit, fdim + - Categorization and comparison operations are applied + exclusively and consistently to the scalar part of a + Jet now: isnan, isinf, isnormal, isfinite, fpclassify + (new), fmin, fmax + - It is now possible to safely compare a Jet against a + scalar (or literal) without constructing a Jet first + (even if it’s nested) + This enables interaction with various arithmetic functions + that expect a scalar like instance, such as + boost::math::pow<-N> for reciprocal computation. + + Add NumericDiffFirstOrderFunction (Sameer Agarwal) + * Backward Incompatible API Changes: + + LocalParameterization is deprecated. It will be removed + in version 2.2. Use Manifold instead. + + Classification functions like IsFinite are deprecated. + Use the C++11 functions (isfinite, isnan etc) going + forward. However to maintain consistent behaviour with + comparison operators, these functions only inspect the + scalar part of the Jet. + * Many Bug Fixes & Minor Changes, for details, see + http://ceres-solver.org/version_history.html +- Drop upstream fix-tbb-2021.1-detection.patch +- Use memory-constrains to avoid occasional OOM build failures + ------------------------------------------------------------------- Mon Feb 21 02:16:20 UTC 2022 - Stefan Brüns diff --git a/ceres-solver.spec b/ceres-solver.spec index bddd47a..e5797fc 100644 --- a/ceres-solver.spec +++ b/ceres-solver.spec @@ -1,7 +1,7 @@ # # spec file for package ceres-solver # -# Copyright (c) 2022 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 @@ -16,19 +16,19 @@ # -%define sover 2 +%define sover 3 Name: ceres-solver -Version: 2.0.0 +Version: 2.1.0 Release: 0 Summary: C++ library for modeling and solving optimization problems License: Apache-2.0 AND BSD-3-Clause AND MIT Group: Development/Libraries/C and C++ URL: http://ceres-solver.org/ Source: http://ceres-solver.org/%{name}-%{version}.tar.gz -Patch0: https://github.com/ceres-solver/ceres-solver/commit/941ea13475913ef8322584f7401633de9967ccc8.patch#/fix-tbb-2021.1-detection.patch BuildRequires: cmake >= 3.5.0 BuildRequires: gcc-c++ BuildRequires: glog-devel >= 0.3.1 +BuildRequires: memory-constraints BuildRequires: suitesparse-devel BuildRequires: pkgconfig(eigen3) >= 3.3.0 @@ -72,6 +72,9 @@ This package is built with Eigen only. %autosetup -p1 %build +# _constraints/memoryperjob can not be increased without +# rejecting too many workers (even most on some archs) +%limit_build -m 1500 %cmake \ -DCXSPARSE=ON \ -DSUITESPARSE=ON \ @@ -94,6 +97,7 @@ This package is built with Eigen only. %{_libdir}/libceres.so %files -n libceres%{sover} -%{_libdir}/libceres.so.%{sover}* +%{_libdir}/libceres.so.%{sover} +%{_libdir}/libceres.so.%{version} %changelog diff --git a/fix-tbb-2021.1-detection.patch b/fix-tbb-2021.1-detection.patch deleted file mode 100644 index 955382f..0000000 --- a/fix-tbb-2021.1-detection.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 941ea13475913ef8322584f7401633de9967ccc8 Mon Sep 17 00:00:00 2001 -From: Alex Stewart -Date: Mon, 15 Mar 2021 14:17:59 +0000 -Subject: [PATCH] Fix FindTBB version detection with TBB >= 2021.1.1 - -- Raised as issue #669 - -Change-Id: Ic2fcaf31aef5e303d19a9caef7d6c679325f554a ---- - cmake/FindTBB.cmake | 15 ++++++++++++++- - 1 file changed, 14 insertions(+), 1 deletion(-) - -diff --git a/cmake/FindTBB.cmake b/cmake/FindTBB.cmake -index 5ae7b6156..10e540da0 100644 ---- a/cmake/FindTBB.cmake -+++ b/cmake/FindTBB.cmake -@@ -429,10 +429,23 @@ findpkg_finish(TBB_MALLOC_PROXY tbbmalloc_proxy) - #============================================================================= - #parse all the version numbers from tbb - if(NOT TBB_VERSION) -+ set(TBB_VERSION_FILE_PRIOR_TO_TBB_2021_1 -+ "${TBB_INCLUDE_DIR}/tbb/tbb_stddef.h") -+ set(TBB_VERSION_FILE_AFTER_TBB_2021_1 -+ "${TBB_INCLUDE_DIR}/oneapi/tbb/version.h") -+ -+ if (EXISTS "${TBB_VERSION_FILE_PRIOR_TO_TBB_2021_1}") -+ set(TBB_VERSION_FILE "${TBB_VERSION_FILE_PRIOR_TO_TBB_2021_1}") -+ elseif (EXISTS "${TBB_VERSION_FILE_AFTER_TBB_2021_1}") -+ set(TBB_VERSION_FILE "${TBB_VERSION_FILE_AFTER_TBB_2021_1}") -+ else() -+ message(FATAL_ERROR "Found TBB installation: ${TBB_INCLUDE_DIR} " -+ "missing version header.") -+ endif() - - #only read the start of the file - file(STRINGS -- "${TBB_INCLUDE_DIR}/tbb/tbb_stddef.h" -+ "${TBB_VERSION_FILE}" - TBB_VERSION_CONTENTS - REGEX "VERSION") -