]> gitweb.michael.orlitzky.com - sage.d.git/log
sage.d.git
9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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.

9 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

9 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

9 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

9 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

9 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

9 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.

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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()

9 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()

10 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

16 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

16 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

16 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

16 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

16 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

16 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

16 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

16 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

16 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.

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

2 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!

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

2 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().

2 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().

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

2 years agoeja: add the trace (matrix) operator inner product.
Michael Orlitzky [Sun, 29 Jan 2023 20:57:46 +0000 (15:57 -0500)]
eja: add the trace (matrix) operator inner product.

2 years agoeja: drop a superfluous semicolon.
Michael Orlitzky [Sun, 29 Jan 2023 20:57:35 +0000 (15:57 -0500)]
eja: drop a superfluous semicolon.

3 years agoeja: use QQ for another potentially slow doctest.
Michael Orlitzky [Wed, 2 Feb 2022 23:43:47 +0000 (18:43 -0500)]
eja: use QQ for another potentially slow doctest.

3 years agoeja: remove an "expected algebra failure" that now somehow passes.
Michael Orlitzky [Wed, 2 Feb 2022 18:44:25 +0000 (13:44 -0500)]
eja: remove an "expected algebra failure" that now somehow passes.

3 years agohurwitz.py: speed up conjugate() and conjugate_transpose().
Michael Orlitzky [Wed, 2 Feb 2022 18:43:53 +0000 (13:43 -0500)]
hurwitz.py: speed up conjugate() and conjugate_transpose().

...by staying as close to the underlying monomial dict as possible.

3 years agomjo/hurwitz.py: speed up is_hermitian() and is_skew_symmetric().
Michael Orlitzky [Wed, 2 Feb 2022 16:21:01 +0000 (11:21 -0500)]
mjo/hurwitz.py: speed up is_hermitian() and is_skew_symmetric().

We only need to test these above and on the diagonal.

3 years agomatrix_algebra.py: speed up __getitem__() and trace().
Michael Orlitzky [Wed, 2 Feb 2022 15:45:44 +0000 (10:45 -0500)]
matrix_algebra.py: speed up __getitem__() and trace().

3 years agoeja: use orthonormalize=False for all subalgebra_generated_by() tests.
Michael Orlitzky [Wed, 2 Feb 2022 14:56:04 +0000 (09:56 -0500)]
eja: use orthonormalize=False for all subalgebra_generated_by() tests.

Orthonormalizing a high-degree element over AA takes roughly forever.
Better that we test *something* than the nothing that gets tested if
I Ctrl-C the process.

3 years agoeja: change a misleading comment.
Michael Orlitzky [Wed, 2 Feb 2022 14:44:44 +0000 (09:44 -0500)]
eja: change a misleading comment.

3 years agoeja: fix parent of empty sum in element inverse().
Michael Orlitzky [Wed, 2 Feb 2022 05:11:38 +0000 (00:11 -0500)]
eja: fix parent of empty sum in element inverse().

3 years agoeja: add an "r" to a docstring.
Michael Orlitzky [Tue, 1 Feb 2022 23:29:17 +0000 (18:29 -0500)]
eja: add an "r" to a docstring.

3 years agoeja: mention the new EJA in the docs.
Michael Orlitzky [Tue, 1 Feb 2022 23:28:38 +0000 (18:28 -0500)]
eja: mention the new EJA in the docs.

3 years agoeja: add more "# long time" markers.
Michael Orlitzky [Tue, 1 Feb 2022 23:28:27 +0000 (18:28 -0500)]
eja: add more "# long time" markers.

3 years agoeja: add "# long time" to two potentially slow tests.
Michael Orlitzky [Fri, 28 Jan 2022 02:16:52 +0000 (21:16 -0500)]
eja: add "# long time" to two potentially slow tests.

3 years agoeja: test the nonnegativity of trace() for squares.
Michael Orlitzky [Fri, 28 Jan 2022 02:12:11 +0000 (21:12 -0500)]
eja: test the nonnegativity of trace() for squares.

3 years agoeja: revert random_element() to old fast behavior.
Michael Orlitzky [Mon, 31 Jan 2022 22:22:44 +0000 (17:22 -0500)]
eja: revert random_element() to old fast behavior.

3 years agoeja: typo fix in TODO.
Michael Orlitzky [Mon, 31 Jan 2022 18:52:21 +0000 (13:52 -0500)]
eja: typo fix in TODO.

