Files
ceres-solver/ceres-solver.spec
Stefan Brüns 8c8c1cf2c1 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
2023-02-04 21:54:15 +00:00

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