]> gitweb.michael.orlitzky.com - sage.d.git/log
sage.d.git
4 years agoeja: remove wayward utf-8 comment.
Michael Orlitzky [Sat, 7 Nov 2020 18:58:01 +0000 (13:58 -0500)]
eja: remove wayward utf-8 comment.

4 years agoeja: let random_eja() return zero-dimensional algebras of all types.
Michael Orlitzky [Sat, 7 Nov 2020 18:00:38 +0000 (13:00 -0500)]
eja: let random_eja() return zero-dimensional algebras of all types.

4 years agoeja: fix two more tests to work in dimension zero.
Michael Orlitzky [Sat, 7 Nov 2020 18:00:23 +0000 (13:00 -0500)]
eja: fix two more tests to work in dimension zero.

4 years agoeja: make an inverse() test work in trivial algebras.
Michael Orlitzky [Fri, 6 Nov 2020 22:42:49 +0000 (17:42 -0500)]
eja: make an inverse() test work in trivial algebras.

4 years agoeja: make all tests work in trivial algebras.
Michael Orlitzky [Fri, 6 Nov 2020 14:22:45 +0000 (09:22 -0500)]
eja: make all tests work in trivial algebras.

This lets us drop the "nontrivial" argument to the random_eja()
function, because now we don't need it.

4 years agoeja: document why an a[0] access is safe.
Michael Orlitzky [Fri, 6 Nov 2020 13:44:07 +0000 (08:44 -0500)]
eja: document why an a[0] access is safe.

4 years agoeja: expound on an existing TODO item.
Michael Orlitzky [Thu, 5 Nov 2020 00:39:08 +0000 (19:39 -0500)]
eja: expound on an existing TODO item.

4 years agoeja: allow matrix algebras of "size" zero.
Michael Orlitzky [Thu, 5 Nov 2020 00:23:17 +0000 (19:23 -0500)]
eja: allow matrix algebras of "size" zero.

4 years agoeja: remove another completed TODO.
Michael Orlitzky [Thu, 5 Nov 2020 00:05:28 +0000 (19:05 -0500)]
eja: remove another completed TODO.

4 years agoeja: remove a completed TODO.
Michael Orlitzky [Thu, 5 Nov 2020 00:03:16 +0000 (19:03 -0500)]
eja: remove a completed TODO.

4 years agoeja: remove one use of nontrivial=True passed to random_eja().
Michael Orlitzky [Thu, 5 Nov 2020 00:02:31 +0000 (19:02 -0500)]
eja: remove one use of nontrivial=True passed to random_eja().

4 years agoeja: fix the fast matrix _charpoly_coefficients() method.
Michael Orlitzky [Wed, 4 Nov 2020 23:24:49 +0000 (18:24 -0500)]
eja: fix the fast matrix _charpoly_coefficients() method.

4 years agoeja: speed up _charpoly_coefficients when rank is cached.
Michael Orlitzky [Wed, 4 Nov 2020 22:28:56 +0000 (17:28 -0500)]
eja: speed up _charpoly_coefficients when rank is cached.

4 years agoeja: fix the determinant in trivial algebras.
Michael Orlitzky [Wed, 4 Nov 2020 15:14:52 +0000 (10:14 -0500)]
eja: fix the determinant in trivial algebras.

4 years agoeja: remove more vestigial charpoly stuff.
Michael Orlitzky [Wed, 4 Nov 2020 15:14:34 +0000 (10:14 -0500)]
eja: remove more vestigial charpoly stuff.

4 years agomakefile: don't allow tests to time out.
Michael Orlitzky [Wed, 4 Nov 2020 14:52:52 +0000 (09:52 -0500)]
makefile: don't allow tests to time out.

4 years agoeja: simplify and unify the charpoly/rank stuff.
Michael Orlitzky [Wed, 4 Nov 2020 13:31:51 +0000 (08:31 -0500)]
eja: simplify and unify the charpoly/rank stuff.

4 years agoeja: replace rank computation with length of charpoly coefficients.
Michael Orlitzky [Wed, 4 Nov 2020 13:01:11 +0000 (08:01 -0500)]
eja: replace rank computation with length of charpoly coefficients.

If we cache the solution to the charpoly system instead, then the
result is useful in more than one place (for the charpoly itself,
in particular).

