Beispiel #1
0
 @Override
 public void reduce(Lloyds mr) {
   for (int clu = 0; clu < _k; clu++) {
     long ra = _size[clu];
     long rb = mr._size[clu];
     double[] ma = _cMeans[clu];
     double[] mb = mr._cMeans[clu];
     for (int c = 0; c < ma.length; c++) // Recursive mean
     if (ra + rb > 0) ma[c] = (ma[c] * ra + mb[c] * rb) / (ra + rb);
   }
   ArrayUtils.add(_cats, mr._cats);
   ArrayUtils.add(_cSqr, mr._cSqr);
   ArrayUtils.add(_size, mr._size);
   // track global worst-row
   if (_worst_err < mr._worst_err) {
     _worst_err = mr._worst_err;
     _worst_row = mr._worst_row;
   }
 }
 @Override
 public void reduce(CoxPHTask that) {
   n += that.n;
   sumWeights += that.sumWeights;
   ArrayUtils.add(sumWeightedCatX, that.sumWeightedCatX);
   ArrayUtils.add(sumWeightedNumX, that.sumWeightedNumX);
   ArrayUtils.add(sizeRiskSet, that.sizeRiskSet);
   ArrayUtils.add(sizeCensored, that.sizeCensored);
   ArrayUtils.add(sizeEvents, that.sizeEvents);
   ArrayUtils.add(countEvents, that.countEvents);
   ArrayUtils.add(sumXEvents, that.sumXEvents);
   ArrayUtils.add(sumRiskEvents, that.sumRiskEvents);
   ArrayUtils.add(sumXRiskEvents, that.sumXRiskEvents);
   ArrayUtils.add(sumXXRiskEvents, that.sumXXRiskEvents);
   ArrayUtils.add(sumLogRiskEvents, that.sumLogRiskEvents);
   ArrayUtils.add(rcumsumRisk, that.rcumsumRisk);
   ArrayUtils.add(rcumsumXRisk, that.rcumsumXRisk);
   ArrayUtils.add(rcumsumXXRisk, that.rcumsumXXRisk);
 }