]> gitweb.michael.orlitzky.com - sage.d.git/log
sage.d.git
13 months agoeja: rename operator_inner_product -> operator_trace inner_product. master
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?

14 months agoTODO: add another one.
Michael Orlitzky [Tue, 7 Feb 2023 19:12:23 +0000 (14:12 -0500)]
TODO: add another one.

14 months agoeja: add another test case for the Albert EJA determinant.
Michael Orlitzky [Sun, 5 Feb 2023 13:09:19 +0000 (08:09 -0500)]
eja: add another test case for the Albert EJA determinant.

14 months agoeja: drop "FiniteDimensional" prefix everywhere.
Michael Orlitzky [Sat, 4 Feb 2023 17:12:03 +0000 (12:12 -0500)]
eja: drop "FiniteDimensional" prefix everywhere.

14 months agoeja: special subalgebra handling for Cartesian product EJAs.
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!

14 months agoTODO: drop "FiniteDimensional" everywhere.
Michael Orlitzky [Sat, 4 Feb 2023 12:13:27 +0000 (07:13 -0500)]
TODO: drop "FiniteDimensional" everywhere.

14 months agoeja: don't pointlessly orthonormalize in subalgebra_idempotent().
Michael Orlitzky [Sat, 4 Feb 2023 03:37:34 +0000 (22:37 -0500)]
eja: don't pointlessly orthonormalize in subalgebra_idempotent().

14 months agomjo/random.py: new module for random_unitary_matrix().
Michael Orlitzky [Thu, 2 Feb 2023 14:19:58 +0000 (09:19 -0500)]
mjo/random.py: new module for random_unitary_matrix().

14 months agoeja: write the ALGORITHM block for the degree of an element.
Michael Orlitzky [Sun, 29 Jan 2023 21:38:45 +0000 (16:38 -0500)]
eja: write the ALGORITHM block for the degree of an element.

14 months agoeja: add the trace (matrix) operator inner product.
Michael Orlitzky [Sun, 29 Jan 2023 20:57:46 +0000 (15:57 -0500)]
eja: add the trace (matrix) operator inner product.

14 months agoeja: drop a superfluous semicolon.
Michael Orlitzky [Sun, 29 Jan 2023 20:57:35 +0000 (15:57 -0500)]
eja: drop a superfluous semicolon.

2 years agoeja: use QQ for another potentially slow doctest.
Michael Orlitzky [Wed, 2 Feb 2022 23:43:47 +0000 (18:43 -0500)]
eja: use QQ for another potentially slow doctest.

2 years agoeja: remove an "expected algebra failure" that now somehow passes.
Michael Orlitzky [Wed, 2 Feb 2022 18:44:25 +0000 (13:44 -0500)]
eja: remove an "expected algebra failure" that now somehow passes.

2 years agohurwitz.py: speed up conjugate() and conjugate_transpose().
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.

2 years agomjo/hurwitz.py: speed up is_hermitian() and is_skew_symmetric().
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.

2 years agomatrix_algebra.py: speed up __getitem__() and trace().
Michael Orlitzky [Wed, 2 Feb 2022 15:45:44 +0000 (10:45 -0500)]
matrix_algebra.py: speed up __getitem__() and trace().

2 years agoeja: use orthonormalize=False for all subalgebra_generated_by() tests.
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.

2 years agoeja: change a misleading comment.
Michael Orlitzky [Wed, 2 Feb 2022 14:44:44 +0000 (09:44 -0500)]
eja: change a misleading comment.

2 years agoeja: fix parent of empty sum in element inverse().
Michael Orlitzky [Wed, 2 Feb 2022 05:11:38 +0000 (00:11 -0500)]
eja: fix parent of empty sum in element inverse().

2 years agoeja: add an "r" to a docstring.
Michael Orlitzky [Tue, 1 Feb 2022 23:29:17 +0000 (18:29 -0500)]
eja: add an "r" to a docstring.