4 years agoeja: get rid of the KnownRankEJA class.
Michael Orlitzky [Tue, 3 Nov 2020 19:43:30 +0000 (14:43 -0500)]
eja: get rid of the KnownRankEJA class.

Not needed now that I know how to compute rank.

4 years agoeja: reimplement random_eja() without KnownRankEJA.
Michael Orlitzky [Tue, 3 Nov 2020 13:34:36 +0000 (08:34 -0500)]
eja: reimplement random_eja() without KnownRankEJA.

4 years agoeja: fix tests and pre-cache ranks.
Michael Orlitzky [Tue, 3 Nov 2020 13:15:48 +0000 (08:15 -0500)]
eja: fix tests and pre-cache ranks.

4 years agoeja: replace the rank accessor with the full computation.
Michael Orlitzky [Tue, 3 Nov 2020 12:12:14 +0000 (07:12 -0500)]
eja: replace the rank accessor with the full computation.

4 years agoeja: use now somewhat-proven and fast rank computation.
Michael Orlitzky [Sun, 1 Nov 2020 00:19:42 +0000 (20:19 -0400)]
eja: use now somewhat-proven and fast rank computation.

4 years agoeja: add TODON'T use Cramer's rule.
Michael Orlitzky [Fri, 30 Oct 2020 19:32:38 +0000 (15:32 -0400)]
eja: add TODON'T use Cramer's rule.

4 years agoeja: add two more experimental rank computations.
Michael Orlitzky [Wed, 28 Oct 2020 15:04:52 +0000 (11:04 -0400)]
eja: add two more experimental rank computations.

4 years agoeja: add voodoo _rank_computation() method for EJAs.
Michael Orlitzky [Fri, 23 Oct 2020 20:16:58 +0000 (16:16 -0400)]
eja: add voodoo _rank_computation() method for EJAs.

4 years agoeja: drop the a_jordan_frame() method on EJAs.
Michael Orlitzky [Mon, 19 Oct 2020 14:30:10 +0000 (10:30 -0400)]
eja: drop the a_jordan_frame() method on EJAs.

I understand this better now, and don't expect this method to work
in general. It works for associative algebras, but we already know
how to find a Jordan frame in associative algebras: the spectral
decomposition, which works on the associative algebra alg({x}).

4 years agoRevert "eja: start experiment full_spectral_decomposition() method."
Michael Orlitzky [Mon, 19 Oct 2020 14:25:20 +0000 (10:25 -0400)]
Revert "eja: start experiment full_spectral_decomposition() method."

This reverts commit 6d32150d3f7c175473a1d590facce1ea7c5ca77a.
I don't think this will ever work reliably.

4 years agoeja: start experiment full_spectral_decomposition() method.
Michael Orlitzky [Sun, 18 Oct 2020 14:56:38 +0000 (10:56 -0400)]
eja: start experiment full_spectral_decomposition() method.

4 years agoeja: fix sub-subalgebra element construction.
Michael Orlitzky [Sun, 18 Oct 2020 05:24:18 +0000 (01:24 -0400)]
eja: fix sub-subalgebra element construction.

4 years agomjo/eja/eja_element_subalgebra.py: switch two tests back to QQ.
Michael Orlitzky [Sun, 18 Oct 2020 05:23:58 +0000 (01:23 -0400)]
mjo/eja/eja_element_subalgebra.py: switch two tests back to QQ.

4 years agomjo/eja/eja_element.py: test spectral decomposition in subalgebras.
Michael Orlitzky [Sun, 18 Oct 2020 05:23:09 +0000 (01:23 -0400)]
mjo/eja/eja_element.py: test spectral decomposition in subalgebras.

4 years agomjo/eja/eja_element.py: remove a dead line.
Michael Orlitzky [Sun, 18 Oct 2020 05:22:51 +0000 (01:22 -0400)]
mjo/eja/eja_element.py: remove a dead line.

4 years agoeja: make AA the default field because everything cool requires it.
Michael Orlitzky [Sun, 11 Oct 2020 21:24:17 +0000 (17:24 -0400)]
eja: make AA the default field because everything cool requires it.

4 years agomjo/eja/eja_algebra.py: fix unimportant left/right eigenspace terminology.
Michael Orlitzky [Sun, 11 Oct 2020 19:22:49 +0000 (15:22 -0400)]
mjo/eja/eja_algebra.py: fix unimportant left/right eigenspace terminology.

