#include <ogdf/energybased/fast_multipole_embedder/FMEMultipoleKernel.h>
Inheritance diagram for ogdf::fast_multipole_embedder::FMEMultipoleKernel:Public Member Functions | |
| FMEMultipoleKernel (FMEThread *pThread) | |
| ArrayPartition | arrayPartition (uint32_t n) |
| creates an array partition with a default chunksize of 16 | |
| ArrayPartition | arrayPartition (uint32_t n, uint32_t threadNr, uint32_t numThreads, uint32_t chunkSize) |
| returns an array partition for the given threadNr and thread count | |
| template<typename F > | |
| void | for_loop (const ArrayPartition &partition, F func) |
| for loop on a partition | |
| template<typename F > | |
| void | for_tree_partition (F functor) |
| for loop on the tree partition | |
| void | multipoleApproxFinal (ArrayPartition &nodePointPartition) |
| the final version, the wspd structure is only used for the top of the tree | |
| void | multipoleApproxNoWSPDStructure (ArrayPartition &nodePointPartition) |
| new but slower method, parallel wspd computation without using the wspd structure | |
| void | multipoleApproxSingleThreaded (ArrayPartition &nodePointPartition) |
| the single threaded version without fences | |
| void | multipoleApproxSingleWSPD (ArrayPartition &nodePointPartition) |
| the original algorithm which runs the WSPD completely single threaded | |
| void | operator() (FMEGlobalContext *globalContext) |
| main function of the kernel | |
| void | quadtreeConstruction (ArrayPartition &nodePointPartition) |
| sub procedure for quadtree construction | |
| template<typename T , typename C > | |
| void | sort_parallel (T *ptr, uint32_t n, C comparer) |
| lazy parallel sorting for num_threads = power of two | |
| template<typename T , typename C > | |
| void | sort_parallel (T *ptr, uint32_t n, C comparer, uint32_t threadNrBegin, uint32_t numThreads) |
| lazy parallel sorting for num_threads = power of two | |
| template<typename T , typename C > | |
| void | sort_single (T *ptr, uint32_t n, C comparer) |
| sorting single threaded | |
Public Member Functions inherited from ogdf::fast_multipole_embedder::FMEKernel | |
| FMEKernel (FMEThread *pThread) | |
| bool | isMainThread () const |
| returns true if this is the main thread ( the main thread is always the first thread ) | |
| bool | isSingleThreaded () const |
| returns true if this run only uses one thread ) | |
| uint32_t | numThreads () const |
| returns the total number of threads in the pool | |
| void | sync () |
| uint32_t | threadNr () const |
| returns the index of the thread ( 0.. numThreads()-1 ) | |
Static Public Member Functions | |
| static FMEGlobalContext * | allocateContext (ArrayGraph *pGraph, FMEGlobalOptions *pOptions, uint32_t numThreads) |
| allocate the global and local contexts used by an instance of this kernel | |
| static void | deallocateContext (FMEGlobalContext *globalContext) |
| free the global and local context | |
Private Attributes | |
| FMEGlobalContext * | m_pGlobalContext = nullptr |
| FMELocalContext * | m_pLocalContext = nullptr |
Definition at line 61 of file FMEMultipoleKernel.h.
|
inlineexplicit |
Definition at line 63 of file FMEMultipoleKernel.h.
|
static |
allocate the global and local contexts used by an instance of this kernel
|
inline |
creates an array partition with a default chunksize of 16
Definition at line 91 of file FMEMultipoleKernel.h.
|
inline |
returns an array partition for the given threadNr and thread count
Definition at line 96 of file FMEMultipoleKernel.h.
|
static |
free the global and local context
|
inline |
for loop on a partition
Definition at line 128 of file FMEMultipoleKernel.h.
|
inline |
for loop on the tree partition
Definition at line 139 of file FMEMultipoleKernel.h.
| void ogdf::fast_multipole_embedder::FMEMultipoleKernel::multipoleApproxFinal | ( | ArrayPartition & | nodePointPartition | ) |
the final version, the wspd structure is only used for the top of the tree
| void ogdf::fast_multipole_embedder::FMEMultipoleKernel::multipoleApproxNoWSPDStructure | ( | ArrayPartition & | nodePointPartition | ) |
new but slower method, parallel wspd computation without using the wspd structure
| void ogdf::fast_multipole_embedder::FMEMultipoleKernel::multipoleApproxSingleThreaded | ( | ArrayPartition & | nodePointPartition | ) |
the single threaded version without fences
| void ogdf::fast_multipole_embedder::FMEMultipoleKernel::multipoleApproxSingleWSPD | ( | ArrayPartition & | nodePointPartition | ) |
the original algorithm which runs the WSPD completely single threaded
| void ogdf::fast_multipole_embedder::FMEMultipoleKernel::operator() | ( | FMEGlobalContext * | globalContext | ) |
main function of the kernel
| void ogdf::fast_multipole_embedder::FMEMultipoleKernel::quadtreeConstruction | ( | ArrayPartition & | nodePointPartition | ) |
sub procedure for quadtree construction
|
inline |
lazy parallel sorting for num_threads = power of two
Definition at line 155 of file FMEMultipoleKernel.h.
|
inline |
lazy parallel sorting for num_threads = power of two
Definition at line 165 of file FMEMultipoleKernel.h.
|
inline |
sorting single threaded
Definition at line 147 of file FMEMultipoleKernel.h.
|
private |
Definition at line 191 of file FMEMultipoleKernel.h.
|
private |
Definition at line 192 of file FMEMultipoleKernel.h.