2 years agoeja: mention the new EJA in the docs.
Michael Orlitzky [Tue, 1 Feb 2022 23:28:38 +0000 (18:28 -0500)]
eja: mention the new EJA in the docs.

2 years agoeja: add more "# long time" markers.
Michael Orlitzky [Tue, 1 Feb 2022 23:28:27 +0000 (18:28 -0500)]
eja: add more "# long time" markers.

2 years agoeja: add "# long time" to two potentially slow tests.
Michael Orlitzky [Fri, 28 Jan 2022 02:16:52 +0000 (21:16 -0500)]
eja: add "# long time" to two potentially slow tests.

2 years agoeja: test the nonnegativity of trace() for squares.
Michael Orlitzky [Fri, 28 Jan 2022 02:12:11 +0000 (21:12 -0500)]
eja: test the nonnegativity of trace() for squares.

2 years agoeja: revert random_element() to old fast behavior.
Michael Orlitzky [Mon, 31 Jan 2022 22:22:44 +0000 (17:22 -0500)]
eja: revert random_element() to old fast behavior.

2 years agoeja: typo fix in TODO.
Michael Orlitzky [Mon, 31 Jan 2022 18:52:21 +0000 (13:52 -0500)]
eja: typo fix in TODO.

2 years agoeja: fix a copy/paste error in the docs.
Michael Orlitzky [Sun, 30 Jan 2022 23:28:13 +0000 (18:28 -0500)]
eja: fix a copy/paste error in the docs.

2 years agoeja: cache one() for the new EJA.
Michael Orlitzky [Sun, 30 Jan 2022 23:25:11 +0000 (18:25 -0500)]
eja: cache one() for the new EJA.

2 years agoeja: use the correct definition for the new algebra.
Michael Orlitzky [Fri, 28 Jan 2022 02:01:22 +0000 (21:01 -0500)]
eja: use the correct definition for the new algebra.

2 years agohurwitz.py: swap is_sker_hermitian() for is_skew_symmetric().
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.

2 years agoeja: begin work on the ComplexSkewHermitianEJA.
Michael Orlitzky [Wed, 26 Jan 2022 16:12:20 +0000 (11:12 -0500)]
eja: begin work on the ComplexSkewHermitianEJA.

2 years agohurwitz.py: add conjugate() method for matrices.
Michael Orlitzky [Wed, 26 Jan 2022 14:26:09 +0000 (09:26 -0500)]
hurwitz.py: add conjugate() method for matrices.

2 years agohurwitz.py: add is_skew_hermitian() method.
Michael Orlitzky [Wed, 26 Jan 2022 12:41:16 +0000 (07:41 -0500)]
hurwitz.py: add is_skew_hermitian() method.

2 years agoeja: rename MatrixEJA to HermitianMatrixEJA.
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.

2 years agomjo/**/*.py: drop obsolete set_random_seed().
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.

2 years agomakefile: drop obsolete --memlimit flag to sage -t.
Michael Orlitzky [Mon, 15 Nov 2021 18:17:29 +0000 (13:17 -0500)]
makefile: drop obsolete --memlimit flag to sage -t.

2 years agomjo/cone: drop is_symmetric_p{s,}d() methods.
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.

3 years agoeja: factor out the operator polynomial-matrix construction.
Michael Orlitzky [Fri, 23 Apr 2021 15:59:05 +0000 (11:59 -0400)]
eja: factor out the operator polynomial-matrix construction.

3 years agomjo/cone/symmetric_pd.py: add a missing set_random_seed().
Michael Orlitzky [Sun, 4 Apr 2021 12:34:59 +0000 (08:34 -0400)]
mjo/cone/symmetric_pd.py: add a missing set_random_seed().

3 years agomjo/cone/symmetric_pd.py: drop inverse_symmetric_pd().
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]

3 years agoeja: update the DESIGN doc.
Michael Orlitzky [Tue, 16 Mar 2021 12:26:28 +0000 (08:26 -0400)]
eja: update the DESIGN doc.

