Remove nonsensical lower bound test
trac #17376: Cleanup subgraphsearch to avoid crashes
trac #17384: Slowness when calling Graph(a_dictionary)
Adding additional reference to developers guide
Trac #17350: Singular value nonsensical doctests fail on 32-bit

Why do we test a lower bound for the fourth and fifth singular value?
Predictably breaks on some platforms.
{{{
            sage: A = matrix(CDF, [[46*I - 28, -47*I - 50, 21*I + 51,
-62*I - 782, 13*I + 22],
            ....:                  [35*I - 20, -32*I - 46, 18*I + 43,
-57*I - 670, 7*I + 3],
            ....:                  [22*I - 13, -23*I - 23, 9*I + 24,
-26*I - 347, 7*I + 13],
            ....:                  [-44*I + 23, 41*I + 57, -19*I - 54,
60*I + 757, -11*I - 9],
            ....:                  [30*I - 18, -30*I - 34, 14*I + 34,
-42*I - 522, 8*I + 12]])
            sage: sv = A.singular_values()
            sage: sv[0:3]  # tol 1e-14
            [1440.7336659952966, 18.404403413369227, 6.839707797136151]
            sage: (10^-15 < sv[3] < 10^-13) or sv[3]
            True
            sage: (10^-16 < sv[4] < 10^-14) or sv[4]
            True
}}}

URL: http://trac.sagemath.org/17350
Reported by: vbraun
Ticket author(s): Volker Braun
Reviewer(s): Jeroen Demeyer
Trac #17376: Cleanup subgraphsearch to avoid crashes

The !SubgraphSearch code crashes from time to time when you Ctrl+C it
during its memory allocation instructions.

This patch cleans the code a bit so that all allocations happen in one
place, before the actual code is run. And so `__dealloc__` only frees
the memory that has been allocated, even if the code was interrupted.

Basically, we avoid crashed only with simple code cleaning.

1) In order to produce the crash, run this and CTRL+C it immediately:

{{{
graphs.CompleteMultipartiteGraph([20,20,20,20]).subgraph_search(graphs.C
ompleteGraph(5))
}}}

Do it several times in a row if necessary.

2) The code could use a rewrite with bitsets. It would be faster and
lighter in memory, but there is already a pretty similar code in
`needs_review` at #17309 and I fear that it may take time before it is
reviewed. So I will wait for this before reimplementing !SubgraphSearch.

URL: http://trac.sagemath.org/17376
Reported by: ncohen
Ticket author(s): Nathann Cohen
Reviewer(s): David Coudert
Trac #17383: Git download instructions.

There was no mention of git in the installation guide.

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

URL: http://trac.sagemath.org/17383
Reported by: github/robertwb
Ticket author(s): Robert Bradshaw
Reviewer(s): Volker Braun, Andrew Mathas
Trac #17384: Slowness when calling Graph(a_dictionary)

It has been reported by Jean Betrema on sage-devel [1] that building a
graph from a dictionary was actually quite slow

{{{
sage: d=graphs.Grid2dGraph(100,100).to_dictionary()
sage: %time Graph(d)
CPU times: user 2.67 s, sys: 20 ms, total: 2.69 s
Wall time: 2.63 s
Graph on 10000 vertices
}}}

This does not make any sense, and indeed it only comes from a miswritten
line in the code. After this branch is applied, it becomes

{{{
sage: d=graphs.Grid2dGraph(100,100).to_dictionary()
sage: %time Graph(d)
CPU times: user 104 ms, sys: 4 ms, total: 108 ms
Wall time: 97.2 ms
Graph on 10000 vertices
}}}

Nathann

[1] https://groups.google.com/d/msg/sage-devel/x3h4m3LjWkI/1HY80TsjxCoJ

URL: http://trac.sagemath.org/17384
Reported by: ncohen
Ticket author(s): Nathann Cohen
Reviewer(s): Vincent Delecroix