| 
|   | GCoptimizationGeneralGraph (SiteID num_sites, LabelID num_labels) | 
|   | 
| virtual  | ~GCoptimizationGeneralGraph () | 
|   | 
| void  | setNeighbors (SiteID site1, SiteID site2, EnergyTermType weight=1) | 
|   | 
| void  | setAllNeighbors (SiteID *numNeighbors, SiteID **neighborsIndexes, EnergyTermType **neighborsWeights) | 
|   | 
|   | GCoptimization (SiteID num_sites, LabelID num_labels) | 
|   | 
| virtual  | ~GCoptimization () | 
|   | 
| EnergyType  | expansion (int max_num_iterations=-1) | 
|   | 
| bool  | alpha_expansion (LabelID alpha_label) | 
|   | 
| EnergyType  | swap (int max_num_iterations=-1) | 
|   | 
| void  | alpha_beta_swap (LabelID alpha_label, LabelID beta_label) | 
|   | 
| void  | alpha_beta_swap (LabelID alpha_label, LabelID beta_label, SiteID *alphaSites, SiteID alpha_size, SiteID *betaSites, SiteID beta_size) | 
|   | 
| void  | setDataCost (DataCostFn fn) | 
|   | 
| void  | setDataCost (DataCostFnExtra fn, void *extraData) | 
|   | 
| void  | setDataCost (EnergyTermType *dataArray) | 
|   | 
| void  | setDataCost (SiteID s, LabelID l, EnergyTermType e) | 
|   | 
| void  | setDataCostFunctor (DataCostFunctor *f) | 
|   | 
| void  | setDataCost (LabelID l, SparseDataCost *costs, SiteID count) | 
|   | 
| void  | setSmoothCost (SmoothCostFn fn) | 
|   | 
| void  | setSmoothCost (SmoothCostFnExtra fn, void *extraData) | 
|   | 
| void  | setSmoothCost (LabelID l1, LabelID l2, EnergyTermType e) | 
|   | 
| void  | setSmoothCost (EnergyTermType *smoothArray) | 
|   | 
| void  | setSmoothCostFunctor (SmoothCostFunctor *f) | 
|   | 
| void  | setLabelCost (EnergyTermType cost) | 
|   | 
| void  | setLabelCost (EnergyTermType *costArray) | 
|   | 
| void  | setLabelSubsetCost (LabelID *labels, LabelID numLabels, EnergyTermType cost) | 
|   | 
| LabelID  | whatLabel (SiteID site) | 
|   | 
| void  | whatLabel (SiteID start, SiteID count, LabelID *labeling) | 
|   | 
| void  | setLabel (SiteID site, LabelID label) | 
|   | 
| void  | setLabelOrder (bool isRandom) | 
|   | 
| void  | setLabelOrder (const LabelID *order, LabelID size) | 
|   | 
| EnergyType  | compute_energy () | 
|   | 
| EnergyType  | giveDataEnergy () | 
|   | 
| EnergyType  | giveSmoothEnergy () | 
|   | 
| EnergyType  | giveLabelEnergy () | 
|   | 
| SiteID  | numSites () const  | 
|   | 
| LabelID  | numLabels () const  | 
|   | 
| void  | setVerbosity (int level) | 
|   | 
 | 
| virtual void  | giveNeighborInfo (SiteID site, SiteID *numSites, SiteID **neighbors, EnergyTermType **weights) | 
|   | 
| virtual void  | finalizeNeighbors () | 
|   | 
| virtual void  | giveNeighborInfo (SiteID site, SiteID *numSites, SiteID **neighbors, EnergyTermType **weights)=0 | 
|   | 
| template<typename DataCostT >  | 
| SiteID  | queryActiveSitesExpansion (LabelID alpha_label, SiteID *activeSites) | 
|   | 
| template<typename DataCostT >  | 
| void  | setupDataCostsExpansion (SiteID size, LabelID alpha_label, EnergyT *e, SiteID *activeSites) | 
|   | 
| template<typename DataCostT >  | 
| void  | setupDataCostsSwap (SiteID size, LabelID alpha_label, LabelID beta_label, EnergyT *e, SiteID *activeSites) | 
|   | 
| template<typename SmoothCostT >  | 
| void  | setupSmoothCostsExpansion (SiteID size, LabelID alpha_label, EnergyT *e, SiteID *activeSites) | 
|   | 
| template<typename SmoothCostT >  | 
| void  | setupSmoothCostsSwap (SiteID size, LabelID alpha_label, LabelID beta_label, EnergyT *e, SiteID *activeSites) | 
|   | 
| template<typename DataCostT >  | 
| void  | applyNewLabeling (EnergyT *e, SiteID *activeSites, SiteID size, LabelID alpha_label) | 
|   | 
| template<typename DataCostT >  | 
| void  | updateLabelingDataCosts () | 
|   | 
| template<typename UserFunctor >  | 
| void  | specializeDataCostFunctor (const UserFunctor f) | 
|   | 
| template<typename UserFunctor >  | 
| void  | specializeSmoothCostFunctor (const UserFunctor f) | 
|   | 
| EnergyType  | setupLabelCostsExpansion (SiteID size, LabelID alpha_label, EnergyT *e, SiteID *activeSites) | 
|   | 
| void  | updateLabelingInfo (bool updateCounts=true, bool updateActive=true, bool updateCosts=true) | 
|   | 
| void  | addterm1_checked (EnergyT *e, VarID i, EnergyTermType e0, EnergyTermType e1) | 
|   | 
| void  | addterm1_checked (EnergyT *e, VarID i, EnergyTermType e0, EnergyTermType e1, EnergyTermType w) | 
|   | 
| void  | addterm2_checked (EnergyT *e, VarID i, VarID j, EnergyTermType e00, EnergyTermType e01, EnergyTermType e10, EnergyTermType e11, EnergyTermType w) | 
|   | 
| template<typename SmoothCostT >  | 
| EnergyType  | giveSmoothEnergyInternal () | 
|   | 
 | 
| typedef long long  | EnergyType | 
|   | 
| typedef int  | EnergyTermType | 
|   | 
| typedef Energy< EnergyTermType, EnergyTermType, EnergyType >  | EnergyT | 
|   | 
| typedef EnergyT::Var  | VarID | 
|   | 
| typedef int  | LabelID | 
|   | 
| typedef VarID  | SiteID | 
|   | 
| typedef EnergyTermType(*  | SmoothCostFn) (SiteID s1, SiteID s2, LabelID l1, LabelID l2) | 
|   | 
| typedef EnergyTermType(*  | DataCostFn) (SiteID s, LabelID l) | 
|   | 
| typedef EnergyTermType(*  | SmoothCostFnExtra) (SiteID s1, SiteID s2, LabelID l1, LabelID l2, void *) | 
|   | 
| typedef EnergyTermType(*  | DataCostFnExtra) (SiteID s, LabelID l, void *) | 
|   | 
| template<typename Functor >  | 
| static void  | deleteFunctor (void *f) | 
|   | 
| static void  | handleError (const char *message) | 
|   | 
| static void  | checkInterrupt () | 
|   | 
| LabelID  | m_num_labels | 
|   | 
| SiteID  | m_num_sites | 
|   | 
| LabelID *  | m_labeling | 
|   | 
| SiteID *  | m_lookupSiteVar | 
|   | 
| LabelID *  | m_labelTable | 
|   | 
| int  | m_stepsThisCycle | 
|   | 
| int  | m_stepsThisCycleTotal | 
|   | 
| int  | m_random_label_order | 
|   | 
| EnergyTermType *  | m_datacostIndividual | 
|   | 
| EnergyTermType *  | m_smoothcostIndividual | 
|   | 
| EnergyTermType *  | m_labelingDataCosts | 
|   | 
| SiteID *  | m_labelCounts | 
|   | 
| SiteID *  | m_activeLabelCounts | 
|   | 
| LabelCost *  | m_labelcostsAll | 
|   | 
| LabelCostIter **  | m_labelcostsByLabel | 
|   | 
| int  | m_labelcostCount | 
|   | 
| bool  | m_labelingInfoDirty | 
|   | 
| int  | m_verbosity | 
|   | 
| void *  | m_datacostFn | 
|   | 
| void *  | m_smoothcostFn | 
|   | 
| EnergyType  | m_beforeExpansionEnergy | 
|   | 
| SiteID *  | m_numNeighbors | 
|   | 
| SiteID  | m_numNeighborsTotal | 
|   | 
| EnergyType(GCoptimization::*  | m_giveSmoothEnergyInternal )() | 
|   | 
| SiteID(GCoptimization::*  | m_queryActiveSitesExpansion )(LabelID, SiteID *) | 
|   | 
| void(GCoptimization::*  | m_setupDataCostsExpansion )(SiteID, LabelID, EnergyT *, SiteID *) | 
|   | 
| void(GCoptimization::*  | m_setupSmoothCostsExpansion )(SiteID, LabelID, EnergyT *, SiteID *) | 
|   | 
| void(GCoptimization::*  | m_setupDataCostsSwap )(SiteID, LabelID, LabelID, EnergyT *, SiteID *) | 
|   | 
| void(GCoptimization::*  | m_setupSmoothCostsSwap )(SiteID, LabelID, LabelID, EnergyT *, SiteID *) | 
|   | 
| void(GCoptimization::*  | m_applyNewLabeling )(EnergyT *, SiteID *, SiteID, LabelID) | 
|   | 
| void(GCoptimization::*  | m_updateLabelingDataCosts )() | 
|   | 
| void(*  | m_datacostFnDelete )(void *f) | 
|   | 
| void(*  | m_smoothcostFnDelete )(void *f) | 
|   | 
| bool(GCoptimization::*  | m_solveSpecialCases )(EnergyType &) | 
|   |