3 years agoeja: fix a copy/paste error in the docs.
Michael Orlitzky [Sun, 30 Jan 2022 23:28:13 +0000 (18:28 -0500)]
eja: fix a copy/paste error in the docs.

3 years agoeja: cache one() for the new EJA.
Michael Orlitzky [Sun, 30 Jan 2022 23:25:11 +0000 (18:25 -0500)]
eja: cache one() for the new EJA.

3 years agoeja: use the correct definition for the new algebra.
Michael Orlitzky [Fri, 28 Jan 2022 02:01:22 +0000 (21:01 -0500)]
eja: use the correct definition for the new algebra.

3 years agohurwitz.py: swap is_sker_hermitian() for is_skew_symmetric().
Michael Orlitzky [Thu, 27 Jan 2022 21:31:08 +0000 (16:31 -0500)]
hurwitz.py: swap is_sker_hermitian() for is_skew_symmetric().

It turns out I've been working with the wrong concept for the past two
days. Welp.

3 years agoeja: begin work on the ComplexSkewHermitianEJA.
Michael Orlitzky [Wed, 26 Jan 2022 16:12:20 +0000 (11:12 -0500)]
eja: begin work on the ComplexSkewHermitianEJA.

3 years agohurwitz.py: add conjugate() method for matrices.
Michael Orlitzky [Wed, 26 Jan 2022 14:26:09 +0000 (09:26 -0500)]
hurwitz.py: add conjugate() method for matrices.

3 years agohurwitz.py: add is_skew_hermitian() method.
Michael Orlitzky [Wed, 26 Jan 2022 12:41:16 +0000 (07:41 -0500)]
hurwitz.py: add is_skew_hermitian() method.

3 years agoeja: rename MatrixEJA to HermitianMatrixEJA.
Michael Orlitzky [Wed, 26 Jan 2022 12:32:17 +0000 (07:32 -0500)]
eja: rename MatrixEJA to HermitianMatrixEJA.

There are also algebras of skew-Hermitian matrices, so the name was
not great.

3 years agomjo/**/*.py: drop obsolete set_random_seed().
Michael Orlitzky [Mon, 15 Nov 2021 18:53:29 +0000 (13:53 -0500)]
mjo/**/*.py: drop obsolete set_random_seed().

We use a random random seed by default now finally.

3 years agomakefile: drop obsolete --memlimit flag to sage -t.
Michael Orlitzky [Mon, 15 Nov 2021 18:17:29 +0000 (13:17 -0500)]
makefile: drop obsolete --memlimit flag to sage -t.

4 years agomjo/cone: drop is_symmetric_p{s,}d() methods.
Michael Orlitzky [Sat, 1 May 2021 00:48:45 +0000 (20:48 -0400)]
mjo/cone: drop is_symmetric_p{s,}d() methods.

These are now redundant since the sage is_positive_definite() and
is_positive_semidefinite() methods exist and work on inexact rings.

4 years agoeja: factor out the operator polynomial-matrix construction.
Michael Orlitzky [Fri, 23 Apr 2021 15:59:05 +0000 (11:59 -0400)]
eja: factor out the operator polynomial-matrix construction.

4 years agomjo/cone/symmetric_pd.py: add a missing set_random_seed().
Michael Orlitzky [Sun, 4 Apr 2021 12:34:59 +0000 (08:34 -0400)]
mjo/cone/symmetric_pd.py: add a missing set_random_seed().

4 years agomjo/cone/symmetric_pd.py: drop inverse_symmetric_pd().
Michael Orlitzky [Sun, 4 Apr 2021 12:31:10 +0000 (08:31 -0400)]
mjo/cone/symmetric_pd.py: drop inverse_symmetric_pd().

This function is now available in SageMath:

  sage: A = matrix.identity(QQ,2)
  sage: A.inverse_positive_definite()
  [1 0]
  [0 1]

4 years agoeja: update the DESIGN doc.
Michael Orlitzky [Tue, 16 Mar 2021 12:26:28 +0000 (08:26 -0400)]
eja: update the DESIGN doc.

4 years agoeja: further micro-optimize gram_schmidt().
Michael Orlitzky [Tue, 16 Mar 2021 01:19:27 +0000 (21:19 -0400)]
eja: further micro-optimize gram_schmidt().

4 years agoeja: try to speed up gram_schmidt(), but all my sages are broken.
Michael Orlitzky [Mon, 15 Mar 2021 22:16:17 +0000 (18:16 -0400)]
eja: try to speed up gram_schmidt(), but all my sages are broken.

