The main code of the module which combines all codes using include is the VPolyhedralCut.jl. To implement a cutting plane in SCIP.jl, one should implement a subtype T of SCIP.AbstractSparator and a corresponding method SCIP.exec_lp(data::T). The subtype is defined in VPCStructures.jl and the method is defined in VPCexeclp.jl.
The code is divided into six main folders
nonbasicspacedefines a structure NonbasicSpace which assist in converting points and rays from the structural problem of the variable into the nonbasic spacebranchandbounddefines a structureBranchAndBoundwhich holds the data for a branch and bound treedisjunctiondefines a structureDisjunctionwhich holds the data for a disjunction. There is an adaptor that takes leaves of aBranchAndBoundtree into aDisjunctionobjectpointraydefines the structurePointRayCollectionan object which can be created from a disjunction. It will collect points and rays from a disjunction.prlpdefines the structurePRLPwhich allows us to construct the separating LP and manage its solution.cutpooldefines the structureCutPoolwhich manages the addition of cuts into SCIP.commonscontains various utility function definitions such as numerics, log helpers and helper functions for working with SCIP tableau.