]> gitweb.michael.orlitzky.com - sage.d.git/log
sage.d.git
3 years agoeja: begin major overhaul of class hierarchy and naming.
Michael Orlitzky [Sun, 6 Dec 2020 04:52:48 +0000 (23:52 -0500)]
eja: begin major overhaul of class hierarchy and naming.

3 years agoeja: reimplement multiplication_table() without member variables.
Michael Orlitzky [Sat, 5 Dec 2020 03:28:19 +0000 (22:28 -0500)]
eja: reimplement multiplication_table() without member variables.

3 years agoeja: mark some cached-value tests as "long time".
Michael Orlitzky [Fri, 4 Dec 2020 02:51:07 +0000 (21:51 -0500)]
eja: mark some cached-value tests as "long time".

3 years agoeja: add another performance TODO.
Michael Orlitzky [Fri, 4 Dec 2020 02:50:59 +0000 (21:50 -0500)]
eja: add another performance TODO.

3 years agoeja: speed up a few slow examples.
Michael Orlitzky [Thu, 3 Dec 2020 23:17:38 +0000 (18:17 -0500)]
eja: speed up a few slow examples.

3 years agoeja: fix the Hadamard/JordanSpinEJA fast path for charpoly_coefficients.
Michael Orlitzky [Thu, 3 Dec 2020 22:39:49 +0000 (17:39 -0500)]
eja: fix the Hadamard/JordanSpinEJA fast path for charpoly_coefficients.

3 years agomakefile: add --exitfirst to the test runner.
Michael Orlitzky [Thu, 3 Dec 2020 22:19:19 +0000 (17:19 -0500)]
makefile: add --exitfirst to the test runner.

3 years agoeja: fix recently broken doctests.
Michael Orlitzky [Thu, 3 Dec 2020 22:18:27 +0000 (17:18 -0500)]
eja: fix recently broken doctests.

3 years agoeja: refactor some matrix algebra stuff and break the tests.
Michael Orlitzky [Thu, 3 Dec 2020 19:24:44 +0000 (14:24 -0500)]
eja: refactor some matrix algebra stuff and break the tests.

3 years agoeja: update a TODO with a better idea.
Michael Orlitzky [Thu, 3 Dec 2020 17:52:15 +0000 (12:52 -0500)]
eja: update a TODO with a better idea.

3 years agoeja: disable axiom checking for concrete algebras.
Michael Orlitzky [Thu, 3 Dec 2020 17:39:49 +0000 (12:39 -0500)]
eja: disable axiom checking for concrete algebras.

3 years agoeja: update the DESIGN and TODO documents.
Michael Orlitzky [Thu, 3 Dec 2020 16:44:15 +0000 (11:44 -0500)]
eja: update the DESIGN and TODO documents.

3 years agoeja: fix one more positional "field" argument.
Michael Orlitzky [Thu, 3 Dec 2020 16:08:50 +0000 (11:08 -0500)]
eja: fix one more positional "field" argument.

3 years agoeja: move the "field" argument to (usually passed through) kwargs.
Michael Orlitzky [Thu, 3 Dec 2020 04:37:01 +0000 (23:37 -0500)]
eja: move the "field" argument to (usually passed through) kwargs.

3 years agoeja: propagate check_axioms to some other "check" variables.
Michael Orlitzky [Thu, 3 Dec 2020 02:38:54 +0000 (21:38 -0500)]
eja: propagate check_axioms to some other "check" variables.

3 years agoeja: add another performance TODO.
Michael Orlitzky [Wed, 2 Dec 2020 15:12:03 +0000 (10:12 -0500)]
eja: add another performance TODO.

3 years agoeja: dropp the already_echelonized TODO.
Michael Orlitzky [Wed, 2 Dec 2020 15:04:08 +0000 (10:04 -0500)]
eja: dropp the already_echelonized TODO.

We generally orthonormalize things now, but having an orthonormal
basis is not the same as having a basis in RREF form.

