code: public static Last[][] setScoreVector(int x, int xb, int yb, int ye, int gop, int gep, int[] subs,
  			boolean storing, int[][][] scores, int[] xyMax, int score) {
  		Last[][] pointers;
  		ensureScoringMatrixColumn(x, storing, scores);
  		if (x == xb) {
  			pointers = new Last[ye + 1][scores[0][0].length];
  		} else {
  			pointers = new Last[ye + 1][];
  			pointers[0] = new Last[scores[0][0].length];
  			for (int y = 1; y < scores[0].length; y++) {
  				pointers[y] = setScorePoint(x, y, gop, gep, subs[y], scores);
  				for (int z = 0; z < scores[0][0].length; z++) {
  					if (scores[x][y][z] <= 0) {
  						scores[x][y][z] = 0;
  						pointers[y][z] = null;
  					}
  				}
  				if (scores[x][y][0] > score) {
  					xyMax[0] = x;
  					xyMax[1] = y;
  					score = scores[x][y][0];
  				}
  			}
  		}
  		return pointers;
  	}
docs: Score local alignment for a given position in the query sequence
  @param x
  @param xb
  @param yb
  @param ye
  @param gop
  @param gep
  @param subs
  @param storing
  @param scores
  @param xyMax
  @param score
  @return