Open
Graph Drawing
Framework

 v. 2022.02 (Dogwood)
 

ogdf::fast_multipole_embedder Namespace Reference

Classes

class  ArrayGraph
 
struct  ArrayPartition
 
class  BinCoeff
 binomial coeffs from Hachuls FMMM More...
 
class  CollectForceFunctor
 
struct  composition_functor
 Functor for composing two other functors. More...
 
struct  const_condition
 condition functor for returning a constant boolean value More...
 
class  D2DFunctor
 Calculates the repulsive forces acting between all nodes of the direct interacting cells of the i-th node. More...
 
struct  do_nothing
 the useless do nothing function More...
 
class  EdgeAdjInfo
 Information about an edge (16 bytes). More...
 
class  EdgeForceFunctor
 
struct  EmptyArgType
 
class  FMEBasicKernel
 
class  FMEFuncInvokerTask
 Class used to invoke a functor or function inside a thread. More...
 
struct  FMEGlobalContext
 Global Context. More...
 
struct  FMEGlobalOptions
 the main global options for a run More...
 
class  FMEKernel
 
struct  FMELocalContext
 Local thread Context. More...
 
class  FMEMultipoleKernel
 
struct  FMENodeChainPartition
 
class  FMESingleKernel
 
class  FMETask
 The thread task class used only as an interface. More...
 
class  FMEThread
 The fast multipole embedder work thread class. More...
 
class  FMEThreadPool
 
struct  FMETreePartition
 struct for distributing subtrees to the threads More...
 
struct  FuncInvoker
 
struct  FuncInvoker< FunctionType, ArgType1, ArgType2, ArgType3, ArgType4, ArgType5, ArgType6, ArgType7, EmptyArgType >
 
struct  FuncInvoker< FunctionType, ArgType1, ArgType2, ArgType3, ArgType4, ArgType5, ArgType6, EmptyArgType, EmptyArgType >
 
struct  FuncInvoker< FunctionType, ArgType1, ArgType2, ArgType3, ArgType4, ArgType5, EmptyArgType, EmptyArgType, EmptyArgType >
 
struct  FuncInvoker< FunctionType, ArgType1, ArgType2, ArgType3, ArgType4, EmptyArgType, EmptyArgType, EmptyArgType, EmptyArgType >
 
struct  FuncInvoker< FunctionType, ArgType1, ArgType2, ArgType3, EmptyArgType, EmptyArgType, EmptyArgType, EmptyArgType, EmptyArgType >
 
struct  FuncInvoker< FunctionType, ArgType1, ArgType2, EmptyArgType, EmptyArgType, EmptyArgType, EmptyArgType, EmptyArgType, EmptyArgType >
 
struct  FuncInvoker< FunctionType, ArgType1, EmptyArgType, EmptyArgType, EmptyArgType, EmptyArgType, EmptyArgType, EmptyArgType, EmptyArgType >
 
struct  FuncInvoker< FunctionType, EmptyArgType, EmptyArgType, EmptyArgType, EmptyArgType, EmptyArgType, EmptyArgType, EmptyArgType, EmptyArgType >
 
class  GalaxyMultilevel
 
class  GalaxyMultilevelBuilder
 
struct  if_then_else_functor
 Functor for conditional usage of a functor. More...
 
struct  l2l_functor
 Local-to-Local functor. More...
 
struct  l2p_functor
 Local-to-Point functor. More...
 
class  LinearQuadtree
 
class  LinearQuadtreeBuilder
 the builder for the LinearQuadtree More...
 
class  LinearQuadtreeExpansion
 
class  LQCoordsFunctor
 Computes the coords and size of the i-th node in the LinearQuadtree. More...
 
class  LQMortonFunctor
 
class  LQPartitioner
 The partitioner which partitions the quadtree into subtrees and partitions the sequence of inner nodes and leaves. More...
 
class  LQPointUpdateFunctor
 
struct  m2l_functor
 Multipole-to-Local functor. More...
 
class  M2LFunctor
 Converts the multipole expansion coefficients from all nodes which are well separated from the i-th node to local expansion coefficients and adds them to the local expansion coefficients of the i-th node. More...
 
struct  m2m_functor
 Multipole-to-Multipole functor. More...
 
struct  min_max_functor
 generic min max functor for an array More...
 
class  NDFunctor
 Calculates the repulsive forces acting between all nodes inside the cell of the i-th LinearQuadtree node. More...
 
