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

Hao Zhong updated MAHOUT-1958:
------------------------------
    Description: 
The CityBlockSimilarity.itemSimilarities method has the following code:
{code:title=CityBlockSimilarity.java|borderStyle=solid}
      int preferring2 = dataModel.getNumUsersWithPreferenceFor(itemID2s[i]);
      int intersection = dataModel.getNumUsersWithPreferenceFor(itemID1, 
itemID2s[i]);
{code}

Here, the two methods return long values, and can overflow. Indeed, 
LogLikelihoodSimilaritydoItemSimilarity once had the same problem. The fixed 
code is

{code:title=LogLikelihoodSimilaritydoItemSimilarity.java|borderStyle=solid}
    long preferring1 = dataModel.getNumUsersWithPreferenceFor(itemID1);
    long numUsers = dataModel.getNumUsers();
{code}
Please refer to MAHOUT-738 for details.

  was:
The CityBlockSimilarity.itemSimilarities method has the following code:
{code:title=CityBlockSimilarity.java|borderStyle=solid}
      int preferring2 = dataModel.getNumUsersWithPreferenceFor(itemID2s[i]);
      int intersection = dataModel.getNumUsersWithPreferenceFor(itemID1, 
itemID2s[i]);
{code}

Here, the two methods return long values, and can overflow. Indeed, 
LogLikelihoodSimilaritydoItemSimilarity once had the same problem. The fixed 
code is

{code:title=CityBlockSimilarity.java|borderStyle=solid}
    long preferring1 = dataModel.getNumUsersWithPreferenceFor(itemID1);
    long numUsers = dataModel.getNumUsers();
{code}
Please refer to MAHOUT-738 for details.


> CityBlockSimilarity.itemSimilarities can overflow
> -------------------------------------------------
>
>                 Key: MAHOUT-1958
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-1958
>             Project: Mahout
>          Issue Type: Bug
>          Components: Math
>    Affects Versions: 1.0.0
>            Reporter: Hao Zhong
>
> The CityBlockSimilarity.itemSimilarities method has the following code:
> {code:title=CityBlockSimilarity.java|borderStyle=solid}
>       int preferring2 = dataModel.getNumUsersWithPreferenceFor(itemID2s[i]);
>       int intersection = dataModel.getNumUsersWithPreferenceFor(itemID1, 
> itemID2s[i]);
> {code}
> Here, the two methods return long values, and can overflow. Indeed, 
> LogLikelihoodSimilaritydoItemSimilarity once had the same problem. The fixed 
> code is
> {code:title=LogLikelihoodSimilaritydoItemSimilarity.java|borderStyle=solid}
>     long preferring1 = dataModel.getNumUsersWithPreferenceFor(itemID1);
>     long numUsers = dataModel.getNumUsers();
> {code}
> Please refer to MAHOUT-738 for details.



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

Reply via email to