Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

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 69 of file FastUtils.h.

◆ false_condition

Definition at line 64 of file FMEFunctional.h.

◆ MortonNR

using ogdf::fast_multipole_embedder::MortonNR = typedef uint64_t

Definition at line 68 of file FastUtils.h.

◆ true_condition

the corresponding typedefs

Definition at line 63 of file FMEFunctional.h.

Enumeration Type Documentation

◆ FMECollect

Enumerator
NoFactor 
EdgeFactor 
RepulsiveFactor 
EdgeFactorRep 
Tree2GraphOrder 
ZeroThreadArray 

Definition at line 690 of file FMEFunc.h.

◆ FMEEdgeForce

Enumerator
SubRep 
DivDegree 

Definition at line 615 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 82 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 77 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 773 of file FMEFunc.h.

◆ createFuncInvoker() [1/9]

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

Definition at line 575 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 570 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 564 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 558 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 551 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 543 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 535 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 526 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 517 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 685 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 115 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 135 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 158 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 163 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 89 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 869 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 178 of file FMEFunctional.h.

◆ gridGraph()

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

Definition at line 244 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 130 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 123 of file FMEFunctional.h.

◆ is_align_16()

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

Definition at line 72 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 267 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 293 of file FMEFunc.h.

◆ LQPointComparer()

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

Definition at line 713 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 246 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 228 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 140 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 146 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 123 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 143 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 160 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 77 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 864 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 86 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 699 of file FMEFunc.h.

◆ operator&() [2/2]

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

Definition at line 617 of file FMEFunc.h.

◆ operator|() [1/2]

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

Definition at line 703 of file FMEFunc.h.

◆ operator|() [2/2]

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

Definition at line 701 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 206 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 326 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 150 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 199 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 174 of file FastUtils.h.

◆ printProfiledTime() [1/2]

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

Definition at line 107 of file FastUtils.h.

◆ printProfiledTime() [2/2]

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

Definition at line 111 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 267 of file FastUtils.h.

Variable Documentation

◆ TIME_STEP_NORMAL

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

Definition at line 777 of file FMEFunc.h.

◆ TIME_STEP_PREP

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

Definition at line 778 of file FMEFunc.h.

◆ USE_NODE_MOVE_RAD

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

Definition at line 780 of file FMEFunc.h.

◆ ZERO_GLOBAL_ARRAY

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

Definition at line 779 of file FMEFunc.h.