]>
gitweb.michael.orlitzky.com - sage.d.git/log
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.
Michael Orlitzky [Sat, 13 Mar 2021 15:44:51 +0000 (10:44 -0500)]
eja: remove an impossible TODO.
We can't use the _rational_algebra to get minimal polynomials like we
do with characteristic ones. The secret with the charpolys is that the
(irrational) coordinates of the element are hidden behind polynomial
variables. With the minimal polynomial, we'd need to operate on them
directly... but we can't, in a rational algebra.
Michael Orlitzky [Sat, 13 Mar 2021 15:38:13 +0000 (10:38 -0500)]
eja: remove two completed TODOs.
Michael Orlitzky [Sat, 13 Mar 2021 15:37:44 +0000 (10:37 -0500)]
eja: speed up _all2list().
Michael Orlitzky [Sat, 13 Mar 2021 13:42:14 +0000 (08:42 -0500)]
eja: delete obsolete method override.
Michael Orlitzky [Sat, 13 Mar 2021 13:14:33 +0000 (08:14 -0500)]
eja: skip FDEJA constructor in CartesianProductEJA.
Michael Orlitzky [Sat, 13 Mar 2021 02:12:10 +0000 (21:12 -0500)]
eja: add a TODO for tomorrow.
Michael Orlitzky [Fri, 12 Mar 2021 20:16:54 +0000 (15:16 -0500)]
eja: factor a few things out of the FDEJA constructor.
Michael Orlitzky [Fri, 12 Mar 2021 19:51:16 +0000 (14:51 -0500)]
eja: add a TODO.
Michael Orlitzky [Fri, 12 Mar 2021 15:42:43 +0000 (10:42 -0500)]
eja: fix trivial subalgebra element constructor.
Some recent performance improvemenets necessitate a special case
for trivial subalgebras.
Michael Orlitzky [Fri, 12 Mar 2021 14:29:33 +0000 (09:29 -0500)]
eja: fix recent hasattr() commit.
Michael Orlitzky [Fri, 12 Mar 2021 13:11:47 +0000 (08:11 -0500)]
eja: use hasattr() to avoid a try/except.
Michael Orlitzky [Fri, 12 Mar 2021 13:10:11 +0000 (08:10 -0500)]
eja: allow subalgebra elemenents to be coerced into the superalgebra.
Michael Orlitzky [Fri, 12 Mar 2021 12:48:59 +0000 (07:48 -0500)]
eja: add superalgebra_embedding() for subalgebras.
Michael Orlitzky [Fri, 12 Mar 2021 02:59:23 +0000 (21:59 -0500)]
eja: add another performance TODO.
Michael Orlitzky [Fri, 12 Mar 2021 02:57:16 +0000 (21:57 -0500)]
eja: cache the span of the matrix basis when written out as long vectors.
This GREATLY improves the speed of the _element_constructor_(), and
therefore of Cartesian products.
Michael Orlitzky [Fri, 12 Mar 2021 02:37:08 +0000 (21:37 -0500)]
eja: fix random_eja() dimension bounds, for real.
Michael Orlitzky [Fri, 12 Mar 2021 02:36:55 +0000 (21:36 -0500)]
eja: delete an unused statement.
Michael Orlitzky [Thu, 11 Mar 2021 21:35:38 +0000 (16:35 -0500)]
eja: add missing transpose() to deortho matrix.
Michael Orlitzky [Thu, 11 Mar 2021 20:03:14 +0000 (15:03 -0500)]
eja: fix a deorthonormalization bug.
Michael Orlitzky [Thu, 11 Mar 2021 19:36:40 +0000 (14:36 -0500)]
eja: add a performance TODO for Cartesian products with trivial factors.
Michael Orlitzky [Thu, 11 Mar 2021 19:36:30 +0000 (14:36 -0500)]
eja: add randomness to a test.
Michael Orlitzky [Thu, 11 Mar 2021 19:02:14 +0000 (14:02 -0500)]
eja: update the TODO with a bug example.
Michael Orlitzky [Thu, 11 Mar 2021 18:56:23 +0000 (13:56 -0500)]
eja: add more introductory documentation.
Michael Orlitzky [Thu, 11 Mar 2021 00:47:29 +0000 (19:47 -0500)]
eja: remove more completed TODO items.
Michael Orlitzky [Thu, 11 Mar 2021 00:40:26 +0000 (19:40 -0500)]
eja: fix tests for new random_eja() structure.
Michael Orlitzky [Thu, 11 Mar 2021 00:06:46 +0000 (19:06 -0500)]
eja: rework the random_eja() bounds in terms of dimension.
Michael Orlitzky [Wed, 10 Mar 2021 23:04:25 +0000 (18:04 -0500)]
eja: more cached charpoly coefficients.
Michael Orlitzky [Wed, 10 Mar 2021 19:30:40 +0000 (14:30 -0500)]
eja: fix missing test import.
Michael Orlitzky [Wed, 10 Mar 2021 19:01:48 +0000 (14:01 -0500)]
eja: more charpoly coefficient caching.
Michael Orlitzky [Wed, 10 Mar 2021 18:31:53 +0000 (13:31 -0500)]
eja: cache the charpoly coefficients for the AlbertEJA.
Michael Orlitzky [Wed, 10 Mar 2021 00:08:47 +0000 (19:08 -0500)]
eja: remove the cached product_on_basis() TODO.
Storing the multiplication table in a list is actually faster than the
@cached_method dict lookup. I tried it. In general, l[i][j] is about
twice as fast as d[(i,j)] for a nested list "l" and dict "d".
Michael Orlitzky [Tue, 9 Mar 2021 23:51:29 +0000 (18:51 -0500)]
eja: factor out MatrixEJA initialization.
Michael Orlitzky [Tue, 9 Mar 2021 21:52:57 +0000 (16:52 -0500)]
eja: remove a completed TODO.
Michael Orlitzky [Tue, 9 Mar 2021 21:22:16 +0000 (16:22 -0500)]
eja: optionally pass matrix space into FDEJA instead of guessing it.
Michael Orlitzky [Tue, 9 Mar 2021 21:21:40 +0000 (16:21 -0500)]
matrix_algebra: use "[]" for trivial matrices and fix a test.
Michael Orlitzky [Tue, 9 Mar 2021 19:59:20 +0000 (14:59 -0500)]
eja: fix representation of "zero" in MatrixAlgebra.
Michael Orlitzky [Tue, 9 Mar 2021 17:04:37 +0000 (12:04 -0500)]
eja: fix some tests, speed improvements.
Michael Orlitzky [Tue, 9 Mar 2021 16:02:23 +0000 (11:02 -0500)]
eja: remove completed TODO.
Michael Orlitzky [Tue, 9 Mar 2021 16:02:04 +0000 (11:02 -0500)]
matrix_algebra: fix element construction.
Michael Orlitzky [Tue, 9 Mar 2021 15:15:48 +0000 (10:15 -0500)]
matrix_algebra: add _entry_algebra_element_to_vector() method.
Michael Orlitzky [Tue, 9 Mar 2021 06:23:48 +0000 (01:23 -0500)]
matrix_algebra: put basis in the usual (row,column) order.
Michael Orlitzky [Tue, 9 Mar 2021 05:37:13 +0000 (00:37 -0500)]
eja: add a TODO for the morning.
Michael Orlitzky [Tue, 9 Mar 2021 04:58:39 +0000 (23:58 -0500)]
eja: refactor all matrix classes upwards (note: everything broken).
Michael Orlitzky [Tue, 9 Mar 2021 03:31:07 +0000 (22:31 -0500)]
eja: eliminate remaining real-embeddings.
Michael Orlitzky [Tue, 9 Mar 2021 03:04:15 +0000 (22:04 -0500)]
eja: undo overzealous hack in _all2list; the bug was elsewhere.