4 years agoeja: remove unused variable in gram_schmidt.
Michael Orlitzky [Mon, 15 Mar 2021 21:54:43 +0000 (17:54 -0400)]
eja: remove unused variable in gram_schmidt.

4 years agoeja: renumber coordinate variables from zero.
Michael Orlitzky [Sun, 14 Mar 2021 21:38:53 +0000 (17:38 -0400)]
eja: renumber coordinate variables from zero.

4 years agoeja: add more TODOs, which are thankfully getting easier.
Michael Orlitzky [Sun, 14 Mar 2021 17:44:19 +0000 (13:44 -0400)]
eja: add more TODOs, which are thankfully getting easier.

4 years agoeja: speed up det() for Cartesian product elements.
Michael Orlitzky [Sun, 14 Mar 2021 01:46:54 +0000 (20:46 -0500)]
eja: speed up det() for Cartesian product elements.

4 years agoeja: add another TODO item.
Michael Orlitzky [Sat, 13 Mar 2021 20:57:08 +0000 (15:57 -0500)]
eja: add another TODO item.

4 years agoeja: append to an existing TODO.
Michael Orlitzky [Sat, 13 Mar 2021 20:50:44 +0000 (15:50 -0500)]
eja: append to an existing TODO.

4 years agoeja: fix cartesian_factors() for EJA elements.
Michael Orlitzky [Sat, 13 Mar 2021 20:49:32 +0000 (15:49 -0500)]
eja: fix cartesian_factors() for EJA elements.

4 years agoeja: drop obsolete _vec2mat and _mat2vec helpers.
Michael Orlitzky [Sat, 13 Mar 2021 20:27:02 +0000 (15:27 -0500)]
eja: drop obsolete _vec2mat and _mat2vec helpers.

4 years agoeja: remove unused import.
Michael Orlitzky [Sat, 13 Mar 2021 19:55:47 +0000 (14:55 -0500)]
eja: remove unused import.

4 years agoeja: remove redundant kwargs mangling from MatrixEJA subclasses.
Michael Orlitzky [Sat, 13 Mar 2021 19:23:18 +0000 (14:23 -0500)]
eja: remove redundant kwargs mangling from MatrixEJA subclasses.

4 years agoeja: don't allow creation of invalid RationalBasisEJAs.
Michael Orlitzky [Sat, 13 Mar 2021 19:17:20 +0000 (14:17 -0500)]
eja: don't allow creation of invalid RationalBasisEJAs.

Prior to this, a Cartesian product taken in the "wrong order" could
result in a subclass of RationalBasisEJA that did not actually have
a corresponding rational algebra.

4 years agoeja: remove an impossible TODO.
Michael Orlitzky [Sat, 13 Mar 2021 15:44:51 +0000 (10:44 -0500)]
eja: remove an impossible TODO.

We can't use the _rational_algebra to get minimal polynomials like we
do with characteristic ones. The secret with the charpolys is that the
(irrational) coordinates of the element are hidden behind polynomial
variables. With the minimal polynomial, we'd need to operate on them
directly... but we can't, in a rational algebra.

4 years agoeja: remove two completed TODOs.
Michael Orlitzky [Sat, 13 Mar 2021 15:38:13 +0000 (10:38 -0500)]
eja: remove two completed TODOs.

4 years agoeja: speed up _all2list().
Michael Orlitzky [Sat, 13 Mar 2021 15:37:44 +0000 (10:37 -0500)]
eja: speed up _all2list().

4 years agoeja: delete obsolete method override.
Michael Orlitzky [Sat, 13 Mar 2021 13:42:14 +0000 (08:42 -0500)]
eja: delete obsolete method override.

4 years agoeja: skip FDEJA constructor in CartesianProductEJA.
Michael Orlitzky [Sat, 13 Mar 2021 13:14:33 +0000 (08:14 -0500)]
eja: skip FDEJA constructor in CartesianProductEJA.

4 years agoeja: add a TODO for tomorrow.
Michael Orlitzky [Sat, 13 Mar 2021 02:12:10 +0000 (21:12 -0500)]
eja: add a TODO for tomorrow.

4 years agoeja: factor a few things out of the FDEJA constructor.
Michael Orlitzky [Fri, 12 Mar 2021 20:16:54 +0000 (15:16 -0500)]
eja: factor a few things out of the FDEJA constructor.