passagemath-polyhedra 10.6.31rc3__cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.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.

Potentially problematic release.


This version of passagemath-polyhedra might be problematic. Click here for more details.

Files changed (206) hide show
  1. passagemath_polyhedra-10.6.31rc3.dist-info/METADATA +367 -0
  2. passagemath_polyhedra-10.6.31rc3.dist-info/METADATA.bak +369 -0
  3. passagemath_polyhedra-10.6.31rc3.dist-info/RECORD +206 -0
  4. passagemath_polyhedra-10.6.31rc3.dist-info/WHEEL +6 -0
  5. passagemath_polyhedra-10.6.31rc3.dist-info/top_level.txt +2 -0
  6. passagemath_polyhedra.libs/libgmp-6e109695.so.10.5.0 +0 -0
  7. passagemath_polyhedra.libs/libgomp-e985bcbb.so.1.0.0 +0 -0
  8. sage/all__sagemath_polyhedra.py +50 -0
  9. sage/game_theory/all.py +8 -0
  10. sage/game_theory/catalog.py +6 -0
  11. sage/game_theory/catalog_normal_form_games.py +923 -0
  12. sage/game_theory/cooperative_game.py +844 -0
  13. sage/game_theory/matching_game.py +1181 -0
  14. sage/game_theory/normal_form_game.py +2697 -0
  15. sage/game_theory/parser.py +275 -0
  16. sage/geometry/all__sagemath_polyhedra.py +22 -0
  17. sage/geometry/cone.py +6940 -0
  18. sage/geometry/cone_catalog.py +847 -0
  19. sage/geometry/cone_critical_angles.py +1027 -0
  20. sage/geometry/convex_set.py +1119 -0
  21. sage/geometry/fan.py +3743 -0
  22. sage/geometry/fan_isomorphism.py +389 -0
  23. sage/geometry/fan_morphism.py +1884 -0
  24. sage/geometry/hasse_diagram.py +202 -0
  25. sage/geometry/hyperplane_arrangement/affine_subspace.py +390 -0
  26. sage/geometry/hyperplane_arrangement/all.py +1 -0
  27. sage/geometry/hyperplane_arrangement/arrangement.py +3895 -0
  28. sage/geometry/hyperplane_arrangement/check_freeness.py +145 -0
  29. sage/geometry/hyperplane_arrangement/hyperplane.py +773 -0
  30. sage/geometry/hyperplane_arrangement/library.py +825 -0
  31. sage/geometry/hyperplane_arrangement/ordered_arrangement.py +642 -0
  32. sage/geometry/hyperplane_arrangement/plot.py +520 -0
  33. sage/geometry/integral_points.py +35 -0
  34. sage/geometry/integral_points_generic_dense.cpython-314-x86_64-linux-gnu.so +0 -0
  35. sage/geometry/integral_points_generic_dense.pyx +7 -0
  36. sage/geometry/lattice_polytope.py +5894 -0
  37. sage/geometry/linear_expression.py +773 -0
  38. sage/geometry/newton_polygon.py +767 -0
  39. sage/geometry/point_collection.cpython-314-x86_64-linux-gnu.so +0 -0
  40. sage/geometry/point_collection.pyx +1008 -0
  41. sage/geometry/polyhedral_complex.py +2616 -0
  42. sage/geometry/polyhedron/all.py +8 -0
  43. sage/geometry/polyhedron/backend_cdd.py +460 -0
  44. sage/geometry/polyhedron/backend_cdd_rdf.py +231 -0
  45. sage/geometry/polyhedron/backend_field.py +347 -0
  46. sage/geometry/polyhedron/backend_normaliz.py +2503 -0
  47. sage/geometry/polyhedron/backend_number_field.py +168 -0
  48. sage/geometry/polyhedron/backend_polymake.py +765 -0
  49. sage/geometry/polyhedron/backend_ppl.py +582 -0
  50. sage/geometry/polyhedron/base.py +1206 -0
  51. sage/geometry/polyhedron/base0.py +1444 -0
  52. sage/geometry/polyhedron/base1.py +886 -0
  53. sage/geometry/polyhedron/base2.py +812 -0
  54. sage/geometry/polyhedron/base3.py +1845 -0
  55. sage/geometry/polyhedron/base4.py +1262 -0
  56. sage/geometry/polyhedron/base5.py +2700 -0
  57. sage/geometry/polyhedron/base6.py +1741 -0
  58. sage/geometry/polyhedron/base7.py +997 -0
  59. sage/geometry/polyhedron/base_QQ.py +1258 -0
  60. sage/geometry/polyhedron/base_RDF.py +98 -0
  61. sage/geometry/polyhedron/base_ZZ.py +934 -0
  62. sage/geometry/polyhedron/base_mutable.py +215 -0
  63. sage/geometry/polyhedron/base_number_field.py +122 -0
  64. sage/geometry/polyhedron/cdd_file_format.py +155 -0
  65. sage/geometry/polyhedron/combinatorial_polyhedron/all.py +1 -0
  66. sage/geometry/polyhedron/combinatorial_polyhedron/base.cpython-314-x86_64-linux-gnu.so +0 -0
  67. sage/geometry/polyhedron/combinatorial_polyhedron/base.pxd +76 -0
  68. sage/geometry/polyhedron/combinatorial_polyhedron/base.pyx +3859 -0
  69. sage/geometry/polyhedron/combinatorial_polyhedron/combinatorial_face.cpython-314-x86_64-linux-gnu.so +0 -0
  70. sage/geometry/polyhedron/combinatorial_polyhedron/combinatorial_face.pxd +39 -0
  71. sage/geometry/polyhedron/combinatorial_polyhedron/combinatorial_face.pyx +1038 -0
  72. sage/geometry/polyhedron/combinatorial_polyhedron/conversions.cpython-314-x86_64-linux-gnu.so +0 -0
  73. sage/geometry/polyhedron/combinatorial_polyhedron/conversions.pxd +9 -0
  74. sage/geometry/polyhedron/combinatorial_polyhedron/conversions.pyx +501 -0
  75. sage/geometry/polyhedron/combinatorial_polyhedron/face_data_structure.pxd +207 -0
  76. sage/geometry/polyhedron/combinatorial_polyhedron/face_iterator.cpython-314-x86_64-linux-gnu.so +0 -0
  77. sage/geometry/polyhedron/combinatorial_polyhedron/face_iterator.pxd +102 -0
  78. sage/geometry/polyhedron/combinatorial_polyhedron/face_iterator.pyx +2274 -0
  79. sage/geometry/polyhedron/combinatorial_polyhedron/face_list_data_structure.cpython-314-x86_64-linux-gnu.so +0 -0
  80. sage/geometry/polyhedron/combinatorial_polyhedron/face_list_data_structure.pxd +370 -0
  81. sage/geometry/polyhedron/combinatorial_polyhedron/face_list_data_structure.pyx +84 -0
  82. sage/geometry/polyhedron/combinatorial_polyhedron/list_of_faces.cpython-314-x86_64-linux-gnu.so +0 -0
  83. sage/geometry/polyhedron/combinatorial_polyhedron/list_of_faces.pxd +31 -0
  84. sage/geometry/polyhedron/combinatorial_polyhedron/list_of_faces.pyx +587 -0
  85. sage/geometry/polyhedron/combinatorial_polyhedron/polyhedron_face_lattice.cpython-314-x86_64-linux-gnu.so +0 -0
  86. sage/geometry/polyhedron/combinatorial_polyhedron/polyhedron_face_lattice.pxd +52 -0
  87. sage/geometry/polyhedron/combinatorial_polyhedron/polyhedron_face_lattice.pyx +560 -0
  88. sage/geometry/polyhedron/constructor.py +773 -0
  89. sage/geometry/polyhedron/double_description.py +753 -0
  90. sage/geometry/polyhedron/double_description_inhomogeneous.py +564 -0
  91. sage/geometry/polyhedron/face.py +1060 -0
  92. sage/geometry/polyhedron/generating_function.py +1810 -0
  93. sage/geometry/polyhedron/lattice_euclidean_group_element.py +178 -0
  94. sage/geometry/polyhedron/library.py +3502 -0
  95. sage/geometry/polyhedron/misc.py +121 -0
  96. sage/geometry/polyhedron/modules/all.py +1 -0
  97. sage/geometry/polyhedron/modules/formal_polyhedra_module.py +155 -0
  98. sage/geometry/polyhedron/palp_database.py +447 -0
  99. sage/geometry/polyhedron/parent.py +1279 -0
  100. sage/geometry/polyhedron/plot.py +1986 -0
  101. sage/geometry/polyhedron/ppl_lattice_polygon.py +556 -0
  102. sage/geometry/polyhedron/ppl_lattice_polytope.py +1257 -0
  103. sage/geometry/polyhedron/representation.py +1723 -0
  104. sage/geometry/pseudolines.py +515 -0
  105. sage/geometry/relative_interior.py +445 -0
  106. sage/geometry/toric_plotter.py +1103 -0
  107. sage/geometry/triangulation/all.py +2 -0
  108. sage/geometry/triangulation/base.cpython-314-x86_64-linux-gnu.so +0 -0
  109. sage/geometry/triangulation/base.pyx +963 -0
  110. sage/geometry/triangulation/data.h +147 -0
  111. sage/geometry/triangulation/data.pxd +4 -0
  112. sage/geometry/triangulation/element.py +914 -0
  113. sage/geometry/triangulation/functions.h +10 -0
  114. sage/geometry/triangulation/functions.pxd +4 -0
  115. sage/geometry/triangulation/point_configuration.py +2256 -0
  116. sage/geometry/triangulation/triangulations.h +49 -0
  117. sage/geometry/triangulation/triangulations.pxd +7 -0
  118. sage/geometry/voronoi_diagram.py +319 -0
  119. sage/interfaces/all__sagemath_polyhedra.py +1 -0
  120. sage/interfaces/polymake.py +2028 -0
  121. sage/numerical/all.py +13 -0
  122. sage/numerical/all__sagemath_polyhedra.py +11 -0
  123. sage/numerical/backends/all.py +1 -0
  124. sage/numerical/backends/all__sagemath_polyhedra.py +1 -0
  125. sage/numerical/backends/cvxopt_backend.cpython-314-x86_64-linux-gnu.so +0 -0
  126. sage/numerical/backends/cvxopt_backend.pyx +1006 -0
  127. sage/numerical/backends/cvxopt_backend_test.py +19 -0
  128. sage/numerical/backends/cvxopt_sdp_backend.cpython-314-x86_64-linux-gnu.so +0 -0
  129. sage/numerical/backends/cvxopt_sdp_backend.pyx +382 -0
  130. sage/numerical/backends/cvxpy_backend.cpython-314-x86_64-linux-gnu.so +0 -0
  131. sage/numerical/backends/cvxpy_backend.pxd +41 -0
  132. sage/numerical/backends/cvxpy_backend.pyx +934 -0
  133. sage/numerical/backends/cvxpy_backend_test.py +13 -0
  134. sage/numerical/backends/generic_backend_test.py +24 -0
  135. sage/numerical/backends/interactivelp_backend.cpython-314-x86_64-linux-gnu.so +0 -0
  136. sage/numerical/backends/interactivelp_backend.pxd +36 -0
  137. sage/numerical/backends/interactivelp_backend.pyx +1231 -0
  138. sage/numerical/backends/interactivelp_backend_test.py +12 -0
  139. sage/numerical/backends/logging_backend.py +391 -0
  140. sage/numerical/backends/matrix_sdp_backend.cpython-314-x86_64-linux-gnu.so +0 -0
  141. sage/numerical/backends/matrix_sdp_backend.pxd +15 -0
  142. sage/numerical/backends/matrix_sdp_backend.pyx +478 -0
  143. sage/numerical/backends/ppl_backend.cpython-314-x86_64-linux-gnu.so +0 -0
  144. sage/numerical/backends/ppl_backend.pyx +1126 -0
  145. sage/numerical/backends/ppl_backend_test.py +13 -0
  146. sage/numerical/backends/scip_backend.cpython-314-x86_64-linux-gnu.so +0 -0
  147. sage/numerical/backends/scip_backend.pxd +22 -0
  148. sage/numerical/backends/scip_backend.pyx +1289 -0
  149. sage/numerical/backends/scip_backend_test.py +13 -0
  150. sage/numerical/interactive_simplex_method.py +5338 -0
  151. sage/numerical/knapsack.py +665 -0
  152. sage/numerical/linear_functions.cpython-314-x86_64-linux-gnu.so +0 -0
  153. sage/numerical/linear_functions.pxd +31 -0
  154. sage/numerical/linear_functions.pyx +1648 -0
  155. sage/numerical/linear_tensor.py +470 -0
  156. sage/numerical/linear_tensor_constraints.py +448 -0
  157. sage/numerical/linear_tensor_element.cpython-314-x86_64-linux-gnu.so +0 -0
  158. sage/numerical/linear_tensor_element.pxd +6 -0
  159. sage/numerical/linear_tensor_element.pyx +459 -0
  160. sage/numerical/mip.cpython-314-x86_64-linux-gnu.so +0 -0
  161. sage/numerical/mip.pxd +40 -0
  162. sage/numerical/mip.pyx +3667 -0
  163. sage/numerical/sdp.cpython-314-x86_64-linux-gnu.so +0 -0
  164. sage/numerical/sdp.pxd +39 -0
  165. sage/numerical/sdp.pyx +1433 -0
  166. sage/rings/all__sagemath_polyhedra.py +3 -0
  167. sage/rings/polynomial/all__sagemath_polyhedra.py +10 -0
  168. sage/rings/polynomial/omega.py +982 -0
  169. sage/schemes/all__sagemath_polyhedra.py +2 -0
  170. sage/schemes/toric/all.py +10 -0
  171. sage/schemes/toric/chow_group.py +1248 -0
  172. sage/schemes/toric/divisor.py +2082 -0
  173. sage/schemes/toric/divisor_class.cpython-314-x86_64-linux-gnu.so +0 -0
  174. sage/schemes/toric/divisor_class.pyx +322 -0
  175. sage/schemes/toric/fano_variety.py +1606 -0
  176. sage/schemes/toric/homset.py +650 -0
  177. sage/schemes/toric/ideal.py +451 -0
  178. sage/schemes/toric/library.py +1322 -0
  179. sage/schemes/toric/morphism.py +1958 -0
  180. sage/schemes/toric/points.py +1032 -0
  181. sage/schemes/toric/sheaf/all.py +1 -0
  182. sage/schemes/toric/sheaf/constructor.py +302 -0
  183. sage/schemes/toric/sheaf/klyachko.py +921 -0
  184. sage/schemes/toric/toric_subscheme.py +905 -0
  185. sage/schemes/toric/variety.py +3460 -0
  186. sage/schemes/toric/weierstrass.py +1078 -0
  187. sage/schemes/toric/weierstrass_covering.py +457 -0
  188. sage/schemes/toric/weierstrass_higher.py +288 -0
  189. sage_wheels/share/reflexive_polytopes/Full2d/zzdb.info +10 -0
  190. sage_wheels/share/reflexive_polytopes/Full2d/zzdb.v03 +0 -0
  191. sage_wheels/share/reflexive_polytopes/Full2d/zzdb.v04 +0 -0
  192. sage_wheels/share/reflexive_polytopes/Full2d/zzdb.v05 +1 -0
  193. sage_wheels/share/reflexive_polytopes/Full2d/zzdb.v06 +1 -0
  194. sage_wheels/share/reflexive_polytopes/Full3d/zzdb.info +22 -0
  195. sage_wheels/share/reflexive_polytopes/Full3d/zzdb.v04 +0 -0
  196. sage_wheels/share/reflexive_polytopes/Full3d/zzdb.v05 +0 -0
  197. sage_wheels/share/reflexive_polytopes/Full3d/zzdb.v06 +0 -0
  198. sage_wheels/share/reflexive_polytopes/Full3d/zzdb.v07 +0 -0
  199. sage_wheels/share/reflexive_polytopes/Full3d/zzdb.v08 +0 -0
  200. sage_wheels/share/reflexive_polytopes/Full3d/zzdb.v09 +0 -0
  201. sage_wheels/share/reflexive_polytopes/Full3d/zzdb.v10 +0 -0
  202. sage_wheels/share/reflexive_polytopes/Full3d/zzdb.v11 +1 -0
  203. sage_wheels/share/reflexive_polytopes/Full3d/zzdb.v12 +1 -0
  204. sage_wheels/share/reflexive_polytopes/Full3d/zzdb.v13 +1 -0
  205. sage_wheels/share/reflexive_polytopes/reflexive_polytopes_2d +80 -0
  206. sage_wheels/share/reflexive_polytopes/reflexive_polytopes_3d +37977 -0
