]>
gitweb.michael.orlitzky.com - sage.d.git/log
Michael Orlitzky [Fri, 29 Nov 2024 01:17:25 +0000 (20:17 -0500)]
mjo/eja/eja_operator.py: randomize the permuted factors test
Michael Orlitzky [Fri, 29 Nov 2024 01:17:14 +0000 (20:17 -0500)]
mjo/eja/eja_operator.py: add some "long time" labels
Michael Orlitzky [Fri, 29 Nov 2024 01:16:43 +0000 (20:16 -0500)]
mjo/eja/eja_operator.py: fix test when spin algebra is trivial
Michael Orlitzky [Fri, 29 Nov 2024 00:26:55 +0000 (19:26 -0500)]
mjo/eja/eja_operator.py: permutation test for is_isomorphism()
Michael Orlitzky [Thu, 28 Nov 2024 23:20:17 +0000 (18:20 -0500)]
mjo/eja/eja_operator.py: improved is_isomorphism() tests
For random testing we can use rationals; but only certain small
examples complete fast enough over the algebraics.
Michael Orlitzky [Thu, 28 Nov 2024 18:16:38 +0000 (13:16 -0500)]
mjo/eja/eja_operator.py: add complex hermitian EJA tests for is_isomorphism()
Michael Orlitzky [Thu, 28 Nov 2024 18:15:57 +0000 (13:15 -0500)]
mjo/eja/eja_operator.py: speed up is_isometry() and is_homomorphism()
Both of these are symmetric, so we can skip about half of the checks.
Michael Orlitzky [Thu, 28 Nov 2024 16:43:11 +0000 (11:43 -0500)]
mjo/eja/eja_operator.py: simplify an is_isomorphism() test
Michael Orlitzky [Thu, 28 Nov 2024 14:22:44 +0000 (09:22 -0500)]
mjo/eja/eja_operator.py: is_isomorphism() tests for the two easiest EJAs
Michael Orlitzky [Thu, 28 Nov 2024 13:53:29 +0000 (08:53 -0500)]
mjo/matrix_algebra.py: move a comment
Michael Orlitzky [Wed, 27 Nov 2024 23:32:43 +0000 (18:32 -0500)]
mjo/eja/eja_operator.py: add is_isomorphism() for operators
Michael Orlitzky [Wed, 27 Nov 2024 01:02:56 +0000 (20:02 -0500)]
mjo/eja/eja_operator.py: add is_homomorphism() for operators
Michael Orlitzky [Tue, 26 Nov 2024 18:40:28 +0000 (13:40 -0500)]
mjo/eja/eja_operator.py: add a comment about something non-obvious
Michael Orlitzky [Tue, 26 Nov 2024 18:33:41 +0000 (13:33 -0500)]
mjo/eja/eja_operator.py: add is_isometry() method
Michael Orlitzky [Tue, 26 Nov 2024 18:33:25 +0000 (13:33 -0500)]
makefile: bypass the "sage" script when testing
Michael Orlitzky [Sat, 23 Nov 2024 02:52:08 +0000 (21:52 -0500)]
mjo/hurwitz.py: quaternion gens are a tuple now
Michael Orlitzky [Sat, 23 Nov 2024 02:50:05 +0000 (21:50 -0500)]
mjo/**/*.py: update table rendering
Sage's tables are rendered using unicode characters for the borders
now.
Michael Orlitzky [Fri, 22 Nov 2024 22:22:15 +0000 (17:22 -0500)]
mjo/eja/eja_algebra.py: block-scoped "long time" tags
Michael Orlitzky [Fri, 22 Nov 2024 22:00:14 +0000 (17:00 -0500)]
mjo/eja/eja_subalgebra.py: block-scoped "long time" tags
Michael Orlitzky [Fri, 22 Nov 2024 22:00:03 +0000 (17:00 -0500)]
mjo/eja/eja_element.py: block-scoped "long time" tags
Michael Orlitzky [Fri, 22 Nov 2024 21:38:30 +0000 (16:38 -0500)]
mjo/cone/symmetric_psd.py: don't import from sage.all
Michael Orlitzky [Fri, 22 Nov 2024 21:38:12 +0000 (16:38 -0500)]
mjo/cone/symmetric_pd.py: don't import from sage.all
Michael Orlitzky [Fri, 22 Nov 2024 20:57:16 +0000 (15:57 -0500)]
mjo/cone/cone.py: remove
I don't feel like documenting these properly, and they aren't used
anywhere else.
Michael Orlitzky [Fri, 22 Nov 2024 20:56:43 +0000 (15:56 -0500)]
mjo/cone/permutation_invariant.py: don't import from sage.all
Michael Orlitzky [Fri, 22 Nov 2024 20:43:58 +0000 (15:43 -0500)]
mjo/cone/doubly_nonnegative.py: don't import from sage.all
Michael Orlitzky [Fri, 22 Nov 2024 20:22:33 +0000 (15:22 -0500)]
mjo/cone/cone.py: don't import from sage.all
Michael Orlitzky [Fri, 22 Nov 2024 20:17:13 +0000 (15:17 -0500)]
mjo/cone/completely_positive.py: don't import from sage.all
Michael Orlitzky [Fri, 22 Nov 2024 20:15:56 +0000 (15:15 -0500)]
mjo/cone/faces.py: don't import from sage.all
Michael Orlitzky [Fri, 22 Nov 2024 20:14:15 +0000 (15:14 -0500)]
mjo/symbol_sequence.py: don't import from sage.all
Michael Orlitzky [Fri, 22 Nov 2024 20:12:00 +0000 (15:12 -0500)]
mjo/polynomial.py: don't import from sage.all
Michael Orlitzky [Fri, 22 Nov 2024 20:08:08 +0000 (15:08 -0500)]
mjo/orthogonal_polynomials.py: don't import from sage.all
Michael Orlitzky [Fri, 22 Nov 2024 19:54:46 +0000 (14:54 -0500)]
mjo/basis_repr.py: don't import from sage.all
Michael Orlitzky [Fri, 22 Nov 2024 19:38:08 +0000 (14:38 -0500)]
mjo/interpolation.py: don't import sage.all in global scope
Michael Orlitzky [Fri, 22 Nov 2024 19:04:24 +0000 (14:04 -0500)]
mjo/misc.py: don't import sage.all
Michael Orlitzky [Fri, 22 Nov 2024 18:57:22 +0000 (13:57 -0500)]
mjo/basis_repr.py: replace deprecated is_MatrixSpace()
Michael Orlitzky [Fri, 22 Nov 2024 18:53:10 +0000 (13:53 -0500)]
mjo/eja/eja_utils.py: replace deprecated is_Matrix()
Michael Orlitzky [Thu, 31 Oct 2024 22:00:07 +0000 (18:00 -0400)]
mjo/cone/faces.py: add another reducibility test
Michael Orlitzky [Sun, 19 May 2024 01:50:53 +0000 (21:50 -0400)]
mjo/cone/faces.py: use simpler dual face formula
Michael Orlitzky [Sun, 19 May 2024 01:47:13 +0000 (21:47 -0400)]
mjo/cone/permutation_invariant.py: use cones.foo() from sage
Michael Orlitzky [Sat, 18 May 2024 21:11:21 +0000 (17:11 -0400)]
README: rewrite it, it was rather out-of-date
Michael Orlitzky [Sat, 18 May 2024 21:11:05 +0000 (17:11 -0400)]
makefile: timeout overrides should no longer be necessary
Michael Orlitzky [Sat, 18 May 2024 20:59:24 +0000 (16:59 -0400)]
mjo/cone/rearrangement.py: bye, use sage's cones.rearrangement() instead
Michael Orlitzky [Sat, 18 May 2024 20:57:39 +0000 (16:57 -0400)]
mjo/cone/trivial_cone.py: bye, use sage's cones.trivial() instead
Michael Orlitzky [Sat, 18 May 2024 20:56:55 +0000 (16:56 -0400)]
mjo/cone/nonnegative_orthant.py: bye, use cones.nonnegative_orthant() instead
Michael Orlitzky [Sat, 18 May 2024 20:55:25 +0000 (16:55 -0400)]
mjo/cone/schur.py: bye, use sage's cones.schur() instead
Michael Orlitzky [Mon, 6 May 2024 18:51:18 +0000 (14:51 -0400)]
COPYING,LICENSE: add (AGPL-3.0+)
Michael Orlitzky [Fri, 24 Feb 2023 13:49:04 +0000 (08:49 -0500)]
eja: rename operator_inner_product -> operator_trace inner_product.
...and add an operator_trace_norm() method, for elements. It would
have been weird to have it called operator_norm(), wouldn't it?
Michael Orlitzky [Tue, 7 Feb 2023 19:12:23 +0000 (14:12 -0500)]
TODO: add another one.
Michael Orlitzky [Sun, 5 Feb 2023 13:09:19 +0000 (08:09 -0500)]
eja: add another test case for the Albert EJA determinant.
Michael Orlitzky [Sat, 4 Feb 2023 17:12:03 +0000 (12:12 -0500)]
eja: drop "FiniteDimensional" prefix everywhere.
Michael Orlitzky [Sat, 4 Feb 2023 16:26:55 +0000 (11:26 -0500)]
eja: special subalgebra handling for Cartesian product EJAs.
The matrix representation of an element in a Cartesian product EJA
will be an ordered tupe of matrices. When we move into a subalgebra,
the same element (considered as an element of the subalgebra) no
longer lives in a "Cartesian product EJA," since we give the
subalgebra its own basis. However, if we ever want to convert back,
then we need to know that the element originally came from a Cartesian
product EJA, because scalar fucking scaling doesn't fucking work on
ordered pairs!
Michael Orlitzky [Sat, 4 Feb 2023 12:13:27 +0000 (07:13 -0500)]
TODO: drop "FiniteDimensional" everywhere.
Michael Orlitzky [Sat, 4 Feb 2023 03:37:34 +0000 (22:37 -0500)]
eja: don't pointlessly orthonormalize in subalgebra_idempotent().
Michael Orlitzky [Thu, 2 Feb 2023 14:19:58 +0000 (09:19 -0500)]
mjo/random.py: new module for random_unitary_matrix().
Michael Orlitzky [Sun, 29 Jan 2023 21:38:45 +0000 (16:38 -0500)]
eja: write the ALGORITHM block for the degree of an element.
Michael Orlitzky [Sun, 29 Jan 2023 20:57:46 +0000 (15:57 -0500)]
eja: add the trace (matrix) operator inner product.
Michael Orlitzky [Sun, 29 Jan 2023 20:57:35 +0000 (15:57 -0500)]
eja: drop a superfluous semicolon.
Michael Orlitzky [Wed, 2 Feb 2022 23:43:47 +0000 (18:43 -0500)]
eja: use QQ for another potentially slow doctest.
Michael Orlitzky [Wed, 2 Feb 2022 18:44:25 +0000 (13:44 -0500)]
eja: remove an "expected algebra failure" that now somehow passes.
Michael Orlitzky [Wed, 2 Feb 2022 18:43:53 +0000 (13:43 -0500)]
hurwitz.py: speed up conjugate() and conjugate_transpose().
...by staying as close to the underlying monomial dict as possible.
Michael Orlitzky [Wed, 2 Feb 2022 16:21:01 +0000 (11:21 -0500)]
mjo/hurwitz.py: speed up is_hermitian() and is_skew_symmetric().
We only need to test these above and on the diagonal.
Michael Orlitzky [Wed, 2 Feb 2022 15:45:44 +0000 (10:45 -0500)]
matrix_algebra.py: speed up __getitem__() and trace().
Michael Orlitzky [Wed, 2 Feb 2022 14:56:04 +0000 (09:56 -0500)]
eja: use orthonormalize=False for all subalgebra_generated_by() tests.
Orthonormalizing a high-degree element over AA takes roughly forever.
Better that we test *something* than the nothing that gets tested if
I Ctrl-C the process.
Michael Orlitzky [Wed, 2 Feb 2022 14:44:44 +0000 (09:44 -0500)]
eja: change a misleading comment.
Michael Orlitzky [Wed, 2 Feb 2022 05:11:38 +0000 (00:11 -0500)]
eja: fix parent of empty sum in element inverse().
Michael Orlitzky [Tue, 1 Feb 2022 23:29:17 +0000 (18:29 -0500)]
eja: add an "r" to a docstring.
Michael Orlitzky [Tue, 1 Feb 2022 23:28:38 +0000 (18:28 -0500)]
eja: mention the new EJA in the docs.
Michael Orlitzky [Tue, 1 Feb 2022 23:28:27 +0000 (18:28 -0500)]
eja: add more "# long time" markers.
Michael Orlitzky [Fri, 28 Jan 2022 02:16:52 +0000 (21:16 -0500)]
eja: add "# long time" to two potentially slow tests.
Michael Orlitzky [Fri, 28 Jan 2022 02:12:11 +0000 (21:12 -0500)]
eja: test the nonnegativity of trace() for squares.
Michael Orlitzky [Mon, 31 Jan 2022 22:22:44 +0000 (17:22 -0500)]
eja: revert random_element() to old fast behavior.
Michael Orlitzky [Mon, 31 Jan 2022 18:52:21 +0000 (13:52 -0500)]
eja: typo fix in TODO.
Michael Orlitzky [Sun, 30 Jan 2022 23:28:13 +0000 (18:28 -0500)]
eja: fix a copy/paste error in the docs.
Michael Orlitzky [Sun, 30 Jan 2022 23:25:11 +0000 (18:25 -0500)]
eja: cache one() for the new EJA.
Michael Orlitzky [Fri, 28 Jan 2022 02:01:22 +0000 (21:01 -0500)]
eja: use the correct definition for the new algebra.
Michael Orlitzky [Thu, 27 Jan 2022 21:31:08 +0000 (16:31 -0500)]
hurwitz.py: swap is_sker_hermitian() for is_skew_symmetric().
It turns out I've been working with the wrong concept for the past two
days. Welp.
Michael Orlitzky [Wed, 26 Jan 2022 16:12:20 +0000 (11:12 -0500)]
eja: begin work on the ComplexSkewHermitianEJA.
Michael Orlitzky [Wed, 26 Jan 2022 14:26:09 +0000 (09:26 -0500)]
hurwitz.py: add conjugate() method for matrices.
Michael Orlitzky [Wed, 26 Jan 2022 12:41:16 +0000 (07:41 -0500)]
hurwitz.py: add is_skew_hermitian() method.
Michael Orlitzky [Wed, 26 Jan 2022 12:32:17 +0000 (07:32 -0500)]
eja: rename MatrixEJA to HermitianMatrixEJA.
There are also algebras of skew-Hermitian matrices, so the name was
not great.
Michael Orlitzky [Mon, 15 Nov 2021 18:53:29 +0000 (13:53 -0500)]
mjo/**/*.py: drop obsolete set_random_seed().
We use a random random seed by default now finally.
Michael Orlitzky [Mon, 15 Nov 2021 18:17:29 +0000 (13:17 -0500)]
makefile: drop obsolete --memlimit flag to sage -t.
Michael Orlitzky [Sat, 1 May 2021 00:48:45 +0000 (20:48 -0400)]
mjo/cone: drop is_symmetric_p{s,}d() methods.
These are now redundant since the sage is_positive_definite() and
is_positive_semidefinite() methods exist and work on inexact rings.
Michael Orlitzky [Fri, 23 Apr 2021 15:59:05 +0000 (11:59 -0400)]
eja: factor out the operator polynomial-matrix construction.
Michael Orlitzky [Sun, 4 Apr 2021 12:34:59 +0000 (08:34 -0400)]
mjo/cone/symmetric_pd.py: add a missing set_random_seed().
Michael Orlitzky [Sun, 4 Apr 2021 12:31:10 +0000 (08:31 -0400)]
mjo/cone/symmetric_pd.py: drop inverse_symmetric_pd().
This function is now available in SageMath:
sage: A = matrix.identity(QQ,2)
sage: A.inverse_positive_definite()
[1 0]
[0 1]
Michael Orlitzky [Tue, 16 Mar 2021 12:26:28 +0000 (08:26 -0400)]
eja: update the DESIGN doc.
Michael Orlitzky [Tue, 16 Mar 2021 01:19:27 +0000 (21:19 -0400)]
eja: further micro-optimize gram_schmidt().
Michael Orlitzky [Mon, 15 Mar 2021 22:16:17 +0000 (18:16 -0400)]
eja: try to speed up gram_schmidt(), but all my sages are broken.
Michael Orlitzky [Mon, 15 Mar 2021 21:54:43 +0000 (17:54 -0400)]
eja: remove unused variable in gram_schmidt.
Michael Orlitzky [Sun, 14 Mar 2021 21:38:53 +0000 (17:38 -0400)]
eja: renumber coordinate variables from zero.
Michael Orlitzky [Sun, 14 Mar 2021 17:44:19 +0000 (13:44 -0400)]
eja: add more TODOs, which are thankfully getting easier.
Michael Orlitzky [Sun, 14 Mar 2021 01:46:54 +0000 (20:46 -0500)]
eja: speed up det() for Cartesian product elements.
Michael Orlitzky [Sat, 13 Mar 2021 20:57:08 +0000 (15:57 -0500)]
eja: add another TODO item.
Michael Orlitzky [Sat, 13 Mar 2021 20:50:44 +0000 (15:50 -0500)]
eja: append to an existing TODO.
Michael Orlitzky [Sat, 13 Mar 2021 20:49:32 +0000 (15:49 -0500)]
eja: fix cartesian_factors() for EJA elements.
Michael Orlitzky [Sat, 13 Mar 2021 20:27:02 +0000 (15:27 -0500)]
eja: drop obsolete _vec2mat and _mat2vec helpers.
Michael Orlitzky [Sat, 13 Mar 2021 19:55:47 +0000 (14:55 -0500)]
eja: remove unused import.
Michael Orlitzky [Sat, 13 Mar 2021 19:23:18 +0000 (14:23 -0500)]
eja: remove redundant kwargs mangling from MatrixEJA subclasses.
Michael Orlitzky [Sat, 13 Mar 2021 19:17:20 +0000 (14:17 -0500)]
eja: don't allow creation of invalid RationalBasisEJAs.
Prior to this, a Cartesian product taken in the "wrong order" could
result in a subclass of RationalBasisEJA that did not actually have
a corresponding rational algebra.