]> gitweb.michael.orlitzky.com - sage.d.git/log
sage.d.git
3 years agomatrix_algebra: factor out Hurwitz subclass.
Michael Orlitzky [Wed, 3 Mar 2021 15:11:22 +0000 (10:11 -0500)]
matrix_algebra: factor out Hurwitz subclass.

3 years agoeja: begin adding OctonionHermitianEJA.
Michael Orlitzky [Wed, 3 Mar 2021 13:40:16 +0000 (08:40 -0500)]
eja: begin adding OctonionHermitianEJA.

3 years agoeja: factor out a class for real-embedded matrices.
Michael Orlitzky [Wed, 3 Mar 2021 13:38:41 +0000 (08:38 -0500)]
eja: factor out a class for real-embedded matrices.

3 years agooctonions: alias abs() to norm().
Michael Orlitzky [Wed, 3 Mar 2021 13:37:21 +0000 (08:37 -0500)]
octonions: alias abs() to norm().

3 years agomatrix_algebra: use simpler indices.
Michael Orlitzky [Wed, 3 Mar 2021 12:41:24 +0000 (07:41 -0500)]
matrix_algebra: use simpler indices.

Using cartesian_product() and FiniteEnumeratedSet for my indices was
obscuring the foo.basis() output.

3 years agomatrix_algebra: fix conditional categories.
Michael Orlitzky [Wed, 3 Mar 2021 12:41:07 +0000 (07:41 -0500)]
matrix_algebra: fix conditional categories.

3 years agoeja: add another _all2list doctest.
Michael Orlitzky [Wed, 3 Mar 2021 12:40:46 +0000 (07:40 -0500)]
eja: add another _all2list doctest.

3 years agoeja: fix _all2list() bug introduced in previous commit.
Michael Orlitzky [Wed, 3 Mar 2021 04:55:54 +0000 (23:55 -0500)]
eja: fix _all2list() bug introduced in previous commit.

3 years agoeja: refactor _all2list to support forthcoming matrix algebras.
Michael Orlitzky [Wed, 3 Mar 2021 04:45:48 +0000 (23:45 -0500)]
eja: refactor _all2list to support forthcoming matrix algebras.

3 years agomatrix_algebra: factor out a generic matrix algebra class.
Michael Orlitzky [Tue, 2 Mar 2021 22:25:03 +0000 (17:25 -0500)]
matrix_algebra: factor out a generic matrix algebra class.

3 years agoeja: make the TODO list longer once more.
Michael Orlitzky [Tue, 2 Mar 2021 22:24:46 +0000 (17:24 -0500)]
eja: make the TODO list longer once more.

3 years agooctonions: use more generic variable names in a few places.
Michael Orlitzky [Tue, 2 Mar 2021 20:53:30 +0000 (15:53 -0500)]
octonions: use more generic variable names in a few places.

3 years agooctonions: rename octonions() accessor to entry_algebra().
Michael Orlitzky [Tue, 2 Mar 2021 20:44:11 +0000 (15:44 -0500)]
octonions: rename octonions() accessor to entry_algebra().

This entire class can be made more generic. Here's phase one.

3 years agoeja: don't mess with the user's basis.
Michael Orlitzky [Tue, 2 Mar 2021 20:35:08 +0000 (15:35 -0500)]
eja: don't mess with the user's basis.

This is a pre-pre-prerequisite for implementing the octonion algebras.
In a generic matrix algebra, the scalar ring may not be the same ring
that the entries of the matrix comes from.

3 years agoeja: update the design document.
Michael Orlitzky [Tue, 2 Mar 2021 19:15:27 +0000 (14:15 -0500)]
eja: update the design document.

3 years agooctonions: add list() method for octonion matrices.
Michael Orlitzky [Tue, 2 Mar 2021 16:45:56 +0000 (11:45 -0500)]
octonions: add list() method for octonion matrices.

