]> gitweb.michael.orlitzky.com - sage.d.git/log
sage.d.git
10 hours agomjo/cone/decomposition.py: remove that NOTE master
Michael Orlitzky [Tue, 3 Feb 2026 00:20:18 +0000 (19:20 -0500)]
mjo/cone/decomposition.py: remove that NOTE

I found an example where PPL does not remove the lineal components of
the remaining generators. It is now included as a doctest.

28 hours agomjo/cone/decomposition.py: add a NOTE
Michael Orlitzky [Mon, 2 Feb 2026 21:20:18 +0000 (16:20 -0500)]
mjo/cone/decomposition.py: add a NOTE

I'm becoming more and more convinced that PPL will do the
lineality-space decomposition on its own.

2 days agomjo/cone/decomposition.py: new pointed-linspace decomposition
Michael Orlitzky [Sun, 1 Feb 2026 18:55:15 +0000 (13:55 -0500)]
mjo/cone/decomposition.py: new pointed-linspace decomposition

Begin a new experiment with the pointed-linspace decomposition. We
know how to do this with orthogonal projections, but in Sage we must
work over the rationals (and arithmetic is much faster there anyway).
I sketched a quick proof of concept showing that this can be done, and
it's very likely that PPL does exactly the same thing when it
minimizes the generators in Cone().

But just in case, here's an implementation that definitely does what I
think it does.

2 days agomjo/cone/decomposition.py: fix the vertices in irreducible_factors()
Michael Orlitzky [Sun, 1 Feb 2026 18:10:19 +0000 (13:10 -0500)]
mjo/cone/decomposition.py: fix the vertices in irreducible_factors()

This bug is fixed in the upstream SageMath branch (with additional
tests), but let's fix it here too until it hits "develop".

8 days agomjo/clan: factor out up_hat, down_hat, etc. for matrix clans
Michael Orlitzky [Mon, 26 Jan 2026 02:35:59 +0000 (21:35 -0500)]
mjo/clan: factor out up_hat, down_hat, etc. for matrix clans

10 days agomjo/clan: move matrix-clan methods to an intermediate class
Michael Orlitzky [Sat, 24 Jan 2026 16:16:27 +0000 (11:16 -0500)]
mjo/clan: move matrix-clan methods to an intermediate class

10 days agomjo/matrix_algebra.py: alllow from_list() to take one long list
Michael Orlitzky [Sat, 24 Jan 2026 16:10:43 +0000 (11:10 -0500)]
mjo/matrix_algebra.py: alllow from_list() to take one long list

This makes its behavior more consistent with that of MatrixSpace.

10 days agomjo/matrix_algebra.py: whitespace
Michael Orlitzky [Sat, 24 Jan 2026 16:10:34 +0000 (11:10 -0500)]
mjo/matrix_algebra.py: whitespace

10 days agomjo/clan: move one() into the NormalDecomposition class
Michael Orlitzky [Sat, 24 Jan 2026 15:09:11 +0000 (10:09 -0500)]
mjo/clan: move one() into the NormalDecomposition class

We know this in terms of the idempotents, whatever they are.

10 days agomjo/clan: initial implementation of the Hermitian complex matrix clan
Michael Orlitzky [Sat, 24 Jan 2026 02:39:13 +0000 (21:39 -0500)]
mjo/clan: initial implementation of the Hermitian complex matrix clan

10 days agomjo/clan: new diag() method for elements, everything now index-agnostic
Michael Orlitzky [Sat, 24 Jan 2026 02:15:57 +0000 (21:15 -0500)]
mjo/clan: new diag() method for elements, everything now index-agnostic

With idempotent() and diag() helpers, the element code now does not
need to know what the indexing scheme is.

10 days agomjo/clan: add idempotent() method for normal decompositions
Michael Orlitzky [Sat, 24 Jan 2026 02:14:38 +0000 (21:14 -0500)]
mjo/clan: add idempotent() method for normal decompositions

Just a helper to get the idempotent (diagonal) elements without
having to care what the basis indices are.

11 days agomjo/hurwitz.py: add matrix transpose() method
Michael Orlitzky [Sat, 24 Jan 2026 01:14:42 +0000 (20:14 -0500)]
mjo/hurwitz.py: add matrix transpose() method

Sometimes you just need to transpose a complex matrix, you know?

