commit | a3a4b6d77f376815ac7475a7d2e5b6df41797300 | [log] [tgz] |
---|---|---|
author | Sergiu Deitsch <sergiu.deitsch@gmail.com> | Sun Nov 14 00:50:57 2021 +0100 |
committer | Sergiu Deitsch <sergiu.deitsch@gmail.com> | Mon Nov 15 23:27:33 2021 +0100 |
tree | 026e4f2a731ac1e7ee6746fb3997b14f1974dccb | |
parent | b75dac16943a6e3d39deb92e70c7f5df23092cc9 [diff] |
support copysign jet libc++ (default on macOS) uses the copysign function for std::complex multiplication which causes compilation errors such as these if std::complex is combined with jets: /Applications/Xcode_12.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/complex:607:19: error: no matching function for call to 'copysign' __a = copysign(__libcpp_isinf_or_builtin(__a) ? _Tp(1) : _Tp(0), __a); ^~~~~~~~ foo.hpp:218:39: note: in instantiation of function template specialization 'std::__1::operator*<ceres::Jet<double, 3> >' requested here std::complex<Scalar> result = lhs * rhs; copysign is also useful in other situations where the sign is required allowing it to compute without branching. Change-Id: I84b2d23374f1bf3bae32833016bb686d97d74054
Ceres Solver is an open source C++ library for modeling and solving large, complicated optimization problems. It is a feature rich, mature and performant library which has been used in production at Google since 2010. Ceres Solver can solve two kinds of problems.
Please see ceres-solver.org for more information.