Opened 2 years ago
Closed 20 months ago
#30528 closed enhancement (invalid)
Remove basic access to bitsets in combinatorial polyhedron
Reported by: | gh-kliem | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | sage-duplicate/invalid/wontfix |
Component: | geometry | Keywords: | |
Cc: | tscrim, mkoeppe | Merged in: | |
Authors: | Reviewers: | Travis Scrimshaw | |
Report Upstream: | N/A | Work issues: | |
Branch: | Commit: | ||
Dependencies: | Stopgaps: |
Description
This ticket removes basic access to bitsets in files related to combinatorial polyhedron and moves this to a new file combinatorial_polyhedron/bitsets.cc
, which is more or less a copy of parts of data_structures/bitsets.pxi
.
Also bit_vector_operations.cc
is renamed to bitset_operations.cc
.
bitsets.cc
should be a C++ file, because bitset_operations.cc
will use it (and the later one needs to be C++ or C, because it needs to be able to handle macros as indicated in #27103).
Follow ups:
- Even less access to the underlying structure of faces or lists of faces by introducing structures that collect them. This will simplify the signature of
get_next_level
. Currently this is(uin64_t**, size_t, uint64_t**, uint64_t**, size_t, size_t)
and much worse for the simple/simplicial case (#30040). Eventually this should be similar to(face_list_struct, face_list_struct, face_list_struct)
for both cases and then the underlying function can worry aboutface_list_struct
. This is also more solid with regard to future changes. - Eventually merging both versions of
bitsets
and only having small parts in an extra C++ file that can be optimized by intrinsics.
Change History (19)
comment:1 Changed 2 years ago by
- Cc tscrim added
- Status changed from new to needs_review
comment:2 Changed 2 years ago by
- Reviewers set to Travis Scrimshaw
- Status changed from needs_review to positive_review
comment:3 follow-up: ↓ 7 Changed 2 years ago by
Thank you.
std::bitset
isn't architecture optimized as far as I can see.
There is also Roaring Bitmap and probably much more out there. Of course it must be portable to be shipped with sage.
The idea of this ticket (and a follow up) is to get to the point, where it makes sense to try different things. Currently, whenever I try something different, there is so many places that need to be adjusted. This is annoying. So the idea is that FaceIterator
etc. do not know how that thing works. They just use it for top level functions to e.g. intersect two faces. Some down level function can worry about how to do this.
For a good face iterator I need the following:
- Constant memory usage (I'm reusing the same things over and over, I cannot afford to allocate memory each time), as far as I can see Roaring Bitmap does not provide this.
- Use of available intrinsics. Why waste a factor of two? (For the
f_vector
this was a factor of two for the total time, not just for part of the job.) - Some way to deal with very sparse sets. Further down the polyhedron there will be many faces containing just a tiny portion of the vertices. This can be exploited.
comment:4 Changed 2 years ago by
- Commit changed from 5052b06d9aaf952d127bbc9cff0abacdfda777d0 to 0b41c77a91f6686e3a6e9a99eb78053d93a2e904
- Status changed from positive_review to needs_review
Branch pushed to git repo; I updated commit sha1 and set ticket back to needs_review. This was a forced push. Last 10 new commits:
f997cec | small fixes
|
63b7bd6 | improvements in documentation
|
f2edc3d | get rid of maybe_newfaces
|
6dfbe81 | get rid of compute_dimension_loop
|
f2dd072 | do not expose the coatoms
|
fc8124a | fix mistake
|
7b134d5 | Merge branch 'u/gh-kliem/simplify_conversion_tests' of git://trac.sagemath.org/sage into u/gh-kliem/no_more_basic_access_2
|
072e200 | temporary commit
|
cba37e8 | temporary commit
|
0b41c77 | remove basic acces to bitsets
|
comment:6 Changed 2 years ago by
Thank you for the explanation and the rebase.
comment:7 in reply to: ↑ 3 Changed 21 months ago by
Replying to gh-kliem:
Thank you.
std::bitset
isn't architecture optimized as far as I can see. There is also Roaring Bitmap and probably much more out there. Of course it must be portable to be shipped with sage.The idea of this ticket (and a follow up) is to get to the point, where it makes sense to try different things. Currently, whenever I try something different, there is so many places that need to be adjusted. This is annoying. So the idea is that
FaceIterator
etc. do not know how that thing works. They just use it for top level functions to e.g. intersect two faces. Some down level function can worry about how to do this.For a good face iterator I need the following:
- Constant memory usage (I'm reusing the same things over and over, I cannot afford to allocate memory each time), as far as I can see Roaring Bitmap does not provide this.
- Use of available intrinsics. Why waste a factor of two? (For the
f_vector
this was a factor of two for the total time, not just for part of the job.)- Some way to deal with very sparse sets. Further down the polyhedron there will be many faces containing just a tiny portion of the vertices. This can be exploited.
A quick update to the explanation:
I tested roaring and it performs wonderful, but only with bitsets starting with about 50,000 bits, as it stores in chunks and the chunks are set to 216 bits each. So this is not an option for small stuff, but very interesting if you go into very large things.
comment:8 Changed 21 months ago by
- Status changed from positive_review to needs_work
Doesn't compile on osx
[sagelib-9.3.beta1] [18/20] gcc -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -Wno-unused -Isage/geometry/polyhedron/combinatorial_polyhedron -I./sage/libs/flint -I./sage/cpython -I./sage/ext -I/Users/buildbot-sage/slave/sage_git/build/local/lib/python3.8/site-packages/cysignals -I/Users/buildbot-sage/slave/sage_git/build/build/pkgs/sagelib/src -I/Users/buildbot-sage/slave/sage_git/build/local/include/python3.8 -I/Users/buildbot-sage/slave/sage_git/build/local/lib/python3.8/site-packages/numpy/core/include -Ibuild/cythonized -I/Users/buildbot-sage/slave/sage_git/build/local/include/python3.8 -c build/cythonized/sage/geometry/polyhedron/combinatorial_polyhedron/list_of_faces.cpp -o build/temp.macosx-10.9-x86_64-3.8/build/cythonized/sage/geometry/polyhedron/combinatorial_polyhedron/list_of_faces.o -fno-strict-aliasing -DCYTHON_CLINE_IN_TRACEBACK=1 -std=c++11 [sagelib-9.3.beta1] In file included from build/cythonized/sage/geometry/polyhedron/combinatorial_polyhedron/list_of_faces.cpp:2902: [sagelib-9.3.beta1] build/cythonized/sage/geometry/polyhedron/combinatorial_polyhedron/bitsets.cc:143:12: error: no matching function for call to '__gmpn_scan1' [sagelib-9.3.beta1] return mpn_scan1(&limb, 0); [sagelib-9.3.beta1] ^~~~~~~~~ [sagelib-9.3.beta1] /Users/buildbot-sage/slave/sage_git/build/local/include/gmp.h:1828:19: note: expanded from macro 'mpn_scan1' [sagelib-9.3.beta1] #define mpn_scan1 __MPN(scan1) [sagelib-9.3.beta1] ^~~~~~~~~~~~ [sagelib-9.3.beta1] /Users/buildbot-sage/slave/sage_git/build/local/include/gmp.h:335:18: note: expanded from macro '__MPN' [sagelib-9.3.beta1] #define __MPN(x) __gmpn_##x [sagelib-9.3.beta1] ^~~~~~~~~~ [sagelib-9.3.beta1] <scratch space>:6:1: note: expanded from here [sagelib-9.3.beta1] __gmpn_scan1 [sagelib-9.3.beta1] ^~~~~~~~~~~~ [sagelib-9.3.beta1] /Users/buildbot-sage/slave/sage_git/build/local/include/gmp.h:1829:28: note: candidate function not viable: no known conversion from 'uint64_t *' (aka 'unsigned long long *') to 'mp_srcptr' (aka 'const unsigned long *') for 1st argument [sagelib-9.3.beta1] __GMP_DECLSPEC mp_bitcnt_t mpn_scan1 __GMP_PROTO ((mp_srcptr, mp_bitcnt_t)) __GMP_ATTRIBUTE_PURE; [sagelib-9.3.beta1] ^ [sagelib-9.3.beta1] /Users/buildbot-sage/slave/sage_git/build/local/include/gmp.h:1828:19: note: expanded from macro 'mpn_scan1' [sagelib-9.3.beta1] #define mpn_scan1 __MPN(scan1) [sagelib-9.3.beta1] ^ [sagelib-9.3.beta1] /Users/buildbot-sage/slave/sage_git/build/local/include/gmp.h:335:18: note: expanded from macro '__MPN' [sagelib-9.3.beta1] #define __MPN(x) __gmpn_##x [sagelib-9.3.beta1] ^ [sagelib-9.3.beta1] <scratch space>:125:1: note: expanded from here
comment:9 Changed 21 months ago by
- Commit changed from 0b41c77a91f6686e3a6e9a99eb78053d93a2e904 to 6fa7ac9335dcc1baf8fa086c0b82a3b1e70bde67
comment:10 Changed 21 months ago by
- Status changed from needs_work to needs_review
Ok, falling back to a manual mpn_scan1
for now.
It really doesn't matter that much, because it is not less efficient then the current one and it will hopefully be removed in follow up.
This ticket is mostly about moving some function out of the "frontend", to account for the fact that CombinatorialPolyhedron
does not need to know how we want to store incidences. We could use any representation and the algorithm would still work. So the CombinatorialPolyhedron
and FaceIterator
should not relie on implementation details of the data structure and instead use access functions.
comment:11 follow-up: ↓ 12 Changed 21 months ago by
- Cc mkoeppe added
@mkoeppe: Could you maybe check if this works on OSX? So if it compiles now and if tests in geometry/polyhedron
pass?
comment:12 in reply to: ↑ 11 Changed 21 months ago by
Replying to gh-kliem:
@mkoeppe: Could you maybe check if this works on OSX? So if it compiles now and if tests in
geometry/polyhedron
pass?
Yes, please as I don't have access to an OSX machine. @gh-kliem we can also hope the appropriate patchbot to come around too.
comment:13 Changed 21 months ago by
https://github.com/kliem/sage/actions/runs/374613473
Eventually this will also terminate.
comment:14 Changed 21 months ago by
- Status changed from needs_review to positive_review
Ok. Seems to work now. The OSX patchbot came back and it is morally green (unrelated tests fail).
comment:15 Changed 21 months ago by
Fails on 32-bit:
File "src/sage/combinat/root_system/associahedron.py", line 121, in sage.combinat.root_system.associahedron.Associahedron Failed example: TestSuite(p2).run() Expected nothing Got: Failure in _test_pyramid: Traceback (most recent call last): File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/misc/sage_unittest.py", line 297, in run test_method(tester=tester) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/geometry/polyhedron/base.py", line 7432, in _test_pyramid check_pyramid_certificate(pyr, cert) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/geometry/polyhedron/base.py", line 7421, in check_pyramid_certificate tester.assertTrue(any(set(f.ambient_Vrepresentation()) == others for f in P.facets())) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/unittest/case.py", line 765, in assertTrue raise self.failureException(msg) AssertionError: False is not true ------------------------------------------------------------ The following tests failed: _test_pyramid ********************************************************************** File "src/sage/combinat/root_system/associahedron.py", line 123, in sage.combinat.root_system.associahedron.Associahedron Failed example: TestSuite(p3).run() Expected nothing Got: Failure in _test_an_affine_basis: Traceback (most recent call last): File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/misc/sage_unittest.py", line 297, in run test_method(tester=tester) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/geometry/polyhedron/base.py", line 2290, in _test_an_affine_basis b = self.an_affine_basis() File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/geometry/polyhedron/base.py", line 2263, in an_affine_basis basis_indices.append(face[0]) IndexError: tuple index out of range ------------------------------------------------------------ Failure in _test_linear_transformation: Traceback (most recent call last): File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/misc/sage_unittest.py", line 297, in run test_method(tester=tester) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/geometry/polyhedron/base.py", line 5353, in _test_linear_transformation tester.assertEqual(self, self.linear_transformation(identity_matrix(self.ambient_dim()))) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/geometry/polyhedron/base.py", line 5286, in linear_transformation homogeneous_basis = matrix(R, ( [1] + list(v) for v in self.an_affine_basis() )).transpose() File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/geometry/polyhedron/base.py", line 2263, in an_affine_basis basis_indices.append(face[0]) IndexError: tuple index out of range ------------------------------------------------------------ Failure in _test_pyramid: Traceback (most recent call last): File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/misc/sage_unittest.py", line 297, in run test_method(tester=tester) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/geometry/polyhedron/base.py", line 7432, in _test_pyramid check_pyramid_certificate(pyr, cert) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/geometry/polyhedron/base.py", line 7421, in check_pyramid_certificate tester.assertTrue(any(set(f.ambient_Vrepresentation()) == others for f in P.facets())) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/unittest/case.py", line 765, in assertTrue raise self.failureException(msg) AssertionError: False is not true ------------------------------------------------------------ The following tests failed: _test_an_affine_basis, _test_linear_transformation, _test_pyramid ********************************************************************** 1 item had failures: 2 of 17 in sage.combinat.root_system.associahedron.Associahedron [69 tests, 2 failures, 8.05 s] ********************************************************************** File "src/sage/combinat/root_system/root_lattice_realizations.py", line 2517, in sage.combinat.root_system.root_lattice_realizations.RootLatticeRealizations.ParentMethods.plot_hedron Failed example: RootSystem(["B",3]).ambient_space().plot_hedron() Exception raised: Traceback (most recent call last): File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/doctest/forker.py", line 720, in _run self.compile_and_execute(example, compiler, test.globs) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/doctest/forker.py", line 1145, in compile_and_execute exec(compiled, globs) File "<doctest sage.combinat.root_system.root_lattice_realizations.RootLatticeRealizations.ParentMethods.plot_hedron[2]>", line 1, in <module> RootSystem(["B",Integer(3)]).ambient_space().plot_hedron() File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/combinat/root_system/root_lattice_realizations.py", line 2551, in plot_hedron return Polyhedron(vertices=vertices).plot() File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/geometry/polyhedron/base.py", line 1068, in plot projection = project(self, orthonormal) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/geometry/polyhedron/base.py", line 1056, in project return polyhedron.projection() File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/geometry/polyhedron/base.py", line 7661, in projection self.projection = Projection(self) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/geometry/polyhedron/plot.py", line 372, in __init__ self._init_from_3d(polyhedron) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/geometry/polyhedron/plot.py", line 667, in _init_from_3d self._init_lines_arrows(polyhedron) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/geometry/polyhedron/plot.py", line 709, in _init_lines_arrows if polyhedron.vertex_adjacency_matrix()[i,j] == 0: File "sage/misc/cachefunc.pyx", line 2310, in sage.misc.cachefunc.CachedMethodCallerNoArgs.__call__ (build/cythonized/sage/misc/cachefunc.c:12906) self.cache = f(self._instance) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/geometry/polyhedron/base.py", line 2692, in vertex_adjacency_matrix return self._vertex_adjacency_matrix() File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/geometry/polyhedron/base.py", line 471, in _vertex_adjacency_matrix face_lattice = self.face_lattice() File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/geometry/polyhedron/base.py", line 6498, in face_lattice return FiniteLatticePoset(self.hasse_diagram()) File "sage/misc/cachefunc.pyx", line 2310, in sage.misc.cachefunc.CachedMethodCallerNoArgs.__call__ (build/cythonized/sage/misc/cachefunc.c:12906) self.cache = f(self._instance) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/geometry/polyhedron/base.py", line 6526, in hasse_diagram return D.relabel(index_to_polyhedron_face, inplace=False, immutable=True) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/graphs/generic_graph.py", line 21431, in relabel perm2 = G.relabel(perm, File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/graphs/generic_graph.py", line 21499, in relabel raise NotImplementedError("Non injective relabeling") NotImplementedError: Non injective relabeling ********************************************************************** File "src/sage/combinat/root_system/root_lattice_realizations.py", line 2519, in sage.combinat.root_system.root_lattice_realizations.RootLatticeRealizations.ParentMethods.plot_hedron Failed example: RootSystem(["C",3]).ambient_space().plot_hedron() Exception raised: Traceback (most recent call last): File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/doctest/forker.py", line 720, in _run self.compile_and_execute(example, compiler, test.globs) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/doctest/forker.py", line 1145, in compile_and_execute exec(compiled, globs) File "<doctest sage.combinat.root_system.root_lattice_realizations.RootLatticeRealizations.ParentMethods.plot_hedron[3]>", line 1, in <module> RootSystem(["C",Integer(3)]).ambient_space().plot_hedron() File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/combinat/root_system/root_lattice_realizations.py", line 2551, in plot_hedron return Polyhedron(vertices=vertices).plot() File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/geometry/polyhedron/base.py", line 1068, in plot projection = project(self, orthonormal) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/geometry/polyhedron/base.py", line 1056, in project return polyhedron.projection() File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/geometry/polyhedron/base.py", line 7661, in projection self.projection = Projection(self) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/geometry/polyhedron/plot.py", line 372, in __init__ self._init_from_3d(polyhedron) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/geometry/polyhedron/plot.py", line 667, in _init_from_3d self._init_lines_arrows(polyhedron) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/geometry/polyhedron/plot.py", line 709, in _init_lines_arrows if polyhedron.vertex_adjacency_matrix()[i,j] == 0: File "sage/misc/cachefunc.pyx", line 2310, in sage.misc.cachefunc.CachedMethodCallerNoArgs.__call__ (build/cythonized/sage/misc/cachefunc.c:12906) self.cache = f(self._instance) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/geometry/polyhedron/base.py", line 2692, in vertex_adjacency_matrix return self._vertex_adjacency_matrix() File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/geometry/polyhedron/base.py", line 471, in _vertex_adjacency_matrix face_lattice = self.face_lattice() File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/geometry/polyhedron/base.py", line 6498, in face_lattice return FiniteLatticePoset(self.hasse_diagram()) File "sage/misc/cachefunc.pyx", line 2310, in sage.misc.cachefunc.CachedMethodCallerNoArgs.__call__ (build/cythonized/sage/misc/cachefunc.c:12906) self.cache = f(self._instance) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/geometry/polyhedron/base.py", line 6526, in hasse_diagram return D.relabel(index_to_polyhedron_face, inplace=False, immutable=True) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/graphs/generic_graph.py", line 21431, in relabel perm2 = G.relabel(perm, File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/graphs/generic_graph.py", line 21499, in relabel raise NotImplementedError("Non injective relabeling") NotImplementedError: Non injective relabeling ********************************************************************** File "src/sage/combinat/root_system/root_lattice_realizations.py", line 2527, in sage.combinat.root_system.root_lattice_realizations.RootLatticeRealizations.ParentMethods.plot_hedron Failed example: RootSystem(["F",4]).ambient_space().plot_hedron() # long time Exception raised: Traceback (most recent call last): File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/doctest/forker.py", line 720, in _run self.compile_and_execute(example, compiler, test.globs) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/doctest/forker.py", line 1145, in compile_and_execute exec(compiled, globs) File "<doctest sage.combinat.root_system.root_lattice_realizations.RootLatticeRealizations.ParentMethods.plot_hedron[5]>", line 1, in <module> RootSystem(["F",Integer(4)]).ambient_space().plot_hedron() # long time File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/combinat/root_system/root_lattice_realizations.py", line 2551, in plot_hedron return Polyhedron(vertices=vertices).plot() File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/geometry/polyhedron/base.py", line 1068, in plot projection = project(self, orthonormal) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/geometry/polyhedron/base.py", line 1064, in project return polyhedron.schlegel_projection(position=position) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/geometry/polyhedron/base.py", line 7768, in schlegel_projection proj = self.projection() File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/geometry/polyhedron/base.py", line 7661, in projection self.projection = Projection(self) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/geometry/polyhedron/plot.py", line 375, in __init__ self._init_lines_arrows(polyhedron) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/geometry/polyhedron/plot.py", line 709, in _init_lines_arrows if polyhedron.vertex_adjacency_matrix()[i,j] == 0: File "sage/misc/cachefunc.pyx", line 2310, in sage.misc.cachefunc.CachedMethodCallerNoArgs.__call__ (build/cythonized/sage/misc/cachefunc.c:12906) self.cache = f(self._instance) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/geometry/polyhedron/base.py", line 2692, in vertex_adjacency_matrix return self._vertex_adjacency_matrix() File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/geometry/polyhedron/base.py", line 471, in _vertex_adjacency_matrix face_lattice = self.face_lattice() File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/geometry/polyhedron/base.py", line 6498, in face_lattice return FiniteLatticePoset(self.hasse_diagram()) File "sage/misc/cachefunc.pyx", line 2310, in sage.misc.cachefunc.CachedMethodCallerNoArgs.__call__ (build/cythonized/sage/misc/cachefunc.c:12906) self.cache = f(self._instance) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/geometry/polyhedron/base.py", line 6526, in hasse_diagram return D.relabel(index_to_polyhedron_face, inplace=False, immutable=True) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/graphs/generic_graph.py", line 21431, in relabel perm2 = G.relabel(perm, File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/graphs/generic_graph.py", line 21499, in relabel raise NotImplementedError("Non injective relabeling") NotImplementedError: Non injective relabeling ********************************************************************** 1 item had failures: 3 of 9 in sage.combinat.root_system.root_lattice_realizations.RootLatticeRealizations.ParentMethods.plot_hedron [645 tests, 3 failures, 54.31 s] ********************************************************************** File "src/sage/geometry/polyhedron/backend_cdd.py", line 559, in sage.geometry.polyhedron.backend_cdd.Polyhedron_RDF_cdd._init_from_Vrepresentation_and_Hrepresentation Failed example: P.is_combinatorially_isomorphic(Q) Expected: True Got: False ********************************************************************** File "src/sage/geometry/polyhedron/backend_cdd.py", line 562, in sage.geometry.polyhedron.backend_cdd.Polyhedron_RDF_cdd._init_from_Vrepresentation_and_Hrepresentation Failed example: P.is_combinatorially_isomorphic(R) Expected: True Got: False ********************************************************************** 1 item had failures: 2 of 20 in sage.geometry.polyhedron.backend_cdd.Polyhedron_RDF_cdd._init_from_Vrepresentation_and_Hrepresentation [67 tests, 2 failures, 1.75 s] ********************************************************************** File "src/sage/geometry/polyhedron/combinatorial_polyhedron/base.pyx", line 1052, in sage.geometry.polyhedron.combinatorial_polyhedron.base.CombinatorialPolyhedron.incidence_matrix Failed example: C.incidence_matrix() == P.incidence_matrix() Expected: True Got: False ********************************************************************** File "src/sage/geometry/polyhedron/combinatorial_polyhedron/base.pyx", line 2285, in sage.geometry.polyhedron.combinatorial_polyhedron.base.CombinatorialPolyhedron.face_iter Failed example: face.ambient_Vrepresentation() Expected: (A vertex at (1, 3, 2, 5, 4), A vertex at (2, 3, 1, 5, 4), A vertex at (3, 1, 2, 5, 4), A vertex at (3, 2, 1, 5, 4), A vertex at (2, 1, 3, 5, 4), A vertex at (1, 2, 3, 5, 4)) Got: (A vertex at (1, 3, 2, 5, 4), A vertex at (3, 1, 2, 5, 4), A vertex at (3, 2, 1, 5, 4), A vertex at (2, 1, 3, 5, 4), A vertex at (1, 2, 3, 5, 4)) ********************************************************************** File "src/sage/geometry/polyhedron/combinatorial_polyhedron/base.pyx", line 2294, in sage.geometry.polyhedron.combinatorial_polyhedron.base.CombinatorialPolyhedron.face_iter Failed example: face.ambient_Vrepresentation() Expected: (A vertex at (2, 1, 4, 5, 3), A vertex at (3, 2, 4, 5, 1), A vertex at (3, 1, 4, 5, 2), A vertex at (1, 3, 4, 5, 2), A vertex at (1, 2, 4, 5, 3), A vertex at (2, 3, 4, 5, 1)) Got: (A vertex at (3, 2, 4, 5, 1), A vertex at (3, 1, 4, 5, 2), A vertex at (1, 3, 4, 5, 2), A vertex at (1, 2, 4, 5, 3), A vertex at (2, 3, 4, 5, 1)) ********************************************************************** File "src/sage/geometry/polyhedron/combinatorial_polyhedron/base.pyx", line 2311, in sage.geometry.polyhedron.combinatorial_polyhedron.base.CombinatorialPolyhedron.face_iter Failed example: face.ambient_V_indices() Expected: (32, 89, 90, 94) Got: (89, 90, 94) ********************************************************************** 2 items had failures: 3 of 20 in sage.geometry.polyhedron.combinatorial_polyhedron.base.CombinatorialPolyhedron.face_iter 1 of 25 in sage.geometry.polyhedron.combinatorial_polyhedron.base.CombinatorialPolyhedron.incidence_matrix [572 tests, 4 failures, 1.40 s] ********************************************************************** File "src/sage/geometry/polyhedron/combinatorial_polyhedron/combinatorial_face.pyx", line 421, in sage.geometry.polyhedron.combinatorial_polyhedron.combinatorial_face.CombinatorialFace.ambient_Vrepresentation Failed example: face.ambient_Vrepresentation() Expected: (A vertex at (1, 3, 2, 5, 4), A vertex at (2, 3, 1, 5, 4), A vertex at (3, 1, 2, 5, 4), A vertex at (3, 2, 1, 5, 4), A vertex at (2, 1, 3, 5, 4), A vertex at (1, 2, 3, 5, 4)) Got: (A vertex at (1, 3, 2, 5, 4), A vertex at (3, 1, 2, 5, 4), A vertex at (3, 2, 1, 5, 4), A vertex at (2, 1, 3, 5, 4), A vertex at (1, 2, 3, 5, 4)) ********************************************************************** File "src/sage/geometry/polyhedron/combinatorial_polyhedron/combinatorial_face.pyx", line 429, in sage.geometry.polyhedron.combinatorial_polyhedron.combinatorial_face.CombinatorialFace.ambient_Vrepresentation Failed example: face.ambient_Vrepresentation() Expected: (A vertex at (2, 1, 4, 5, 3), A vertex at (3, 2, 4, 5, 1), A vertex at (3, 1, 4, 5, 2), A vertex at (1, 3, 4, 5, 2), A vertex at (1, 2, 4, 5, 3), A vertex at (2, 3, 4, 5, 1)) Got: (A vertex at (3, 2, 4, 5, 1), A vertex at (3, 1, 4, 5, 2), A vertex at (1, 3, 4, 5, 2), A vertex at (1, 2, 4, 5, 3), A vertex at (2, 3, 4, 5, 1)) ********************************************************************** File "src/sage/geometry/polyhedron/combinatorial_polyhedron/combinatorial_face.pyx", line 485, in sage.geometry.polyhedron.combinatorial_polyhedron.combinatorial_face.CombinatorialFace.ambient_V_indices Failed example: next(it).ambient_V_indices() Expected: (32, 91, 92, 93, 94, 95) Got: (91, 92, 93, 94, 95) ********************************************************************** File "src/sage/geometry/polyhedron/combinatorial_polyhedron/combinatorial_face.pyx", line 487, in sage.geometry.polyhedron.combinatorial_polyhedron.combinatorial_face.CombinatorialFace.ambient_V_indices Failed example: next(it).ambient_V_indices() Expected: (32, 89, 90, 94) Got: (89, 90, 94) ********************************************************************** File "src/sage/geometry/polyhedron/combinatorial_polyhedron/combinatorial_face.pyx", line 546, in sage.geometry.polyhedron.combinatorial_polyhedron.combinatorial_face.CombinatorialFace.Vrepr Failed example: face.Vrepr() Expected: doctest:...: DeprecationWarning: the method Vrepr of CombinatorialPolyhedron is deprecated; use ambient_V_indices or ambient_Vrepresentation See https://trac.sagemath.org/28616 for details. (A vertex at (1, 3, 2, 5, 4), A vertex at (2, 3, 1, 5, 4), A vertex at (3, 1, 2, 5, 4), A vertex at (3, 2, 1, 5, 4), A vertex at (2, 1, 3, 5, 4), A vertex at (1, 2, 3, 5, 4)) Got: doctest:warning File "/var/lib/buildbot/slave/sage_git/build/src/bin/sage-runtests", line 182, in <module> err = DC.run() File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/doctest/control.py", line 1237, in run self.run_doctests() File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/doctest/control.py", line 938, in run_doctests self.dispatcher.dispatch() File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/doctest/forker.py", line 2052, in dispatch self.parallel_dispatch() File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/doctest/forker.py", line 1947, in parallel_dispatch w.start() # This might take some time File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/doctest/forker.py", line 2219, in start super(DocTestWorker, self).start() File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/multiprocessing/process.py", line 121, in start self._popen = self._Popen(self) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/multiprocessing/context.py", line 224, in _Popen return _default_context.get_context().Process._Popen(process_obj) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/multiprocessing/context.py", line 277, in _Popen return Popen(process_obj) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/multiprocessing/popen_fork.py", line 19, in __init__ self._launch(process_obj) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/multiprocessing/popen_fork.py", line 75, in _launch code = process_obj._bootstrap(parent_sentinel=child_r) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/multiprocessing/process.py", line 315, in _bootstrap self.run() File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/doctest/forker.py", line 2191, in run task(self.options, self.outtmpfile, msgpipe, self.result_queue) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/doctest/forker.py", line 2520, in __call__ doctests, extras = self._run(runner, options, results) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/doctest/forker.py", line 2567, in _run result = runner.run(test) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/doctest/forker.py", line 918, in run return self._run(test, compileflags, out) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/doctest/forker.py", line 720, in _run self.compile_and_execute(example, compiler, test.globs) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/doctest/forker.py", line 1145, in compile_and_execute exec(compiled, globs) File "<doctest sage.geometry.polyhedron.combinatorial_polyhedron.combinatorial_face.CombinatorialFace.Vrepr[4]>", line 1, in <module> face.Vrepr() File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/misc/superseded.py", line 100, in deprecation warning(trac_number, message, DeprecationWarning, stacklevel) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/misc/superseded.py", line 146, in warning warn(message, warning_class, stacklevel) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/warnings.py", line 109, in _showwarnmsg sw(msg.message, msg.category, msg.filename, msg.lineno, : DeprecationWarning: the method Vrepr of CombinatorialPolyhedron is deprecated; use ambient_V_indices or ambient_Vrepresentation See https://trac.sagemath.org/28616 for details. (A vertex at (1, 3, 2, 5, 4), A vertex at (3, 1, 2, 5, 4), A vertex at (3, 2, 1, 5, 4), A vertex at (2, 1, 3, 5, 4), A vertex at (1, 2, 3, 5, 4)) ********************************************************************** 3 items had failures: 1 of 6 in sage.geometry.polyhedron.combinatorial_polyhedron.combinatorial_face.CombinatorialFace.Vrepr 2 of 10 in sage.geometry.polyhedron.combinatorial_polyhedron.combinatorial_face.CombinatorialFace.ambient_V_indices 2 of 11 in sage.geometry.polyhedron.combinatorial_polyhedron.combinatorial_face.CombinatorialFace.ambient_Vrepresentation [157 tests, 5 failures, 1.25 s] ********************************************************************** File "src/sage/geometry/polyhedron/combinatorial_polyhedron/conversions.pyx", line 509, in sage.geometry.polyhedron.combinatorial_polyhedron.conversions.? Failed example: for _ in range(10): st = set(randint(0,127) for i in range(40)) tup = tuple(sorted(tuple(st))) faces = _Vrep_list_to_bit_rep_wrapper(tup) output = _bit_rep_to_Vrep_list_wrapper(faces, 0) if not tup == output: print('``bit_rep_to_Vrep_list`` does not behave', 'as the inverse of ``Vrep_list_to_bit_rep``') Expected nothing Got: ``bit_rep_to_Vrep_list`` does not behave as the inverse of ``Vrep_list_to_bit_rep`` ``bit_rep_to_Vrep_list`` does not behave as the inverse of ``Vrep_list_to_bit_rep`` ``bit_rep_to_Vrep_list`` does not behave as the inverse of ``Vrep_list_to_bit_rep`` ``bit_rep_to_Vrep_list`` does not behave as the inverse of ``Vrep_list_to_bit_rep`` ``bit_rep_to_Vrep_list`` does not behave as the inverse of ``Vrep_list_to_bit_rep`` ``bit_rep_to_Vrep_list`` does not behave as the inverse of ``Vrep_list_to_bit_rep`` ``bit_rep_to_Vrep_list`` does not behave as the inverse of ``Vrep_list_to_bit_rep`` ``bit_rep_to_Vrep_list`` does not behave as the inverse of ``Vrep_list_to_bit_rep`` ``bit_rep_to_Vrep_list`` does not behave as the inverse of ``Vrep_list_to_bit_rep`` ``bit_rep_to_Vrep_list`` does not behave as the inverse of ``Vrep_list_to_bit_rep`` ********************************************************************** 1 item had failures: 1 of 20 in sage.geometry.polyhedron.combinatorial_polyhedron.conversions.? [63 tests, 1 failure, 0.29 s] ********************************************************************** File "src/sage/geometry/polyhedron/base.py", line 4859, in sage.geometry.polyhedron.base.Polyhedron_base.join Failed example: C.join(S).is_combinatorially_isomorphic(C.pyramid()) Expected: True Got: False ********************************************************************** 1 item had failures: 1 of 15 in sage.geometry.polyhedron.base.Polyhedron_base.join [1600 tests, 1 failure, 42.35 s] ********************************************************************** File "src/sage/geometry/polyhedron/library.py", line 940, in sage.geometry.polyhedron.library.Polytopes.great_rhombicuboctahedron Failed example: sum(1 for f in gr.facets() if len(f.vertices()) == 6) Expected: 8 Got: 0 ********************************************************************** File "src/sage/geometry/polyhedron/library.py", line 942, in sage.geometry.polyhedron.library.Polytopes.great_rhombicuboctahedron Failed example: sum(1 for f in gr.facets() if len(f.vertices()) == 8) Expected: 6 Got: 4 ********************************************************************** File "src/sage/geometry/polyhedron/library.py", line 1440, in sage.geometry.polyhedron.library.Polytopes.buckyball Failed example: sum(1 for f in bb.facets() if len(f.vertices()) == 5) Expected: 12 Got: 3 ********************************************************************** File "src/sage/geometry/polyhedron/library.py", line 1442, in sage.geometry.polyhedron.library.Polytopes.buckyball Failed example: sum(1 for f in bb.facets() if len(f.vertices()) == 6) Expected: 20 Got: 2 ********************************************************************** File "src/sage/geometry/polyhedron/library.py", line 1615, in sage.geometry.polyhedron.library.Polytopes.truncated_dodecahedron Failed example: sum(1 for f in td.facets() if len(f.vertices()) == 3) Expected: 20 Got: 8 ********************************************************************** File "src/sage/geometry/polyhedron/library.py", line 1617, in sage.geometry.polyhedron.library.Polytopes.truncated_dodecahedron Failed example: sum(1 for f in td.facets() if len(f.vertices()) == 10) Expected: 12 Got: 1 ********************************************************************** File "src/sage/geometry/polyhedron/library.py", line 1868, in sage.geometry.polyhedron.library.Polytopes.truncated_icosidodecahedron Failed example: sum(1 for f in ti.facets() if len(f.vertices()) == 4) Expected: 30 Got: 21 ********************************************************************** File "src/sage/geometry/polyhedron/library.py", line 1870, in sage.geometry.polyhedron.library.Polytopes.truncated_icosidodecahedron Failed example: sum(1 for f in ti.facets() if len(f.vertices()) == 6) Expected: 20 Got: 3 ********************************************************************** File "src/sage/geometry/polyhedron/library.py", line 1872, in sage.geometry.polyhedron.library.Polytopes.truncated_icosidodecahedron Failed example: sum(1 for f in ti.facets() if len(f.vertices()) == 10) Expected: 12 Got: 0 ********************************************************************** 4 items had failures: 2 of 9 in sage.geometry.polyhedron.library.Polytopes.buckyball 2 of 8 in sage.geometry.polyhedron.library.Polytopes.great_rhombicuboctahedron 2 of 9 in sage.geometry.polyhedron.library.Polytopes.truncated_dodecahedron 3 of 10 in sage.geometry.polyhedron.library.Polytopes.truncated_icosidodecahedron [307 tests, 9 failures, 52.94 s] ********************************************************************** File "src/sage/geometry/polyhedron/plot.py", line 452, in sage.geometry.polyhedron.plot.Projection.stereographic Failed example: proj = Projection(polytopes.buckyball()) #long time Exception raised: Traceback (most recent call last): File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/doctest/forker.py", line 720, in _run self.compile_and_execute(example, compiler, test.globs) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/doctest/forker.py", line 1145, in compile_and_execute exec(compiled, globs) File "<doctest sage.geometry.polyhedron.plot.Projection.stereographic[1]>", line 1, in <module> proj = Projection(polytopes.buckyball()) #long time File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/geometry/polyhedron/plot.py", line 372, in __init__ self._init_from_3d(polyhedron) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/geometry/polyhedron/plot.py", line 667, in _init_from_3d self._init_lines_arrows(polyhedron) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/geometry/polyhedron/plot.py", line 709, in _init_lines_arrows if polyhedron.vertex_adjacency_matrix()[i,j] == 0: File "sage/misc/cachefunc.pyx", line 2310, in sage.misc.cachefunc.CachedMethodCallerNoArgs.__call__ (build/cythonized/sage/misc/cachefunc.c:12906) self.cache = f(self._instance) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/geometry/polyhedron/base.py", line 2692, in vertex_adjacency_matrix return self._vertex_adjacency_matrix() File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/geometry/polyhedron/base.py", line 471, in _vertex_adjacency_matrix face_lattice = self.face_lattice() File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/geometry/polyhedron/base.py", line 6498, in face_lattice return FiniteLatticePoset(self.hasse_diagram()) File "sage/misc/cachefunc.pyx", line 2310, in sage.misc.cachefunc.CachedMethodCallerNoArgs.__call__ (build/cythonized/sage/misc/cachefunc.c:12906) self.cache = f(self._instance) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/geometry/polyhedron/base.py", line 6526, in hasse_diagram return D.relabel(index_to_polyhedron_face, inplace=False, immutable=True) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/graphs/generic_graph.py", line 21431, in relabel perm2 = G.relabel(perm, File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/graphs/generic_graph.py", line 21499, in relabel raise NotImplementedError("Non injective relabeling") NotImplementedError: Non injective relabeling ********************************************************************** File "src/sage/geometry/polyhedron/plot.py", line 453, in sage.geometry.polyhedron.plot.Projection.stereographic Failed example: proj #long time Exception raised: Traceback (most recent call last): File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/doctest/forker.py", line 720, in _run self.compile_and_execute(example, compiler, test.globs) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/doctest/forker.py", line 1145, in compile_and_execute exec(compiled, globs) File "<doctest sage.geometry.polyhedron.plot.Projection.stereographic[2]>", line 1, in <module> proj #long time NameError: name 'proj' is not defined ********************************************************************** File "src/sage/geometry/polyhedron/plot.py", line 455, in sage.geometry.polyhedron.plot.Projection.stereographic Failed example: proj.stereographic([5,2,3]).plot() #long time Exception raised: Traceback (most recent call last): File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/doctest/forker.py", line 720, in _run self.compile_and_execute(example, compiler, test.globs) File "/var/lib/buildbot/slave/sage_git/build/local/lib/python3.8/site-packages/sage/doctest/forker.py", line 1145, in compile_and_execute exec(compiled, globs) File "<doctest sage.geometry.polyhedron.plot.Projection.stereographic[3]>", line 1, in <module> proj.stereographic([Integer(5),Integer(2),Integer(3)]).plot() #long time NameError: name 'proj' is not defined ********************************************************************** 1 item had failures: 3 of 6 in sage.geometry.polyhedron.plot.Projection.stereographic [239 tests, 3 failures, 8.48 s] R[write to console]: Warning messages: R[write to console]: 1: R[write to console]: In sage10 + sage6 : R[write to console]: R[write to console]: longer object length is not a multiple of shorter object length R[write to console]: 2: R[write to console]: In sqrt(sage10) : R[write to console]: NaNs produced R[write to console]: 3: R[write to console]: In sqrt(sage4) : R[write to console]: NaNs produced ---------------------------------------------------------------------- sage -t --long --random-seed=0 src/sage/combinat/root_system/associahedron.py # 2 doctests failed sage -t --long --random-seed=0 src/sage/combinat/root_system/root_lattice_realizations.py # 3 doctests failed sage -t --long --random-seed=0 src/sage/geometry/polyhedron/backend_cdd.py # 2 doctests failed sage -t --long --random-seed=0 src/sage/geometry/polyhedron/combinatorial_polyhedron/base.pyx # 4 doctests failed sage -t --long --random-seed=0 src/sage/geometry/polyhedron/combinatorial_polyhedron/combinatorial_face.pyx # 5 doctests failed sage -t --long --random-seed=0 src/sage/geometry/polyhedron/combinatorial_polyhedron/conversions.pyx # 1 doctest failed sage -t --long --random-seed=0 src/sage/geometry/polyhedron/base.py # 1 doctest failed sage -t --long --random-seed=0 src/sage/geometry/polyhedron/library.py # 9 doctests failed sage -t --long --random-seed=0 src/sage/geometry/polyhedron/plot.py # 3 doctests failed
comment:16 Changed 21 months ago by
- Status changed from positive_review to needs_work
comment:17 Changed 21 months ago by
- Milestone changed from sage-9.3 to sage-duplicate/invalid/wontfix
- Status changed from needs_work to needs_review
I honestly don't want to keep working on this anymore. This was supposed to make #30549 a bit easier, but apparently this is not happening.
data_structures/bitsets...
is well tested and is working, what we had before for combinatorial polyhedron was working as well, I guess this intermediate solution is more pain than anything else.
comment:18 Changed 21 months ago by
- Branch u/gh-kliem/no_more_basic_access deleted
- Commit 6fa7ac9335dcc1baf8fa086c0b82a3b1e70bde67 deleted
- Dependencies #30492, #30524 deleted
- Status changed from needs_review to positive_review
As you wish.
comment:19 Changed 20 months ago by
- Resolution set to invalid
- Status changed from positive_review to closed
This LGTM although it is making me wonder if we should have our own bitset operations class in Sage. There is the C++ STL bitset, and if we do need something slightly more custom, it would be good as a C++ library that we would then interface with.