You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mahout.apache.org by "Jake Mannix (JIRA)" <ji...@apache.org> on 2009/12/08 18:59:18 UTC

[jira] Assigned: (MAHOUT-209) Add aggregate() methods for Vector

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

Jake Mannix reassigned MAHOUT-209:
----------------------------------

    Assignee: Jake Mannix

> Add aggregate() methods for Vector
> ----------------------------------
>
>                 Key: MAHOUT-209
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-209
>             Project: Mahout
>          Issue Type: Improvement
>          Components: Matrix
>         Environment: all
>            Reporter: Jake Mannix
>            Assignee: Jake Mannix
>            Priority: Minor
>             Fix For: 0.3
>
>
> As discussed in MAHOUT-165 at some point, Vector (and Matrix, but let's put that on a separate ticket) could do with a nice exposure of methods like the following:
> {code}
> // this can get optimized, of course
>   public double aggregate(Vector other, BinaryFunction aggregator, BinaryFunction combiner) {
>     double result = 0;
>     for(int i=0; i<size(); i++) {
>       result = aggregator.apply(result, combiner.apply(getQuick(i), other.getQuick(i)));
>     }
>     return result;
>   }
> {code}
> this is good for generalized inner products and distances.  Also nice:
> {code}
>   public double aggregate(BinaryFunction aggregator, UnaryFunction map) {
>     double result = 0;
>     for(int i=0; i<size(); i++) {
>       result = aggregator.apply(result, map.apply(getQuick(i)) );
>     }
>     return result;
>   }
> {code}
> Which generalizes norms and statistics (mean, median, stdDev) and things like that (number of positive values, or negative values, etc...).
> These kind of thing exists in Colt, and we could just surface it up to the top.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.