| 
|   | GCoptimizationGridGraph (SiteID width, SiteID height, LabelID num_labels) | 
|   | 
| virtual  | ~GCoptimizationGridGraph () | 
|   | 
| void  | setSmoothCostVH (EnergyTermType *smoothArray, EnergyTermType *vCosts, EnergyTermType *hCosts) | 
|   | 
|   | 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 () | 
|   | 
| 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 () | 
|   |