bertini2 2.0.2__cp313-cp313-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) hide show
  1. bertini/__init__.py +106 -0
  2. bertini/_pybertini.cp313-win_amd64.pyd +0 -0
  3. bertini/algorithms/__init__.py +32 -0
  4. bertini/algorithms/zerodim.py +27 -0
  5. bertini/bin/bertini2.dll +0 -0
  6. bertini/container/__init__.py +61 -0
  7. bertini/endgame/__init__.py +87 -0
  8. bertini/endgame/config/__init__.py +41 -0
  9. bertini/function_tree/__init__.py +43 -0
  10. bertini/function_tree/root/__init__.py +37 -0
  11. bertini/function_tree/symbol/__init__.py +37 -0
  12. bertini/include/bertini2/bertini.hpp +41 -0
  13. bertini/include/bertini2/blackbox/algorithm_builder.hpp +74 -0
  14. bertini/include/bertini2/blackbox/argc_argv.hpp +41 -0
  15. bertini/include/bertini2/blackbox/config.hpp +73 -0
  16. bertini/include/bertini2/blackbox/global_configs.hpp +83 -0
  17. bertini/include/bertini2/blackbox/main_mode_switch.hpp +40 -0
  18. bertini/include/bertini2/blackbox/switches_zerodim.hpp +135 -0
  19. bertini/include/bertini2/blackbox/user_homotopy.hpp +63 -0
  20. bertini/include/bertini2/classic.hpp +40 -0
  21. bertini/include/bertini2/common/config.hpp +74 -0
  22. bertini/include/bertini2/common/stream_enum.hpp +60 -0
  23. bertini/include/bertini2/config.hpp +94 -0
  24. bertini/include/bertini2/deprecated.hpp +56 -0
  25. bertini/include/bertini2/detail/configured.hpp +130 -0
  26. bertini/include/bertini2/detail/enable_permuted_arguments.hpp +141 -0
  27. bertini/include/bertini2/detail/events.hpp +165 -0
  28. bertini/include/bertini2/detail/is_template_parameter.hpp +72 -0
  29. bertini/include/bertini2/detail/observable.hpp +117 -0
  30. bertini/include/bertini2/detail/observer.hpp +126 -0
  31. bertini/include/bertini2/detail/typelist.hpp +98 -0
  32. bertini/include/bertini2/detail/visitable.hpp +129 -0
  33. bertini/include/bertini2/detail/visitor.hpp +73 -0
  34. bertini/include/bertini2/double_extensions.hpp +121 -0
  35. bertini/include/bertini2/eigen_extensions.hpp +597 -0
  36. bertini/include/bertini2/eigen_serialization_addon.hpp +55 -0
  37. bertini/include/bertini2/endgames/amp_endgame.hpp +169 -0
  38. bertini/include/bertini2/endgames/base_endgame.hpp +385 -0
  39. bertini/include/bertini2/endgames/cauchy.hpp +1165 -0
  40. bertini/include/bertini2/endgames/config.hpp +184 -0
  41. bertini/include/bertini2/endgames/events.hpp +188 -0
  42. bertini/include/bertini2/endgames/fixed_prec_endgame.hpp +119 -0
  43. bertini/include/bertini2/endgames/interpolation.hpp +130 -0
  44. bertini/include/bertini2/endgames/observers.hpp +113 -0
  45. bertini/include/bertini2/endgames/powerseries.hpp +751 -0
  46. bertini/include/bertini2/endgames/prec_base.hpp +104 -0
  47. bertini/include/bertini2/endgames.hpp +42 -0
  48. bertini/include/bertini2/forbid_mixed_arithmetic.hpp +39 -0
  49. bertini/include/bertini2/function_tree/arithmetic.hpp +1440 -0
  50. bertini/include/bertini2/function_tree/differential.hpp +171 -0
  51. bertini/include/bertini2/function_tree/forward_declares.hpp +128 -0
  52. bertini/include/bertini2/function_tree/function.hpp +274 -0
  53. bertini/include/bertini2/function_tree/function_tree.hpp +154 -0
  54. bertini/include/bertini2/function_tree/jacobian.hpp +131 -0
  55. bertini/include/bertini2/function_tree/linear_product.hpp +1126 -0
  56. bertini/include/bertini2/function_tree/node.hpp +451 -0
  57. bertini/include/bertini2/function_tree/number.hpp +427 -0
  58. bertini/include/bertini2/function_tree/operator.hpp +228 -0
  59. bertini/include/bertini2/function_tree/operators/arithmetic.hpp +1440 -0
  60. bertini/include/bertini2/function_tree/operators/operator.hpp +228 -0
  61. bertini/include/bertini2/function_tree/operators/trig.hpp +525 -0
  62. bertini/include/bertini2/function_tree/roots/function.hpp +274 -0
  63. bertini/include/bertini2/function_tree/roots/jacobian.hpp +131 -0
  64. bertini/include/bertini2/function_tree/simplify.hpp +48 -0
  65. bertini/include/bertini2/function_tree/special_number.hpp +198 -0
  66. bertini/include/bertini2/function_tree/symbol.hpp +133 -0
  67. bertini/include/bertini2/function_tree/symbols/differential.hpp +171 -0
  68. bertini/include/bertini2/function_tree/symbols/linear_product.hpp +1126 -0
  69. bertini/include/bertini2/function_tree/symbols/number.hpp +427 -0
  70. bertini/include/bertini2/function_tree/symbols/special_number.hpp +198 -0
  71. bertini/include/bertini2/function_tree/symbols/symbol.hpp +133 -0
  72. bertini/include/bertini2/function_tree/symbols/variable.hpp +176 -0
  73. bertini/include/bertini2/function_tree/trig.hpp +525 -0
  74. bertini/include/bertini2/function_tree/variable.hpp +176 -0
  75. bertini/include/bertini2/function_tree.hpp +154 -0
  76. bertini/include/bertini2/have_bertini.hpp +48 -0
  77. bertini/include/bertini2/io/file_utilities.hpp +100 -0
  78. bertini/include/bertini2/io/generators.hpp +232 -0
  79. bertini/include/bertini2/io/parsing/classic_utilities.hpp +430 -0
  80. bertini/include/bertini2/io/parsing/function_parsers.hpp +70 -0
  81. bertini/include/bertini2/io/parsing/function_rules.hpp +309 -0
  82. bertini/include/bertini2/io/parsing/number_parsers.hpp +284 -0
  83. bertini/include/bertini2/io/parsing/number_rules.hpp +182 -0
  84. bertini/include/bertini2/io/parsing/qi_files.hpp +53 -0
  85. bertini/include/bertini2/io/parsing/settings_parsers/algorithm.hpp +934 -0
  86. bertini/include/bertini2/io/parsing/settings_parsers/base.hpp +59 -0
  87. bertini/include/bertini2/io/parsing/settings_parsers/endgames.hpp +533 -0
  88. bertini/include/bertini2/io/parsing/settings_parsers/tracking.hpp +705 -0
  89. bertini/include/bertini2/io/parsing/settings_parsers.hpp +149 -0
  90. bertini/include/bertini2/io/parsing/settings_rules.hpp +32 -0
  91. bertini/include/bertini2/io/parsing/system_parsers.hpp +96 -0
  92. bertini/include/bertini2/io/parsing/system_rules.hpp +379 -0
  93. bertini/include/bertini2/io/parsing.hpp +38 -0
  94. bertini/include/bertini2/io/splash.hpp +194 -0
  95. bertini/include/bertini2/logging.hpp +142 -0
  96. bertini/include/bertini2/mpfr_complex.hpp +236 -0
  97. bertini/include/bertini2/mpfr_extensions.hpp +234 -0
  98. bertini/include/bertini2/nag_algorithms/common/algorithm_base.hpp +47 -0
  99. bertini/include/bertini2/nag_algorithms/common/config.hpp +154 -0
  100. bertini/include/bertini2/nag_algorithms/common/policies.hpp +320 -0
  101. bertini/include/bertini2/nag_algorithms/midpath_check.hpp +218 -0
  102. bertini/include/bertini2/nag_algorithms/numerical_irreducible_decomposition.hpp +56 -0
  103. bertini/include/bertini2/nag_algorithms/output.hpp +285 -0
  104. bertini/include/bertini2/nag_algorithms/sharpen.hpp +64 -0
  105. bertini/include/bertini2/nag_algorithms/trace.hpp +52 -0
  106. bertini/include/bertini2/nag_algorithms/zero_dim_solve.hpp +859 -0
  107. bertini/include/bertini2/nag_datatypes/common/policies.hpp +59 -0
  108. bertini/include/bertini2/nag_datatypes/numerical_irreducible_decomposition.hpp +75 -0
  109. bertini/include/bertini2/nag_datatypes/witness_set.hpp +237 -0
  110. bertini/include/bertini2/num_traits.hpp +320 -0
  111. bertini/include/bertini2/parallel/initialize_finalize.hpp +50 -0
  112. bertini/include/bertini2/parallel.hpp +29 -0
  113. bertini/include/bertini2/pool/pool.hpp +118 -0
  114. bertini/include/bertini2/pool/system.hpp +56 -0
  115. bertini/include/bertini2/random.hpp +283 -0
  116. bertini/include/bertini2/settings/configIni_parse.hpp +190 -0
  117. bertini/include/bertini2/system/patch.hpp +545 -0
  118. bertini/include/bertini2/system/precon.hpp +74 -0
  119. bertini/include/bertini2/system/slice.hpp +341 -0
  120. bertini/include/bertini2/system/start/mhom.hpp +146 -0
  121. bertini/include/bertini2/system/start/total_degree.hpp +148 -0
  122. bertini/include/bertini2/system/start/user.hpp +157 -0
  123. bertini/include/bertini2/system/start/utility.hpp +94 -0
  124. bertini/include/bertini2/system/start_base.hpp +81 -0
  125. bertini/include/bertini2/system/start_systems.hpp +37 -0
  126. bertini/include/bertini2/system/straight_line_program.hpp +772 -0
  127. bertini/include/bertini2/system/system.hpp +1911 -0
  128. bertini/include/bertini2/system.hpp +41 -0
  129. bertini/include/bertini2/trackers/adaptive_precision_utilities.hpp +181 -0
  130. bertini/include/bertini2/trackers/amp_criteria.hpp +217 -0
  131. bertini/include/bertini2/trackers/amp_tracker.hpp +1660 -0
  132. bertini/include/bertini2/trackers/base_predictor.hpp +476 -0
  133. bertini/include/bertini2/trackers/base_tracker.hpp +684 -0
  134. bertini/include/bertini2/trackers/config.hpp +364 -0
  135. bertini/include/bertini2/trackers/events.hpp +343 -0
  136. bertini/include/bertini2/trackers/explicit_predictors.hpp +1136 -0
  137. bertini/include/bertini2/trackers/fixed_precision_tracker.hpp +575 -0
  138. bertini/include/bertini2/trackers/fixed_precision_utilities.hpp +103 -0
  139. bertini/include/bertini2/trackers/newton_correct.hpp +255 -0
  140. bertini/include/bertini2/trackers/newton_corrector.hpp +392 -0
  141. bertini/include/bertini2/trackers/observers.hpp +359 -0
  142. bertini/include/bertini2/trackers/ode_predictors.hpp +33 -0
  143. bertini/include/bertini2/trackers/predict.hpp +237 -0
  144. bertini/include/bertini2/trackers/step.hpp +109 -0
  145. bertini/include/bertini2/trackers/tracker.hpp +40 -0
  146. bertini/include/bertini2/tracking.hpp +39 -0
  147. bertini/include/bertini2/warning.hpp +35 -0
  148. bertini/lib/bertini2.lib +0 -0
  149. bertini/lib/cmake/bertini2/boost/FindBoost.cmake +2592 -0
  150. bertini/lib/cmake/bertini2/boost.cmake +272 -0
  151. bertini/lib/cmake/bertini2/python-helpers.cmake +182 -0
  152. bertini/lib/cmake/bertini2/python.cmake +616 -0
  153. bertini/logging/__init__.py +42 -0
  154. bertini/multiprec/__init__.py +59 -0
  155. bertini/nag_algorithm/__init__.py +44 -0
  156. bertini/parse/__init__.py +42 -0
  157. bertini/random/__init__.py +4 -0
  158. bertini/system/__init__.py +56 -0
  159. bertini/system/start_system/__init__.py +41 -0
  160. bertini/tracking/__init__.py +44 -0
  161. bertini/tracking/config/__init__.py +39 -0
  162. bertini/tracking/observers/__init__.py +39 -0
  163. bertini/tracking/observers/amp/__init__.py +39 -0
  164. bertini/tracking/observers/double/__init__.py +39 -0
  165. bertini/tracking/observers/multiple/__init__.py +39 -0
  166. bertini/windows_dll_manager.py +56 -0
  167. bertini2-2.0.2.dist-info/DELVEWHEEL +2 -0
  168. bertini2-2.0.2.dist-info/METADATA +113 -0
  169. bertini2-2.0.2.dist-info/RECORD +182 -0
  170. bertini2-2.0.2.dist-info/WHEEL +5 -0
  171. bertini2.libs/boost_filesystem-bfd51ccb0319bf4cc704c915d042c66f.dll +0 -0
  172. bertini2.libs/boost_log-fc768011286cd55a67095ab7bced2782.dll +0 -0
  173. bertini2.libs/boost_log_setup-56cc68d9578a017705a8fb82d0dcaa2f.dll +0 -0
  174. bertini2.libs/boost_python313-81f6a116f2260efda29f85288225cc7b.dll +0 -0
  175. bertini2.libs/boost_serialization-aa4defa54c5ca2e09504eb18a11ce5ad.dll +0 -0
  176. bertini2.libs/boost_thread-c3a345f78fdc11b8baac9ff17f318940.dll +0 -0
  177. bertini2.libs/eigenpy-79596cb7f82c287e0635fec73c31e08a.dll +0 -0
  178. bertini2.libs/libgcc_s_seh-1-b0202912eeaca56057205af49cead702.dll +0 -0
  179. bertini2.libs/libgmp-10-8b542bac53a8335446a333fc7cbe8ba6.dll +0 -0
  180. bertini2.libs/libmpc-3-4a8dcaa87d41486ca06bfe015e640366.dll +0 -0
  181. bertini2.libs/libmpfr-6-d1d9967aff4a8c5acc26627489cc2cd4.dll +0 -0
  182. bertini2.libs/msvcp140-639342ea9a67c0009122238ce070a825.dll +0 -0