4 years agoeja: ignore errors more specifically in a_jordan_frame().
Michael Orlitzky [Sun, 11 Oct 2020 13:10:38 +0000 (09:10 -0400)]
eja: ignore errors more specifically in a_jordan_frame().

4 years agoeja: rename orthogonal_idempotents() to a_jordan_frame().
Michael Orlitzky [Sun, 11 Oct 2020 12:35:18 +0000 (08:35 -0400)]
eja: rename orthogonal_idempotents() to a_jordan_frame().

4 years agomjo/eja/eja_algebra.py: add WIP orthogonal_idempotents() method.
Michael Orlitzky [Sun, 11 Oct 2020 01:47:50 +0000 (21:47 -0400)]
mjo/eja/eja_algebra.py: add WIP orthogonal_idempotents() method.

4 years agomjo/ldlt.py: goodbye, use https://trac.sagemath.org/ticket/10332 instead.
Michael Orlitzky [Wed, 7 Oct 2020 21:21:59 +0000 (17:21 -0400)]
mjo/ldlt.py: goodbye, use https://trac.sagemath.org/ticket/10332 instead.

4 years agomjo/ldlt.py: add fast block-LDLT-based is_positive_semidefinite().
Michael Orlitzky [Mon, 5 Oct 2020 19:23:00 +0000 (15:23 -0400)]
mjo/ldlt.py: add fast block-LDLT-based is_positive_semidefinite().

4 years agomjo/ldlt.py: move implementation to SageMath proper.
Michael Orlitzky [Mon, 5 Oct 2020 17:55:19 +0000 (13:55 -0400)]
mjo/ldlt.py: move implementation to SageMath proper.

The actual block-LDLT code is now on the u/mjo/ticket/10332 branch.

4 years agomjo/ldlt.py: refactor into user-(un)friendly portions.
Michael Orlitzky [Sun, 4 Oct 2020 16:37:08 +0000 (12:37 -0400)]
mjo/ldlt.py: refactor into user-(un)friendly portions.

4 years agomjo/ldlt.py: delete naive implementations; fix tests.
Michael Orlitzky [Sun, 4 Oct 2020 16:11:25 +0000 (12:11 -0400)]
mjo/ldlt.py: delete naive implementations; fix tests.

4 years agomjo/ldlt.py: add examples and tests for block_ldlt().
Michael Orlitzky [Sun, 4 Oct 2020 16:07:00 +0000 (12:07 -0400)]
mjo/ldlt.py: add examples and tests for block_ldlt().

4 years agomjo/ldlt.py: make block_ldlt() work on Hermitian matrices, too.
Michael Orlitzky [Sun, 4 Oct 2020 13:40:50 +0000 (09:40 -0400)]
mjo/ldlt.py: make block_ldlt() work on Hermitian matrices, too.

4 years agomjo/ldlt.py: switch some row/column indexing around.
Michael Orlitzky [Sun, 4 Oct 2020 12:53:48 +0000 (08:53 -0400)]
mjo/ldlt.py: switch some row/column indexing around.

4 years agomjo/ldlt.py: rule #1 is never compute the inverse of a matrix.
Michael Orlitzky [Sun, 4 Oct 2020 12:27:37 +0000 (08:27 -0400)]
mjo/ldlt.py: rule #1 is never compute the inverse of a matrix.

4 years agomjo/ldlt.py: get fast block_ldlt() working.
Michael Orlitzky [Sun, 4 Oct 2020 02:48:04 +0000 (22:48 -0400)]
mjo/ldlt.py: get fast block_ldlt() working.

4 years agomjo/ldlt.py: fix a dimension in block_ldlt_naive().
Michael Orlitzky [Sun, 4 Oct 2020 02:11:19 +0000 (22:11 -0400)]
mjo/ldlt.py: fix a dimension in block_ldlt_naive().

4 years agomjo/ldlt.py: fix two bugs in the imperative block_ldlt() function.
Michael Orlitzky [Fri, 2 Oct 2020 22:41:30 +0000 (18:41 -0400)]
mjo/ldlt.py: fix two bugs in the imperative block_ldlt() function.

4 years agomjo/ldlt.py: begin fast block-LDLT implementation.
Michael Orlitzky [Fri, 2 Oct 2020 22:16:06 +0000 (18:16 -0400)]
mjo/ldlt.py: begin fast block-LDLT implementation.

