-
Notifications
You must be signed in to change notification settings - Fork 35
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix compilation for both ColMajor/RowMajor + provide a define. #89
Merged
Conversation
This file contains 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
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).
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. |
gradient_t was previously used for this, but gradient_t describes row vectors while derivative_t describes column vectors.
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
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), andRowMajor
can be used for hypothetical increased performance in some scenarios (e.g. when mostly usingimpl_gradient
to fill theJacobian 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.