Bertini 2 - C++ Core
Software for Numerical Algebraic Geometry
Loading...
Searching...
No Matches
start_base.hpp
Go to the documentation of this file.
1//This file is part of Bertini 2.
2//
3//start_base.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//start_base.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 start_base.hpp. If not, see <http://www.gnu.org/licenses/>.
15//
16// Copyright(C) 2015 - 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// individual authors of this file include:
23// silviana amethyst, university of notre dame
24
30
31
32#pragma once
33
35
36
37namespace bertini
38{
39 namespace start_system{
40
48 class StartSystem : public System
49 {
50
51 public:
52
53
54 virtual unsigned long long NumStartPoints() const = 0;
55
56 template<typename T>
57 Vec<T> StartPoint(unsigned long long index) const
58 {
59 return GenerateStartPoint(T(),index);
60 }
61
62 virtual ~StartSystem() = default;
63
64 private:
65 virtual Vec<dbl> GenerateStartPoint(dbl,unsigned long long index) const = 0;
66 virtual Vec<mpfr_complex> GenerateStartPoint(mpfr_complex,unsigned long long index) const = 0;
67
68 friend class boost::serialization::access;
69
70 template <typename Archive>
71 void serialize(Archive& ar, const unsigned version) {
72 ar & boost::serialization::base_object<System>(*this);
73 }
74
75 };
76
77 }
78}
79
80
81
System()
The default constructor for a system.
Definition system/system.hpp:111
Abstract base class for other start systems.
Definition start_base.hpp:49
Provides the bertini::System class.