3 years agooctonions: rename to_list() -> to_nested_list().
Michael Orlitzky [Tue, 2 Mar 2021 16:20:53 +0000 (11:20 -0500)]
octonions: rename to_list() -> to_nested_list().

3 years agoeja: update the TODO.
Michael Orlitzky [Tue, 2 Mar 2021 16:16:36 +0000 (11:16 -0500)]
eja: update the TODO.

3 years agooctonions: add is_hermitian() for octonion matrices.
Michael Orlitzky [Tue, 2 Mar 2021 16:14:30 +0000 (11:14 -0500)]
octonions: add is_hermitian() for octonion matrices.

3 years agooctonions: add matrix_space() method for elements and _repr_ for parents.
Michael Orlitzky [Tue, 2 Mar 2021 15:20:02 +0000 (10:20 -0500)]
octonions: add matrix_space() method for elements and _repr_ for parents.

3 years agooctonions: replace yesterday's hacky octonion matrices with the real thing.
Michael Orlitzky [Tue, 2 Mar 2021 15:12:56 +0000 (10:12 -0500)]
octonions: replace yesterday's hacky octonion matrices with the real thing.

3 years agooctonions: begin adding OctonionMatrix pseudo-matrix class.
Michael Orlitzky [Tue, 2 Mar 2021 04:50:31 +0000 (23:50 -0500)]
octonions: begin adding OctonionMatrix pseudo-matrix class.

3 years agoeja: add another TODO, technically for the octonions...
Michael Orlitzky [Tue, 2 Mar 2021 04:33:14 +0000 (23:33 -0500)]
eja: add another TODO, technically for the octonions...

3 years agooctonions: add Cayley-Dickson representation.
Michael Orlitzky [Tue, 2 Mar 2021 03:32:21 +0000 (22:32 -0500)]
octonions: add Cayley-Dickson representation.

3 years agoNew module mjo.octonions implementing the algebra of Octonions().
Michael Orlitzky [Mon, 1 Mar 2021 20:06:34 +0000 (15:06 -0500)]
New module mjo.octonions implementing the algebra of Octonions().

3 years agoeja: use "b" as the default prefix.
Michael Orlitzky [Mon, 1 Mar 2021 15:39:50 +0000 (10:39 -0500)]
eja: use "b" as the default prefix.

3 years agoeja: remove an unused import.
Michael Orlitzky [Mon, 1 Mar 2021 15:38:17 +0000 (10:38 -0500)]
eja: remove an unused import.

3 years agoeja: speed up minimal_polynomial(), in theory.
Michael Orlitzky [Mon, 1 Mar 2021 04:28:55 +0000 (23:28 -0500)]
eja: speed up minimal_polynomial(), in theory.

3 years agoeja: update the TODO.
Michael Orlitzky [Mon, 1 Mar 2021 03:20:13 +0000 (22:20 -0500)]
eja: update the TODO.

3 years agoeja: massively speed up the trace inner-product in matrix algebras.
Michael Orlitzky [Sun, 28 Feb 2021 21:43:02 +0000 (16:43 -0500)]
eja: massively speed up the trace inner-product in matrix algebras.

3 years agoeja: allow Cartesian products to be returned from random_eja().
Michael Orlitzky [Sun, 28 Feb 2021 14:50:37 +0000 (09:50 -0500)]
eja: allow Cartesian products to be returned from random_eja().

3 years agoeja: use the new deep change_ring() to clean things up.
Michael Orlitzky [Sat, 27 Feb 2021 23:29:29 +0000 (18:29 -0500)]
eja: use the new deep change_ring() to clean things up.

3 years agoeja: speed up the double-subalgebra test by using QQ.
Michael Orlitzky [Sat, 27 Feb 2021 23:27:41 +0000 (18:27 -0500)]
eja: speed up the double-subalgebra test by using QQ.

3 years agoeja: add a deep change_ring() utility function.
Michael Orlitzky [Sat, 27 Feb 2021 23:27:26 +0000 (18:27 -0500)]
eja: add a deep change_ring() utility function.