4 years agomjo/ldlt.py: refactor the one-by-one block-LDLT pivot.
Michael Orlitzky [Fri, 2 Oct 2020 12:25:13 +0000 (08:25 -0400)]
mjo/ldlt.py: refactor the one-by-one block-LDLT pivot.

4 years agomjo/ldlt.py: start a naive Bunch-Kaufman block LDLT.
Michael Orlitzky [Fri, 2 Oct 2020 11:37:35 +0000 (07:37 -0400)]
mjo/ldlt.py: start a naive Bunch-Kaufman block LDLT.

4 years agomjo/ldlt.py: various efficiency improvements to ldlt_fast().
Michael Orlitzky [Mon, 28 Sep 2020 19:27:37 +0000 (15:27 -0400)]
mjo/ldlt.py: various efficiency improvements to ldlt_fast().

4 years agomjo/ldlt.py: avoid some intermediate variables in ldlt_fast().
Michael Orlitzky [Mon, 28 Sep 2020 18:41:12 +0000 (14:41 -0400)]
mjo/ldlt.py: avoid some intermediate variables in ldlt_fast().

4 years agomjo/ldlt.py: add a vaguely correct non-recursive ldlt_fast().
Michael Orlitzky [Mon, 28 Sep 2020 18:28:22 +0000 (14:28 -0400)]
mjo/ldlt.py: add a vaguely correct non-recursive ldlt_fast().

4 years agomjo/ldlt.py: actually permute with the permutation matrix.
Michael Orlitzky [Mon, 28 Sep 2020 15:08:37 +0000 (11:08 -0400)]
mjo/ldlt.py: actually permute with the permutation matrix.

4 years agomjo/ldlt.py: add naive, pivoted LDLT matrix factorization.
Michael Orlitzky [Mon, 28 Sep 2020 01:40:13 +0000 (21:40 -0400)]
mjo/ldlt.py: add naive, pivoted LDLT matrix factorization.

4 years agomakefile: delete mjo/__pycache__ with "make clean".
Michael Orlitzky [Sun, 13 Sep 2020 21:05:21 +0000 (17:05 -0400)]
makefile: delete mjo/__pycache__ with "make clean".

4 years agomjo: rename matrix_vector.py to basis_repr.py.
Michael Orlitzky [Sun, 13 Sep 2020 21:03:59 +0000 (17:03 -0400)]
mjo: rename matrix_vector.py to basis_repr.py.

4 years agomjo/matrix_vector: rename basis_representation() to basis_repr().
Michael Orlitzky [Sun, 13 Sep 2020 20:40:54 +0000 (16:40 -0400)]
mjo/matrix_vector: rename basis_representation() to basis_repr().

4 years agomjo/matrix_vector: replace matrix_of_transformation with basis_repr_of_operator.
Michael Orlitzky [Sun, 13 Sep 2020 20:33:06 +0000 (16:33 -0400)]
mjo/matrix_vector: replace matrix_of_transformation with basis_repr_of_operator.

4 years agomjo/matrix_vector: fix phi_inv implementation in basis_representation().
Michael Orlitzky [Sun, 13 Sep 2020 20:32:43 +0000 (16:32 -0400)]
mjo/matrix_vector: fix phi_inv implementation in basis_representation().

4 years agomjo/matrix_vector: replace isomorphism with basis_representation().
Michael Orlitzky [Sun, 13 Sep 2020 16:51:45 +0000 (12:51 -0400)]
mjo/matrix_vector: replace isomorphism with basis_representation().

4 years agoinit.sage: use readline-like tab completion.
Michael Orlitzky [Fri, 28 Aug 2020 17:59:42 +0000 (13:59 -0400)]
init.sage: use readline-like tab completion.

4 years agoinit.sage: let the default LightBg colors apply.
Michael Orlitzky [Fri, 28 Aug 2020 17:53:25 +0000 (13:53 -0400)]
init.sage: let the default LightBg colors apply.

I use a light terminal background now.

4 years agoeja: implement JordanSpinEJA with BilinearFormEJA.
Michael Orlitzky [Tue, 9 Jun 2020 11:56:07 +0000 (07:56 -0400)]
eja: implement JordanSpinEJA with BilinearFormEJA.

