/*Implementation of PStep_SeparationAlgorithm.h

It contains the member functions of PStep_SeparationAlgorithm6

*/

#include "PStep_SeparationAlgorithm.h"

//PStep_SeparationAlgorithm6:
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

//Separate
//------------------------------------------------------------------------------------

//Simultaneously separate capacity, framed capacity, homogenous multistar,
//strengthened comb and 2 edge hypotour cuts uing the algorithm of Lysgaard.
void PStep_SeparationAlgorithm6::Separate(){

	//Prepare the selected edges
	SetCurrentEdges();

	//Check whether there are any positively selected edges
	if (NumberOfEdgesPlusOne > 1){
		//Separate capacity cuts
		SeparateCCLysgaard();
		//Separate framed capacity cuts
		SeparateFCCLysgaard();
		//Separate homogeneous multistar cuts
		SeparateHMCLysgaard();
		//Separate strengthened comb cuts
		SeparateSCombLysgaard();
		//Separate 2 edge hypotour cuts
		Separate2EHLysgaard();
	}

}