-
-
Notifications
You must be signed in to change notification settings - Fork 453
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Maximal angles between convex cones #37854
Maximal angles between convex cones #37854
Commits on May 4, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 0ceab7d - Browse repository at this point
Copy the full SHA 0ceab7dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 5577cd1 - Browse repository at this point
Copy the full SHA 5577cd1View commit details -
Configuration menu - View commit details
-
Copy full SHA for df5c5b6 - Browse repository at this point
Copy the full SHA df5c5b6View commit details -
Trac sagemath#29169: tweak two max/critical angle error messages.
The phrase "this cone cannot be..." can be misinterpreted as making a value judgment about the given cone, rather than a blanket statement about the argument (self) to these two functions. This commit changes it to "cone should not be..." to indicate that the user should not pass in either a trivial cone or the ambient space.
Configuration menu - View commit details
-
Copy full SHA for 0f782c1 - Browse repository at this point
Copy the full SHA 0f782c1View commit details -
Trac sagemath#29169: improve error message for _random_admissible_con…
…e(). The error message output when _random_admissible_cone() receives an invalid ambient dimension was a full sentence. This commit pares it down to just the important part; amely, that there are no nontrivial cones in the ambient dimension.
Configuration menu - View commit details
-
Copy full SHA for f7ff1b7 - Browse repository at this point
Copy the full SHA f7ff1b7View commit details -
Trac sagemath#29169: remove two unused example lines.
The line "G_index_sets = list(gevp_licis(G))" appears twice in EXAMPLES, but the variable "G_index_sets" is not used thereafter. It was most likely copy/pasted into the example by mistake. This commit removes it.
Configuration menu - View commit details
-
Copy full SHA for f83a6d4 - Browse repository at this point
Copy the full SHA f83a6d4View commit details -
Trac sagemath#29169: take advantage of improvements in trac sagemath#…
…30605. Thanks to some recent improvements in cone containment testing, we no longer have to reimplement it for vectors with irrational entries ourselves.
Configuration menu - View commit details
-
Copy full SHA for 9ae23ac - Browse repository at this point
Copy the full SHA 9ae23acView commit details -
Trac sagemath#29169: remove set_random_seed() calls.
The sage library is now doctested with a random random seed (imagine), making most calls to set_random_seed() superfluous. We remove a few from the cone critical angle code here.
Configuration menu - View commit details
-
Copy full SHA for 6a44206 - Browse repository at this point
Copy the full SHA 6a44206View commit details -
Configuration menu - View commit details
-
Copy full SHA for fb832ad - Browse repository at this point
Copy the full SHA fb832adView commit details -
Trac sagemath#29169: convert solve_gevp* functions to generators.
The solve_gevp_zero() and solve_gevp_nonzero() functions for cone critical angles are "internal" and can return generators. Likewise for the testing function _solve_gevp_naive(). This should be a tiny bit more efficient.
Configuration menu - View commit details
-
Copy full SHA for d0867f4 - Browse repository at this point
Copy the full SHA d0867f4View commit details -
Trac sagemath#29169: add a warning about inexact critical angle arith…
…metic. Passing exact=False to either the max_angle() or critical_angles() method of cones is a bit "dangerous" because we can miss eigenspaces of dimension >= 2 due to numerical issues. Add a warning to the docstring about it.
Configuration menu - View commit details
-
Copy full SHA for 406599f - Browse repository at this point
Copy the full SHA 406599fView commit details -
Configuration menu - View commit details
-
Copy full SHA for e416d85 - Browse repository at this point
Copy the full SHA e416d85View commit details -
Trac sagemath#29169: clean up two import lists in cone_critical_angle…
…s.py. Two tests in this module imported the gevp_licis() function but then did not use it. No longer.
Configuration menu - View commit details
-
Copy full SHA for e88ad09 - Browse repository at this point
Copy the full SHA e88ad09View commit details -
Trac sagemath#29169: use matroid implementation for gevp_licis().
We already have a matroid method that does more or less what the new gevp_licis() function does in cone_critical_angles.py. It's faster to use the matroid implementation and then tweak its output slightly, so let's do that instead.
Configuration menu - View commit details
-
Copy full SHA for 7f032ae - Browse repository at this point
Copy the full SHA 7f032aeView commit details -
Trac sagemath#29169: switch from QQbar to AA for cone critical angles.
For reasons I've long forgotten, the cone max/critical angles algorithms were using QQbar for "rationals with roots." Switching it to AA causes no problems now, and is clearly preferable (the only eigenvalues we compute are of positive-definite matrices).
Configuration menu - View commit details
-
Copy full SHA for a785b88 - Browse repository at this point
Copy the full SHA a785b88View commit details -
Trac sagemath#29169: use base ring's zero for the zero-eigenvalue sub…
…problem. This should make the field of "zero" consistent with all the non-zero eigenvalues.
Configuration menu - View commit details
-
Copy full SHA for 0acb3d3 - Browse repository at this point
Copy the full SHA 0acb3d3View commit details -
Trac sagemath#29169: return immutable vectors from eigenvalue problems.
This lets the user (and us, in the tests) stick the results into a set or any other structure whose elements must be hashable.
Configuration menu - View commit details
-
Copy full SHA for 3fea1b6 - Browse repository at this point
Copy the full SHA 3fea1b6View commit details -
Trac sagemath#29169: replace _lists_equivalent() with set equality.
Now that all eigenvalue problems should be solved over the same field, and now that we're returning immutable eigenvectors from those problems, using set equality (as oposed to element-wise ==) becomes possible.
Configuration menu - View commit details
-
Copy full SHA for f0e39cc - Browse repository at this point
Copy the full SHA f0e39ccView commit details -
Configuration menu - View commit details
-
Copy full SHA for 9d0e3e6 - Browse repository at this point
Copy the full SHA 9d0e3e6View commit details -
Configuration menu - View commit details
-
Copy full SHA for d0e24ed - Browse repository at this point
Copy the full SHA d0e24edView commit details -
Configuration menu - View commit details
-
Copy full SHA for 8347ba5 - Browse repository at this point
Copy the full SHA 8347ba5View commit details -
Configuration menu - View commit details
-
Copy full SHA for a81dfbd - Browse repository at this point
Copy the full SHA a81dfbdView commit details -
Configuration menu - View commit details
-
Copy full SHA for 861b00e - Browse repository at this point
Copy the full SHA 861b00eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 893029a - Browse repository at this point
Copy the full SHA 893029aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 82caf7e - Browse repository at this point
Copy the full SHA 82caf7eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 1cdbabe - Browse repository at this point
Copy the full SHA 1cdbabeView commit details -
src/sage/geometry/cone*.py: drop critical_angles() method
Recent research has shown that (in many cases) the maximal angle does not change too much if the cones are perturbed. This creates even more of a safety net when computing the maximal angle, because falling back to inexact arithmetic "perturbs" the cones. The critical angle function, however, is not lower-semicontinuous as a set-valued map. I don't like having a "debug" parameter that tells you you're getting wrong results, and a user interface that requires you to understand the subtle differences between upper- and lower-semicontinuity for set-valued maps is not awesome. I think it's best if we leave this out for now.
Configuration menu - View commit details
-
Copy full SHA for d3d6f5d - Browse repository at this point
Copy the full SHA d3d6f5dView commit details -
src/sage/geometry/cone.py: document the inexact fallback for max_angle()
The max_angle() can fall back to exact=False if exact=True runs in to (known) issues. The [Or2024] reference discusses when/why this is OK.
Configuration menu - View commit details
-
Copy full SHA for be692ea - Browse repository at this point
Copy the full SHA be692eaView commit details -
Configuration menu - View commit details
-
Copy full SHA for 37d3cd4 - Browse repository at this point
Copy the full SHA 37d3cd4View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7049f90 - Browse repository at this point
Copy the full SHA 7049f90View commit details -
Configuration menu - View commit details
-
Copy full SHA for e489fae - Browse repository at this point
Copy the full SHA e489faeView commit details -
Configuration menu - View commit details
-
Copy full SHA for 909f42c - Browse repository at this point
Copy the full SHA 909f42cView commit details -
Configuration menu - View commit details
-
Copy full SHA for ca7b571 - Browse repository at this point
Copy the full SHA ca7b571View commit details -
src/sage/geometry/cone.py: allow the full space in max_angle()
This special case is handled by the P.intersection(-Q) check before we have to think too hard about whether or not it would hurt anything.
Configuration menu - View commit details
-
Copy full SHA for a53e706 - Browse repository at this point
Copy the full SHA a53e706View commit details -
src/sage/geometry/cone_critical_angles.py: the full space is admissible
Allow _random_admissible_cone() to generate the entire ambient space. This only affects a few test cases where it doesn't matter.
Configuration menu - View commit details
-
Copy full SHA for d5778f4 - Browse repository at this point
Copy the full SHA d5778f4View commit details -
src/sage/geometry/cone.py: update a max_angle() test
Maxima no longer crashes, so the description was wrong, and we can avoid numerical comparisons with simplify() and a round trip through sympy.
Configuration menu - View commit details
-
Copy full SHA for 6db77f6 - Browse repository at this point
Copy the full SHA 6db77f6View commit details -
Configuration menu - View commit details
-
Copy full SHA for 828d328 - Browse repository at this point
Copy the full SHA 828d328View commit details -
Configuration menu - View commit details
-
Copy full SHA for 89c9d91 - Browse repository at this point
Copy the full SHA 89c9d91View commit details -
src/sage/geometry/cone.py: one max_angle() test case is still crashy
Witness: sage: n = 4 ## line 6313 ## sage: K = cones.schur(n) ## line 6314 ## sage: bool( K.max_angle()[0].simplify() == ((n-1)/n)*pi ) ## line 6315 ## ------------------------------------------------------------------------ /usr/lib/python3.11/site-packages/cysignals/signals.cpython-311-x86_64- linux-gnu.so(+0x8950)[0x7fa8349c1950] So let's go through sympy in the n=4 case, too.
Configuration menu - View commit details
-
Copy full SHA for d158da3 - Browse repository at this point
Copy the full SHA d158da3View commit details -
src/sage/geometry/cone.py: bring back the max_angle() warning
We should explain why it's not a good idea to _start_ with exact=False.
Configuration menu - View commit details
-
Copy full SHA for 03c9230 - Browse repository at this point
Copy the full SHA 03c9230View commit details -
Configuration menu - View commit details
-
Copy full SHA for fb8ea6c - Browse repository at this point
Copy the full SHA fb8ea6cView commit details -
Configuration menu - View commit details
-
Copy full SHA for e7cd5df - Browse repository at this point
Copy the full SHA e7cd5dfView commit details -
Configuration menu - View commit details
-
Copy full SHA for c5725fc - Browse repository at this point
Copy the full SHA c5725fcView commit details -
Configuration menu - View commit details
-
Copy full SHA for e9f2172 - Browse repository at this point
Copy the full SHA e9f2172View commit details -
Configuration menu - View commit details
-
Copy full SHA for dccc60c - Browse repository at this point
Copy the full SHA dccc60cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 8a18017 - Browse repository at this point
Copy the full SHA 8a18017View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4956d2c - Browse repository at this point
Copy the full SHA 4956d2cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 000045f - Browse repository at this point
Copy the full SHA 000045fView commit details -
Configuration menu - View commit details
-
Copy full SHA for f43c251 - Browse repository at this point
Copy the full SHA f43c251View commit details -
src/sage/geometry/cone.py: don't define P,Q in max_angle()
These names are helpful in the cone_critical_angles module, but not in max_angle() which immediately passes them off to another method.
Configuration menu - View commit details
-
Copy full SHA for 3b042e7 - Browse repository at this point
Copy the full SHA 3b042e7View commit details -
Configuration menu - View commit details
-
Copy full SHA for ac302c3 - Browse repository at this point
Copy the full SHA ac302c3View commit details -
Configuration menu - View commit details
-
Copy full SHA for 33bb8a4 - Browse repository at this point
Copy the full SHA 33bb8a4View commit details -
Configuration menu - View commit details
-
Copy full SHA for 603341a - Browse repository at this point
Copy the full SHA 603341aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 677bde3 - Browse repository at this point
Copy the full SHA 677bde3View commit details -
Configuration menu - View commit details
-
Copy full SHA for e4d9749 - Browse repository at this point
Copy the full SHA e4d9749View commit details -
Configuration menu - View commit details
-
Copy full SHA for 10d33a9 - Browse repository at this point
Copy the full SHA 10d33a9View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6a8db73 - Browse repository at this point
Copy the full SHA 6a8db73View commit details -
Configuration menu - View commit details
-
Copy full SHA for b111700 - Browse repository at this point
Copy the full SHA b111700View commit details -
Configuration menu - View commit details
-
Copy full SHA for ad1c7b4 - Browse repository at this point
Copy the full SHA ad1c7b4View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3773c6e - Browse repository at this point
Copy the full SHA 3773c6eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 1fa06c5 - Browse repository at this point
Copy the full SHA 1fa06c5View commit details -
Configuration menu - View commit details
-
Copy full SHA for cc81025 - Browse repository at this point
Copy the full SHA cc81025View commit details -
Configuration menu - View commit details
-
Copy full SHA for 99295e8 - Browse repository at this point
Copy the full SHA 99295e8View commit details -
Configuration menu - View commit details
-
Copy full SHA for f3aa994 - Browse repository at this point
Copy the full SHA f3aa994View commit details -
Configuration menu - View commit details
-
Copy full SHA for 61cb012 - Browse repository at this point
Copy the full SHA 61cb012View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1e742e9 - Browse repository at this point
Copy the full SHA 1e742e9View commit details -
src/sage/geometry/cone_critical_angles.py: optimize M[I,J] indexing
Using the identity M[I,J].transpose() == M.transpose()[J,I], we can avoid transposing M itself and instead transpose the smaller M[I,J] when M[I,J] is already known.
Configuration menu - View commit details
-
Copy full SHA for 32e543a - Browse repository at this point
Copy the full SHA 32e543aView commit details -
Configuration menu - View commit details
-
Copy full SHA for dff5441 - Browse repository at this point
Copy the full SHA dff5441View commit details
Commits on May 6, 2024
-
Configuration menu - View commit details
-
Copy full SHA for ad7c29c - Browse repository at this point
Copy the full SHA ad7c29cView commit details -
src/sage/geometry/cone_critical_angles.py: add another "internal" war…
…ning The existing warning about this module being internal is easy to miss. This one should appear in bright red at the top of the module documentation.
Configuration menu - View commit details
-
Copy full SHA for 30464f7 - Browse repository at this point
Copy the full SHA 30464f7View commit details -
src/doc/en/reference/discrete_geometry/index.rst: add cone critical a…
…ngles This is an internal module, but it's fully documented and nice to have access to the implementation behind the max_angle() function. Despite being documented, the functions in cone_critical_angles.py are subject to change at any time. This itself is loudly documented.
Configuration menu - View commit details
-
Copy full SHA for 1b8f08f - Browse repository at this point
Copy the full SHA 1b8f08fView commit details