commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Julien Anxionnat (JIRA)" <>
Subject [jira] [Commented] (MATH-863) new Quaternion class added in complex package
Date Fri, 21 Sep 2012 12:34:07 GMT


Julien Anxionnat commented on MATH-863:

The implementation is easy. But in my opinion, it's dangerous for the {{Quaternion}} to implement
the {{FieldElement}} interface because of the non-commutativity of the multiplication.

I read some articles on mathworld and wikipedia. And I discovered there are ambiguities in
the translation french/english which were confusing me:
* a _field_ *is* commutative ("field" = "corps commutatif" in french) ;
* a _division ring_ (or _skew field_) (= "corps" or "corps gauche" in french) is a field without
 prerequisite on the commutativity or non-commutativity of the multiplication ;
* a _non-commutative field_ (= "corps non commutatif" in french) has a non-commutative multiplication.

So I suggest to :
# rename the {{Field}} interface into {{SkewField}} ;
# remove the {{multiply()}} and {{divide()}} methods from it ;
# create a new {{Field}} interface extending the {{Skewfield}} within the two "old" {{multiply()}}
and {{divide()}} methods, and precise that this _field_ is commutative ;
# create a new {{NonCommutativeField}} extending the {{SkewField}} with the following methods:
** leftMultiply() : a * _this_,
** rightMultiply() : _this_ * a,
** leftDivide() : a ^-1^ * _this_,
** rightDivide() : _this_ * a ^-1^.

What do you think about ?

> 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_adjustments.patch, 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