use of org.apache.sysml.runtime.matrix.data.IJV in project incubator-systemml by apache.
the class SpoofCellwise method executeCompressedRowAggMxx.
private long executeCompressedRowAggMxx(CompressedMatrixBlock a, SideInput[] b, double[] scalars, double[] c, int m, int n, boolean sparseSafe, int rl, int ru) {
Arrays.fill(c, rl, ru, (_aggOp == AggOp.MIN) ? Double.POSITIVE_INFINITY : Double.NEGATIVE_INFINITY);
ValueFunction vfun = getAggFunction();
long lnnz = 0;
Iterator<IJV> iter = a.getIterator(rl, ru, !sparseSafe);
while (iter.hasNext()) {
IJV cell = iter.next();
double val = genexec(cell.getV(), b, scalars, m, n, cell.getI(), cell.getJ());
c[cell.getI()] = vfun.execute(c[cell.getI()], val);
}
for (int i = rl; i < ru; i++) lnnz += (c[i] != 0) ? 1 : 0;
return lnnz;
}
use of org.apache.sysml.runtime.matrix.data.IJV in project incubator-systemml by apache.
the class SpoofCellwise method executeCompressedColAggMxx.
private long executeCompressedColAggMxx(CompressedMatrixBlock a, SideInput[] b, double[] scalars, double[] c, int m, int n, boolean sparseSafe, int rl, int ru) {
Arrays.fill(c, rl, ru, (_aggOp == AggOp.MIN) ? Double.POSITIVE_INFINITY : Double.NEGATIVE_INFINITY);
ValueFunction vfun = getAggFunction();
long lnnz = 0;
Iterator<IJV> iter = a.getIterator(rl, ru, !sparseSafe);
while (iter.hasNext()) {
IJV cell = iter.next();
double val = genexec(cell.getV(), b, scalars, m, n, cell.getI(), cell.getJ());
c[cell.getI()] = vfun.execute(c[cell.getI()], val);
}
for (int i = rl; i < ru; i++) lnnz += (c[i] != 0) ? 1 : 0;
return lnnz;
}
use of org.apache.sysml.runtime.matrix.data.IJV in project incubator-systemml by apache.
the class SpoofCellwise method executeCompressedRowAggSum.
private long executeCompressedRowAggSum(CompressedMatrixBlock a, SideInput[] b, double[] scalars, double[] c, int m, int n, boolean sparseSafe, int rl, int ru) {
KahanFunction kplus = (KahanFunction) getAggFunction();
KahanObject kbuff = new KahanObject(0, 0);
long lnnz = 0;
Iterator<IJV> iter = a.getIterator(rl, ru, !sparseSafe);
while (iter.hasNext()) {
IJV cell = iter.next();
double val = genexec(cell.getV(), b, scalars, m, n, cell.getI(), cell.getJ());
kbuff.set(c[cell.getI()], 0);
kplus.execute2(kbuff, val);
c[cell.getI()] = kbuff._sum;
}
for (int i = rl; i < ru; i++) lnnz += (c[i] != 0) ? 1 : 0;
return lnnz;
}
use of org.apache.sysml.runtime.matrix.data.IJV in project incubator-systemml by apache.
the class SpoofCellwise method executeCompressedAggMxx.
private double executeCompressedAggMxx(CompressedMatrixBlock a, SideInput[] b, double[] scalars, int m, int n, boolean sparseSafe, int rl, int ru) {
// safe aggregation for min/max w/ handling of zero entries
// note: sparse safe with zero value as min/max handled outside
double ret = (_aggOp == AggOp.MIN) ? Double.POSITIVE_INFINITY : Double.NEGATIVE_INFINITY;
ValueFunction vfun = getAggFunction();
Iterator<IJV> iter = a.getIterator(rl, ru, !sparseSafe);
while (iter.hasNext()) {
IJV cell = iter.next();
double val = genexec(cell.getV(), b, scalars, m, n, cell.getI(), cell.getJ());
ret = vfun.execute(ret, val);
}
return ret;
}
use of org.apache.sysml.runtime.matrix.data.IJV in project incubator-systemml by apache.
the class SpoofMultiAggregate method executeCompressed.
private void executeCompressed(CompressedMatrixBlock a, SideInput[] b, double[] scalars, double[] c, int m, int n, int rl, int ru) {
// core compressed aggregation operation
Iterator<IJV> iter = a.getIterator(rl, ru, true);
while (iter.hasNext()) {
IJV cell = iter.next();
genexec(cell.getV(), b, scalars, c, m, n, cell.getI(), cell.getJ());
}
}
Aggregations