Skip to content
GitLab
    • GitLab: the DevOps platform
    • Explore GitLab
    • Install GitLab
    • How GitLab compares
    • Get started
    • GitLab docs
    • GitLab Learn
  • Pricing
  • Talk to an expert
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
    • Switch to GitLab Next
    Projects Groups Topics Snippets
  • Register
  • Sign in
  • eigen eigen
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
    • Locked files
  • Issues 699
    • Issues 699
    • List
    • Boards
    • Service Desk
    • Milestones
    • Requirements
  • Custom issue tracker
    • Custom issue tracker
  • Merge requests 25
    • Merge requests 25
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Artifacts
    • Schedules
    • Test cases
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Container Registry
    • Terraform modules
    • Model experiments
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • libeigenlibeigen
  • eigeneigen
  • Issues
  • #719
Closed
Open
Issue created Dec 04, 2019 by Eigen Bugzilla@eigenbzReporter

[Feature Request] non-vector quaternions

Submitted by J Baxter

Assigned to Nobody

Link to original bugzilla bug (#719)

Description

Hello; I would like to float the idea of whether it might be possible to generalize the current implementation of quaternions as 4-vectors (internally, 4 by 1 matrices) to allow N columns of quaternions, stored within a 4 by N matrix internally.

My motivation is quaternion-based rigid body dynamics. The positions of N rigid bodies can gracefully be represented by an 3 by N matrix; this allows elegant features of Eigen like broadcasting and reductions to be used in place of more verbose for loops, and likely opens up optimization opportunities to the compiler.

It is my understanding that it is currently not possible to similarly aggregate quaternions without doing something complicated and error-prone like storing the quaternions as 4-vectors in a matrix, converting to quaternion type when read from the matrix and converting back to vector type when writing back to the matrix.

As far as implementation goes, would there be any issues with a simple wrapper around Matrix automating the conversion described in the previous paragraph? It might make sense to call the class something like QuaternionColumns. That may be cleaner than generalizing Quaternion itself.

Thank you very much for your consideration and time!

Depends on

#560

Edited Dec 05, 2019 by Eigen Bugzilla
Assignee
Assign to
Time tracking