commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sébastien Brisard (JIRA) <>
Subject [jira] [Commented] (MATH-863) new Quaternion class added in complex package
Date Fri, 21 Sep 2012 08:01:08 GMT


Sébastien Brisard commented on MATH-863:

A good test would be {{FieldLUDecomposition}}. It might work, it might not. But even if it
works, it would not tell us much. Indeed, we would have to make sure that _all_ classes operating
on {{FieldElement}} take into account non-commutativity of the multiplication. There is no
way to check that!

I can give you a counter example (not included in Commons-Math) : I've developed a {{Polynomial<T
extends FieldElement<T>}} with coefficients as {{FieldElement}}s. Then I expand {{(a
+ b)^n}} using Pascal's rule [1]. While this is perfectly correct on a regular field, it would
certainly fail on a {{Quaternion}} (if I understand correctly). If {{Quaternion}} implemented
{{FieldElement}}, applying Pascal's rule would be allowed from the point of view of the compiler,
although pure nonsense from a mathematical point of view.

Therefore, I think {{Quaternion}} *should not* implement {{FieldElement}}. Did I miss something?
What do others think?

[1] {{(a + b)^2 = a^2 + a * b + b * a + b^2 != a^2 + 2 * a * b + b^2}} if {{*}} does not commute.
> new Quaternion class added in complex package
> ---------------------------------------------
>                 Key: MATH-863
>                 URL:
>             Project: Commons Math
>          Issue Type: New Feature
>    Affects Versions: 3.1
>            Reporter: Julien Anxionnat
>         Attachments: quaternion.patch, quaternion_v2.patch
>   Original Estimate: 0h
>  Remaining Estimate: 0h
> This patch provides a new class for the mathematical object "Quaternion" in the complex
> This quaternion is considered as a mathematical object (the Hamilton's hypercomplex number).
> Note that it's not a rotation quaternion which has to be a quaternion of norm one. Although
this feature could be used for a getter in the Rotation class.
> This patch provides also some improvements in Precision class : a "double comparison
epsilon" and a method to compute relative comparison.
> (Please, note that's it's my first contribution, and I apologize in advance for my mistakes…)

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:

View raw message