|
| 1 | +/** |
| 2 | + * Copyright (C) 2016, Daniel Thuerck |
| 3 | + * TU Darmstadt - Graphics, Capture and Massively Parallel Computing |
| 4 | + * All rights reserved. |
| 5 | + * |
| 6 | + * This software may be modified and distributed under the terms |
| 7 | + * of the BSD license. See the LICENSE file for details. |
| 8 | + */ |
| 9 | + |
| 10 | +#ifndef __MAPMAP_MAPMAP_SETTINGS_H_ |
| 11 | +#define __MAPMAP_MAPMAP_SETTINGS_H_ |
| 12 | + |
| 13 | +#include <mapmap/header/defines.h> |
| 14 | +#include <mapmap/header/vector_types.h> |
| 15 | + |
| 16 | +NS_MAPMAP_BEGIN |
| 17 | + |
| 18 | +/* 0s mark the default algorithm */ |
| 19 | +enum TREE_SAMPLER_ALGORITHM |
| 20 | +{ |
| 21 | + OPTIMISTIC_TREE_SAMPLER = 0, |
| 22 | + LOCK_FREE_TREE_SAMPLER = 1 |
| 23 | +}; |
| 24 | + |
| 25 | +/** |
| 26 | + * control flow struct (default values for flowgraph in paper) |
| 27 | + * |
| 28 | + * NOTE: despite settings concerning minimum iteration numbers, early |
| 29 | + * termination may be forced by a user-defined termination criterion |
| 30 | + */ |
| 31 | +struct mapMAP_control |
| 32 | +{ |
| 33 | + /* switch modes on/off */ |
| 34 | + bool use_multilevel; |
| 35 | + bool use_spanning_tree; |
| 36 | + bool use_acyclic; |
| 37 | + |
| 38 | + /* multilevel settings */ |
| 39 | + /* none */ |
| 40 | + |
| 41 | + /* spanning tree settings */ |
| 42 | + uint_t spanning_tree_multilevel_after_n_iterations; |
| 43 | + |
| 44 | + /* acyclic settings */ |
| 45 | + bool force_acyclic; /* force using acyclic even if terminated */ |
| 46 | + uint_t min_acyclic_iterations; |
| 47 | + bool relax_acyclic_maximal; |
| 48 | + |
| 49 | + /* settings for tree sampling */ |
| 50 | + TREE_SAMPLER_ALGORITHM tree_algorithm; |
| 51 | + bool sample_deterministic; |
| 52 | + uint_t initial_seed; |
| 53 | +}; |
| 54 | + |
| 55 | +NS_MAPMAP_END |
| 56 | + |
| 57 | +#endif /* __MAPMAP_MAPMAP_SETTINGS_H_ */ |
0 commit comments