11 days agomjo/matrix_algebra.py: support the original __getitem__ syntax
Michael Orlitzky [Sat, 24 Jan 2026 01:11:39 +0000 (20:11 -0500)]
mjo/matrix_algebra.py: support the original __getitem__ syntax

To support submodules, we need __getitem__() to support its original
behavior of returning coordinates when given all three indices.

11 days agomjo/clan: complete the migration to three coordinates
Michael Orlitzky [Fri, 23 Jan 2026 16:50:23 +0000 (11:50 -0500)]
mjo/clan: complete the migration to three coordinates

Three coordinates are needed to identify a basis element in general:
(i,j) to identify the component, and then "k" for the basis within
the (i,j)th component.

This should allow us to define HnClan, which has 2d off-diagonal
components.

11 days agomjo/clan: WIP conversion to three coordinates
Michael Orlitzky [Fri, 23 Jan 2026 14:02:25 +0000 (09:02 -0500)]
mjo/clan: WIP conversion to three coordinates

11 days agomjo/clan/unital_clan.py: remove unused local variable
Michael Orlitzky [Fri, 23 Jan 2026 13:03:54 +0000 (08:03 -0500)]
mjo/clan/unital_clan.py: remove unused local variable

2 weeks agomjo/clan: add x.D(k) and x.chi(k) methods
Michael Orlitzky [Sat, 17 Jan 2026 01:58:44 +0000 (20:58 -0500)]
mjo/clan: add x.D(k) and x.chi(k) methods

These are the homogeneous polynomials and diagonals-squared of the
triangular factorization of x, as in the Ishi / Gindikin papers.

2 weeks agomjo/clan: factor out NormalDecomposition to its own class
Michael Orlitzky [Fri, 16 Jan 2026 13:18:39 +0000 (08:18 -0500)]
mjo/clan: factor out NormalDecomposition to its own class

Some methods require knowledge of the normal decomposition
coordinates.

2 weeks agomjo/clan: get inner products working; implement one() for SnClan
Michael Orlitzky [Thu, 15 Jan 2026 03:07:38 +0000 (22:07 -0500)]
mjo/clan: get inner products working; implement one() for SnClan

2 weeks agomjo/clan: begin implementing the clan on S^n
Michael Orlitzky [Thu, 15 Jan 2026 01:40:18 +0000 (20:40 -0500)]
mjo/clan: begin implementing the clan on S^n

4 weeks agoclan: eliminate the user basis stuff from the new clan module
Michael Orlitzky [Sat, 3 Jan 2026 00:51:12 +0000 (19:51 -0500)]
clan: eliminate the user basis stuff from the new clan module

I think we'll be able to get away with just using the "real" basis
elements as keys to the CFM. This makes it easy to reconstruct the
"user" coordinates from CFM elements.

4 weeks agomjo: move eja.eja_utils to mjo.misc
Michael Orlitzky [Fri, 2 Jan 2026 17:29:30 +0000 (12:29 -0500)]
mjo: move eja.eja_utils to mjo.misc

These functions are useful outside of Euclidean Jordan algebras.
It's looking in particular like the _all2list() gimmick may be
a useful general construct for algebras with a user basis.

4 weeks agomjo/clan/unital_clan.py: begin clan implementation
Michael Orlitzky [Fri, 2 Jan 2026 16:39:30 +0000 (11:39 -0500)]
mjo/clan/unital_clan.py: begin clan implementation

2 months agomjo/cone/decomposition.py: rearrangement examples for is_reducible()
Michael Orlitzky [Sun, 30 Nov 2025 21:59:49 +0000 (16:59 -0500)]
mjo/cone/decomposition.py: rearrangement examples for is_reducible()

2 months agomjo/cone/decomposition.py: handle trivial cones correctly
Michael Orlitzky [Fri, 14 Nov 2025 01:21:10 +0000 (20:21 -0500)]
mjo/cone/decomposition.py: handle trivial cones correctly

2 months agomjo/cone/decomposition.py: add new is_reducible() function
Michael Orlitzky [Wed, 12 Nov 2025 00:51:51 +0000 (19:51 -0500)]
mjo/cone/decomposition.py: add new is_reducible() function

2 months agomjo/cone/decomposition.py: add missing colon
Michael Orlitzky [Wed, 12 Nov 2025 00:51:42 +0000 (19:51 -0500)]
mjo/cone/decomposition.py: add missing colon

