[ https://issues.apache.org/jira/browse/MATH1284?page=com.atlassian.jira.plugin.system.issuetabpanels:commenttabpanel&focusedCommentId=15983793#comment15983793
]
Raymond DeCampo commented on MATH1284:

Please take a look at the {{featureMATH1284}} branch.
First, I made it so that {{Vector}} no longer extends {{Point}}. Then I added the appropriate
methods from the {{Point}} interface to the {{Vector}} interface.
The only implementations which represented problems were the {{Vector?D}} classes. I noticed
that the existing code dealing with these implementations relied pretty heavily on casting
back and forth between {{Point}} and {{Vector}}, so the most prudent thing seemed to be supplying
a class which implements both.
I decided on {{Coordinates?D}} for the "new" classes (these are really just {{Vector?D}} renamed).
Here I am using the fact that point a vector and a point in finite dimensional Euclidean
space can be represented by a set of coordinates. (Keeping the classes with {{Vector?D}}
name would feel like we hadn't really addressed the issue.)
If it is a problem that the {{Vector?D}} classes are just dropped we could introduce them
as an intermediate interface (or even as a concrete class which {{Coordinates?D}} extends
but that feels less satisfying).
Having {{Coordinates?D}} implement both interfaces led to some method calls being ambiguously
defined. Here I just removed one of the methods. I am thinking now it would have been better
just to create an implementation accepting the {{Coordinate?D}} class.
In any case, there would be more work in terms of cleaning up and documentation, this is not
meant to be a finished product but a basis for discussion.
> Vector isnota Point
> 
>
> Key: MATH1284
> URL: https://issues.apache.org/jira/browse/MATH1284
> Project: Commons Math
> Issue Type: Bug
> Affects Versions: 3.5
> Reporter: Roman Werpachowski
> Priority: Minor
> Fix For: 4.0
>
>
> The class hierarchy for geometry claims that Vector isa Point: https://commons.apache.org/proper/commonsmath/apidocs/org/apache/commons/math3/geometry/Point.html
> This is mathematically incorrect, see e.g. http://math.stackexchange.com/a/645827
> Just because they share the same numerical representation, Point and Vector shouldn't
be crammed into a common class hierarchy.

This message was sent by Atlassian JIRA
(v6.3.15#6346)
