Coding sprint projects for Sage Days 53.

• Try out Sage-Git (everybody).
• Toric fibrations (Jan, Andrey)
• Trac #14880 : p-adic gamma function [DONE]

• Linear algebra mod n -- pari does this. Write a wrapper? (Kiran) Trac #15238

• Kloosterman's paper on deformations of diagonal hypersurfaces -- what are strong, weak equivalence? (Kiran, Adriana, Ursula)
• Create a python object that enumerates the set of points on a toric variety over a finite field (Ursula has code to do this) (David) (useful for checking if these points are on a hypersurface or a complete intersection). See Trac #15224 (needs_review)

• Hypersurfaces - check smoothness, nondegeneracy (where does this fail in families?) (Kiran, Adriana, Ursula, Wouter, Volker) Trac #15239 (needs_review)

• Toric elliptic curves (first, see what's done in Trac #13084 to figure out what is left to do)

• Porting Wouter's Magma code for lattice width, other methods (Wouter, Jen) Trac #15235

• Zeta functions of hyperelliptic curves -- point-counting method in Sage to call David's code, see Trac #15148 (Jan, JP) (needs_review)

• Make quiver algebras and quiver representations work again (Simon)
• See Trac #12630. The ticket was providing quivers with composition of paths, quiver algebras and the like, but the patch recently broke because of a change in the expected arguments of DiGraph.__init__ in Trac #14806.

• Fix memleak related with quadratic number fields (Jean-Pierre, Simon)
• See Trac #14711. Quadratic number fields come with an embedding into the complex field. The embedding is stored by strong reference in an attribute of the codomain of the embedding. If the codomain is "immortal" (which is the case for the complex field), then the domain of the embedding becomes immortal, too. Hence, currently, quadratic number fields will stay in memory forever.

• Let the TestSuite test that the construction of a parent returns the parent (Simon, Andrey)

• See Trac #15223. In a previous version of toric lattice code written by Andrey, the toric lattices inherited the .construction() method from general lattices. Consequence: One could add two elements of different toric lattices so that the result lives in ZZ^2, which is not what Andrey wanted. Underlying problem: When Sage's coercion model applies the pushout() construction to the two toric lattices, it would create ZZ^2, because this is what the construction functors do. Suggestion: There should be a test that if P.construction() does not return None but a pair F,O, then F(O)==P must hold.

The new test pointed to several problems. One of them is about the way finite rings in Sage are using the category framework. An old discussion on sage-devel provides potential solutions, but, as it turns out, the ideas presented in the discussion are still not all implemented. We want to implement them now.

A patch is in preparation, but some work needs to be done in the dependencies of this ticket: Trac #15229 aims at using the category framework for integer mod rings more consistently. In particular, there should be a unique quotient ring for any order of integer mod ring, and if Sage finds or the user states that the ring is in fact a field, the instance will be updated. Needs review.

• Undo the category initialisation of a parent Trac #15234 (Simon)

• Undoing the category initialisation is of course nothing that should be done under normal circumstances, but it may be helpful in debugging. Needs review.

• Implement method to go from q-adics to residue fields and conversly. (JP, David?, Martin?, François?)
• Try out p-adic implemention using templates, potentially fix it, extend it! (JP)