2 months agomjo/cone/decomposition.py: add tests, fix the edges of the edges
Michael Orlitzky [Tue, 11 Nov 2025 23:46:20 +0000 (18:46 -0500)]
mjo/cone/decomposition.py: add tests, fix the edges of the edges

A miscellaneous selection:

  * The vertex numbering was off because pivots() renumbers them.
  * Updated the docs to fix some incorrect claims.
  * Added lots of new tests.
  * Special case for irreducible cones to return K itself.
  * Use subspace_with_basis() instead of span() to preserve
    our user basis.

Tests now pass, and the documentation is converging upon the truth.

2 months agomjo/cone/decomposition.py: support non-solid cones
Michael Orlitzky [Tue, 11 Nov 2025 15:53:38 +0000 (10:53 -0500)]
mjo/cone/decomposition.py: support non-solid cones

2 months agomjo/cone/all.py: add mjo/cone/decomposition.py
Michael Orlitzky [Tue, 11 Nov 2025 13:53:35 +0000 (08:53 -0500)]
mjo/cone/all.py: add mjo/cone/decomposition.py

2 months agomjo/cone/decomposition.py: rename "decomposition" to "factors"
Michael Orlitzky [Tue, 11 Nov 2025 13:53:04 +0000 (08:53 -0500)]
mjo/cone/decomposition.py: rename "decomposition" to "factors"

2 months agomjo/cone: rename irreducible_decomposition.py -> decomposition.py
Michael Orlitzky [Tue, 11 Nov 2025 13:52:24 +0000 (08:52 -0500)]
mjo/cone: rename irreducible_decomposition.py -> decomposition.py

2 months agomjo/cone/irreducible_decomposition.py: get it working, roughly
Michael Orlitzky [Tue, 11 Nov 2025 00:23:43 +0000 (19:23 -0500)]
mjo/cone/irreducible_decomposition.py: get it working, roughly

2 months agomjo/cone: begin working on the irreducible decomposition
Michael Orlitzky [Mon, 10 Nov 2025 19:36:54 +0000 (14:36 -0500)]
mjo/cone: begin working on the irreducible decomposition

4 months agomjo.eja.eja_operator: fix exponentiation
Michael Orlitzky [Wed, 1 Oct 2025 15:58:08 +0000 (11:58 -0400)]
mjo.eja.eja_operator: fix exponentiation

Using exponentiation was allowing us to skip the domain/codomain check
for operator composition when their dimensions agreed. To fix that, we
reimplement powers directly in terms of multiplication.

This also sheds light on a buggy test that needed to be fixed:
isomorphisms can't necessarily be composed.

4 months agomjo/cone/isomorphism.py: delete
Michael Orlitzky [Wed, 24 Sep 2025 20:08:53 +0000 (16:08 -0400)]
mjo/cone/isomorphism.py: delete

A better version of this is pending upstream at,

  https://github.com/sagemath/sage/pull/40367

4 months agomjo/eja/eja_operator.py: use upstream stuff for random unitary matrices
Michael Orlitzky [Wed, 24 Sep 2025 20:07:30 +0000 (16:07 -0400)]
mjo/eja/eja_operator.py: use upstream stuff for random unitary matrices

4 months agomjo/random.py: delete, random_unitary_matrix() is upstream
Michael Orlitzky [Wed, 24 Sep 2025 20:06:59 +0000 (16:06 -0400)]
mjo/random.py: delete, random_unitary_matrix() is upstream

7 months agomjo/cone: more linear ismorphism tests
Michael Orlitzky [Tue, 1 Jul 2025 23:15:23 +0000 (19:15 -0400)]
mjo/cone: more linear ismorphism tests

7 months agomjo/cone/isomorphism.py: fix RST citation format
Michael Orlitzky [Tue, 1 Jul 2025 13:54:53 +0000 (09:54 -0400)]
mjo/cone/isomorphism.py: fix RST citation format

7 months agomjo/cone/isomorphism.py: cite Gowda/Trott for the l1-cone
Michael Orlitzky [Tue, 1 Jul 2025 13:52:33 +0000 (09:52 -0400)]
mjo/cone/isomorphism.py: cite Gowda/Trott for the l1-cone

7 months agomjo/cone: improve isomorphism testing & docs, tests pass now
Michael Orlitzky [Tue, 1 Jul 2025 13:33:19 +0000 (09:33 -0400)]
mjo/cone: improve isomorphism testing & docs, tests pass now

