Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

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.