mirror of
https://gitlab.com/libeigen/eigen.git
synced 2026-04-10 11:34:33 +08:00
Apply clang-format
This commit is contained in:
@@ -13,27 +13,23 @@
|
||||
// IWYU pragma: private
|
||||
#include "./InternalHeaderCheck.h"
|
||||
|
||||
namespace Eigen
|
||||
{
|
||||
namespace Eigen {
|
||||
|
||||
template<typename Functor> class AutoDiffJacobian : public Functor
|
||||
{
|
||||
public:
|
||||
template <typename Functor>
|
||||
class AutoDiffJacobian : public Functor {
|
||||
public:
|
||||
AutoDiffJacobian() : Functor() {}
|
||||
AutoDiffJacobian(const Functor& f) : Functor(f) {}
|
||||
|
||||
// forward constructors
|
||||
template<typename... T>
|
||||
AutoDiffJacobian(const T& ...Values) : Functor(Values...) {}
|
||||
template <typename... T>
|
||||
AutoDiffJacobian(const T&... Values) : Functor(Values...) {}
|
||||
|
||||
typedef typename Functor::InputType InputType;
|
||||
typedef typename Functor::ValueType ValueType;
|
||||
typedef typename ValueType::Scalar Scalar;
|
||||
|
||||
enum {
|
||||
InputsAtCompileTime = InputType::RowsAtCompileTime,
|
||||
ValuesAtCompileTime = ValueType::RowsAtCompileTime
|
||||
};
|
||||
enum { InputsAtCompileTime = InputType::RowsAtCompileTime, ValuesAtCompileTime = ValueType::RowsAtCompileTime };
|
||||
|
||||
typedef Matrix<Scalar, ValuesAtCompileTime, InputsAtCompileTime> JacobianType;
|
||||
typedef typename JacobianType::Index Index;
|
||||
@@ -46,19 +42,12 @@ public:
|
||||
|
||||
// Some compilers don't accept variadic parameters after a default parameter,
|
||||
// i.e., we can't just write _jac=0 but we need to overload operator():
|
||||
EIGEN_STRONG_INLINE
|
||||
void operator() (const InputType& x, ValueType* v) const
|
||||
{
|
||||
this->operator()(x, v, 0);
|
||||
}
|
||||
template<typename... ParamsType>
|
||||
void operator() (const InputType& x, ValueType* v, JacobianType* _jac,
|
||||
const ParamsType&... Params) const
|
||||
{
|
||||
eigen_assert(v!=0);
|
||||
EIGEN_STRONG_INLINE void operator()(const InputType& x, ValueType* v) const { this->operator()(x, v, 0); }
|
||||
template <typename... ParamsType>
|
||||
void operator()(const InputType& x, ValueType* v, JacobianType* _jac, const ParamsType&... Params) const {
|
||||
eigen_assert(v != 0);
|
||||
|
||||
if (!_jac)
|
||||
{
|
||||
if (!_jac) {
|
||||
Functor::operator()(x, v, Params...);
|
||||
return;
|
||||
}
|
||||
@@ -68,23 +57,20 @@ public:
|
||||
ActiveInput ax = x.template cast<ActiveScalar>();
|
||||
ActiveValue av(jac.rows());
|
||||
|
||||
if(InputsAtCompileTime==Dynamic)
|
||||
for (Index j=0; j<jac.rows(); j++)
|
||||
av[j].derivatives().resize(x.rows());
|
||||
if (InputsAtCompileTime == Dynamic)
|
||||
for (Index j = 0; j < jac.rows(); j++) av[j].derivatives().resize(x.rows());
|
||||
|
||||
for (Index i=0; i<jac.cols(); i++)
|
||||
ax[i].derivatives() = DerivativeType::Unit(x.rows(),i);
|
||||
for (Index i = 0; i < jac.cols(); i++) ax[i].derivatives() = DerivativeType::Unit(x.rows(), i);
|
||||
|
||||
Functor::operator()(ax, &av, Params...);
|
||||
|
||||
for (Index i=0; i<jac.rows(); i++)
|
||||
{
|
||||
for (Index i = 0; i < jac.rows(); i++) {
|
||||
(*v)[i] = av[i].value();
|
||||
jac.row(i) = av[i].derivatives();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
} // namespace Eigen
|
||||
|
||||
#endif // EIGEN_AUTODIFF_JACOBIAN_H
|
||||
#endif // EIGEN_AUTODIFF_JACOBIAN_H
|
||||
|
||||
Reference in New Issue
Block a user