3 years agoeja: complete the CFM_CartesianProduct purge.
Michael Orlitzky [Sat, 27 Feb 2021 16:23:50 +0000 (11:23 -0500)]
eja: complete the CFM_CartesianProduct purge.

3 years agoeja: begin dropping CFM_CartesianProduct, tests all broken.
Michael Orlitzky [Sat, 27 Feb 2021 05:02:19 +0000 (00:02 -0500)]
eja: begin dropping CFM_CartesianProduct, tests all broken.

3 years agoeja: more tests/examples.
Michael Orlitzky [Fri, 26 Feb 2021 18:30:28 +0000 (13:30 -0500)]
eja: more tests/examples.

3 years agoeja: fix two more test typos.
Michael Orlitzky [Fri, 26 Feb 2021 17:34:17 +0000 (12:34 -0500)]
eja: fix two more test typos.

3 years agoeja: typo fix.
Michael Orlitzky [Fri, 26 Feb 2021 16:36:59 +0000 (11:36 -0500)]
eja: typo fix.

3 years agoeja: add future commented-out random_eja() code.
Michael Orlitzky [Fri, 26 Feb 2021 16:29:33 +0000 (11:29 -0500)]
eja: add future commented-out random_eja() code.

3 years agoeja: start fixing Cartesian products of Cartesian products.
Michael Orlitzky [Fri, 26 Feb 2021 16:29:15 +0000 (11:29 -0500)]
eja: start fixing Cartesian products of Cartesian products.

3 years agoeja: partially fix the product_on_basis() in Cartesian products.
Michael Orlitzky [Fri, 26 Feb 2021 15:40:20 +0000 (10:40 -0500)]
eja: partially fix the product_on_basis() in Cartesian products.

3 years agoeja: override product_on_basis() for Cartesian products.
Michael Orlitzky [Fri, 26 Feb 2021 14:08:35 +0000 (09:08 -0500)]
eja: override product_on_basis() for Cartesian products.

3 years agoeja: don't use product_on_basis() implementation details.
Michael Orlitzky [Fri, 26 Feb 2021 14:07:49 +0000 (09:07 -0500)]
eja: don't use product_on_basis() implementation details.

3 years agoeja: simplify some calls to super(...).
Michael Orlitzky [Fri, 26 Feb 2021 02:20:58 +0000 (21:20 -0500)]
eja: simplify some calls to super(...).

3 years agoeja: pass associative=True in some tests.
Michael Orlitzky [Fri, 26 Feb 2021 02:13:24 +0000 (21:13 -0500)]
eja: pass associative=True in some tests.

3 years agoeja: remove a false alarm TODO.
Michael Orlitzky [Fri, 26 Feb 2021 01:57:55 +0000 (20:57 -0500)]
eja: remove a false alarm TODO.

3 years agoeja: add automatic associativity detection.
Michael Orlitzky [Fri, 26 Feb 2021 01:53:41 +0000 (20:53 -0500)]
eja: add automatic associativity detection.

3 years agoeja: remove a completed TODO.
Michael Orlitzky [Fri, 26 Feb 2021 00:02:17 +0000 (19:02 -0500)]
eja: remove a completed TODO.

3 years agoeja: really fix that test from the last commit.
Michael Orlitzky [Thu, 25 Feb 2021 23:54:09 +0000 (18:54 -0500)]
eja: really fix that test from the last commit.

3 years agoeja: fix a randomly failing (in dimension zero) test.
Michael Orlitzky [Thu, 25 Feb 2021 23:52:11 +0000 (18:52 -0500)]
eja: fix a randomly failing (in dimension zero) test.

3 years agoeja: don't check the field/axioms in element subalgebras. YOLO.
Michael Orlitzky [Thu, 25 Feb 2021 23:44:36 +0000 (18:44 -0500)]
eja: don't check the field/axioms in element subalgebras. YOLO.