bertini/__init__.py ADDED
@@ -0,0 +1,106 @@
1
+ # This file is part of Bertini 2.
2
+ #
3
+ # python/bertini/__init__.py 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
+ # python/bertini/__init__.py 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 python/bertini/__init__.py. If not, see <http://www.gnu.org/licenses/>.
15
+ #
16
+ # Copyright(C) 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
+ #
24
+ # silviana amethyst
25
+ # UWEC
26
+ # Spring 2018
27
+ #
28
+ # MPI-CBG
29
+ # 2025
30
+ #
31
+
32
+
33
+
34
+
35
+ """
36
+ bertini -- Python bindings for Bertini 2.
37
+
38
+ This code is licensed under the GNU Public License, Version 3, with
39
+ additional clauses under section 7 as permitted, to protect the
40
+ Bertini name. See b2/licenses/ for a complete copy of the license,
41
+ and the licenses of software upon which Bertini depends.
42
+
43
+ See the source at https://github.com/bertiniteam/b2
44
+ """
45
+
46
+
47
+ # start delvewheel patch
48
+ def _delvewheel_patch_1_12_1():
49
+ import os
50
+ if os.path.isdir(libs_dir := os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir, 'bertini2.libs'))):
51
+ os.add_dll_directory(libs_dir)
52
+
53
+
54
+ _delvewheel_patch_1_12_1()
55
+ del _delvewheel_patch_1_12_1
56
+ # end delvewheel patch
57
+
58
+ ### this __init__.py is strongly inspired by that for GalSim
59
+ ### https://github.com/GalSim-developers/GalSim
60
+
61
+ from importlib.metadata import version
62
+ __version__ = version("bertini2")
63
+
64
+ import os
65
+ import sys
66
+
67
+ if sys.platform == "win32":
68
+ from .windows_dll_manager import get_dll_paths, build_directory_manager
69
+ _dll_manager = build_directory_manager()
70
+ _dll_manager.__enter__()
71
+ for p in get_dll_paths():
72
+ _dll_manager.add_dll_directory(p)
73
+
74
+ # put stuff in the bertini namespace
75
+
76
+ import bertini.function_tree as function_tree
77
+
78
+ import bertini.system as system
79
+ import bertini.tracking as tracking
80
+ import bertini.endgame as endgame
81
+ import bertini.parse as parse
82
+ import bertini.container as container
83
+ import bertini.logging as logging
84
+ import bertini.nag_algorithm as nag_algorithm
85
+ import bertini.random as random
86
+
87
+ from bertini._pybertini import info
88
+
89
+ import bertini.multiprec as multiprec
90
+
91
+ # some convenience assignments
92
+ Variable = function_tree.symbol.Variable
93
+ VariableGroup = function_tree.VariableGroup
94
+ System = system.System
95
+ default_precision = multiprec.default_precision
96
+
97
+
98
+
99
+ # https://stackoverflow.com/questions/44834/what-does-all-mean-in-python
100
+ # "a list of strings defining what symbols in a module will be exported when from <module> import * is used on the module"
101
+ __all__ = ['Variable','VariableGroup','system','System',
102
+ 'nag_algorithm','container','default_precision',
103
+ 'tracking','endgame','logging','function_tree','parse','multiprec','random']
104
+
105
+
106
+
Binary file
@@ -0,0 +1,32 @@
1
+ # This file is part of Bertini 2.
2
+ #
3
+ # python/bertini/algorithms/__init__.py 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
+ # python/bertini/algorithms/__init__.py 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 python/bertini/algorithms/__init__.py. If not, see <http://www.gnu.org/licenses/>.
15
+ #
16
+ # Copyright(C) 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
+ #
24
+ # silviana amethyst
25
+ # UWEC
26
+ # Spring 2018
27
+ #
28
+
29
+ """
30
+ Various algorithms for numerical algebraic geometry, notable the zero dimensional algorithm, which is used all over the place.
31
+ """
32
+
@@ -0,0 +1,27 @@
1
+ # This file is part of Bertini 2.
2
+ #
3
+ # python/bertini/algorithms/zerodim.py 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
+ # python/bertini/algorithms/zerodim.py 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 python/bertini/algorithms/zerodim.py. If not, see <http://www.gnu.org/licenses/>.
15
+ #
16
+ # Copyright(C) 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
+ #
24
+ # silviana amethyst
25
+ # UWEC
26
+ # Spring 2018
27
+ #
Binary file
@@ -0,0 +1,61 @@
1
+ # This file is part of Bertini 2.
2
+ #
3
+ # python/bertini/container/__init__.py 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
+ # python/bertini/container/__init__.py 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 python/bertini/container/__init__.py. If not, see <http://www.gnu.org/licenses/>.
15
+ #
16
+ # Copyright(C) 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
+ #
24
+ # silviana amethyst
25
+ # UWEC
26
+ # Spring 2018, 2023
27
+ #
28
+
29
+
30
+
31
+
32
+
33
+ """
34
+ container types, coming from C++
35
+
36
+
37
+ """
38
+
39
+ import bertini._pybertini.container
40
+
41
+ from bertini._pybertini.container import *
42
+
43
+
44
+
45
+ __all__ = [
46
+ "ListOfEGBoundaryMetaData_DoublePrec",
47
+ "ListOfJacobian",
48
+ "ListOfVariableGroup",
49
+ "ListOfEGBoundaryMetaData_MultiPrec",
50
+ "ListOfRational",
51
+ "ListOfVectorComplexDoublePrecision",
52
+ "ListOfFunction",
53
+ "ListOfSolutionMetaData_DoublePrec",
54
+ "ListOfVectorComplexVariablePrecision",
55
+ "ListOfInt",
56
+ "ListOfSolutionMetaData_MultiPrec",
57
+ "VariableGroup",
58
+ "ListOfVectorComplexVariablePrecision",
59
+ "ListOfVectorComplexDoublePrecision"
60
+ ]
61
+
@@ -0,0 +1,87 @@
1
+ # This file is part of Bertini 2.
2
+ #
3
+ # python/bertini/endgame/__init__.py 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
+ # python/bertini/endgame/__init__.py 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 python/bertini/endgame/__init__.py. If not, see <http://www.gnu.org/licenses/>.
15
+ #
16
+ # Copyright(C) 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
+ #
24
+ # silviana amethyst
25
+ # UWEC
26
+ # Spring 2018
27
+ #
28
+
29
+ """
30
+ Endgame-specific things -- endgames, configs
31
+ ***********************************************
32
+
33
+ Endgames allow the computation of singular endpoints.
34
+
35
+ Flavors
36
+ =========
37
+
38
+ There are two basic flavors of endgame implemented:
39
+
40
+ 1. Power Series, commonly written PS or PSEG
41
+ 2. Cauchy
42
+
43
+ Both estimate the cycle number and use it to compute a root at a time which is never tracked to. PSEG uses Hermite interpolation and extrapolation, and Cauchy uses loops around the target time coupled with the `Cauchy integral formula <https://en.wikipedia.org/wiki/Cauchy%27s_integral_formula>`_. Both continue until two successive approximations of the root match to a given tolerance (:py:attr:`bertini.endgame.config.Endgame.final_tolerance`).
44
+
45
+ The implementations of the endgames go with a particular tracker, hence there are six provided endgame types. Choose the one that goes with your selected tracker type. Adaptive Multiple Precision is a good choice.
46
+
47
+
48
+ Implementation reference
49
+ =========================
50
+
51
+ AMP Endgames
52
+ -------------
53
+
54
+ * :class:`~bertini.endgame.AMPCauchyEG`
55
+ * :class:`~bertini.endgame.AMPPSEG`
56
+
57
+ Fixed Double Precision Endgames
58
+ ---------------------------------
59
+
60
+ * :class:`~bertini.endgame.FixedDoublePSEG`
61
+ * :class:`~bertini.endgame.FixedDoublePSEG`
62
+
63
+ Fixed Multiple Precision Endgames
64
+ -------------------------------------
65
+
66
+ * :class:`~bertini.endgame.FixedMultiplePSEG`
67
+ * :class:`~bertini.endgame.FixedMultiplePSEG`
68
+
69
+ """
70
+
71
+ import bertini._pybertini.endgame
72
+
73
+ from bertini._pybertini.endgame import *
74
+
75
+ __all__ = ['AMPCauchyEG',
76
+ 'AMPPSEG',
77
+ 'FixedDoubleCauchyEG',
78
+ 'FixedDoublePSEG',
79
+ 'FixedMultipleCauchyEG',
80
+ 'FixedMultiplePSEG',
81
+ '__doc__',
82
+ '__loader__',
83
+ '__name__',
84
+ '__package__',
85
+ '__spec__',
86
+ 'config',
87
+ 'observers']
@@ -0,0 +1,41 @@
1
+ # This file is part of Bertini 2.
2
+ #
3
+ # python/bertini/endgame/config/__init__.py 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
+ # python/bertini/endgame/config/__init__.py 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 python/bertini/endgame/config/__init__.py. If not, see <http://www.gnu.org/licenses/>.
15
+ #
16
+ # Copyright(C) 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
+ #
24
+ # silviana amethyst
25
+ # UWEC
26
+ # Spring 2018
27
+ #
28
+
29
+
30
+
31
+ """
32
+
33
+ Configs for endgames
34
+
35
+ """
36
+
37
+ import bertini._pybertini.endgame.config
38
+
39
+ from bertini._pybertini.endgame.config import *
40
+
41
+ __all__ = dir(bertini._pybertini.endgame.config)
@@ -0,0 +1,43 @@
1
+ # This file is part of Bertini 2.
2
+ #
3
+ # python/bertini/function_tree/__init__.py 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
+ # python/bertini/function_tree/__init__.py 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 python/bertini/function_tree/__init__.py. If not, see <http://www.gnu.org/licenses/>.
15
+ #
16
+ # Copyright(C) 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
+ #
24
+ # silviana amethyst
25
+ # UWEC
26
+ # Spring 2018
27
+ #
28
+
29
+
30
+
31
+ import bertini._pybertini
32
+ import bertini._pybertini.function_tree
33
+
34
+ # from bertini._pybertini import function_tree
35
+ from bertini._pybertini.container import VariableGroup
36
+
37
+ from bertini._pybertini.function_tree import *
38
+
39
+
40
+ VariableGroup.__str__ = lambda vg: '[{}]'.format( ','.join([str(v) for v in vg]) )
41
+
42
+ __all__ = dir(bertini._pybertini.function_tree)
43
+
@@ -0,0 +1,37 @@
1
+ # This file is part of Bertini 2.
2
+ #
3
+ # python/bertini/function_tree/root/__init__.py 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
+ # python/bertini/function_tree/root/__init__.py 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 python/bertini/function_tree/root/__init__.py. If not, see <http://www.gnu.org/licenses/>.
15
+ #
16
+ # Copyright(C) 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
+ #
24
+ # silviana amethyst
25
+ # UWEC
26
+ # Spring 2018
27
+ #
28
+
29
+
30
+
31
+ import bertini._pybertini
32
+ import bertini._pybertini.function_tree.root
33
+
34
+ from bertini._pybertini.function_tree.root import *
35
+
36
+ __all__ = dir(bertini._pybertini.function_tree.root)
37
+
@@ -0,0 +1,37 @@
1
+ # This file is part of Bertini 2.
2
+ #
3
+ # python/bertini/function_tree/symbol/__init__.py 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
+ # python/bertini/function_tree/symbol/__init__.py 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 python/bertini/function_tree/symbol/__init__.py. If not, see <http://www.gnu.org/licenses/>.
15
+ #
16
+ # Copyright(C) 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
+ #
24
+ # silviana amethyst
25
+ # UWEC
26
+ # Spring 2018
27
+ #
28
+
29
+
30
+
31
+ import bertini._pybertini
32
+ import bertini._pybertini.function_tree.symbol
33
+
34
+ from bertini._pybertini.function_tree.symbol import *
35
+
36
+ __all__ = dir(bertini._pybertini.function_tree.symbol)
37
+
@@ -0,0 +1,41 @@
1
+ //This file is part of Bertini 2.
2
+ //
3
+ //bertini.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
+ //bertini.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 bertini.hpp. If not, see <http://www.gnu.org/licenses/>.
15
+ //
16
+ // Copyright(C) 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
+
23
+ /**
24
+ \file bertini.hpp
25
+
26
+ \brief The main file for including the entirety of Bertini's header files.
27
+ */
28
+
29
+ #ifndef BERTINI_HPP
30
+ #define BERTINI_HPP
31
+
32
+
33
+ #include "bertini2/blackbox/argc_argv.hpp"
34
+ #include "bertini2/blackbox/main_mode_switch.hpp"
35
+
36
+ #include "bertini2/parallel.hpp"
37
+
38
+
39
+ #endif
40
+
41
+
@@ -0,0 +1,74 @@
1
+ //This file is part of Bertini 2.
2
+ //
3
+ //bertini2/blackbox/algorithm_builder.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/algorithm_builder.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/algorithm_builder.hpp. If not, see <http://www.gnu.org/licenses/>.
15
+ //
16
+ // Copyright(C) 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
+ //
24
+ // silviana amethyst, university of wisconsin-eau claire
25
+
26
+ /**
27
+ \file include/bertini2/blackbox/algorithm_builder.hpp
28
+
29
+ \brief A type which determines which algorithms etc, to run, and sets them up.
30
+ */
31
+
32
+
33
+
34
+ #pragma once
35
+
36
+ #include "bertini2/io/file_utilities.hpp"
37
+
38
+ namespace bertini {
39
+ namespace blackbox {
40
+
41
+
42
+ /**
43
+ \brief A de-serializer, whose responsibility it is to construct runnable objects based on input files.
44
+
45
+ This class is inspired by the SimBuilder class from Hythem Sidky's SAPHRON package for molecular dynamics.
46
+ */
47
+ class AlgoBuilder
48
+ {
49
+
50
+ public:
51
+ AlgoBuilder() = default;
52
+
53
+ /**
54
+ \brief Method for constructing an algorithm from a bertini classic input file
55
+ */
56
+ int ClassicBuild(boost::filesystem::path const& input_file);
57
+
58
+ /**
59
+ \brief Returns a non-owning pointer to the built algorithm
60
+ */
61
+ AnyAlgorithm* GetAlg()
62
+ {
63
+ return alg_.get();
64
+ }
65
+
66
+ private:
67
+ std::unique_ptr<AnyAlgorithm> alg_;
68
+ };
69
+
70
+
71
+
72
+ } // blackbox
73
+ } //namespace bertini
74
+
@@ -0,0 +1,41 @@
1
+ //This file is part of Bertini 2.
2
+ //
3
+ //bertini2/blackbox/argc_argv.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/argc_argv.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/argc_argv.hpp. If not, see <http://www.gnu.org/licenses/>.
15
+ //
16
+ // Copyright(C) 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
+
23
+ /**
24
+ \file bertini2/blackbox/argc_argv.hpp
25
+
26
+ \brief Provides the methods for parsing the command-line arguments.
27
+ */
28
+
29
+ #pragma once
30
+
31
+ namespace bertini{
32
+
33
+ /**
34
+ Main initial function for doing stuff to interpret the command-line arguments for invokation of the program.
35
+
36
+ \param argc The number of arguments to the program. Must be at least one.
37
+ \param argv array of character arrays, the arguments to the program when called.
38
+ */
39
+ void ParseArgcArgv(int argc, char** argv);
40
+
41
+ } //namespace bertini