Loading [MathJax]/extensions/tex2jax.js

Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Loading...
Searching...
No Matches
FMEKernel.h File Reference

Declaration of FME kernel. More...

Go to the source code of this file.

Classes

class  ogdf::fast_multipole_embedder::FMEBasicKernel
 
class  ogdf::fast_multipole_embedder::FMEKernel
 
class  ogdf::fast_multipole_embedder::FMESingleKernel
 

Namespaces

namespace  ogdf
 The namespace for all OGDF objects.
 
namespace  ogdf::fast_multipole_embedder
 

Macros

#define OGDF_FME_KERNEL_COMPUTE_FORCE(dx, dy, s)    (s / (max<float>(s * OGDF_FME_KERNEL_COMPUTE_FORCE_PROTECTION_FACTOR, (dx) * (dx) + (dy) * (dy))))
 
#define OGDF_FME_KERNEL_COMPUTE_FORCE_PROTECTION_FACTOR   0.25f
 
#define OGDF_FME_KERNEL_MM_COMPUTE_FORCE(dx, dy, s)
 
#define OGDF_FME_KERNEL_USE_OLD
 

Functions

void ogdf::fast_multipole_embedder::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
 
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)
 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
 
void ogdf::fast_multipole_embedder::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
 
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)
 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
 
void ogdf::fast_multipole_embedder::eval_edges (const ArrayGraph &graph, const uint32_t begin, const uint32_t end, float *fx, float *fy)
 
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
 
void ogdf::fast_multipole_embedder::fast_multipole_p2m (double *mulitCoeffiecients, uint32_t numCoeffiecients, double centerX, double centerY, float x, float y, float q)
 
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)
 

Detailed Description

Declaration of FME kernel.

Author
Martin Gronemann
License:
This file is part of the Open Graph Drawing Framework (OGDF).
Copyright (C)
See README.md in the OGDF root directory for details.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License Version 2 or 3 as published by the Free Software Foundation; see the file LICENSE.txt included in the packaging of this file for details.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, see http://www.gnu.org/copyleft/gpl.html

Definition in file FMEKernel.h.

Macro Definition Documentation

◆ OGDF_FME_KERNEL_COMPUTE_FORCE

#define OGDF_FME_KERNEL_COMPUTE_FORCE (   dx,
  dy,
 
)     (s / (max<float>(s * OGDF_FME_KERNEL_COMPUTE_FORCE_PROTECTION_FACTOR, (dx) * (dx) + (dy) * (dy))))

Definition at line 74 of file FMEKernel.h.

◆ OGDF_FME_KERNEL_COMPUTE_FORCE_PROTECTION_FACTOR

#define OGDF_FME_KERNEL_COMPUTE_FORCE_PROTECTION_FACTOR   0.25f

Definition at line 68 of file FMEKernel.h.

◆ OGDF_FME_KERNEL_MM_COMPUTE_FORCE

#define OGDF_FME_KERNEL_MM_COMPUTE_FORCE (   dx,
  dy,
 
)
Value:
_mm_div_ps((s), \
_mm_add_ps(_mm_mul_ps((dx), (dx)), _mm_mul_ps((dy), (dy)))))
#define OGDF_FME_KERNEL_COMPUTE_FORCE_PROTECTION_FACTOR
Definition FMEKernel.h:68
static MultilevelBuilder * getDoubleFactoredZeroAdjustedMerger()

Definition at line 70 of file FMEKernel.h.

◆ OGDF_FME_KERNEL_USE_OLD

#define OGDF_FME_KERNEL_USE_OLD

Definition at line 66 of file FMEKernel.h.