trac #16655: resolvable OA/TD
Minor change in change_ring function for scheme morphisms.

Changed for loop to list comprehension structure for compactness. The loop iterates over the defining polynomials of the morphism. Instead of trying to compute the length of the list, the upper bound was just replaced with the list length function. This addresses the issue of the upper bound not being appropriate for affine morphisms.
Minor changes in morphism.py to import list and change_ring for scheme polynomial morphisms

Added import of End from Homset in import list.
Added a conditional statement in the change ring function for scheme polynomial morphisms to allow the
domain and codomain to be different (the previous code assumed the morphism was an endomorphism).
Modified examples checking that ticket 16834 has been addressed.
Minor change in change ring function for polynomial scheme morphisms

Changed the conditional statement checking whether the map is an endomorphism to use is_endomorphism()
rather than comparing the domain and codomain manually. This is a more explicit check.
trac #16722: OA(17,560)
trac #16757: Organize the V(m,t) vectors into a dictionary
trac #16655: Merged with 6.4.beta1
trac #16722: A note about GLPK's "performances", new arguments to change the solver and the verbosity level
trac #16757: doctest simplication
trac #16655: review

- better trivial False
- the output was wrong
- `self._classes` is now a list of lists of blocks
- more doc
Minor changes to change ring function for polynomial scheme morphisms

Changed the output description of the change ring function.
Removed uneeded whitespace there.
removed extra whitespace
Trac #16655: Resolvable TD/OA and IncidenceStructure.relabel()

A resolvable `OA(k,n)` is a `OA(k,n+1)`, and the same holds for TD of
course. This patch adds a "resolvable" boolean to the two constructors
to get resolvable designs.

For OA, the classes are provided by sorting the blocks appropriately.

For TD, which are now `IncidenceStructure`, the same is not possible as
incidence structure sort their blocks. Thuuuuuus I was forced to create
a (useful) `is_resolvable` function (expect it to be slow on non-
ridiculously-small input) which returns the classes.

This is what turned this a priori straightforward patch into ... my
whole morning `:-P`

Nathann

Nathann

URL: http://trac.sagemath.org/16655
Reported by: ncohen
Ticket author(s): Nathann Cohen
Reviewer(s): Vincent Delecroix
Trac #16655: Resolvable TD/OA and IncidenceStructure.relabel()

A resolvable `OA(k,n)` is a `OA(k,n+1)`, and the same holds for TD of
course. This patch adds a "resolvable" boolean to the two constructors
to get resolvable designs.

For OA, the classes are provided by sorting the blocks appropriately.

For TD, which are now `IncidenceStructure`, the same is not possible as
incidence structure sort their blocks. Thuuuuuus I was forced to create
a (useful) `is_resolvable` function (expect it to be slow on non-
ridiculously-small input) which returns the classes.

This is what turned this a priori straightforward patch into ... my
whole morning `:-P`

Nathann

Nathann

URL: http://trac.sagemath.org/16655
Reported by: ncohen
Ticket author(s): Nathann Cohen
Reviewer(s): Vincent Delecroix
Trac #16722: OA(17,560)

A new OA(17,560) from the same paper as #16662. It is the last one.

URL: http://trac.sagemath.org/16722
Reported by: ncohen
Ticket author(s): Nathann Cohen
Reviewer(s): Vincent Delecroix
Trac #16757: Organize the V(m,t) vectors into a dictionary

There are many Vmt vectors coming, and while the data of a Vmt is only
<20 integers, adding one in Sage takes a total of 40 lines of code,
because of the doc and everything (aways copy/pasted).

With this patch, all the V(m,t) vectors are now contained in a
dictionary, and adding one takes 3 lines (one for the integers, one for
the bibliographical reference, and one for the index at the top of the
file).

Nathann

URL: http://trac.sagemath.org/16757
Reported by: ncohen
Ticket author(s): Nathann Cohen
Reviewer(s): Vincent Delecroix
Trac #16834: Change ring fails for affine morphisms.

When calling the change ring function on affine morphisms an index out
of bounds error occurs:

{{{

 sage: A.<x,y,z> = AffineSpace(RR,3)
 sage: h = Hom(A,A)
 sage: f = h([x^2+1.5,y^3,z^5-2.0])
 sage: f.change_ring(CC)

}}}

URL: http://trac.sagemath.org/16834
Reported by: gjorgenson
Ticket author(s): Grayson Jorgenson
Reviewer(s): Ben Hutz