Fix compilation for both ColMajor/RowMajor + provide a define.#89
Merged
Conversation
Users can use the CMake option "STORAGE_ORDER" to change the storage order used by RobOptim. It defaults to ColMajor (Eigen's default), and RowMajor can be used for hypothetical increased performance in some scenarios (e.g. when mostly using impl_gradient to fill the Jacobian matrices).
Member
Author
|
Note: plugins need to be tested before merging this. |
Member
Author
|
Things seem to be working as expected. The Ipopt plugin and the Python bindings needed a quick fix. |
added 2 commits
April 8, 2015 11:22
gradient_t was previously used for this, but gradient_t describes row vectors while derivative_t describes column vectors.
Member
Author
|
I added an extra type, |
bchretien
pushed a commit
to bchretien/roboptim-trajectory
that referenced
this pull request
Apr 8, 2015
Also comply with the change to gradient_t (row vector). Cf. roboptim/roboptim-core#89
bchretien
pushed a commit
to bchretien/roboptim-trajectory
that referenced
this pull request
Apr 8, 2015
Also comply with the change to gradient_t (row vector). Cf. roboptim/roboptim-core#89
bchretien
pushed a commit
to bchretien/roboptim-trajectory
that referenced
this pull request
Apr 8, 2015
Also comply with the change to gradient_t (row vector). Cf. roboptim/roboptim-core#89
bchretien
pushed a commit
to bchretien/roboptim-trajectory
that referenced
this pull request
Apr 8, 2015
Also comply with the change to gradient_t (row vector). Cf. roboptim/roboptim-core#89
bchretien
referenced
this pull request
in fdarricau/roboptim-core-manifold
Apr 8, 2015
…wMajor/ColMajor conflict
bchretien
added a commit
that referenced
this pull request
Apr 12, 2015
Fix compilation for both ColMajor/RowMajor + provide a define.
bchretien
pushed a commit
to roboptim/roboptim-trajectory
that referenced
this pull request
Apr 12, 2015
Also comply with the change to gradient_t (row vector). Cf. roboptim/roboptim-core#89
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Users can use the CMake option
"STORAGE_ORDER"to change the storage order used by RobOptim. It defaults toColMajor(Eigen's default), andRowMajorcan be used for hypothetical increased performance in some scenarios (e.g. when mostly usingimpl_gradientto fill theJacobian matrices).
Details
In RobOptim,
gradient_tdescribes a row of the Jacobian matrix, but until now, it was defined as a column vector. A newrowVector_tis now available (vector_tis still a column vector), and in the dense case,gradient_tis just arowVector_t. The sparse case is a bit different, sincevector_t/rowVector_tare dense vectors butgradient_tis a sparse vector (now aRowMajorsparse 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.