]>
gitweb.michael.orlitzky.com - sage.d.git/log
Michael Orlitzky [Sat, 29 Jun 2019 14:08:56 +0000 (10:08 -0400)]
eja: put element methods in alphabetical order.
Michael Orlitzky [Sat, 29 Jun 2019 14:07:19 +0000 (10:07 -0400)]
eja: add is_regular() method on elements.
Michael Orlitzky [Wed, 26 Jun 2019 15:17:40 +0000 (11:17 -0400)]
eja: fix element matrices.
The superclass matrix() method of elements sometimes computes the
right-matrix acting on row vectors. Nobody wants that shit. This
commit overrides it (to simply return the transpose of the superclass
matrix), and thus fixes the subalgebra_idempotent() method. Some tests
were added for the latter method, too.
Michael Orlitzky [Wed, 26 Jun 2019 14:56:03 +0000 (10:56 -0400)]
eja: fix element powers.
We were using row-vector multiplication for powers (taken from the
superclass), but our vectors are column vectors. Oops. This broke
things when we assumed column vectors were being used, like when
we constructed a multiplication table. This commit fixes the powers
and adds/updates some tests.
Michael Orlitzky [Wed, 26 Jun 2019 01:04:18 +0000 (21:04 -0400)]
eja: add doctest for a bug in subalgebra_generated_by().
Michael Orlitzky [Tue, 25 Jun 2019 23:17:31 +0000 (19:17 -0400)]
eja: add currently-busted subalgebra_idempotent() method.
Michael Orlitzky [Tue, 25 Jun 2019 23:14:51 +0000 (19:14 -0400)]
eja: use different generator names in subalgebras.
Michael Orlitzky [Tue, 25 Jun 2019 21:14:11 +0000 (17:14 -0400)]
eja: add is_nilpotent() for elements.
Michael Orlitzky [Tue, 25 Jun 2019 21:13:41 +0000 (17:13 -0400)]
eja: recurse more directly in minimal_polynomial().
Michael Orlitzky [Tue, 25 Jun 2019 03:11:10 +0000 (23:11 -0400)]
eja: use the associativity of one-generator subalgebras.
Michael Orlitzky [Tue, 25 Jun 2019 03:10:37 +0000 (23:10 -0400)]
eja: fix the rank of the spin factor algebra.
Michael Orlitzky [Tue, 25 Jun 2019 03:08:24 +0000 (23:08 -0400)]
eja: remove symmetry test that don't work.
I don't know why, but the multiplication table of a commutative
algebra doesn't have to be symmetric. I'll think about this later.
In the meantime, don't crash about it.
Postscript (a month later): left-multiplication and right-multiplication
are the same in the EJA, but not necessarily for the matrices that represent
them. It was wrong to conflate the two concepts in the first place.
Michael Orlitzky [Tue, 25 Jun 2019 02:52:09 +0000 (22:52 -0400)]
eja: rewrite the classcall/init process.
I'm not sure what I just did, but by copying the __classcall_private__
method from FiniteDimensionalAlgebra, I was able to make it take an
extra (optional) "rank" parameter while creating EJAs. This lets us
hard-code the rank for known EJAs, and put off figuring how we might
compute it otherwise.
Michael Orlitzky [Mon, 24 Jun 2019 18:05:59 +0000 (14:05 -0400)]
eja: implement a working minimal_polynomial().
Michael Orlitzky [Mon, 24 Jun 2019 18:05:41 +0000 (14:05 -0400)]
eja: add subalgebra_generated_by() method.
Michael Orlitzky [Mon, 24 Jun 2019 18:05:01 +0000 (14:05 -0400)]
eja: add another test for degree().
Michael Orlitzky [Mon, 24 Jun 2019 16:06:12 +0000 (12:06 -0400)]
eja: test that left-mult matrices are symmetric.
Michael Orlitzky [Mon, 24 Jun 2019 16:05:47 +0000 (12:05 -0400)]
eja: add span_of_powers() method.
Michael Orlitzky [Mon, 24 Jun 2019 16:05:04 +0000 (12:05 -0400)]
eja: remove an erroneous comment.
Michael Orlitzky [Mon, 24 Jun 2019 02:05:30 +0000 (22:05 -0400)]
eja: begin implementing an element class.
Michael Orlitzky [Fri, 21 Jun 2019 23:12:22 +0000 (19:12 -0400)]
eja: implement my own algebra subclass.
Michael Orlitzky [Fri, 21 Jun 2019 16:45:37 +0000 (12:45 -0400)]
eja: fix field arguments, add comment.
Michael Orlitzky [Fri, 21 Jun 2019 16:45:07 +0000 (12:45 -0400)]
eja: add eja_minimal_polynomial() function.
Michael Orlitzky [Wed, 19 Jun 2019 14:18:56 +0000 (10:18 -0400)]
eja: add eja_ln() for the rank-two algebra.
Michael Orlitzky [Wed, 19 Jun 2019 14:18:33 +0000 (10:18 -0400)]
eja: add examples for eja_rn.
Michael Orlitzky [Fri, 14 Jun 2019 14:20:05 +0000 (10:20 -0400)]
eja: begin draft implementation of euclidean jordan algebras.
Michael Orlitzky [Wed, 20 Mar 2019 03:10:11 +0000 (23:10 -0400)]
mjo/polynomial.py: remove a redundant line from a test.
Michael Orlitzky [Thu, 21 Feb 2019 01:32:23 +0000 (20:32 -0500)]
mjo/polynomial.py: add another multidiv test based on an exercise.
Michael Orlitzky [Mon, 18 Feb 2019 18:56:28 +0000 (13:56 -0500)]
Revert "mjo/polynomial.py: improve multidiv performance a bit."
This reverts commit
4e4efc9eff5c77a2ca19002b1dfa45598e974c54 . Example
4 in the text doesn't work with this implementation, but it does with
my original one. Let's stick with slow and correct, for now.
Michael Orlitzky [Mon, 18 Feb 2019 18:56:03 +0000 (13:56 -0500)]
mjo/polynomial.py: add a (failing!) test for Example 4 in the text.
Michael Orlitzky [Wed, 20 Feb 2019 05:38:26 +0000 (00:38 -0500)]
mjo/polynomial.py: add two more examples from exercises in the text.
Michael Orlitzky [Mon, 18 Feb 2019 16:05:53 +0000 (11:05 -0500)]
mjo/polynomial.py: improve multidiv performance a bit.
We don't need to re-check earlier "denominators" after division has
occurred, even though we *do* need to re-check the current one. This
makes the algorithm closer in practice to the one given in the text.
Michael Orlitzky [Mon, 18 Feb 2019 16:01:14 +0000 (11:01 -0500)]
mjo/polynomial.py: improve tests for new multidiv function.
Michael Orlitzky [Mon, 18 Feb 2019 14:00:45 +0000 (09:00 -0500)]
mjo/orthogonal_polynomials.py: fix doctests.
Michael Orlitzky [Mon, 18 Feb 2019 13:51:57 +0000 (08:51 -0500)]
Add new mjo.polynomial module with the "multidiv" function.
This new module implements the generalized polynomial division
algorithm in Section 2.3 of Cox, Little, and O'Shea.
Michael Orlitzky [Thu, 20 Dec 2018 02:58:19 +0000 (21:58 -0500)]
Revert "... add completely_positive_operators_gens()."
This reverts commit
3d6ec3f4f138a6278be4f393b491aa1ac2bbffa8 . The new
function was mathematically wrong, and can't be fixed. Oops.
Michael Orlitzky [Thu, 20 Dec 2018 01:13:34 +0000 (20:13 -0500)]
mjo/cone/completely_positive.py: add completely_positive_operators_gens().
Add a new function to return (as matrices) the generators of the
completely-positive cone of K, where K is some other given cone.
Michael Orlitzky [Fri, 30 Nov 2018 20:17:16 +0000 (15:17 -0500)]
mjo/cone/symmetric_pd: add inverse_symmetric_pd() function.
Michael Orlitzky [Fri, 30 Nov 2018 16:28:14 +0000 (11:28 -0500)]
mjo/cone/symmetric_pd: new module for symmetric positive-definite matrices.
Michael Orlitzky [Fri, 30 Nov 2018 16:25:56 +0000 (11:25 -0500)]
mjo/cone/symmetric_psd: add missing set_random_seed() calls.
Michael Orlitzky [Fri, 30 Nov 2018 16:19:56 +0000 (11:19 -0500)]
mjo/cone/symmetric_psd: don't use recusion; work on trivial matrices.
Michael Orlitzky [Fri, 30 Nov 2018 16:01:29 +0000 (11:01 -0500)]
mjo/cone: improve docstrings the the rearrangement and schur cones.
Michael Orlitzky [Fri, 30 Nov 2018 16:00:57 +0000 (11:00 -0500)]
mjo/cone: rename random_psd() to random_symmetric_psd().
Michael Orlitzky [Mon, 12 Nov 2018 06:09:50 +0000 (01:09 -0500)]
cone/trivial_cone.py: add the trivial_cone() function.
Michael Orlitzky [Mon, 12 Nov 2018 03:22:06 +0000 (22:22 -0500)]
cone/rearrangement.py: simplify the implementation.
Use matrix tricks instead of a local function to construct the
generators.
Michael Orlitzky [Mon, 12 Nov 2018 03:13:14 +0000 (22:13 -0500)]
cone/rearrangement.py: add a "lattice" argument.
Michael Orlitzky [Mon, 12 Nov 2018 03:11:53 +0000 (22:11 -0500)]
cone/rearrangement.py: fix the test for propriety.
We had a test for the rearrangement cone being proper, but it
incorrectly tested the p=0 case. Now that we're sanity-checking p,
that test was throwing a ValueError. Fix it to use p >= 1.
Michael Orlitzky [Mon, 12 Nov 2018 02:59:29 +0000 (21:59 -0500)]
cone/rearrangement.py: add a few more tests.
Add a few more tests to the rearrangement_cone() function. In
particular, delete the has_rearrangement_property() function since it
only served to test the rearrangement cone. The property tests were
moved into the cone doctests.
The cone constructor now also checks that "p" is within bounds, and
throws a ValueError if not. There are tests for this too.
Michael Orlitzky [Mon, 12 Nov 2018 02:55:57 +0000 (21:55 -0500)]
cone/rearrangement.py: add some preliminary references.
Michael Orlitzky [Mon, 12 Nov 2018 00:09:25 +0000 (19:09 -0500)]
cone/schur.py: add "lattice" argument.
Michael Orlitzky [Mon, 12 Nov 2018 00:09:10 +0000 (19:09 -0500)]
cone/nonnegative_orthant.py: add a word to the docs.
Michael Orlitzky [Sun, 11 Nov 2018 22:54:10 +0000 (17:54 -0500)]
cone/nonnegative_orthant.py: add "lattice" argument.
Michael Orlitzky [Sat, 10 Nov 2018 01:39:08 +0000 (20:39 -0500)]
cone/schur.py: add a test for the dual of the Schur cone.
Michael Orlitzky [Sun, 4 Nov 2018 06:42:23 +0000 (01:42 -0500)]
cone/symmetric_psd.py: use two more generator expressions.
Michael Orlitzky [Sun, 4 Nov 2018 06:36:39 +0000 (01:36 -0500)]
cone/symmetric_psd.py: use a generator expression in unit_eigenvectors().
Michael Orlitzky [Sun, 4 Nov 2018 06:16:27 +0000 (01:16 -0500)]
cone/cone.py: use generator expressions instead of lists.
Michael Orlitzky [Sun, 4 Nov 2018 06:15:07 +0000 (01:15 -0500)]
orthogonal_polynomials.py: use generator expressions where applicable.
Michael Orlitzky [Sun, 4 Nov 2018 06:13:16 +0000 (01:13 -0500)]
orthogonal_polynomials.py: use xrange everywhere.
Michael Orlitzky [Sun, 4 Nov 2018 06:12:22 +0000 (01:12 -0500)]
matrix_vector.py: use xrange everywhere.
Michael Orlitzky [Sun, 4 Nov 2018 06:08:20 +0000 (01:08 -0500)]
mjo/interpolation.py: partial conversion to generator expressions.
Michael Orlitzky [Sun, 4 Nov 2018 06:00:56 +0000 (01:00 -0500)]
mjo/interpolation.py: use xrange everywhere.
Michael Orlitzky [Sun, 4 Nov 2018 05:59:45 +0000 (01:59 -0400)]
cone/schur.py: use xrange in one place.
Michael Orlitzky [Sun, 4 Nov 2018 05:58:55 +0000 (01:58 -0400)]
cone/rearrangement.py: use xrange everywhere.
Michael Orlitzky [Sun, 4 Nov 2018 05:57:14 +0000 (01:57 -0400)]
cone/doubly_nonnegative.py: use xrange in two places.
Michael Orlitzky [Sun, 4 Nov 2018 05:56:57 +0000 (01:56 -0400)]
cone/doubly_nonnegative.py: use generator expressions in two places.
Michael Orlitzky [Sun, 4 Nov 2018 05:54:49 +0000 (01:54 -0400)]
cone/faces.py: use xrange in two places.
Michael Orlitzky [Sun, 4 Nov 2018 05:53:11 +0000 (01:53 -0400)]
cone/permutation_invariant.py: use xrange in two places.
Michael Orlitzky [Sun, 4 Nov 2018 05:43:46 +0000 (01:43 -0400)]
symbol_sequence.py: allow _flatten_list_ to work on an iterable.
Michael Orlitzky [Sun, 4 Nov 2018 05:26:19 +0000 (01:26 -0400)]
symbol_sequence.py: use xrange where applicable.
Michael Orlitzky [Sun, 4 Nov 2018 05:25:58 +0000 (01:25 -0400)]
symbol_sequence.py: use generator expressions where applicable.
Michael Orlitzky [Sun, 4 Nov 2018 05:24:08 +0000 (01:24 -0400)]
cone/rearrangement.py: use generator expressions where applicable.
Michael Orlitzky [Sun, 4 Nov 2018 04:53:32 +0000 (00:53 -0400)]
cone/permutation_invariant.py: add test for the nonnegative orthant.
Michael Orlitzky [Sun, 4 Nov 2018 04:42:23 +0000 (00:42 -0400)]
cone/permutation_invariant.py: use generator expressions where applicable.
Michael Orlitzky [Sun, 4 Nov 2018 04:36:07 +0000 (00:36 -0400)]
cone/schur.py: use generator expressions where applicable.
Michael Orlitzky [Sun, 4 Nov 2018 04:19:18 +0000 (00:19 -0400)]
cone/faces.py: use generator expressions where applicable.
Michael Orlitzky [Sat, 3 Nov 2018 03:59:02 +0000 (23:59 -0400)]
cone/schur.py: test that the schur cone induces the majorization ordering.
Michael Orlitzky [Fri, 2 Nov 2018 14:45:37 +0000 (10:45 -0400)]
cone/schur.py: clean up and add some tests.
Michael Orlitzky [Fri, 2 Nov 2018 14:00:44 +0000 (10:00 -0400)]
mjo/cone: add the nonnegative_orthant module.
Michael Orlitzky [Fri, 2 Nov 2018 04:45:48 +0000 (00:45 -0400)]
cone/faces.py: add the missing HilgertHofmannLawson reference that I cited.
Michael Orlitzky [Fri, 2 Nov 2018 04:43:24 +0000 (00:43 -0400)]
cone/faces.py: test that dual-face-of-dual-face is a no-op.
Michael Orlitzky [Fri, 2 Nov 2018 03:42:28 +0000 (23:42 -0400)]
cone/faces.py: test the relationship between dual_face and face_generated_by.
Michael Orlitzky [Fri, 2 Nov 2018 02:30:04 +0000 (22:30 -0400)]
cone/faces.py: add preliminary dual_face() operation.
Michael Orlitzky [Fri, 2 Nov 2018 00:41:49 +0000 (20:41 -0400)]
cone/faces.py: add test for Proposition 3.1 and Corollary 3.9 in Tam.
Michael Orlitzky [Fri, 2 Nov 2018 00:19:43 +0000 (20:19 -0400)]
cone/faces.py: test a lattice join property of face_generated_by().
Michael Orlitzky [Fri, 2 Nov 2018 00:19:01 +0000 (20:19 -0400)]
cone/faces.py: add a relative interior test for face_generated_by().
Michael Orlitzky [Fri, 2 Nov 2018 00:18:12 +0000 (20:18 -0400)]
cone/faces.py: remove a misleading comment.
Michael Orlitzky [Fri, 2 Nov 2018 00:17:54 +0000 (20:17 -0400)]
cone/faces.py: update the wording of two tests.
Michael Orlitzky [Thu, 1 Nov 2018 23:53:43 +0000 (19:53 -0400)]
README: update comments on the test suite.
Michael Orlitzky [Thu, 1 Nov 2018 20:16:35 +0000 (16:16 -0400)]
Kill unnecessary sitedir mangling.
At some point in the past, mangling the sitedir made the test suite
work. Now it doesn't, and we have to do something else. So clean up
the sitedir stuff.
Michael Orlitzky [Thu, 1 Nov 2018 20:10:46 +0000 (16:10 -0400)]
Add the new mjo.cone.faces module with the face_generated_by() function.
Michael Orlitzky [Thu, 1 Nov 2018 20:07:01 +0000 (16:07 -0400)]
makefile: add a "make check" target to run the tests properly.
We need to utter magic words to get the test suite to work, so I've
encoded them in a "make check" target for future reference.
Michael Orlitzky [Thu, 1 Nov 2018 19:53:07 +0000 (15:53 -0400)]
mjo/cone/symmetric_psd.py: fix tests with PYTHONPATH="."
Michael Orlitzky [Thu, 1 Nov 2018 19:48:46 +0000 (15:48 -0400)]
mjo/cone/rearrangement.py: fix tests with PYTHONPATH="."
Michael Orlitzky [Thu, 1 Nov 2018 19:45:24 +0000 (15:45 -0400)]
mjo/cone/permutation_invariant.py: fix tests with PYTHONPATH="."
Michael Orlitzky [Thu, 1 Nov 2018 19:43:28 +0000 (15:43 -0400)]
mjo/cone/doubly_nonnegative.py: fix tests with PYTHONPATH="."
Michael Orlitzky [Thu, 1 Nov 2018 19:32:44 +0000 (15:32 -0400)]
mjo/cone/completely_positive.py: fix tests to work with PYTHONPATH="."
Michael Orlitzky [Thu, 1 Nov 2018 19:29:48 +0000 (15:29 -0400)]
mjo/symbol_sequence.py: fix tests to work with PYTHONPATH="."
Michael Orlitzky [Thu, 1 Nov 2018 19:25:31 +0000 (15:25 -0400)]
mjo/orthogonal_polynomials.py: fix tests to work with PYTHONPATH="."
Michael Orlitzky [Thu, 1 Nov 2018 19:21:16 +0000 (15:21 -0400)]
mjo/matrix_vector.py: make tests work with PYTHONPATH="."
Michael Orlitzky [Thu, 1 Nov 2018 19:10:20 +0000 (15:10 -0400)]
mjo/interpolation.py: allow tests to run with PYTHONPATH=".".