question: private void doDdpOrientation ( Node d , Node a , Node b , Node c , Graph graph ) { List < Node > sepset = getSepset ( d , c ) ; if ( sepset == null ) { return ; } if ( sepset . contains ( b ) ) { graph . setEndpoint ( c , b , Endpoint . TAIL ) ; if ( verbose ) { logger . log ( "impliedOrientations" , SearchLogUtils . edgeOrientedMsg ( "Definite discriminating path d = " + d , graph . getEdge ( b , c ) ) ) ; out . println ( SearchLogUtils . edgeOrientedMsg ( "Definite discriminating path d = " + d , graph . getEdge ( b , c ) ) ) ; } changeFlag = true ; } else { if ( ! isArrowpointAllowed ( a , b , graph ) ) { return ; } if ( ! isArrowpointAllowed ( c , b , graph ) ) { return ; } graph . setEndpoint ( a , b , Endpoint . ARROW ) ; graph . setEndpoint ( c , b , Endpoint . ARROW ) ; logger . log ( "colliderOrientations" , SearchLogUtils . colliderOrientedMsg ( "Definite discriminating path.. d = " + d , a , b , c ) ) ; changeFlag = true ; } }
target:  Orients the edges inside the definte discriminating path triangle. Takes the left endpoint, and a,b,c as arguments.