(int curIndex, Vec vec, List<Integer> orderedFile)
| 622 | } |
| 623 | |
| 624 | private void expandClusterOrder(int curIndex, Vec vec, List<Integer> orderedFile) |
| 625 | { |
| 626 | List<? extends VecPaired<VecPaired<Vec, Integer>, Double>> neighbors = vc.search(vec, radius); |
| 627 | VecPaired<Vec, Integer> object = new VecPaired<Vec, Integer>(vec, curIndex); |
| 628 | |
| 629 | reach_d[curIndex] = UNDEFINED;//NaN used for undefined |
| 630 | processed[curIndex] = true; |
| 631 | setCoreDistance(neighbors, curIndex); |
| 632 | orderedFile.add(curIndex); |
| 633 | |
| 634 | if(!Double.isInfinite(core_distance[curIndex])) |
| 635 | { |
| 636 | orderedSeedsUpdate(neighbors, curIndex); |
| 637 | while(!orderdSeeds.isEmpty()) |
| 638 | { |
| 639 | int curObjectIndex = orderdSeeds.poll(); |
| 640 | neighbors = vc.search(allVecs[curObjectIndex], radius); |
| 641 | processed[curObjectIndex] = true; |
| 642 | setCoreDistance(neighbors, curObjectIndex); |
| 643 | orderedFile.add(curObjectIndex); |
| 644 | if(!Double.isInfinite(core_distance[curObjectIndex])) |
| 645 | orderedSeedsUpdate(neighbors, curObjectIndex); |
| 646 | } |
| 647 | } |
| 648 | |
| 649 | } |
| 650 | |
| 651 | private void setCoreDistance(List<? extends VecPaired<VecPaired<Vec, Integer>, Double>> neighbors, int curIndex) |
| 652 | { |
no test coverage detected