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
LinearQuadtreeExpansion.h
Go to the documentation of this file.
1
32#pragma once
33
35
36namespace ogdf {
37namespace fast_multipole_embedder {
38
40public:
43
46
49
52
55
58
60 void L2P(uint32_t source, uint32_t point, float& fx, float& fy);
61
63 uint32_t sizeInBytes() const { return m_numExp * m_numCoeff * (uint32_t)sizeof(double) * 4; }
64
66 inline double* multiExp() const { return m_multiExp; }
67
69 inline double* localExp() const { return m_localExp; }
70
72 inline uint32_t numCoeff() const { return m_numCoeff; }
73
75 const LinearQuadtree& tree() { return m_tree; }
76
77private:
79 void allocate();
80
82 void deallocate();
83
86
87public:
89 double* m_multiExp;
90
92 double* m_localExp;
93
94public:
97
100
102};
103
104}
105}
Declaration of class LinearQuadtree.
binomial coeffs from Hachuls FMMM
Definition FastUtils.h:281
uint32_t numCoeff() const
number of coefficients per expansions
const LinearQuadtree & m_tree
the Quadtree reference
double * multiExp() const
returns the array with multipole coefficients
void allocate()
allocates the space for the coeffs
uint32_t m_numCoeff
the number of coeff per expansions
void P2M(uint32_t point, uint32_t receiver)
adds a point with the given charge to the receiver expansion
LinearQuadtreeExpansion(uint32_t precision, const LinearQuadtree &tree)
constructor
void deallocate()
releases the memory for the coeffs
double * m_multiExp
the big multipole expansione coeff array
void M2L(uint32_t source, uint32_t receiver)
converts the source multipole coefficient in to a local coefficients at the center of the receiver an...
double * localExp() const
returns the array with local coefficients
void M2M(uint32_t source, uint32_t receiver)
shifts the source multipole coefficient to the center of the receiver and adds them
uint32_t sizeInBytes() const
returns the size in bytes
void L2P(uint32_t source, uint32_t point, float &fx, float &fy)
evaluates the derivate of the local expansion at the point and adds the forces to fx fy
double * m_localExp
the big local expansion coeff array
void L2L(uint32_t source, uint32_t receiver)
shifts the source local coefficient to the center of the receiver and adds them
uint32_t m_numExp
the number of multipole (locale) expansions
static MultilevelBuilder * getDoubleFactoredZeroAdjustedMerger()
The namespace for all OGDF objects.