openCARP
Doxygen code documentation for the open cardiac electrophysiology simulator openCARP
Classes | Namespaces | Macros | Enumerations | Functions
kdpart.hpp File Reference

kdtree based partitioning classes. More...

#include <algorithm>
#include <iostream>
#include <math.h>
#include <numeric>
#include <vector>
#include <mpi.h>
Include dependency graph for kdpart.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  kdpart::vec3< S >
 minimalistic internal point struct More...
 
struct  kdpart::bbox< S >
 Bounding box struct. More...
 
struct  kdpart::elem< T, S >
 element definition More...
 
struct  kdpart::partition< T, S >
 the struct holding all partition data More...
 
struct  kdpart::mixed_pair< T, S >
 Combined floating point and integer pair. More...
 
class  kdpart::parallel_partitioner< T, S >
 
class  kdpart::sequential_partitioner< T, S >
 

Namespaces

 kdpart
 

Macros

#define KD_ORDER_INC   5.0
 The value we add to the power of two if we need higher partitioning resolution. More...
 
#define KD_MIN_SIZE   64
 

Enumerations

enum  kdpart::axis { kdpart::X = 0, kdpart::Y, kdpart::Z, kdpart::UNSET }
 split axis More...
 

Functions

bool kdpart::is_power_of_two (double val)
 Check if a given value is an integer power of two. More...
 
template<class T , class S >
bool kdpart::operator< (const mixed_pair< T, S > &lhs, const mixed_pair< T, S > &rhs)
 sorting operator More...
 
template<typename V , typename W >
kdpart::clamp (const V val, const W start, const W end)
 Clamp a value into an interval [start, end]. More...
 
template<class T >
void kdpart::dsp_from_cnt (const std::vector< T > &cnt, std::vector< T > &dsp)
 Compute displacements from counts. More...
 
template<class T >
void kdpart::cnt_from_dsp (const std::vector< T > &dsp, std::vector< T > &cnt)
 Compute counts from displacements. More...
 
template<class V , class W >
void kdpart::sort_copy (std::vector< V > &v1, std::vector< W > &v2)
 

Detailed Description

kdtree based partitioning classes.

Author
Aurel Neic
Version
Date
2017-02-14

Definition in file kdpart.hpp.

Macro Definition Documentation

◆ KD_MIN_SIZE

#define KD_MIN_SIZE   64

Definition at line 187 of file kdpart.hpp.

◆ KD_ORDER_INC

#define KD_ORDER_INC   5.0

The value we add to the power of two if we need higher partitioning resolution.

In the case that the number of processes (thus the number of requested partitions) is not a power of two, we partition with a higher partition number and then evenly distribute the partitions onto the processes. This reduces the difference between partition sizes.

Definition at line 185 of file kdpart.hpp.