3 years agoeja: clean up the TODO list after major refactoring.
Michael Orlitzky [Wed, 2 Dec 2020 14:53:52 +0000 (09:53 -0500)]
eja: clean up the TODO list after major refactoring.

3 years agoeja: remove a completed TODO.
Michael Orlitzky [Wed, 2 Dec 2020 14:47:50 +0000 (09:47 -0500)]
eja: remove a completed TODO.

3 years agoeja: speed up construction of JordanSpinEJA and HadamardEJA.
Michael Orlitzky [Wed, 2 Dec 2020 14:46:47 +0000 (09:46 -0500)]
eja: speed up construction of JordanSpinEJA and HadamardEJA.

3 years agoeja: check that the basis is rational when it's supposed to be.
Michael Orlitzky [Wed, 2 Dec 2020 14:07:08 +0000 (09:07 -0500)]
eja: check that the basis is rational when it's supposed to be.

3 years agoeja: improve rational basis algebra trickery.
Michael Orlitzky [Wed, 2 Dec 2020 13:42:41 +0000 (08:42 -0500)]
eja: improve rational basis algebra trickery.

3 years agoeja: don't pass in a full multiplication table unless necessary.
Michael Orlitzky [Wed, 2 Dec 2020 12:21:34 +0000 (07:21 -0500)]
eja: don't pass in a full multiplication table unless necessary.

3 years agoeja: use symmetry when constructing the inner product matrix.
Michael Orlitzky [Tue, 1 Dec 2020 19:50:38 +0000 (14:50 -0500)]
eja: use symmetry when constructing the inner product matrix.

3 years agoeja: fix a randomly-failing test.
Michael Orlitzky [Tue, 1 Dec 2020 16:54:53 +0000 (11:54 -0500)]
eja: fix a randomly-failing test.

3 years agoeja: convert matrix algebas to the new constructor, fix all tests.
Michael Orlitzky [Tue, 1 Dec 2020 15:54:27 +0000 (10:54 -0500)]
eja: convert matrix algebas to the new constructor, fix all tests.

3 years agoeja: drop the "Ng" from the new constructor.
Michael Orlitzky [Mon, 30 Nov 2020 15:17:19 +0000 (10:17 -0500)]
eja: drop the "Ng" from the new constructor.

3 years agoeja: get rid of the old rational basis constructor.
Michael Orlitzky [Mon, 30 Nov 2020 15:07:30 +0000 (10:07 -0500)]
eja: get rid of the old rational basis constructor.

3 years agoeja: more work on realizing the new constructor.
Michael Orlitzky [Sat, 28 Nov 2020 04:14:31 +0000 (23:14 -0500)]
eja: more work on realizing the new constructor.

3 years agoeja: use new constructor for BilinearFormEJA.
Michael Orlitzky [Fri, 27 Nov 2020 15:38:18 +0000 (10:38 -0500)]
eja: use new constructor for BilinearFormEJA.

3 years agoeja: add another performance TODO.
Michael Orlitzky [Fri, 27 Nov 2020 15:38:08 +0000 (10:38 -0500)]
eja: add another performance TODO.

3 years agoeja: switch HadamardEJA to the new constructor.
Michael Orlitzky [Fri, 27 Nov 2020 14:18:02 +0000 (09:18 -0500)]
eja: switch HadamardEJA to the new constructor.

3 years agoeja: use custom gram-schmidt in the new constructor.
Michael Orlitzky [Fri, 27 Nov 2020 14:17:35 +0000 (09:17 -0500)]
eja: use custom gram-schmidt in the new constructor.

3 years agoeja: allow non-standard inner product in gram_schmidt.
Michael Orlitzky [Fri, 27 Nov 2020 14:16:11 +0000 (09:16 -0500)]
eja: allow non-standard inner product in gram_schmidt.