class  NodeAdjInfo
 Information about incident edges (16 bytes). More...
 
class  NodeMassComparer
 
class  NodeMoveFunctor
 
struct  not_condition_functor
 functor for negating a condition More...
 
struct  p2m_functor
 Point-to-Multipole functor. More...
 
struct  p2p_functor
 Local-to-Point functor. More...
 
struct  pair_call_functor
 helper functor to generate a pair as parameters More...
 
struct  pair_vice_versa_functor
 functor for invoking a functor for a pair(u,v) and then (v,u) More...
 
class  RandomNodeSet
 utility class to select multiple nodes randomly More...
 
class  WSPD
 Class for the Well-Separated-Pairs-Decomposition (WSPD) More...
 

Typedefs

using CoordInt = uint32_t
 
using false_condition = const_condition< false >
 
using MortonNR = uint64_t
 
using true_condition = const_condition< true >
 the corresponding typedefs More...
 

Enumerations

enum  FMECollect { FMECollect::NoFactor = 0x00, FMECollect::EdgeFactor = 0x01, FMECollect::RepulsiveFactor = 0x02, FMECollect::EdgeFactorRep = 0x04, FMECollect::Tree2GraphOrder = 0x08, FMECollect::ZeroThreadArray = 0x10 }
 
enum  FMEEdgeForce { FMEEdgeForce::SubRep = 0x2, FMEEdgeForce::DivDegree = 0x8 }
 

Functions

template<typename T >
T * align_16_next_ptr (T *t)
 
template<typename T >
T * align_16_prev_ptr (T *t)
 
template<unsigned int FLAGS>
static CollectForceFunctor< FLAGS > collect_force_function (FMELocalContext *pLocalContext)
 
template<typename FunctionType >
FuncInvoker< FunctionType > createFuncInvoker (FunctionType func)
 
template<typename FunctionType , typename ArgType1 >
FuncInvoker< FunctionType, ArgType1 > createFuncInvoker (FunctionType func, ArgType1 _arg1)
 
template<typename FunctionType , typename ArgType1 , typename ArgType2 >
FuncInvoker< FunctionType, ArgType1, ArgType2 > createFuncInvoker (FunctionType func, ArgType1 _arg1, ArgType2 _arg2)
 
template<typename FunctionType , typename ArgType1 , typename ArgType2 , typename ArgType3 >
FuncInvoker< FunctionType, ArgType1, ArgType2, ArgType3 > createFuncInvoker (FunctionType func, ArgType1 _arg1, ArgType2 _arg2, ArgType3 _arg3)
 
template<typename FunctionType , typename ArgType1 , typename ArgType2 , typename ArgType3 , typename ArgType4 >
FuncInvoker< FunctionType, ArgType1, ArgType2, ArgType3, ArgType4 > createFuncInvoker (FunctionType func, ArgType1 _arg1, ArgType2 _arg2, ArgType3 _arg3, ArgType4 _arg4)
 
template<typename FunctionType , typename ArgType1 , typename ArgType2 , typename ArgType3 , typename ArgType4 , typename ArgType5 >
FuncInvoker< FunctionType, ArgType1, ArgType2, ArgType3, ArgType4, ArgType5 > createFuncInvoker (FunctionType func, ArgType1 _arg1, ArgType2 _arg2, ArgType3 _arg3, ArgType4 _arg4, ArgType5 _arg5)
 
template<typename FunctionType , typename ArgType1 , typename ArgType2 , typename ArgType3 , typename ArgType4 , typename ArgType5 , typename ArgType6 >
FuncInvoker< FunctionType, ArgType1, ArgType2, ArgType3, ArgType4, ArgType5, ArgType6 > createFuncInvoker (FunctionType func, ArgType1 _arg1, ArgType2 _arg2, ArgType3 _arg3, ArgType4 _arg4, ArgType5 _arg5, ArgType6 _arg6)
 
template<typename FunctionType , typename ArgType1 , typename ArgType2 , typename ArgType3 , typename ArgType4 , typename ArgType5 , typename ArgType6 , typename ArgType7 , typename ArgType8 >
FuncInvoker< FunctionType, ArgType1, ArgType2, ArgType3, ArgType4, ArgType5, ArgType6, ArgType7, ArgType8 > createFuncInvoker (FunctionType func, ArgType1 _arg1, ArgType2 _arg2, ArgType3 _arg3, ArgType4 _arg4, ArgType5 _arg5, ArgType6 _arg6, ArgType7 _arg7)
 
