docs: private void diffDownClique(float[] weights, int[] orders, int p) {
  		for (int t = 0; t < orders.length; t++) {
  			if (data[1][p][t] == -1)
  				continue;
  
  			int base = data[1][p][t];
  			if (orders[t] == 0) {
  				if (golds[1][p] != preds[1][p]) {
  					int ts = base + golds[1][p];
  					int ps = base + preds[1][p];
  					adjust(weights, ts, ps);
  				}
  			}
  			if (orders[t] == -1) {
  				if (golds[0][p] != preds[0][p] || golds[1][p] != preds[1][p]) {
  					int ts = base + golds[0][p] * ysize[1] + golds[1][p];
  					int ps = base + preds[0][p] * ysize[1] + preds[1][p];
  					adjust(weights, ts, ps);
  				}
  			}
  			if (p > 0) {
  				if (orders[t] == 1) {
  					if (golds[1][p - 1] != preds[1][p - 1]
  							|| golds[1][p] != preds[1][p]) {
  						int ts = base + golds[1][p - 1] * ysize[1] + golds[1][p];
  						int ps = base + preds[1][p - 1] * ysize[1] + preds[1][p];
  						adjust(weights, ts, ps);
  					}
  				}
  				if (orders[t] == 2) {
  					int ts = base + (golds[1][p - 1] * ysize[0] + golds[0][p])
  							* ysize[1] + golds[1][p];
  					int ps = base + (preds[1][p - 1] * ysize[0] + preds[0][p])
  							* ysize[1] + preds[1][p];
  					adjust(weights, ts, ps);
  				}
  			}
  		}
  	}