globals.h File Reference

Global typedefs and constant declarations. More...

#include <climits>
#include <cfloat>
#include <cstdlib>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <iostream>
#include <fstream>
#include <iomanip>
#include <exception>
#include <new>
#include "configuration.h"
#include <sys/times.h>
#include <unistd.h>

Data Structures

struct  TPoolTable
 Tabular imformation required by attribute pools. More...
class  ERGoblin
 Base class for all exceptions raised by the library. More...
class  ERIO
 Base class for all file I/O related errors. More...
class  ERFile
 Exception raised in case of unavailable input files or output directories. More...
class  ERParse
 Exception raised in case of syntactically incorrect input files. More...
class  ERInternal
 Exceptions representing internal errors. More...
class  ERRejected
 Exception raised in case of inapplicable methods. More...
class  ERRange
 Exception raised in case of range violations. More...
class  ERCheck
 Exception raised in replace of a regular return code, not considered an error. More...

Typedefs

typedef unsigned long TNode
typedef unsigned long TArc
typedef float TCap
typedef double TFloat
typedef unsigned long THandle
typedef unsigned long TIndex
typedef unsigned long TSize
typedef unsigned char TDim
typedef unsigned short TOption
typedef unsigned long TVar
typedef unsigned long TRestr
typedef char * TString
typedef unsigned short TPoolEnum

Enumerations

