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

Matt Juntunen commented on GEOMETRY-17:
---------------------------------------

Hi [~erans],
{quote}However you did not comment on my {{withCheckedNorm()}} (untested) 
suggestion.
{quote}
I'm not sure on the idea of having a private subclass primarily for validation 
(and some optimization on retrieving a norm). It seems a bit more than what's 
needed for the problem and I'm having trouble picturing a use case where it 
would fit.
{quote}I don't see how the constant 1 can be less accurate than a variable 
holding a value that is supposed to be 1!
{quote}
I believe the issue here is that the norm of the normalized vector is 
_supposed_ to be 1, but it very well may not actually be 1 due to floating 
point errors. So, if we return exactly 1.0 as the norm for normalized vector, 
we may introduce a mismatch between what we're saying the norm is and what it 
actually is given the vector coordinates. I believe that's where the issue 
arises but I can't say for certain.

Are you picturing more follow-up tickets here or should we close this issue?

> Euclidean Vector Method Follow-Up
> ---------------------------------
>
>                 Key: GEOMETRY-17
>                 URL: https://issues.apache.org/jira/browse/GEOMETRY-17
>             Project: Apache Commons Geometry
>          Issue Type: Improvement
>            Reporter: Matt Juntunen
>            Priority: Major
>
> This is a follow-up issue to GEOMETRY-9. The following tasks should be 
> completed:
>  # Vector2D - needs an orthogonal() method like Vector3D
>  # Vector#getMagnitude() should be removed. I originally added this as part 
> of GEOMETRY-9 as an alias for getNorm(), but after thinking about it more and 
> working with it, I believe it's more confusing than useful to have multiple 
> names in the code base for the same idea.
>  # Vector#withMagnitude() should be renamed to Vector#withNorm() for the same 
> reason as above.
>  # Vector#getRealNonZeroNorm() - This is currently a private method in the 
> Vector implementation classes but I believe it is useful enough to be made 
> public. The idea is that this would return the vector norm but throw an 
> IllegalNormException if the norm is zero, NaN, or infinite. I've already come 
> across some places in other classes (such as Rotation) where I want to use 
> this.
>  
> Pull request: https://github.com/apache/commons-geometry/pull/11



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to