3 years agoeja: add a note on debugging to the DESIGN document.
Michael Orlitzky [Thu, 25 Feb 2021 23:42:42 +0000 (18:42 -0500)]
eja: add a note on debugging to the DESIGN document.

3 years agoeja: add brute-force associativity test.
Michael Orlitzky [Thu, 25 Feb 2021 23:38:29 +0000 (18:38 -0500)]
eja: add brute-force associativity test.

3 years agoRevert "eja: drop custom _is_commutative() in favor of is_commutative()."
Michael Orlitzky [Thu, 25 Feb 2021 23:25:18 +0000 (18:25 -0500)]
Revert "eja: drop custom _is_commutative() in favor of is_commutative()."

This reverts commit fe4405d4c4e5eec48f1924fc75e6aedd08f5c938. Now that
all EJAs are commutative, we need the custom method that actually
checks it rather than the category method that always returns True.

3 years agoeja: add Commutative() to the EJA categories.
Michael Orlitzky [Thu, 25 Feb 2021 23:25:00 +0000 (18:25 -0500)]
eja: add Commutative() to the EJA categories.

3 years agoeja: remove the subalgebra bug TODO, it's not a new bug.
Michael Orlitzky [Thu, 25 Feb 2021 23:08:17 +0000 (18:08 -0500)]
eja: remove the subalgebra bug TODO, it's not a new bug.

Element subalgebra computations don't work over inexact fields because
we can't compute the degree of an element because we can't compute the
rank of a matrix.

3 years agoeja: add another performance TODO.
Michael Orlitzky [Thu, 25 Feb 2021 22:59:35 +0000 (17:59 -0500)]
eja: add another performance TODO.

3 years agoeja: check axioms in inexact field tests.
Michael Orlitzky [Thu, 25 Feb 2021 22:57:28 +0000 (17:57 -0500)]
eja: check axioms in inexact field tests.

3 years agoeja: add a TODO for a bug just observed.
Michael Orlitzky [Thu, 25 Feb 2021 22:40:14 +0000 (17:40 -0500)]
eja: add a TODO for a bug just observed.

3 years agoeja: simplify _inner_product_is_associative() code.
Michael Orlitzky [Thu, 25 Feb 2021 22:39:52 +0000 (17:39 -0500)]
eja: simplify _inner_product_is_associative() code.

3 years agoeja: fix the field on subalgebras.
Michael Orlitzky [Thu, 25 Feb 2021 22:29:27 +0000 (17:29 -0500)]
eja: fix the field on subalgebras.

3 years agoeja: add another TODO I had forgotten.
Michael Orlitzky [Thu, 25 Feb 2021 21:49:48 +0000 (16:49 -0500)]
eja: add another TODO I had forgotten.

3 years agoeja: add some more docs for FDEJA.
Michael Orlitzky [Thu, 25 Feb 2021 21:49:37 +0000 (16:49 -0500)]
eja: add some more docs for FDEJA.

3 years agoeja: rewrite docs.
Michael Orlitzky [Thu, 25 Feb 2021 21:32:00 +0000 (16:32 -0500)]
eja: rewrite docs.

3 years agoeja: add rational-basis subclass for Cartesian products.
Michael Orlitzky [Thu, 25 Feb 2021 16:51:38 +0000 (11:51 -0500)]
eja: add rational-basis subclass for Cartesian products.

3 years agoeja: add more examples.
Michael Orlitzky [Thu, 25 Feb 2021 14:07:32 +0000 (09:07 -0500)]
eja: add more examples.

3 years agoeja: gently update the TODO.
Michael Orlitzky [Thu, 25 Feb 2021 13:40:29 +0000 (08:40 -0500)]
eja: gently update the TODO.

3 years agoeja: add a doctest.
Michael Orlitzky [Thu, 25 Feb 2021 13:39:20 +0000 (08:39 -0500)]
eja: add a doctest.