enum  TTimer {
  TimerSolve = 0,
  TimerIO = 1,
  TimerUnionFind = 2,
  TimerHash = 3,
  TimerPrioQ = 4,
  TimerPricing = 5,
  TimerQTest = 6,
  TimerPivoting = 7,
  TimerSPTree = 8,
  TimerMinTree = 9,
  TimerComponents = 10,
  TimerMaxFlow = 11,
  TimerMinCut = 12,
  TimerMinCFlow = 13,
  TimerMatching = 14,
  TimerBranch = 15,
  TimerLpSolve = 16,
  TimerTsp = 17,
  TimerColour = 18,
  TimerSteiner = 19,
  TimerStable = 20,
  TimerMaxCut = 21,
  TimerTreePack = 22,
  TimerTJoin = 23,
  TimerCycleCancel = 24,
  TimerMaxBalFlow = 25,
  TimerPrimalDual = 26,
  TimerPlanarity = 27,
  TimerDrawing = 28,
  TimerMIP = 29,
  TimerBNS = 30,
  TimerLocalSearch = 31,
  TimerHeuristics = 32,
  TimerStrongConn = 33,
  NoTimer = 34
}
enum  TModule {
  ModRoot = 0,
  ModLpSolve = 1,
  ModColour = 2,
  ModStable = 3,
  ModBranch = 4,
  ModTSP = 5,
  ModSteiner = 6,
  ModMaxCut = 7,
  ModMinTree = 8,
  ModMaxFlow = 9,
  ModMinCFlow = 10,
  ModComponents = 11,
  ModMinCut = 12,
  ModSPTree = 13,
  ModTreePack = 14,
  ModMatching = 15,
  ModTJoin = 16,
  ModPostman = 17,
  ModLpPricing = 18,
  ModLpQTest = 19,
  ModLpPivoting = 20,
  ModCycleCancel = 21,
  ModMaxBalFlow = 22,
  ModMinCBalFlow = 23,
  ModPlanarity = 24,
  ModGLPK = 25,
  ModGraphLoad = 26,
  ModEdmondsKarp = 27,
  ModDinic = 28,
  ModPushRelabel = 29,
  ModPrim = 30,
  ModPrim2 = 31,
  ModKruskal = 32,
  ModEdmondsArb = 33,
  ModPlanarityDMP = 34,
  ModDikjstra = 35,
  ModBellmanFord = 36,
  ModFloydWarshall = 37,
  ModFIFOLabelCorrect = 38,
  ModKarpMeanCycle = 39,
  ModKleinCanceling = 40,
  ModShortPath2 = 41,
  ModMeanCycleCanceling = 42,
  ModNetworkSimplex = 43,
  ModCostScaling = 44,
  ModBusackerGowen = 45,
  ModSubgradOptTSP = 46,
  ModTreeApproxTSP = 47,
  ModChristofides = 48,
  Mod2OptTSP = 49,
  ModNodeInsert = 50,
  ModRandomTour = 51,
  ModFarthestInsert = 52,
  ModMehlhorn = 53,
  ModStrongComponents = 54,
  ModBiconnectivity = 55,
  ModSchnorr = 56,
  ModHaoOrlin = 57,
  ModNodeIdentification = 58,
  ModHierholzer = 59,
  ModDAGSearch = 60,
  ModPrimalDual = 61,
  ModAnstee = 62,
  ModMicaliVazirani = 63,
  ModBalAugment = 64,
  ModBalScaling = 65,
  ModBNSExact = 66,
  ModBNSDepth = 67,
  ModBNSBreadth = 68,
  ModEnhancedPD = 69,
  ModBNS = 70,
  ModMaxCutTJoin = 71,
  ModMaxCutGRASP = 72,
  ModLMCOrder = 73,
  ModConvexDrawing = 74,
  ModSpringEmbedder = 75,
  ModGEM = 76,
  ModDakin = 77,
  ModMCFCapScaling = 78,
  ModKandinsky = 79,
  Mod4Orthogonal = 80,
  ModVisibilityRepr = 81,
  ModLayeredFDP = 82,
  ModFeedbackArcSet = 83,
  ModLayering = 84,
  ModSeriesParallel = 85,
  ModStaircase = 86,
  ModPlanarityHoTa = 87,
  ModStrongConn = 88,
  ModForceDirected = 89,
  ModChordality = 90,
  NoModule = 91
}
enum  TAuthor {
  AuthCFP = 0,
  AuthBSchmidt = 1,
  AuthMSchwank = 2,
  AuthBEisermann = 3,
  AuthAMakhorin = 4,
  NoAuthor = 5
}
enum  TReference {
  RefJun97 = 0,
  RefCPCS98 = 1,
  RefGoMi84 = 2,
  RefAMO93 = 3,
  RefGPR96 = 4,
  RefEdKa72 = 5,
  RefDin70 = 6,
  RefGoTa88 = 7,
  RefPrim57 = 8,
  RefKru56 = 9,
  RefEdm67 = 10,
  RefDMP64 = 11,
  RefGou88 = 12,
  RefDij59 = 13,
  RefBel58 = 14,
  RefFlo62 = 15,
  RefKar78 = 16,
  RefEdJo73 = 17,
  RefBuGo61 = 18,
  RefKle67 = 19,
  RefGoTa89 = 20,
  RefGoTa90 = 21,
  RefHeKa70 = 22,
  RefChr76 = 23,
  RefCro58 = 24,
  RefRei94 = 25,
  RefPrSt02 = 26,
  RefTar72 = 27,
  RefAHU83 = 28,
  RefSch79 = 29,
  RefHie1873 = 30,
  RefPaRi90 = 31,
  RefHaOr94 = 32,
  RefEd65a = 33,
  RefFrJu99a = 34,
  RefFrJu99b = 35,
  RefFrJu01a = 36,
  RefFrJu01b = 37,
  RefFrJu02 = 38,
  RefMiVa80 = 39,
  RefKoSt95 = 40,
  RefGoKa96 = 41,
  RefAns87 = 42,
  RefKaMu74 = 43,
  RefPaCo80 = 44,
  RefAns85 = 45,
  RefOrDo72 = 46,
  RefFPRR02 = 47,
  RefKan96 = 48,
  RefEad84 = 49,
  RefFLM94 = 50,
  RefSch03 = 51,
  RefBre79 = 52,
  RefBiKa94 = 53,
  RefBMT97 = 54,
  RefKaWa01 = 55,
  RefRoTa86 = 56,
  RefKan93 = 57,
  RefVTL82 = 58,
  RefFKK96 = 59,
  RefHoTa74 = 60,
  RefWil84 = 61,
  RefEis06 = 62,
  RefHCPV00 = 63,
  NoReference = 64
}
enum  TOptGraphTokens {
  TokGraphRepresentation = 0,
  TokGraphObjectives = 1,
  TokGraphGeometry = 2,
  TokGraphLayout = 3,
  TokGraphRegisters = 4,
  TokGraphConfigure = 5,
  TokGraphCommodities = 6,
  TokGraphBound = 7,
  TokGraphLength = 8,
  TokGraphEndSection = 9,
  NoTokGrasph = 10
}
enum  TOptReprTokens {
  TokReprUCap = 0,
  TokReprLCap = 1,
  TokReprLength = 2,
  TokReprDemand = 3,
  TokReprOrientation = 4,
  TokReprFirst = 5,
  TokReprRight = 6,
  TokReprStartNode = 7,
  TokReprIncidences = 8,
  TokReprNNodes = 9,
  TokReprNArcs = 10,
  TokReprComm0 = 11,
  TokReprEndSection = 12,
  NoTokRepr = 13
}
enum  TOptGeometryTokens {
  TokGeoDim = 0,
  TokGeoMetric = 1,
  TokGeoCoordinates = 2,
  TokGeoAxis0 = 3,
  TokGeoAxis1 = 4,
  TokGeoAxis2 = 5,
  TokGeoMinBound = 6,
  TokGeoMaxBound = 7,
  TokGeoEndSection = 8,
  NoTokGeo = 9
}
enum  TOptLayoutTokens {
  TokLayoutModel = 0,
  TokLayoutStyle = 1,
  TokLayoutArcLabel = 2,
  TokLayoutThread = 3,
  TokLayoutInterpolate = 4,
  TokLayoutHiddenNode = 5,
  TokLayoutHiddenArc = 6,
  TokLayoutExteriorArc = 7,
  TokLayoutArcWidthMode = 8,
  TokLayoutArcWidthMin = 9,
  TokLayoutArcWidthMax = 10,
  TokLayoutArcStippleMode = 11,
  TokLayoutArcVisibilityMode = 12,
  TokLayoutArcShapeMode = 13,
  TokLayoutArcColourMode = 14,
  TokLayoutArrowDisplayMode = 15,
  TokLayoutArrowPosMode = 16,
  TokLayoutArrowSize = 17,
  TokLayoutNodeShapeMode = 18,
  TokLayoutNodeColourMode = 19,
  TokLayoutNodeSize = 20,
  TokLayoutNodeFontSize = 21,
  TokLayoutArcFontSize = 22,
  TokLayoutNodeFontType = 23,
  TokLayoutArcFontType = 24,
  TokLayoutGridDisplayMode = 25,
  TokLayoutFineSpacing = 26,
  TokLayoutBendSpacing = 27,
  TokLayoutNodeSpacing = 28,
  TokLayoutNodeLabelFormat = 29,
  TokLayoutArcLabelFormat = 30,
  TokLayoutEndSection = 31,
  NoTokLayout = 32
}
enum  TOptRegTokens {
  TokRegLabel = 0,
  TokRegPredecessor = 1,
  TokRegSubgraph = 2,
  TokRegPotential = 3,
  TokRegNodeColour = 4,
  TokRegEdgeColour = 5,
  TokRegColour = 6,
  TokRegOriginalNode = 7,
  TokRegOriginalArc = 8,
  TokV_T,
  TokEdgeType,
  TokPreO,
  TokPostO,
  TokLow1,
  TokLow2,
  TokRegEndSection,
  NoTokRegister
}
enum  TBaseType {
  TYPE_NODE_INDEX = 0,
  TYPE_ARC_INDEX = 1,
  TYPE_FLOAT_VALUE = 2,
  TYPE_CAP_VALUE = 3,
  TYPE_INDEX = 4,
  TYPE_ORIENTATION = 5,
  TYPE_INT = 6,
  TYPE_DOUBLE = 7,
  TYPE_BOOL = 8,
  TYPE_CHAR = 9,
  TYPE_VAR_INDEX = 10,
  TYPE_RESTR_INDEX = 11
}
enum  TArrayDim {
  DIM_GRAPH_NODES = 0,
  DIM_GRAPH_ARCS = 1,
  DIM_ARCS_TWICE = 2,
  DIM_LAYOUT_NODES = 3,
  DIM_SINGLETON = 4,
  DIM_PAIR = 5,
  DIM_STRING = 6
}
enum  TSizeInfo {
  SIZE_ACTUAL = 0,
  SIZE_RESERVED = 1
}
enum  TLayoutModel {
  LAYOUT_DEFAULT = -1,
  LAYOUT_FREESTYLE_POLYGONES = 0,
  LAYOUT_FREESTYLE_CURVES = 1,
  LAYOUT_ORTHO_SMALL = 2,
  LAYOUT_ORTHO_BIG = 3,
  LAYOUT_VISIBILITY = 4,
  LAYOUT_KANDINSKI = 5,
  LAYOUT_STRAIGHT_2DIM = 6,
  LAYOUT_LAYERED = 7,
  LAYOUT_NONE = 8
}
enum  TPortMode {
  PORTS_IMPLICIT = 0,
  PORTS_EXPLICIT = 1
}
enum  msgType {
  ERR_CHECK = 0,
  ERR_PARSE = 1,
  ERR_FILE = 2,
  ERR_RANGE = 3,
  ERR_REJECTED = 4,
  ERR_INTERNAL = 5,
  MSG_APPEND = 6,
  MSG_WARN = 7,
  MSG_TRACE = 8,
  MSG_TRACE2 = 9,
  MSG_ECHO = 11,
  LOG_IO = 12,
  LOG_MAN = 13,
  LOG_MEM = 14,
  LOG_RES = 16,
  LOG_RES2 = 17,
  LOG_METH = 18,
  LOG_METH2 = 19,
  LOG_SHELL = 22,
  LOG_TIMERS = 23,
  LOG_GAPS = 24
}

