[ 
https://issues.apache.org/jira/browse/MATH-863?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13460471#comment-13460471
 ] 

Sébastien Brisard commented on MATH-863:
----------------------------------------

I personally don't like {{leftMultiply}} and {{rightMultiply}}, for three 
reasons
# who is meant to stand on the left/right is not intuitive to me
# I can't see the gain of {{this.leftMultiply(a)}} over 
{{a.rightMultiply(this)}}
# {{FieldElement}} has a fluent interface. So you could write something like 
{{a.add(b.rightMultiply(c))}}, which reads how it should, namely {{a + (b * 
c)}}, while {{a.add(b.leftMultiply(c))}} should read the other way {{a + (c * 
b)}}, which somehow breaks the fluent interface.

Besides, I don't understand why {{SkewField}} should not be equipped with a 
multiplication/division (with no assumption on commutativity), while the 
mathematical definition of a skew field clearly states that there is a 
multiplication/division.

How about
# we create a superinterface of {{FieldElement}}, for example 
{{SkewFieldElement}} which is *not necessarily* commutative, and we say so in 
the Javadoc. This interface has the same methods as {{FieldElement}} 
*including* {{multiply}} and {{divide}} (basically we move all methods from 
{{FieldElement}} to {{SkewFieldElement}}, and {{FieldElement}} becomes a marker 
interface). {{multiply}} would effectively be what Julien named 
{{rightMultiply}}, and there is no need in my view to provide a 
{{leftMultiply}} (or maybe I'm missing something?)
# we clearly state in the interface that {{FieldElement}} *is* commutative

                
> new Quaternion class added in complex package
> ---------------------------------------------
>
>                 Key: MATH-863
>                 URL: https://issues.apache.org/jira/browse/MATH-863
>             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 package.
> 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: http://www.atlassian.com/software/jira

Reply via email to