4 years agoeja: make a BilinearFormEJA test do what it says.
Michael Orlitzky [Tue, 9 Jun 2020 11:41:47 +0000 (07:41 -0400)]
eja: make a BilinearFormEJA test do what it says.

4 years agoeja: re-disable base ring to algebra coercion.
Michael Orlitzky [Tue, 9 Jun 2020 10:25:01 +0000 (06:25 -0400)]
eja: re-disable base ring to algebra coercion.

4 years agoeja: new half-baked BilinearFormEJA class.
Michael Orlitzky [Mon, 8 Jun 2020 23:16:52 +0000 (19:16 -0400)]
eja: new half-baked BilinearFormEJA class.

4 years agoeja: fix the docs for the spin algebra multiplication.
Michael Orlitzky [Mon, 8 Jun 2020 23:16:29 +0000 (19:16 -0400)]
eja: fix the docs for the spin algebra multiplication.

4 years agoeja: add another TODO.
Michael Orlitzky [Thu, 2 Apr 2020 12:47:14 +0000 (08:47 -0400)]
eja: add another TODO.

4 years agomjo/cone: rawify some docstrings.
Michael Orlitzky [Sat, 1 Feb 2020 01:26:21 +0000 (20:26 -0500)]
mjo/cone: rawify some docstrings.

4 years agoinit.sage: add an alternate sitedir name.
Michael Orlitzky [Sat, 1 Feb 2020 01:25:39 +0000 (20:25 -0500)]
init.sage: add an alternate sitedir name.

4 years agomjo/eja/all.py: fix the name of an import.
Michael Orlitzky [Mon, 6 Jan 2020 13:31:28 +0000 (08:31 -0500)]
mjo/eja/all.py: fix the name of an import.

4 years agoeja: rename RealCartesianProductEJA -> HadamardEJA.
Michael Orlitzky [Fri, 27 Dec 2019 15:09:55 +0000 (10:09 -0500)]
eja: rename RealCartesianProductEJA -> HadamardEJA.

4 years agomjo/polynomial.py: add hacks for SageMath Trac #28855.
Michael Orlitzky [Mon, 9 Dec 2019 02:23:33 +0000 (21:23 -0500)]
mjo/polynomial.py: add hacks for SageMath Trac #28855.

4 years agomjo/symbol_sequence.py: fix another backslash escaping issue.
Michael Orlitzky [Mon, 9 Dec 2019 02:01:24 +0000 (21:01 -0500)]
mjo/symbol_sequence.py: fix another backslash escaping issue.

4 years agoeja: listify map/zip results for python-3.x compatibility.
Michael Orlitzky [Sun, 8 Dec 2019 00:01:13 +0000 (19:01 -0500)]
eja: listify map/zip results for python-3.x compatibility.

4 years agomjo/cone/doubly_nonnegative.py: don't check rank validity of None.
Michael Orlitzky [Sat, 7 Dec 2019 23:31:53 +0000 (18:31 -0500)]
mjo/cone/doubly_nonnegative.py: don't check rank validity of None.

4 years agomjo/interpolation.py: wrap map() calls in list() for python-3.x.
Michael Orlitzky [Sat, 7 Dec 2019 23:22:48 +0000 (18:22 -0500)]
mjo/interpolation.py: wrap map() calls in list() for python-3.x.

There's probably a better way to implement these functions for
python-3.x, but this fixes the tests for now.

4 years agocone/doubly_nonnegative.py: make two docstrings raw.
Michael Orlitzky [Sat, 7 Dec 2019 23:16:35 +0000 (18:16 -0500)]
cone/doubly_nonnegative.py: make two docstrings raw.

4 years agomjo: replace xrange() with range() for python-3.x compatibility.
Michael Orlitzky [Sat, 7 Dec 2019 23:15:29 +0000 (18:15 -0500)]
mjo: replace xrange() with range() for python-3.x compatibility.

4 years agoeja: use zip() instead of izip(), which doesn't exist in python-3.x.
Michael Orlitzky [Sat, 7 Dec 2019 23:09:48 +0000 (18:09 -0500)]
eja: use zip() instead of izip(), which doesn't exist in python-3.x.

4 years agosymbol_sequence.py: make a docstring raw.
Michael Orlitzky [Sat, 7 Dec 2019 23:09:26 +0000 (18:09 -0500)]
symbol_sequence.py: make a docstring raw.

