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

Ted Dunning commented on MAHOUT-1746:
-------------------------------------


I think that this is more complicated than it looks.

I just wrote a test and got really strange results.  The rate at which x*x != 
Math.pow(x,2) is not constant in my test and seems like there may be strange 
interactions with the JIT.



> Fix: mxA ^ 2, mxA ^ 0.5 to mean the same thing as mxA * mxA and mxA ::= sqrt _
> ------------------------------------------------------------------------------
>
>                 Key: MAHOUT-1746
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-1746
>             Project: Mahout
>          Issue Type: Blog - New Blog Request
>            Reporter: Dmitriy Lyubimov
>            Assignee: Dmitriy Lyubimov
>             Fix For: 0.10.2
>
>
> it so happens that in java, if x is of double type, Math.pow(x,2.0) and x * x 
> produce different values approximately once in million random values.
> This is extremely annoying as it creates rounding errors, especially with 
> things like euclidean distance computations, which eventually may produce 
> occasional NaNs. 
> This issue suggests to get special treatment on vector and matrix dsl to make 
> sure identical fpu algorithms are running as follows:
> x ^ 2 <=> x * x
> x ^ 0.5 <=> sqrt(x)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to