Bertini 2 - C++ Core
Software for Numerical Algebraic Geometry
Loading...
Searching...
No Matches
global_configs.hpp
Go to the documentation of this file.
1//This file is part of Bertini 2.
2//
3//bertini2/blackbox/global_configs.hpp is free software: you can redistribute it and/or modify
4//it under the terms of the GNU General Public License as published by
5//the Free Software Foundation, either version 3 of the License, or
6//(at your option) any later version.
7//
8//bertini2/blackbox/global_configs.hpp is distributed in the hope that it will be useful,
9//but WITHOUT ANY WARRANTY; without even the implied warranty of
10//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11//GNU General Public License for more details.
12//
13//You should have received a copy of the GNU General Public License
14//along with bertini2/blackbox/global_configs.hpp. If not, see <http://www.gnu.org/licenses/>.
15//
16// Copyright(C) 2017-2021 by Bertini2 Development Team
17//
18// See <http://www.gnu.org/licenses/> for a copy of the license,
19// as well as COPYING. Bertini2 is provided with permitted
20// additional terms in the b2/licenses/ directory.
21//
22// silviana amethyst, university of wisconsin-eau claire
23
29
30
31#pragma once
34
37#include "bertini2/nag_algorithms/common/config.hpp"
38
39namespace bertini{
40
41namespace blackbox{
42
43namespace config {
44
45
46namespace {
47 using namespace tracking;
48 using namespace endgame;
49 using namespace algorithm;
50}
51
52struct Configs
53{
54
55
56 using Tracking = detail::TypeList<SteppingConfig, NewtonConfig, FixedPrecisionConfig, AdaptiveMultiplePrecisionConfig, tracking::PrecisionType, Predictor>;
57
58 using Endgame = detail::TypeList<SecurityConfig, EndgameConfig, PowerSeriesConfig, CauchyConfig, TrackBackConfig>;
59
60 template<typename T>
61 using Algorithm = detail::TypeList<TolerancesConfig, MidPathConfig, AutoRetrackConfig, SharpeningConfig, RegenerationConfig, PostProcessingConfig, ZeroDimConfig<T>, classic::AlgoChoice>;
62
63 template<typename T>
64 using All = detail::ListCat<Tracking, Endgame, Algorithm<T>>;
65};
66
67
68struct Defaults :
69detail::Configured<Configs::All<bertini::dbl>, Configs::All<bertini::mpfr_complex>>
70{
71
72
73};
74
75}
76} // namespace blackbox
77} // namespace bertini
78
79
80
81
82
83
Contains the detail/configured helper type, for templated getting/setting/storage of config structs.
Configs and settings for endgames.
Configs and settings for tracking.
Contains the detail/typelist helper type, for templated getting/setting/storage of config structs.