5 years agoeja: rename is_minimal_idempotent() to is_primitive_idempotent().
Michael Orlitzky [Fri, 15 Nov 2019 17:44:03 +0000 (12:44 -0500)]
eja: rename is_minimal_idempotent() to is_primitive_idempotent().

The term "primitive" is more common in optimization, anyway. Also the
word "minimal" is a bit overloaded. Oh, and I added two more tests to
preclude zero from being primitive.

5 years agoeja: use peirce_decomposition() method to get the Peirce decomposition.
Michael Orlitzky [Fri, 15 Nov 2019 13:15:53 +0000 (08:15 -0500)]
eja: use peirce_decomposition() method to get the Peirce decomposition.

5 years agoeja: add another TODO before I forget.
Michael Orlitzky [Mon, 11 Nov 2019 16:26:21 +0000 (11:26 -0500)]
eja: add another TODO before I forget.

5 years agoeja: fix the Peirce decomposition and add docs/tests for it.
Michael Orlitzky [Sun, 10 Nov 2019 18:39:19 +0000 (13:39 -0500)]
eja: fix the Peirce decomposition and add docs/tests for it.

5 years agoeja: allow subalgebra_idempotent() to work in trivial EJAs.
Michael Orlitzky [Sun, 10 Nov 2019 15:47:42 +0000 (10:47 -0500)]
eja: allow subalgebra_idempotent() to work in trivial EJAs.

Every element is nilpotent in a trivial EJA, but we also know the only
idempotent element in such an algebra: its sole occupant. So return it.

5 years agoeja: add another non-element subalgebra example.
Michael Orlitzky [Sun, 10 Nov 2019 14:57:58 +0000 (09:57 -0500)]
eja: add another non-element subalgebra example.

5 years agoeja: make two subalgebra tests more general.
Michael Orlitzky [Sun, 10 Nov 2019 14:40:25 +0000 (09:40 -0500)]
eja: make two subalgebra tests more general.

All of the subalgebra tests are element-subalgebra tests, because I
copied them from the element-subalgebra class. I'll slowly make them
more robust.

5 years agoeja: remove redundant subalgebra stuff out of element subalgebras.
Michael Orlitzky [Sun, 10 Nov 2019 14:20:59 +0000 (09:20 -0500)]
eja: remove redundant subalgebra stuff out of element subalgebras.

These were simply remnants of a copy/paste refactoring.

5 years agoeja: don't wait for a non-nilpotent element in trivial algebras.
Michael Orlitzky [Sun, 10 Nov 2019 14:10:43 +0000 (09:10 -0500)]
eja: don't wait for a non-nilpotent element in trivial algebras.

5 years agoeja: remove broken one() implementation in subalgebras.
Michael Orlitzky [Sun, 10 Nov 2019 13:52:44 +0000 (08:52 -0500)]
eja: remove broken one() implementation in subalgebras.

The one() implementetion for the algebra generated by an element is
not, in general, correct for a subalgebra. Subalgebras can have
different identities than superalgebras -- take the Peirce
decomposition, for example.

5 years agoeja: remove a TODO that is done in theory.
Michael Orlitzky [Sun, 10 Nov 2019 01:56:51 +0000 (20:56 -0500)]
eja: remove a TODO that is done in theory.

5 years agoeja: start experimenting with single-element Peirce decomposition.
Michael Orlitzky [Sun, 10 Nov 2019 01:56:18 +0000 (20:56 -0500)]
eja: start experimenting with single-element Peirce decomposition.

5 years agoeja: refactor the element subalgebra stuff into generic subalgebra.
Michael Orlitzky [Sun, 10 Nov 2019 00:42:25 +0000 (19:42 -0500)]
eja: refactor the element subalgebra stuff into generic subalgebra.

A messy job, but I got the tests passing. They certainly need some
cleanup, and we should test non-element subalgebras too.

5 years agoeja: move eja_subalgebra to eja_element_subalgebra.
Michael Orlitzky [Sat, 9 Nov 2019 22:57:42 +0000 (17:57 -0500)]
eja: move eja_subalgebra to eja_element_subalgebra.

The plan is to cut/paste out all the stuff that works for a generic subalgebra.

5 years agoeja: add a priority TODO.
Michael Orlitzky [Sat, 9 Nov 2019 19:51:23 +0000 (14:51 -0500)]
eja: add a priority TODO.