template<typename FunctionType , typename ArgType1 , typename ArgType2 , typename ArgType3 , typename ArgType4 , typename ArgType5 , typename ArgType6 , typename ArgType7 , typename ArgType8 >
FuncInvoker< FunctionType, ArgType1, ArgType2, ArgType3, ArgType4, ArgType5, ArgType6, ArgType7, ArgType8 > createFuncInvoker (FunctionType func, ArgType1 _arg1, ArgType2 _arg2, ArgType3 _arg3, ArgType4 _arg4, ArgType5 _arg5, ArgType6 _arg6, ArgType7 _arg7, ArgType8 _arg8)
 
template<unsigned int FLAGS>
static EdgeForceFunctor< FLAGS > edge_force_function (FMELocalContext *pLocalContext)
 
void eval_direct (float *x, float *y, float *s, float *fx, float *fy, size_t n)
 kernel function to evaluate forces between n points with coords x, y directly. result is stored in fx, fy More...
 
void eval_direct (float *x1, float *y1, float *s1, float *fx1, float *fy1, size_t n1, float *x2, float *y2, float *s2, float *fx2, float *fy2, size_t n2)
 kernel function to evaluate forces between two sets of points with coords x1, y1 (x2, y2) directly. result is stored in fx1, fy1 (fx2, fy2 More...
 
void eval_direct_fast (float *x, float *y, float *s, float *fx, float *fy, size_t n)
 kernel function to evaluate forces between n points with coords x, y directly. result is stored in fx, fy More...
 
void eval_direct_fast (float *x1, float *y1, float *s1, float *fx1, float *fy1, size_t n1, float *x2, float *y2, float *s2, float *fx2, float *fy2, size_t n2)
 kernel function to evaluate forces between two sets of points with coords x1, y1 (x2, y2) directly. result is stored in fx1, fy1 (fx2, fy2 More...
 
void eval_edges (const ArrayGraph &graph, const uint32_t begin, const uint32_t end, float *fx, float *fy)
 
void fast_multipole_l2p (double *localCoeffiecients, uint32_t numCoeffiecients, double centerX, double centerY, float x, float y, float q, float &fx, float &fy)
 kernel function to evalute a local expansion at point x,y result is added to fx, fy More...
 
void fast_multipole_p2m (double *mulitCoeffiecients, uint32_t numCoeffiecients, double centerX, double centerY, float x, float y, float q)
 
template<typename TYP >
void for_loop_array_set (uint32_t threadNr, uint32_t numThreads, TYP *a, uint32_t n, TYP value)
 
template<typename FuncFirst , typename FuncSecond >
static composition_functor< FuncFirst, FuncSecond > func_comp (const FuncFirst &first, const FuncSecond &second)
 create a functor composition of two functors More...
 
void gridGraph (Graph &G, int n, int m)
 
template<typename CondType , typename ThenType >
static if_then_else_functor< CondType, ThenType > if_then (const CondType &cond, const ThenType &thenFunc)
 creates an if then functor with a condition and a then functor More...
 
template<typename CondType , typename ThenType , typename ElseType >
static if_then_else_functor< CondType, ThenType, ElseType > if_then_else (const CondType &cond, const ThenType &thenFunc, const ElseType &elseFunc)
 creates an if then else functor with a condition and a then and an else functor More...
 
template<typename T >
bool is_align_16 (T *ptr)
 
static l2l_functor l2l_function (FMELocalContext *pLocalContext)
 creates Local-to-Local functor More...
 
static l2p_functor l2p_function (FMELocalContext *pLocalContext)
 creates Local-to-Point functor More...
 
bool LQPointComparer (const LinearQuadtree::LQPoint &a, const LinearQuadtree::LQPoint &b)
 
static m2l_functor m2l_function (FMELocalContext *pLocalContext)
 creates Multipole-to-Local functor More...
 
static m2m_functor m2m_function (FMELocalContext *pLocalContext)
 creates Multipole-to-Multipole functor More...
 
static min_max_functor< float > min_max_x_function (FMELocalContext *pLocalContext)
 creates a min max functor for the x coords of the node More...
 
static min_max_functor< float > min_max_y_function (FMELocalContext *pLocalContext)
 creates a min max functor for the y coords of the node More...
 
template<typename MNR_T , typename C_T >
MNR_T mortonNumber (C_T ix, C_T iy)
 common template for bit-interleaving to compute the morton number assumes sizeOf(MNR_T) = 2*sizeOf(C_T) More...
 
template<typename MNR_T , typename C_T >
void mortonNumberInv (MNR_T mnr, C_T &x, C_T &y)
 common template for extracting the coordinates from a morton number assumes sizeOf(MNR_T) = 2*sizeOf(C_T) More...
 
template<typename T >
uint32_t mostSignificantBit (T n)
 returns the index of the most signficant bit set. 0 = most signif, bitlength-1 = least signif More...
 
double move_nodes (float *x, float *y, const uint32_t begin, const uint32_t end, const float *fx, const float *fy, const float t)
 
template<unsigned int FLAGS>
static NodeMoveFunctor< FLAGS > node_move_function (FMELocalContext *pLocalContext)
 
template<typename Func >
static not_condition_functor< Func > not_condition (const Func &func)
 creator of the negator More...
 
void OGDF_FME_Print_Config ()
 
int operator& (int lhs, FMECollect rhs)
 
int operator& (int lhs, FMEEdgeForce rhs)
 
constexpr int operator| (FMECollect lhs, FMECollect rhs)
 
constexpr int operator| (int lhs, FMECollect rhs)
 
static p2m_functor p2m_function (FMELocalContext *pLocalContext)
 creates a Point-to-Multipole functor More...
 
static p2p_functor p2p_function (FMELocalContext *pLocalContext)
 creates Local-to-Point functor More...
 
template<typename F , typename A >
static pair_call_functor< F, A > pair_call (F f, A a)
 creates a pair call resulting in a call f(a, *) More...
 
template<typename Func >
static pair_vice_versa_functor< Func > pair_vice_versa (const Func &f)
 creates a functor for invoking a functor for a pair(u,v) and then (v,u) More...
 
uint32_t prevPowerOfTwo (uint32_t n)
 returns the prev power of two More...
 
void printProfiledTime (double t, const char *text)
 
void printProfiledTime (double t, double sum, const char *text)
 
void pushBackEdge (uint32_t a, uint32_t b, std::function< EdgeAdjInfo &(uint32_t)> edgeInform, std::function< NodeAdjInfo &(uint32_t)> nodeInform, int e_index)
 Helper method used by ArrayGraph and WSPD. More...
 
void randomGridGraph (Graph &G, int n, int m, double missinNodesPercentage=0.03)
 

Variables

static constexpr int TIME_STEP_NORMAL = 0x1
 
static constexpr int TIME_STEP_PREP = 0x2
 
static constexpr int USE_NODE_MOVE_RAD = 0x8
 
static constexpr int ZERO_GLOBAL_ARRAY = 0x4
 

Typedef Documentation

◆ CoordInt

using ogdf::fast_multipole_embedder::CoordInt = typedef uint32_t

Definition at line 70 of file FastUtils.h.

◆ false_condition

Definition at line 56 of file FMEFunctional.h.

◆ MortonNR

using ogdf::fast_multipole_embedder::MortonNR = typedef uint64_t

Definition at line 69 of file FastUtils.h.

◆ true_condition

the corresponding typedefs

Definition at line 55 of file FMEFunctional.h.

Enumeration Type Documentation

◆ FMECollect

Enumerator
NoFactor 
EdgeFactor 
RepulsiveFactor 
EdgeFactorRep 
Tree2GraphOrder 
ZeroThreadArray 

Definition at line 813 of file FMEFunc.h.

◆ FMEEdgeForce

Enumerator
SubRep 
DivDegree 

Definition at line 721 of file FMEFunc.h.

Function Documentation

◆ align_16_next_ptr()

template<typename T >
T* ogdf::fast_multipole_embedder::align_16_next_ptr ( T *  t)
inline

Definition at line 85 of file FastUtils.h.

◆ align_16_prev_ptr()

template<typename T >
T* ogdf::fast_multipole_embedder::align_16_prev_ptr ( T *  t)
inline

Definition at line 79 of file FastUtils.h.

◆ collect_force_function()

template<unsigned int FLAGS>
static CollectForceFunctor<FLAGS> ogdf::fast_multipole_embedder::collect_force_function ( FMELocalContext pLocalContext)
inlinestatic

Definition at line 916 of file FMEFunc.h.

◆ createFuncInvoker() [1/9]

template<typename FunctionType >
FuncInvoker<FunctionType> ogdf::fast_multipole_embedder::createFuncInvoker ( FunctionType  func)

Definition at line 591 of file FastUtils.h.

◆ createFuncInvoker() [2/9]

template<typename FunctionType , typename ArgType1 >
FuncInvoker<FunctionType, ArgType1> ogdf::fast_multipole_embedder::createFuncInvoker ( FunctionType  func,
ArgType1  _arg1 
)

Definition at line 584 of file FastUtils.h.

◆ createFuncInvoker() [3/9]

template<typename FunctionType , typename ArgType1 , typename ArgType2 >
FuncInvoker<FunctionType, ArgType1, ArgType2> ogdf::fast_multipole_embedder::createFuncInvoker ( FunctionType  func,
ArgType1  _arg1,
ArgType2  _arg2 
)

Definition at line 577 of file FastUtils.h.

◆ createFuncInvoker() [4/9]

template<typename FunctionType , typename ArgType1 , typename ArgType2 , typename ArgType3 >
FuncInvoker<FunctionType, ArgType1, ArgType2, ArgType3> ogdf::fast_multipole_embedder::createFuncInvoker ( FunctionType  func,
ArgType1  _arg1,
ArgType2  _arg2,
ArgType3  _arg3 
)

Definition at line 570 of file FastUtils.h.

◆ createFuncInvoker() [5/9]

template<typename FunctionType , typename ArgType1 , typename ArgType2 , typename ArgType3 , typename ArgType4 >
FuncInvoker<FunctionType, ArgType1, ArgType2, ArgType3, ArgType4> ogdf::fast_multipole_embedder::createFuncInvoker ( FunctionType  func,
ArgType1  _arg1,
ArgType2  _arg2,
ArgType3  _arg3,
ArgType4  _arg4 
)

Definition at line 563 of file FastUtils.h.

◆ createFuncInvoker() [6/9]

template<typename FunctionType , typename ArgType1 , typename ArgType2 , typename ArgType3 , typename ArgType4 , typename ArgType5 >
FuncInvoker<FunctionType, ArgType1, ArgType2, ArgType3, ArgType4, ArgType5> ogdf::fast_multipole_embedder::createFuncInvoker ( FunctionType  func,
ArgType1  _arg1,
ArgType2  _arg2,
ArgType3  _arg3,
ArgType4  _arg4,
ArgType5  _arg5 
)

Definition at line 556 of file FastUtils.h.

◆ createFuncInvoker() [7/9]

template<typename FunctionType , typename ArgType1 , typename ArgType2 , typename ArgType3 , typename ArgType4 , typename ArgType5 , typename ArgType6 >
FuncInvoker<FunctionType, ArgType1, ArgType2, ArgType3, ArgType4, ArgType5, ArgType6> ogdf::fast_multipole_embedder::createFuncInvoker ( FunctionType  func,
ArgType1  _arg1,
ArgType2  _arg2,
ArgType3  _arg3,
ArgType4  _arg4,
ArgType5  _arg5,
ArgType6  _arg6 
)

Definition at line 549 of file FastUtils.h.

◆ createFuncInvoker() [8/9]

template<typename FunctionType , typename ArgType1 , typename ArgType2 , typename ArgType3 , typename ArgType4 , typename ArgType5 , typename ArgType6 , typename ArgType7 , typename ArgType8 >
FuncInvoker<FunctionType, ArgType1, ArgType2, ArgType3, ArgType4, ArgType5, ArgType6, ArgType7, ArgType8> ogdf::fast_multipole_embedder::createFuncInvoker ( FunctionType  func,
ArgType1  _arg1,
ArgType2  _arg2,
ArgType3  _arg3,
ArgType4  _arg4,
ArgType5  _arg5,
ArgType6  _arg6,
ArgType7  _arg7 
)

Definition at line 542 of file FastUtils.h.

◆ createFuncInvoker() [9/9]

template<typename FunctionType , typename ArgType1 , typename ArgType2 , typename ArgType3 , typename ArgType4 , typename ArgType5 , typename ArgType6 , typename ArgType7 , typename ArgType8 >
FuncInvoker<FunctionType, ArgType1, ArgType2, ArgType3, ArgType4, ArgType5, ArgType6, ArgType7, ArgType8> ogdf::fast_multipole_embedder::createFuncInvoker ( FunctionType  func,
ArgType1  _arg1,
ArgType2  _arg2,
ArgType3  _arg3,
ArgType4  _arg4,
ArgType5  _arg5,
ArgType6  _arg6,
ArgType7  _arg7,
ArgType8  _arg8 
)

Definition at line 535 of file FastUtils.h.

◆ edge_force_function()

template<unsigned int FLAGS>
static EdgeForceFunctor<FLAGS> ogdf::fast_multipole_embedder::edge_force_function ( FMELocalContext pLocalContext)
inlinestatic

Definition at line 807 of file FMEFunc.h.

◆ eval_direct() [1/2]

void ogdf::fast_multipole_embedder::eval_direct ( float *  x,
float *  y,
float *  s,
float *  fx,
float *  fy,
size_t  n 
)
inline

kernel function to evaluate forces between n points with coords x, y directly. result is stored in fx, fy

Definition at line 122 of file FMEKernel.h.

◆ eval_direct() [2/2]

void ogdf::fast_multipole_embedder::eval_direct ( float *  x1,
float *  y1,
float *  s1,
float *  fx1,
float *  fy1,
size_t  n1,
float *  x2,
float *  y2,
float *  s2,
float *  fx2,
float *  fy2,
size_t  n2 
)
inline

kernel function to evaluate forces between two sets of points with coords x1, y1 (x2, y2) directly. result is stored in fx1, fy1 (fx2, fy2

Definition at line 146 of file FMEKernel.h.

◆ eval_direct_fast() [1/2]

void ogdf::fast_multipole_embedder::eval_direct_fast ( float *  x,
float *  y,
float *  s,
float *  fx,
float *  fy,
size_t  n 
)
inline

kernel function to evaluate forces between n points with coords x, y directly. result is stored in fx, fy

Definition at line 172 of file FMEKernel.h.

◆ eval_direct_fast() [2/2]

void ogdf::fast_multipole_embedder::eval_direct_fast ( float *  x1,
float *  y1,
float *  s1,
float *  fx1,
float *  fy1,
size_t  n1,
float *  x2,
float *  y2,
float *  s2,
float *  fx2,
float *  fy2,
size_t  n2 
)
inline

kernel function to evaluate forces between two sets of points with coords x1, y1 (x2, y2) directly. result is stored in fx1, fy1 (fx2, fy2

Definition at line 178 of file FMEKernel.h.

◆ eval_edges()

void ogdf::fast_multipole_embedder::eval_edges ( const ArrayGraph graph,
const uint32_t  begin,
const uint32_t  end,
float *  fx,
float *  fy 
)
inline

Definition at line 94 of file FMEKernel.h.

◆ fast_multipole_l2p()

void ogdf::fast_multipole_embedder::fast_multipole_l2p ( double *  localCoeffiecients,
uint32_t  numCoeffiecients,
double  centerX,
double  centerY,
float  x,
float  y,
float  q,
float &  fx,
float &  fy 
)

kernel function to evalute a local expansion at point x,y result is added to fx, fy

◆ fast_multipole_p2m()

void ogdf::fast_multipole_embedder::fast_multipole_p2m ( double *  mulitCoeffiecients,
uint32_t  numCoeffiecients,
double  centerX,
double  centerY,
float  x,
float  y,
float  q 
)

◆ for_loop_array_set()

template<typename TYP >
void ogdf::fast_multipole_embedder::for_loop_array_set ( uint32_t  threadNr,
uint32_t  numThreads,
TYP *  a,
uint32_t  n,
TYP  value 
)
inline

Definition at line 1023 of file FMEFunc.h.

◆ func_comp()

template<typename FuncFirst , typename FuncSecond >
static composition_functor<FuncFirst, FuncSecond> ogdf::fast_multipole_embedder::func_comp ( const FuncFirst &  first,
const FuncSecond &  second 
)
inlinestatic

create a functor composition of two functors

Definition at line 173 of file FMEFunctional.h.

◆ gridGraph()

void ogdf::fast_multipole_embedder::gridGraph ( Graph G,
int  n,
int  m 
)
inline

Definition at line 257 of file FastUtils.h.

◆ if_then()

template<typename CondType , typename ThenType >
static if_then_else_functor<CondType, ThenType> ogdf::fast_multipole_embedder::if_then ( const CondType &  cond,
const ThenType &  thenFunc 
)
inlinestatic

creates an if then functor with a condition and a then functor

Definition at line 117 of file FMEFunctional.h.

◆ if_then_else()

template<typename CondType , typename ThenType , typename ElseType >
static if_then_else_functor<CondType, ThenType, ElseType> ogdf::fast_multipole_embedder::if_then_else ( const CondType &  cond,
const ThenType &  thenFunc,
const ElseType &  elseFunc 
)
inlinestatic

creates an if then else functor with a condition and a then and an else functor

Definition at line 110 of file FMEFunctional.h.

◆ is_align_16()

template<typename T >
bool ogdf::fast_multipole_embedder::is_align_16 ( T *  ptr)
inline

Definition at line 73 of file FastUtils.h.

◆ l2l_function()

static l2l_functor ogdf::fast_multipole_embedder::l2l_function ( FMELocalContext pLocalContext)
inlinestatic

creates Local-to-Local functor

Definition at line 297 of file FMEFunc.h.

◆ l2p_function()

static l2p_functor ogdf::fast_multipole_embedder::l2p_function ( FMELocalContext pLocalContext)
inlinestatic

creates Local-to-Point functor

Definition at line 327 of file FMEFunc.h.

◆ LQPointComparer()

bool ogdf::fast_multipole_embedder::LQPointComparer ( const LinearQuadtree::LQPoint a,
const LinearQuadtree::LQPoint b 
)
inline

Definition at line 786 of file LinearQuadtree.h.

◆ m2l_function()

static m2l_functor ogdf::fast_multipole_embedder::m2l_function ( FMELocalContext pLocalContext)
inlinestatic

creates Multipole-to-Local functor

Definition at line 270 of file FMEFunc.h.

◆ m2m_function()

static m2m_functor ogdf::fast_multipole_embedder::m2m_function ( FMELocalContext pLocalContext)
inlinestatic

creates Multipole-to-Multipole functor

Definition at line 249 of file FMEFunc.h.

◆ min_max_x_function()

static min_max_functor<float> ogdf::fast_multipole_embedder::min_max_x_function ( FMELocalContext pLocalContext)
inlinestatic

creates a min max functor for the x coords of the node

Definition at line 145 of file FMEFunc.h.

◆ min_max_y_function()

static min_max_functor<float> ogdf::fast_multipole_embedder::min_max_y_function ( FMELocalContext pLocalContext)
inlinestatic

creates a min max functor for the y coords of the node

Definition at line 151 of file FMEFunc.h.

◆ mortonNumber()

template<typename MNR_T , typename C_T >
MNR_T ogdf::fast_multipole_embedder::mortonNumber ( C_T  ix,
C_T  iy 
)
inline

common template for bit-interleaving to compute the morton number assumes sizeOf(MNR_T) = 2*sizeOf(C_T)

Definition at line 124 of file FastUtils.h.

◆ mortonNumberInv()

template<typename MNR_T , typename C_T >
void ogdf::fast_multipole_embedder::mortonNumberInv ( MNR_T  mnr,
C_T &  x,
C_T &  y 
)
inline

common template for extracting the coordinates from a morton number assumes sizeOf(MNR_T) = 2*sizeOf(C_T)

Definition at line 146 of file FastUtils.h.

◆ mostSignificantBit()

template<typename T >
uint32_t ogdf::fast_multipole_embedder::mostSignificantBit ( n)
inline

returns the index of the most signficant bit set. 0 = most signif, bitlength-1 = least signif

Definition at line 165 of file FastUtils.h.

◆ move_nodes()

double ogdf::fast_multipole_embedder::move_nodes ( float *  x,
float *  y,
const uint32_t  begin,
const uint32_t  end,
const float *  fx,
const float *  fy,
const float  t 
)
inline

Definition at line 80 of file FMEKernel.h.

◆ node_move_function()

template<unsigned int FLAGS>
static NodeMoveFunctor<FLAGS> ogdf::fast_multipole_embedder::node_move_function ( FMELocalContext pLocalContext)
inlinestatic

Definition at line 1016 of file FMEFunc.h.

◆ not_condition()

template<typename Func >
static not_condition_functor<Func> ogdf::fast_multipole_embedder::not_condition ( const Func &  func)
inlinestatic

creator of the negator

Definition at line 72 of file FMEFunctional.h.

◆ OGDF_FME_Print_Config()

void ogdf::fast_multipole_embedder::OGDF_FME_Print_Config ( )
inline

Definition at line 56 of file FastUtils.h.

◆ operator&() [1/2]

int ogdf::fast_multipole_embedder::operator& ( int  lhs,
FMECollect  rhs 
)
inline

Definition at line 823 of file FMEFunc.h.

◆ operator&() [2/2]

int ogdf::fast_multipole_embedder::operator& ( int  lhs,
FMEEdgeForce  rhs 
)
inline

Definition at line 726 of file FMEFunc.h.

◆ operator|() [1/2]

constexpr int ogdf::fast_multipole_embedder::operator| ( FMECollect  lhs,
FMECollect  rhs 
)
inlineconstexpr

Definition at line 831 of file FMEFunc.h.

◆ operator|() [2/2]

constexpr int ogdf::fast_multipole_embedder::operator| ( int  lhs,
FMECollect  rhs 
)
inlineconstexpr

Definition at line 827 of file FMEFunc.h.

◆ p2m_function()

static p2m_functor ogdf::fast_multipole_embedder::p2m_function ( FMELocalContext pLocalContext)
inlinestatic

creates a Point-to-Multipole functor

Definition at line 222 of file FMEFunc.h.

◆ p2p_function()

static p2p_functor ogdf::fast_multipole_embedder::p2p_function ( FMELocalContext pLocalContext)
inlinestatic

creates Local-to-Point functor

Definition at line 366 of file FMEFunc.h.

◆ pair_call()

template<typename F , typename A >
static pair_call_functor<F, A> ogdf::fast_multipole_embedder::pair_call ( f,
a 
)
inlinestatic

creates a pair call resulting in a call f(a, *)

Definition at line 141 of file FMEFunctional.h.

◆ pair_vice_versa()

template<typename Func >
static pair_vice_versa_functor<Func> ogdf::fast_multipole_embedder::pair_vice_versa ( const Func &  f)
inlinestatic

creates a functor for invoking a functor for a pair(u,v) and then (v,u)

Definition at line 198 of file FMEFunctional.h.

◆ prevPowerOfTwo()

uint32_t ogdf::fast_multipole_embedder::prevPowerOfTwo ( uint32_t  n)
inline

returns the prev power of two

Definition at line 180 of file FastUtils.h.

◆ printProfiledTime() [1/2]

void ogdf::fast_multipole_embedder::printProfiledTime ( double  t,
const char *  text 
)
inline

Definition at line 113 of file FastUtils.h.

◆ printProfiledTime() [2/2]

void ogdf::fast_multipole_embedder::printProfiledTime ( double  t,
double  sum,
const char *  text 
)
inline

Definition at line 114 of file FastUtils.h.

◆ pushBackEdge()

void ogdf::fast_multipole_embedder::pushBackEdge ( uint32_t  a,
uint32_t  b,
std::function< EdgeAdjInfo &(uint32_t)>  edgeInform,
std::function< NodeAdjInfo &(uint32_t)>  nodeInform,
int  e_index 
)

Helper method used by ArrayGraph and WSPD.

◆ randomGridGraph()

void ogdf::fast_multipole_embedder::randomGridGraph ( Graph G,
int  n,
int  m,
double  missinNodesPercentage = 0.03 
)
inline

Definition at line 284 of file FastUtils.h.

Variable Documentation

◆ TIME_STEP_NORMAL

constexpr int ogdf::fast_multipole_embedder::TIME_STEP_NORMAL = 0x1
staticconstexpr

Definition at line 922 of file FMEFunc.h.

◆ TIME_STEP_PREP

constexpr int ogdf::fast_multipole_embedder::TIME_STEP_PREP = 0x2
staticconstexpr

Definition at line 923 of file FMEFunc.h.

◆ USE_NODE_MOVE_RAD

constexpr int ogdf::fast_multipole_embedder::USE_NODE_MOVE_RAD = 0x8
staticconstexpr

Definition at line 925 of file FMEFunc.h.

◆ ZERO_GLOBAL_ARRAY

constexpr int ogdf::fast_multipole_embedder::ZERO_GLOBAL_ARRAY = 0x4
staticconstexpr

Definition at line 924 of file FMEFunc.h.