Git Product home page Git Product logo

Comments (4)

moble avatar moble commented on September 4, 2024

You've copied the wikipedia entry incorrectly, in one very important way. The notation
p_over_q
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.

noncom avatar noncom commented on September 4, 2024

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.

moble avatar moble commented on September 4, 2024

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.

noncom avatar noncom commented on September 4, 2024

This information is much appreciated! It brings clarity and explanation.

from quaternion.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.