[ 
https://issues.apache.org/jira/browse/MAHOUT-1746?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dmitriy Lyubimov updated MAHOUT-1746:
-------------------------------------
    Description: 
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 suggest 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)



> 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
>             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 suggest 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