Functions

void * DefaultValueAsVoidPtr (TBaseType _type) throw ()
template<typename T>
DefaultValue (TBaseType _type) throw ()
void * GoblinRealloc (void *p, size_t size) throw (std::bad_alloc)
void * operator new (size_t size) throw (std::bad_alloc)
void * operator new (size_t size, const std::nothrow_t &) throw ()
void * operator new[] (size_t size) throw (std::bad_alloc)
void * operator new[] (size_t size, const std::nothrow_t &) throw ()
void operator delete (void *p) throw ()
void operator delete (void *p, size_t) throw ()
void operator delete (void *p, const std::nothrow_t &) throw ()
void operator delete[] (void *p) throw ()
void operator delete[] (void *p, size_t) throw ()
void operator delete[] (void *p, const std::nothrow_t &) throw ()
THandle NewObjectHandle () throw ()

Variables

const TNode NoNode
const TArc NoArc
const TCap InfCap
const TFloat InfFloat
const THandle NoHandle
const TIndex NoIndex
const TDim NoCoord
const TVar NoVar
const TRestr NoRestr
const TPoolTable listOfGraphPars []
const TPoolTable listOfReprPars []
const TPoolTable listOfGeometryPars []
const TPoolTable listOfLayoutPars []
const TPoolTable listOfRegisters []
size_t goblinHeapSize
size_t goblinMaxSize
size_t goblinNFragments
size_t goblinNAllocs
size_t goblinNObjects
const double PI = 3.141592653589793238512808959406186204433