3 years agoeja: further micro-optimize gram_schmidt().
Michael Orlitzky [Tue, 16 Mar 2021 01:19:27 +0000 (21:19 -0400)]
eja: further micro-optimize gram_schmidt().

3 years agoeja: try to speed up gram_schmidt(), but all my sages are broken.
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.

3 years agoeja: remove unused variable in gram_schmidt.
Michael Orlitzky [Mon, 15 Mar 2021 21:54:43 +0000 (17:54 -0400)]
eja: remove unused variable in gram_schmidt.

3 years agoeja: renumber coordinate variables from zero.
Michael Orlitzky [Sun, 14 Mar 2021 21:38:53 +0000 (17:38 -0400)]
eja: renumber coordinate variables from zero.

3 years agoeja: add more TODOs, which are thankfully getting easier.
Michael Orlitzky [Sun, 14 Mar 2021 17:44:19 +0000 (13:44 -0400)]
eja: add more TODOs, which are thankfully getting easier.

3 years agoeja: speed up det() for Cartesian product elements.
Michael Orlitzky [Sun, 14 Mar 2021 01:46:54 +0000 (20:46 -0500)]
eja: speed up det() for Cartesian product elements.

3 years agoeja: add another TODO item.
Michael Orlitzky [Sat, 13 Mar 2021 20:57:08 +0000 (15:57 -0500)]
eja: add another TODO item.

3 years agoeja: append to an existing TODO.
Michael Orlitzky [Sat, 13 Mar 2021 20:50:44 +0000 (15:50 -0500)]
eja: append to an existing TODO.

3 years agoeja: fix cartesian_factors() for EJA elements.
Michael Orlitzky [Sat, 13 Mar 2021 20:49:32 +0000 (15:49 -0500)]
eja: fix cartesian_factors() for EJA elements.

3 years agoeja: drop obsolete _vec2mat and _mat2vec helpers.
Michael Orlitzky [Sat, 13 Mar 2021 20:27:02 +0000 (15:27 -0500)]
eja: drop obsolete _vec2mat and _mat2vec helpers.

3 years agoeja: remove unused import.
Michael Orlitzky [Sat, 13 Mar 2021 19:55:47 +0000 (14:55 -0500)]
eja: remove unused import.

3 years agoeja: remove redundant kwargs mangling from MatrixEJA subclasses.
Michael Orlitzky [Sat, 13 Mar 2021 19:23:18 +0000 (14:23 -0500)]
eja: remove redundant kwargs mangling from MatrixEJA subclasses.

3 years agoeja: don't allow creation of invalid RationalBasisEJAs.
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.

3 years agoeja: remove an impossible TODO.
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.

3 years agoeja: remove two completed TODOs.
Michael Orlitzky [Sat, 13 Mar 2021 15:38:13 +0000 (10:38 -0500)]
eja: remove two completed TODOs.

3 years agoeja: speed up _all2list().
Michael Orlitzky [Sat, 13 Mar 2021 15:37:44 +0000 (10:37 -0500)]
eja: speed up _all2list().

3 years agoeja: delete obsolete method override.
Michael Orlitzky [Sat, 13 Mar 2021 13:42:14 +0000 (08:42 -0500)]
eja: delete obsolete method override.

3 years agoeja: skip FDEJA constructor in CartesianProductEJA.
Michael Orlitzky [Sat, 13 Mar 2021 13:14:33 +0000 (08:14 -0500)]
eja: skip FDEJA constructor in CartesianProductEJA.

3 years agoeja: add a TODO for tomorrow.
Michael Orlitzky [Sat, 13 Mar 2021 02:12:10 +0000 (21:12 -0500)]
eja: add a TODO for tomorrow.

3 years agoeja: factor a few things out of the FDEJA constructor.
Michael Orlitzky [Fri, 12 Mar 2021 20:16:54 +0000 (15:16 -0500)]
eja: factor a few things out of the FDEJA constructor.

3 years agoeja: add a TODO.
Michael Orlitzky [Fri, 12 Mar 2021 19:51:16 +0000 (14:51 -0500)]
eja: add a TODO.