3 years agoRevert "eja: drop custom gram_schmidt() routine that isn't noticeably faster."
Michael Orlitzky [Fri, 27 Nov 2020 13:03:38 +0000 (08:03 -0500)]
Revert "eja: drop custom gram_schmidt() routine that isn't noticeably faster."

This reverts commit 1e9700cdd04434465ffcad148d078f7fa361e426. We only
bring back the gram_schmidt() function (but don't use it yet) because
the plan is to modify it to take a custom inner-product.

3 years agoeja: begin working on a new constructor.
Michael Orlitzky [Fri, 27 Nov 2020 13:00:26 +0000 (08:00 -0500)]
eja: begin working on a new constructor.

3 years agoeja: actually do what the previous commit was supposed to do.
Michael Orlitzky [Thu, 26 Nov 2020 23:06:19 +0000 (18:06 -0500)]
eja: actually do what the previous commit was supposed to do.

3 years agoeja: use symmetry when constructing multiplication table.
Michael Orlitzky [Thu, 26 Nov 2020 22:22:26 +0000 (17:22 -0500)]
eja: use symmetry when constructing multiplication table.

3 years agoeja: add some DESIGN notes.
Michael Orlitzky [Thu, 26 Nov 2020 20:38:48 +0000 (15:38 -0500)]
eja: add some DESIGN notes.

3 years agoeja: start adding precomputed charpoly coeffs to the TODO.
Michael Orlitzky [Thu, 26 Nov 2020 02:59:28 +0000 (21:59 -0500)]
eja: start adding precomputed charpoly coeffs to the TODO.

3 years agomakefile: add --long to the test command.
Michael Orlitzky [Thu, 26 Nov 2020 02:24:29 +0000 (21:24 -0500)]
makefile: add --long to the test command.

3 years agoeja: replace a bunch of "manual" tests with a random one.
Michael Orlitzky [Thu, 26 Nov 2020 02:23:54 +0000 (21:23 -0500)]
eja: replace a bunch of "manual" tests with a random one.

3 years agoeja: update todo, and rename "natural" to "matrix".
Michael Orlitzky [Wed, 25 Nov 2020 22:55:49 +0000 (17:55 -0500)]
eja: update todo, and rename "natural" to "matrix".

We've already completed one TODO by adding is_self_adjoint() for
operators. Another is completed by deciding that I don't want to drop
natural representations for non-matrix algebras. But I do want to
rename them, to "matrix representations," because that's what they
are.

3 years agoeja: add is_self_adjoint() for operators.
Michael Orlitzky [Wed, 25 Nov 2020 19:33:34 +0000 (14:33 -0500)]
eja: add is_self_adjoint() for operators.

3 years agoeja: make element constructor errors more consistent.
Michael Orlitzky [Wed, 25 Nov 2020 19:03:41 +0000 (14:03 -0500)]
eja: make element constructor errors more consistent.

3 years agoeja: fix an implicit TODO by eliminating lazy_import.
Michael Orlitzky [Wed, 25 Nov 2020 16:44:40 +0000 (11:44 -0500)]
eja: fix an implicit TODO by eliminating lazy_import.

3 years agoeja: and another TODO.
Michael Orlitzky [Wed, 25 Nov 2020 14:52:15 +0000 (09:52 -0500)]
eja: and another TODO.

3 years agoeja: add more TODO.
Michael Orlitzky [Wed, 25 Nov 2020 12:33:47 +0000 (07:33 -0500)]
eja: add more TODO.

4 years agoeja: use cached charpoly for element inverse() if possible.
Michael Orlitzky [Wed, 25 Nov 2020 04:43:17 +0000 (23:43 -0500)]
eja: use cached charpoly for element inverse() if possible.

4 years agoeja: return the polynomial ring R[X1,...,XN] from a method.
Michael Orlitzky [Wed, 25 Nov 2020 04:26:39 +0000 (23:26 -0500)]
eja: return the polynomial ring R[X1,...,XN] from a method.

4 years agoeja: begin refactoring to allow noncanonical inner products.
Michael Orlitzky [Tue, 24 Nov 2020 16:34:58 +0000 (11:34 -0500)]
eja: begin refactoring to allow noncanonical inner products.

4 years agoeja: fix inclusions/projections with trivial algebras.
Michael Orlitzky [Tue, 24 Nov 2020 16:24:15 +0000 (11:24 -0500)]
eja: fix inclusions/projections with trivial algebras.

4 years agoeja: another TODO.
Michael Orlitzky [Tue, 24 Nov 2020 15:34:48 +0000 (10:34 -0500)]
eja: another TODO.

4 years agoeja: improve projection/inclusion implementation for DirectSumEJA.
Michael Orlitzky [Fri, 20 Nov 2020 05:16:31 +0000 (00:16 -0500)]
eja: improve projection/inclusion implementation for DirectSumEJA.

4 years agoeja: add is_zero() method for operators.
Michael Orlitzky [Fri, 20 Nov 2020 05:16:12 +0000 (00:16 -0500)]
eja: add is_zero() method for operators.

4 years agomjo: add two more TODO items.
Michael Orlitzky [Mon, 23 Nov 2020 22:27:22 +0000 (17:27 -0500)]
mjo: add two more TODO items.

4 years agoeja: use cached charpoly for element inverse when available.
Michael Orlitzky [Mon, 23 Nov 2020 03:39:59 +0000 (22:39 -0500)]
eja: use cached charpoly for element inverse when available.

4 years agoeja: add another big TODO item.
Michael Orlitzky [Mon, 23 Nov 2020 03:17:16 +0000 (22:17 -0500)]
eja: add another big TODO item.

4 years agoeja: check the (co)domain of each EJA operator.
Michael Orlitzky [Mon, 23 Nov 2020 03:13:52 +0000 (22:13 -0500)]
eja: check the (co)domain of each EJA operator.

4 years agoTODO: remove two completed items.
Michael Orlitzky [Sun, 22 Nov 2020 22:58:17 +0000 (17:58 -0500)]
TODO: remove two completed items.

4 years agoeja: factor out some common tests.
Michael Orlitzky [Sun, 22 Nov 2020 22:58:08 +0000 (17:58 -0500)]
eja: factor out some common tests.

4 years agoeja: add ConcreteEJA class for EJAs we can make random instances of.
Michael Orlitzky [Sun, 22 Nov 2020 22:39:08 +0000 (17:39 -0500)]
eja: add ConcreteEJA class for EJAs we can make random instances of.

4 years agoeja: add another performance TODO.
Michael Orlitzky [Sun, 22 Nov 2020 22:38:51 +0000 (17:38 -0500)]
eja: add another performance TODO.

4 years agoeja: fix one() in the trivial HadamardEJA.
Michael Orlitzky [Sun, 22 Nov 2020 16:03:16 +0000 (11:03 -0500)]
eja: fix one() in the trivial HadamardEJA.

4 years agoeja: remove a completed TODO and update an in-progress one.
Michael Orlitzky [Sun, 22 Nov 2020 15:50:45 +0000 (10:50 -0500)]
eja: remove a completed TODO and update an in-progress one.

4 years agoeja: cache the unit element immediately where it is known.
Michael Orlitzky [Sun, 22 Nov 2020 15:50:19 +0000 (10:50 -0500)]
eja: cache the unit element immediately where it is known.

4 years agoeja: tweak a zero test.
Michael Orlitzky [Sun, 22 Nov 2020 15:23:18 +0000 (10:23 -0500)]
eja: tweak a zero test.

4 years agoeja: add a test for invalid bilinear forms in BilinearFormEJA.
Michael Orlitzky [Sun, 22 Nov 2020 15:23:02 +0000 (10:23 -0500)]
eja: add a test for invalid bilinear forms in BilinearFormEJA.

4 years agoeja: fix random_instance() for JordanSpinEJA.
Michael Orlitzky [Sun, 22 Nov 2020 15:22:47 +0000 (10:22 -0500)]
eja: fix random_instance() for JordanSpinEJA.

4 years agoeja: add random_instance() for BilinearFormEJA.
Michael Orlitzky [Sun, 22 Nov 2020 14:57:43 +0000 (09:57 -0500)]
eja: add random_instance() for BilinearFormEJA.

4 years agoeja: alter BilinearFormEJA to take only a matrix argument.
Michael Orlitzky [Sun, 22 Nov 2020 14:32:32 +0000 (09:32 -0500)]
eja: alter BilinearFormEJA to take only a matrix argument.

The BilinearFormEJA constructor originally took both the size "n" and
a bilinear form matrix "B" that acted on the x-bar component of an
algebra element. This was a bit silly: except when n=0, we can
determine the size of the algebra from the bilinear form matrix.

Now, we insist that the entire matrix "B" be passed in, including the
upper-left "1" block. This allows us to pass in a matrix of size zero
to get the trivial algebra, and in all other cases, to infer that the
dimension of the algebra is the size of the matrix.

4 years agoeja: simplify the element-subalgebra one() method.
Michael Orlitzky [Sun, 22 Nov 2020 13:53:01 +0000 (08:53 -0500)]
eja: simplify the element-subalgebra one() method.

4 years agoeja: add a random comment.
Michael Orlitzky [Sat, 21 Nov 2020 19:00:44 +0000 (14:00 -0500)]
eja: add a random comment.

4 years agoeja: add yet another TODO.
Michael Orlitzky [Sat, 21 Nov 2020 18:58:45 +0000 (13:58 -0500)]
eja: add yet another TODO.

4 years agoeja: minor improvement to the algebra one() method.
Michael Orlitzky [Sat, 21 Nov 2020 18:57:32 +0000 (13:57 -0500)]
eja: minor improvement to the algebra one() method.

4 years agoeja: try to speed up super/subalgebra conversion.
Michael Orlitzky [Sat, 21 Nov 2020 18:39:32 +0000 (13:39 -0500)]
eja: try to speed up super/subalgebra conversion.

4 years agoeja: drop redundant vector->superalgebra-element conversion.
Michael Orlitzky [Sat, 21 Nov 2020 16:44:27 +0000 (11:44 -0500)]
eja: drop redundant vector->superalgebra-element conversion.

4 years agoeja: expand an existing subalgebra test.
Michael Orlitzky [Sat, 21 Nov 2020 16:37:50 +0000 (11:37 -0500)]
eja: expand an existing subalgebra test.

4 years agoeja: add another TODO item.
Michael Orlitzky [Sat, 21 Nov 2020 13:22:27 +0000 (08:22 -0500)]
eja: add another TODO item.

4 years agoeja: update a few TODO items.
Michael Orlitzky [Sat, 21 Nov 2020 13:19:19 +0000 (08:19 -0500)]
eja: update a few TODO items.

4 years agoeja: drop cached superalgebra basis from subalgebras.
Michael Orlitzky [Sat, 21 Nov 2020 13:16:09 +0000 (08:16 -0500)]
eja: drop cached superalgebra basis from subalgebras.

4 years agoeja: drop an unused variable.
Michael Orlitzky [Sat, 21 Nov 2020 12:37:35 +0000 (07:37 -0500)]
eja: drop an unused variable.

4 years agoeja: echelonize a matrix manually to ensure a decent algorithm is used.
Michael Orlitzky [Sat, 21 Nov 2020 02:32:57 +0000 (21:32 -0500)]
eja: echelonize a matrix manually to ensure a decent algorithm is used.

4 years agoeja: don't compute an unused vector space for the element subalgebra.
Michael Orlitzky [Sat, 21 Nov 2020 02:31:54 +0000 (21:31 -0500)]
eja: don't compute an unused vector space for the element subalgebra.

4 years agoeja: add a comment about sub-subalgebra representations.
Michael Orlitzky [Sat, 21 Nov 2020 02:30:51 +0000 (21:30 -0500)]
eja: add a comment about sub-subalgebra representations.

4 years agoeja: move the TrivialEJA random_instance() into an override method.
Michael Orlitzky [Sat, 21 Nov 2020 00:22:35 +0000 (19:22 -0500)]
eja: move the TrivialEJA random_instance() into an override method.

4 years agoeja: don't orthonormalize the basis when computing minimal polynomials.
Michael Orlitzky [Sat, 21 Nov 2020 00:20:45 +0000 (19:20 -0500)]
eja: don't orthonormalize the basis when computing minimal polynomials.

4 years agoeja: drop obsolete _a_regular_element() override method.
Michael Orlitzky [Fri, 20 Nov 2020 23:54:38 +0000 (18:54 -0500)]
eja: drop obsolete _a_regular_element() override method.

4 years agoeja: make _max_random_instance_size() abstract.
Michael Orlitzky [Fri, 20 Nov 2020 15:12:30 +0000 (10:12 -0500)]
eja: make _max_random_instance_size() abstract.

4 years agoeja: rename _max_test_case_size() -> _max_random_instance_size().
Michael Orlitzky [Fri, 20 Nov 2020 14:51:46 +0000 (09:51 -0500)]
eja: rename _max_test_case_size() -> _max_random_instance_size().

4 years agoeja: add inner_product() for DirectSumEJA.
Michael Orlitzky [Fri, 13 Nov 2020 15:34:30 +0000 (10:34 -0500)]
eja: add inner_product() for DirectSumEJA.

4 years agoeja: add inclusion maps for DirectSumEJA.
Michael Orlitzky [Fri, 13 Nov 2020 15:23:49 +0000 (10:23 -0500)]
eja: add inclusion maps for DirectSumEJA.

4 years agoeja: add projections for DirectSumEJA.
Michael Orlitzky [Fri, 13 Nov 2020 14:05:55 +0000 (09:05 -0500)]
eja: add projections for DirectSumEJA.

4 years agoeja: unindent a large "else" clause.
Michael Orlitzky [Tue, 10 Nov 2020 14:26:17 +0000 (09:26 -0500)]
eja: unindent a large "else" clause.

4 years agoeja: fix base ring of fast _charpoly_coefficients().
Michael Orlitzky [Tue, 10 Nov 2020 13:39:25 +0000 (08:39 -0500)]
eja: fix base ring of fast _charpoly_coefficients().

4 years agoeja: begin generalizing the charpoly-over-QQ optimizations.
Michael Orlitzky [Tue, 10 Nov 2020 03:19:20 +0000 (22:19 -0500)]
eja: begin generalizing the charpoly-over-QQ optimizations.

As a very simple first step, encode the fact that HadamardEJA and
BilinearFormEJA have rational bases within the type system. This
allows us to compute their charpolys over the rationals instead of
whatever their user-given base ring is.

4 years agoeja: split "check" args into check_field and check_axioms.
Michael Orlitzky [Tue, 10 Nov 2020 01:59:33 +0000 (20:59 -0500)]
eja: split "check" args into check_field and check_axioms.

4 years agoeja: add a few more TODO items.
Michael Orlitzky [Mon, 9 Nov 2020 17:04:38 +0000 (12:04 -0500)]
eja: add a few more TODO items.

4 years agoeja: improve how we get the "real part" of a possibly-complex trace.
Michael Orlitzky [Mon, 9 Nov 2020 16:59:21 +0000 (11:59 -0500)]
eja: improve how we get the "real part" of a possibly-complex trace.

4 years agoeja: enable consistency checks by default in (non-element) subalgebras.
Michael Orlitzky [Mon, 9 Nov 2020 14:37:54 +0000 (09:37 -0500)]
eja: enable consistency checks by default in (non-element) subalgebras.