[ 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.