▁core - distance ( p , ▁e ps , ▁Min P ts ) ▁▁▁▁▁ ▁for ▁each ▁o ▁in ▁N ▁▁▁▁▁▁▁▁▁ ▁if ▁o ▁is ▁not ▁processed ▁then ▁▁▁▁▁▁▁▁▁▁▁▁▁ ▁new - re ach - dist ▁= ▁max ( cor ed ist , ▁dist ( p , o )) ▁▁▁▁▁▁▁▁▁▁▁▁▁ ▁if ▁o . re ach ability - distance ▁== ▁UN DEF IN ED ▁then ▁// ▁o ▁is ▁not ▁in ▁Se eds ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ ▁ ▁o . re ach ability - distance ▁= ▁new - re ach - dist ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ ▁ ▁Se eds . insert ( o , ▁new - re ach - dist ) ▁▁▁▁▁▁▁▁▁▁▁▁▁ ▁else ▁▁▁▁▁▁▁▁▁▁▁▁▁▁ ▁// ▁o ▁in ▁Se eds , ▁check ▁for ▁improvement ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ ▁ ▁if ▁new - re ach - dist ▁< ▁o . re ach ability - distance ▁then ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ ▁▁▁▁▁ ▁o . re ach ability - distance ▁= ▁new - re ach - dist ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ ▁▁▁▁▁ ▁Se eds . move - up ( o , ▁new - re ach - dist ) ▁ ▁OP T IC S ▁hence ▁outputs ▁the ▁points ▁in ▁a ▁particular ▁ordering , ▁annot ated ▁with ▁their ▁smallest ▁reach ability ▁distance ▁( in ▁the ▁original ▁algorithm , ▁the ▁core ▁distance ▁is ▁also ▁export ed , ▁but ▁this ▁is ▁not ▁required ▁for ▁further ▁processing ). ▁ ▁Ext ract ing ▁the ▁clusters ▁ ▁Using ▁a ▁reach ability - plot ▁( a ▁special ▁kind ▁of ▁d end ro gram ), ▁the ▁hier arch ical ▁structure ▁of ▁the ▁clusters ▁can ▁be ▁obtained ▁easily . ▁It ▁is ▁a ▁ 2 D ▁plot ,