7 months agomjo/cone/isomorphism.py: update docs/names, add is-isomorphic method
Michael Orlitzky [Tue, 1 Jul 2025 04:03:45 +0000 (00:03 -0400)]
mjo/cone/isomorphism.py: update docs/names, add is-isomorphic method

Rename the isomorphism generator to linear_isomorphisms(), since
"linear isomorphism" is as good of a distinguishing name as I can
think of. Then add the is_linearly_isomorphic() function to check
that at least one isomorphism exists.

7 months agomjo/cone/isomorphism.py: new module for (rational) cone isomorphism
Michael Orlitzky [Tue, 1 Jul 2025 00:32:57 +0000 (20:32 -0400)]
mjo/cone/isomorphism.py: new module for (rational) cone isomorphism

The is_isomorphic() method for convex cones in Sage kind of does what
I want, but the fact that it does is considered a bug by the author
since it does not capture the notion of isomorphism useful for toric
varieties. Some day that method will be fixed and it will be much less
useful for testing isomorphism in the usual linear-algebraic sense,
which is what I usually want to check.

This commit adds a new module with the beginnings of an isomorphism
test over the rationals. It should work for all convex cones (not just
pointed cones) though it isn't very smart or fast and probably has a
lot of bugs in it at the moment.

14 months agomjo/eja/eja_operator.py: randomize the permuted factors test
Michael Orlitzky [Fri, 29 Nov 2024 01:17:25 +0000 (20:17 -0500)]
mjo/eja/eja_operator.py: randomize the permuted factors test

14 months agomjo/eja/eja_operator.py: add some "long time" labels
Michael Orlitzky [Fri, 29 Nov 2024 01:17:14 +0000 (20:17 -0500)]
mjo/eja/eja_operator.py: add some "long time" labels

14 months agomjo/eja/eja_operator.py: fix test when spin algebra is trivial
Michael Orlitzky [Fri, 29 Nov 2024 01:16:43 +0000 (20:16 -0500)]
mjo/eja/eja_operator.py: fix test when spin algebra is trivial

14 months agomjo/eja/eja_operator.py: permutation test for is_isomorphism()
Michael Orlitzky [Fri, 29 Nov 2024 00:26:55 +0000 (19:26 -0500)]
mjo/eja/eja_operator.py: permutation test for is_isomorphism()

14 months agomjo/eja/eja_operator.py: improved is_isomorphism() tests
Michael Orlitzky [Thu, 28 Nov 2024 23:20:17 +0000 (18:20 -0500)]
mjo/eja/eja_operator.py: improved is_isomorphism() tests

For random testing we can use rationals; but only certain small
examples complete fast enough over the algebraics.

14 months agomjo/eja/eja_operator.py: add complex hermitian EJA tests for is_isomorphism()
Michael Orlitzky [Thu, 28 Nov 2024 18:16:38 +0000 (13:16 -0500)]
mjo/eja/eja_operator.py: add complex hermitian EJA tests for is_isomorphism()

14 months agomjo/eja/eja_operator.py: speed up is_isometry() and is_homomorphism()
Michael Orlitzky [Thu, 28 Nov 2024 18:15:57 +0000 (13:15 -0500)]
mjo/eja/eja_operator.py: speed up is_isometry() and is_homomorphism()

Both of these are symmetric, so we can skip about half of the checks.

14 months agomjo/eja/eja_operator.py: simplify an is_isomorphism() test
Michael Orlitzky [Thu, 28 Nov 2024 16:43:11 +0000 (11:43 -0500)]
mjo/eja/eja_operator.py: simplify an is_isomorphism() test

14 months agomjo/eja/eja_operator.py: is_isomorphism() tests for the two easiest EJAs
Michael Orlitzky [Thu, 28 Nov 2024 14:22:44 +0000 (09:22 -0500)]
mjo/eja/eja_operator.py: is_isomorphism() tests for the two easiest EJAs

14 months agomjo/matrix_algebra.py: move a comment
Michael Orlitzky [Thu, 28 Nov 2024 13:53:29 +0000 (08:53 -0500)]
mjo/matrix_algebra.py: move a comment

14 months agomjo/eja/eja_operator.py: add is_isomorphism() for operators
Michael Orlitzky [Wed, 27 Nov 2024 23:32:43 +0000 (18:32 -0500)]
mjo/eja/eja_operator.py: add is_isomorphism() for operators