Detailed Description

Global typedefs and constant declarations.


Typedef Documentation

typedef unsigned long TArc
 

typedef float TCap
 

typedef unsigned char TDim
 

typedef double TFloat
 

typedef unsigned long THandle
 

typedef unsigned long TIndex
 

typedef unsigned long TNode
 

typedef unsigned short TOption
 

typedef unsigned long TRestr
 

typedef unsigned long TSize
 

typedef char* TString
 

typedef unsigned long TVar
 


Enumeration Type Documentation

enum TAuthor
 

Enumerator:
AuthCFP 
AuthBSchmidt 
AuthMSchwank 
AuthBEisermann 
AuthAMakhorin 
NoAuthor 

enum TLayoutModel
 

Enumerator:
LAYOUT_DEFAULT 
LAYOUT_FREESTYLE_POLYGONES 
LAYOUT_FREESTYLE_CURVES 
LAYOUT_ORTHO_SMALL 
LAYOUT_ORTHO_BIG 
LAYOUT_VISIBILITY 
LAYOUT_KANDINSKI 
LAYOUT_STRAIGHT_2DIM 
LAYOUT_LAYERED 
LAYOUT_NONE 

enum TModule
 

Enumerator:
ModRoot 
ModLpSolve 
ModColour 
ModStable 
ModBranch 
ModTSP 
ModSteiner 
ModMaxCut 
ModMinTree 
ModMaxFlow 
ModMinCFlow 
ModComponents 
ModMinCut 
ModSPTree 
ModTreePack 
ModMatching 
ModTJoin 
ModPostman 
ModLpPricing 
ModLpQTest 
ModLpPivoting 
ModCycleCancel 
ModMaxBalFlow 
ModMinCBalFlow 
ModPlanarity 
ModGLPK 
ModGraphLoad 
ModEdmondsKarp 
ModDinic 
ModPushRelabel 
ModPrim 
ModPrim2 
ModKruskal 
ModEdmondsArb 
ModPlanarityDMP 
ModDikjstra 
ModBellmanFord 
ModFloydWarshall 
ModFIFOLabelCorrect 
ModKarpMeanCycle 
ModKleinCanceling 
ModShortPath2 
ModMeanCycleCanceling 
ModNetworkSimplex 
ModCostScaling 
ModBusackerGowen 
ModSubgradOptTSP 
ModTreeApproxTSP 
ModChristofides 
Mod2OptTSP 
ModNodeInsert 
ModRandomTour 
ModFarthestInsert 
ModMehlhorn 
ModStrongComponents 
ModBiconnectivity 
ModSchnorr 
ModHaoOrlin 
ModNodeIdentification 
ModHierholzer 
ModDAGSearch 
ModPrimalDual 
ModAnstee 
ModMicaliVazirani 
ModBalAugment 
ModBalScaling 
ModBNSExact 
ModBNSDepth 
ModBNSBreadth 
ModEnhancedPD 
ModBNS 
ModMaxCutTJoin 
ModMaxCutGRASP 
ModLMCOrder 
ModConvexDrawing 
ModSpringEmbedder 
ModGEM 
ModDakin 
ModMCFCapScaling 
ModKandinsky 
Mod4Orthogonal 
ModVisibilityRepr 
ModLayeredFDP 
ModFeedbackArcSet 
ModLayering 
ModSeriesParallel 
ModStaircase 
ModPlanarityHoTa 
ModStrongConn 
ModForceDirected 
ModChordality 
NoModule 

