SHA256
1
0
forked from pool/ceres-solver

Accepting request 1063158 from home:StefanBruens:branches:science

- 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
This commit is contained in:
Stefan Brüns 2023-02-04 21:54:15 +00:00 committed by Git OBS Bridge
parent b6f36e1cfc
commit 8c8c1cf2c1
5 changed files with 60 additions and 49 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:10298a1d75ca884aa0507d1abb0e0f04800a92871cd400d4c361b56a777a7603
size 11225245

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f7d74eecde0aed75bfc51ec48c91d01fe16a6bf16bce1987a7073286701e2fc6
size 3802187

View File

@ -1,3 +1,51 @@
-------------------------------------------------------------------
Sat Feb 4 11:16:58 UTC 2023 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
- 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 its 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 <stefan.bruens@rwth-aachen.de>

View File

@ -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

View File

@ -1,41 +0,0 @@
From 941ea13475913ef8322584f7401633de9967ccc8 Mon Sep 17 00:00:00 2001
From: Alex Stewart <alexs.mac@gmail.com>
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")