7#include <Eigen/SparseCore>
9#include "sleipnir/autodiff/jacobian.hpp"
10#include "sleipnir/autodiff/variable.hpp"
11#include "sleipnir/autodiff/variable_matrix.hpp"
12#include "sleipnir/util/concepts.hpp"
13#include "sleipnir/util/symbol_exports.hpp"
24template <
typename Scalar>
53 const Eigen::SparseVector<Scalar>&
value() {
54 m_g = m_jacobian.value().transpose();
60 Eigen::SparseVector<Scalar> m_g;
65extern template class EXPORT_TEMPLATE_DECLARE(SLEIPNIR_DLLEXPORT)
Definition gradient.hpp:25
const Eigen::SparseVector< Scalar > & value()
Definition gradient.hpp:53
Gradient(Variable< Scalar > variable, SleipnirMatrixLike< Scalar > auto wrt)
Definition gradient.hpp:39
VariableMatrix< Scalar > get() const
Definition gradient.hpp:48
Gradient(Variable< Scalar > variable, Variable< Scalar > wrt)
Definition gradient.hpp:31
Definition intrusive_shared_ptr.hpp:27
constexpr T * get() const noexcept
Definition intrusive_shared_ptr.hpp:178
Definition variable_matrix.hpp:33
Definition concepts.hpp:33