enum TPortMode
 

Possible modes for the computation of arc display ends.

Enumerator:
PORTS_IMPLICIT  Arc display ends are computed to match the displayed node size.
PORTS_EXPLICIT  Arc display ends are specified by explicit layout nodes.

enum TReference
 

Enumerator:
RefJun97 
RefCPCS98 
RefGoMi84 
RefAMO93 
RefGPR96 
RefEdKa72 
RefDin70 
RefGoTa88 
RefPrim57 
RefKru56 
RefEdm67 
RefDMP64 
RefGou88 
RefDij59 
RefBel58 
RefFlo62 
RefKar78 
RefEdJo73 
RefBuGo61 
RefKle67 
RefGoTa89 
RefGoTa90 
RefHeKa70 
RefChr76 
RefCro58 
RefRei94 
RefPrSt02 
RefTar72 
RefAHU83 
RefSch79 
RefHie1873 
RefPaRi90 
RefHaOr94 
RefEd65a 
RefFrJu99a 
RefFrJu99b 
RefFrJu01a 
RefFrJu01b 
RefFrJu02 
RefMiVa80 
RefKoSt95 
RefGoKa96 
RefAns87 
RefKaMu74 
RefPaCo80 
RefAns85 
RefOrDo72 
RefFPRR02 
RefKan96 
RefEad84 
RefFLM94 
RefSch03 
RefBre79 
RefBiKa94 
RefBMT97 
RefKaWa01 
RefRoTa86 
RefKan93 
RefVTL82 
RefFKK96 
RefHoTa74 
RefWil84 
RefEis06 
RefHCPV00 
NoReference 

enum TTimer
 

Enumerator:
TimerSolve 
TimerIO 
TimerUnionFind 
TimerHash 
TimerPrioQ 
TimerPricing 
TimerQTest 
TimerPivoting 
TimerSPTree 
TimerMinTree 
TimerComponents 
TimerMaxFlow 
TimerMinCut 
TimerMinCFlow 
TimerMatching 
TimerBranch 
TimerLpSolve 
TimerTsp 
TimerColour 
TimerSteiner 
TimerStable 
TimerMaxCut 
TimerTreePack 
TimerTJoin 
TimerCycleCancel 
TimerMaxBalFlow 
TimerPrimalDual 
TimerPlanarity 
TimerDrawing 
TimerMIP 
TimerBNS 
TimerLocalSearch 
TimerHeuristics 
TimerStrongConn 
NoTimer 


Function Documentation

THandle NewObjectHandle  )  throw ()
 


Variable Documentation

const TCap InfCap
 

const TFloat InfFloat
 

const TArc NoArc
 

const TDim NoCoord
 

const THandle NoHandle
 

const TIndex NoIndex
 

const TNode NoNode
 

const TRestr NoRestr
 

const TVar NoVar
 

const double PI = 3.141592653589793238512808959406186204433