Closed bchretien closed 9 years ago
Note: plugins need to be tested before merging this.
Things seem to be working as expected. The Ipopt plugin and the Python bindings needed a quick fix.
I added an extra type, derivative_t
, which is merely a typedef to a column vector. It should be used instead of gradient_t
(row vector) for NTimesDerivableFunction
(i.e. in roboptim-trajectory
).
Users can use the CMake option
"STORAGE_ORDER"
to change the storage order used by RobOptim. It defaults toColMajor
(Eigen's default), andRowMajor
can be used for hypothetical increased performance in some scenarios (e.g. when mostly usingimpl_gradient
to fill the Jacobian matrices).Details
In RobOptim,
gradient_t
describes a row of the Jacobian matrix, but until now, it was defined as a column vector. A newrowVector_t
is now available (vector_t
is still a column vector), and in the dense case,gradient_t
is just arowVector_t
. The sparse case is a bit different, sincevector_t/rowVector_t
are dense vectors butgradient_t
is a sparse vector (now aRowMajor
sparse vector for consistency with the dense traits).Also, I encountered the following Eigen bug: http://eigen.tuxfamily.org/bz/show_bug.cgi?id=980 This will be fixed in the next Eigen release.