3 years agoeja: add some tests for new utility functions.
Michael Orlitzky [Thu, 25 Feb 2021 12:48:49 +0000 (07:48 -0500)]
eja: add some tests for new utility functions.

3 years agoeja: remove a completed TODO, and doctest it.
Michael Orlitzky [Thu, 25 Feb 2021 02:17:21 +0000 (21:17 -0500)]
eja: remove a completed TODO, and doctest it.

3 years agoeja: fix cartesian products of cartesian product EJAs.
Michael Orlitzky [Thu, 25 Feb 2021 01:53:15 +0000 (20:53 -0500)]
eja: fix cartesian products of cartesian product EJAs.

3 years agoeja: make gram_schmidt work in Cartesian product algebras.
Michael Orlitzky [Thu, 25 Feb 2021 01:31:48 +0000 (20:31 -0500)]
eja: make gram_schmidt work in Cartesian product algebras.

3 years agoeja: fixup tests.
Michael Orlitzky [Thu, 25 Feb 2021 00:38:53 +0000 (19:38 -0500)]
eja: fixup tests.

3 years agoeja: handle tuples in parent algebras rather than in subclasses.
Michael Orlitzky [Wed, 24 Feb 2021 23:54:10 +0000 (18:54 -0500)]
eja: handle tuples in parent algebras rather than in subclasses.

This is "necessary" because we won't always have a Cartesian product
algebra when our basis consists of tuples. Particularly in
element-subalgebras of Cartesian product algebras. It leads to more
special-casing, but whatever. Someday SageMath will know that both
matrix spaces and Cartesian products of vector spaces are themselves
vector spaces.

3 years agoeja: add subalgebra() method for algebras.
Michael Orlitzky [Wed, 24 Feb 2021 21:26:00 +0000 (16:26 -0500)]
eja: add subalgebra() method for algebras.

3 years agoeja: add another TODO for later.
Michael Orlitzky [Wed, 24 Feb 2021 21:25:36 +0000 (16:25 -0500)]
eja: add another TODO for later.

3 years agoeja: add subalgebra() method.
Michael Orlitzky [Wed, 24 Feb 2021 19:11:13 +0000 (14:11 -0500)]
eja: add subalgebra() method.

3 years agoeja: delete obsolete cartesian product methods.
Michael Orlitzky [Wed, 24 Feb 2021 16:12:28 +0000 (11:12 -0500)]
eja: delete obsolete cartesian product methods.

3 years agoeja: drop custom _is_commutative() in favor of is_commutative().
Michael Orlitzky [Wed, 24 Feb 2021 16:01:28 +0000 (11:01 -0500)]
eja: drop custom _is_commutative() in favor of is_commutative().

3 years agoeja: add is_associative() method and corresponding cartesian product magic.
Michael Orlitzky [Wed, 24 Feb 2021 16:00:33 +0000 (11:00 -0500)]
eja: add is_associative() method and corresponding cartesian product magic.

3 years agoeja: allow FDEJA constructor to work on a tuple basis.
Michael Orlitzky [Wed, 24 Feb 2021 03:22:19 +0000 (22:22 -0500)]
eja: allow FDEJA constructor to work on a tuple basis.

3 years agoeja: simplify to_matrix() for elements.
Michael Orlitzky [Wed, 24 Feb 2021 02:24:56 +0000 (21:24 -0500)]
eja: simplify to_matrix() for elements.

3 years agoeja: switch "category" argument to "cartesian_product" in FDEJA.
Michael Orlitzky [Wed, 24 Feb 2021 01:10:09 +0000 (20:10 -0500)]
eja: switch "category" argument to "cartesian_product" in FDEJA.

This constructor is going to need a bunch of special cases for
cartesian products, and this simplifies things (we don't have to infer
whether or not we have a cartesian product from the category).

3 years agoeja: add subclass for Cartesian product elements.
Michael Orlitzky [Tue, 23 Feb 2021 14:58:07 +0000 (09:58 -0500)]
eja: add subclass for Cartesian product elements.