3 years agoeja: fix trivial subalgebra element constructor.
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.

3 years agoeja: fix recent hasattr() commit.
Michael Orlitzky [Fri, 12 Mar 2021 14:29:33 +0000 (09:29 -0500)]
eja: fix recent hasattr() commit.

3 years agoeja: use hasattr() to avoid a try/except.
Michael Orlitzky [Fri, 12 Mar 2021 13:11:47 +0000 (08:11 -0500)]
eja: use hasattr() to avoid a try/except.

3 years agoeja: allow subalgebra elemenents to be coerced into the superalgebra.
Michael Orlitzky [Fri, 12 Mar 2021 13:10:11 +0000 (08:10 -0500)]
eja: allow subalgebra elemenents to be coerced into the superalgebra.

3 years agoeja: add superalgebra_embedding() for subalgebras.
Michael Orlitzky [Fri, 12 Mar 2021 12:48:59 +0000 (07:48 -0500)]
eja: add superalgebra_embedding() for subalgebras.

3 years agoeja: add another performance TODO.
Michael Orlitzky [Fri, 12 Mar 2021 02:59:23 +0000 (21:59 -0500)]
eja: add another performance TODO.

3 years agoeja: cache the span of the matrix basis when written out as long vectors.
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.

3 years agoeja: fix random_eja() dimension bounds, for real.
Michael Orlitzky [Fri, 12 Mar 2021 02:37:08 +0000 (21:37 -0500)]
eja: fix random_eja() dimension bounds, for real.

3 years agoeja: delete an unused statement.
Michael Orlitzky [Fri, 12 Mar 2021 02:36:55 +0000 (21:36 -0500)]
eja: delete an unused statement.

3 years agoeja: add missing transpose() to deortho matrix.
Michael Orlitzky [Thu, 11 Mar 2021 21:35:38 +0000 (16:35 -0500)]
eja: add missing transpose() to deortho matrix.

3 years agoeja: fix a deorthonormalization bug.
Michael Orlitzky [Thu, 11 Mar 2021 20:03:14 +0000 (15:03 -0500)]
eja: fix a deorthonormalization bug.

3 years agoeja: add a performance TODO for Cartesian products with trivial factors.
Michael Orlitzky [Thu, 11 Mar 2021 19:36:40 +0000 (14:36 -0500)]
eja: add a performance TODO for Cartesian products with trivial factors.

3 years agoeja: add randomness to a test.
Michael Orlitzky [Thu, 11 Mar 2021 19:36:30 +0000 (14:36 -0500)]
eja: add randomness to a test.

3 years agoeja: update the TODO with a bug example.
Michael Orlitzky [Thu, 11 Mar 2021 19:02:14 +0000 (14:02 -0500)]
eja: update the TODO with a bug example.

3 years agoeja: add more introductory documentation.
Michael Orlitzky [Thu, 11 Mar 2021 18:56:23 +0000 (13:56 -0500)]
eja: add more introductory documentation.

3 years agoeja: remove more completed TODO items.
Michael Orlitzky [Thu, 11 Mar 2021 00:47:29 +0000 (19:47 -0500)]
eja: remove more completed TODO items.

3 years agoeja: fix tests for new random_eja() structure.
Michael Orlitzky [Thu, 11 Mar 2021 00:40:26 +0000 (19:40 -0500)]
eja: fix tests for new random_eja() structure.

3 years agoeja: rework the random_eja() bounds in terms of dimension.
Michael Orlitzky [Thu, 11 Mar 2021 00:06:46 +0000 (19:06 -0500)]
eja: rework the random_eja() bounds in terms of dimension.

3 years agoeja: more cached charpoly coefficients.
Michael Orlitzky [Wed, 10 Mar 2021 23:04:25 +0000 (18:04 -0500)]
eja: more cached charpoly coefficients.

3 years agoeja: fix missing test import.
Michael Orlitzky [Wed, 10 Mar 2021 19:30:40 +0000 (14:30 -0500)]
eja: fix missing test import.