14 months agomjo/eja/eja_operator.py: add is_homomorphism() for operators
Michael Orlitzky [Wed, 27 Nov 2024 01:02:56 +0000 (20:02 -0500)]
mjo/eja/eja_operator.py: add is_homomorphism() for operators

14 months agomjo/eja/eja_operator.py: add a comment about something non-obvious
Michael Orlitzky [Tue, 26 Nov 2024 18:40:28 +0000 (13:40 -0500)]
mjo/eja/eja_operator.py: add a comment about something non-obvious

14 months agomjo/eja/eja_operator.py: add is_isometry() method
Michael Orlitzky [Tue, 26 Nov 2024 18:33:41 +0000 (13:33 -0500)]
mjo/eja/eja_operator.py: add is_isometry() method

14 months agomakefile: bypass the "sage" script when testing
Michael Orlitzky [Tue, 26 Nov 2024 18:33:25 +0000 (13:33 -0500)]
makefile: bypass the "sage" script when testing

14 months agomjo/hurwitz.py: quaternion gens are a tuple now
Michael Orlitzky [Sat, 23 Nov 2024 02:52:08 +0000 (21:52 -0500)]
mjo/hurwitz.py: quaternion gens are a tuple now

14 months agomjo/**/*.py: update table rendering
Michael Orlitzky [Sat, 23 Nov 2024 02:50:05 +0000 (21:50 -0500)]
mjo/**/*.py: update table rendering

Sage's tables are rendered using unicode characters for the borders
now.

14 months agomjo/eja/eja_algebra.py: block-scoped "long time" tags
Michael Orlitzky [Fri, 22 Nov 2024 22:22:15 +0000 (17:22 -0500)]
mjo/eja/eja_algebra.py: block-scoped "long time" tags

14 months agomjo/eja/eja_subalgebra.py: block-scoped "long time" tags
Michael Orlitzky [Fri, 22 Nov 2024 22:00:14 +0000 (17:00 -0500)]
mjo/eja/eja_subalgebra.py: block-scoped "long time" tags

14 months agomjo/eja/eja_element.py: block-scoped "long time" tags
Michael Orlitzky [Fri, 22 Nov 2024 22:00:03 +0000 (17:00 -0500)]
mjo/eja/eja_element.py: block-scoped "long time" tags

14 months agomjo/cone/symmetric_psd.py: don't import from sage.all
Michael Orlitzky [Fri, 22 Nov 2024 21:38:30 +0000 (16:38 -0500)]
mjo/cone/symmetric_psd.py: don't import from sage.all

14 months agomjo/cone/symmetric_pd.py: don't import from sage.all
Michael Orlitzky [Fri, 22 Nov 2024 21:38:12 +0000 (16:38 -0500)]
mjo/cone/symmetric_pd.py: don't import from sage.all

14 months agomjo/cone/cone.py: remove
Michael Orlitzky [Fri, 22 Nov 2024 20:57:16 +0000 (15:57 -0500)]
mjo/cone/cone.py: remove

I don't feel like documenting these properly, and they aren't used
anywhere else.

14 months agomjo/cone/permutation_invariant.py: don't import from sage.all
Michael Orlitzky [Fri, 22 Nov 2024 20:56:43 +0000 (15:56 -0500)]
mjo/cone/permutation_invariant.py: don't import from sage.all

14 months agomjo/cone/doubly_nonnegative.py: don't import from sage.all
Michael Orlitzky [Fri, 22 Nov 2024 20:43:58 +0000 (15:43 -0500)]
mjo/cone/doubly_nonnegative.py: don't import from sage.all

14 months agomjo/cone/cone.py: don't import from sage.all
Michael Orlitzky [Fri, 22 Nov 2024 20:22:33 +0000 (15:22 -0500)]
mjo/cone/cone.py: don't import from sage.all

14 months agomjo/cone/completely_positive.py: don't import from sage.all
Michael Orlitzky [Fri, 22 Nov 2024 20:17:13 +0000 (15:17 -0500)]
mjo/cone/completely_positive.py: don't import from sage.all

14 months agomjo/cone/faces.py: don't import from sage.all
Michael Orlitzky [Fri, 22 Nov 2024 20:15:56 +0000 (15:15 -0500)]
mjo/cone/faces.py: don't import from sage.all

14 months agomjo/symbol_sequence.py: don't import from sage.all
Michael Orlitzky [Fri, 22 Nov 2024 20:14:15 +0000 (15:14 -0500)]
mjo/symbol_sequence.py: don't import from sage.all