3 years agoeja: fix element constructor error message for Cartesian products.
Michael Orlitzky [Tue, 23 Feb 2021 14:02:43 +0000 (09:02 -0500)]
eja: fix element constructor error message for Cartesian products.

3 years agoeja: define matrix basis/space for Cartesian product algebras.
Michael Orlitzky [Mon, 22 Feb 2021 18:04:43 +0000 (13:04 -0500)]
eja: define matrix basis/space for Cartesian product algebras.

3 years agoeja: cache one() for Cartesian product algebras.
Michael Orlitzky [Mon, 22 Feb 2021 17:02:04 +0000 (12:02 -0500)]
eja: cache one() for Cartesian product algebras.

3 years agoeja: replace monomial(i) with gens()[i] most places.
Michael Orlitzky [Mon, 22 Feb 2021 15:27:16 +0000 (10:27 -0500)]
eja: replace monomial(i) with gens()[i] most places.

The way cartesian products of combinatorial free modules are
constructed, the monomials are identified by pairs of integers rather
than single digits. This means when we're looping through monomial(i)
for i=0,1,...,n in a CartesianProductEJA, that nothing is happening:
monomial(i) is always zero. It wants e.g. monomial((i,j)) instead.
So, switch all of those to gens()[i] which works everywhere.

This fixes rank computations in cartesian product algebras.

3 years agoRevert "eja: demonstration for https://trac.sagemath.org/ticket/31421."
Michael Orlitzky [Mon, 22 Feb 2021 13:36:12 +0000 (08:36 -0500)]
Revert "eja: demonstration for https://trac.sagemath.org/ticket/31421."

This reverts commit 526fbae45d9626b4042b1bfed3327a0d4a582b96.

3 years agoeja: demonstration for https://trac.sagemath.org/ticket/31421.
Michael Orlitzky [Mon, 22 Feb 2021 13:20:26 +0000 (08:20 -0500)]
eja: demonstration for https://trac.sagemath.org/ticket/31421.

3 years agoeja: add another Cartesian product test.
Michael Orlitzky [Sun, 21 Feb 2021 23:14:02 +0000 (18:14 -0500)]
eja: add another Cartesian product test.

3 years agoeja: update the TODO again.
Michael Orlitzky [Sun, 21 Feb 2021 22:56:49 +0000 (17:56 -0500)]
eja: update the TODO again.

3 years agoeja: update a comment.
Michael Orlitzky [Sun, 21 Feb 2021 22:54:11 +0000 (17:54 -0500)]
eja: update a comment.

3 years agoRevert "eja: factor out a separate class used by cartesian_product()."
Michael Orlitzky [Sun, 21 Feb 2021 22:53:01 +0000 (17:53 -0500)]
Revert "eja: factor out a separate class used by cartesian_product()."

This reverts commit 858aa3653fd2e4ae8573f472cf3f0d698072c185.

3 years agoeja: update the TODO.
Michael Orlitzky [Sun, 21 Feb 2021 22:29:07 +0000 (17:29 -0500)]
eja: update the TODO.

3 years agoeja: factor out a separate class used by cartesian_product().
Michael Orlitzky [Sun, 21 Feb 2021 21:58:05 +0000 (16:58 -0500)]
eja: factor out a separate class used by cartesian_product().

3 years agoeja: add a comment with a new TODO...
Michael Orlitzky [Sun, 21 Feb 2021 16:54:52 +0000 (11:54 -0500)]
eja: add a comment with a new TODO...

3 years agoeja: more polish for Cartesian product EJAs.
Michael Orlitzky [Sun, 21 Feb 2021 16:31:08 +0000 (11:31 -0500)]
eja: more polish for Cartesian product EJAs.

3 years agoeja: initialize CartesianProductEJA as an EJA.
Michael Orlitzky [Sun, 21 Feb 2021 14:39:46 +0000 (09:39 -0500)]
eja: initialize CartesianProductEJA as an EJA.