3 years agoeja: more charpoly coefficient caching.
Michael Orlitzky [Wed, 10 Mar 2021 19:01:48 +0000 (14:01 -0500)]
eja: more charpoly coefficient caching.

3 years agoeja: cache the charpoly coefficients for the AlbertEJA.
Michael Orlitzky [Wed, 10 Mar 2021 18:31:53 +0000 (13:31 -0500)]
eja: cache the charpoly coefficients for the AlbertEJA.

3 years agoeja: remove the cached product_on_basis() TODO.
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".

3 years agoeja: factor out MatrixEJA initialization.
Michael Orlitzky [Tue, 9 Mar 2021 23:51:29 +0000 (18:51 -0500)]
eja: factor out MatrixEJA initialization.

3 years agoeja: remove a completed TODO.
Michael Orlitzky [Tue, 9 Mar 2021 21:52:57 +0000 (16:52 -0500)]
eja: remove a completed TODO.

3 years agoeja: optionally pass matrix space into FDEJA instead of guessing it.
Michael Orlitzky [Tue, 9 Mar 2021 21:22:16 +0000 (16:22 -0500)]
eja: optionally pass matrix space into FDEJA instead of guessing it.

3 years agomatrix_algebra: use "[]" for trivial matrices and fix a test.
Michael Orlitzky [Tue, 9 Mar 2021 21:21:40 +0000 (16:21 -0500)]
matrix_algebra: use "[]" for trivial matrices and fix a test.

3 years agoeja: fix representation of "zero" in MatrixAlgebra.
Michael Orlitzky [Tue, 9 Mar 2021 19:59:20 +0000 (14:59 -0500)]
eja: fix representation of "zero" in MatrixAlgebra.

3 years agoeja: fix some tests, speed improvements.
Michael Orlitzky [Tue, 9 Mar 2021 17:04:37 +0000 (12:04 -0500)]
eja: fix some tests, speed improvements.

3 years agoeja: remove completed TODO.
Michael Orlitzky [Tue, 9 Mar 2021 16:02:23 +0000 (11:02 -0500)]
eja: remove completed TODO.

3 years agomatrix_algebra: fix element construction.
Michael Orlitzky [Tue, 9 Mar 2021 16:02:04 +0000 (11:02 -0500)]
matrix_algebra: fix element construction.

3 years agomatrix_algebra: add _entry_algebra_element_to_vector() method.
Michael Orlitzky [Tue, 9 Mar 2021 15:15:48 +0000 (10:15 -0500)]
matrix_algebra: add _entry_algebra_element_to_vector() method.

3 years agomatrix_algebra: put basis in the usual (row,column) order.
Michael Orlitzky [Tue, 9 Mar 2021 06:23:48 +0000 (01:23 -0500)]
matrix_algebra: put basis in the usual (row,column) order.

3 years agoeja: add a TODO for the morning.
Michael Orlitzky [Tue, 9 Mar 2021 05:37:13 +0000 (00:37 -0500)]
eja: add a TODO for the morning.

3 years agoeja: refactor all matrix classes upwards (note: everything broken).
Michael Orlitzky [Tue, 9 Mar 2021 04:58:39 +0000 (23:58 -0500)]
eja: refactor all matrix classes upwards (note: everything broken).

3 years agoeja: eliminate remaining real-embeddings.
Michael Orlitzky [Tue, 9 Mar 2021 03:31:07 +0000 (22:31 -0500)]
eja: eliminate remaining real-embeddings.

3 years agoeja: undo overzealous hack in _all2list; the bug was elsewhere.
Michael Orlitzky [Tue, 9 Mar 2021 03:04:15 +0000 (22:04 -0500)]
eja: undo overzealous hack in _all2list; the bug was elsewhere.

3 years agohurwitz: fix Hurwitz matrix algebra generators.
Michael Orlitzky [Tue, 9 Mar 2021 03:02:25 +0000 (22:02 -0500)]
hurwitz: fix Hurwitz matrix algebra generators.