@@ -0,0 +1,367 @@
1
+ Metadata-Version: 2.4
2
+ Name: passagemath-polyhedra
3
+ Version: 10.6.31rc3
4
+ Summary: passagemath: Convex polyhedra in arbitrary dimension, mixed integer linear optimization
5
+ Author-email: The Sage Developers <sage-support@googlegroups.com>
6
+ Maintainer: Matthias Köppe, passagemath contributors
7
+ License-Expression: GPL-2.0-or-later
8
+ Project-URL: release notes, https://github.com/passagemath/passagemath/releases
9
+ Project-URL: repo (upstream), https://github.com/sagemath/sage
10
+ Project-URL: repo, https://github.com/passagemath/passagemath
11
+ Project-URL: documentation, https://passagemath.org/docs/latest
12
+ Project-URL: homepage (upstream), https://www.sagemath.org
13
+ Project-URL: discourse, https://passagemath.discourse.group
14
+ Project-URL: tracker (upstream), https://github.com/sagemath/sage/issues
15
+ Project-URL: tracker, https://github.com/passagemath/passagemath/issues
16
+ Classifier: Development Status :: 6 - Mature
17
+ Classifier: Intended Audience :: Education
18
+ Classifier: Intended Audience :: Science/Research
19
+ Classifier: Operating System :: POSIX
20
+ Classifier: Operating System :: POSIX :: Linux
21
+ Classifier: Operating System :: MacOS :: MacOS X
22
+ Classifier: Programming Language :: Python :: 3 :: Only
23
+ Classifier: Programming Language :: Python :: 3.10
24
+ Classifier: Programming Language :: Python :: 3.11
25
+ Classifier: Programming Language :: Python :: 3.12
26
+ Classifier: Programming Language :: Python :: 3.13
27
+ Classifier: Programming Language :: Python :: 3.14
28
+ Classifier: Programming Language :: Python :: Implementation :: CPython
29
+ Classifier: Topic :: Scientific/Engineering :: Mathematics
30
+ Requires-Python: <3.15,>=3.10
31
+ Description-Content-Type: text/x-rst
32
+ Requires-Dist: gmpy2~=2.1.b999
33
+ Requires-Dist: cysignals<1.12.4; sys_platform == "win32"
34
+ Requires-Dist: cysignals!=1.12.0,>=1.11.2
35
+ Requires-Dist: passagemath-ppl
36
+ Requires-Dist: memory_allocator
37
+ Requires-Dist: passagemath-environment==10.6.31rc3
38
+ Requires-Dist: passagemath-glpk==10.6.31rc3
39
+ Requires-Dist: passagemath-modules==10.6.31rc3
40
+ Provides-Extra: conf
41
+ Provides-Extra: test
42
+ Requires-Dist: passagemath-repl; extra == "test"
43
+ Provides-Extra: flint
44
+ Requires-Dist: passagemath-flint; extra == "flint"
45
+ Provides-Extra: fpylll
46
+ Requires-Dist: fpylll>=0.5.9; extra == "fpylll"
47
+ Provides-Extra: linbox
48
+ Requires-Dist: passagemath-linbox; extra == "linbox"
49
+ Provides-Extra: pari
50
+ Requires-Dist: passagemath-pari; extra == "pari"
51
+ Provides-Extra: 4ti2
52
+ Requires-Dist: passagemath-latte-4ti2; extra == "4ti2"
53
+ Provides-Extra: cddlib
54
+ Requires-Dist: passagemath-cddlib; extra == "cddlib"
55
+ Provides-Extra: latte
56
+ Requires-Dist: passagemath-polyhedra[latte_int]; extra == "latte"
57
+ Provides-Extra: latte-int
58
+ Requires-Dist: passagemath-latte-4ti2; extra == "latte-int"
59
+ Provides-Extra: normaliz
60
+ Requires-Dist: pynormaliz==2.21; extra == "normaliz"
61
+ Provides-Extra: palp
62
+ Requires-Dist: passagemath-palp; extra == "palp"
63
+ Provides-Extra: polymake
64
+ Requires-Dist: jupymake>=0.9; extra == "polymake"
65
+ Provides-Extra: ppl
66
+ Provides-Extra: topcom
67
+ Requires-Dist: passagemath-topcom; extra == "topcom"
68
+ Provides-Extra: cbc
69
+ Requires-Dist: passagemath-polyhedra[cbc_sage]; extra == "cbc"
70
+ Provides-Extra: cbc-sage
71
+ Requires-Dist: passagemath-coin-or-cbc; extra == "cbc-sage"
72
+ Provides-Extra: coin
73
+ Requires-Dist: passagemath-polyhedra[cbc_sage]; extra == "coin"
74
+ Provides-Extra: coin-sage
75
+ Requires-Dist: passagemath-polyhedra[cbc_sage]; extra == "coin-sage"
76
+ Provides-Extra: cplex
77
+ Requires-Dist: passagemath-polyhedra[cplex_sage]; extra == "cplex"
78
+ Provides-Extra: cplex-sage
79
+ Requires-Dist: passagemath-cplex; extra == "cplex-sage"
80
+ Provides-Extra: cvxopt
81
+ Requires-Dist: passagemath-polyhedra[cvxopt_sage]; extra == "cvxopt"
82
+ Provides-Extra: cvxopt-sage
83
+ Requires-Dist: cvxopt>=1.2.5; extra == "cvxopt-sage"
84
+ Provides-Extra: cvxpy
85
+ Requires-Dist: cvxpy; extra == "cvxpy"
86
+ Provides-Extra: glpk
87
+ Requires-Dist: passagemath-polyhedra[glpk_sage]; extra == "glpk"
88
+ Provides-Extra: glpk-sage
89
+ Provides-Extra: gurobi
90
+ Requires-Dist: passagemath-polyhedra[gurobi_sage]; extra == "gurobi"
91
+ Provides-Extra: gurobi-sage
92
+ Requires-Dist: passagemath-gurobi; extra == "gurobi-sage"
93
+ Provides-Extra: scip
94
+ Requires-Dist: PySCIPOpt; extra == "scip"
95
+ Provides-Extra: polytopes-db-4d
96
+ Requires-Dist: passagemath-polytopes-db-4d; extra == "polytopes-db-4d"
97
+ Provides-Extra: qq
98
+ Provides-Extra: zz
99
+ Provides-Extra: rdf
100
+ Requires-Dist: passagemath-polyhedra[cddlib]; extra == "rdf"
101
+ Provides-Extra: numberfield
102
+ Requires-Dist: passagemath-polyhedra[flint]; extra == "numberfield"
103
+ Provides-Extra: databases
104
+ Requires-Dist: passagemath-polyhedra[polytopes-db-4d]; extra == "databases"
105
+ Provides-Extra: graphs
106
+ Requires-Dist: passagemath-graphs; extra == "graphs"
107
+ Provides-Extra: groups
108
+ Requires-Dist: passagemath-groups; extra == "groups"
109
+ Provides-Extra: plot
110
+ Requires-Dist: passagemath-plot; extra == "plot"
111
+ Provides-Extra: standard
112
+ Requires-Dist: passagemath-polyhedra[RDF,flint,fpylll,glpk,graphs,groups,linbox,pari]; extra == "standard"
113
+ Requires-Dist: passagemath-plot[tachyon]; extra == "standard"
114
+
115
+ ====================================================================================================================
116
+ passagemath: Convex polyhedra in arbitrary dimension, mixed integer linear optimization
117
+ ====================================================================================================================
118
+
119
+ `passagemath <https://github.com/passagemath/passagemath>`__ is open
120
+ source mathematical software in Python, released under the GNU General
121
+ Public Licence GPLv2+.
122
+
123
+ It is a fork of `SageMath <https://www.sagemath.org/>`__, which has been
124
+ developed 2005-2025 under the motto “Creating a Viable Open Source
125
+ Alternative to Magma, Maple, Mathematica, and MATLAB”.
126
+
127
+ The passagemath fork uses the motto "Creating a Free Passage Between the
128
+ Scientific Python Ecosystem and Mathematical Software Communities."
129
+ It was created in October 2024 with the following goals:
130
+
131
+ - providing modularized installation with pip,
132
+ - establishing first-class membership in the scientific Python
133
+ ecosystem,
134
+ - giving `clear attribution of upstream
135
+ projects <https://groups.google.com/g/sage-devel/c/6HO1HEtL1Fs/m/G002rPGpAAAJ>`__,
136
+ - providing independently usable Python interfaces to upstream
137
+ libraries,
138
+ - offering `platform portability and integration testing
139
+ services <https://github.com/passagemath/passagemath/issues/704>`__
140
+ to upstream projects,
141
+ - inviting collaborations with upstream projects,
142
+ - `building a professional, respectful, inclusive
143
+ community <https://groups.google.com/g/sage-devel/c/xBzaINHWwUQ>`__,
144
+ - `empowering Sage users to participate in the scientific Python ecosystem
145
+ <https://github.com/passagemath/passagemath/issues/248>`__ by publishing packages,
146
+ - developing a port to `Pyodide <https://pyodide.org/en/stable/>`__ for
147
+ serverless deployment with Javascript,
148
+ - developing a native Windows port.
149
+
150
+ `Full documentation <https://passagemath.org/docs/latest/html/en/index.html>`__ is
151
+ available online.
152
+
153
+ passagemath attempts to support and provides binary wheels suitable for
154
+ all major Linux distributions and recent versions of macOS.
155
+
156
+ Binary wheels for native Windows (x86_64) are are available for a subset of
157
+ the passagemath distributions. Use of the full functionality of passagemath
158
+ on Windows currently requires the use of Windows Subsystem for Linux (WSL)
159
+ or virtualization.
160
+
161
+ The supported Python versions in the passagemath 10.6.x series are 3.10.x-3.13.x.
162
+
163
+
164
+ About this pip-installable distribution package
165
+ -----------------------------------------------
166
+
167
+ This pip-installable distribution ``passagemath-polyhedra`` is a distribution of a part of the Sage Library. It provides a small subset of the modules of the Sage library ("sagelib", `passagemath-standard`), sufficient for computations with convex polyhedra in arbitrary dimension (in exact rational arithmetic), and linear and mixed integer linear optimization (in floating point arithmetic).
168
+
169
+
170
+ What is included
171
+ ----------------
172
+
173
+ * `Combinatorial and Discrete Geometry <https://passagemath.org/docs/latest/html/en/reference/discrete_geometry/index.html>`_: Polyhedra, lattice polyhedra, lattice points in polyhedra, triangulations, fans, polyhedral complexes, hyperplane arrrangements
174
+
175
+ * `Parma Polyhedra Library (PPL) backends for rational polyhedra <https://passagemath.org/docs/latest/html/en/reference/discrete_geometry/sage/geometry/polyhedron/backend_ppl.html>`_, `lattice polygons <https://passagemath.org/docs/latest/html/en/reference/discrete_geometry/sage/geometry/polyhedron/ppl_lattice_polygon.html>`_, `lattice polytopes <https://passagemath.org/docs/latest/html/en/reference/discrete_geometry/sage/geometry/polyhedron/ppl_lattice_polytope.html>`_; via `pplpy <https://passagemath.org/docs/latest/html/en/reference/spkg/pplpy.html#spkg-pplpy>`_
176
+
177
+ * `Python backend for polyhedra over general ordered fields <https://passagemath.org/docs/latest/html/en/reference/discrete_geometry/sage/geometry/polyhedron/backend_field.html>`_
178
+
179
+ * `Linear, Mixed Integer Linear, and Semidefinite Optimization frontends <https://passagemath.org/docs/latest/html/en/reference/numerical/index.html#numerical-optimization>`_
180
+
181
+ * `GNU Linear Programming Kit (GLPK) backend for large-scale linear and mixed integer linear optimization (floating point arithmetic) <https://passagemath.org/docs/latest/html/en/reference/numerical/sage/numerical/backends/glpk_backend.html>`_
182
+
183
+ * `Interactive Simplex Method <https://passagemath.org/docs/latest/html/en/reference/numerical/sage/numerical/interactive_simplex_method.html>`_
184
+
185
+ * see https://github.com/passagemath/passagemath/blob/main/pkgs/sagemath-polyhedra/MANIFEST.in
186
+
187
+
188
+ Examples
189
+ --------
190
+
191
+ A quick way to try it out interactively::
192
+
193
+ $ pipx run --pip-args="--prefer-binary" --spec "passagemath-polyhedra[test]" ipython
194
+
195
+ In [1]: from sage.all__sagemath_polyhedra import *
196
+
197
+ In [2]: P = Polyhedron(ieqs=[[0, 1, 0, 0, 0, 0, 0], [0, 0, 1, 0, 0, 0, 0], [0, 0, 0, 1, 0, 0, 0], [0, 0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 0, 1], [0, 0, 1, -1, -1, 1, 0], [0, 0, -1, 1, -1, 1, 0]], eqns=[[-31, 1, 1, 1, 1, 1, 1]]); P
198
+ Out[2]: A 5-dimensional polyhedron in QQ^6 defined as the convex hull of 7 vertices
199
+
200
+ In [3]: P.Vrepresentation()
201
+ Out[4]:
202
+ (A vertex at (31, 0, 0, 0, 0, 0),
203
+ A vertex at (0, 0, 0, 0, 0, 31),
204
+ A vertex at (0, 0, 0, 0, 31, 0),
205
+ A vertex at (0, 0, 31/2, 0, 31/2, 0),
206
+ A vertex at (0, 31/2, 31/2, 0, 0, 0),
207
+ A vertex at (0, 31/2, 0, 0, 31/2, 0),
208
+ A vertex at (0, 0, 0, 31/2, 31/2, 0))
209
+
210
+
211
+ Available as extras, from other distributions
212
+ ---------------------------------------------
213
+
214
+ Additional features
215
+ ~~~~~~~~~~~~~~~~~~~
216
+
217
+ ``pip install "passagemath-polyhedra[graphs]"``
218
+ Face lattices, combinatorial polyhedra, graph-theoretic constructions
219
+
220
+ ::
221
+
222
+ $ pipx run --pip-args="--prefer-binary" --spec "passagemath-polyhedra[graphs,test]" ipython
223
+
224
+ In [1]: from sage.all__sagemath_polyhedra import *
225
+
226
+ In [2]: c5_10 = Polyhedron(vertices = [[i, i**2, i**3, i**4, i**5] for i in range(1, 11)]); c5_10
227
+ Out[2]: A 5-dimensional polyhedron in ZZ^5 defined as the convex hull of 10 vertices
228
+
229
+ In [3]: c5_10_fl = c5_10.face_lattice(); [len(x) for x in c5_10_fl.level_sets()]
230
+ Out[3]: [1, 10, 45, 100, 105, 42, 1]
231
+
232
+ ``pip install "passagemath-polyhedra[graphs,groups]"``
233
+ Constructing symmetric polyhedra, computing automorphisms, lattice point counting modulo group actions
234
+
235
+ ::
236
+
237
+ $ pipx run --pip-args="--prefer-binary" --spec "passagemath-polyhedra[graphs,groups,test]" ipython
238
+
239
+ In [1]: from sage.all__sagemath_polyhedra import *
240
+
241
+ In [2]: P24 = polytopes.twenty_four_cell(); P24
242
+ Out[2]: A 4-dimensional polyhedron in QQ^4 defined as the convex hull of 24 vertices
243
+
244
+ In [3]: AutP24 = P24.restricted_automorphism_group(); AutP24.order()
245
+ Out[3]: 1152
246
+
247
+ ``pip install "passagemath-polyhedra[toric]"``
248
+ `Toric varieties <https://passagemath.org/docs/latest/html/en/reference/schemes/index.html#toric-varieties>`_
249
+
250
+ ::
251
+
252
+ $ pipx run --pip-args="--prefer-binary" --spec "passagemath-polyhedra[graphs,toric,test]" ipython
253
+
254
+ In [1]: from sage.all__sagemath_polyhedra import *
255
+
256
+ In [2]: TV3 = ToricVariety(NormalFan(lattice_polytope.cross_polytope(3))); TV3
257
+ Out[2]: 3-d toric variety covered by 6 affine patches
258
+
259
+ In [3]: TV3.is_orbifold()
260
+ Out[3]: False
261
+
262
+ ``pip install "passagemath-polyhedra[latte]"``
263
+ Installs `LattE integrale <https://passagemath.org/docs/latest/html/en/reference/spkg/latte_int.html#spkg-latte-int>`_
264
+ for lattice point counting and volume computation using generating function techniques.
265
+
266
+ ::
267
+
268
+ $ pipx run --pip-args="--prefer-binary" --spec "passagemath-polyhedra[latte,test]" ipython
269
+
270
+ In [1]: from sage.all__sagemath_polyhedra import *
271
+
272
+ In [2]: P = polytopes.cube()
273
+
274
+ In [3]: P.integral_points_count()
275
+ Out[3]:
276
+ 27
277
+
278
+ In [4]: (1000000000*P).integral_points_count(verbose=True)
279
+ This is LattE integrale...
280
+ ...
281
+ Total time:...
282
+ Out[4]:
283
+ 8000000012000000006000000001
284
+
285
+
286
+ Additional backends for polyhedral computations
287
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
288
+
289
+ ``pip install "passagemath-polyhedra[normaliz]"``
290
+ `Normaliz <https://passagemath.org/docs/latest/html/en/reference/spkg/normaliz.html#spkg-normaliz>`_, via `PyNormaliz <https://passagemath.org/docs/latest/html/en/reference/spkg/pynormaliz.html#spkg-pynormaliz>`_,
291
+ provides very fast computations in particular for polyhedra with data in algebraic number fields.
292
+
293
+ ::
294
+
295
+ $ pipx run --pip-args="--prefer-binary" --spec "passagemath-polyhedra[normaliz,test]" ipython
296
+
297
+ In [1]: from sage.all__sagemath_polyhedra import *
298
+
299
+ In [2]: gap_norm = polytopes.grand_antiprism(backend='normaliz'); gap_norm
300
+
301
+ In [3]: gap_norm.f_vector()
302
+
303
+ ``pip install "passagemath-polyhedra[cddlib]"``
304
+ cddlib provides support for computations with polyhedra in floating-point arithmetic.
305
+
306
+ ::
307
+
308
+ $ pipx run --pip-args="--prefer-binary" --spec "passagemath-polyhedra[cddlib,test]" ipython
309
+
310
+ In [1]: from sage.all__sagemath_polyhedra import *
311
+
312
+ In [2]: P1 = polytopes.regular_polygon(5, exact=False); P1
313
+ Out[2]: A 2-dimensional polyhedron in RDF^2 defined as the convex hull of 5 vertices
314
+
315
+ ``pip install "passagemath-polyhedra[lrslib]"``
316
+ `lrslib <https://passagemath.org/docs/latest/html/en/reference/spkg/lrslib.html#spkg-lrslib>`_
317
+ can be used for polytope volume computations and for enumerating Nash equilibria.
318
+
319
+ ::
320
+
321
+ $ pipx run --pip-args="--prefer-binary" --spec "passagemath-polyhedra[flint,lrslib,test]" ipython
322
+
323
+ In [1]: from sage.all__sagemath_polyhedra import *
324
+
325
+ In [2]: A = matrix([[2, 1], [1, 5/2]]); B = matrix([[-1, 3], [2, 1]])
326
+
327
+ In [3]: g = NormalFormGame([A, B]); g.obtain_nash(algorithm='lrs')
328
+ Out[3]: [[(1/5, 4/5), (3/5, 2/5)]]
329
+
330
+ ``pip install "passagemath-polyhedra[polymake]"``
331
+ `Polymake <https://passagemath.org/docs/latest/html/en/reference/spkg/polymake.html#spkg-polymake>`_, via `JuPyMake <https://pypi.org/project/JuPyMake/>`_
332
+
333
+ This currently requires a separate installation of polymake.
334
+
335
+ Optional backends for optimization
336
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
337
+
338
+ ``pip install "passagemath-polyhedra[cbc]"``
339
+ `COIN/OR CBC <https://passagemath.org/docs/latest/html/en/reference/spkg/cbc.html#spkg-cbc>`_ Mixed Integer Linear Optimization solver,
340
+ via `sage_numerical_backends_coin <https://passagemath.org/docs/latest/html/en/reference/spkg/sage_numerical_backends_coin.html#spkg-sage-numerical-backends-coin>`_
341
+
342
+ ``pip install "passagemath-polyhedra[cplex]"``
343
+ CPLEX Mixed Integer Optimization solver (proprietary; requires licensed installation),
344
+ via `sage_numerical_backends_cplex <https://passagemath.org/docs/latest/html/en/reference/spkg/sage_numerical_backends_cplex.html#spkg-sage-numerical-backends-cplex>`_
345
+
346
+ ``pip install "passagemath-polyhedra[cvxpy]"``
347
+ `CVXPy <https://passagemath.org/docs/latest/html/en/reference/spkg/cvxpy.html#spkg-cvxpy>`_ as middle-end for `various backends <https://www.cvxpy.org/install/>`_
348
+
349
+ ``pip install "passagemath-polyhedra[gurobi]"``
350
+ Gurobi Mixed Integer Optimization solver (proprietary; requires licensed installation), via `sage_numerical_backends_gurobi <https://passagemath.org/docs/latest/html/en/reference/spkg/sage_numerical_backends_gurobi.html#spkg-sage-numerical-backends-gurobi>`_
351
+
352
+ ``pip install "passagemath-polyhedra[scip]"``
353
+ `SCIP <https://passagemath.org/docs/latest/html/en/reference/spkg/scip.html#spkg-scip>`_ Mixed Integer Optimization solver,
354
+ via `PySCIPOpt <https://passagemath.org/docs/latest/html/en/reference/spkg/pyscipopt.html#spkg-pyscipopt>`_
355
+
356
+
357
+ Development
358
+ -----------
359
+
360
+ ::
361
+
362
+ $ git clone --origin passagemath https://github.com/passagemath/passagemath.git
363
+ $ cd passagemath
364
+ passagemath $ ./bootstrap
365
+ passagemath $ python3 -m venv polyhedra-venv
366
+ passagemath $ source polyhedra-venv/bin/activate
367
+ (polyhedra-venv) passagemath $ pip install -v -e pkgs/sagemath-polyhedra