Comments (4)
You've copied the wikipedia entry incorrectly, in one very important way. The notation
is indeed ambiguous, as wikipedia says; on the other hand the notation p/q
is not ambiguous; that is clearly equivalent to p * q^{-1}
. This is pretty standard notation in non-commutative groups.
However, if you are unhappy with this or have trouble remembering it, you are welcome to just use explicit multiplication:
p * q.inverse()
or
q.inverse() * p
from quaternion.
Thanks, this gives me an idea on how to do this operation. However, it remains unclear to me what rationale lies behind the fact that the code p/q
is analogous to only one of the possible divisions, p * q^{-1}
, and why the other one is not presented as clear. Possibly there is a reason for that, but I am not well-accustomed to the underlying theory and computational math, it could be I am missing something rather simple and well-known. Is this one of the possible divisions considered to be somehow superior over the other one? (can't find any mention on this in papers)
from quaternion.
I'm not saying that one is superior; they're different quantities that you need in different situations. You have to decide which one you need for any given application.
All I'm saying is that p/q
is defined as p * q.inverse()
. The reason is that this particular notation makes clear typographically that p
is on the left and q
is on the right, leading to a standard order of operations in which the corresponding multiplication (involving the inverse) is in the same order. Here is a wikipedia reference supporting my claim; here is Mathematica's; I'm sure I could find others in the mathematical literature.
On the other hand, the "p over q" notation is left-right symmetric, so there's no clear choice as to which one should come first in the multiplication. And since either choice could be the correct one for some application, we just don't use that notation for non-commutative division. (Plus, python code is one-dimensional, so we don't really have that option.)
from quaternion.
This information is much appreciated! It brings clarity and explanation.
from quaternion.
Related Issues (20)
- None check fails HOT 1
- angular_velocity() output format HOT 2
- Euler angles are horrible, and so are quaternions HOT 2
- Documentation should clarify that the quaternions are defined using an active rotation convention HOT 2
- `np.sum` breaks in latest Numpy
- Object mode fallback deprecation in numba.jit
- Version number of latest release HOT 1
- Add a rotation example into the documentation HOT 1
- possible docstring error HOT 2
- add from_euler_angles equivalent for Tait-Bryan angles HOT 1
- slight improvement to "Why Euler angles are horrible"
- Identity decorator exception HOT 1
- Scalar quaternion objects are mutable HOT 1
- `cumprod()` with quaternions crashes HOT 5
- Computation Error: from euler angles to quaternion HOT 1
- Build problem on arm32v7 HOT 2
- Numpy 2.0 support HOT 9
- allow np.float32 precision instead of default float64 or higher HOT 2
- quaternion dtype in cupy to benefit from GPU HOT 1
- Numpy 2.0.0 compatibility HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from quaternion.