]> gitweb.michael.orlitzky.com - sage.d.git/log
sage.d.git
3 years agooctonions: add a test for Cartesian products.
Michael Orlitzky [Sat, 6 Mar 2021 14:30:24 +0000 (09:30 -0500)]
octonions: add a test for Cartesian products.

3 years agoeja: disentangle RationalBasisEJA from ConcreteEJA.
Michael Orlitzky [Thu, 4 Mar 2021 23:39:36 +0000 (18:39 -0500)]
eja: disentangle RationalBasisEJA from ConcreteEJA.

3 years agoeja: improve a gram_schmidt() error message.
Michael Orlitzky [Thu, 4 Mar 2021 22:43:59 +0000 (17:43 -0500)]
eja: improve a gram_schmidt() error message.

3 years agoeja: unbreak the trace_inner_product() for MatrixEJAs.
Michael Orlitzky [Thu, 4 Mar 2021 15:20:46 +0000 (10:20 -0500)]
eja: unbreak the trace_inner_product() for MatrixEJAs.

3 years agoeja: add some more octonion tests.
Michael Orlitzky [Thu, 4 Mar 2021 02:22:02 +0000 (21:22 -0500)]
eja: add some more octonion tests.

3 years agoeja: fix an octonion EJA test.
Michael Orlitzky [Wed, 3 Mar 2021 21:42:34 +0000 (16:42 -0500)]
eja: fix an octonion EJA test.

3 years agoeja: fix the matrix EJA trace inner-product.
Michael Orlitzky [Wed, 3 Mar 2021 20:03:18 +0000 (15:03 -0500)]
eja: fix the matrix EJA trace inner-product.

3 years agoeja: fix the basis for the octonion matrix algebra.
Michael Orlitzky [Wed, 3 Mar 2021 16:27:28 +0000 (11:27 -0500)]
eja: fix the basis for the octonion matrix algebra.

3 years agomatrix_algebra: rename __repr__ to _repr_ and fix a multiplication bug.
Michael Orlitzky [Wed, 3 Mar 2021 16:22:30 +0000 (11:22 -0500)]
matrix_algebra: rename __repr__ to _repr_ and fix a multiplication bug.

3 years agoeja: change OctonionMatrixAlgebra paramater field -> scalars.
Michael Orlitzky [Wed, 3 Mar 2021 16:21:15 +0000 (11:21 -0500)]
eja: change OctonionMatrixAlgebra paramater field -> scalars.

3 years agooctonions: use Hurwitz subclass for the matrix algebra.
Michael Orlitzky [Wed, 3 Mar 2021 15:31:25 +0000 (10:31 -0500)]
octonions: use Hurwitz subclass for the matrix algebra.

3 years agomatrix_algebra: implement one() dynamically.
Michael Orlitzky [Wed, 3 Mar 2021 15:16:42 +0000 (10:16 -0500)]
matrix_algebra: implement one() dynamically.

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.