37#if defined(OGDF_SYSTEM_OSX)
39#elif defined(OGDF_SYSTEM_UNIX) || defined(__MINGW32__)
52#if defined(_M_X64) || defined(__x86_64__)
54#elif defined(_M_IX86) || defined(__i386__)
56#elif defined(_M_IA64) || defined(__ia64__)
57# define OGDF_ARCH_IA64
58#elif defined(_M_MPPC) || defined(_M_PPC) || defined(__powerpc__)
60#elif defined(__sparc__)
61# define OGDF_ARCH_SPARC
62#elif defined(__sparc_v9__)
63# define OGDF_ARCH_SPARC_V9
130#ifdef OGDF_SYSTEM_WINDOWS
136#elif defined(OGDF_SYSTEM_OSX)
145#ifdef OGDF_SYSTEM_WINDOWS
168#if defined(OGDF_SYSTEM_WINDOWS) || defined(__CYGWIN__)
206#if defined(OGDF_SYSTEM_WINDOWS) || defined(__CYGWIN__)
263 return (s_cpuFeatures & (1 <<
static_cast<int>(
feature))) != 0;
284#if defined(OGDF_SYSTEM_WINDOWS) || defined(__CYGWIN__)
Basic declarations, included by all source files.
System specific functionality.
static size_t memoryInGlobalFreeListOfMemoryManager()
Returns the amount of memory (in bytes) contained in the global free list of OGDF's memory manager.
static int getProcessID()
Returns the process ID of the current process.
static size_t memoryAllocatedByMalloc()
Returns the amount of memory (in bytes) allocated on the heap (e.g., with malloc).
static size_t peakMemoryUsedByProcess()
Returns the maximal amount of memory (in bytes) used by the process (Windows/Cygwin only).
static size_t memoryUsedByProcess()
Returns the amount of memory (in bytes) allocated by the process.
static void alignedMemoryFree(void *p)
static int s_cacheLine
Bytes in a cache line.
static int numberOfProcessors()
Returns the number of processors (cores) available on the current system.
static size_t memoryInThreadFreeListOfMemoryManager()
Returns the amount of memory (in bytes) contained in the thread's free list of OGDF's memory manager.
static void init()
Static initilization routine (automatically called).
static int s_numberOfProcessors
Number of processors (cores) available.
static int cpuFeatures()
Returns the bit vector describing the CPU features supported on current system.
static void getHPCounter(int64_t &counter)
Returns the current value of the high-performance counter in counter.
static unsigned int s_cpuFeatures
Supported CPU features.
static int s_pageSize
The page size of virtual memory.
static int64_t usedRealTime(int64_t &t)
Returns the elapsed time (in milliseconds) between t and now.
static int cacheLineBytes()
Returns the number of bytes in a cache line.
static size_t memoryAllocatedByMemoryManager()
Returns the amount of memory (in bytes) allocated by OGDF's memory manager.
static int64_t realTime()
Returns the current time point of the real time wall clock.
static size_t memoryInFreelistOfMalloc()
Returns the amount of memory (in bytes) contained in free chunks on the heap.
static int64_t s_HPCounterFrequency
Frequency of high-performance counter.
static long long availablePhysicalMemory()
Returns the size of available (free) physical memory (in bytes).
static bool cpuSupports(CPUFeature feature)
Returns true if the CPU supports feature.
static long long physicalMemory()
Returns the total size of physical memory (in bytes).
static void * alignedMemoryAlloc16(size_t size)
static int pageSize()
Returns the page size of virtual memory (in bytes).
static int cacheSizeKBytes()
Returns the L2-cache size (in KBytes).
static double elapsedSeconds(const int64_t &startCounter, const int64_t &endCounter)
Returns the elapsed time (in seconds) between startCounter and endCounter.
static int s_cacheSize
Cache size in KBytes.
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF DLL.
CPUFeatureMask
Bit mask for CPU features.
CPUFeature
Special features supported by a x86/x64 CPU.
@ SSSE3
Supplemental Streaming SIMD Extensions 3 (SSSE3)
@ EST
Enhanced Intel SpeedStep Technology.
@ SSE4_2
Streaming SIMD Extensions 4.2 (SSE4.2)
@ MMX
Intel MMX Technology.
@ SSE
Streaming SIMD Extensions (SSE)
@ SSE4_1
Streaming SIMD Extensions 4.1 (SSE4.1)
@ VMX
Virtual Machine Extensions.
@ SSE3
Streaming SIMD Extensions 3 (SSE3)
@ SMX
Safer Mode Extensions.
@ SSE2
Streaming SIMD Extensions 2 (SSE2)
@ MONITOR
Processor supports MONITOR/MWAIT instructions.
static MultilevelBuilder * getDoubleFactoredZeroAdjustedMerger()
The namespace for all OGDF objects.
unsigned int operator|=(unsigned int &i, CPUFeatureMask fm)