14 months agomjo/polynomial.py: don't import from sage.all
Michael Orlitzky [Fri, 22 Nov 2024 20:12:00 +0000 (15:12 -0500)]
mjo/polynomial.py: don't import from sage.all

14 months agomjo/orthogonal_polynomials.py: don't import from sage.all
Michael Orlitzky [Fri, 22 Nov 2024 20:08:08 +0000 (15:08 -0500)]
mjo/orthogonal_polynomials.py: don't import from sage.all

14 months agomjo/basis_repr.py: don't import from sage.all
Michael Orlitzky [Fri, 22 Nov 2024 19:54:46 +0000 (14:54 -0500)]
mjo/basis_repr.py: don't import from sage.all

14 months agomjo/interpolation.py: don't import sage.all in global scope
Michael Orlitzky [Fri, 22 Nov 2024 19:38:08 +0000 (14:38 -0500)]
mjo/interpolation.py: don't import sage.all in global scope

14 months agomjo/misc.py: don't import sage.all
Michael Orlitzky [Fri, 22 Nov 2024 19:04:24 +0000 (14:04 -0500)]
mjo/misc.py: don't import sage.all

14 months agomjo/basis_repr.py: replace deprecated is_MatrixSpace()
Michael Orlitzky [Fri, 22 Nov 2024 18:57:22 +0000 (13:57 -0500)]
mjo/basis_repr.py: replace deprecated is_MatrixSpace()

14 months agomjo/eja/eja_utils.py: replace deprecated is_Matrix()
Michael Orlitzky [Fri, 22 Nov 2024 18:53:10 +0000 (13:53 -0500)]
mjo/eja/eja_utils.py: replace deprecated is_Matrix()

15 months agomjo/cone/faces.py: add another reducibility test
Michael Orlitzky [Thu, 31 Oct 2024 22:00:07 +0000 (18:00 -0400)]
mjo/cone/faces.py: add another reducibility test

20 months agomjo/cone/faces.py: use simpler dual face formula
Michael Orlitzky [Sun, 19 May 2024 01:50:53 +0000 (21:50 -0400)]
mjo/cone/faces.py: use simpler dual face formula

20 months agomjo/cone/permutation_invariant.py: use cones.foo() from sage
Michael Orlitzky [Sun, 19 May 2024 01:47:13 +0000 (21:47 -0400)]
mjo/cone/permutation_invariant.py: use cones.foo() from sage

20 months agoREADME: rewrite it, it was rather out-of-date
Michael Orlitzky [Sat, 18 May 2024 21:11:21 +0000 (17:11 -0400)]
README: rewrite it, it was rather out-of-date

20 months agomakefile: timeout overrides should no longer be necessary
Michael Orlitzky [Sat, 18 May 2024 21:11:05 +0000 (17:11 -0400)]
makefile: timeout overrides should no longer be necessary

20 months agomjo/cone/rearrangement.py: bye, use sage's cones.rearrangement() instead
Michael Orlitzky [Sat, 18 May 2024 20:59:24 +0000 (16:59 -0400)]
mjo/cone/rearrangement.py: bye, use sage's cones.rearrangement() instead

20 months agomjo/cone/trivial_cone.py: bye, use sage's cones.trivial() instead
Michael Orlitzky [Sat, 18 May 2024 20:57:39 +0000 (16:57 -0400)]
mjo/cone/trivial_cone.py: bye, use sage's cones.trivial() instead

20 months agomjo/cone/nonnegative_orthant.py: bye, use cones.nonnegative_orthant() instead
Michael Orlitzky [Sat, 18 May 2024 20:56:55 +0000 (16:56 -0400)]
mjo/cone/nonnegative_orthant.py: bye, use cones.nonnegative_orthant() instead

20 months agomjo/cone/schur.py: bye, use sage's cones.schur() instead
Michael Orlitzky [Sat, 18 May 2024 20:55:25 +0000 (16:55 -0400)]
mjo/cone/schur.py: bye, use sage's cones.schur() instead

20 months agoCOPYING,LICENSE: add (AGPL-3.0+)
Michael Orlitzky [Mon, 6 May 2024 18:51:18 +0000 (14:51 -0400)]
COPYING,LICENSE: add (AGPL-3.0+)

2 years agoeja: rename operator_inner_product -> operator_trace inner_product.
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?

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

2 years 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.

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

3 years 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!

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

3 years 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().

3 years 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().

3 years 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.