您是否认为使用Java 1.8中的新流接口能够实现稀疏矩阵操作?如果是,我们需要如何实现矩阵和操作。显然,我正在寻找它最终能够使用“自动”并行化。
您是否认为使用Java 1.8中的新流接口能够实现稀疏矩阵操作?如果是,我们需要如何实现矩阵和操作。显然,我正在寻找它最终能够使用“自动”并行化。
class COO {
int x, y, value;
}
public static ArrayList<Integer> spmv(List<COO> values, ArrayList<Integer> v) {
final ArrayList<Integer> result = new ArrayList<>(Collections.nCopies(v.size(), 0));
values.stream().forEach(
coo -> result.set(coo.x, result.get(coo.x) + coo.value * v.get(coo.y))
);
return result;
}
Float
和Double
的(非)装箱,必须在原始流(float
,double
)上构建它。5. 性能很大程度上取决于缓存,这也无法通过流来影响。-尽管如此,我真的很想在这里看到一些方法,所以+1。 - Marco13