ReadFramework
GCoptimizationGeneralGraph Class Reference

#include <GCoptimization.h>

Inheritance diagram for GCoptimizationGeneralGraph:
Collaboration diagram for GCoptimizationGeneralGraph:

Public Member Functions

 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)
 
- Public Member Functions inherited from GCoptimization
 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)
 

Protected Member Functions

virtual void giveNeighborInfo (SiteID site, SiteID *numSites, SiteID **neighbors, EnergyTermType **weights)
 
virtual void finalizeNeighbors ()
 
- Protected Member Functions inherited from GCoptimization
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 ()
 

Additional Inherited Members

- Public Types inherited from GCoptimization
typedef long long EnergyType
 
typedef int EnergyTermType
 
typedef Energy< EnergyTermType, EnergyTermType, EnergyTypeEnergyT
 
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 *)
 
- Static Protected Member Functions inherited from GCoptimization
template<typename Functor >
static void deleteFunctor (void *f)
 
static void handleError (const char *message)
 
static void checkInterrupt ()
 
- Protected Attributes inherited from GCoptimization
LabelID m_num_labels
 
SiteID m_num_sites
 
LabelIDm_labeling
 
SiteIDm_lookupSiteVar
 
LabelIDm_labelTable
 
int m_stepsThisCycle
 
int m_stepsThisCycleTotal
 
int m_random_label_order
 
EnergyTermTypem_datacostIndividual
 
EnergyTermTypem_smoothcostIndividual
 
EnergyTermTypem_labelingDataCosts
 
SiteIDm_labelCounts
 
SiteIDm_activeLabelCounts
 
LabelCostm_labelcostsAll
 
LabelCostIter ** m_labelcostsByLabel
 
int m_labelcostCount
 
bool m_labelingInfoDirty
 
int m_verbosity
 
void * m_datacostFn
 
void * m_smoothcostFn
 
EnergyType m_beforeExpansionEnergy
 
SiteIDm_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 &)
 

Constructor & Destructor Documentation

GCoptimizationGeneralGraph::GCoptimizationGeneralGraph ( SiteID  num_sites,
LabelID  num_labels 
)
GCoptimizationGeneralGraph::~GCoptimizationGeneralGraph ( )
virtual

Member Function Documentation

void GCoptimizationGeneralGraph::finalizeNeighbors ( )
protectedvirtual

Implements GCoptimization.

void GCoptimizationGeneralGraph::giveNeighborInfo ( SiteID  site,
SiteID numSites,
SiteID **  neighbors,
EnergyTermType **  weights 
)
protectedvirtual
void GCoptimizationGeneralGraph::setAllNeighbors ( SiteID numNeighbors,
SiteID **  neighborsIndexes,
EnergyTermType **  neighborsWeights 
)
void GCoptimizationGeneralGraph::setNeighbors ( SiteID  site1,
SiteID  site2,
EnergyTermType  weight = 1 
)

The documentation for this class was generated from the following files: