- 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
104 lines
3.1 KiB
RPMSpec
104 lines
3.1 KiB
RPMSpec
#
|
|
# spec file for package ceres-solver
|
|
#
|
|
# 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
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
|
#
|
|
|
|
|
|
%define sover 3
|
|
Name: ceres-solver
|
|
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
|
|
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
|
|
|
|
%description
|
|
Ceres Solver is a C++ library for modeling and solving large,
|
|
complicated optimization problems. It can be used to solve Non-linear Least
|
|
Squares problems with bounds constraints and general unconstrained optimization
|
|
problems.
|
|
|
|
This package is built with Eigen only.
|
|
|
|
%package -n libceres-devel
|
|
Summary: Ceres Solver header files
|
|
License: Apache-2.0 AND BSD-3-Clause
|
|
Group: Development/Libraries/C and C++
|
|
Requires: glog-devel >= 0.3.1
|
|
Requires: libceres%{sover} = %{version}
|
|
|
|
%description -n libceres-devel
|
|
Ceres Solver is a C++ library for modeling and solving large,
|
|
complicated optimization problems. It can be used to solve Non-linear Least
|
|
Squares problems with bounds constraints and general unconstrained optimization
|
|
problems.
|
|
|
|
This package is built with Eigen only.
|
|
|
|
%package -n libceres%{sover}
|
|
Summary: Ceres Solver shared library
|
|
License: Apache-2.0 AND BSD-3-Clause
|
|
Group: System/Libraries
|
|
|
|
%description -n libceres%{sover}
|
|
Ceres Solver is a C++ library for modeling and solving large,
|
|
complicated optimization problems. It can be used to solve Non-linear Least
|
|
Squares problems with bounds constraints and general unconstrained optimization
|
|
problems.
|
|
|
|
This package is built with Eigen only.
|
|
|
|
%prep
|
|
%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 \
|
|
-DEIGENSPARSE=ON \
|
|
-DGFLAGS=OFF \
|
|
-DMINIGLOG=OFF \
|
|
%{nil}
|
|
%cmake_build
|
|
|
|
%install
|
|
%cmake_install
|
|
|
|
%post -n libceres%{sover} -p /sbin/ldconfig
|
|
|
|
%postun -n libceres%{sover} -p /sbin/ldconfig
|
|
|
|
%files -n libceres-devel
|
|
%{_includedir}/ceres/
|
|
%{_libdir}/cmake/Ceres/
|
|
%{_libdir}/libceres.so
|
|
|
|
%files -n libceres%{sover}
|
|
%{_libdir}/libceres.so.%{sover}
|
|
%{_libdir}/libceres.so.%{version}
|
|
|
|
%changelog
|