__color__	__group__	ticket	lastmod	summary	component	type	owner	status	_changetime	_description	_reporter
3	 Release	13376	73 days	Optional SPKG for SmallJac	packages: optional	enhancement	tbd	needs_work	2013-03-10T15:01:12-07:00	"Smalljac is a library and set of programs for computing L-polynomials and Jacobian group structures of low genus curves over finite fields. Given a curve C of genus 1 or 2 defined over Q or a quadratic number field, it will efficiently compute either the sequence of L-polynomials or Jacobian group structures arising from the reduction of C at all primes of good reduction up to a specified norm bound.

This set of SPKGs and the corresponding patch to Sage 5.6 add support for using smallJac from Sage.

 * `EllipticCurve.aplist` can be run with `algorithm=""smalljac""`, yielding run times of six times faster on a single core.

 * `EllipticCurve.aplists` provides more usable representation the above, and supports number fields (multiple reductions per prime norm).  See the documentation for more, but in general `aplist` couldn't be made very easy to use for the number field case.

 * `EllipticCurve.grouplists` gives the abelian groups isomorphic to various reductions of a curve.

 * `EllipticCurve.lpolylists` yields the L-Polynomials of reductions of a curve.

 * `EllipticCurve.guess_sato_tate_group` attempts to guess the Sato-Tate group of the Jacobian of a curve of genus 1 or 2 based on the distribution of its L-polynomial coefficients.

 * `EllipticCurve.moments` yields the moments of the distribution of coefficients of the L-Polynomials.

 * `EllipticCurve.trace_histogram` gives a very simple histogram for the distribution of traces of Frobenius of a curve, reduced at a range of primes.

For all of the above methods (except `aplist`), identical functionality exists (with the same name) for genus 2 curves.  All of the above methods also parallelize over multiple cores (currently, to a power of two cores).  For large problems, this achieves approximately linear speedup; for example, computing the first billion traces of Frobenius of an ordinary elliptic curve is 178 times faster on 32 cores.

For each of these features, there is Sage documentation docstring-style documentation.

The SPKGs only compile and work on 64-bit machines, since SmallJac only supports 64-bit architectures, and require GMP.  Two SPKGs are provided, since SmallJac depends on ff_poly, but so does some of Drew Sutherland's other code, so it makes sense to split the two.  They've been tested to work on a completely clean install of Sage on at least two differently-configured machines.

The patch has been tested to apply cleanly to 5.6.

SPKGs are available at [http://www.mit.edu/~pavpan/].  Install first the ff_poly package and then the smalljac package, with the normal Sage package installation mechanisms.  Then apply the patch to a fresh branch of the source code and recompile that branch."	pavpanchekha
3	 Release	10973	245 days	Integral points on elliptic curves over number fields	elliptic curves	enhancement	cremona	needs_work	2012-09-20T05:11:26-07:00	"Incorporate work done by Rado Kirov and Jackie Anderson at Sage Days 22, based on Magma implementation by Cremona's student Nook.

See also #12095 (now tagged as duplicate).

Apply only Trac10973.7.patch
"	justin
3	 Release	10750	302 days	Fix solve so that additional args are properly handled	symbolics	defect	burcin	needs_work	2012-07-24T11:22:26-07:00	"In [http://ask.sagemath.org/question/365/solve-confusion this] ask.sagemath question, there is some inconsistency in our use of Maxima's solve, or possibly its solving.
{{{
s=list(var('s_%d' % i) for i in range(3));
var('x y z');
print solve([],s_0,s_1,s_2)
print solve([z==z],s_0,s_1,s_2)
print solve([z==z,y==y],s_0,s_1,s_2)
print solve([z==z,y==y,x==x],s_0,s_1,s_2)
print solve([s_0==0],s_0,s_1,s_2);
print solve([s_0==0,s_1==s_1],s_0,s_1,s_2)
}}}
{{{
[[s_0 == c1, s_1 == c2, s_2 == c3]]
({s_0: r1}, [])
[[s_0 == r6, s_1 == r5, s_2 == r4]]
[[s_0 == r9, s_1 == r8, s_2 == r7]]
([s_0 == 0], [1])
[[s_0 == 0, s_1 == r11, s_2 == r10]]
}}}

Most of these do make sense, but you'll notice the change from complex to real variables, one place that seems to have a multiplicity, and the one with only a dictionary as output!

See also [http://groups.google.com/group/sage-devel/browse_thread/thread/daf0a5da1da38410 this sage-devel thread] for another example of where this cropped up.  We need to change the behavior of solve and the documentation to fix this."	kcrisman
3	 Release	7890	342 days	[with patch, needs work] Improve conversion of GAP objects into sage objects.	interfaces	defect	was	needs_work	2012-06-15T00:10:36-07:00	"As of now, certain kinds of sage objects can be converted into GAP objects, but the resulting GAP objects cannot be converted back to sage objects.

Examples of this are matrices over finite fields:

{{{
sage: g = matrix(GF(5),2,[1,2, -1, 1])
sage: gg = g._gap_()
sage: gg.sage()
---------------------------------------------------------------------------
NotImplementedError
}}}

{{{
sage: a = gap('E(9)')
sage: a
-E(9)^4-E(9)^7
sage: a.sage()
---------------------------------------------------------------------------
NotImplementedError  
}}}

Being able to translate gap field elements into sage ones would help accesing GAP character tables, and a good conversion of matrices would allow many methods to be available for matrix groups.

See this thread at sage devel for more details:
http://groups.google.com/group/sage-devel/browse_thread/thread/a04006e5da578bd"	jlopez
3	 Release	1608	344 days	Make optional spkg for MathJax png fonts	notebook	enhancement	boothby	needs_work	2012-06-12T14:26:35-07:00	Some older browsers might need extra fonts.  Make them available as an optional spkg.  See discussion below for details.  This depends on #11080 and #9774.	was
3	 Release	10895	497 days	add qitensor spkg (tensors for quantum information)	packages: optional	enhancement	tbd	needs_work	2012-01-11T12:56:56-08:00	"I've worked up a python module and an associated spkg that basically wraps numpy in a way that makes it useful for doing finite-dimensional quantum mechanics over several particles.  In particular, this should be useful for quantum information.  The features that are currently available more or less reflect what I have needed in order to do the things that I am currently working on.  More information is available on the project's web page, linked below.

The module is available from:
[http://www.stahlke.org/dan/qitensor/]

This package works in python and in Sage.  In Sage it is possible to create arrays (or tensors if you wish to call it that) over SR (or in fact any commutative ring).

The git repo contains both the python and the spkg sources and is the ""main"" source.  The tarballs and spkg are built from that.
"	dstahlke
3	 Release	7344	555 days	New libjpeg package	packages: standard	enhancement	mabshoff	needs_work	2011-11-14T08:34:36-08:00	"This is used by PIL (c.f. #7273). Inclusion as an optional or even as a standard package would be helpful.

The latest version of the package is here: http://sage.math.washington.edu/home/timdumol/libjpeg_turbo-1.1.1.spkg"	timdumol
3	 Release	6756	792 days	Implement ``diff`` format symbolic derivative in new symbolics	symbolics	enhancement		needs_work	2011-03-22T08:20:01-07:00	"Implement a diff format symbolic derivative in new symbolics as the second form of abstract derivative to be avialable in Sage. See this long thread

http://groups.google.com/group/sage-devel/browse_thread/thread/ff10f99729a74eea/73308bf626ae06b3

for rationale behind it.

'''Implementation:'''

Instructions for installing these patches (sage-4.1.1)

'''(1) Pynac patch'''   
 (a) Get the pynac spkg

 http://sage.math.washington.edu/home/burcin/pynac/pynac-0.1.8.p2.spkg

 (b) Apply the pynac patch implementing diff derivative from

 http://www.math.unb.ca/~ghossain/diff-derivative-pynac.patch

 (c) install the patched spkg in Sage.

 '''OR''' if you are feeling lazy, you can directly install my patched copy of pynac from here

 http://www.math.unb.ca/~ghossain/pynac-0.1.8.p2-with-diff.spkg



'''(2) Sage patch:'''

 Apply the attached patch in Sage and build the changes (""sage -b"").
 If everything goes smoothly then you are ready for testing.

'''Testing:'''

Above, patches will provide two new user accessible functions
 (a) ``set_diff_derivative_level``

 (b) ``symbolic_diff``

Please see the docs for usage of these functions:

It would be good to thoroughly test the following features:

 (1) Substitution of the function

 (2) Derivative with or without chain rule

 (3) Explicit evaluation of derivative even for some situation where chain rule has been applied and derivative is specified w.r.t. an expression

 (4) Symbolic n-th derivative

 (5) Typesetting 

Please test diff implementation against some related bugs

#6376, #6523, #6480

as new diff implementation should avoid these.


'''Speed Test:'''

{{{
sage: f(x) = function('f',x);
sage: f(x).diff(x)
D[0](f)(x)
sage: timeit('f(x).diff(x)')
625 loops, best of 3: 124 µs per loop
sage: timeit('f(x).diff(x,100)')
125 loops, best of 3: 5.58 ms per loop

sage: set_diff_derivative_level(1)
sage: f(x).diff(x)
diff(f(x), x, 1)
sage: timeit('f(x).diff(x)')
625 loops, best of 3: 116 µs per loop
sage: timeit('f(x).diff(x,100)')
625 loops, best of 3: 1.01 ms per loop

sage: set_diff_derivative_level(2)
sage: f(x).diff(x)
diff(f(x), x, 1)
sage: timeit('f(x).diff(x)')
625 loops, best of 3: 130 µs per loop
sage: timeit('f(x).diff(x,100)')
125 loops, best of 3: 1.85 ms per loop
}}}


'''*''' This patch removes old ""dummy_diff"" from 
""calculus/calculus"" as we now have a _real_ diff.

"	gmhossain
3	 Release	7983	919 days	Notion of descent/major index in tableau.py is not mathematically standard	combinatorics	defect	sage-combinat	needs_work	2010-11-16T06:34:17-08:00	The 'descents' and 'major_index' methods of a Tableau return what are more properly known as 'i_descents' and the 'i_maj' statistic.  These should be renamed accordingly, and the proper statistics put in their place.  See, eg., Richard Stanley--Enumerative Combinatorics, Vol. 2 for a reference to the usual definition.	jbandlow
3	 Release	10029	967 days	make cookies more secure	notebook	defect	jason, was	needs_work	2010-09-28T18:22:06-07:00	Tim Dumol introduced some changes in #9822 that are designed to make cookies more secure and work better.  The patch is attached.	jason
3	 Release	7422	1102 days	New Incidence Structure and Block Design constructions	combinatorics	enhancement		needs_work	2010-05-16T09:55:37-07:00	"I have added two references; fixed the points() method to return points in lexicographic order so __eq__ works properly; made is_simple() its own standalone method and call it from block_design_checker and added the following constructions: Derived at a Point, Residual at a Point, Derived at a Block, Residual at a Block, Complementary, Supplementary, Point Deletion and Extraction of Blocks by size.

Some relevant discussion is here:

http://groups.google.com/group/sage-devel/browse_thread/thread/305158ab5d3181bc

Reviewers:

- Please think about my first item on the TODO list; is that a better way to proceed with derived_blck and residual_blck?

-I do not know whether this is ""Minor"" or ""Major"" (I am pretty sure it is not the others) so I have put ""Major"".  Please tell me if I was wrong.

- I have no idea what to put in Milestone so I have left it blank."	brett
3	 Release	7642	1109 days	Add an implementation of LCA to sage.combinat.words.suffix_trees	combinatorics	enhancement		needs_work	2010-05-09T09:48:40-07:00	"I have implemented the linear time preprocessing, constant-time queries algorithm for the lowest common ancestor (LCA) in the context of the suffix trees for words.

The only thing I'm not very sure about is where to place the bit manipulation functions."	abergeron
3	 Release	8878	1114 days	Use Dijkstra to discover shortest coercion path	coercion	defect	robertwb	needs_work	2010-05-04T16:39:22-07:00	"In #7420, it was discussed that the current coercion model is using depth first search to find for coercion paths between different parents, and that it would be better to use breath-first / Dijkstra to get a shortest coercion path. For example, we obtained once a coercion path of length 20 among symmetric functions.

Patch under development on the Sage-Combinat server: http://combinat.sagemath.org/hgwebdir.cgi/patches/file/tip/trac_8878_coerce_dijkstra-nt.patch



Note: the following issue is probably related:
{{{
A = CombinatorialFreeModule(QQ, ZZ, prefix = ""A"")
B = CombinatorialFreeModule(QQ, ZZ, prefix = ""B"")
C = CombinatorialFreeModule(QQ, ZZ, prefix = ""C"")
D = CombinatorialFreeModule(QQ, ZZ, prefix = ""D"")

def make_morph(X, Y):
    X.module_morphism(Y.monomial).register_as_coercion()

make_morph(A,B)
make_morph(B,A)

make_morph(C,A)

make_morph(D,C)

d = D.monomial(1)

A(d)
B(d)
}}}"	nthiery
3	 Release	7920	1226 days	Common numerical matrix base class	linear algebra	task	was	needs_work	2010-01-13T06:29:35-08:00	"Currently, Matrix_double_dense inherits from Matrix_dense and Matrix_double_sparse from Matrix_sparse. However numerical matrices share a lot compared to other matrices and should probably have a common base class:

 - Docstrings of numerical decompositions should likely be shared
 - {{{solve_right}}} implementation should be shared
 - Even if one matrix uses SuiteSparse and another LAPACK for making decompositions, the code for using those decompositions to find solutions, and iteratively improve the solutions, can be shared
 - In general, a place to put docstrings and examples with terminology more familiar to numerical users

Luckily, Matrix_dense/sparse offers little in terms of implementation for numerical matrices (the exception is the hash value -- which is useless for numerical matrices anyway, but should be implemented).

In the future, there might be diagonal, Hermitian, triangular, banded etc. matrices, and then it makes even more sense to change the hierarchy, so that sparse/dense isn't a superclass.

So, this ticket should result in:
 - Introduce Matrix_numerical
 - Change the base class of Matrix_double_dense and Matrix_double_sparse to Matrix_numerical
 - A {{{Matrix_numerical.solve_right}}} centered around matrix decompositions

Incidentally, this is likely to result in:
 - A proper pickle implementation for dense double matrices (just pickle the NumPy array; and read back the dtype on unpickle)
 - Loosing the Matrix_real_double_dense and Matrix_complex_double_dense subclasses -- these serve no real purpose at all, and prevents introducing e.g. efficient dense lower-triangular matrices and so on. (Remember to keep stubs aliased to Matrix_double_dense for unpickling backward compatability)"	dagss
3	 Release	6830	1259 days	[with patch, needs review] Ideals of a Hecke Algebra	modular forms	enhancement	craigcitro	needs_work	2009-12-10T13:40:36-08:00	Added code for ideals of a Hecke algebra. This patch depends on the basis of a Hecke algebra code from ticket #6768 (so ignore stuff about Hecke bases).	wakep
4	 Release	11201	161 days	Point users of solve() to the to_poly_solve option	documentation	enhancement	was	needs_work	2012-12-13T05:54:40-08:00	"Many users of of the solve() function complain that Sage can't solve some simple equations, when in fact it can if the `to_poly_solve=True` option is passed. See, for example:

[http://ask.sagemath.org/question/506/solving-complex-equation]

{{{
sage: z = var('z')
sage: solve(sin(z) + cos(z) == 2, z)
[sin(z) == -cos(z) + 2]
}}}

I propose that when Maxima returns an implicit solution, solve() should display an informative message to the user about the existence of the `to_poly_solve` parameter.
"	benjaminfjones
4	 Release	10184	237 days	class group iterator is too slow	number fields	enhancement	davidloeffler	needs_work	2012-09-27T11:05:07-07:00	"the class group iterator takes evey element in turn, and computes the product of the g^i's. Sure powers are computed by repeated squaring, but for iterators this is suboptimal.

On my laptop, from this situation...

{{{

sage: K.<v>=NumberField(x^4 + 514*x^2 + 64321)
sage: OK=K.maximal_order()
sage: G=K.class_group()                        
sage: time _=G.list()
CPU times: user 2.48 s, sys: 0.05 s, total: 2.53 s
Wall time: 2.53 s

}}}

the attached patch improves to...

{{{

sage: K.<v>=NumberField(x^4 + 514*x^2 + 64321)
sage: OK=K.maximal_order()
sage: G=K.class_group()                        
sage: time _=G.list()
CPU times: user 0.45 s, sys: 0.00 s, total: 0.45 s
Wall time: 0.44 s

}}}

which is a tad better.

doctest included (actually the previous doctest wasn't doing much, this one is slightly more thorough).

Note: while the code would work for any abelian group, I believe it makes sense only when the group operation is sufficiently non-trivial."	thome
4	 Release	9778	359 days	Addition of LaTeX and better support of SI prefixes on units module	symbolics	enhancement	burcin	needs_work	2012-05-28T08:51:57-07:00	"Since maybe the developers are reluctant to implement the ""metrology"" module I submitted in #9763, when there's already a ""units"" module that has the same purpose, I'm trying to port the `LaTeX` capabilities to the already existing ""units"" module.

TO DO: Complete the latexdict list of units and `LaTeX` representation (if a unit isn't there, its symbol will be replaced by its name)

Also, I'm implementing an easier way to use `SI` prefixes on the units module. The patch I submitted in #9759 wasn't very intuitive (you had to type ""units.length.meter.kilo""), partly because I didn't know very well how did that module work. This new version allows you to simply type ""units.length.kilometer"" (even if it's not tab-completed) and it will do the rest."	cousteau
4	 Release	9320	496 days	Implement root numbers for elliptic curves over number fields	elliptic curves	enhancement	cremona	needs_work	2012-01-13T06:16:37-08:00	"Root numbers for elliptic curves are currently only implemented via Pari (pari(E).ellrootno()) and only over the rational numbers.

We (Tim Dokchitser's group at Sage Days 22) intend to add the possibility to compute local and global root numbers for elliptic curves over number fields.  A first patch may not fully implement the case of additive reduction over primes dividing 2 or 3.

Update: Attached is a first implementation which allows for instance:

{{{
sage: K.<a>=NumberField(x^4+2)
sage: E = EllipticCurve(K, [1, a, 0, 1+a, 0])
sage: E.root_number()
1
sage: E.root_number(K.ideal(a+1))
1
}}}

Note that the implementation needs the patches #9334 (Hilbert symbol) and #9684 (""dirty model"") to be applied.

To prevent incorrect results in some cases as well as crashes, the tickets #9389 and #9417 need to be addressed."	arminstraub
4	 Release	9411	497 days	Given points on an elliptic curve, this finds a LLL reduced ZZ-independent set	elliptic curves	enhancement	cremona	needs_work	2012-01-11T07:21:40-08:00	"This is based on magma code from Cremona.  It takes a set of points on an elliptic curve and uses LLL to return a ZZ-independent set with the same ZZ-span.

Apply only:   trac_9411_lll_reduce_number_field.2.patch"	aly.deines
4	 Release	10180	609 days	"Partial Spanish translation of ""A guided Tour"""	documentation	enhancement	was	needs_work	2011-09-22T05:25:03-07:00	"This ticket is part of 
#10165: Spanish translation of the tutorial

I open this ticket to inform everybody that I'm translating some sections of the tutorial:

A Guided Tour
 * Basic Rings
 * Linear Algebra
 * Polynomials
 * Finite Groups, Abelian Groups
 * Number Theory

Part of this is already done. I will upload a single patch with all five sections when it's done.

Rationale is: One ticket per section means too many tickets. These sections are all related in content (Basic Algebra), and the five of them can be read in reasonable time by a reviewer.

----

Apply

 1. [attachment:trac_10180_2_part_of_es_tutorial_rebased.patch]

to the sage repository."	pang
4	 Release	10598	635 days	interact library addition	interact	enhancement	itolkov, jason	needs_work	2011-08-26T19:57:31-07:00	Added one interact from the wiki to learn how.  I also changed the import structure a bit, to prevent lots of cruft from being imported under the interacts namespace.	mhampton
4	 Release	9729	709 days	Moving the discrete fourier interact from wiki into the library.	interact	enhancement	itolkov, jason	needs_work	2011-06-13T11:13:38-07:00	Moving the discrete Fourier interact from the wiki into the library. 	punchagan
4	 Release	9728	709 days	Moving the Linear transformations interact from wiki into the library.	interact	enhancement	itolkov, jason	needs_work	2011-06-13T11:13:29-07:00	This code moves the interact example for linear transformations from the wiki to the library. 	punchagan
4	 Release	9726	826 days	An educational RSA crpytosystem	cryptography	enhancement	mvngu	needs_work	2011-02-16T13:52:13-08:00	A stand alone function srsa.py to implement an educational version of the RSA cryptosystem.This is the first native version of the RSA in SAGE.	gauravluthra
4	 Release	9790	957 days	corrections and ideas for enhancements of the Sage tutorial	documentation	enhancement	mvngu	needs_work	2010-10-08T17:51:14-07:00	"Here are some some questions and comments regarding the Sage tutorial.

1. in tour_algebra.rst ""x_{i} is the displacement from equilibrium of mass i, "" should it be
of mass ""m_{i}"" ?

2. in tour_algebra.rst:  ""Several orthogonal polynomials and special functions are implemented, using both PARI [GAP]""
  the reference should be [GP]

3. In tour_plotting.rst: ""In both the notebook and the REPL, ...""
What is ""REPL""?

4. Also, it would be nice to include the actual plot in tour_plotting.rst

5.  In tour_numtheory.rst The sentence ""Much work has been done
implementing rings of integers in (...) p-adic fields or number fields
other than . "" is not complete"	phil
4	 Release	9730	1011 days	A simple RC4 cipher implementation for Sage	cryptography	enhancement	mvngu	needs_work	2010-08-16T01:22:58-07:00	"This is a standard RC4 implementation in the Cryptography directory for Sage. We do not consider advanced criteria to initialize the state bytearray, and hence this system may be prone to attacks (refer to relevant literature).

Though this is not fully secure (upto industry standard), this is a full-version implementation of the cipher, and can be used for educational purpose as well as for small-scale encryptions."	sg.sourav
4	 Release	6001	1078 days	[with patch, needs work] tear out docstrings in the notebook into a new window	notebook	enhancement	boothby	needs_work	2010-06-10T00:08:35-07:00	"As mentioned in [http://groups.google.com/group/sage-devel/msg/d021522accd00e81 this message], it might be useful to tear/pop/pull/rip out/off/up at least some notebook introspection window(s) into a separate window(s) [1].

This ticket, which builds on #5653 (see comments [comment:ticket:5653:19 19ff]), is currently a ~~disaster~~ test area for variations on this theme.

Related: #4714, #5644, #5447, #5653, #6307.

[1] Nevertheless, they're all fine docstrings."	mpatel
2	sage-5.10 Release	12447	65 days	update the file COPYING.txt	packages: standard	defect	tbd	needs_work	2013-03-18T18:43:45-07:00	"The file `COPYING.txt` in the top-level directory looks out-of-date to me: it is missing entries for a number of our spkgs (e.g. blas, boehm-gc, and boost-cropped, just for the first few in alphabetical order), and it has entries for some things we haven't distributed in years (like clisp and gnuplotpy). For the spkgs which still belong on the list, I also don't know how accurate the information is.

I'm attaching a small patch for the developer's guide about this, but the file COPYING.txt needs a lot of work."	jhpalmieri
2	sage-5.10 Release	12759	104 days	Maxima 5.26.0 fails to build with multiple words in LDFLAGS	packages: standard	defect	leif	needs_work	2013-02-08T06:15:49-08:00	"I already have an spkg working around this, as well as using `ecl -norc ...` as recommended by an ECL developer.

To reproduce the problem, just try something like
{{{
#!sh
$ env LDFLAGS=""-DFOO -DBAR"" ./sage -f spkg/standard/maxima-5.26.0.p0.spkg
}}}

----

'''New spkg:''' [http://boxen.math.washington.edu/home/leif/Sage/spkgs/maxima-5.26.0.p1.spkg]

'''md5sum:''' `e0dd8b63928fbef1ffa52420f1313c48  maxima-5.26.0.p1.spkg`

=== maxima-5.26.0.p1 (Leif Leonhardy, March 25th 2012) ===
 * #12759: Unset `LDFLAGS` if it contains multiple words.
   (ECL's still get used in that case, but don't break the build.)
 * Use `ecl -norc ...` throughout `spkg-install`, as recommended by Juanjo.
   We set the environment variable `ECL` to this, which *might* get used by
   Makefiles as well -- to be checked.
   (I.e., we might have to pass e.g. `ECL=""$ECL""` when invoking
   `make` to override Makefile settings, in case that's desired.)
 * Use `cp -pf ...` to preserve permissions and to avoid errors if files
   already exist (read-only).
 * Add some error checks, messages and comments; quote more variables.

"	leif
2	sage-5.10 Release	9970	108 days	Flaky doctest in sage/interfaces/r.py	doctest coverage	defect	mvngu	needs_work	2013-02-04T05:14:35-08:00	"[http://groups.google.com/group/sage-release/browse_thread/thread/01a01378099b9d5e/3fe4b83c4c612663#3fe4b83c4c612663 Dima Pasechnik reports on sage-release]:
{{{
Builds and tests OK on Linux amd64 (Debian unstable). Got one test failure:

sage -t  ""devel/sage/sage/interfaces/r.py""
**********************************************************************
File ""/usr/local/src/sage/sage-4.6.alpha1/devel/sage/sage/interfaces/r.py"", line 1128:
    sage: tmpdir in sageobj(r.getwd())
Expected:
    True
Got:
    False

that however would  not repeat if I tested again...
}}}

I've also seen this error, on occasion.  The test lines are
{{{
#!python
            sage: import tempfile
            sage: tmpdir = tempfile.mkdtemp()
            sage: r.chdir(tmpdir)
            sage: tmpdir in sageobj(r.getwd()) 
            True
}}}
The script
{{{
#!python
import os
import tempfile

fail = 0
for i in xrange(1000):
    tmpdir = tempfile.mkdtemp()
    r.chdir(tmpdir)
    if tmpdir not in sageobj(r.getwd()):
        print tmpdir, r.getwd(), sageobj(r.getwd())
        fail += 1
    os.rmdir(tmpdir)  # clean up

print fail
}}}
prints
{{{
#!python
/tmp/tmpb1LEIM [1] ""/tmp/tmpb1LEIM"" /tmp/tmpbInteger(1)EIM
/tmp/tmpZ6LyPm [1] ""/tmp/tmpZ6LyPm"" /tmp/tmpZInteger(6)yPm
/tmp/tmp2LTCse [1] ""/tmp/tmp2LTCse"" /tmp/tmpInteger(2)TCse
/tmp/tmpzoor1L [1] ""/tmp/tmpzoor1L"" /tmp/tmpzoorInteger(1)
/tmp/tmpCl70Lo [1] ""/tmp/tmpCl70Lo"" /tmp/tmpClInteger(70)o
/tmp/tmpN7L_vQ [1] ""/tmp/tmpN7L_vQ"" /tmp/tmpNInteger(7)_vQ
/tmp/tmp9LAnw8 [1] ""/tmp/tmp9LAnw8"" /tmp/tmpInteger(9)Anw8
/tmp/tmpvL13LQ [1] ""/tmp/tmpvL13LQ"" /tmp/tmpvLInteger(13)Q
/tmp/tmpfB9L8g [1] ""/tmp/tmpfB9L8g"" /tmp/tmpfBInteger(9)8g
/tmp/tmp0LtlQ6 [1] ""/tmp/tmp0LtlQ6"" /tmp/tmpInteger(0)tlQ6
/tmp/tmpQF4L5I [1] ""/tmp/tmpQF4L5I"" /tmp/tmpQFInteger(4)5I
/tmp/tmp_0LOOr [1] ""/tmp/tmp_0LOOr"" /tmp/tmp_Integer(0)OOr
/tmp/tmpdDDj7L [1] ""/tmp/tmpdDDj7L"" /tmp/tmpdDDjInteger(7)
/tmp/tmpr0LiLu [1] ""/tmp/tmpr0LiLu"" /tmp/tmprInteger(0)iLu
/tmp/tmpu5LnMJ [1] ""/tmp/tmpu5LnMJ"" /tmp/tmpuInteger(5)nMJ
/tmp/tmp0Py04L [1] ""/tmp/tmp0Py04L"" /tmp/tmp0PyInteger(04)
/tmp/tmp3LZjCk [1] ""/tmp/tmp3LZjCk"" /tmp/tmpInteger(3)ZjCk
17
}}}
on sage.math."	mpatel
2	sage-5.10 Release	11895	218 days	padic_ZZ_pX_CR_element is unhashable	padics	defect	roed	needs_work	2012-10-16T11:07:44-07:00	"Extensions of p-adic numbers seem to be unhashable, and this becomes a problem when used in cached methods. For example, the following code raises a TypeError:

{{{
sage: K.<a>=Qq(3^2)
sage: M=Matrix(K,1,1,1)
sage: print M
}}}
"	mmasdeu
2	sage-5.10 Release	10476	305 days	Problems interrupting Singular	interfaces	defect	jdemeyer	needs_work	2012-07-21T09:16:05-07:00	"Type the following:
{{{
sage: singular._expect_expr(""1"")
}}}
Now type `CTRL-C`.  It takes a very long time before something happens.  This was the cause of #9163 (which was fixed to avoid this issue).

----

'''apply''' [attachment:10476_singular_interrupt.patch] to the Sage library.

----

`cntrlc.patch` sent and accepted upstream: [http://www.singular.uni-kl.de:8002/trac/ticket/432]"	jdemeyer
2	sage-5.10 Release	12718	390 days	polynomial substitution overflow hell (libsingular bug?)	commutative algebra	defect	malb	needs_work	2012-04-28T04:52:04-07:00	"{{{
sage: R.<x,y> = QQ[]
sage: n=1000; f = x^n; f.subs(x = x^n)
x^1000000
sage: n=100000; f = x^n; f.subs(x = x^n)
x^1410065408*y^2 
}}}"	was
2	sage-5.10 Release	10018	557 days	Unhandled SIGSEGV after bnfcertify()	c_lib	defect	jdemeyer	needs_work	2011-11-12T09:23:49-08:00	"Do the following in Sage:
{{{
sage: K.<z> = CyclotomicField(23); bnf=K.pari_bnf(certify=False)
sage: bnf.bnfcertify()
}}}
After typing the second line {{{bnf.bnfcertify()}}}, hit CTRL-c after 5 seconds or so (not immediately).
The interrupt will never register (the computation will continue running).

Dependencies: #10115, #9893, #9678"	jdemeyer
2	sage-5.10 Release	2952	1712 days	[with patch, needs work] LaurentPolynomialRing coercion error	coercion	defect	roed	needs_work	2008-09-13T19:32:46-07:00	"Currently
{{{
sage: R.<q>=QQ[]
sage: L.<x,y,z> = LaurentPolynomialRing(R)
sage: f=(x+y+z^-1)^2
sage: f.substitute(z=1)
}}}
gives an error because it PolynomialRing isn't imported categories/pushout.py for the Laurent functor.

Once, that it is fixed, the above commands give a coercion error between the fraction field of QQ['q'] and the Laurent polynomial ring over QQ['q']"	mhansen
3	sage-5.10 Release	9107	5 hours	Nested class name mangling can be wrong in case of double nesting	categories	defect	nthiery	needs_work	2013-05-22T15:21:48-07:00	"In the following class tree:
{{{
class Bla(UniqueRepresentation):
    class Bla1(UniqueRepresentation):
        class Bla11:
	    Pass
    class Bla2:
        class Bla21:
	    Pass
}}}
The names are set to
{{{
        sage: Bla.Bla1.__name__
        'Bla.Bla1'
        sage: Bla.Bla2.__name__
        'Bla.Bla2'
        sage: Bla.Bla2.Bla21.__name__
        'Bla.Bla2.Bla21'
}}}
But
{{{
        sage: Bla.Bla1.Bla11.__name__
        'Bla1.Bla11'
}}}
whereas one would expect {{{'Bla.Bla1.Bla11'}}}
This breaks a lot of doc in categories and in particular in functorial constructions.

__Apply__

- [attachment:trac9107_nesting_nested_classes.patch]
- [attachment:trac_9107_fix_cross_reference.patch]"	hivert
3	sage-5.10 Release	13711	8 hours	charpoly error on matrices with pi	linear algebra	defect	jason, was	needs_work	2013-05-22T12:08:22-07:00	"Sage returns an error when attempting to calculate the characteristic polynomial of a matrix with pi:


{{{
sage: matrix([[sqrt(2), -1], [1, e^2]]).charpoly()    
x^2 + (-sqrt(2) - e^2)*x + sqrt(2)*e^2 + 1
sage: matrix([[sqrt(2), -1], [pi, e^2]]).charpoly()
TypeError
}}}
"	eviatarbach
3	sage-5.10 Release	14610	37 hours	energy function for level zero LS paths for dual untwisted affine root systems	combinatorics	enhancement	mshimo	needs_work	2013-05-21T07:18:20-07:00	"Extend the energy function for level zero LS paths to work for dual untwisted affine root systems.
Currently it works for untwisted affine root systems."	mshimo
3	sage-5.10 Release	14261	2 days	Iwahori-Hecke algebra with several bases	combinatorics	enhancement	sage-combinat	needs_work	2013-05-20T15:59:26-07:00	"Set up the algebra to handle multiple bases; implemented the Kazhdan--Lusztig basis.  

This is a follow up to ticket #7729.

See http://wiki.sagemath.org/HeckeAlgebras for some design discussion.

----

Apply:

* [attachment:trac_14261-iwahori_hecke-ts.patch]
"	brant
3	sage-5.10 Release	9806	2 days	Constellations	combinatorics	enhancement	vdelecroix	needs_work	2013-05-20T13:00:59-07:00	"A constellation is a combinatorial description (via elements of the symmetric group) of graphs embedded in surfaces (also called G-map). This ticket aims to implement a basic class for it with:
  * fast data type
  * normal form and isomorphism test
  * enumeration/generation with constraints

Apply:

  * [attachment:trac_9806-constellations-vd.patch]
  * [attachment:trac_9806-constellations-doc-patch-fc.patch]"	vdelecroix
3	sage-5.10 Release	14411	3 days	Disjoint Sets --> iter	misc	enhancement	jason, ncohen, rlm	needs_work	2013-05-20T04:12:51-07:00	"Hi,

I want append a simple shortcut for iter elements of the class : DisjointSet."	elixyre
3	sage-5.10 Release	14214	3 days	Cythoned homsets	performance	enhancement	tbd	needs_work	2013-05-19T14:18:51-07:00	"Homsets arise whenever a coercion map or a conversion map is involved. Hence, homsets are ubiquitous in Sage and should thus be as a fast as possible.

Therefore I suggest change sage.categories.homset into a cython module. A clean solution seems out of reach at the moment (see comments), and so I just provide a couple of speed-ups here.

__Apply__

* trac_14214-cython_homset.patch
* trac_14214-backup_cache.patch"	SimonKing
3	sage-5.10 Release	8386	3 days	enhanced version of iet	combinatorics	defect	vdelecroix	needs_work	2013-05-19T13:27:54-07:00	"1) The library for iet is moved from sage.combinat.iet to sage.dynamics.interval_exchanges which seems more natural.

2) The old version for iet uses two kinds of datatype for reduced and labeled versions. The new implementation makes them coherent.

3) As a by product of 2), the following behavior is corrected
{{{
sage: p = iet.Permutation('a b','b a')
sage: q = iet.Permutation('b a','a b')
sage: p == q
True
}}}

Apply 
* [attachment:trac_8386_really_just_moving-fc.patch]
* [attachment:trac_8386_big_clean_fc.patch]"	vdelecroix
3	sage-5.10 Release	12472	4 days	GMP-ECM: disable asm redc when building with clang	build	defect	GeorgSWeber	needs_work	2013-05-19T05:58:59-07:00	"Currently using an asm redc breaks building ECM when compiling with clang; we should disable this when clang is used until it is fixed.

I've posted an spkg at [http://wstein.org/home/ohanar/clang-port/sage-5.0.beta1-src/spkg/standard/ecm-6.3.p4.spkg].

"	rohana
3	sage-5.10 Release	11935	5 days	Make parent/element classes independent of base rings	categories	enhancement		needs_work	2013-05-17T09:32:15-07:00	"At #11900 and [http://groups.google.com/group/sage-combinat-devel/browse_thread/thread/99c74827d704e677 sage-combinat-devel], as well as in some comments in sage/categories/category.py, the idea was discussed to make, for example, `Algebras(GF(3)).parent_class==Algebras(GF(5)).parent_class` - hence, make the parent/element classes as independent from the base of a category as possible.

This is implemented in this patch by introducing an abstract class
CategoryWithParameters which uses pickling by ""weak construction"" for
its element and parent classes. Now:

- For a join category, the parent/element class depend only on the
  parent/element class of its super categories.
- For a Category_over_base (e.g. Modules, Algebras, Schemes, ...), the
  parent/element class depend only on the category of the base.
- For a bimodule, the parent/element class depend only on the category
  of the left and right bases.

In the process, this patch also:

- Adds a method Category._make_named_class providing a unified way to
  create parent and element classes (and later on morphism classes)
- Extends the interface of dynamic_class to customize caching and pickling
- Rename the experimental class IdempotentSemigroups.ElementMethods
  and remove its super class, and discards unused code there.


__Apply__

 * [attachment:trac11935_weak_pickling_by_construction-nt.patch]
 * [attachment:trac_11935-weak_pickling_by_construction-review-ts.patch]"	SimonKing
3	sage-5.10 Release	12630	8 days	Add representations of quivers and quiver algebras to sage	algebra	enhancement	AlexGhitza	needs_work	2013-05-14T08:04:42-07:00	"This will add classes dealing with quivers, quiver algebras, representations of quivers, elements of these representations, homomorphisms between these representations, and spaces of homomorphisms between these representations.

There's a lot here that is really easily computable.  We can compute socles, quotients, radicals, duals, and more for any finite dimensional representation.  We can compute projective covers of modules so Auslander-Rieten translations have been implemented and there's certainly potential for future enhancements dealing with homology and cohomology.  There's only so much I can say here but everything is fully documented and should be self explanatory.

Two shortcomings are that quivers need to be acyclic (to keep things finite dimensional) and this code does not handle quivers with relations.  As far as quivers with relations go there are comments in the code detailing what should be done to implement that.  It's well within the reach of Sage, I just don't have the time to do it at the moment."	JStarx
3	sage-5.10 Release	13354	9 days	Pass -no-undefined flag to autotool based spkg	porting: Cygwin	task	tbd	needs_work	2013-05-14T02:40:07-07:00	"A bunch of spkg using autotools do not build shared libraries of Cygwin because -no-undefined flag is not passed to libtool:
* cddlib (update in #13026, we ship a lot of patches for that one, so if I report upstream for that particular issue, what for the others? so I'll do nothing for now),
* eclib (fixed in #13325 with new upstream version),
* ecm (fixed upstream, see https://gforge.inria.fr/scm/viewvc.php?view=rev&root=ecm&revision=2304),
* givaro (updated in #9511 and #13164, try http://www.infres.enst.fr/~flori/sage/givaro-3.7.1.p0.spkg, reported upstream, got in, see https://forge.imag.fr/scm/browser.php?group_id=187),
* glpk (updated in #12703, reported upstream, some feedback then nothing, see http://lists.gnu.org/archive/html/help-glpk/2012-12/msg00008.html, my last answer does not appear (although it was sent to marco and the list which must be somehow filtered)),
* gsl (mentions of -no-undefined in src code but only for MinGW, reported upstream at https://savannah.gnu.org/bugs/index.php?37894, you can try http://boxen.math.washington.edu/home/jpflori/gsl-1.15.p1.spkg, this is #14096),
* iml (updated in #748, try non updated at http://www.infres.enst.fr/~flori/sage/iml-1.0.1.p15.spkg, not sure upstream still exists),
* libfplll (see #13804 for a quick (different problem) fix and #12835 for the fact we ship a really old version, should update it before thinking about the problem here, fixed in new upstream version 4.0.3),
* linbox (updated in #12883, try http://www.infres.enst.fr/~flori/sage/linbox-1.3.2.p0.spkg, reported upstream, no feedback yet, see https://groups.google.com/d/topic/linbox-devel/sHan2BB8HVM/discussion),
* lrcalc (fixed in #13839 which should be half upstream),
* mpfi (fixed upstream, see https://gforge.inria.fr/scm/viewvc.php?view=rev&root=mpfi&revision=656),
* ntl (broken and fixed in #11635, no real upstream anymore as far as I understand),
* libgap (guess we are more or less upstream, see #14038)"	jpflori
3	sage-5.10 Release	14573	9 days	Implement path realization for affine crystals	combinatorics	enhancement	sage-combinat	needs_work	2013-05-13T08:32:23-07:00		tscrim
3	sage-5.10 Release	13214	10 days	Frobenius endomorphism over finite fields	basic arithmetic	enhancement	AlexGhitza	needs_work	2013-05-12T22:08:12-07:00	"Here is a patch implementing:

 1. Frobenius endomorphisms over finite fields (generic implementation, plus special implementations for prime finite fields and givaro finite fields)
 1. embeddings between finite fields (with again a special implementation for givaro finite fields)
 1. hashing and rich comparisons for general morphisms

----
Apply: [attachment:trac_13214_hom_finite_field.2.patch]

Or: [http://trac.sagemath.org/sage_trac/attachment/ticket/13184/trac_13184_homset_unique_parent trac_13184_homset_unique_parent] and [attachment:trac_13214_hom_finite_field.patch]"	caruso
3	sage-5.10 Release	8714	11 days	add Bellman-Ford algorithm for shortest paths	graph theory	enhancement	jason, ncohen, rlm	needs_work	2013-05-12T02:32:05-07:00	"I'm using #698 as a wish list of items to add to the graph theory module of Sage. The purpose of this ticket is to implement the [http://en.wikipedia.org/wiki/Bellman%E2%80%93Ford_algorithm Bellman-Ford] algorithm for finding shortest paths in a weighted graph `G` that may have negative weights. If `G` doesn't have negative weights, Dijkstra's algorithm can be used. However, if `G` has negative weights, we fall back on the Bellman-Ford algorithm. The Bellman-Ford algorithm is able to handle graphs with negative weights, but not graphs that have negative-weight cycles. See also the function [http://reference.wolfram.com/mathematica/Combinatorica/ref/BellmanFord.html BellmanFord] in Mathematica's [http://reference.wolfram.com/mathematica/Combinatorica/guide/CombinatoricaPackage.html Combinatorica] package. See this [http://code.google.com/p/graph-theory-algorithms-book/ graph theory book] for an algorithmic presentation of the Bellman-Ford algorithm.

See also the [/wiki/GraphTheoryRoadmap graph theory roadmap]."	mvngu
3	sage-5.10 Release	13447	12 days	Make libsingular multivariate polynomial rings collectable	memleak	defect		needs_work	2013-05-10T18:39:38-07:00	"Presently, #715 + #11521 help not permanently keeping parent in memory. In the process we uncovered a hard-but-consistently triggerable problem with the collection of `MPolynomialRing_libsingular`. We have only observed the problem on `bsd.math.washington.edu`, MacOSX 10.6 on x86_64.

The present work-around is to permanently store references to these upon creation, thus preventing collection. It would be nice if we could properly solve the problem (or at least establish that the problem is specific to `bsd.math`)

'''Apply''' [attachment:trac_13447-sanitise_ring_refcount.patch]"	nbruin
3	sage-5.10 Release	14519	13 days	Cythonize ElementWrapper and make parent the first argument	performance	enhancement	tscrim	needs_work	2013-05-09T16:45:55-07:00	For speed and consistency.	tscrim
3	sage-5.10 Release	14330	15 days	Upgrade to sagenb 0.10.6	packages: standard	enhancement	tbd	needs_work	2013-05-08T07:11:03-07:00	"Next minor version of sagenb. Will contain LDAP functionality by Robin Martinjak (finally) and some other minor adjustments.

SPKG: http://wstein.org/home/keshav/files/sagenb-0.10.6.spkg

When this is merged, merge also #14273."	kini
3	sage-5.10 Release	14123	17 days	Adding new combinatorial maps to binary trees	combinatorics	enhancement	sage-combinat	needs_work	2013-05-06T07:24:14-07:00	We add different combinatorial maps between binary trees and other combinatorial objects (permutations, dyck path, ...) especially to be used into Findstat 	VivianePons
3	sage-5.10 Release	12555	18 days	Reimplement elements of Zp and Qp using templates	padics	enhancement	roed	needs_work	2013-05-04T12:10:06-07:00	"The goal of this ticket is to reimplement elements of Zp and Qp using the ideas from sage/rings/polynomial/polynomial_template.pxi.  This should make p-adics in Sage both easier to maintain and easier to add new classes.

The final patch should not affect the external interface to Zp and Qp.

-----

Apply

* [[attachment:trac_12555.patch]]
* [[attachment:trac_12555_review.patch]]
* [attachment:12555_rebase_6223.patch]"	roed
3	sage-5.10 Release	10193	22 days	Create the category of SetsWithGrading	combinatorics	enhancement	sage-combinat	needs_work	2013-04-30T15:27:17-07:00	"The patch creates the category {{{SetsWithGrading}} and also puts WeightedIntegerVectors() into this category. There is also an example (non negative integers, graded by themselves).

See also: #10194

Apply:

 * [attachment:trac_10193-graded_sets-rebased.patch]"	nthiery
3	sage-5.10 Release	10879	25 days	add optional SCIP integer constraint solver	packages: standard	enhancement	tbd	needs_work	2013-04-28T04:45:37-07:00	"""SCIP is currently one of the fastest non-commercial mixed integer programming (MIP) solvers. It is also a framework for Constraint Integer Programming and branch-cut-and-price. It allows total control of the solution process and the access of detailed information down to the guts of the solver."" -- http://scip.zib.de/

Features interesting to Sage:

 * SCIP is pretty fast for Mixed Integer Programming
 * SCIP is a Constraint Integer Programming solver and allows non-linear constraints
 * SCIP's source code is available

However, we don't have the right to redistribute the SCIP source code. Thus, the attached SPKG is empty except for the spkg-install script etc. 

To build a SCIP for Sage do:
 * download the SCIP Optmisation Suite from http://scip.zib.de/download.php?fname=scipoptsuite-3.0.1.tgz
 * place the files `scip-3.0.1.tgz` and `soplex-1.7.1.tgz` in the `src/` subdirectory of the attached SPKG
 * install the SPKG
 * apply the attached patch and `sage -b`

'''KNOWN ISSUES'''
 * Sage crashes when SCIP variables are printed with SIGSEGV on OSX. It works fine under Linux.
 * printing of quadratic constraints does not work yet."	malb
3	sage-5.10 Release	13871	26 days	Virtual Cartan types	combinatorics	enhancement	tscrim	needs_work	2013-04-26T23:42:43-07:00	"This implements a new class `VirtualCartanType` which takes an affine Cartan type and considers the (affine) diagram folding and stores the associated data.

----

Apply: [attachment:trac_13871-virtual_cartan_type-ts.patch]"	tscrim
3	sage-5.10 Release	13993	27 days	Implementation of plotting cover labels for posets	combinatorics	enhancement	sage-combinat	needs_work	2013-04-26T05:05:48-07:00	This patch implements the possibility to plot labels of the cover relations of a poset.	stumpc5
3	sage-5.10 Release	9600	27 days	Fix atlas/liblapack.so linkage on FreeBSD	porting: BSD	defect	GeorgSWeber	needs_work	2013-04-25T18:41:48-07:00	"liblapack.so includes undefined references to __powidf2 and __powisf2, which are defined in libgcc (no other Sage shared libraries appear to rely on libgcc helper functions). Unfortunately, for reasons I don't fully understand, linking liblapack.so against libgcc.a fails, even when building a normal executable. The symptom is a message like:

usr/local/bin/ld: _configtest: hidden symbol `__powidf2' in /usr/local/lib/gcc45/gcc/x86_64-portbld-freebsd8.1/4.5.1/libgcc.a(_powidf2.o) is referenced by DSO
/usr/local/bin/ld: final link failed: Nonrepresentable section on output

The fix is to add a dependency on libgcc_s.so when (re-)building 
liblapack.so in make_correct_shared.sh.

It's not clear whether this is a defect in atlas or not - the liblapack.so used in Sage is custom-built for Sage and so this particular fix cannot be reported."	pjeremy
3	sage-5.10 Release	14469	27 days	Fix _repr_ of graphics objects	graphics	defect	jason, was	needs_work	2013-04-25T11:03:26-07:00	"Graphical output of plots (or other graphics objects) is hooked into `_repr_()`. Obviously, Python doesn't expect `repr` to have side effects so we get fun stuff like
{{{
sage: g = Graphics()
sage: g?
}}}
showing a plot in addition to the help. Or `(g,g)` opening two plot output windows if used on the command line. You don't want to try `[g]*100`

This patch moves the decision logic into the displayhook, and makes `repr` always return a string representation as it should.

Also, deprecate the `show_output()` function. Wat?

"	vbraun
3	sage-5.10 Release	13898	29 days	OSX build failure in mercurial with FSF GCC	packages: standard	defect	tbd	needs_work	2013-04-24T02:41:53-07:00	"As reported on https://groups.google.com/d/topic/sage-devel/kfXamuej_Gs/discussion
{{{
gcc -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -O2 -g -m64 
-I/opt/sage/sage-5.6.beta1/local/include/python2.7 -c mercurial/osutil.c 
-o build/temp.macosx-10.8-x86_64-2.7/mercurial/osutil.o 
In file included from 
/System/Library/Frameworks/Foundation.framework/Headers/NSObject.h:5:0, 
                  from /usr/include/os/object.h:74, 
                  from /usr/include/dispatch/dispatch.h:48, 
                  from 
/System/Library/Frameworks/CoreFoundation.framework/Headers/CFMessagePort.h:11, 
                  from 
/System/Library/Frameworks/CoreFoundation.framework/Headers/CoreFoundation.h:68, 
                  from 
/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/CarbonCore.h:18, 
                  from 
/System/Library/Frameworks/CoreServices.framework/Frameworks/AE.framework/Headers/AE.h:20, 
                  from 
/System/Library/Frameworks/CoreServices.framework/Headers/CoreServices.h:18, 
                  from 
/System/Library/Frameworks/ApplicationServices.framework/Headers/ApplicationServices.h:24, 
                  from mercurial/osutil.c:523: 
/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:409:1: 
Fehler: verirrtes »@« im Programm 
}}}

Workaround: Use the following spkgs:

  * http://www.stp.dias.ie/~vbraun/Sage/spkg/mercurial-2.2.2.p1.spkg
  * http://www.stp.dias.ie/~vbraun/Sage/spkg/python-2.7.3.p6.spkg
  * http://www.stp.dias.ie/~vbraun/Sage/spkg/r-2.14.0.p7.spkg

For updated versions see:

  * http://www.org.chemie.tu-muenchen.de/people/zeier/sage/python-2.7.3.p7.spkg
  * http://www.org.chemie.tu-muenchen.de/people/zeier/sage/r-2.15.2.p2.spkg"	vbraun
3	sage-5.10 Release	4726	29 days	Creating homomorphisms of relative number fields seems totally broken	number fields	defect	davidloeffler	needs_work	2013-04-23T11:14:34-07:00	"The following _should_ create the correct homomorphism (complex conjugation, see #4725):
{{{
sage: K.<j,b> = QQ[sqrt(-1), sqrt(2)]
sage: conj = K.hom([-j, b])
boom!
}}}

However it doesn't.  
"	was
3	sage-5.10 Release	14275	31 days	Lazy imports with deprecation	misc	enhancement	jason	needs_work	2013-04-22T06:55:05-07:00	It's annoying when other people move something around in the Sage library and it's no longer available in the previous location to be imported.  Sage currently has some mechanisms for alleviating this problem (`sage.misc.superceded.deprecated_callable_import` and `sage.structure.sage_object.register_unpickle_override` for example).  This ticket adds another option: lazily import the old name so that a deprecation warning is issued whenever it is referred to.	roed
3	sage-5.10 Release	12224	31 days	Language as parent / Word as element	combinatorics	enhancement	vdelecroix	needs_work	2013-04-21T14:38:08-07:00	"This ticket is a prerequisite to further development in the combinatorics of words and symbolic dynamical systems (adic language, SFT, ...). It concerns the implementation of a class ""Language"" (= graded set of words) as a Parent and a class ""Word"" as Element.

Three categories are created: Languages, FactorialLanguages and Shifts that gather several methods of finite and infinite words. For speed reason there are base Cython classes for
 * finite word (in sage.combinat.words.finite_word)
 * infinite word (in sage.combinat.words.infinite_word)
 * language (in sage.combinat.languages.language) 

Every implementation must inherit from the class above (it is check in the TestSuite of the related categories).

The previous code of Word is dispatched between the ElementMethods of the category and the Cython class FiniteWord. The choice has been made for sake of optimization.


see also: #12225, #12227

To import and apply all patches do
{{{
cd SAGE_ROOT/devel/YOUR_BRANCH
hg qimport http://trac.sagemath.org/sage_trac/raw-attachment/ticket/8920/trac_8920-alphabet.patch
hg qpush
hg qimport http://trac.sagemath.org/sage_trac/raw-attachment/ticket/12466/trac_12466-ss.patch
hg qpush
hg qimport http://trac.sagemath.org/sage_trac/raw-attachment/ticket/12230/trac_12230-growing_letters-ss.patch 
hg qpush
hg qimport http://trac.sagemath.org/sage_trac/raw-attachment/ticket/12230/trac_12230-growing_letters-review-vd.patch
hg qpush
hg qimport http://trac.sagemath.org/sage_trac/raw-attachment/ticket/13801/trac_13801-fix_facade_initialisation-vd.patch
hg qpush
hg qimport http://trac.sagemath.org/sage_trac/raw-attachment/ticket/13956/trac_13956-shift_argument.patch
hg qpush
hg qimport http://trac.sagemath.org/sage_trac/raw-attachment/ticket/13957/trac_13957-catch_value_error.patch 
hg qpush
hg qimport http://trac.sagemath.org/sage_trac/raw-attachment/ticket/12224/trac_12224-language.patch
hg qpush
}}}"	vdelecroix
3	sage-5.10 Release	11407	34 days	Add normalization to clonable lists	combinatorics	enhancement	hivert	needs_work	2013-04-18T12:52:52-07:00	"The patch adds a new support class in {{{list_clone.pyx}}} for lists with a normalization methods. The normalization method is called both after creation and clone/modification. This will be needed for rooted trees.

'''Apply''' [attachment:trac_11407-list_clone_improve-fh-rebased.patch]
"	hivert
3	sage-5.10 Release	14256	35 days	Nicer latex output for strings using \text	user interface	enhancement	was	needs_work	2013-04-17T13:57:48-07:00	"
The current latex output for simple strings is a bit overkill:
{{{
    sage: latex(""hello world"")
    \verb|hello|\phantom{\verb!x!}\verb|world|
}}}

There is a rationale behind it: namely this allows for a nicer rendering of multi-line ascii art by emulating a fixed-width font. However, for a simple one line string, the following would be more readable:
{{{
    sage: latex(""hello world"")
    \text{hello world}
}}}

The attached preliminary patch does this. However more work would need to be done, as this requires changing quite a few doctests. In fact some code seem to assume that the output use {{{\verb}}} before stripping this away, so maybe some cleanup is in order there.

I for myself won't work any further on this patch; feel free to take over!"	nthiery
3	sage-5.10 Release	12449	35 days	Improve the way that sage evaluates symbolic functions on basic types	symbolics	enhancement	bober	needs_work	2013-04-17T09:17:45-07:00	"Currently when a symbolic function (e.g. gamma(), exp(), sin()) gets a python float, it passes it off to ginac, and let's ginac evaluate it. This can be very slow, e.g.:

{{{
sage: timeit('exp(6.0r)')
625 loops, best of 3: 476 µs per loop
}}}
This also leads to possibly undesirable inconsistencies across different platforms: for example, ginac ends up calling the local libc tgammal to evaluate the gamma function, and even when this tgammal is evaluated by the same version of eglibc on two different platforms the answer varies depending on whether 80 bit doubles are available.

To fix this, we make Sage check its types which correspond most closely to python type for the function that should be called, and use the functions for those types if available.

Now we have

{{{
sage: timeit('exp(6.0r)')
625 loops, best of 3: 1.02 µs per loop
}}}
For the specific case of the gamma function, the is also a change here to make RDF use python's math.gamma(). It is more accurate than gsl. It is perhaps not as accurate as eglibc's gamma(), but it should give reliable results on different platforms.

I think this will fix 3 of the 4 failing numerical accuracy doctests on ARM, though the test for binomial(.5r, 5) had to be weakened slightly.  (see http://groups.google.com/group/sage-devel/browse_thread/thread/3c8c61ea113ea60c ) binomial() is currently not computed in a very good way, though, so it is reasonable to weaken this test temporarily. (see http://trac.sagemath.org/sage_trac/ticket/12448 )

Finally, I'll remark that these improvements could probably be much better. The above timings should be compared to

{{{
sage: timeit('math.exp(6.0r)')
625 loops, best of 3: 112 ns per loop
}}}
Apply:

 * attachment:trac12449.patch"	bober
3	sage-5.10 Release	5229	38 days	Jmol axes in the wrong place	graphics	defect	was	needs_work	2013-04-14T19:16:04-07:00	As is, it appears that 3d plots are wrong, according to the jmol axes, because the jmol axes apparently don't default to being centered at the origin.  This patch makes the jmol axes centered at the origin.  To show the jmol axes, you still need to right-click on the jmol plot, select Style, then Axes.	jason
3	sage-5.10 Release	11187	41 days	Implementation of finite reflection groups	combinatorics	enhancement	tbd	needs_work	2013-04-12T07:08:08-07:00	"This patch adds a function

{{{
sage: FiniteReflectionGroup(classification_type)
}}}

to work with finite (crystallographic, real, complex) reflection groups. It uses the data from GAP3/chevie."	stumpc5
3	sage-5.10 Release	11404	45 days	Allow sage -upgrade / -update from local directory.	build	defect	GeorgSWeber	needs_work	2013-04-08T07:17:12-07:00	"For testing purposes it would be very convenient if one could update/upgrade from a local directory. This is currently not possible because urllib has no concept of a directory listing to get the list of updated spkgs. The attached patch fixes this.

Apply trac_11404_upgrade_from_directory.patch to the sage_scripts repository."	vbraun
3	sage-5.10 Release	14384	46 days	Support version number literals.	misc	enhancement	jason	needs_work	2013-04-06T14:05:44-07:00	"This can be done as we already have preparser hacks for real literals and numeric attributes. 

https://github.com/robertwb/sage/commits/versions"	robertwb
3	sage-5.10 Release	9604	49 days	Tracker bug for toric varieties	algebraic geometry	task	AlexGhitza	needs_work	2013-04-03T14:42:30-07:00	"This bug tracks the current status of the toric varieties code and the interdependence of new patches, which should be applied '''on top of Sage 5.2'''. Any (properly ordered) part of positively reviewed patches can be merged at any time, there is no need to ""bundle tickets.""

'''Applied to the current Sage alpha/beta/rc:'''


'''Applied to the next alpha/beta/rc:'''


'''Positively reviewed:'''


'''Needs work / review:'''

These groups (separated by blank lines) can be applied independently on top of the positively reviewed ones:

 * #14409: sage_input support for some geometry objects

 * #13194: !FaceFan and !NormalFan should work with (non-lattice) polyhedra
 * #14394: !FaceFan bug if origin is on boundary

 * #13183: Implement index(cone) for fan morphisms
 * #14353: Factor toric morphism into surjective and generically injective
 * #12892: Toric fibration morphisms
 * #12900: (Demazure) roots of toric varieties

 * #12553: Add interface for PALP polytope databases
 * #13084: Weierstrass form for toric elliptic curves

 * #11559: Speed up Posets and toric Chow group"	vbraun
3	sage-5.10 Release	14329	49 days	"Remove all the ""is_[A-Z].*"" from global namespace"	performance	enhancement	tbd	needs_work	2013-04-03T14:12:32-07:00	Remove all the `is_[A-Z].*` from global namespace. They have been deprecated for over two years.	ppurka
3	sage-5.10 Release	12892	50 days	Toric fibration morphisms	algebraic geometry	enhancement	AlexGhitza	needs_work	2013-04-02T14:28:06-07:00	"This ticket provides more morphisms that are associated to toric varieties:
  * embedding of an orbit closure
  * embedding of a fiber of a toric morphism
  * pull-back of divisors

Apply:
  * [attachment:trac_12892_orbit_closure_morphism.patch]
  * [attachment:trac_12892_toric_morphism_fibers.patch]
  * [attachment:trac_12892_toric_morphism_divisors.patch]
  * [attachment:trac_12892_reviewer.patch]
"	vbraun
3	sage-5.10 Release	12672	54 days	Build PPL with its C interface	packages: standard	enhancement	tbd	needs_work	2013-03-29T20:09:31-07:00	"Currently, the standard PPL spkg only builds the C++ interface. However, `CLooG-PPL` (see #12666) needs the C-header `ppl_c.h` as well.

Therefore I suggest to slightly modify the install script of our PPL spkg:

 * Do `make install` instead of `make install-strip` -- I admit that I am not sure whether this is needed, and perhaps `make install-strip` yields faster code. A reviewer should comment on that.
 * Modify the configuration options, such that the C interface is built.

'''spkg:''' [http://boxen.math.washington.edu/home/SimonKing/SAGE/spkgs/ppl-0.11.2.p2.spkg]"	SimonKing
3	sage-5.10 Release	4458	54 days	tutorial and reference manual should explain NameError	documentation	defect	afleckenstein	needs_work	2013-03-29T15:53:49-07:00	"Perhaps even a blurb about variables being references (if it's not to complicated). However, at the very least there should be something in the calculus section(s) to the effect of ""If you get a NameError, check to see if you either misspelled something or forgot to define a variable with var(...)""
"	robertwb
3	sage-5.10 Release	13540	55 days	Automatically detect and test optional dependencies.	doctest framework	enhancement	mvngu	needs_work	2013-03-28T18:44:14-07:00	I'd deferred actually fixing the broken doctests to #13884, #13885, and #2120 so we can start using this (and not have everything optional broken).	robertwb
3	sage-5.10 Release	8177	55 days	Breaking Integer's invariant can lead to a segfault in Sage 4.3.2.alpha1, Mac OS X 10.6.2	documentation	defect	tbd	needs_work	2013-03-28T16:00:39-07:00	"Integer assumes the following invariant:

    x.parent() == ZZ     <==>    x.__class__ == Integer

Breaking this invariant (which is easy to do using plain Python) can lead to a segfault.

See the following discussion for how it was detected:

From [http://groups.google.com/group/sage-devel/browse_thread/thread/7754a347b837fad6 sage-devel] and also [http://groups.google.com/group/sage-devel/browse_thread/thread/7c920d26ddad3345 reported here]:
{{{
> built fine on mac 10.6.2 but one failure for sage -testall :

> The following tests failed:

>        sage -t  ""devel/sage/sage/structure/element_wrapper.py"" # Segfault

I get the same result on bsd.math (Mac OS X 10.6.2). Doing a verbose
long doctest, I get:

Trying:
    Integer(1) < l11###line 213:_sage_    >>> 1 < l11
Expecting:
    False

------------------------------------------------------------
Unhandled SIGSEGV: A segmentation fault occured in SAGE.
This probably occured because a *compiled* component
of SAGE has a bug in it (typically accessing invalid memory)
or is not properly wrapped with _sig_on, _sig_off.
You might want to run SAGE under gdb with 'sage -gdb' to debug this.
SAGE will now terminate (sorry).
------------------------------------------------------------ 
}}}

See #8200 which improves the doctests of ElementWrapper to not trigger this bug anymore. #8200 does not resolve the issue though!"	mvngu
3	sage-5.10 Release	9967	55 days	Allow concurrent running/testing of multiple sage branches	doctest framework	enhancement	ddrake	needs_work	2013-03-28T15:59:40-07:00	This will be very useful for an automated testing framework (and testbed notebook). 	robertwb
3	sage-5.10 Release	14268	56 days	Remove #define ulong	build	defect	GeorgSWeber	needs_work	2013-03-27T09:55:52-07:00	"The {{{#define ulong unsigned long}}} in FLINT can cause conflicts with glibc's `<sys/types.h>` in `-std=gnu99` mode and with zn_poly (which has been patched to work around this, but it shouldn't be).

In FLINT, we should replace
{{{
#define ulong unsigned long
}}}
by
{{{
typedef unsigned long ulong
}}}

'''Apply''':
 1. spkg [http://sage.math.washington.edu/home/jdemeyer/spkg/flint-1.5.2.p4.spkg] ([attachment:flint-1.5.2.p4.diff diff])
 1. spkg [http://sage.math.washington.edu/home/jdemeyer/spkg/zn_poly-0.9.p11.spkg] ([attachment:zn_poly-0.9.p11.diff diff])"	jdemeyer
3	sage-5.10 Release	13026	57 days	Upgrade and clean up cddlib	packages: standard	enhancement	tbd	needs_work	2013-03-26T14:27:53-07:00	"The cddlib SPKG is huge (when disregarding src/) and contains a lot of weird-looking stuff in the patched directory. The point of this ticket is to simplify the packaging of cddlib and also upgrade it to the latest version, 094g.

Part of metaticket #13025.

New SPKG: [http://wstein.org/home/ohanar/spkgs/cddlib-094g.p0.spkg]."	kini
3	sage-5.10 Release	14270	62 days	Remove function call syntax for symbolic expressions	symbolics	defect	burcin	needs_work	2013-03-21T22:41:15-07:00	"The function call syntax for symbolic expressions has been deprecated for over four years. It is about time it raised some errors. This will prevent people from getting confused because of behavior [http://ask.sagemath.org/question/2357/the-difference-between-fx3-and-f3-of-callable like this].

Apply [attachment:trac_14270-raise_error_on_function-call.patch] to devel/sage."	ppurka
3	sage-5.10 Release	9670	65 days	Bring probability/random_variable.py to 100% coverage	documentation	enhancement	mvngu	needs_work	2013-03-18T11:51:27-07:00	"Currently, this file is pretty woeful.
{{{
probability/random_variable.py: 3% (1 of 29)
}}}

Also, there is at least one *enormous* bug in this code.  Since this is literally the first thing I tried, I'm guessing there may be many, many others. 
{{{
sage: n=6; P = dict([(i,1/n) for i in [1..n]])
sage: X = DiscreteProbabilitySpace(P.keys(), P)
sage: X.expectation()   # WHAT?
0.166666666666667
}}}"	kcrisman
3	sage-5.10 Release	13201	67 days	patch setuptools to allow for parallel usage	build	enhancement	GeorgSWeber	needs_work	2013-03-17T02:53:43-07:00	"Currently we have to force the spkgs that use setuptools to build serially because setuptools does not do any file locking with `easy_install.pth`. This is an inconvenience that has a fairly straightforward fix.


Installation Instructions:
* Use the new spkg [http://wstein.org/home/ohanar/spkgs/setuptools-0.6.16.p1.spkg]
* Apply [attachment:trac13201.patch] to the root repo."	rohana
3	sage-5.10 Release	13317	70 days	Make species use UniqueRepresentation	combinatorics	enhancement	sage-combinat	needs_work	2013-03-14T01:40:36-07:00		mhansen
3	sage-5.10 Release	8972	70 days	Inversion and fraction fields for power series rings	algebra	defect		needs_work	2013-03-13T23:53:58-07:00	"This ticket is about at least three bugs related with inversion of elements of power series rings.

Here is the first:
{{{
sage: R.<x> = ZZ[[]]
sage: (1/x).parent()
Laurent Series Ring in x over Integer Ring
sage: (x/x).parent()
Power Series Ring in x over Integer Ring
}}}
''Both'' parents are wrong. Usually, the parent of ``a/b`` is the fraction field of the parent of ``a,b``, even if ``a==b``. And neither above parent is a field.

Next bug:
{{{
sage: (1/(2*x)).parent()
ERROR: An unexpected error occurred while tokenizing input
The following traceback may be corrupted or invalid
The error message is: ('EOF in multi-line statement', (919, 0))

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
... very long traceback
TypeError: no conversion of this rational to integer
}}}

And the third:
{{{
sage: F = FractionField(R)
sage: 1/x in F
False
}}}

__Apply__:

 * [attachment:trac-8972_fraction_of_power_series_combined.patch]"	SimonKing
3	sage-5.10 Release	12571	74 days	Implementation of shifted shuffle of permutations	combinatorics	enhancement	sage-combinat	needs_work	2013-03-09T14:21:17-08:00	"The shifted shuffle of two permutations can be expressed as a right permutohedron interval. We implements a method that computes in this way the shifted shuffle of two permutations.

Note that this improve the efficiency of the former way to compute shifted shuffle of permutations:

{{{
sage: p1 = Permutations(10).random_element()
sage: p2 = Permutations(7).random_element()
}}}

{{{
sage: _ = [Permutation(p) for p in Word(p1).shifted_shuffle(Word(p2))]
}}}

takes about 19.95 s CPU time on my computer, but

{{{
sage: _ = p1.shifted_shuffle(p2)
}}}

takes about 3.94 s CPU time.


We also implements Loday-Ronco's over and under operations on permutations."	giraudo
3	sage-5.10 Release	11573	79 days	ELGamal Algorithm	cryptography	enhancement	mvngu	needs_work	2013-03-04T10:57:55-08:00	In cryptography, the ElGamal encryption system is an asymmetric key encryption algorithm for public-key cryptography which is based on the Diffie–Hellman key exchange. It was described by Taher Elgamal in 1984. ElGamal encryption is used in the free GNU Privacy Guard software, recent versions of PGP, and other cryptosystems.	charlsmathew
3	sage-5.10 Release	13730	80 days	Speed up some graph iterations	graph theory	enhancement	jason, ncohen, rlm	needs_work	2013-03-03T08:53:55-08:00	"Several graph methods can be significantly speed up improving the data structure, or at least the way some basic operations are performed. 
For instance, many functions are faster using networkx graphs (conversion time included) instead of sage graphs. 

In fact, NetworkX uses dictionaries to store edges. If G is a networkx graph, it is also a dictionary indexed by the vertices, and G[u] is a dictionary indexed by neighbors and containing edge data. This way, iterations are fast.
{{{
sage: G = graphs.RandomBarabasiAlbert(100,2)
sage: %timeit E = [(u,v) for u in G for v in G.neighbor_iterator(u)]
125 loops, best of 3: 1.63 ms per loop
sage: ggnx = G.networkx_graph()
sage: %timeit EE = [(u,v) for u in ggnx for v in ggnx.neighbors_iter(u)] 
625 loops, best of 3: 141 µs per loop
sage: %timeit EE = [(u,v) for u in ggnx for v in ggnx[u]] 
625 loops, best of 3: 127 µs per loop
}}}
We should at least improve iteration over the neighbors."	dcoudert
3	sage-5.10 Release	2217	83 days	splitting field function for number fields	number fields	enhancement	davidloeffler	needs_work	2013-02-28T20:48:52-08:00	"We should add `splitting_field()` function: given a polynomial, compute the number field generated by all the roots.

See the thread at http://groups.google.com/group/sage-devel/browse_thread/thread/32fe12de12d5f6a5/c91753b5e65fe7b9#c91753b5e65fe7b9
"	jason
3	sage-5.10 Release	13744	85 days	Bug in modular_decomposition	graph theory	defect	jason, ncohen, rlm	needs_work	2013-02-26T09:02:40-08:00	"Paulo Seijas reported the following bug on sage-support [1]

{{{
sage: P = Graph('Dl_')
sage: P.is_prime()
True
}}}

It can be easily fixed by just updating the code with upstream, as it looks like the bug has been solved since our last update.

That's all this patch does.

Nathann

[1] https://groups.google.com/forum/?fromgroups=#!topic/sage-support/Iha5__c_h44

'''Apply''': [attachment:13744_rebased.patch]"	ncohen
3	sage-5.10 Release	13236	87 days	Elements of a specific rank of a ranked poset	combinatorics	enhancement	tbd	needs_work	2013-02-24T08:23:37-08:00	"For a ranked poset P and its rank function r. 
Implement the following:
1. method which returns iterator of elements p in P such that r(p)=k.
2. method which returns the list of elements p in P such that r(p)=k.

(Temporary names of them are elements_of_the_rank_iterator and elements_of_the_rank)"	numata
3	sage-5.10 Release	14126	88 days	Count Number of Linear Extensions of a Poset	combinatorics	enhancement	sage-combinat	needs_work	2013-02-23T08:29:00-08:00	Posets appear to have no mechanism to count the number of linear extensions other than computing all the linear extensions and finding the length of that list. Using recursion, one can count the number of linear extensions without having to generate all the linear extensions.	csar
3	sage-5.10 Release	12418	91 days	adding Delsarte bound for codes	coding theory	enhancement	wdj	needs_work	2013-02-20T08:45:16-08:00	"Delsarte bound for codes, aka Linear Programming bound, is easy to implement in Sage.

To work well in big dimensions, one needs an arbitrary precision LP solver. We use an LP backend to PPL, which is available in Sage since #12533.

Apply [attachment:12418_delsart_bounds.patch]"	dimpase
3	sage-5.10 Release	13273	91 days	extension of sage.numerical.optimize.find_fit	numerical	enhancement		needs_work	2013-02-20T08:18:06-08:00	"There is no routine in Sage to interpolate points `((x,y),(f_1,f_2))\in\mathbb{R}^{2} \times \mathbb{R}^{2}` by an arbitrary class of functions `f\colon\mathbb{R}^{2}\to \mathbb{R}^{2}` other than splines. Until now, a similar routine exists only for interpolating functions `\mathbb{R}^{k} \to \mathbb{R}`, called `sage.numerical.optimize.find_fit`. It seems to me as one could extend the routine ""find_fit"" to the two-dimensional case with not too much work as the underlying routine scipy.optimize.leastsq (see line 645/655) is not restricted to the one-dimensional case. The new ""model"" (cp. line 527 ff.) should be a pair of symbolic expressions, of symbolic functions, or of python functions. model has to be a function of the variables `(x_1, x_2)` and free parameters `(a_1, a_2, \ldots, a_l)`.  Thus I want to propose to extend the routine find_fit to the two-dimensional case."	hackstein
3	sage-5.10 Release	6335	93 days	optional doctest failure -- kash interface (trivial to fix)	packages: optional	defect	tbd	needs_work	2013-02-18T13:45:35-08:00	"{{{
sage -t -long --optional devel/sage/sage/interfaces/kash.py
**********************************************************************
File ""/scratch/wstein/build/sage-4.0.2.alpha3/devel/sage-main/sage/interfaces/kash.py"", line 68:
    sage: a = kash('(9 - 7) * (5 + 6)'); a              # optional -- kash
Expected nothing
Got:
    22
**********************************************************************
1 items had failures:
   1 of 103 in __main__.example_0
***Test Failed*** 1 failures.

}}}"	was
3	sage-5.10 Release	7716	94 days	sage -coverage enhancement	documentation	enhancement	mvngu	needs_work	2013-02-17T12:45:41-08:00	"Adds features to the sage-coverage script.

 * rewrite for modularity and easier addition of features
 * changes the score of the file to reflect the presence or absence of a TestSuite.run or equivalent test.
 * adds option to check cdef'd functions
 * adds option to check docstrings on classes
 * adds option to check for the existence of INPUT block
 * adds option to check that parameters are all listed in the INPUT block.
 * adds option to check for the existence of OUTPUT block

So that we don't bring our coverage level way down, these aren't turned on automatically.  Instead, they can be invoked from the command line by using options ( -cdefs, -classes, -input, -output and -params)

Resolves #1795 and #5859

The current ticket might conflict with #8699."	roed
3	sage-5.10 Release	9089	94 days	Graphics3dGroup __add__ modifies its arguments	graphics	defect	jason, was	needs_work	2013-02-17T09:23:16-08:00	"In an attempt to optimize, in some cases the __add__ method of Graphics3dGroup modifies its arguments instead of returning a new Graphics3dGroup object.  This breaks the user expectation, as illustrated below:

{{{
a=point3d([1,0,0])+point3d([0,1,0])
b=point3d([0,0,1])
a # shows 2 points
a+b # shows all 3 points
a # Now this shows 3 points!!!
}}}

The attached patch deletes the offending optimization.  If fast summing is needed, then the user can either create a Graphics3dGroup object themselves, or use something like {{{sage.misc.misc.balanced_sum}}}"	jason
3	sage-5.10 Release	2120	95 days	Maple interface completely broken with Maple 11	interfaces	defect	was	needs_work	2013-02-16T09:30:52-08:00	"This is what we get for not running the optional doctests. Maple 10 still works fine. With Maple 11 the Sage interface is completely totally broken:

{{{
	sage -t --only-optional=maple devel/sage/sage/symbolic/expression.pyx # 2 doctests failed
	sage -t --only-optional=maple devel/sage/sage/symbolic/integration/integral.py # 2 doctests failed
	sage -t --only-optional=maple devel/sage/sage/calculus/calculus.py # 1 doctests failed
	sage -t --only-optional=maple devel/sage/sage/misc/functional.py # 1 doctests failed
	sage -t --only-optional=maple devel/sage/sage/tests/benchmark.py # 5 doctests failed
	sage -t --only-optional=maple devel/sage/sage/interfaces/maple.py # 123 doctests failed
}}}"	was
3	sage-5.10 Release	14015	99 days	Affine and Euclidean groups	group theory	enhancement	joyner	needs_work	2013-02-12T07:21:42-08:00	"This ticket implements basic affine groups and Euclidean groups:
{{{
sage: G = AffineGroup(3, QQ)
sage: g = G.random_element(); g
     [   2 -1/2    0]     [  0]
x|-> [   1   -1   -1] x + [-32]
     [   0   -2   -2]     [1/3]
sage: g*g
     [ 7/2 -1/2  1/2]     [   16]
x|-> [   1  5/2    3] x + [ -1/3]
     [  -2    6    6]     [191/3]
sage: g*g.inverse()
     [1 0 0]     [0]
x|-> [0 1 0] x + [0]
     [0 0 1]     [0]
}}}"	vbraun
3	sage-5.10 Release	10779	101 days	Improve coverage test for structure/element.pyx	doctest coverage	enhancement	mvngu	needs_work	2013-02-10T14:48:40-08:00	"Improve coverage test for structure/element.pyx

Status as of Sage 5.7.beta4: 26% done -- 118 functions to doctest. "	ejeanvoi
3	sage-5.10 Release	13060	106 days	Update Valgrind spkg to version 3.8.1	packages: optional	defect	tbd	needs_work	2013-02-06T02:32:56-08:00	"Valgrind 3.7.0 configure script complains about glibc version 2.15 (which is shipped e.g. with Ubuntu 12.04).

The usual solution is to treat this version as the previous one:
see commit r12323 in the valgrind svn, or tickets on different distribution bug tracker.

Furthermore, the autogen.sh scripts fails with recent automake version.
This is commit r12396.

All these fixes are in Valgrind 3.8.1.

Try spkg at
http://boxen.math.washington.edu/home/jpflori/valgrind-3.8.1.spkg

Support is annouced upstream for OS X from 10.6.X onward, but building Valgrind might fail if you're using a non Apple gcc (such as the FSF one in Sage's spkg)."	jpflori
3	sage-5.10 Release	11391	106 days	ppl library problems on Arch Linux, OpenSuse: _ZN23Parma_Polyhedra_Library13have_sse_unitE	packages: standard	defect	GeorgSWeber	needs_work	2013-02-05T11:24:38-08:00	"I am using the sage 4.7 release.
I'm trying to package sage for archlinux, and the x86_64 version compiled fine. But the i686 version of the package failed with the error described here:
http://groups.google.com/group/sage-devel/browse_thread/thread/84b2f4d94d50e735

The complete install.log can be found here:
http://pkgbuild.com/~td123/install.log.gz

The relevant install.log portion (the error message) is:
http://pastie.org/pastes/1980914/text"	gostrc
3	sage-5.10 Release	12179	108 days	Binomial of integer (mod n) returns integer	basic arithmetic	defect	AlexGhitza	needs_work	2013-02-04T05:00:53-08:00	"{{{
sage: R = Integers(6)
sage: binomial(R(5), R(2))
10
sage: binomial(R(5), R(2)).parent()
Integer Ring
}}}

But {{{binomial(R(5), R(2))}}} is nonsense, both as an element of ZZ and as an element of R:
{{{
sage: binomial(5, 2)
10
sage: binomial(11, 2)
55
sage: binomial(5, 8)
0
}}}

On input {{{binomial(x, y)}}}, what Sage should do instead is the following:
 * If the parent of y is Zmod(n) rather than ZZ, a `TypeError` should be raised.
 * If factorial(y) is zero or a zero-divisor in the parent of x, a `ZeroDivisionError` should be raised. This is automatic if one computes binomial(x, y) simply as
  {{{
  x.parent()(prod([x-k for k in range(y)]) / factorial(y))
  }}}"	scotts
3	sage-5.10 Release	13608	109 days	exp() does not work on mpmath mpf numbers	symbolics	defect	burcin	needs_work	2013-02-02T08:03:04-08:00	"As reported in https://groups.google.com/forum/?fromgroups=#!topic/sage-support/_SGY3ohrmk8 :

{{{
sage: import mpmath
sage: exp(mpmath.mpf('-0.0712959029907420240935')) 
}}}
fails with ""`TypeError: 'int' object is not callable`"". As Karl-Dieter Crisman discovered, this is because `exp(a)` by default calls `a.exp()`, and for mpmath floats, `a.exp` (no parentheses) returns a Python int representing its binary exponent -- which isn't callable.

Our top-level `exp()` function should properly evaluate mpf numbers!
"	ddrake
3	sage-5.10 Release	13346	118 days	Add a cython implementation of the Kolakoski word	combinatorics	enhancement	slabbe	needs_work	2013-01-24T17:01:19-08:00	"A Python implementation of the Kolakoski word was implemented some time ago in #8739. But, there exist much faster implementation especially some lines of C code of Dominique Bernardi shared by himself during Sage Days 28 in Orsay, France, in January 2011.

This patch adds a cython version of the code of Bernardi. It is much faster than the actual python implementation in Sage.

BEFORE:

{{{
sage: K = words.KolakoskiWord() 
sage: K                                          
word: 1221121221221121122121121221121121221221...
sage: time K[100000]           
1                              
Time: CPU 0.96 s, Wall: 1.36 s 
sage: time K[1000000]          # takes forever                            
}}}

AFTER:

{{{
sage: K = words.KolakoskiWord()
sage: K                                          
word: 1221121221221121122121121221121121221221...
sage: time K[1000000]                              
2                                                  
Time: CPU 0.01 s, Wall: 0.02 s                     
sage: time K[100000000]                            
1                                                  
Time: CPU 1.38 s, Wall: 1.92 s                     
}}}"	slabbe
3	sage-5.10 Release	13962	119 days	Small improvements to Boolean polynomial docs	documentation	enhancement	mvngu	needs_work	2013-01-23T16:02:41-08:00	At #13849 Michael suggested to encourage Sage users more to look at the PolyBoRi (lowlevel) docs.	malb
3	sage-5.10 Release	10819	119 days	implementation of the cluster complex	combinatorics	enhancement		needs_work	2013-01-23T09:42:49-08:00	"The patch contains an implementation of the cluster complex for finite types.

{{{
sage: ClusterComplex(['A',3])
Cluster complex of type ['A', 3] with 9 vertices and 14 facets
}}}

The implementation depends on its realization as a subword complex."	stumpc5
3	sage-5.10 Release	8660	123 days	German translation of installation guide	documentation	enhancement	hedtke	needs_work	2013-01-20T00:09:43-08:00	"A German translation of the Sage installation guide is complete. See [http://groups.google.com/group/sage-support/browse_thread/thread/cc2232f6cba3386f sage-support] for background information. What needs to be done now is to use Sphinx for the markup so that the translated guide could be included in the Sage standard documentation. Attached is the ODF version of the German translation.

It's very likely that #8698 would be merged first, prior to merging the current ticket. In that case, the patch on this ticket would need to be rebased against #8698.

----

'''Apply'''
 1. [attachment:trac_8660_restart.2.patch]
 1. [attachment:trac_8660_restart_p1.2.patch]
 1. [attachment:trac_8660_restart_p2.2.patch]
to the '''Sage library'''.

For Sage versions prior to 4.7.1.alpha2, you'll also have to apply the patches from #9725.
"	mvngu
3	sage-5.10 Release	8829	133 days	Saturation for curves over number fields.	elliptic curves	enhancement	cremona	needs_work	2013-01-10T01:30:38-08:00	I also implemented the simple case of E.gens() for E(K) when E/Q and [K:Q] = 2. 	robertwb
3	sage-5.10 Release	2567	136 days	import MPFR_PREC_MAX from mpfr.h instead of hard coding it to the 32 bit limit	basic arithmetic	defect	somebody	needs_work	2013-01-07T00:43:50-08:00	"The discussion below is besides the point. The main issue is that we define MPFR_PREC_MAX in Sage's sources instead of pulling it in from mpfr.h. We do hard code the 32 bit value, so on 64 bit boxen we limit the user to much lower precision than is actually technically feasible as pointed out below.

Cheers,

Michael

{{{
> >  CODE:
>
> >  s = pi.str(3000000*log(10,2))
> >  o = open('/Users/ericahls/Desktop/file.txt','w')
> >  o.write(str(s))
> >  o.close()
>
> >  --- Trying to get out to the farthest decimal point of PI I can.
>
> >  Error message:
>
> >  Traceback (most recent call last):    o.write(str(s))
> >   File ""/Applications/sage/local/lib/python2.5/site-packages/sage/
> >  functions/functions.py"", line 140, in str
> >     raise ValueError, ""Number of bits must be at most 2^23.""
> >  ValueError: Number of bits must be at most 2^23.
>
> >  ----If i Put 2000000 instead 0f 3000000 the equation works.  much over
> >  2 million the equation breaks dwon.
>
> I think that 2^23 is a bound in mpfr, and Sage uses mpfr to
> compute digits of pi.  I don't know if one can compute more than
> about 2^23 digits using mpfr.
>
> William


Yes we can. The issue was that MPFR used the stack instead of the heap
for certain operations [even when told not to use alloca] and would
smash it therefore with large number of digits. That has been fixed in
MPFR 2.3.1 (which we include) and all we need to do is to raise or
remove the limit in our code and do some testing. Care to open a
ticket?

 -- Mabshoff
}}}"	was
3	sage-5.10 Release	6618	139 days	Follow up on #6591: make tightpage work even in the notebook	interfaces	defect	nthiery	needs_work	2013-01-03T12:04:01-08:00		nthiery
3	sage-5.10 Release	5288	140 days	[with patch, not ready for review] cython gray code iterator for k-combinations of a set	combinatorics	enhancement	mhansen	needs_work	2013-01-02T17:13:30-08:00	"The default iterator for k-combinations of a set in combination.py is too slow for some applications, such as the {{{is_covering()}}} function in ticket #4859.  This code defines a new class, which uses an efficient cython implementation of Chase's gray code sequence.

There is currently a discussion going on in [http://groups.google.com/group/sage-combinat-devel] about the right way to implement combinatorial classes with different iterators.  Once a method has been decided on, code can be added to make this patch conform to it."	dgordon
3	sage-5.10 Release	12798	154 days	list_plot3d plots extraneous points at z=0 and doesn't take color or rgbcolor as keywords	graphics	defect	jdemeyer	needs_work	2012-12-20T06:01:31-08:00	"1. `list_plot3d` plots extra points at the horizontal x-y plane. This seems to stem from the default value of 0.0 that is assigned in the code. See [https://groups.google.com/d/topic/sage-devel/RAdolRdjSTk/discussion this post].

2. This function also does not take in `color` or `rgbcolor` as keywords. Rest of the plot commands including `plot`, `list_plot`, `plot3d` do take in these keywords.

First attached patch fixes both these problems, second one fixes more doc and clarifies output.
----
Apply [attachment:trac_12798-fix_extraneous_points_and_kwds_in_list_plot3d.patch], [attachment:trac_12798-more-doc.3.patch] and [attachment:trac_12798-dont_pass_nan_to_ParametricSurface.patch] to `devel/sage`."	ppurka
3	sage-5.10 Release	11990	161 days	infinite sums that are infinite produce errors	calculus	defect	burcin	needs_work	2012-12-12T18:35:55-08:00	"Look at the following code:
{{{
sage: m = var('m')
sage: sum(m, m, 0, oo)
Traceback (most recent call last):
...
ValueError: Computation failed since Maxima requested additional
constraints; using the 'assume' command before summation *may* help
(example of legal syntax is 'assume(m>0)', see `assume?` for more 
details)
Is  m  positive or zero?
}}}
But inside the sum, it should be clear what `m` is. Using one of or both of the commands
{{{
sage: assume(m>=0) 
sage: assume(m, 'integer')
}}}
does not change the result. Execution of 
{{{
sage: maxima.sum(m, m, 0, oo)
}}}
results in the same (except that a `TypeError` is thrown).

A different behaviour brings the following example
{{{
sage: m = var('m')
sage: sum(2^m, m, 0, oo)
Traceback (most recent call last):
...
ValueError: Sum is divergent.
}}}
Whereas
{{{
sage: maxima.sum(2^m, m, 0, oo)
inf
}}}
"	dkrenn
3	sage-5.10 Release	10501	161 days	Deprecate adjoint in favor of adjugate	linear algebra	task	jason, was	needs_work	2012-12-12T09:31:09-08:00	"Matrix methods named `adjoint` and `_adjoint` are renamed `adjugate` and `_adjugate` and replacements are added that raise deprecation warnings.

This is part of the program at #10465.  Patch coming once tests conclude."	rbeezer
3	sage-5.10 Release	13803	168 days	Python binding to limits.h	misc	enhancement	jason	needs_work	2012-12-06T04:43:57-08:00	Prior to #12224 we need to know what C types limits. The patch provides a direct Python access to limits.h.	vdelecroix
3	sage-5.10 Release	13601	168 days	Module to load matrix from file	linear algebra	enhancement	jason, was	needs_work	2012-12-06T01:01:17-08:00	"Numpy and Scipy has functions to load matrix save in text files (Numpy: http://docs.scipy.org/doc/numpy/reference/routines.io.html and Scipy: http://docs.scipy.org/doc/scipy/reference/io.html).

Will be nice to have a Sage function to call some of this function as backend and to handle with more file formats.

In attachment trac_13601-matrix_io.patch was suggest the follow formats:
* A single matrix in a text file without header or any other information.
* Coordinate Text File.
* Octave's binary data format.
* Octave's binary data format.
* hdf5 format.
* The Matrix Market (MM) exchange formats.
* The Harwell-Boeing format.
* Matlab format.
* IDL save file.
* Mathematical Programming System (mps).

Load Matlab and IDL format was implemented as a backend of Scipy and MPS was implemented from scratch.

Load others suggest formats wasn't implemented. Neither the functions to write.

'''To improve this module to handle with any of the not implemented formats or any new format, please open other ticket.'''

Will be nice to implemented the suggest of [ticket:13601#comment:4 vbraun].



"	r.gaia.cs
3	sage-5.10 Release	13199	180 days	Use FLINT to compute the partition function	combinatorics	enhancement	sage-combinat	needs_work	2012-11-23T19:59:47-08:00	"Before:

{{{
sage: %timeit number_of_partitions(1)   
625 loops, best of 3: 2.09 µs per loop
sage: %timeit number_of_partitions(10^3)
625 loops, best of 3: 197 µs per loop
sage: %timeit number_of_partitions(10^6)
25 loops, best of 3: 32.8 ms per loop
sage: %time number_of_partitions(10^9); 
CPU times: user 37.92 s, sys: 0.00 s, total: 37.92 s
Wall time: 37.93 s
}}}

After:

{{{
sage: %timeit number_of_partitions(1)
625 loops, best of 3: 1.94 µs per loop
sage: %timeit number_of_partitions(10^3)
625 loops, best of 3: 51.4 µs per loop
sage: %timeit number_of_partitions(10^6)
125 loops, best of 3: 2.66 ms per loop
sage: %time number_of_partitions(10^9); 
CPU times: user 0.47 s, sys: 0.00 s, total: 0.47 s
Wall time: 0.48 s
}}}

TODO: should add a 64-bit only test to check that evaluation works with n >= 2^32."	fredrik.johansson
3	sage-5.10 Release	7682	194 days	Customize printing of real numbers	numerical	enhancement	AlexGhitza	needs_work	2012-11-09T10:40:22-08:00	"From http://groups.google.com/group/sage-support/browse_thread/thread/06756df51d828bf4

{{{
we probably ought to make this easier to just print the 
first n digits after the decimal by default for RR numbers, or to not 
print out the trailing zeros.  I can't imagine telling my students, for 
example, that they need to do '%.3f'%num every time they come across a 
number, especially since they just want to display the equation, not 
format it as a string.

What do people think about this interface?

sage: RR.print_digits=3
sage: 3.09384
3.094
sage: RR.print_trailing_zeros=False
sage: RR.print_digits=None
sage: 3.09384
3.09384

Make it something like the RR.scientific_notation flag that is currently 
in use.
}}}

Additionally, and more flexibly, we could just have something like:

{{{

sage: RR.set_print_format('%.3f')
sage: RR(pi)
3.142
}}}

or more pythonically

{{{
sage: RR.print_format = '%.3f'
sage: RR(pi)
3.142
}}}

Edit: the patches below do not allow you to set a C format string or number of digits, but they do provide a framework for setting field-wide printing options, and wrap the current printing options Sage has implemented (plus a few minor extensions, I think)."	jason
3	sage-5.10 Release	13568	194 days	Quaternion Orders over Number Fields	algebra	enhancement	AlexGhitza	needs_work	2012-11-09T10:17:45-08:00	Generalizes the code for quaternion orders of quaternion algebras over QQ to allow for quaternion orders of quaternion algebras over number fields.	aly.deines
3	sage-5.10 Release	13654	195 days	A normalized quadratic form for quaternion algebras.	algebra	enhancement	AlexGhitza	needs_work	2012-11-09T03:01:24-08:00	This algorithm follows John Voight's Algorithm 3.12 in Identifying the Matrix Ring.	schisholm
3	sage-5.10 Release	13683	200 days	New class for gradually transitioning parents with generators to the new coercion model	coercion	enhancement	robertwb	needs_work	2012-11-03T17:06:01-07:00	Currently, `Ring` inherits from `ParentWithGens`, making it difficult to transition rings that have generators to the new model.  This ticket adds a new class that skips over the methods in `ParentWithGens`, thus modeling what would happen if `Ring` were changed to inherit from `Parent` directly.	roed
3	sage-5.10 Release	12101	207 days	infinite recursion with exp on sparse matrix	linear algebra	defect	jason, was	needs_work	2012-10-27T18:04:29-07:00	"{{{
sage: exp(diagonal_matrix([1, 2, 3]))
  File ""/sagenb/sage_install/sage-4.7.2/local/lib/python2.6/site-packages/sage/functions/log.py"", line 126, in __call__
    dont_call_method_on_arg=dont_call_method_on_arg)
  File ""function.pyx"", line 715, in sage.symbolic.function.GinacFunction.__call__ (sage/symbolic/function.cpp:6666)
  File ""matrix2.pyx"", line 9933, in sage.matrix.matrix2.Matrix.exp (sage/matrix/matrix2.c:46796)
  File ""matrix2.pyx"", line 9933, in sage.matrix.matrix2.Matrix.exp (sage/matrix/matrix2.c:46796)
  File ""matrix2.pyx"", line 9933, in sage.matrix.matrix2.Matrix.exp (sage/matrix/matrix2.c:46796)
  File ""matrix2.pyx"", line 9933, in sage.matrix.matrix2.Matrix.exp (sage/matrix/matrix2.c:46796)
  File ""matrix2.pyx"", line 9933, in sage.matrix.matrix2.Matrix.exp (sage/matrix/matrix2.c:46796)
  File ""matrix2.pyx"", line 9933, in sage.matrix.matrix2.Matrix.exp (sage/matrix/matrix2.c:46796)
  File ""matrix2.pyx"", line 9933, in sage.matrix.matrix2.Matrix.exp (sage/matrix/matrix2.c:46796)
  File ""matrix2.pyx"", line 9933, in sage.matrix.matrix2.Matrix.exp (sage/matrix/matrix2.c:46796)
  File ""matrix2.pyx"", line 9933, in sage.matrix.matrix2.Matrix.exp (sage/matrix/matrix2.c:46796)
  File ""matrix2.pyx"", line 9933, in sage.matrix.matrix2.Matrix.exp (sage/matrix/matrix2.c:46796)
  File ""matrix2.pyx"", line 9933, in sage.matrix.matrix2.Matrix.exp (sage/matrix/matrix2.c:46796)
  File ""matrix2.pyx"", line 9933, in sage.matrix.matrix2.Matrix.exp (sage/matrix/matrix2.c:46796)
  File ""matrix2.pyx"", line 9933, in sage.matrix.matrix2.Matrix.exp (sage/matrix/matrix2.c:46796)
  File ""matrix2.pyx"", line 9933, in sage.matrix.matrix2.Matrix.exp (sage/matrix/matrix2.c:46796)
  File ""matrix2.pyx"", line 9933, in sage.matrix.matrix2.Matrix.exp (sage/matrix/matrix2.c:46796)

...
}}}


----

Apply [attachment:trac_12101-sparse-matrix-exp.patch]."	benjamin.peterson
3	sage-5.10 Release	8222	212 days	sagenb -- misc improvements to the notebook graph editor	graph theory	enhancement	rlm	needs_work	2012-10-23T06:36:23-07:00	Made the following improvements to the notebook graph editor:[[BR]][[BR]]- Increased size of graph editing window.[[BR]]- Stopped crashes occurring when the graph editor was called on a graph with fewer than 4 vertices or separate components.[[BR]]- Added the option to display vertex numbering. [[BR]]- Added slider that allows the user to adjust vertex size. [[BR]]- Added slider allowing the user to rotate the graph around the center of the editing window. [[BR]]- Added buttons allowing the user to center and maximize the graph in the editing window. [[BR]]- Added a circular layout button. [[BR]]- Added a spring-electrical force based layout algorithm.	was
3	sage-5.10 Release	11999	220 days	Renaming lazy attributes	misc	defect	jason	needs_work	2012-10-14T17:40:18-07:00	"Currently, it is not possible to take an existing lazy attribute and assign it to a different name. The reason is that a lazy attribute overwrites itself by a usual attribute of its `__name__`. But `__name__` is created during initialisation of the lazy attribute. Thus, we have the following example:
{{{
sage: class Foo(object):
....:     @lazy_attribute
....:     def _bar(self):
....:         return 5
....:     bar = _bar
....:     
sage: f = Foo()
sage: f.bar  # it seems to work,...
5
sage: f.__dict__['bar'] # ... but the lazy attribute has not become a usual attribute
Traceback (most recent call last):
...
KeyError: 'bar'
sage: f.__dict__['_bar']
5
}}}
By consequence, `f.bar` is much slower than `f._bar`:
{{{
sage: %timeit f.bar
625 loops, best of 3: 2.78 µs per loop
sage: %timeit f._bar
625 loops, best of 3: 185 ns per loop
}}}

I suggest to provide lazy attributes with a method `rename()`, returning a copy of that lazy attribute under a new name.

Example, which is a doc test of my patch:
{{{
sage: class Foo(object):
....:     @lazy_attribute
....:     def _bar(self):
....:         return 5
....:     bar = _bar.rename(""bar"")
....:     
sage: f = Foo()
sage: f.bar
5
sage: f.__dict__['bar']
5
sage: %timeit f.bar
625 loops, best of 3: 184 ns per loop
sage: %timeit f._bar
625 loops, best of 3: 184 ns per loop
}}}
"	SimonKing
3	sage-5.10 Release	13464	226 days	list good mirrors as fallback in sage-list-packages	misc	enhancement	jason	needs_work	2012-10-09T04:12:51-07:00	"This just replaces the dead scipy mirror with some reliable ones. Also, the directory must be spkg, not packages (just a matter of symlinking, but it's the other way round right now).

Note: this applies inside $SAGE_ROOT/local/bin/"	schilly
3	sage-5.10 Release	12444	230 days	givaro does not specify the class for many method calls	packages: standard	defect	GeorgSWeber	needs_work	2012-10-05T02:08:55-07:00	"These method calls occur within other methods of the class, and so gcc just lets it side by. clang on the other hand does not, so this is either fixable by prefixing all these method calls with the class name, or with ""this->"" (I chose the latter since then I didn't have to pay attention to the class names).

I've posted an spkg fixes this at [http://wstein.org/home/ohanar/clang-port/sage-5.0.beta1-src/spkg/standard/givaro-3.2.13.rc1.p4.spkg]. (This is a review spkg in case there are more issues with clang down the road.) "	rohana
3	sage-5.10 Release	13280	231 days	Extend SubgraphSearch class	graph theory	enhancement	vdelecroix	needs_work	2012-10-04T03:03:18-07:00	"In [http://ask.sagemath.org/question/133/subsets-with-condition ask-sagemath.org (question 133)] one asked the following question. Given a collection of sets how do I find a subcollection with prescribed intersections cardinality between its members. The natural way to do this is through a subgraph search but the current implementation does not allow that problem to be solved.

The patch reimplement the main method of the class SubgraphSearch adding options that allow to solve the abolve problem. An instance of the above problem is written in the documentation of sage.graphs.generic_graph.search_subgraph method."	vdelecroix
3	sage-5.10 Release	13261	233 days	Update SageTeX documentation on use with TeXShop	documentation	defect	mvngu	needs_work	2012-10-01T18:33:05-07:00	"Section 2.3 of the SageTeX documentation (""Using TeXShop"") is incomplete.  It mentions the ""%!TEX"" string, but more details are either necessary or potentially helpful.

I have modified sagetex.dtx and attached an updated .spkg.
"	justin
3	sage-5.10 Release	10286	244 days	sage-native-execute does not unset path etc.	misc	defect	jason	needs_work	2012-09-21T07:48:12-07:00	"The script unsets the LD_LIBRARY_PATH but not the PATH, and then 
executes the argument. So it essentially breaks execution of all 
programs that are shipped with sage since they can't find their 
libraries any more, unless you are lucky and the system libraries have the same version. 

3d plots on the Sage command line call ""sage-native-execute jmol"", 
which is why 3d plotting in Fedora is broken since forever, see #9232.

The goal of this ticket is to
  1. fix `sage-native-execute` to revert more of the pre-Sage environment, in particular the PATH.
  2. fix the sage library to not call `sage-native-execute` for Sage components like jmol. 

Related tickets:
  * #9386: sage-native-execute leaves traces of sage
"	vbraun
3	sage-5.10 Release	12659	259 days	build the sage library in place	build	enhancement	GeorgSWeber	needs_work	2012-09-05T13:42:35-07:00	"Use distutils to build the Sage library inplace to save on space / make it clearer which files are actually being used in runtime.

See the discussion at http://groups.google.com/group/sage-devel/browse_thread/thread/d5aef15acc4d178b"	mhansen
3	sage-5.10 Release	12048	276 days	FiniteEnumeratedSet creates elements that don't inherit from Element	combinatorics	defect	sage-combinat	needs_work	2012-08-19T12:29:18-07:00	"{{{
    sage: S = FiniteEnumeratedSet(['a','b','c'])
    sage: S('a')
    ...
    TypeError: Cannot convert str to sage.structure.element.Element
}}}"	roed
3	sage-5.10 Release	10084	285 days	Lazy power series are created with incorrect order	combinatorics	defect	sage-combinat	needs_work	2012-08-10T18:20:17-07:00	"Reported by the ""Report a Problem"" Form:

When typing the following:

{{{
S = LazyPowerSeriesRing(ZZ)
one = S(0) + S(1)
one.order
}}}

I get a ""Infinite series order"" message. When asking for
{{{
one.coefficients(3)
}}}
I get ""[0, 0, 0]"".

Looking into the code sage/combinat/species/series.py, the _add_ method calls the _new method to create the sum series. Trying:
{{{
zero = S(0)
test_series = zero._new(lambda ao: Stream(const=1), lambda: 0)
test_series.order
test_series.coefficients(3)
}}}
I again get ""Infinite series order"" and ""[0, 0, 0]"".

As I understand it, the _new() method calls the __init__() method of !LazyPowerSeries in the line:
{{{
new_fps = self.__class__(parent, stream=None, order=unk, aorder=self.aorder, aorder_changed=True, is_initialized=False)
}}}
If the value self.aorder is inf, this puts new_fps.aorder to inf, which (in the __init__() code), also puts new_fps.order to inf, which makes Sage think that the series has infinite order.

Changing the argument aorder=self.aorder to aorder=unk in the above line solved the problem.
The sum of S(0) and S(1) should have order zero, and its first three coefficients should be [1, 0, 0].

The series test_series should also have order zero, and its coefficients should be [1, 1, 1].
"	schilly
3	sage-5.10 Release	13342	288 days	Adds Abelian sandpile model to the reference manual	documentation	enhancement	mvngu	needs_work	2012-08-08T06:30:34-07:00	"There is a nice thematic tutorial on Sandpiles (http://www.sagemath.org/doc/thematic_tutorials/sandpile.html), but the functions are not included in the reference manual. This is the goal of this patch.
"	dcoudert
3	sage-5.10 Release	12442	293 days	Singular does not state return type of main() functions	build	defect	GeorgSWeber	needs_work	2012-08-02T23:48:59-07:00	"This breaks building with clang.

I've posted an spkg fixes this (and #12441) at [http://wstein.org/home/ohanar/clang-port/sage-5.0.beta1-src/spkg/standard/singular-3-1-3-3.p5.spkg]. (This is a review spkg in case there are more issues with clang down the road.)"	rohana
3	sage-5.10 Release	13235	297 days	Implement some new features for partitions (hook_cells, etc.)	combinatorics	enhancement	sage-combinat	needs_work	2012-07-29T19:38:45-07:00	"Implements the following methods for partitions:
1. A method which returns the list of cells in the hook of (i,j).
2. A method which returns the list of cells in the rim hook of (i,j).
3. A method which returns the partition removing the rim hook of (i,j).
4. A method which returns the list of cells with content k.
"	numata
3	sage-5.10 Release	13283	302 days	Tolerance Graphs (graph generators, etc.)	graph theory	enhancement	jason, ncohen, rlm	needs_work	2012-07-25T02:56:09-07:00	"Intersection graphs are generated by a representations of geometric objects like intervals, parallelograms, etc. Unlike graphs listed under ""Families of Graphs"" in graph_generators.py, these graphs do not depend on just a few integer parameters. Hence, we create a new section ""Intersection Graphs"". Example classes of intersection graphs are interval graphs and permutation graphs (already implemented) as well as tolerance graphs or trapezoid graphs.

A tolerance graph is generated by a tolerance representation. And a ''tolerance representation'' can be described by a list `((l_0,r_0,t_0), (l_1,r_1,t_1), ..., (l_k,r_k,t_k))` where `I_i = (l_i,r_i)` denotes a closed interval on the real line and `t_i` a positive value, called tolerance. This representation generates the ''tolerance graph'' with the vertex set {0, 1, ..., k} and the edge set

`{(i, j): |I_i \cap I_j| >= min{t_i, t_j} }`

where ``|I_i \cap I_j|`` denotes the length of the intersection of `I_i` and `I_j`.

----

For easier review, our patch is divided into parts.

Part 1 (...-1_intersection_graphs.patch):
- Creating section ""Intersection Graphs""
- Moving of functions `IntervalGraph`, `PermutationGraph` into this section

Part 2 (...-2_tolerance_graphs.patch):
- typo in documentation of `PermutationGraph`
- Adding method `ToleranceGraph` which generates the tolerance graph for a given tolerance representation
- Adding methods to generate random (bounded) tolerance representations

Part 3 (...-3_whitespaces_nearby.patch):
- removing some trailing white spaces above the new method `ToleranceGraph`
"	eisermbi
3	sage-5.10 Release	8701	304 days	implement scalar-valued Siegel modular forms on Sp(4,Z)	modular forms	enhancement	craigcitro	needs_work	2012-07-23T01:34:44-07:00	"At Sage Days 20.25 in Montreal, we have decided to submit an initial version of the Siegel modular forms code by Friday 16 April 2010.

It's now a few minutes before midnight, and lest I turn into a pumpkin, I am uploading a patch with what we have so far.

I'm marking it as ""needs work"" since there are still a number of issues to be resolved.  I'll list these in the comments soon.

To clarify: I submitted this just before midnight Seattle time, so one could argue that it was before the deadline :)

The patch applies cleanly to sage-4.4.3 and sage-4.4.4.alpha0, and passes all tests.  The doctest coverage is 98.8% (81 out of 82 functions).  The patch will not work with earlier versions of Sage since it depends on patches at #8602 and #8681 which have now been  merged.

I believe that the objective of this first submission is to have something that works perfectly in the case of scalar-valued forms on {{{Sp(4,Z)}}}.  Here are the issues that I am aware of and are still blocking this:

 1. We need top-level documentation in {{{siegel_modular_form.py}}} that explains in detail how the code is meant to be used, what the interesting features are, etc.  We also need to explain how precisions work (either in the main file or in {{{siegel_modular_form_prec.py}}}
 1. The computation of the generators for {{{weights='all'}}} breaks at the fifth generator
 1. The argument {{{degree}}} in {{{_siegel_modular_forms_generators}}} should be properly documented, and there should be a doctest for it (I don't like the name ""degree"" BTW, because it already has a meaning for Siegel modular forms)
 1. The argument {{{default_prec}}} in {{{SiegelModularFormsAlgebra}}} should be documented
 1. There are a few docstrings left that are not valid ReST, and there is one error while building the documentation 
 1. We should put copyright headers in all the source files in the directory.

If you want to add to or modify these, please feel free to do this by editing the description on this ticket."	AlexGhitza
3	sage-5.10 Release	9677	307 days	Sage Sets don't implement genuine comparison	basic arithmetic	defect	AlexGhitza	needs_work	2012-07-19T08:34:25-07:00	"Right now there is either equals, or less than. If `a != b`, then we get `a < b` but not `b > a`:
{{{
sage: a = Set([1])
sage: b = Set([])
sage: a == b
False
sage: a < b
True
sage: b > a
False
}}}

This came up in

http://groups.google.com/group/sage-devel/browse_thread/thread/1c058efd05d3b91f"	rlm
3	sage-5.10 Release	12824	312 days	Delete some of the depreciated is_* functions.	misc	task	tbd	needs_work	2012-07-14T15:25:44-07:00	"As discussed here: [http://groups.google.com/group/sage-devel/browse_thread/thread/e8c2470e270f616b/c760f4a79d28f467?lnk=gst&q=is_#], functions of the form is_SomeName(x) are depreciated and have been for some time.  This patch removes 106 of them and replaces them with calls to isinstance.  The patch was created by running the attached python script.  It searches through the source for functions of the form

{{{
def is_SomeName(x):
    """"""a docstring""""""
    return isinstance(x, SomeName)
}}}

where SomeName is the class of a Sage object, deletes them, and replaces any calls with calls to isinstance.  After the script ran I made sure sage built, passed all its tests, and I looked through the diff to make sure nothing silly happened."	JStarx
3	sage-5.10 Release	10555	314 days	Add services to Sage.app	user interface	enhancement	iandrus	needs_work	2012-07-13T04:56:34-07:00	"Add services to Sage.app like evaluating Sage code in place and creating a new notebook with selection.
"	iandrus
3	sage-5.10 Release	12733	316 days	norm of symbolic matrices gives an error	linear algebra	defect	jason, was	needs_work	2012-07-10T12:15:19-07:00	"This was reported on ask.sagemath.org: http://ask.sagemath.org/question/1244/symbolic-vector-norm

Here is an example

{{{
sage: matrix(SR,[[x]]).norm()

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)

/Users/grout/<ipython console> in <module>()

/Users/grout/sage-trees/sage-5.0.beta6/local/lib/python2.7/site-packages/sage/matrix/matrix2.so in sage.matrix.matrix2.Matrix.norm (sage/matrix/matrix2.c:47759)()

/Users/grout/sage-trees/sage-5.0.beta6/local/lib/python2.7/site-packages/sage/matrix/matrix0.so in sage.matrix.matrix0.Matrix.change_ring (sage/matrix/matrix0.c:8151)()

/Users/grout/sage-trees/sage-5.0.beta6/local/lib/python2.7/site-packages/sage/matrix/matrix_space.pyc in __call__(self, entries, coerce, copy, rows)
    554             return self(entries.matrix(), copy=False)
    555 
--> 556         return self.matrix(entries, copy=copy, coerce=coerce, rows=rows)
    557 
    558     def change_ring(self, R):

/Users/grout/sage-trees/sage-5.0.beta6/local/lib/python2.7/site-packages/sage/matrix/matrix_space.pyc in matrix(self, x, coerce, copy, rows)
   1403                     x = new_x
   1404                     copy = False
-> 1405         return self.__matrix_class(self, entries=x, copy=copy, coerce=coerce) 
   1406      
   1407     def matrix_space(self, nrows=None, ncols=None, sparse=False):

/Users/grout/sage-trees/sage-5.0.beta6/local/lib/python2.7/site-packages/sage/matrix/matrix_double_dense.so in sage.matrix.matrix_double_dense.Matrix_double_dense.__init__ (sage/matrix/matrix_double_dense.c:3215)()

/Users/grout/sage-trees/sage-5.0.beta6/local/lib/python2.7/site-packages/sage/symbolic/expression.so in sage.symbolic.expression.Expression.__complex__ (sage/symbolic/expression.cpp:5926)()

TypeError: unable to simplify to complex approximation
}}}

The problem appears to be an automatic coercion to RDF or CDF.  Maybe symbolic matrices should override the method."	jason
3	sage-5.10 Release	5313	321 days	"patch singular so that when it runs out of memory the error message says ""singular"" in it"	commutative algebra	enhancement	malb	needs_work	2012-07-05T07:57:29-07:00	"When looking at #3760 it took a long long time to see that this had anything whatever to do with singular.  To speed this up, we should patch two files in Singular so that instead of getting

{{{
error: no more memory
System 5120k:5120k Appl 4638k/481k Malloc 4095k/0k Valloc 1024k/480k Pages 153/103 Regions 2:2

halt 14
}}}
as an error, one gets

{{{
SINGULAR error: no more memory
System 5120k:5120k Appl 4638k/481k Malloc 4095k/0k Valloc 1024k/480k Pages 153/103 Regions 2:2
...
and then an exception is raised!
}}}"	was
3	sage-5.10 Release	1173	325 days	implement numerical evaluation of erf at complex arguments via mpmath algorithm	calculus	enhancement	was	needs_work	2012-07-02T07:02:22-07:00	"When implemented, this would work:
{{{
sage: erf(2.0, algorithm='mpmath')
...
}}}

---------------------------------------

Release manager, apply to the Sage library:
 1. patch [http://trac.sagemath.org/sage_trac/attachment/ticket/11513/trac_11513-is_numerically_zero.patch trac_11513-is_numerically_zero.patch] at #11513
 2. patch [http://trac.sagemath.org/sage_trac/attachment/ticket/1173/trac_1173_complex_erf_v3.patch trac_1173_complex_erf_v3.patch]  attached to this ticket."	was
3	sage-5.10 Release	9671	327 days	Improve bar chart and histogram support	graphics	enhancement	jason, was	needs_work	2012-06-29T08:48:24-07:00	The current state is not ideal.  One either uses {{{bar_chart}}}, which doesn't allow any control of where the bars actually go, or {{{IndexedSequence.plot_histogram}}}, which looks sort of clunky (at least the one example in the doc).  Matplotlib has very nice bar charts and histograms, obviously, so combining the approaches of these two to unify this would be very good.  Ideally one could do labels or place bars of given height at various locations.	kcrisman
3	sage-5.10 Release	7024	336 days	Flint ignores CC and CXX.	build	defect	tbd	needs_work	2012-06-21T05:55:28-07:00	"Flitn 1.3.0.p2 is one of several programs which ignores the settings of CC and CXX and users a gcc and g++ that it finds. 


{{{

flint-1.3.0.p2/src/profiler.h
flint-1.3.0.p2/src/mpn_extras-test.c
Finished extraction
****************************************************
Host system
uname -a:
SunOS swan 5.10 Generic_139555-08 sun4u sparc SUNW,Sun-Blade-1000
****************************************************
****************************************************
CC Version
/opt/xxxsunstudio12.1/bin/cc -v
usage: cc [ options] files.  Use 'cc -flags' for details
****************************************************
Found gcc 4 or later
Turning off loop unrolling on Solaris/Sparc
make[2]: Entering directory `/export/home/drkirkby/sage/gcc32/sage-4.1.2.alpha2/spkg/build/flint-1.3.0.p2/src'
gcc -std=c99 -I/export/home/drkirkby/sage/gcc32/sage-4.1.2.alpha2/local/include/ -I/export/home/drkirkby/sage/gcc32/sage-4.1.2.alpha2/local/include  -fPIC  -O2  -DNDEBUG -o zn_mod.o -c zn_poly/src/zn_mod.c
}}}

This needs fixing to add support for the Sun Studio compilers.

'''spkg''':
[http://wstein.org/home/ohanar/clang-port/sage-5.0.beta1-src/spkg/standard/flint-1.5.0.p11.spkg]
"	drkirkby
3	sage-5.10 Release	13022	338 days	Make PyQt an optional spkg	packages: optional	enhancement	tbd	needs_work	2012-06-18T07:53:37-07:00	"If you want to use the new IPython QT console you need !PyQt (and its dependency sip). This ticket adds the relevant spkgs. Together with zeromq/pyzmq (#12843), I can now run the IPython qtconsole. You need to have qt development libraries already installed in your base system, this only makes Qt available from Sage.

* http://www.stp.dias.ie/~vbraun/Sage/spkg/sip-4.13.2.p0.spkg
* http://www.stp.dias.ie/~vbraun/Sage/spkg/PyQt_x11-4.9.1.p0.spkg
"	vbraun
3	sage-5.10 Release	12938	339 days	several spkg's don't install if the .hg repos have been deleted	distribution	defect	tbd	needs_work	2012-06-17T23:37:09-07:00	"For security *and* size purposes, some people delete all the .hg repos from
Sage.  This breaks installing precisely four of them: extcode, sage, sage_root, sage_scripts.  This ticket fixes all these."	was
3	sage-5.10 Release	6416	352 days	Use Frobby for monomial ideals	commutative algebra	enhancement	malb	needs_work	2012-06-05T07:10:38-07:00	"This spkg and patch updates the Frobby library that is already an optional component of Sage, and gives it a Cython interface to a shared library instead of the pexpect interface in the current Frobby spkg. It also exposes more functionality. Functionality not currently in sage:

 - Multigraded Hilbert-Poincare series
 - Alexander dual of monomial ideals (already in the previous Frobby spkg)
 - Maximal standard monomials of monomial ideals
 - Irreducible decomposition of monomial ideals
 - Optimization of any linear function over the maximal standard monomials of a monomial ideal using branch-and-bound.

The patch applies cleanly to Sage 4.0.1, and the spkg is at

  http://www.daimi.au.dk/~bjarke/frobby-0.8.0.spkg
"	broune
3	sage-5.10 Release	10132	352 days	Parametrization of (metric) surfaces in 3D euclidean space	geometry	enhancement	mikarm	needs_work	2012-06-04T23:31:33-07:00	"This patch aims to implement a class for embedded surfaces in the three dimensional euclidean space described by a parametrization. Its focus on the computation of metric invariants (first and second fundamental forms, Gaussian curvature, ...) and more involved geometry (geodesics, ...).

Apply trac_10132_sage-5.beta10.patch

Tested under sage-5.0.beta10."	mikarm
3	sage-5.10 Release	1483	355 days	[with patch, needs work] animate -- polish the animate command	graphics	enhancement	mhampton	needs_work	2012-06-01T12:20:25-07:00	"{{{


On Dec 12, 2007 12:22 PM, kcrisman <> wrote:
> 
> 
> 
> 
> >
> > > The question:
> > > Is there any way to get SAGE to update a graphic without actually
> > > creating a new graphic, either in command-line mode or in notebook?
> >
> > Would creating an animation be a reasonable substitute?
> > E.g.,
> >
> > {{{id=119|
> > a = random_matrix(GF(37),10)*10
> > b = [a^i for i in [1..37]]
> >
> > }}}
> >
> > {{{id=122|
> > A = animate(matrix_plot(x) for x in b)
> >
> > }}}
> >
> > {{{id=120|
> > show(A)
> >
> > }}}
> 
> Oh, yes, this is exactly it - I feel a little silly for not thinking
> of searching for ""animate"".
> 
> Though it is still not at all easy to figure out how to do it.  You
> have to think of animate; then you have to figure out that the mystery
> error message about 'convert' means you should find Imagemagick; then
> you have to figure out how to get it and unpack it (luckily I have
> Fink), etc.  So another example of a steepish learning curve.  Still,
> good to know how to do it.  Actually, animate has some very
> interesting methods - I am really looking forward to trying the
> addition of animations!

I totally agree.  It would be great if somebody new of a simple
lightweight tool or way to assemble a bunch of png's together
into an animated gif -- I used convert (via imagemagick) since
it was the only thing I could find that works.  Regarding
the lack of a good error message that explains what convert
is, how to install it, etc., that is mainly because I wrote the animate
command pretty recently specifically for a high-school workshop I was
running, and didn't have to worry about convert not being
available.   animate hasn't got the additional polish it deserves. 

> On a different note (and I don't know what people think of this, as
> it's not really SAGE) I noticed two problems, perhaps unique to Mac,
> after the SAGE stuff is resolved.  First, if you do it command-line,

That's a good point -- that should be changed.  

> Preview opens the animated .gif up automatically and won't play it (it
> lists all the individual frames), and I couldn't even save it there,
> nor drag it into a browser to play it (had to dig into the .sage
> directory in Terminal to do this).  Second, when I do it in the
> browser, it just plays forever like any other dorky animated .gif on a
> 1995-vintage website.  Is this a bug or a feature?

Animate *is* outputting a dorky animated .gif 1995-vintage style.
The con is that it looks dorky.  The pro is that you can save that give
and trivially put it on any web page, etc.

 -- William
}}}"	was
3	sage-5.10 Release	8776	355 days	notebook: sage notebook undo doesn't really work, due to not enough (=no) automatic snapshots, or other bugs	notebook	defect	jason, was	needs_work	2012-06-01T10:51:16-07:00	"I think Cremona's email says it best:
{{{
For the first time, I just tried using the ""Undo"" function on a
worksheet since I had messed something up.  But all the revisions I
was offered, even those from a day ago, look the same as the current
version!

This is 4.3.5 running on a 64-bit ubuntu server.

I have found it very useful that my students can work on something in
a worksheet owned by them, and then share it with me, so that when
they come to see me to talk about it we can go through it in detail on
my own computer at our meeting.  (This is really a fantastic feature).
 But just now I was having a look at a student's worksheet the day
before our meeting, and made some changed to it which I later
regretted and tried to revert.  Without success....

Any suggestions welcome!

John Cremona
}}}"	was
3	sage-5.10 Release	7851	355 days	libz igoresSAGE64 other than on OS X	porting	defect	drkirkby	needs_work	2012-06-01T10:50:30-07:00	"The spkg-install of libz zlib-1.2.3.p5 has this:

{{{
if [ `uname` = ""Darwin"" -a ""$SAGE64"" = ""yes"" ]; then
   CFLAGS="" -m64 $CFLAGS -fPIC -g -I\""$SAGE_LOCAL/include\""""
   cp ../patches/configure-OSX-64 configure
else
   CFLAGS=""$CFLAGS -fPIC -g -I\""$SAGE_LOCAL/include\""""
fi
export CFLAGS
}}}

so is almost doomed to a 64-bit build unless one sets CFLAGS externally. "	drkirkby
3	sage-5.10 Release	12455	359 days	Make Airy functions symbolic	symbolics	enhancement	olazo	needs_work	2012-05-28T22:15:04-07:00	"As discussed in [http://groups.google.com/group/sage-support/browse_thread/thread/f458d0f9cfd89c9a sage-support].

Currently sage can evaluate airy functions numerically:
{{{
sage: airy_ai(1.4)
0.0820380498076
}}}

but it doesn't work symbolically

{{{
sage: airy_ai(x)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)

/home/oscar/Escritorio/tesis/calculos/<ipython console> in <module>()

/home/oscar/sage/sage-4.7.1/local/lib/python2.6/site-packages/sage/functions/special.pyc in airy_ai(x)
    621    """"""
    622    _init()
--> 623    return RDF(meval(""airy_ai(%s)""%RDF(x)))
    624 
    625 def airy_bi(x):

/home/oscar/sage/sage-4.7.1/local/lib/python2.6/site-packages/sage/structure/parent.so in sage.structure.parent.Parent.__call__ (sage/structure/parent.c:7102)()

/home/oscar/sage/sage-4.7.1/local/lib/python2.6/site-packages/sage/structure/coerce_maps.so in sage.structure.coerce_maps.NamedConvertMap._call_ (sage/structure/coerce_maps.c:4221)()

/home/oscar/sage/sage-4.7.1/local/lib/python2.6/site-packages/sage/symbolic/expression.so in sage.symbolic.expression.Expression._real_double_ (sage/symbolic/expression.cpp:5391)()

/home/oscar/sage/sage-4.7.1/local/lib/python2.6/site-packages/sage/symbolic/expression.so in sage.symbolic.expression.Expression._eval_self (sage/symbolic/expression.cpp:4898)()

TypeError: Cannot evaluate symbolic expression to a numeric value.
}}}

We should make it symbolical for both airy_ai and airy_bi, as well as their derivatives."	olazo
3	sage-5.10 Release	1481	362 days	a matrix plot is wrong when matrix entries are not representable as floats.	graphics	defect	was	needs_work	2012-05-25T14:22:16-07:00	"{{{
sage: m=matrix(ZZ,1,[16]); m
[16]
sage: matrix_plot(m^10).show()
---------------------------------------------------------------------------
<type 'exceptions.OverflowError'>         Traceback (most recent call last)

/home/grout/.sage/<ipython console> in <module>()

/home/grout/sage/local/lib/python2.5/site-packages/sage/plot/plot.py in show(self, xmin, xmax, ymin, ymax, figsize, filename, dpi, axes, axes_label, frame, fontsize, **args)
    654         if filename is None:
    655             filename = sage.misc.misc.tmp_filename() + '.png'
--> 656         self.save(filename, xmin, xmax, ymin, ymax, figsize, dpi=dpi, axes=axes,frame=frame, fontsize=fontsize)
    657         os.system('%s %s 2>/dev/null 1>/dev/null &'%(sage.misc.viewer.browser(), filename))
    658

/home/grout/sage/local/lib/python2.5/site-packages/sage/plot/plot.py in save(self, filename, xmin, xmax, ymin, ymax, figsize, figure, sub, savenow, dpi, axes, axes_label, fontsize, frame, verify)
    766             if isinstance(g, GraphicPrimitive_MatrixPlot):
    767                 matrixplot = True
--> 768             g._render_on_subplot(subplot)
    769
    770         #adjust the xy limits and draw the axes:

/home/grout/sage/local/lib/python2.5/site-packages/sage/plot/plot.py in _render_on_subplot(self, subplot)
   1102             print ""The possible color maps include: %s""%possibilities
   1103             raise RuntimeError, ""Color map %s not known""%cmap
-> 1104         subplot.imshow(self.xy_data_array, cmap=cmap, interpolation='nearest')
   1105
   1106 # Below is the base class that is used to make 'field plots'.

/home/grout/sage/local/lib/python2.5/site-packages/matplotlib/axes.py in imshow(self, X, cmap, norm, aspect, interpolation, alpha, vmin, vmax, origin, extent, shape, filternorm, filterrad, imlim, **kwargs)
   4053                        filterrad=filterrad, **kwargs)
   4054
-> 4055         im.set_data(X)
   4056         im.set_alpha(alpha)
   4057         self._set_artist_props(im)

/home/grout/sage/local/lib/python2.5/site-packages/matplotlib/image.py in set_data(self, A, shape)
    224             or X.shape[2] > 4
    225             or X.shape[2] < 3):
--> 226             cm.ScalarMappable.set_array(self, X)
    227         else:
    228             self._A = X

/home/grout/sage/local/lib/python2.5/site-packages/matplotlib/cm.py in set_array(self, A)
     65             self._A = A.astype(nx.Float32)
     66         else:
---> 67             self._A = A.astype(nx.Int16)
     68
     69     def get_array(self):

/home/grout/sage/local/lib/python2.5/site-packages/numpy/core/ma.py in astype(self, tc)
   1148     def astype (self, tc):
   1149         ""return self as array of given type.""
-> 1150         d = self._data.astype(tc)
   1151         return array(d, mask=self._mask)
   1152

<type 'exceptions.OverflowError'>: long int too large to convert to int
}}}"	jason
3	sage-5.10 Release	12827	370 days	Expand Animation class to accept more graphics types	graphics	enhancement	jason, was	needs_work	2012-05-17T10:53:26-07:00	"Currently the `Animation` class only animates `Graphics` objects, and throws an error for `Graphics3d`, `GraphicsArray`, and `Tachyon` objects.  The behavior of this class should be improved to accept any Sage object whose `save` method produces an image.

See this [https://groups.google.com/forum/?fromgroups#!topic/sage-devel/9TzVOj70ADU sage-devel] thread for the beginning of this discussion, including some discussion of possible solutions.


== Apply ==

* [attachment:trac_12827_animate3d_save_image.patch]"	niles
3	sage-5.10 Release	5310	373 days	Add an spkg to Sage for Msieve factoring program	interfaces	enhancement		needs_work	2012-05-15T02:54:44-07:00	"This addition of Msieve will hopefully enhance Sage's Integer Factorization ability for all integers of a reasonable size, and provide the opportunity for users to utilize the Number Field Sieve.

spkg located:  

http://309codesign.com/code/

An explanation of Msieve from its documentation:
""There are plenty of algorithms for performing integer factorization. 
The Msieve library implements most of them from scratch, and relies on
optional external libraries for the rest of them. Trial division and
Pollard Rho is used on all inputs; if the result is less than 25 digits 
in size, tiny custom routines do the factoring. For larger numbers, the code
switches to the GMP-ECM library and runs the P-1, P+1 and ECM algorithms,
expending a user-configurable amount of effort to do so. If these do not 
completely factor the input number, the library switches to the heavy  
artillery. Unless told otherwise, Msieve runs the self-initializing quadratic
sieve algorithm, and if this doesn't factor the input number then you've
found a library problem. If you know what you're doing, Msieve also contains
a complete implementation of the number field sieve, that has helped complete
some of the largest public factorization efforts known.""
and
""To be as fast as possible. I claim (without proof) that for
          completely factoring general inputs between 40 and 100 digits
          in size, Msieve is faster than any other code implementing any
          other algorithm.""

----

'''New spkg:''' [http://trac.sagemath.org/sage_trac/raw-attachment/ticket/5310/msieve-1.49.p0.spkg]

'''Apply:'''
 1. [attachment:trac_5310_msieve_149.patch]
to the Sage library.
"	jblakeslee
3	sage-5.10 Release	9457	384 days	power series comparison should use padded_list	commutative algebra	defect	malb	needs_work	2012-05-03T08:11:34-07:00	"Comparison of power series uses list instead of padded_list; this means that power series equality can fail:

{{{
sage: A.<t> = PowerSeriesRing(ZZ)
sage: g = t + t^3 + t^5 + O(t^6); g
t + t^3 + t^5 + O(t^6)
sage: [g == g.add_bigoh(i) for i in range(7)]
[True, False, True, False, True, False, True]
sage: g.add_bigoh(3).list()
[0, 1]
sage: g.add_bigoh(3).padded_list()
[0, 1, 0]
}}}

== Apply ==

* [attachment: trac_9457_power_series_eq_rebase.patch]

"	niles
3	sage-5.10 Release	8321	398 days	numerical integration with arbitrary precision	symbolics	defect		needs_work	2012-04-19T10:39:09-07:00	"From the sage-devel:

{{{
On Feb 20, 2010, at 12:40 PM, John H Palmieri wrote:
...
> I was curious about this, so I tried specifying the number of digits:
>
> sage: h = integral(sin(x)/x^2, (x, 1, pi/2)); h
> integrate(sin(x)/x^2, x, 1, 1/2*pi)
> sage: h.n()
> 0.33944794097891573
> sage: h.n(digits=14)
> 0.33944794097891573
> sage: h.n(digits=600)
> 0.33944794097891573
> sage: h.n(digits=600) == h.n(digits=14)
> True
> sage: h.n(prec=50) == h.n(prec=1000)
> True
>
> Is there an inherit limit in Sage on the accuracy of numerical
> integrals?  
}}}

The `_evalf_` function defined on line 179 of `sage/symbolic/integration/integral.py` calls the gsl `numerical_integral()` function and ignores the precision.

We should raise a `NotImplementedError` for high precision, or find a way to do arbitrary precision numerical integration.
"	burcin
3	sage-5.10 Release	6079	401 days	[with patch, needs work] modernize base inclusion morphism of relative number fields	number fields	enhancement	davidloeffler	needs_work	2012-04-17T05:18:04-07:00	"The patch adds a class for the morphism embedding the base into a relative number field extension, and (much more useful) the partially defined section going back.

It also adds a verbose(level=4) stack trace whenever nfinit and rnfinit are called.  It's a huge pain trying to work around such calls without a mechanism to see them, so here it is."	ncalexan
3	sage-5.10 Release	12432	403 days	zlib fails to compile shared libs with clang	build	defect	GeorgSWeber	needs_work	2012-04-14T14:50:37-07:00	"The solution is to configure zlib as if you were compiling with gcc.

I've posted an spkg at [http://wstein.org/home/ohanar/spkgs/zlib-1.2.6.p0.spkg]."	rohana
3	sage-5.10 Release	12699	409 days	Stopgap for 9505	symbolics	defect	burcin	needs_work	2012-04-08T10:03:58-07:00	need to use {{{ sage.misc.stopgap }}} instead of {{{ sage.misc.misc }}}	jen
3	sage-5.10 Release	11736	418 days	Linear time implementation of lex_BFS()	graph theory	enhancement	jason, ncohen, rlm	needs_work	2012-03-30T15:22:39-07:00	"The current implementation of lex_BFS() is quadratic, which is not optimal. The usual way to do it in linear time is through a clever use of doubly linked lists, but in (1) there is a way with static arrays, which I coded in Python.

There is one thing, though: in (2) there is a new algorithm for is_interval() that avoids PQ-trees, and just uses various passes of lex_BFS() (implemented with doubly linked lists).
So maybe in the long run it would be better to do it with doubly linked lists in Cython.

(1) Habib, McConnell, Paul and Viennot. Lex-BFS and Partition Refinement, with Applications to Transitive Orientation, Interval Graph Recognition and Consecutive Ones Testing. TCS 234, 2000.

(2) Corneil, Olariu and Stewart. The LBFS Structure and Recognition of Interval Graphs. SIAMDM 23(4), 2009."	ddestrada
3	sage-5.10 Release	8672	423 days	SCIP support	linear programming	enhancement	jason, jkantor	needs_work	2012-03-25T16:43:01-07:00	"Based upon Harald Schilly's SPKG for SCIP, here is a patch to enable the use of this solver through the usual interface for LP.

Requires #8172 (though none of GLPK, CBC or CPLEX needs to be installed)

Nathann"	ncohen
3	sage-5.10 Release	12436	426 days	lcalc uses variable length arrays	build	defect	GeorgSWeber	needs_work	2012-03-22T12:13:21-07:00	"This is an issue for building on non-gnu compilers. While not perfect, a solution for this is to use std::vector.

I've posted an spkg with this solution (fixes #12435, #12437) at  [http://wstein.org/home/ohanar/clang-port/sage-5.0.beta1-src/spkg/standard/lcalc-1.23.p10.spkg]. (This is a review spkg in case there are more issues with clang down the road.) "	rohana
3	sage-5.10 Release	12437	427 days	lcalc defines default values for functions outside of declarations	build	defect	GeorgSWeber	needs_work	2012-03-22T05:33:12-07:00	"c++ compilers that are pickier than g++ will not allow this.

I've posted an spkg that fixes this (and #12435, #12436) at [http://wstein.org/home/ohanar/clang-port/sage-5.0.beta1-src/spkg/standard/lcalc-1.23.p10.spkg]. (This is a review spkg in case there are more issues with clang down the road.)"	rohana
3	sage-5.10 Release	11835	427 days	Class for ternary quadratic forms	quadratic forms	enhancement	justin	needs_work	2012-03-21T23:48:43-07:00	Class of ternary quadratic forms.	gdrama
3	sage-5.10 Release	12133	430 days	New spkg for extended tables of prime factors	factorization	enhancement	tbd	needs_work	2012-03-18T13:51:41-07:00	Richard Brent has tables of prime factors of numbers of the form b^k^ + 1 and b^k^ - 1 extending beyond the scope of the Cunningham tables.  They can be found at his website http://maths.anu.edu.au/~brent/factors.html.  This spkg adds them to Sage, and the corresponding patch uses the data in integer factorization if it's available.	roed
3	sage-5.10 Release	10229	430 days	Deleting attached files causes major problems	user interface	defect	was	needs_work	2012-03-18T08:02:29-07:00	"Create a file, attach it in a Sage session, then delete/move the file.  Sage does not like this - and every command results in `OSError: [Errno 2] No such file or directory: '/path/to/attached/file.py`.  It won't even let you detach the file.

At the moment before each command is executed, Sage checks to see if any attached files have been modified.  Presumably instead it should except this error, remove the file from the list of attached files, and inform the user.

Discovered by rossk when reviewing #378.

Apply [attachment:trac_10229-2.patch]"	flawrence
3	sage-5.10 Release	12428	432 days	make flintqs respect global CXX flag	build	defect	GeorgSWeber	needs_work	2012-03-16T22:00:38-07:00	"The flintqs spkg currently does not respect the global CXX flag, we should fix this (for instance for #12426).

I've posted an spkg at [http://wstein.org/home/ohanar/clang-port/sage-5.0.beta1-src/spkg/standard/flintqs-20070817.p7.spkg]."	rohana
3	sage-5.10 Release	12053	436 days	Ideals in p-adic rings	padics	enhancement	roed	needs_work	2012-03-12T11:27:15-07:00	"Adds a new class for ideals in discrete valuation rings that improves speed and comparison.

Prerequisite for #12077, #8240."	roed
3	sage-5.10 Release	10734	436 days	Improve matrix_modn_sparse methods for converting to dense and taking submatrices	linear algebra	enhancement	was	needs_work	2012-03-12T10:32:26-07:00	Here I'll post some improvements that are needed for #10733 but are of independent interest.	tornaria
3	sage-5.10 Release	11772	437 days	improving error reporting of random_matrix, and bug fixing	linear algebra	enhancement	jason, was	needs_work	2012-03-11T20:43:46-07:00	"The error message of the call to random_matrix(QQ, 4, 8, rank=5) is quite cryptic.
It should be easy to check that the rank is greater than min(nrows,ncols) and throw a ValueError with a meaningful message.

A patch, which also fixes a similar small fly in random_subspaces_matrix, is attached.
The cumulative patch incorporates more doctests, the fix for rank==1 problem described in the comments, and puts a cup on the number of iterations in various while loops, so that they fail meaningfully.

'''Apply''':
  1.  [attachment:trac_11772.2.patch]
"	dimpase
3	sage-5.10 Release	9586	437 days	Lecture Scheduler	numerical	enhancement	jason, jkantor	needs_work	2012-03-11T08:50:26-07:00	"Let Sage schedule all the lectures at a university via an object oriented framework using the MILP solver infrastructure.

[http://sagenb.org/home/pub/2275/ preliminary example]"	schilly
3	sage-5.10 Release	12610	438 days	Implementation of Baxter permutations	combinatorics	enhancement	sage-combinat	needs_work	2012-03-11T07:29:54-07:00	We implement the combinatorial class of Baxter permutations. Baxter permutations are permutations that avoid certain permutation patterns.	giraudo
3	sage-5.10 Release	11043	446 days	Lazily import plot.	misc	defect	jason	needs_work	2012-03-02T11:34:38-08:00	"Improve startup time.
"	robertwb
3	sage-5.10 Release	11529	452 days	Rooted trees	combinatorics	enhancement	hivert	needs_work	2012-02-25T16:02:00-08:00	"Implement combinatorial rooted trees also know as Cayley trees
"	hivert
3	sage-5.10 Release	12560	452 days	Artin Hasse Exponential	padics	enhancement	roed	needs_work	2012-02-25T14:13:05-08:00	add Artin Hasse Exponential to Zp and Qp	magfrump
3	sage-5.10 Release	12504	464 days	the gfan SPKG.txt has the wrong copyright statement	packages: standard	defect	tbd	needs_work	2012-02-14T06:34:45-08:00	"That said, it would be good to change the line in *our* SPKG.txt for gfan that says:

""== License ==
 * GPL v2""

This line was added in 2010 by Alex Ghitza and positively reviewed by Marshal Hampton (see #7820).  They claimed to be dealing with trac #3043 (from 4 years ago) which specifically asked for clarification of this.  The first comment on trac #3043 was by Michael Abshoff (who has actually read the GPL) where he explained very clearly exactly how things work with GPL, and that the software is clearly GPLv2+.  Then Alex completely ignored/misinterpreted Michael's remark..."	was
3	sage-5.10 Release	6426	469 days	ECHIDNA (Elliptic Curves and Higher Dimensional Analogues)	number theory	enhancement	was	needs_work	2012-02-09T01:59:32-08:00	"This is a repository of Magma code for arithmetic geometry and number theory.  The latest spkg is echidna-2.0.spkg, can be downloaded from:

http://echidna.maths.usyd.edu.au/kohel/alg/

This should be tested with the Sage worksheet:

http://echidna.maths.usyd.edu.au/kohel/doc/ECHIDNA.sws

A printed pdf version is here:

http://echidna.maths.usyd.edu.au/kohel/doc/ECHIDNA.pdf

This spkg is submitted for consideration as an optional 
package.
"	kohel
3	sage-5.10 Release	11975	470 days	Chow-Heegner points	elliptic curves	enhancement	cremona	needs_work	2012-02-07T13:57:35-08:00	"Include an implementation in Sage of the algorithm of [1] for computation of Chow-Heegner points on elliptic curves.  Assure that it can replicate the table of [1].

[1] http://wstein.org/papers/chow_heegner/chowheeg1.pdf

Apply all of the patches in order.  I have not folded these patches because I think the revision history is valuable. "	was
3	sage-5.10 Release	10827	475 days	Make cython support SAGE_SPKG_INSTALL_DOCS	packages: standard	enhancement	tbd	needs_work	2012-02-02T19:05:43-08:00	"This ticket implements #10823 for cython.  New spkg at  

[http://sage.math.washington.edu/home/palmieri/SPKG/cython-0.14.1.p2.spkg]

-----

Depends on #10493, #11197.

"	jason
3	sage-5.10 Release	11386	479 days	Add a bracelet combinatorial class	combinatorics	enhancement	nthiery	needs_work	2012-01-29T08:53:29-08:00	"Add a bracelet combinatorial class implementation based on:

Sawada, Joe.  ""Generating Bracelets in constant amortized time"", SIAM Journal on Computing archive Volume 31 , Issue 1 (2001)"	DanielRecoskie
3	sage-5.10 Release	9465	481 days	Update to FriCAS 1.1.0	packages: standard	enhancement	AlexGhitza	needs_work	2012-01-28T02:23:23-08:00	"The earliear upgrade is in http://trac.sagemath.org/sage_trac/ticket/9354
Also look at http://trac.sagemath.org/sage_trac/ticket/6517
for more information.

http://sage.math.washington.edu/home/hemmecke/pub/fricas-1.1.0.spkg

http://sage.math.washington.edu/home/hemmecke/pub/fricasaldor-1.1.0.spkg

fricasaldor might not properly work on 64 bit machines or might not work at all."	hemmecke
3	sage-5.10 Release	7013	486 days	table based prime_pi and nth_prime	number theory	enhancement	kevin.stueve	needs_work	2012-01-22T07:30:06-08:00	"The goal of this ticket is to add an implementation of Andrew Booker's table-based prime counting algorithm to Sage.  An optional spkg with the largest and densest available tables of counts of primes and prime k-tuplets will be made available.  Smaller tables may be made available in a standard spkg.

Currently you can download the newest code and tables from http://sage.math.washington.edu/home/kstueve/prime_pi_tables/table_based_prime_pi_31Dec2011.  You have to apply the patch to Sage-4.7.2 and manually move the tables to SAGE_ROOT/data.  Currently the code doesn't work on all systems because of trouble enabling OpenMP, but it does work on Macs.

Older code: [[BR]]
23 July 2011 [[BR]]
The code in attachment table_based_prime_pi_23_July_2011.zip uses the tables at http://sage.math.washington.edu/home/kstueve/prime_pi_tables/prime_counting_tables23-July-2011.zip [[BR]]
Summer 2009 [[BR]]
http://sage.math.washington.edu/home/kstueve/KevinStueve.zip

Paper: [[BR]]
http://docs.google.com/View?id=df9q29vh_42dwz388hp"	kevin.stueve
3	sage-5.10 Release	10093	493 days	clean up documentation of sage/misc/bitset.pyx	documentation	enhancement	mvngu	needs_work	2012-01-15T13:54:45-08:00	"As the subject says. This ticket is part of the larger project at #7656.

'''Apply:'''

 * [attachment:trac-10093_cleanup-doc-v3.patch]"	mvngu
3	sage-5.10 Release	12075	496 days	Create callable matrices in function notation	symbolics	enhancement	burcin	needs_work	2012-01-12T12:57:05-08:00	"In [http://groups.google.com/group/sage-support/browse_thread/thread/6c11a5fed4fb39b5 this sage-support post], the poster wants the following notation to work.
{{{
R_theta(theta)=matrix(SR,[[cos(theta),sin(theta),0],[-sin(theta),cos(theta),0],[0,0,1]]) 
}}}
This is sort of #1722 on steroids.

In the thread above, there are a number of good ideas.  The final one is 
{{{
I think this would be a good project for a person wanting to learn more 
about how to do Sage development.  The modifications to 
symbolic_expression should be easy (check for a nested list/tuple 
structure).  Then you would need to make a new function() method, in 
$SAGE_ROOT/devel/sage/sage/matrix/matrix2.pyx probably, that would 
create a corresponding matrix over the CallableSymbolicRing.  You can 
see an example for vectors in 
$SAGE_ROOT/devel/sage/sage/modules/free_module.pyx (look for ""def 
function"" in that file). 
Then if you are ambitious, create a new matrix subclass for callable 
symbolic expressions that mirrors what 
$SAGE_ROOT/devel/sage/sage/modules/vector_callable_symbolic_dense.py 
does for vectors (i.e., changes the printing). 
}}}[[Image()]]"	kcrisman
3	sage-5.10 Release	9634	505 days	binomial does not accept variable when only in the lower argument	symbolics	defect	burcin	needs_work	2012-01-03T21:49:41-08:00	"{{{
sage: var('k')
k 
sage: binomial(x,3)
1/6*(x - 2)*(x - 1)*x
sage: binomial(3,k)
---------------------------------------------------------------------------
TypeError: Either m or x-m must be an integer 
}}}

From kcrisman:
Is this a bug?  I would say yes, because
{{{
sage: binomial(x,k)
binomial(x, k)
}}}
works, but maybe we want to have it be a specific integer if the top
number is given?  Any input?

"	Henryk.Trappmann
3	sage-5.10 Release	11980	506 days	hyperelliptic curves: count_points and frobenius_polynomial do not work in all cases, not zeta_function available	elliptic curves	enhancement	cremona	needs_work	2012-01-03T01:37:24-08:00	"The following is not implemented (but can be done for hyperelliptic curves):

{{{
sage: P.<x> = PolynomialRing(GF(9,'a'))
sage: H = HyperellipticCurve(x^5+x^2+1)
sage: H.count_points(5)
Traceback (most recent call last)
...
NotImplementedError: Point counting only implemented for schemes over prime fields
}}}
Also, having a `count_points` for all cases, the Frobenius polynomial can be calculated. At the moment, this is calculated via `frobenius_matrix`, which is not always available:
{{{
sage: R.<t> = PolynomialRing(GF(8, 'a'))
sage: H = HyperellipticCurve(t^5 + t + 2, t + 1)
sage: H.frobenius_polynomial()
Traceback (most recent call last):
...
NotImplementedError: only implemented for curves y^2 = f(x)
}}}

Further, the zeta function can be calculated easily when the Frobenius polynomial is known.

Patch follows."	dkrenn
3	sage-5.10 Release	9831	509 days	Permutation(list) should check its input (?)	combinatorics	defect	sage-combinat	needs_work	2011-12-30T17:55:18-08:00	"It seems that ``Permutation(list)`` requires that the elements of list are exactly 1, 2, ..., n, but this is not clearly documented. Other values of ``list`` are accepted without error and lead to strange behaviours later.

When ``list`` contains 0:
{{{
~$ ulimit -v 1048576 
~$ sage
----------------------------------------------------------------------
| Sage Version 4.5.1, Release Date: 2010-07-19                       |
| Type notebook() for the GUI, and license() for information.        |
----------------------------------------------------------------------
sage: Permutation([1]).signature()
1
sage: Permutation([0]).signature()
-1
sage: Permutation([1,0]).signature()
-1
sage: Permutation([0,1]).signature()
---------------------------------------------------------------------------
MemoryError                               Traceback (most recent call last)

/home/marc/<ipython console> in <module>()

/data/sage-4.5.1/local/lib/python2.6/site-packages/sage/combinat/permutation.pyc in signature(p)
    739             -1
    740         """"""
--> 741         return (-1)**(len(p)-len(p.to_cycles()))
    742     
    743 

/data/sage-4.5.1/local/lib/python2.6/site-packages/sage/combinat/permutation.pyc in to_cycles(self, singletons)
    556             l[i], next = False, l[i]
    557             while next != cycleFirst:
--> 558                 cycle.append( next )
    559                 l[next - 1], next  = False, l[next - 1]
    560             #Add the cycle to the list of cycles

MemoryError:
}}}
With repeated elements:
{{{
sage: Permutation([1,1]).signature()
---------------------------------------------------------------------------
MemoryError                               Traceback (most recent call last)

/home/marc/<ipython console> in <module>()

/data/sage-4.5.1/local/lib/python2.6/site-packages/sage/combinat/permutation.pyc in signature(p)
    739             -1
    740         """"""
--> 741         return (-1)**(len(p)-len(p.to_cycles()))
    742     
    743 

/data/sage-4.5.1/local/lib/python2.6/site-packages/sage/combinat/permutation.pyc in to_cycles(self, singletons)
    556             l[i], next = False, l[i]
    557             while next != cycleFirst:
--> 558                 cycle.append( next )
    559                 l[next - 1], next  = False, l[next - 1]
    560             #Add the cycle to the list of cycles

MemoryError:
}}}
"	mmezzarobba
3	sage-5.10 Release	11005	518 days	Update Simon's GP scripts and convert to use via gp2c	elliptic curves	enhancement	cremona	needs_work	2011-12-21T07:33:43-08:00	"1.  Denis Simon's GP scripts (in data/extcode/pari/simon) need updating.

2.  Using them via gp2c would be more efficient.

The scripts have been combined into one and revised to make the gp2c-compliant, and gp2c has been used to make a single C file from them.  This can be compiled (once, on building Sage) into a shared library file which can then be used in a GP session, the result being faster running of all the functions.

To implement this we (1) patched the extcode repository (removing the old scripts);  (2) patched the sage library repository, mainly to adapt the interface in elliptic_curves/gp_simon.py but also to correct the doctest output (due to the script upgrade giving different generators in some cases); (3) patched the build system so that the c file (also now in elliptic_curves/) is compiled and the resulting shared library installed where it can be loaded.

So there are two patches needed!  (Previous versions of this also required a new spkg but that was redundant.)

   1. Apply the patch trac_11005-simon-sage-3.patch to the sage library.
   2. Apply the patch trac_11005-simon-extcode.patch to the extcode branch.

Followed by sage -b.


See also #11372 (a bug which might be fixed by this ticket)."	cremona
3	sage-5.10 Release	12183	519 days	absolute and relative norm functions for number field elements	number fields	enhancement	davidloeffler	needs_work	2011-12-21T05:25:02-08:00	"Although number_field_element.pyx has a norm method, it does not have absolute_norm() and relative_norm(). This would be a useful shorthand to have.

Apply [attachment:12183.3.patch]."	MvanBeek
3	sage-5.10 Release	12204	519 days	Reducing the defining polynomial of a hyperelliptic curve	number theory	enhancement	was	needs_work	2011-12-21T01:47:52-08:00	"A method for hyperellipt curves over rational field which reduces the defining polynomial

 * Apply patch [http://trac.sagemath.org/sage_trac/attachment/ticket/12204/trac_12204_reduce_poly.patch trac_12204_reduce_poly.patch]
 * Then apply patch [http://trac.sagemath.org/sage_trac/attachment/ticket/12204/trac_12204_modify_doc.patch trac_12204_modify_doc.patch]"	florian
3	sage-5.10 Release	6132	520 days	[with patch, needs work] cmp for number field elements	basic arithmetic	defect		needs_work	2011-12-19T22:54:49-08:00	"See discussion at http://groups.google.com/group/sage-nt/browse_thread/thread/422606e40805d5d0?hl=en

Note that {{{cmp(list(a), list(b))}}} can be slow..."	robertwb
3	sage-5.10 Release	11596	536 days	Cached eigenstuff is mutable	linear algebra	defect	jason, was	needs_work	2011-12-03T19:00:04-08:00	"Ooops.

{{{
sage: A = matrix(QQ, 2, 2, range(4))
sage: ev = A.eigenvalues()          
sage: ev
[-0.5615528128088302?, 3.561552812808830?]
sage: ev[0]=300                     
sage: A.eigenvalues()                
[300, 3.561552812808830?]
}}}

I suspect eigenspaces and eigenmatrices might also need a look."	rbeezer
3	sage-5.10 Release	7191	555 days	Make Dirichlet characters work when base ring is CC	number theory	defect	bober	needs_work	2011-11-14T10:01:16-08:00	"See the following example:

{{{
sage: G = DirichletGroup(500, base_ring=CC)
sage: G[0].is_primitive()
False
sage: G[1].is_primitive()
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)

/home/bober/.sage/temp/bober/24617/_home_bober__sage_init_sage_0.py in <module>()

/home/bober/sage/local/lib/python2.6/site-packages/sage/misc/cachefunc.pyc in __call__(self, *args, **kwds)
    240             return cache[key]
    241         else:
--> 242             cache[key] = self.f(self._instance, *args, **kwds)
    243             return cache[key]
    244 

/home/bober/sage/local/lib/python2.6/site-packages/sage/modular/dirichlet.pyc in is_primitive(self)
   1161             True
   1162         """"""
-> 1163         return (self.conductor() == self.modulus())
   1164 
   1165     @cached_method

/home/bober/sage/local/lib/python2.6/site-packages/sage/misc/cachefunc.pyc in __call__(self, *args, **kwds)
    240             return cache[key]
    241         else:
--> 242             cache[key] = self.f(self._instance, *args, **kwds)
    243             return cache[key]
    244 

/home/bober/sage/local/lib/python2.6/site-packages/sage/modular/dirichlet.pyc in conductor(self)
    624         F = arith.factor(self.modulus())
    625         if len(F) > 1:
--> 626             return misc.mul([d.conductor() for d in self.decomposition()])
    627         p = F[0][0]
    628         # When p is odd, and x =/= 1, the conductor is the smallest p**r such that

/home/bober/sage/local/lib/python2.6/site-packages/sage/misc/cachefunc.pyc in __call__(self, *args, **kwds)
    240             return cache[key]
    241         else:
--> 242             cache[key] = self.f(self._instance, *args, **kwds)
    243             return cache[key]
    244 

/home/bober/sage/local/lib/python2.6/site-packages/sage/modular/dirichlet.pyc in conductor(self)
    620             20
    621         """"""
--> 622         if self.modulus() == 1 or self.is_trivial():
    623             return 1
    624         F = arith.factor(self.modulus())

/home/bober/sage/local/lib/python2.6/site-packages/sage/misc/cachefunc.pyc in __call__(self, *args, **kwds)
    240             return cache[key]
    241         else:
--> 242             cache[key] = self.f(self._instance, *args, **kwds)
    243             return cache[key]
    244 

/home/bober/sage/local/lib/python2.6/site-packages/sage/modular/dirichlet.pyc in is_trivial(self)
   1177             True
   1178         """"""
-> 1179         return (self.element() == 0)
   1180 
   1181     def kernel(self):

/home/bober/sage/local/lib/python2.6/site-packages/sage/modular/dirichlet.pyc in element(self)
   1531             M    = P._module
   1532             dlog = P._zeta_dlog
-> 1533             v = M([dlog[x] for x in self.values_on_gens()])
   1534             self.__element = v
   1535             return v

KeyError: -1.00000000000000 - 2.63677968348475e-16*I
sage: G[3].is_primitive()
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)

/home/bober/.sage/temp/bober/24617/_home_bober__sage_init_sage_0.py in <module>()

/home/bober/sage/local/lib/python2.6/site-packages/sage/misc/cachefunc.pyc in __call__(self, *args, **kwds)
    240             return cache[key]
    241         else:
--> 242             cache[key] = self.f(self._instance, *args, **kwds)
    243             return cache[key]
    244 

/home/bober/sage/local/lib/python2.6/site-packages/sage/modular/dirichlet.pyc in is_primitive(self)
   1161             True
   1162         """"""
-> 1163         return (self.conductor() == self.modulus())
   1164 
   1165     @cached_method

/home/bober/sage/local/lib/python2.6/site-packages/sage/misc/cachefunc.pyc in __call__(self, *args, **kwds)
    240             return cache[key]
    241         else:
--> 242             cache[key] = self.f(self._instance, *args, **kwds)
    243             return cache[key]
    244 

/home/bober/sage/local/lib/python2.6/site-packages/sage/modular/dirichlet.pyc in conductor(self)
    624         F = arith.factor(self.modulus())
    625         if len(F) > 1:
--> 626             return misc.mul([d.conductor() for d in self.decomposition()])
    627         p = F[0][0]
    628         # When p is odd, and x =/= 1, the conductor is the smallest p**r such that

/home/bober/sage/local/lib/python2.6/site-packages/sage/misc/cachefunc.pyc in __call__(self, *args, **kwds)
    240             return cache[key]
    241         else:
--> 242             cache[key] = self.f(self._instance, *args, **kwds)
    243             return cache[key]
    244 

/home/bober/sage/local/lib/python2.6/site-packages/sage/modular/dirichlet.pyc in conductor(self)
    620             20
    621         """"""
--> 622         if self.modulus() == 1 or self.is_trivial():
    623             return 1
    624         F = arith.factor(self.modulus())

/home/bober/sage/local/lib/python2.6/site-packages/sage/misc/cachefunc.pyc in __call__(self, *args, **kwds)
    240             return cache[key]
    241         else:
--> 242             cache[key] = self.f(self._instance, *args, **kwds)
    243             return cache[key]
    244 

/home/bober/sage/local/lib/python2.6/site-packages/sage/modular/dirichlet.pyc in is_trivial(self)
   1177             True
   1178         """"""
-> 1179         return (self.element() == 0)
   1180 
   1181     def kernel(self):

/home/bober/sage/local/lib/python2.6/site-packages/sage/modular/dirichlet.pyc in element(self)
   1531             M    = P._module
   1532             dlog = P._zeta_dlog
-> 1533             v = M([dlog[x] for x in self.values_on_gens()])
   1534             self.__element = v
   1535             return v

KeyError: -1.00000000000000 - 2.63677968348475e-16*I
sage:
}}}"	bober
3	sage-5.10 Release	5572	562 days	fast_callable improvements (followup for #5093)	basic arithmetic	defect	cwitty	needs_work	2011-11-07T13:41:50-08:00	"The code at #5093 is very good and ready to go in, but there are several improvements that have been suggested and agreed work on at a later date. They are posted here so we can merge and close the other ticket. 

Specifically, this ticket addresses these issues:

  * fast_callable on list,tuple,vector,matrix arguments

  * fast_callable on constant arguments

  * fast_callable of a zero multivariate polynomial returns a zero of the base ring, without paying attention to the types of the arguments

  * in general replaces calls to fast_float with calls to fast_callable. 

  * Carries out the deprecation in #5413 (removes the functionality deprecated there)

Because of some of the far-reaching changes, this should probably not be merged in a point-point release.

What is not fixed:

  * Robert's suggestion: an option that uses a fast domain, if it's there, but ignores the domain parameter if it's not (I don't mind the idea, and the implementation is easy; what should the syntax be? Part of my problem picking a syntax is that I don't want to promise that a specialized interpreter is always faster than the Python-object interpreter, so I don't particularly want to use the word ""fast"" in any option names.)





The work on this ticket:

  * Makes #8450 easy, probably
  * Makes #7512 invalid, probably

See also
  * #10087
  * #7165
  * #11766 -- rewrite some of fast_callable to have its own recursion stack"	robertwb
3	sage-5.10 Release	7392	574 days	RDF/CDF matrices should call scipy for rank	linear algebra	enhancement	was	needs_work	2011-10-26T18:39:49-07:00	"Right now, we rely on the horrible (for floating point) generic echelon implementation to calculate the rank of an RDF/CDF matrix.

In fact, over RR, it wouldn't hurt to call numpy/scipy either.

"	jason
3	sage-5.10 Release	7763	589 days	make nintegrate/nintegral top-level functions	calculus	enhancement	burcin	needs_work	2011-10-12T05:21:21-07:00	We just need to add them to sage/devel/sage/misc/functional.py.  Modifying the versions of integrate/integral in that file would probably be easiest.	jason
3	sage-5.10 Release	10941	597 days	ModularSymbols(4727).cuspidal_submodule().decomposition() fails	modular forms	defect	craigcitro	needs_work	2011-10-04T06:46:21-07:00	"{{{
sage: M = ModularSymbols(Integer(4727))
sage: C=M.cuspidal_submodule()
sage: dec=C.decomposition()
TypeError: element (= [0, 0, ..., 1, 0, 0, 0, 3]) is not in free module
}}}
(but getting to this point takes about 75 minutes on sage.math)"	nbruin
3	sage-5.10 Release	11670	604 days	fix number fields being unique parents -- this got broken over the years	number fields	defect	davidloeffler	needs_work	2011-09-26T18:29:06-07:00	"For example, these are all wrong:
{{{
sage: K.<a> = NumberField(x^2 - x - 1)
sage: loads(dumps(K)) is K
False
sage: K.<a> = NumberField(x^3 - x - 1)
sage: loads(dumps(K)) is K
False
sage: K.<a> = CyclotomicField(7)
sage: loads(dumps(K)) is K
False
}}}


NOTE: To keep this project manageable for now, this ticket does *not* address similar issues for relative number fields, if there are any. 

This is related to #10448. "	was
3	sage-5.10 Release	10667	607 days	Morphisms and Objects of Categories	categories	enhancement	nthiery	needs_work	2011-09-24T06:57:00-07:00	"'''__Purpose__'''

Introduce a framework for testing whether or not something is a morphism in a category. See the discussion on [http://groups.google.com/group/sage-algebra/browse_thread/thread/3e2ca2a8be1a3a23 sage-algebra]. Here is a summary of the discussion.

__Methods for categories__

Categories `C` should have a method `C.has_morphism(f)` answering whether `f` is a morphism in `C`. By symmetry, we want a method `C.has_object(X)`, answering whether `X` is an object in `C`.

Note that we want `X in C` to be true if and only if `X` is an object of `C` (so, it is synonymous to `C.has_object(X)`). This currently is not always the case:
{{{
sage: P.<x,y> = QQ[]
sage: f = P.hom(reversed(P.gens()))
sage: f in Rings().hom_category()
True
}}}
but of course `f` is not an ''object'' of the hom-category (it is only ''contained'' in an object of the hom-category).

__Class/Set of objects and morphisms__

It would be nice to have container classes for the objects and for the morphisms of a category. Then, `f in C.morphisms()` would be a very natural notation for `C.has_morphism(f)`, and `X in C.objects()` would be another way of saying `X in C`.

Of course, since `f in C.morphisms()` and `f in C.objects()` are nice notations, they should be as fast as possible -- otherwise, people wouldn't use them.

Further discussion should be put in comments to this ticket."	SimonKing
3	sage-5.10 Release	11667	632 days	Cache groebner basis independend of degree bound	commutative algebra	enhancement	malb	needs_work	2011-08-29T10:47:16-07:00	"One of the basic tricks when working with Groebner bases is to compute only up to a certain degree bound. Right now we support that, but then we attempt to compute the complete Groebner basis for any subsequent operation (which is often impossible due to time/memory constraints).

This patch caches the Groebner basis independent of the degree bound.

Apply trac_11667_use_groebner_basis_with_degree_bound.patch"	vbraun
3	sage-5.10 Release	9193	637 days	Provable computation of L-functions (Dokchitser procedure)	number theory	enhancement	was	needs_work	2011-08-24T23:58:42-07:00	"This is related to #4475.

See also this psage ticket: http://code.google.com/p/purplesage/issues/detail?id=14"	robertwb
3	sage-5.10 Release	10828	637 days	Make matplotlib support SAGE_SPKG_INSTALL_DOCS	packages: standard	enhancement	tbd	needs_work	2011-08-24T16:39:38-07:00	"This ticket implements #10823 for matplotlib. New spkg at  http://sage.math.washington.edu/home/jason/spkg-docs/matplotlib-1.0.1.p0.spkg (depends on #10588)
"	jason
3	sage-5.10 Release	10826	637 days	Make numpy support SAGE_SPKG_INSTALL_DOCS	packages: standard	enhancement	tbd	needs_work	2011-08-24T16:37:30-07:00	"This ticket implements #10823 for numpy.  New spkg at http://sage.math.washington.edu/home/jason/spkg-docs/numpy-1.5.1.p0.spkg (depends on #10792)
"	jason
3	sage-5.10 Release	11040	637 days	Lazily import schemes to save startuptime	misc	enhancement	jason	needs_work	2011-08-24T16:30:16-07:00	"This is a relatively self-contained target.  

Split off of #8254 
"	robertwb
3	sage-5.10 Release	8254	637 days	Use lazy imports to speed up sage startup time	misc	defect		needs_work	2011-08-24T16:29:58-07:00	"Sage still takes too long.  20 seconds, 30 seconds, 5 seconds, on various places... and it is all so painful.  This patch attempts to speed up the startup time using lazy imports.

Specific patches at 

 * #11040 - sage.schemes
 * #11043 - sage.plot"	was
3	sage-5.10 Release	8109	643 days	wrap NTL's lzz_pE and lzz_pEX and use them	algebra	enhancement	AlexGhitza	needs_work	2011-08-19T05:05:13-07:00	This should fasten polynomial arithmetic over finite fields of small characteristic.	ylchapuy
3	sage-5.10 Release	11679	645 days	Allow different directory for server_pool communication	notebook	enhancement	jason, mpatel, was	needs_work	2011-08-16T11:30:46-07:00	"In a remote notebook setup using ``server_pool``, all communication between the main Sage process and the workers goes through ``/tmp``.  I suggest to introduce an environment variable ``SAGENB_TMPDIR`` (with fallback to ``TMPDIR``) to configure this.

I have a succesful setup with one server node and two worker nodes using this, so it works."	jdemeyer
3	sage-5.10 Release	10190	659 days	developer's guide: warnings & notes about commit message, cloning and setting the text editor	documentation	enhancement	mvngu	needs_work	2011-08-02T17:43:35-07:00	"Add a new chapter to the Developer's Guide on advanced uses of Mercurial.

See the following URL for the rebuilt Developer's Guide after applying the patch below to Sage 4.6.

http://mvngu.googlecode.com/hg/10190-mercurial/index.html"	mvngu
3	sage-5.10 Release	9402	664 days	Extend dokchitser L-function package in Elliptic Curves to Number Fields	elliptic curves	enhancement	cremona	needs_work	2011-07-28T12:37:51-07:00	This patch adds the attribute .dokchitser() to an elliptic_curve.lseries() over a number field (this capability is present over QQ). It also adds an attribute to .dokchitser(), namely get_coeffs(bound), which returns the first bound coefficients in the Dirichlet expansion of the associated L-series. 	adam
3	sage-5.10 Release	2420	671 days	Extending the gap interface to uni- and multivariate polynomial rings over number fields	interfaces	enhancement	SimonKing	needs_work	2011-07-22T06:26:02-07:00	"Up to now, the gap interface did not work on polynomial rings over number fields. This patch extends the interface accordingly, so that now the following works.
Univariate:
{{{
sage: F=CyclotomicField(8)
sage: R=PolynomialRing(F,'x')
sage: gap(R)
PolynomialRing( <algebraic extension over the Rationals of degree 4>, [""x""] )
sage: p=R('zeta8^2*x+zeta8')
sage: gap(p)^3
((-1*zeta8^2))*x^3+((-3*zeta8))*x^2+(!-3)*x+(zeta8^3)
sage: p^3
(-zeta8^2)*x^3 + (-3*zeta8)*x^2 + (-3)*x + zeta8^3
}}}

Multivariate:
{{{
sage: R=PolynomialRing(F,'x,y')
sage: gap(R)
PolynomialRing( <algebraic extension over the Rationals of degree
4>, [""x"", ""y""] )
sage: p=R('zeta8*x+zeta8^2*y')^2
sage: gap(p)
(zeta8^2)*x^2+(2*zeta8^3)*x*y-y^2
sage: p
zeta8^2*x^2 + 2*zeta8^3*x*y + (-1)*y^2
}}}

The patches also provide doc tests.

However, there is one problem: On my machine, the doc tests of sage.rings.polynomial.polynomial_element.pyx trigger the bug reported in #2419.
That bug seems to occur only on few machines (up to now, only one other person can reproduce #2419). 

So, there should be discussion how to deal with that issue.

Apply [attachment:trac2420_gap_interface_polynomials.patch]"	SimonKing
3	sage-5.10 Release	7989	675 days	Minpoly doesn't work for all matrices	linear algebra	defect	was	needs_work	2011-07-17T11:31:46-07:00	"Right now, not all matrices can compute minpolys.  This patch exposes these matrices.

Depends on #6936
"	jason
3	sage-5.10 Release	5178	699 days	[with patch, needs work (doc cleanup)] change LLL_gram to work with Gram matrices with not-necessarily integer entries	linear algebra	enhancement	was	needs_work	2011-06-23T20:40:49-07:00	"This patch changes LLL_gram to work with Gram matrices with not-necessarily integer entries.  Also it fixes several ""non-optimal"" coding issues both in the old implementation and the doctests.  For example, instead of computing U.det() to determine if the unimodular A has det -1 or 1, we just compute A.change_ring(GF(3)).det(), which is much faster. 

Changing LLL_gram to work for nonintegral gram matrices is critical for applications to computing class groups for the course I'm teaching right now.  "	was
3	sage-5.10 Release	9556	706 days	Dynamic attributes for symbolic expressions	symbolics	enhancement		needs_work	2011-06-16T16:01:02-07:00	"Let {{{e}}} be a symbolic expression. It may happen that {{{e.operator()}}} has a certain callable attribute, say, {{{foo}}}, that is not a method of {{{Function}}}. In this situation, one would like to use {{{e.foo()}}}, which is supposed to return {{{e.operator().foo(*e.operands())}}} - apparently this is useful for working with hypergeometric functions.

'''__Example__'''

{{{
sage: from sage.symbolic.function import BuiltinFunction
sage: class ExampleBuiltin(BuiltinFunction):
...     def __init__(self):
...         BuiltinFunction.__init__(self, 'ex_func', nargs=0) #arbitrary no of args
...     def some_function_name(self, *args):
...         return len(args)
...
sage: ex_func = ExampleBuiltin()
sage: ex_func
ex_func
}}}

We obtain a symbolic expression by calling {{{ex_func}}}:
{{{
sage: e = ex_func(x,x+1, x+2)
sage: type(e)
<type 'sage.symbolic.expression.Expression'>
}}}

We add a callable and a non-callable attribute to {{{ex_func}}}:
{{{
sage: def some_function(slf, *L): print slf,'called with',L
...
sage: ex_func.foo_bar = some_function
sage: ex_func.bar_foo = 4
}}}

Now, both the new method and the callable attribute {{{foo_bar}}} of
{{{ex_func}}} are available from {{{e}}}, but not the non-callable:

{{{
sage: e.some_function_name()
3
sage: e.foo_bar()
ex_func called with (x, x + 1, x + 2)
sage: e.bar_foo
Traceback (most recent call last):
...
AttributeError: <type 'sage.symbolic.expression.Expression'> has no attribute 'bar_foo'
}}}

Tab completion  and introspection work:

{{{
sage: 'foo_bar' in dir(e)     # indirect doctest
True
sage: 'some_function_name' in dir(e)
True
sage: 'bar_foo' in dir(e)
False
sage: import sagenb.misc.support as s
sage: s.completions('e.some', globals(), system='python')
['e.some_function_name']
}}}

'''__Problems__'''

When I ran {{{sage -testall}}}, several doctests segfaulted:
{{{
        sage -t  -verbose ""devel/sage/sage/functions/hyperbolic.py""
        sage -t  -verbose ""devel/sage/sage/games/hexad.py""
        sage -t  -verbose ""devel/sage/sage/matrix/tests.py""
        sage -t  -verbose ""devel/sage/sage/misc/sage_eval.py""
        sage -t  -verbose ""devel/sage/sage/plot/animate.py""
        sage -t  -verbose ""devel/sage/sage/quadratic_forms/quadratic_form__mass__Conway_Sloane_masses.py""
        sage -t  -verbose ""devel/sage/sage/rings/polynomial/polynomial_element.pyx""
}}}

I tried (using {{{sage -t -verbose}}}) to find out what exactly fails. When I ran some of these failing examples in an interactive session, no segfault occured. So, is there a nasty side effect?
"	SimonKing
3	sage-5.10 Release	7908	706 days	Published interacts	notebook	enhancement	was	needs_work	2011-06-16T12:20:18-07:00	"Worksheets in the Sage notebook can contain live `interact`-ive cells, which may make it easier to understand how an object's properties depend on a set of parameters.  Please visit the Sage Wiki to view [http://wiki.sagemath.org/interact some examples].  Currently, however, `interact` cells do not work in published worksheets.

To enable live published `interact`s, apply the patch

 * http://boxen.math.washington.edu/home/mpatel/trac/7908/trac_7908-pub_interact_c11.patch

'''Note:''' it depends on #7666 and its dependencies.  '''Or''' use this spkg with 4.3.1.alpha2:

 * http://boxen.math.washington.edu/home/mpatel/trac/7908/sagenb-0.5-7908c11.spkg

Please visit the Notebook Settings page to enable live public interacts."	mpatel
3	sage-5.10 Release	5511	707 days	arbitrary mesh functions	graphics	enhancement	jason	needs_work	2011-06-15T11:14:04-07:00	"The attached worksheet implements and illustrates arbitrary mesh functions for 3d graphics objects that are triangulated.  This could probably ought to go into sage somewhere.

Here is an example:

http://sagenb.org/home/pub/2821/"	jason
3	sage-5.10 Release	8616	708 days	Make desolve deduce the variable if you don't state it	symbolics	enhancement	burcin	needs_work	2011-06-14T10:31:44-07:00	"Provides autodetect dependent and independent variables in desolve(), desolve_laplace()

Additionally as module which helps to solve first problem provides unified interface for standard python types and sage specific types.
Treats everything as symbolic expression which allows to check its type, take
operator and operands and extract subexpressions by given types.

http://groups.google.com/group/sage-devel/browse_thread/thread/f2ba2198dc5b79ed

http://groups.google.com/group/sage-devel/browse_thread/thread/e04cbc547095f2ac"	yuri.k
3	sage-5.10 Release	9824	708 days	improve desolve_system initial condition documentation	calculus	defect	burcin	needs_work	2011-06-14T08:29:09-07:00	"Edit: See comments for the actual issue.

----


desolve_system apparently ignores initial conditions.  Notice the identical results in the two calls in the following example.

{{{
sage: t = var('t')
sage: epsilon = var('epsilon')
sage: x1 = function('x1', t)
sage: x2 = function('x2', t)
sage: de1 = diff(x1,t) == epsilon
sage: de2 = diff(x2,t) == -2
sage: desolve_system([de1, de2], [x1, x2], ivar=t)
[x1(t) == epsilon*t + x1(0), x2(t) == -2*t + x2(0)]
sage: desolve_system([de1, de2], [x1, x2], ics=[1,1], ivar=t)
[x1(t) == epsilon*t + x1(0), x2(t) == -2*t + x2(0)] 
}}}
"	rhinton
3	sage-5.10 Release	11466	710 days	Adding turning_number() function to word paths	combinatorics	enhancement	sage-combinat	needs_work	2011-06-13T07:11:24-07:00	"A very useful function about discrete paths is the one returning its turning number, i.e. the number of ""left"" turns minus the number of ""right"" turns on the square grid.

The purpose of this ticket is to add this functionality."	abmasse
3	sage-5.10 Release	10482	729 days	Add Weisfeiler-Leman algorithm to sage.graphs	graph theory	enhancement	kini	needs_work	2011-05-25T04:36:43-07:00	"----
See [http://groups.google.com/group/sage-devel/browse_thread/thread/aae6ee93b11715c8 this sage-devel thread].

Adding an implementation of the Weisfeiler-Leman algorithm for partition / graph refinement."	kini
3	sage-5.10 Release	9427	743 days	implement fricas integrator	symbolics	enhancement	burcin	needs_work	2011-05-10T11:33:06-07:00	"The attached patch adds the option algorithm=""fricas"" to the integrate
command."	whuss
3	sage-5.10 Release	7298	751 days	use html5 video tag for animations	graphics	enhancement	whuss	needs_work	2011-05-02T13:51:22-07:00	"The attached patch adds support for creating Ogg Theora videos from
animation objects.

The resulting video files are embedded into the notebook using the
html5 video tag.

The show method of animations now works more like the one of
Graphics objects. Animations can now be embeddend in html fragments,
for example using html.table().

By default animations are still created as animated gifs. To get
a Theora video from an animation ""a"" use:

{{{
a.show(format = 'ogv')
}}}

Depends on libtheora and libogg spkg's (Trac: #7297)."	whuss
3	sage-5.10 Release	11024	751 days	Update Dokchitser calculator to compiled version	modular forms	enhancement	craigcitro	needs_work	2011-05-02T11:55:51-07:00	"Cohen provided a C-version of Dokchitser's script. This wraps that script and cleans up the script. There were several issues present and doctests for the elliptic curves have been adapted to correctly set the maximal imaginary value.

'''Depends on:'''
  1. #11017

'''Apply:'''
  1. [attachment:trac-11024-dokchitser.patch]
  2. [attachment:trac-11024-dokchitser-2.patch]
  3. [attachment:trac-11024-dokchitser-bordeaux.patch]
  4. [http://sage.math.washington.edu/home/mraum/dokchitser-20110325.spkg]
"	mraum
3	sage-5.10 Release	3256	752 days	[with patch; mixed review] soname and correct -fPIC handling for zn_poly	packages: standard	enhancement	mabshoff	needs_work	2011-05-01T16:56:52-07:00	"I've attached a patch (developed with Francois Bissey) that should make zn_poly have shared library versioning and build the shared library with -fPIC but the static library without -fPIC.

My patch includes the relevant changes to the Debian packaging to make it fully Debian policy-compliant.

It also includes the relevant changes to spkg-install and SAGE-style copy patches that should make SAGE use the new version, though I haven't tested that part."	tabbott
3	sage-5.10 Release	10908	770 days	Make SageTeX support SAGE_SPKG_INSTALL_DOCS	packages: standard	enhancement	tbd	needs_work	2011-04-14T06:54:18-07:00	See #10823 for details about SAGE_SPKG_INSTALL_DOCS.  We should build the docs fresh, which would be a nice test of if they had the necessary components to actually do SageTeX stuff.	jason
3	sage-5.10 Release	10831	770 days	Make python support SAGE_SPKG_INSTALL_DOCS	packages: standard	enhancement	tbd	needs_work	2011-04-14T06:54:01-07:00	"This is a bit tricky since we need sphinx and other things installed before we can build the docs, but sphinx and the other things depend on python.  To resolve this circular dependency, we try to import sphinx.  If we can't import sphinx, then we exit without error with a message that you should install sphinx and related tools first and then try building the docs again.  This means that in order to use the environment variable, you have to install the python spkg twice, since we don't have an option to just build docs without building python.  But maybe that's worth it for someone that just wants the python docs.

The new spkg is here: http://sage.math.washington.edu/home/jason/python-2.6.4.p10.spkg"	jason
3	sage-5.10 Release	10830	770 days	Make pari support SAGE_SPKG_INSTALL_DOCS	packages: standard	enhancement	tbd	needs_work	2011-04-14T06:53:48-07:00	"This ticket implements #10823 for pari. New spkg at   http://sage.math.washington.edu/home/jason/spkg-docs/pari-2.4.3.alpha.p6.spkg
"	jason
3	sage-5.10 Release	10829	770 days	Make mpmath support SAGE_SPKG_INSTALL_DOCS	packages: standard	enhancement	tbd	needs_work	2011-04-14T06:52:54-07:00	"This ticket implements #10823 for mpmath.  New spkg at   http://sage.math.washington.edu/home/jason/spkg-docs/mpmath-0.15.p0.spkg
"	jason
3	sage-5.10 Release	8698	778 days	"German translation of the document ""A Tour of Sage"""	documentation	enhancement	mvngu	needs_work	2011-04-05T09:52:41-07:00	"As the subject says. Because the patch on this ticket is short, I think this ticket takes much less work to review than #8660. So it's very likely that the current ticket would be merged first, then #8660. Someone who knows German needs to look over the attached patch.

See this [http://groups.google.com/group/sage-support/browse_thread/thread/c14c761ee3dc5203 sage-support] thread for background information."	mvngu
3	sage-5.10 Release	11109	783 days	Implement stable grothendieck polynomials for affine Weyl group elements in type A	combinatorics	enhancement	sage-combinat	needs_work	2011-04-01T02:37:42-07:00	"Patch under development on the Sage-Combinat queue:

http://combinat.sagemath.org/patches/file/tip/trac_11109-stable-grothendieck-polynomials-nt.patch

The current implementation currently gives incorrect results, due to a missuse of the Pieri factors. It will be fixed by adding another feature there."	nthiery
3	sage-5.10 Release	9084	783 days	Move sage/gsl into libs directory.	numerical	defect	jason, jkantor	needs_work	2011-04-01T00:49:36-07:00		robertwb
3	sage-5.10 Release	4120	789 days	New code for binary quadratic forms	quadratic forms	enhancement	justin	needs_work	2011-03-25T14:59:19-07:00	"The code supporting binary quadratic forms, in quadratic_forms/binary_qf.py, is missing some functionality, and relies on Magma and Pari.  The patch in this ticket provides the following changes:
 - tests for equivalence, normal, positive and negative definite, indefinite, primitive forms
 - normalize a form
 - action of matrix on a form
 - find content; factor indefinite forms
In addition: 
 - reduce() no longer calls Pari
 - some cleanup: is_reduced() is rewritten; polynomial() replaced with an instance variable (poly)

Doctests are in place for the new code, so the file remains at 100% coverage.

"	justin
3	sage-5.10 Release	10448	789 days	Extensions of ZZ are not unique parents	number fields	defect	davidloeffler	needs_work	2011-03-25T07:53:26-07:00	"With an unpatched sage-4.6, we have:

{{{
sage: R1 = ZZ.extension(x**2+1,'i')
sage: R1 is ZZ.extension(x**2+1,'i')
False
sage: R1 is ZZ.extension(x**2+1,'i')
False
}}}

I think that should be changed."	SimonKing
3	sage-5.10 Release	10765	791 days	Obliterate sage/matrix/misc.pyx	linear algebra	task	jason, was	needs_work	2011-03-23T12:47:56-07:00	"Header of {{{sage/matrix/misc.py}}} says:

{{{
NOTE: The whole problem of avoiding circular imports -- the reason for
existence of this file -- is now a non-issue, since some bugs in
Cython were fixed.  Probably all this code should be moved into the
relevant classes and this file deleted.
}}}

So I did.  After a suitable deprecation period, the file can be obliterated.  Here's the overview:

Functions leaving {{{sage/matrix/misc.py}}}.  Originals have all been deprecated.

  * {{{cmp_pivots}}}[[BR]]
  Existing duplicate already existed in {{{matrix/matrix2.pyx}}}.

  * {{{hadamard_row_bound_mpfr}}}[[BR]]
  Moved to {{{matrix/matrix2.pyx}}} near where it was called, right by another similar helper function.  Converted to an underscore method, therefore.  Already has protection on base ring of the matrix (RR).

  * {{{matrix_integer_sparse_rational_reconstruction}}}[[BR]]
  Moved into content of {{{sage.matrix.matrix_integer_sparse.Matrix_integer_sparse.rational_reconstruction}}} which was just a one-line stub calling the function from {{{sage/matrix/misc.pyx}}}.

  * {{{matrix_integer_dense_rational_reconstruction}}}[[BR]]
  Moved into content of {{{sage.matrix.matrix_integer_dense.Matrix_integer_dense.rational_reconstruction}}} which was just a one-line stub calling the function from {{{sage/matrix/misc.pyx}}}.  Adjusted a call in {{{matrix_cyclo_dense}}} to call this new method.

  * {{{matrix_rational_echelon_form_multimodular}}}[[BR]]
  ""Works"" for sparse and dense matrices (see MAX_MODULUS) so added this to matrix2.pyx class as {{{sage.matrix.matrix2.Matrix._echelon_form_multimodular_rational}}}.  Added protection to ensure base ring is rationals.

Almost all code changes are just to fit into new locations.  A bit of documentation clean-up where needed.

This passes all tests, but should be reviewed by somebody with significant Cython and/or {{{sage/matrix}}} experience.


"	rbeezer
3	sage-5.10 Release	6326	804 days	"optional doctest failure -- all quadratic forms tests that involve "" # optional -- souvigner"""	quadratic forms	defect	justin	needs_work	2011-03-10T22:06:28-08:00	"These all fail.  This ""souvigner"" is not an optional or even experimental spkg.  I have no clue where to get it. Either this code has to go, or Souvigner_AUTO has to be made an optional spkg (which would be a very reasonable way to resolve this ticket).

{{{
sage -t -long --optional devel/sage/sage/quadratic_forms/quadratic_form__automorphisms.py
sh: /scratch/wstein/build/sage-4.0.2.alpha3/local/bin/Souvigner_AUTO: not found
sh: /scratch/wstein/build/sage-4.0.2.alpha3/local/bin/Souvigner_AUTO: not found
sh: /scratch/wstein/build/sage-4.0.2.alpha3/local/bin/Souvigner_AUTO: not found
**********************************************************************
File ""/scratch/wstein/build/sage-4.0.2.alpha3/devel/sage-main/sage/quadratic_forms/quadratic_form__automorphisms.py"", line 257:
    sage: Q.number_of_automorphisms()                     # optional -- souvigner
Exception raised:
    Traceback (most recent call last):
      File ""/scratch/wstein/build/sage-4.0.2.alpha3/local/bin/ncadoctest.py"", line 1231, in run_one_test
        self.run_one_example(test, example, filename, compileflags)
      File ""/scratch/wstein/build/sage-4.0.2.alpha3/local/bin/sagedoctest.py"", line 38, in run_one_example
        OrigDocTestRunner.run_one_example(self, test, example, filename, compileflags)
      File ""/scratch/wstein/build/sage-4.0.2.alpha3/local/bin/ncadoctest.py"", line 1172, in run_one_example
        compileflags, 1) in test.globs
      File ""<doctest __main__.example_3[3]>"", line 1, in <module>
        Q.number_of_automorphisms()                     # optional -- souvigner###line 257:
    sage: Q.number_of_automorphisms()                     # optional -- souvigner
      File ""/scratch/wstein/build/sage-4.0.2.alpha3/local/lib/python2.5/site-packages/sage/quadratic_forms/quadratic_form__automorphisms.py"", line 396, in number_of_automorphisms
        self.__number_of_automorphisms = self.number_of_automorphisms__souvigner()
      File ""/scratch/wstein/build/sage-4.0.2.alpha3/local/lib/python2.5/site-packages/sage/quadratic_forms/quadratic_form__automorphisms.py"", line 453, in number_of_automorphisms__souvigner
        raise RuntimeError, ""Oops! There is a problem...""
    RuntimeError: Oops! There is a problem...
**********************************************************************
File ""/scratch/wstein/build/sage-4.0.2.alpha3/devel/sage-main/sage/quadratic_forms/quadratic_form__automorphisms.py"", line 265:
    sage: Q.number_of_automorphisms()                     # optional -- souvigner
Exception raised:
    Traceback (most recent call last):
      File ""/scratch/wstein/build/sage-4.0.2.alpha3/local/bin/ncadoctest.py"", line 1231, in run_one_test
        self.run_one_example(test, example, filename, compileflags)
      File ""/scratch/wstein/build/sage-4.0.2.alpha3/local/bin/sagedoctest.py"", line 38, in run_one_example
        OrigDocTestRunner.run_one_example(self, test, example, filename, compileflags)
      File ""/scratch/wstein/build/sage-4.0.2.alpha3/local/bin/ncadoctest.py"", line 1172, in run_one_example
        compileflags, 1) in test.globs
      File ""<doctest __main__.example_3[7]>"", line 1, in <module>
        Q.number_of_automorphisms()                     # optional -- souvigner###line 265:
    sage: Q.number_of_automorphisms()                     # optional -- souvigner
      File ""/scratch/wstein/build/sage-4.0.2.alpha3/local/lib/python2.5/site-packages/sage/quadratic_forms/quadratic_form__automorphisms.py"", line 396, in number_of_automorphisms
        self.__number_of_automorphisms = self.number_of_automorphisms__souvigner()
      File ""/scratch/wstein/build/sage-4.0.2.alpha3/local/lib/python2.5/site-packages/sage/quadratic_forms/quadratic_form__automorphisms.py"", line 453, in number_of_automorphisms__souvigner
        raise RuntimeError, ""Oops! There is a problem...""
    RuntimeError: Oops! There is a problem...
**********************************************************************
File ""/scratch/wstein/build/sage-4.0.2.alpha3/devel/sage-main/sage/quadratic_forms/quadratic_form__automorphisms.py"", line 363:
    sage: Q.number_of_automorphisms(recompute=True)           # optional -- souvigner
Exception raised:
    Traceback (most recent call last):
      File ""/scratch/wstein/build/sage-4.0.2.alpha3/local/binsh: /scratch/wstein/build/sage-4.0.2.alpha3/local/bin/Souvigner_AUTO: not found
sh: /scratch/wstein/build/sage-4.0.2.alpha3/local/bin/Souvigner_AUTO: not found
/ncadoctest.py"", line 1231, in run_one_test
        self.run_one_example(test, example, filename, compileflags)
      File ""/scratch/wstein/build/sage-4.0.2.alpha3/local/bin/sagedoctest.py"", line 38, in run_one_example
        OrigDocTestRunner.run_one_example(self, test, example, filename, compileflags)
      File ""/scratch/wstein/build/sage-4.0.2.alpha3/local/bin/ncadoctest.py"", line 1172, in run_one_example
        compileflags, 1) in test.globs
      File ""<doctest __main__.example_4[5]>"", line 1, in <module>
        Q.number_of_automorphisms(recompute=True)           # optional -- souvigner###line 363:
    sage: Q.number_of_automorphisms(recompute=True)           # optional -- souvigner
      File ""/scratch/wstein/build/sage-4.0.2.alpha3/local/lib/python2.5/site-packages/sage/quadratic_forms/quadratic_form__automorphisms.py"", line 396, in number_of_automorphisms
        self.__number_of_automorphisms = self.number_of_automorphisms__souvigner()
      File ""/scratch/wstein/build/sage-4.0.2.alpha3/local/lib/python2.5/site-packages/sage/quadratic_forms/quadratic_form__automorphisms.py"", line 453, in number_of_automorphisms__souvigner
        raise RuntimeError, ""Oops! There is a problem...""
    RuntimeError: Oops! There is a problem...
**********************************************************************
File ""/scratch/wstein/build/sage-4.0.2.alpha3/devel/sage-main/sage/quadratic_forms/quadratic_form__automorphisms.py"", line 365:
    sage: Q.list_external_initializations()                   # optional -- souvigner
Expected:
    []
Got:
    ['number_of_automorphisms']
**********************************************************************
File ""/scratch/wstein/build/sage-4.0.2.alpha3/devel/sage-main/sage/quadratic_forms/quadratic_form__automorphisms.py"", line 369:
    sage: Q.number_of_automorphisms()                         # optional -- souvigner
Exception raised:
    Traceback (most recent call last):
      File ""/scratch/wstein/build/sage-4.0.2.alpha3/local/bin/ncadoctest.py"", line 1231, in run_one_test
        self.run_one_example(test, example, filename, compileflags)
      File ""/scratch/wstein/build/sage-4.0.2.alpha3/local/bin/sagedoctest.py"", line 38, in run_one_example
        OrigDocTestRunner.run_one_example(self, test, example, filename, compileflags)
      File ""/scratch/wstein/build/sage-4.0.2.alpha3/local/bin/ncadoctest.py"", line 1172, in run_one_example
        compileflags, 1) in test.globs
      File ""<doctest __main__.example_4[8]>"", line 1, in <module>
        Q.number_of_automorphisms()                         # optional -- souvigner###line 369:
    sage: Q.number_of_automorphisms()                         # optional -- souvigner
      File ""/scratch/wstein/build/sage-4.0.2.alpha3/local/lib/python2.5/site-packages/sage/quadratic_forms/quadratic_form__automorphisms.py"", line 396, in number_of_automorphisms
        self.__number_of_automorphisms = self.number_of_automorphisms__souvigner()
      File ""/scratch/wstein/build/sage-4.0.2.alpha3/local/lib/python2.5/site-packages/sage/quadratic_forms/quadratic_form__automorphisms.py"", line 453, in number_of_automorphisms__souvigner
        raise RuntimeError, ""Oops! There is a problem...""
    RuntimeError: Oops! There is a problem...
**********************************************************************
File ""/scratch/wstein/build/sage-4.0.2.alpha3/devel/sage-main/sage/quadratic_forms/quadratic_form__automorphisms.py"", line 410:
    sage: Q.number_of_automorphisms__souvigner()                           # optional -- souvigner
Exception raised:
    Traceback (most recent call last):
      File ""/scratch/wstein/build/sage-4.0.2.alpha3/local/bin/ncadoctest.py"", line 1231, in run_one_test
        self.run_one_example(test, example, filename, compileflags)
      File ""/scratch/wstein/build/sage-4.0.2.alpha3/local/bin/sagedoctest.py"", line 38, in run_one_example
        OrigDocTestRunner.run_one_example(self, test, example, filename, compileflags)
      File ""/scratch/wstein/build/sage-4.0.2.alpha3/local/bin/ncadoctest.py"", line 1172, in run_one_example
        compileflags, 1) in test.globs
      File ""<doctest __main__.example_5[3]>"", line 1, in <module>
        Q.number_of_automorphisms__souvigner()                           # optional -- souvigner###line 410:
    sage: Q.number_of_automorphisms__souvigner()                           # optional -- souvigner
      File ""/scratch/wstein/build/sage-4.0.2.alpha3/local/lib/python2.5/site-packages/sage/quadratic_forms/quadratic_form__automorphisms.py"", line 453, in number_of_automorphisms__souvigner
        raise RuntimeError, ""Oops! There is a problem...""
    RuntimeError: Oops! There is a problem...
**********************************************************************
3 items had failures:
   2 of  15 in __main__.example_3
   3 of  12 in __main__.example_4
   1 of   5 in __main__.example_5
***Test Failed*** 6 failures.
For whitespace errors, see the file /home/wstein/build/sage-4.0.2.alpha3/tmp/.doctest_quadratic_form__automorphisms.p
}}}"	was
3	sage-5.10 Release	6467	826 days	[with patch, needs work] all primitive roots modulo n	number theory	enhancement	was	needs_work	2011-02-16T17:33:18-08:00	For a fixed positive integer n, compute a list of all the primitive roots modulo n. Sage currently can compute one primitive root modulo n, but not all of them.	mvngu
3	sage-5.10 Release	9407	827 days	fixed fields for dirichlet characters and conductors and dirichlet characters for abelian fields	number fields	enhancement	davidloeffler	needs_work	2011-02-16T06:49:52-08:00	"There is a correspondance between groups of Dirichlet characters and Galois groups of abelian fields (over Q). We implement here three functions

 * the conductor of an abelian field

 * the set of Dirichlet characters of an abelian field

 * the fixed field of a Dirichlet character

Apply [attachment:trac_9407_new.patch]"	wuthrich
3	sage-5.10 Release	4513	854 days	Action of MatrixGroup on a MPolynomialRing	commutative algebra	enhancement	SimonKing	needs_work	2011-01-20T01:09:47-08:00	"A group of n by n matrices over a field K acts on a polynomial ring with n variables over K. However, this is not implemented yet.

The following should work:
{{{
sage: M = Matrix(GF(3),[[1,2],[1,1]])
sage: N = Matrix(GF(3),[[2,2],[2,1]])
sage: G = MatrixGroup([M,N])
sage: m = G.0
sage: n = G.1
sage: R.<x,y> = GF(3)[]
sage: m*x
x + y
sage: x*m
x - y
sage: (n*m)*x == n*(m*x)
True
sage: x*(n*m) == (x*n)*m
True
}}}

On the other hand, we still want to have the usual action on vectors or matrices:
{{{
sage: x = vector([1,1])
sage: x*m
(2, 0)
sage: m*x
(0, 2)
sage: (n*m)*x == n*(m*x)
True
sage: x*(n*m) == (x*n)*m
True
}}}
{{{
sage: x = matrix([[1,2],[1,1]])
sage: x*m
[0 1]
[2 0]
sage: m*x
[0 1]
[2 0]
sage: (n*m)*x == n*(m*x)
True
sage: x*(n*m) == (x*n)*m
True
}}}"	SimonKing
3	sage-5.10 Release	5128	855 days	[with patch, needs work] matplotlib Graphics() wrapper	graphics	enhancement	was	needs_work	2011-01-18T10:32:01-08:00	"This provides an easy way to make a matplotlib image and combine it with other Graphics() objects:

{{{
class Matplotlib_Primitive(GraphicPrimitive):
    """"""
    Primitive class that initializes the
    matrix_plot graphics type 
    """"""
    def __init__(self, artist, options=None):
        self.artist = artist
        GraphicPrimitive.__init__(self, options)        

    def get_minmax_data(self):
        """"""
        Returns a dictionary with the bounding box data.
                
        EXAMPLES:
            sage: m = matrix_plot(matrix([[1,3,5,1],[2,4,5,6],[1,3,5,7]]))[0]
            sage: list(sorted(m.get_minmax_data().items()))
            [('xmax', 4), ('xmin', 0), ('ymax', 3), ('ymin', 0)]

        """"""
        return dict(zip(['xmin', 'xmax', 'ymax', 'ymin'], self.artist.get_extent()))

    def _allowed_options(self):
        return {}

    def _repr_(self):
        return ""MatrixPlot defined by a %s x %s data grid""%(self.xy_array_row, self.xy_array_col)

    def _render_on_subplot(self, subplot):
        subplot.add_artist(self.artist)

def matplotlib_plot(mat):
    from sage.plot.plot import Graphics
    g = Graphics()
    g.add_primitive(Matplotlib_Primitive(mat))
    return g
}}}

Example use:

{{{
A=random_matrix(RDF,100)
A.numpy()
import pylab
import numpy
B=A.numpy().astype(float)
im = pylab.imshow(B/numpy.max(B),  origin='upper',alpha=0.6)
matplotlib_plot(im)+polygon([[0,10],[10,0],[20,40]])
}}}


This just needs to be put in a file in the plot/ directory and an entry added to all.py."	jason
3	sage-5.10 Release	10622	860 days	import sage.all.* into the interact library	interact	enhancement	itolkov, jason	needs_work	2011-01-13T13:56:56-08:00	"This patch:
{{{
diff -r 553928e53141 sage/interacts/library.py
--- a/sage/interacts/library.py	Mon Jan 10 10:03:25 2011 +0100
+++ b/sage/interacts/library.py	Thu Jan 13 09:01:40 2011 -0800
@@ -3,9 +3,9 @@
 """"""
 
 from sagenb.notebook.interact import interact, slider, range_slider, input_box
-from sage.all import sin, plot, point, html, show, latex, SR,exp
-x=SR.var('x')
-
+from sage.all import *
+x=var('x')
+       
 from sage.misc.decorators import sage_wraps
 from sage.misc.html import html
 
}}}

makes it *much* easier to move interacts to the library since you don't have to define every single thing you use from the sage library.
"	jason
3	sage-5.10 Release	9632	861 days	System-dependent term order for printed expressions	symbolics	defect	burcin	needs_work	2011-01-12T19:15:06-08:00	"The order in which the terms in some symbolic expressions are printed depends on the platform/system.  For example, evaluating `cos(x) + zeta(x)` yields

 * `zeta(x) + cos(x)` on Linux
 * `cos(x) + zeta(x)` on OS X

in Sage 4.4.4 and 4.5.2.alpha{0,1}, at least.

Please see #9582 for some details and discussion."	mpatel
3	sage-5.10 Release	7085	862 days	fix this laurent series coercion bug	basic arithmetic	defect	somebody	needs_work	2011-01-11T11:39:39-08:00	"{{{
> Ok, I am completely baffled by the following situation:
>
> sage: A.<z>=LaurentSeriesRing(QQ)
> sage: B.<w>=LaurentSeriesRing(A)
> sage: z/w
>  1
> Maybe you will agree this is a bug?

That's definitely a coercion bug.   You can workaround it like this:


sage: sage: A.<z>=LaurentSeriesRing(QQ)
sage: sage: B.<w>=LaurentSeriesRing(A)
sage: z/w
1
sage: (1/w) * z
z*w^-1
}}}"	was
3	sage-5.10 Release	4740	866 days	[with patch, needs work] avoid creating unneeded homsets when coercing	memleak	defect	robertwb	needs_work	2011-01-07T17:00:34-08:00	"Burcin reported at #4639:
{{{
sage: F = GF(13)
sage: get_memory_usage()
708.02734375
sage: for _ in xrange(10000):
....:     t = F.coerce(F(234234))
....:     
sage: get_memory_usage()
728.15234375
sage: for _ in xrange(100000):
    t = F.coerce(F(234234))
....:     
sage: get_memory_usage()
932.3125
sage: for _ in xrange(100000):
    t = F.coerce(F(234234))
....:     
sage: get_memory_usage()
1136.35546875
}}}
Since the patch by RobertWB at that ticket fixes the issue Burcin reported, but not the original one I am moving it over to this ticket.

Cheers,

Michael"	mabshoff
3	sage-5.10 Release	10513	883 days	Coercion and category framework for modules	coercion	defect	robertwb	needs_work	2010-12-22T05:36:26-08:00	"Currently, modules in Sage do not use the category framework and are based on the old coercion model. Moreover, some coercions go wrong:

Without my patch, we have
{{{
sage: V3 = QQ^3
sage: M = V3 / [[1,2,3]]
sage: V2 = QQ^2
sage: N = V3 / [[1,1,1]]
# The quotient maps are of course coercions
sage: f3M = M.coerce_map_from(V3)
sage: f3N = N.coerce_map_from(V3)
# The following is a bug...
sage: V2.has_coerce_map_from(N)
True
sage: M.has_coerce_map_from(V2)
True
sage: N.has_coerce_map_from(V2)
True
#... because the composition of coercion
# from N to V2 to M should be a coercion,
# but it isn't:
sage: M.has_coerce_map_from(N)
False
# Moreover, we obtain a non-commuting triangle of
# coercions:
sage: fM2 = V2.coerce_map_from(M)
sage: fN2 = V2.coerce_map_from(N)
sage: [fM2(f3M(x)) for x in V3.basis()]
[(1, 0), (0, 1), (-1/3, -2/3)]
sage: [fN2(f3N(x)) for x in V3.basis()]
[(1, 0), (0, 1), (-1, -1)]
}}}

Comparison goes wrong as well without my patch:
{{{
sage: V2==M
True
sage: M==V2
False
}}}

My patch removes the coercion between abstract module `V^2` and the quotient modules. Moreover, we then have `V2!=M`.

I did not implement the ""advanced"" bits of coercion yet, namely the construction functor and pushout magic. This will be dealt with on a different ticket.

Note that what I propose here goes beyond what is done ""on the fly"" in #9713, whose main purpose isn't coercion anyway. Moreover, my patch here does hardly touch the stuff that is really important for #9713. Hence, I suggest to add the ticket here to the long list of dependencies for #9713."	SimonKing
3	sage-5.10 Release	9731	905 days	Export/Import of GML/Graphml/Yaml files through NetworkX	graph theory	enhancement	jason, ncohen, rlm	needs_work	2010-11-29T11:15:49-08:00	"Thanks to Ben's update of NetworkX, these methods can now be used through Sage... This patch updates the constructor method for Graph, and adds write_* methods to export graphs.

This patch requires #9567

Nathann"	ncohen
3	sage-5.10 Release	9699	906 days	Barycentric embedding for planar graphs.	graph theory	enhancement	jason, ncohen, rlm	needs_work	2010-11-28T09:12:13-08:00	"Positions of vertices returned by planar_layout can be set to have the vertices of an equilateral triangle as exterior vertices.

Apply only [attachment:trac_9699_4.patch]"	fidelbarrera
3	sage-5.10 Release	8939	911 days	matrix classes for flint polynomials	linear algebra	enhancement	jason, was	needs_work	2010-11-23T09:50:59-08:00	"Attached patch adds templated matrix classes for FLINT's `fmpz_poly` and `zmod_poly` structs.

At the moment there is no extra functionality provided by the classes, but fast nullspace (over the fraction field), and hopefully inverse implementations will be coming soon. In any case, this should be a good basis for implementing fast algorithms for these matrices."	burcin
3	sage-5.10 Release	8981	914 days	Adding support for param attribute of GSL ode solver	numerical	enhancement	tba	needs_work	2010-11-20T14:44:41-08:00	Currently it isn't possible to pass parameters to a compiled function used for the GSL ode solver. There are some comments in place to indicate what needs to be changed. I implemented those pieces.	Moredread
3	sage-5.10 Release	8617	918 days	Add galrep by Drew Sutherland to Sage	number fields	enhancement	davidloeffler	needs_work	2010-11-16T18:09:11-08:00	The two data files go in SAGE_ROOT/data/extcode/galrep	was
3	sage-5.10 Release	8433	929 days	plot3d for tachyon hangs	graphics	defect	was	needs_work	2010-11-05T17:15:58-07:00	"The following plot command fails (tachyon gets all CPU usage and no picture is shown)
{{{
y=var('y')
B=plot3d(sqrt(sin(x)*sin(y)),(x,-2*pi,2*pi),(y,-2*pi,2*pi),viewer='tachyon')
B.show()
}}}
This works fine
{{{
y=var('y')
B=plot3d(sqrt(sin(x)*sin(y)),(x,0,2),(y,0,2), viewer='tachyon')
B.show()
}}}
and this does not work
{{{
y=var('y')
B=plot3d(sqrt(sin(x)*sin(y)),(x,-2,2),(y,-2,2), viewer='tachyon')
B.show()
}}}
Related trac is #8424, but the problem seems to be independent."	robert.marik
3	sage-5.10 Release	9057	939 days	Supporting elliptic curves over function fields and their L-functions	elliptic curves	enhancement	cremona	needs_work	2010-10-26T15:51:41-07:00	Sage currently cannot compute L-functions of elliptic curves over function fields. Chris Hall and I have developed Cython code so that Sage can make use of our ELLFF (elliptic curve L-functions over function fields) library (written in C++ with NTL). The next step is to patch this into Sage.	salmanhb
3	sage-5.10 Release	10108	942 days	Calling mwrank(-10) hangs Sage, but uses very little CPU time	elliptic curves	defect	cremona	needs_work	2010-10-23T14:50:37-07:00	"Following some very quick hacks at using ""fuzz testing"" techniques, I found that

{{{
sage: mwrank(-10)
}}}

just hangs, but does not appear to be using any CPU time. Although I don't know what this is supposed to do, from discussions on sage-devel, I understand my suspicions this behavior is an error were correct. 

Can someone please select the component appropriately, as I don't have a clue myself. 
"	drkirkby
3	sage-5.10 Release	10046	964 days	Polyhedron's incidence_matrix performs poorly on some numerical input	geometry	defect	mhampton	needs_work	2010-10-01T14:38:03-07:00	"The following 3D simplex shouldn't be all that challenging, but we don't handle it well:

{{{
test = Polyhedron(vertices=[[0.8333333333, 0.8333333333, 0.8333333333], [1.022799569, 0.6321252838, 0.0], [0.7354697967, 0.280924808, 0.4545456098], [1.348361678, 0.0, 0.5150289612]], field=RDF)

test.facial_incidences()
[[0, [0, 1, 3]], [1, [1, 2, 3]], [2, []], [3, [0, 1, 2]]]
}}}

The root of this seems to be in how the incidence_matrix is based on the is_zero method:
{{{
H = list(test.Hrep_generator())[2]
print H
for V in test.Vrep_generator():
    if test._is_zero(H*V):
        test._incidence_matrix[V.index(),H.index()] = 1
    else:
        print H*V, ' for vertex ', V.vector()

An inequality (848702.5784, 1373226.161, -2221927.54) x + -1.0 >= 0
-0.000499999849126  for vertex  (0.8333333333, 0.8333333333, 0.8333333333)
1736102.60814  for vertex  (1.022799569, 0.6321252838, 0.0)
-0.000186597928405  for vertex  (0.7354697967, 0.280924808, 0.4545456098)
-5.35207800567e-05  for vertex  (1.348361678, 0.0, 0.5150289612)
}}}

and in the _init_field method of Polyhedron:
{{{
# 1e-6 is the cddf+ default fuzzy zero cutoff
            self._is_zero = lambda x: abs(x)<=1e-6
}}}

I realize that there will always be some problems like this for numerical (i.e. inexact) polyhedra, but it seems pretty sad that we can't handle a nice, reasonably sized simplex in 3D.  The only thing that immediately occurs to me is to either change how the inequalities are scaled or do something more complicated than the current _is_zero.


"	mhampton
3	sage-5.10 Release	7997	967 days	Use ast to replace display hook hack, and replace pexpect based WorksheetProcess classes with Pipe-based ones	notebook	enhancement	was	needs_work	2010-09-28T14:49:07-07:00	Please see ticket:7997:comment:10 for more details.	acleone
3	sage-5.10 Release	8626	974 days	qqbar and SR	coercion	defect	AlexGhitza	needs_work	2010-09-21T20:15:31-07:00	"It would be nice if roots of quadratics printed using the quadratic formula in QQbar, i.e., 

{{{
sage: QQbar(sqrt(2))
sqrt(2)
}}}

Additionally, it would be nice if we could wrap qqbar elements as SR objects.

The first patch just affects printing of qqbar elements.  The second lets you do more than just print (e.g., SR(QQbar(sqrt(2))) should give you sqrt(2), not just print sqrt(2))"	jason
3	sage-5.10 Release	9656	976 days	Code blocks in the notebook's interactive help get code overlaping itself	notebook	defect	olazo	needs_work	2010-09-19T14:49:02-07:00	"This was reported some time ago in sage-support. As the reporter said, a picture is worth a thousand words, so here's a screenshot.

This is easily corrected (in firefox) by increasing and decreasiing the resolution using Ctrl++ and Ctrl+- ."	olazo
3	sage-5.10 Release	9491	989 days	contour plot does not handle transparency	graphics	enhancement	jason, was	needs_work	2010-09-06T19:56:54-07:00	"This patch enables an 'opacity' argument to the contour plot function.

Doctesting needs to be done, and a few examples need to be written."	jason
3	sage-5.10 Release	3525	999 days	[with patches, don't review] notebook -- new welcome page	notebook	enhancement	TimothyClemans	needs_work	2010-08-27T08:39:04-07:00	Take the static page at http://timothyclemans.com/nb_homepage/ and merge it into the Sage Notebook code.	TimothyClemans
3	sage-5.10 Release	9694	1004 days	Implement direct product of cyclic groups	group theory	enhancement	joyner	needs_work	2010-08-22T23:53:50-07:00	This will be a straightforward implementation of a direct product of cyclic groups, allowing students to experiment with basic notions of order, cyclicness, subgroups, etc.	rbeezer
3	sage-5.10 Release	3866	1014 days	[with patch, not ready for review] Create a 2d locator interact widget	interact	enhancement	itolkov	needs_work	2010-08-12T21:38:30-07:00	"This is a *very* *extremely* rough-cut of a 2d locator widget.  All the docstrings are blatantly wrong and the code is full of ugly things.  But it works, sort of.  It's a starting point for someone to finish.

An example:

{{{
@interact
def _(pos=locator(3)):
    print pos
}}}
"	jason
3	sage-5.10 Release	8734	1014 days	make sage variables unique in maxima	interfaces	defect	jason	needs_work	2010-08-12T15:47:31-07:00	"This patch prepends a unique string, ""_SAGE_VAR_"", to each variable name in maxima, to avoid conflicts with existing variables in maxima."	jason
3	sage-5.10 Release	8533	1015 days	browse thematic tutorials from command line and within notebook	documentation	enhancement	mvngu	needs_work	2010-08-11T14:08:09-07:00	"Ticket #8470 adds a collection of thematic tutorials to the Sage standard documentation. We should be able to browse such tutorials from the Sage command line or within the Sage notebook.

'''Notes:''' The current ticket needs to be coordinated with #8470. 

'''Apply:'''

 * [attachment:trac_8533-browse-doc-take3.patch]
 
With the above patch, you should be able to read the documentation from the command line as follows:

{{{
sage: faq()
sage: thematic_tutorials() 
sage: funcprogramming_tutorial() 
sage: sage.groups.tutorial()
}}}"	mvngu
3	sage-5.10 Release	6893	1030 days	[with patch, needs work] Plotting code improvements	graphics	enhancement	was	needs_work	2010-07-27T16:39:39-07:00	The patch on this ticket was originally posted by Mike Hansen to #5448.  This patch was replaced with a different patch on that ticket.  However, there are still good bits in this patch that simplify the plotting code.  These good bits should be taken and incorporated into the plotting code.	jason
3	sage-5.10 Release	9587	1032 days	Conference Scheduler	numerical	enhancement	jason, jkantor	needs_work	2010-07-25T10:48:43-07:00	"Let Sage schedule all the talks at a conference (or sage days) via an object oriented framework using the MILP solver infrastructure. I.e. specify dependencies between the talks when they build upon each other and pay attention to avoid scheduling talks of the same topic at the same time if there is more than one session room.

Depends on #9586"	schilly
3	sage-5.10 Release	2189	1035 days	[with patch, needs work] improve functionality of matrix_plot	graphics	enhancement	whuss	needs_work	2010-07-22T18:56:14-07:00	"{{{


On Feb 16, 2008 10:19 PM, inerkor@gmail.com <inerkor@gmail.com> wrote:
> 
> Hello all.
> 
> I have a Matrix of, say, 64x64 and I plot it using matrix_plot(). It
> is a fractal that fills the square [0,1]x[0,1] so I want to keep a 2D
> view. I would like to change the x,y axes ranging values to be in the
> interval [0,1] rather than in {0, ..., 63}. I don't know how to do it.
> Maybe using another plotting function?.
> 

Nobody has implemented a simple clean way to do that in Sage yet,
though it would be easy to do.  Here is a hackish way to do exactly
what you want:

sage: a = random_matrix(RDF,64)
sage: import numpy
sage: m = matrix_plot(a)
sage: m[0].xrange =numpy.array([0,1],dtype=float)   # key part of all this
sage: m[0].yrange =numpy.array([0,1],dtype=float)
sage: m.xmax(1); m.ymax(1)
sage: m.show()

The above will be helpful to whoever does implement this.

 -- William
}}}"	was
3	sage-5.10 Release	9577	1035 days	chinese translation of the tutorial	documentation	enhancement	mvngu	needs_work	2010-07-22T14:38:29-07:00	"i found this on the internetz over here:
http://ai7.org/wp/html/682.html

i am unable to build the pdf, but html works."	schilly
3	sage-5.10 Release	9429	1042 days	Undesirable behaviour when deriving from QuotientRingElement	algebra	defect	AlexGhitza	needs_work	2010-07-15T10:32:45-07:00	"All arithmetic operations on `QuotientRingElement` return a new `QuotientRingElement`, which is not the desired result for derived classes. Instead one should use `self.__class__` to return an instance of the actual type:
{{{
sage: from sage.rings.quotient_ring_element import QuotientRingElement
sage: class Q(QuotientRingElement):
...    pass
...
sage: P.<x,y> = PolynomialRing(QQ, 'x, y')
sage: Pquo = P.quo(x^3)
sage: q = Q(Pquo, x)
sage: type(q)
<class '__main__.Q'>
sage: type(q^2)
<class 'sage.rings.quotient_ring_element.QuotientRingElement'>
}}}

Expected behaviour: `q^2` should have the same (derived) type as `q`.

I am running into this issue because I want to express cohomology classes on toric varieties as derived classes of `QuotientRingElement`, see #9326. I'll write the obvious patch and attach it later today."	vbraun
3	sage-5.10 Release	8678	1044 days	Improvements for morphisms of ModulesWithBasis	categories	defect	nthiery	needs_work	2010-07-13T12:45:57-07:00	"The upcoming patch in the Sage-Combinat queue implements:
 - inverses for morphisms of finite dimensional vector spaces
 - tensor products of morphisms

and improves:
 - triangular morphisms over base rings

At this occasion, it starts a bit of cleanup in the category framework for homsets, fixing some known issues (failing _test_category)."	nthiery
3	sage-5.10 Release	9095	1051 days	Elliptic curve over function field heights	number theory	enhancement	was	needs_work	2010-07-07T03:22:36-07:00	Code at http://wiki.sagemath.org/daysff/lfcn-bsd	robertwb
3	sage-5.10 Release	9060	1082 days	break symmetries in subgraph search	graph theory	enhancement	jason, ncohen, rlm	needs_work	2010-06-06T04:01:16-07:00	"Useless, when looking for a triangle, to test both abc, bca, and cab. The same is true when looking for Cycles, for complete graphs, etc...

There may be a way to generally deal with those symmetries to improve the speed of subgraph search. Build complete table of n! symmetries if necessary (optional argument to toggle it).

If not, it is still possible to manually improve it for cycles, complete graphs, and other ""common"" graphs.

Nathann"	ncohen
3	sage-5.10 Release	8932	1082 days	Shortest circuit in digraphs	graph theory	enhancement	jason, ncohen, rlm	needs_work	2010-06-06T04:01:03-07:00	" * Update the multiflow method
 * replace topological_sort to use Sage instead of NetworkX"	ncohen
3	sage-5.10 Release	7720	1082 days	Digraph.reverse() should be rewritten more efficiently ( not hard )	graph theory	enhancement	rlm	needs_work	2010-06-06T04:00:56-07:00	"This function should be rewritten much more efficiently :

First, there should be a way to reverse the arcs ""in place"" ( without building a copy, by modifying the current graph -- I do not know if the expression used in frech translates in this case ). Such a function, for c_graphs, should be written in Cython and consist in the case of sparse graph in reverting the two copies kept of the graph.
In the end, this function should consist in an (optional) copy of the graph (=fast) and a call to the functionr reverting the arcs ( O(1) )

If possible and if deemed useful, the same should be made for NetworkX graphs."	ncohen
3	sage-5.10 Release	7676	1082 days	shortest_path_all pairs in Cython through Floyd Warshall	graph theory	enhancement	rlm	needs_work	2010-06-06T04:00:50-07:00	"Everything is explained there :

http://en.wikipedia.org/wiki/Floyd%E2%80%93Warshall_algorithm"	ncohen
3	sage-5.10 Release	7675	1082 days	shortest_path in c_graph should have an optional flag distance=False to return only the distance	graph theory	enhancement	rlm	needs_work	2010-06-06T04:00:47-07:00	"This modification would avoid the building of the shortest path, which is interesting for a function so often used !

Nathann"	ncohen
3	sage-5.10 Release	7302	1082 days	Nowhere zero flow	graph theory	enhancement	rlm	needs_work	2010-06-06T03:59:17-07:00	"As we will soon have a Flow function in Sage, the next step could be to write a Nowhere Zero flow function !

It should also be possible to define a flow over an abelian group, as they equivalently exist...

More informations there : http://en.wikipedia.org/wiki/Nowhere-zero_flow"	ncohen
3	sage-5.10 Release	9159	1082 days	(modular decomposition) Improvement to graph coloring	graph theory	enhancement	jason, ncohen, rlm	needs_work	2010-06-06T03:58:44-07:00	Modular composition can be used to color graphs a bit more efficiently	ncohen
3	sage-5.10 Release	9158	1082 days	(modular decomposition) Improvement to subgraph search	graph theory	enhancement	jason, ncohen, rlm	needs_work	2010-06-06T03:57:24-07:00	Use modular decomposition in G and H to reduce the problem	ncohen
3	sage-5.10 Release	9157	1082 days	(k-cores) Improvement to subgraph search	graph theory	enhancement	jason, ncohen, rlm	needs_work	2010-06-06T03:56:14-07:00	compute k-cores in the graph and its complement (if induced) to reduce the size of ``self``	ncohen
3	sage-5.10 Release	9126	1085 days	Symbolic arguments() method	symbolics	defect	burcin	needs_work	2010-06-02T22:13:00-07:00	"Right now, the following works:
{{{
sage: a=(x+y)
sage: a.arguments()
(x, y)
}}}
However, we deprecated the following a long time ago:
{{{
sage: a(1,2)
/Users/grout/sage/local/lib/python2.6/site-packages/IPython/iplib.py:2073:
DeprecationWarning: Substitution using function-call syntax and unnamed
arguments is deprecated and will be removed from a future release of
Sage; you can use named arguments instead, like EXPR(x=..., y=...)
   exec code_obj in self.user_global_ns, self.user_ns
3
}}}
I propose that a.arguments() should return a deprecation warning:
{{{
sage: a.arguments()
/Users/grout/sage/local/lib/python2.6/site-packages/IPython/iplib.py:2073:
DeprecationWarning: (Since Sage version 4.4.2) symbolic expressions do
not have default callable arguments.  Please use the variables() method
   exec code_obj in self.user_global_ns, self.user_ns
(x, y)
}}}
This will impact other things as well, since apparently things have been
using .arguments() when they should have been using .variables().  I can
post a patch for this.  Here, I'm just calling for comment, especially
from those that think this will mess everything up in some way.

Note that callable functions will still have sensible return values:
{{{
sage: f(x,y)=x+y
sage: f.arguments()
(x, y) 
}}}"	jason
3	sage-5.10 Release	9115	1085 days	smart summing	misc	enhancement	jason	needs_work	2010-06-02T15:25:27-07:00	"We should extend the Sage sum function to call a magic method to handle summing things in the case of the python sum calling convention (and we shouldn't use the ""sum()"" method, as that name is probably way too likely to be used, and may be used for something else!)

This can take care of the performance issues at #9089 and #9061."	jason
3	sage-5.10 Release	6344	1093 days	Typesetting partial derivatives in new symbolics	symbolics	enhancement	burcin	needs_work	2010-05-26T01:41:58-07:00	"New symbolics uses ""D"" format for derivatives instead of old ""diff"" format. 

See the threads below for discussion on various related issues

'''[1]'''  http://groups.google.com/group/sage-devel/browse_thread/thread/7479c3eeb96348a2

'''[2]'''  http://groups.google.com/group/sage-devel/browse_thread/thread/2c8068f27c1fb642

Some patches attached to #5711 also has code for this.
 
"	gmhossain
3	sage-5.10 Release	6925	1113 days	Fast way of calculating cuspidal subgroup of J0(N)	modular forms	enhancement	tbd	needs_work	2010-05-05T18:59:33-07:00	"This is the first implementation of Ligozat's method of calculating the rational cuspidal subgroup of J_0(N). This is done by doing linear algebra in d(N)*d(N) matrices, which seems considerably faster than the modular symbol methods.

This code is functional at this point. The problems with it are
a) __cmp__ is not called.
b) Hecke operators aren't defined yet.
c) can't coerce specific degree zero cuspidal divisors in our group.

"	syazdani
3	sage-5.10 Release	8828	1119 days	Lower height bound for elliptic curves	elliptic curves	enhancement	cremona	needs_work	2010-04-30T01:18:44-07:00	Implements Cremona and and Samir Siksek's algorithm for computing lower bounds on canonical heights, with Nook's extensions to number fields. 	robertwb
3	sage-5.10 Release	8631	1119 days	Make a graph-input interact control	interact	enhancement	itolkov	needs_work	2010-04-29T18:09:36-07:00	"Should be able to use the graph editor as an input widget for interacts.  

Preliminary proposal on sage-devel:
http://groups.google.com/group/sage-devel/browse_thread/thread/f5b850969340bc37/

Current state of graph editor:  #8222"	rbeezer
3	sage-5.10 Release	8764	1124 days	the full Data Encryption Standard (DES)	cryptography	enhancement	mvngu	needs_work	2010-04-25T02:13:35-07:00	An implementation of the Data Encryption Standard (DES) for educational purposes. The file [http://trac.sagemath.org/sage_trac/attachment/ticket/8764/des.sage des.sage] is a Sage script implementing DES and written by Alasdair !McAndrew. This needs to be cleaned up and upload a patch against the Sage library.	mvngu
3	sage-5.10 Release	6641	1127 days	[with patch, needs work] switch the poset antichains method to use GenericBacktracker and add antichains_iterator.	combinatorics	enhancement	saliola	needs_work	2010-04-21T14:13:00-07:00	"The current implementation of antichains must construct the complete set of antichains, but it can be done via an iterator (using the {{{GenericBacktracker}}} class).

I have a patch that I will post shortly."	saliola
3	sage-5.10 Release	8593	1139 days	Add Lehmer code of Permutation as an infinite enumerated set	combinatorics	enhancement	nborie	needs_work	2010-04-10T02:28:46-07:00	"The goal of this ticket is to implement Lehmer_codes as a parent (InfiniteEnumeratedSets()). One of the goal is to use this features to index Schubert evaluation points and Schubert polynomials.

There is also an iterator over all codes, and two methods for elements
is_dominant() (easy Schubert) and is_anti_dominant() (symmetric Schubert)."	nborie
3	sage-5.10 Release	8581	1155 days	Implement an uniform set for index infinite variable algebraic structure, implement polynomial ring in infinite set of indeterminate with categories, implement the Schubert base ring in y1, y2, y3, ...	combinatorics	enhancement	nborie	needs_work	2010-03-24T13:39:30-07:00	"This patch Implement a set with categories to index monomials of infinite indeterminate algebraic structure. There is 4 versions of this set : power of indeterminate can be negative or only positive and there is a dense and sparse implementation of the set (list/dictionary).

From this set, there is an example of graded_algebras_with_basis which is the polynomial ring in infinite indeterminate.

The Schubert base ring inherit from this example and changing 3 thing:
 *  the name of the ring
 *  the name of variable (y1, y2, y3, ...) for Schubert
 *  A __call __ method for element which correspond to the specialization

With this patch, one can do for example:
{{{
sage: from sage.combinat.multivariate_polynomials.schubert_base_ring import SchubertBaseRing
sage: from sage.categories.examples.graded_algebras_with_basis import PolynomialRingInfiniteIndeterminate
sage: S = SchubertBaseRing(ZZ); S
Base ring for Schubbert polynomials in the variables y1, y2, y3, ... over Integer Ring
sage: A = PolynomialRingInfiniteIndeterminate(S); A
An example of graded algebra with basis: the polynomial ring in infinite indeterminate over Base ring for Schubbert polynomials in the variables y1, y2, y3, ... over Integer Ring
sage: A.base_ring().an_element()*A.an_element()
(1+2*y1+y1*y3^2*y4^3+3*y1^2) + (2+4*y1+2*y1*y3^2*y4^3+6*y1^2)*X1 + (1+2*y1+y1*y3^2*y4^3+3*y1^2)*X1*X3^2*X4^3 + (3+6*y1+3*y1*y3^2*y4^3+9*y1^2)*X1^2
}}}

This built the ambient space for Schubert polynomials which are polynomials in two infinite alphabet of indeterminate indexed by PositiveIntegers() (or NonNegativeIntegers()... setting this is easy...)

Will be followed by the Adrien's work on #6629"	nborie
3	sage-5.10 Release	8372	1178 days	split up incidence_matrix() over graph.py and digraph.py	graph theory	enhancement	rlm	needs_work	2010-03-01T21:30:34-08:00	"From [http://groups.google.com/group/sage-devel/browse_thread/thread/b9e4114047427c2e sage-devel]:
{{{
For discussion purposes, let me toss out some ideas on improving the
interface for computing incidence matrices. For a graph object G, I
propose we add a keyword to G.incidence_matrix() so that the interface
is now changed to the following method signature:

def G.incidence_matrix(orientation=False)

The keyword ""orientation"" takes on a Boolean value. So
G.incidence_matrix(orientation=False) or G.incidence_matrix() returns
the unoriented incidence matrix of an undirected graph G. Furthermore,
G.incidence_matrix(orientation=True) returns the oriented incidence
matrix of an undirected graph G, which is the current behaviour. The
keyword ""orientation"" has no effect if G is a digraph. So
""orientation"" is only meant to affect undirected graphs.

Let's consider whether or not to leave the method incidence_matrix()
in the module generic_graph.py. I consider it more appropriate for
graph.py (a module for undirected graphs) to deal with incidence
matrices for undirected graphs. Similarly, digraph.py can deal with
incidence matrices for digraphs. At the moment, incidence_matrix()
resides in generic_graph.py, a module with over 10 thousand lines. 
}}}"	mvngu
3	sage-5.10 Release	8287	1191 days	The _check used for creation of words makes it slower	combinatorics	enhancement	slabbe	needs_work	2010-02-16T16:03:44-08:00	"The {{{_check}}} function of the Combinatorial class of all words (checking that the 40 first letters of the word are in the parent) is called for each word created by the user ....and by any other function. It would be good to add a check parameter (True or False) whether to do the checking. For example, for internal function, it could be turned off. Here is a example of what can be gained from this modification when generating all words of a given length :

BEFORE:
{{{
sage: W = Words([0,1])
sage: time l = list(W.iterate_by_length(15))
CPU times: user 2.60 s, sys: 0.09 s, total: 2.69 s
Wall time: 2.71 s
}}}

AFTER:

{{{
sage: W = Words([0,1])
sage: time l = list(W.iterate_by_length(15))
CPU times: user 1.99 s, sys: 0.06 s, total: 2.05 s
Wall time: 2.08 s
}}}

"	slabbe
3	sage-5.10 Release	7629	1200 days	Make it possible to restrict the domains of email addresses	notebook	enhancement	was	needs_work	2010-02-08T05:10:24-08:00	"I'm setting up a campus server, and it would extremely useful if I could require valid email addresses and restrict email addresses to campus addresses.  This would allow anyone with a valid campus email address to create an account.

Note that for this to work, we also need to make it required to confirm email addresses before accounts are activated."	jason
3	sage-5.10 Release	7723	1204 days	Sparse matrices for double fields	linear algebra	enhancement	jkantor	needs_work	2010-02-04T00:01:06-08:00	"Here's the beginnings of my work on sparse double matrices.

This is based on 4.3.rc0. Note that I have *not* run the entire Sage test suite,
only tests in the matrix package. I'm happy to run the entire suite once I know
the final revision this will be rebased to, but 4.3.rc0 produces a few test
failures in itself (=noise I'm not bothering with for the moment).

There are three patches, which should be applied and reviewed in this order:

 - generic_multiply lets one override matrix multiplication with
   different parents.  This is in a seperate patch because it changes
   structure/element.pxd, causing a big recompile.

 - double_sparse is the main new classes

 - coo_format changes the matrix constructor to accept ""coo=..."" (see docstring
   in patch)

More comments:

 - I will not introduce seperate classes for real and complex -- there
   will be other subclasses (Hermitian, strictly-diagonal etc.) and I
   don't want to double the size of the hierarchy. There are other
   (and better) ways to get efficient getitem/setitem without a speed
   penalty (such as introducing a seperate ItemAccessor protocol/class
   -- though for sparse matrices an if-test won't matter either).

 - Once this is accepted (and I have a general feel for what I do
   right and wrong) I hope to continue with solvers etc. (as I scratch my itches).

"	dagss
3	sage-5.10 Release	4754	1206 days	Merge minimum rank code	graph theory	enhancement	jason	needs_work	2010-02-02T02:21:56-08:00	"Based on the discussion at http://groups.google.com/group/sage-support/browse_thread/thread/3ec4cc026e9c65bd, it would be great to merge the code found at http://arxiv.org/abs/0812.1616 into the Sage library.  Several functions should probably go into the main graph library (e.g., the edge clique cover function), while others probably ought to go into a minimum_rank.sage file.

I am one of the developers and hereby give my permission to incorporate the code into Sage.  I will ask the other developers as well."	jason
3	sage-5.10 Release	8065	1213 days	irreducible_characters() and word_problem() should sort their output	group theory	defect	joyner	needs_work	2010-01-26T01:46:06-08:00	"These group functions use the GAP interface and return unsorted lists.  This makes them prone to doctest breakage when GAP is upgraded (and the order of things changes) or when GAP uses non-deterministic algorithms (and the order of things is ill-defined).

The patch fixes {{{irreducible_characters}}} and {{{word_problem}}}.  There might be more functions in {{{sage/groups}}} that require the same treatment, but that can go on a different ticket.
"	AlexGhitza
3	sage-5.10 Release	4306	1216 days	bug in supersingular module	modular forms	defect	craigcitro	needs_work	2010-01-22T18:02:41-08:00	"{{{
sage: X = SupersingularModule(389)
sage: X
Module of supersingular points on X_0(1)/F_389 over Integer Ring
sage: X.basis()
Traceback (most recent call last):
...
AttributeError: 'SupersingularModule' object has no attribute 'free_module'
}}}"	was
3	sage-5.10 Release	6729	1219 days	notebook -- bug when input contains uniform leading space	notebook	defect	boothby	needs_work	2010-01-19T23:37:32-08:00	"{{{


On Mon, Aug 10, 2009 at 8:43 AM, Kiran Kedlaya <kskedl@gmail.com> wrote:


    What would you expect from the following input into the notebook?

    CELL 1:
       u = 2+2
       u = 2+3

    CELL 2:
    print u

    If you try something like this at a command line, the first line gives
    an error due to the spaces in front. 


No it doesn't, at least not for me.

flat wstein$ sage
----------------------------------------------------------------------
| Sage Version 4.1, Release Date: 2009-07-09                         |
| Type notebook() for the GUI, and license() for information.        |
----------------------------------------------------------------------
Loading Sage library. Current Mercurial branch is: heckeindex
sage:    u = 2+2
sage:    u = 2+3
sage: print u
5

I know it won't give an error, because on the command line all spaces and sage: and >>> prompts are stripped from the left for non-continuation lines.

However, you might have meant the pure python command line, which does give an error:

flat:kamienny wstein$ sage -python
Python 2.6.2 (r262:71600, Jul  8 2009, 17:42:25)
[GCC 4.0.1 (Apple Inc. build 5465)] on darwin
Type ""help"", ""copyright"", ""credits"" or ""license"" for more information.
>>>    u = 2 + 2
  File ""<stdin>"", line 1
    u = 2 + 2
    ^
IndentationError: unexpected indent
>>>

 

    But on my notebook server
    (running 4.1), the first cell evaluates without an error, and the
    second one returns 4, not 5. ?!

    Kiran


This must be a bug in the notebook, related to exec compile, which the notebook uses to evaluate cells.   Here's the code that actually gets executed:

----------------------------------------------------------------

flat:code wstein$ pwd
/Users/wstein/.sage/sage_notebook/worksheets/admin/222/code
flat:code wstein$ more 16.py
# -*- coding: utf_8 -*-
from __future__ import with_statement
print ""^Ab14""
os.chdir(""/Users/wstein/.sage/sage_notebook/worksheets/admin/222/cells/5"")
sage.server.notebook.interact.SAGE_CELL_ID=5
_sage_const_3 = Integer(3); _sage_const_2 = Integer(2)
exec compile(ur'u = _sage_const_2 +_sage_const_2\u000a   u = _sage_const_2 +_sage_const_3' + '\n',
 '', 'single')

print ""^Ae14""
----------------------------------------------------------------

The code if you get rid of the spaces to the left we get:

flat:code wstein$ more 23.py
...
_sage_const_3 = Integer(3); _sage_const_2 = Integer(2)
u = _sage_const_2 +_sage_const_2
exec compile(ur'u = _sage_const_2 +_sage_const_3' + '\n', '', 'single')

-------------------------

Notice that ""exec compile"" is supposed to only be used on the *last* line of input.    The reason for this is so that the display print hook is called, e.g., so if you type

  a = 5
  a + 1
  b = 7
  a + b

in a notebook cell, at least you'll see 12 (=a+b) come out.  You will not see 6 from ""a+1"" though.  So the problem you're seeing is because the code in the notebook to determine ""the last line of code"" takes account special cases when the last line is indented, so e.g., the following would work:

   for z in range(10):
        z

and print out each of the z's (just like ""for z in range(10): z"").  In fact, the above is turned into:

_sage_const_5 = Integer(5)
exec compile(ur'for z in range(_sage_const_5 ):\u000a    z' + '\n', '', 'single')

The problem is that when we input
     u = 2 +2
     u = 2 + 3
both indented, then everything is combined into one single exec compile, and surprisingly we have in pure python:

>>> _sage_const_3 =3; _sage_const_2 = 2>>> exec compile(ur'u = _sage_const_2 +_sage_const_2\u000a   u = _sage_const_2 +_sage_const_3' + '\n',
...  '', 'single')>>>
>>> u
4
 
I'm surprised this doesn't set u to 5.  It might have something to do with the ""\u000a"" which is the unicode character for linefeed.    Basically, I find the following behavior of Python's exec command really weird/broken/surprising.  I would expect an error in the latter two cases:

>>> exec compile(ur'for z in range(5):\u000a   z', '','single')0
1
2
3
4
>>> exec compile(ur'u=2+2\u000a  u=3+3', '','single')
>>> print u
4
>>> exec compile(ur'u=10\u000a  u=3+*fr%Acn @#!^2n2azzz3', '','single')
>>> print u
10
 
I hope a Python interpreter expert such as Robert Bradshaw can comment on this.  In the meantime, if I were to spend more time on this now (which I won't), I would read the docs for exec and compile carefully, then probably just find a way to program around this surprising (to me) case in server/notebook/worksheet.py (which generates the exec compile code that is run above).

-- William
}}}"	was
3	sage-5.10 Release	7991	1220 days	Generic matrix testing -- left and right kernel	linear algebra	defect	was	needs_work	2010-01-18T19:44:39-08:00	This patch implements generic testing for left and right kernels.  It exposes lots of bugs.	jason
3	sage-5.10 Release	3940	1220 days	[with patch, needs work] Add a warnings framework to Sage	misc	enhancement	cwitty	needs_work	2010-01-18T13:55:15-08:00	"The builtin python warnings framework allows filtering on subclasses of warnings.  This would be useful to make a sage warnings framework, with different types of sage-specific warnings.

Here, I've added a directory and a basic file with a NumericalPrecisionWarning class that could be triggered, for example, in the eigenvalue computations."	jason
3	sage-5.10 Release	1281	1221 days	update compilation failure message with uptodate instructions	packages: standard	defect	mabshoff	needs_work	2010-01-17T10:20:08-08:00	"{{{
[10:24] <mabshoff> I think we should change the failure message if Sage fails to compile to first check 
[10:24] <mabshoff> if it is the latest version and try that before contacting the lists
[10:25] <williamstein> sure.  make it so.
[10:25] <mabshoff> It should also mention to gzip up the log somewhere and post a link instead of sending 
[10:25] <mabshoff> a couple MB to 230+ people.
[10:25] <williamstein> agreed.
[10:25] <mabshoff> Ok, will open tichet.
}}}

Cheers,

Michael"	mabshoff
3	sage-5.10 Release	7954	1222 days	Defining affine curves in 3D space	algebraic geometry	defect	AlexGhitza	needs_work	2010-01-17T01:42:43-08:00	"Reported by Ronald van Luijk:

because the Curve constructor automatically interprets a homogeneous polynomial in 3 variables as a projective curve, the following doesn't work:

{{{
A.<x,y,z>=AffineSpace(QQ,3)
C=Curve([x-y,x-z])
}}}"	wjp
3	sage-5.10 Release	6741	1231 days	[with patch, needs work] pil interface	packages: standard	enhancement	mabshoff	needs_work	2010-01-08T04:15:54-08:00	"The attached patch implements several functions providing a simpler interface to the Python Imaging Library. For example, you can sharpen the image of an image on the internet you have the url of and save it to Sage's tmp subdirectory.

"	wdj
3	sage-5.10 Release	5910	1237 days	[with patch, needs work] move logic module boolopt.py to another enhancement ticket	misc	enhancement	somebody	needs_work	2010-01-01T19:18:33-08:00	This is a followup to #545. As discussed at #545, the module {{{boolopt.py}}} is moved to this enhancement ticket. So basically, #545 no longer requires boolopt.py to reach 100% doctest coverage in order to be merged into Sage. Thus the only work needed to be done here is to bring coverage of boolopt.py to 100%.	mvngu
3	sage-5.10 Release	6452	1248 days	[with patch, needs work] codes over rings	coding theory	enhancement	rlm	needs_work	2009-12-22T04:05:08-08:00	"This module constructs codes over rings of the form ZZ/mZZ, that is, submodules of FreeModule(IntegerModRing(m), n).
The main authors are Cesar Agustin Garcia-Vazquez (who was an undergrad in Mexico when he wrote this) and Carlos A. Lopez-Andrade (his advisor). I made some changes to make it more consistent with LinearCode. (It still has some hidden differences - the basic problem being that FreeModule has no submodule or span method analogous that of VectorSpace.)

It is in Cython, which I confess I don't really understand well. My role is simply to take Cesar's code (which he emailed to me), tweek it a bit, and create a patch. He has explicitly agreed to distributing it under GPLv2+."	wdj
3	sage-5.10 Release	3925	1248 days	[with SPKG, needs work] Wrap Bernstein 's primegen	number theory	enhancement	was	needs_work	2009-12-21T07:23:29-08:00	"See http://cr.yp.to/primegen.html

Some code at http://thread.gmane.org/gmane.comp.python.cython.devel/2579/focus=2581
"	robertwb
3	sage-5.10 Release	6800	1262 days	formal/lazy/infinite powerseries	algebra	enhancement	burcin	needs_work	2009-12-08T02:03:09-08:00	New code that implements lazy power and Laurent series.	Henryk.Trappmann
3	sage-5.10 Release	3375	1267 days	[with patch, mixed review] Fix building ntl on Solaris with make and ld	build	defect	mabshoff	needs_work	2009-12-02T20:55:35-08:00	"OK so here is what got me through ntl on David's box.
The mfile patch is against the copy in the ntl patch folder 
not the source. It also patch ntl spkg-install to properly
setup and tune ntl as well as cleaning the installation bits
introduced to accommodate Tim & I.
I guess Tim and I will have to fend for ourselves separately.
Also we submitted a lot of patch in the ntl style. Since
I used some GNU-ism for building shared objects most of
them will have to be revised.

Francois
"	fbissey
3	sage-5.10 Release	6128	1272 days	[with patch; needs work] Bug - sage-cleaner failed due to NULLs in spawned-processes files written by cleaner.py	misc	defect	cwitty	needs_work	2009-11-27T17:21:20-08:00	"From: adavid (on sage-devel)
{{{
After building 4.0rc0 overnight, on my laptop, I started make test
the next morning. . I shutdown the laptop before completion as I had
to rush out the door (suspend would have been a good idea...).

Regardless, I ended up with a temporary file structure with a number
of
spawned_processes files consisting of NULLs which triggers the bug as
detailed below.

Why is there NULLs instead of numeric string? <--rhetorical question

$SAGE_BASE/sage-main/sage/interfaces/cleaner.py writes the PID

Async I/O means the PID may or may not be written on a shutdown/power
outage etc.

Patch:
(against 4.0rc0)

# HG changeset patch
# User Anthony David <adavid@adavid.com.au>
# Date 1243176398 -36000
# Node ID 958178a11b9e809788f1eda0cc29107c456a1bbe
# Parent  b25ac645ae77e49db250243280eab38c2431937a
Improve write assurance of spawned_processes file by local/bin/sage-
cleaner

diff -r b25ac645ae77 -r 958178a11b9e sage/interfaces/cleaner.py
--- a/sage/interfaces/cleaner.py Thu May 21 07:10:11 2009 -0700
+++ b/sage/interfaces/cleaner.py Mon May 25 00:46:38 2009 +1000
@@ -28,6 +28,8 @@
            return
        o = open(F,'w')
    o.write('%s %s\n'%(pid, cmd))
+    o.flush()
+    os.fsync(f.fileno())
    o.close()
    start_cleaner_if_not_running()



Notes:


- Linux carbonate 2.6.18-4-686 #1 SMP Mon Mar 26 17:17:36 UTC 2007
i686 GNU/Linux
- Debian GNU/Linux 5.0

- tested patch with a shutdown during a make test, 82 spawned-
processes files created.
Successful sage-cleaner invocation on sage  startup.

- no tests yet on other OSes/arches etc

-  The sage-cleaner statement i=L.find(' ') in kill_spawned_jobs fails
to find any spaces

- could fix the above problem but it is better to attack the root
cause,
hence the patch to cleaner.py and not sage-cleaner

- patch could be improved by creating a temporary file and them
performing
a rename after the close.

- The debug print statements in sage-cleaner were uncommented to
assist with
defining the problem

- Don't have access to TRAC

- This is not a specific 4.0rc0 bug

Bug:


anthonyd@carbonate:~/sage-4.0.rc0$ ./sage
----------------------------------------------------------------------
| Sage Version 4.0.rc0, Release Date: 2009-05-21                     |
| Type notebook() for the GUI, and license() for information.        |
----------------------------------------------------------------------
starting the cleaner
sage: doing a cleanup
checking on 4306
it is no longer running, so we clean up
SAGE Cleaner: deleting /home/anthonyd/.sage//temp/carbonate//4306
checking on 4623
it is running
checking on 31727
it is no longer running, so we clean up
killing 31727's spawned jobs

SAGE-Cleaner: trying to kill  with parent 31727

Traceback (most recent call last):
 File ""/home/anthonyd/sage-4.0.rc0/local/bin/sage-cleaner"", line 108,
in <module>
   while cleanup() > 0:
 File ""/home/anthonyd/sage-4.0.rc0/local/bin/sage-cleaner"", line 53,
in cleanup
   if not e or (e and kill_spawned_jobs(spawned_processes,
parent_pid)):
 File ""/home/anthonyd/sage-4.0.rc0/local/bin/sage-cleaner"", line 75,
in kill_spawne\
d_jobs
   os.killpg(int(pid), 9)
ValueError: invalid literal for int() with base 10: ''


...

$ ls -laR /home/anthonyd/.sage/temp/carbonate/31727/
/home/anthonyd/.sage/temp/carbonate/31727/:
total 12
drwxr-xr-x 3 anthonyd anthonyd    46 2009-05-24 06:58 .
drwxr-xr-x 9 anthonyd anthonyd 12288 2009-05-24 22:26 ..
drwxr-xr-x 2 anthonyd anthonyd    21 2009-05-24 06:58 interface
-rw-r--r-- 1 anthonyd anthonyd    10 2009-05-24 06:58
spawned_processes

/home/anthonyd/.sage/temp/carbonate/31727/interface:
total 4
drwxr-xr-x 2 anthonyd anthonyd  21 2009-05-24 06:58 .
drwxr-xr-x 3 anthonyd anthonyd  46 2009-05-24 06:58 ..
-rw-r--r-- 1 anthonyd anthonyd 110 2009-05-24 06:58 tmp31727

 od -xc /home/anthonyd/.sage/temp/carbonate/31727/spawned_processes
0000000 0000 0000 0000 0000 0000
        \0  \0  \0  \0  \0  \0  \0  \0  \0  \0
0000012
}}}"	was
3	sage-5.10 Release	7401	1278 days	Derivative at a point is not translated into Maxima	interfaces	defect	was	needs_work	2009-11-21T23:27:24-08:00	"Alex reported [http://groups.google.cz/group/sage-support/browse_thread/thread/81b96a7731600ec2] this bug (see the link for short discussion related to the problem)
{{{
Hi all:

I found some strange behavior in solve that's related to function
composition.  Check out this short example.

----------------------------------------------------------------------
| Sage Version 4.2, Release Date: 2009-10-24                         |
| Type notebook() for the GUI, and license() for information.        |
----------------------------------------------------------------------
sage: var('x,t')
(x, t)
sage: f= function('f',x)
sage: e= {x:exp(t)}
sage: ft= f.subs(e); ft
f(e^t)
sage: Ft = t^2 + ft^2; Ft
t^2 + f(e^t)^2
sage: a= diff(Ft,t); a
2*e^t*f(e^t)*D[0](f)(e^t) + 2*t
sage: solve(a==0,diff(f,x).subs(e))
[D[0](f)(t) == -t*e^(-t)/f(e^t)]

Did you spot the strangeness?  Somehow diff(f,x).subs(e) became diff
(f,x).subs({x:t}) after solving.  Does anybody know how to fix this?

Alex 

}}}"	robert.marik
3	sage-5.10 Release	6551	1285 days	fix ugliness in printing of multivariate polynomials	algebra	enhancement	AlexGhitza	needs_work	2009-11-15T05:25:08-08:00	"The printing (and latex-ing) of multivariate polynomials is sometimes quite ugly, and inconsistent with the much prettier printing of univariate polynomials.  One gets things like the following (taken from doctests in the Sage library):

{{{
(-6/5)*x^2*y^2 + (-3)*x*y^3 + 6/5*x^2*y + 11/12*x*y^2 + (-18)*y^2 + (-3/4)*y
}}}

or even

{{{
sage: xgcd((b+g)*y^2, (a+g)*y+b)
((b^3 + (g)*b^2)/(a^2 + (2*g)*a + 3), 1, ((-b + (-g))/(a + (g)))*y + (b^2 + (g)*b)/(a^2 + (2*g)*a + 3))
}}}

The attached patch fixes this, factors out common code for printing and latex-ing, and makes printing consistent across various representations of multivariate polynomials.
"	AlexGhitza
3	sage-5.10 Release	6607	1285 days	Quadratics in GF(2^m)	algebra	enhancement	tbd	needs_work	2009-11-15T02:34:14-08:00	Added specialized code for factoring quadratic polynomials over GF(2^m).	wakep
3	sage-5.10 Release	6959	1301 days	[with patch; needs work] modular forms -- add aplist and anlist for newforms	modular forms	enhancement	craigcitro	needs_work	2009-10-29T14:19:53-07:00		was
3	sage-5.10 Release	6410	1304 days	[with patch; needs work] optimize creation of diagonal matrices	linear algebra	enhancement	was	needs_work	2009-10-26T21:12:30-07:00	"{{{

Actually there are two issues.

Sure, the determinant issue is fairly easily diagnosed. No wonder that an n!
algorithm takes time. I'll try to look into this.

But it's not the only thing.

> sage: p=3
> sage: n=1000
> sage: K=GF(p)
> sage: KP.<x>=PolynomialRing(K)
> sage: time xI=diagonal_matrix([x for i in range(n)])
> CPU times: user 32.18 s, sys: 0.14 s, total: 32.33 s
> Wall time: 32.34 s

While in comparison, doing
M=matrix(KP,n)
for i in range(n): M[i,i]=x

returns instantly.

Tracing it down, it seems that when calling diagonal_matrix:

- The list is converted to a dictionary.
- Because a dense matrix was requested, this dictionary is in turn converted
to a flat list of n^2 entries.
- The base __matrix_class constructor is called, and calls the parent ring
conversion routine for each entry.

I don't know whether it's reasonable or not to have a million coercions of
zero take thirty seconds total (quite possibly not), but in any case these
can be avoided.

I suggest the attached patch.

Emmanuel.Thome at gmail.com
}}}"	was
3	sage-5.10 Release	7188	1314 days	GNUism in $SAGE_ROOT/spkg/install	porting	defect	tbd	needs_work	2009-10-17T04:20:08-07:00	"Once one runs make it runs the script $SAGE_ROOT/spkg/install. 

Unfortunately, the very first command in there, the result of ticket #6744 has a GNUism. 

{{{
 echo `date -u ""+%s""` > .BUILDSTART
}}}

The '%s is '''not''' part of the current POSIX standard and fails to work on both the latest version of Solaris (which is a supported operating system), and with HP-UX 11i, which is not supported 
by Sage, but I think we should try to build Sage in such a way 
that is should run on any decent operating system. 

There are at least two ways around this issue of find the number of seconds since 1//1/1970:

http://shell.cfajohnson.com/cus-faq.html#Q6

One requires 'perl' (which is not tested for at this point), the other relies on 'awk' being POSIX complaint, which we can't assume, but is probably the safer of the two assumptions. A third way would be a way to make it work with any 'date' command using some maths with 'bc' but that looks like a lot of work, for little gain. 


{{{
# The method below looks a bit odd, as one uses a
# random number generator to get the time! However,
# it will work with any 'awk' supporting the
# POSIX spec for srand().

# David Kirkby has tested this on the following operating systems.
# AIX, HP-UX, Linux, OS X and Solaris. (versions as available).

# The trick is to first seed the srand random number generator
# generator with the default value (which is the number
# of seconds since 1/1/1970) then call srand() again, to give the
# first random number, which will be the seed. Neat I think!

# See  http://shell.cfajohnson.com/cus-faq.html#Q6

if [ `uname` = ""SunOS"" ] ; then
  # The standard awk in Solaris is not POSIX complaint, and so will not be
  # acceptable. But Sun ship a POSIX complient version at nawk (new awk)
  nawk 'BEGIN {srand(); printf(""%d\n"", srand())}' > .BUILDSTART
else
  awk 'BEGIN {srand(); printf(""%d\n"", srand())}' > .BUILDSTART
fi

}}}

The updated install script, can be found at 

http://sage.math.washington.edu/home/kirkby/Solaris-fixes/top-level-install-script/

I've tested this on

 * AIX 6.1, compliments of http://www.metamodul.com/10.html
 * HP-UX 11i (my own HP C3600)
 * Linux (sage.math)
 * Solaris 10 update 7 SPARC (t2.math)
 * OpenSolaris 2008.11 (disk.math)
 * OS X (bsd.math)

 
According to #6744 this needs to be manually integrated into Sage. Note I stuck a readme file in the directory highlighting the fact this needs to have execute permissions too.
 

Dave "	drkirkby
3	sage-5.10 Release	1134	1324 days	[partially merged] optimize creating elements of orders and number fields by coercing in lists	number fields	enhancement	davidloeffler	needs_work	2009-10-06T12:25:09-07:00	"{{{
On Nov 8, 2007 9:52 PM, mabshoff <Michael.Abshoff@fsmath.mathematik.uni-dortmund.de> wrote:
[...]
> > Woah!  Can someone explain to me the various calls above?  I'd think
> > this should take epsilon time to coerce the elements of the sequence.
> > Or perhaps is there another better way to coerce into Z_F (or,
> > equivalently for me, F)?
> >
> 
> There is without a doubt something fishy going on with coercion. See
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> also malb's report with polynomial rings at
> http://www.sagetrac.org/sage_trac/ticket/1046

I have some doubt that John Voight's observation above has  to do with
Malb's speed regression report.    I think it's just that a particular way
of constructing elements in an order (coercing from a list) hasn't been optimized
one speck since when we implement orders a month ago.   And code that
has had zero optimization tends to be slow.  The sort answer is that *right now*
it's vastly faster to construct the element of the order via doing arithmetic
instead of explicitly coercing in a list, since we've optimized arithmetic more.
See the timings and examples in the worksheet below. 
}}}

coerce speed question from john voight
system:sage

{{{
def stupid_function(n):
     Z_F = NumberField(x^2-x-1, 't').maximal_order()
     for i in range(n):
         Z_F([5,1])
}}}

{{{
time stupid_function(10^4)
///
CPU time: 7.88 s,  Wall time: 9.31 s
}}}

{{{
def stupid_function(n):
     Z_F = NumberField(x^2-x-1, 't').maximal_order()
     a,b = Z_F.gens()
     for i in range(n):
         w = a + 5*b
}}}

{{{
time stupid_function(10^4)
///
CPU time: 0.05 s,  Wall time: 0.05 s
}}}

{{{
def stupid_function(n):
     K = NumberField(x^2-x-1, 't')
     for i in range(n):
         K([5,1])
}}}

{{{
time stupid_function(10^4)
///
CPU time: 4.81 s,  Wall time: 4.88 s
}}}

{{{
def stupid_function(n):
     K = NumberField(x^2-x-1, 't')
     v = [5,1]
     for i in range(n):
         K(v)
}}}

{{{
time stupid_function(10^4)
///
CPU time: 4.78 s,  Wall time: 4.81 s
}}}

{{{
def stupid_function(n):
     K = NumberField(x^2-x-1, 't')
     one = K(1); t = K.gen(); five = K(5)
     for i in range(n):
         w = five*t + one
}}}

{{{
time stupid_function(10^4)
///
CPU time: 0.04 s,  Wall time: 0.04 s
}}}

{{{
def stupid_function(n):
     K = NumberField(x^2-x-1, 't')
     t = K.gen()
     for i in range(n):
         w = 5*t + 1
}}}

{{{
time stupid_function(10^4)
///
CPU time: 0.38 s,  Wall time: 0.38 s
}}}



{{{id=12|

}}}"	was
3	sage-5.10 Release	6635	1393 days	[with patch; not ready for review] implement more critical Hecke algebra functionality: index in saturation, discriminant	modular forms	defect	craigcitro	needs_work	2009-07-29T11:18:28-07:00	"Implement functions for computing saturations and discriminants.  

I'll do this since it's needed for a paper I'm publishing very soon with Ken Ribet and Amod Agashe."	was
3	sage-5.10 Release	6204	1402 days	[with patch, needs work] make norms for degree 1 relative number fields work; add doctests	number fields	enhancement	davidloeffler	needs_work	2009-07-21T01:20:40-07:00	This small patch makes norms for degree 1 relative number fields avoid pari, which fails (in our old version) in this case.  I also added a doctest or two.	ncalexan
3	sage-5.10 Release	6312	1403 days	[with patches, needs work] optional doctest failure -- galois_group	packages: optional	defect	tbd	needs_work	2009-07-19T10:01:13-07:00	"{{{
sage -t -long --optional devel/sage/sage/rings/number_field/number_field.py
**********************************************************************
File ""/scratch/wstein/build/sage-4.0.2.alpha3/devel/sage-main/sage/rings/number_field/number_field.py"", line 3107:
    sage: NumberField(x^3 + 2*x + 1, 'a').galois_group(pari_group=False)    # optional - database_gap
Exception raised:
    Traceback (most recent call last):
      File ""/scratch/wstein/build/sage-4.0.2.alpha3/local/bin/ncadoctest.py"", line 1231, in run_one_test
        self.run_one_example(test, example, filename, compileflags)
      File ""/scratch/wstein/build/sage-4.0.2.alpha3/local/bin/sagedoctest.py"", line 38, in run_one_example
        OrigDocTestRunner.run_one_example(self, test, example, filename, compileflags)
      File ""/scratch/wstein/build/sage-4.0.2.alpha3/local/bin/ncadoctest.py"", line 1172, in run_one_example
        compileflags, 1) in test.globs
      File ""<doctest __main__.example_69[15]>"", line 1, in <module>
        NumberField(x**Integer(3) + Integer(2)*x + Integer(1), 'a').galois_group(pari_group=False)    # optional - database_gap###line 3107:
    sage: NumberField(x^3 + 2*x + 1, 'a').galois_group(pari_group=False)    # optional - database_gap
    TypeError: galois_group() got an unexpected keyword argument 'pari_group'
**********************************************************************
File ""/scratch/wstein/build/sage-4.0.2.alpha3/devel/sage-main/sage/rings/number_field/number_field.py"", line 3109:
    sage: NumberField(x^3 + 2*x + 1, 'a').galois_group(algorithm='magma')   # optional - magma, , database_gap
Exception raised:
    Traceback (most recent call last):
      File ""/scratch/wstein/build/sage-4.0.2.alpha3/local/bin/ncadoctest.py"", line 1231, in run_one_test
        self.run_one_example(test, example, filename, compileflags)
      File ""/scratch/wstein/build/sage-4.0.2.alpha3/local/bin/sagedoctest.py"", line 38, in run_one_example
        OrigDocTestRunner.run_one_example(self, test, example, filename, compileflags)
      File ""/scratch/wstein/build/sage-4.0.2.alpha3/local/bin/ncadoctest.py"", line 1172, in run_one_example
        compileflags, 1) in test.globs
      File ""<doctest __main__.example_69[16]>"", line 1, in <module>
        NumberField(x**Integer(3) + Integer(2)*x + Integer(1), 'a').galois_group(algorithm='magma')   # optional - magma, , database_gap###line 3109:
    sage: NumberField(x^3 + 2*x + 1, 'a').galois_group(algorithm='magma')   # optional - magma, , database_gap
      File ""/scratch/wstein/build/sage-4.0.2.alpha3/local/lib/python2.5/site-packages/sage/rings/number_field/number_field.py"", line 3133, in galois_group
        return self._galois_group_cached(type, algorithm, names)
      File ""/scratch/wstein/build/sage-4.0.2.alpha3/local/lib/python2.5/site-packages/sage/misc/cachefunc.py"", line 242, in __call__
        cache[key] = self.f(self._instance, *args, **kwds)
      File ""/scratch/wstein/build/sage-4.0.2.alpha3/local/lib/python2.5/site-packages/sage/rings/number_field/number_field.py"", line 3147, in _galois_group_cached
        return GaloisGroup_v2(self, names)
      File ""/scratch/wstein/build/sage-4.0.2.alpha3/local/lib/python2.5/site-packages/sage/rings/number_field/galois_group.py"", line 183, in __init__
        self._galois_closure, self._gc_map = number_field.galois_closure(names=names, map=True)
      File ""/scratch/wstein/build/sage-4.0.2.alpha3/local/lib/python2.5/site-packages/sage/rings/number_field/number_field.py"", line 5103, in galois_closure
        L, self_into_L = self._galois_closure_and_embedding(names)
      File ""/scratch/wstein/build/sage-4.0.2.alpha3/local/lib/python2.5/site-packages/sage/rings/number_field/number_field.py"", line 5042, in _galois_closure_and_embedding
        L = K.change_names(names)
      File ""/scratch/wstein/build/sage-4.0.2.alpha3/local/lib/python2.5/site-packages/sage/rings/number_field/number_field.py"", line 4679, in change_names
        return self.absolute_field(names)
      File ""/scratch/wstein/build/sage-4.0.2.alpha3/local/lib/python2.5/site-packages/sage/rings/number_field/number_field.py"", line 1292, in absolute_field
        K = NumberField(self.defining_polynomial(), names, cache=False)
      File ""/scratch/wstein/build/sage-4.0.2.alpha3/local/lib/python2.5/site-packages/sage/rings/number_field/number_field.py"", line 380, in NumberField
        raise TypeError, ""You must specify the name of the generator.""
    TypeError: You must specify the name of the generator.

  ***   Warning: large Minkowski bound: certification will be VERY long.
  ***   Warning: large Minkowski bound: certification will be VERY long.
  ***   Warning: large Minkowski bound: certification will be VERY long.
  ***   Warning: large Minkowski bound: certification will be VERY long.
**********************************************************************
1 items had failures:
   2 of  22 in __main__.example_69
***Test Failed*** 2 failures.
For whitespace errors, see the file /home/wstein/build/sage-4.0.2.alpha3/tmp/.doctest_number_field.py
	 [20.7 s]
}}}"	was
3	sage-5.10 Release	6319	1405 days	[with patch, needs work] optional doctest failure -- mistake in constructions guide wrt maxima interface	packages: optional	defect	tbd	needs_work	2009-07-18T06:27:16-07:00	"This was clearly *never* tested, since eval always returns a string (it can't return nothing). 

{{{
sage -t -long --optional devel/sage/doc/en/constructions/plotting.rst
**********************************************************************
File ""/scratch/wstein/build/sage-4.0.2.alpha3/devel/sage-main/doc/en/constructions/plotting.rst"", line 211:
    sage: maxima.eval('plotdf(x+y,[trajectory_at,2,-0.1]); ') #optional
Expected nothing
Got:
    '1'
**********************************************************************
1 items had failures:
   1 of   4 in __main__.example_11
}}}

"	was
3	sage-5.10 Release	5763	1407 days	[with patch, needs work] pynac -- add _polynomial_ conversion constructor	symbolics	defect		needs_work	2009-07-15T15:06:25-07:00	The attached patch adds conversion to polynomial rings.  Two doctests fail at this time; they rely on being able to convert to CDF and ComplexField(100).  I didn't want them to get forgotten so I left them in.	ncalexan
3	sage-5.10 Release	6342	1430 days	[with patch; needs work] notebook -- fix that the slideshow mode in the notebook utterly completely broken	notebook	defect	boothby	needs_work	2009-06-23T03:56:31-07:00	"This patch turns slideshow mode into something actually pretty useful.  It is maybe uglier than it was 2 years ago.  It is maybe ""lame""-ish, perhaps.  But it is usable!  Which is a million times better than the literally buggy situation now.  

The actual patch attached here tracks both the cell_list (the compute cells), and adds a new list allcell_list, which contains all the cells (not just the compute cells).

One other thing -- this patch addresses what looks to me like some terrible scary code in the tinymce integration into Sage.  Basically there was a massive junk of javascript that got sent back from the server with each evaluation, and got eval'd via a timeout -- not good.   Now it is done statically without any code being eval'd.  "	was
3	sage-5.10 Release	3685	1437 days	"[with patch; needs work] make damned sure that ""import sage.all"" doesn't import ipython"	misc	defect	cwitty	needs_work	2009-06-15T16:22:20-07:00	"Make sure that doing this does not import ipython:

{{{
teragon-2:~ was$ sage -python
Python 2.5.2 (r252:60911, Jul 10 2008, 00:31:06) 
[GCC 4.0.1 (Apple Inc. build 5465)] on darwin
Type ""help"", ""copyright"", ""credits"" or ""license"" for more information.
>>> import sage.all
}}}"	was
3	sage-5.10 Release	5514	1456 days	[with patch, needs work] implement exclusions for parametric 3d plots	graphics	enhancement	wcauchois	needs_work	2009-05-28T01:59:15-07:00	"This feature would emulate Mathematica's [http://reference.wolfram.com/mathematica/ref/RegionFunction.html RegionFunction]. The user should be able to provide a function to parametric_plot3d which, given a (u,v) coordinate, would return whether to include that point in the overall plot. In this way, the user can specify which region to include in the plot drawn.

The syntax would look something like this:
{{{
var('u,v')
parametric_plot3d([u,v,u^2+v^2], (-2, 2), (-2, 2), region_function=lambda u,v: u^2+v^2>1)
}}}
This would draw a paraboloid with a circle cut out of the middle.

Another thing that would be nice is if you could specify the limits on uv in terms of u and v. Like:
{{{
parametric_plot3d([u,v,u^2+v^2], (-2, v), (-2, 2))
}}}
Here u would be bounded above -2 and below v. We could automatically translate this into a region function like simply:
{{{
parametric_plot3d([u,v,u^2+v^2], (-2, 2), (-2, 2), region=lambda u, v: u <= v)
}}}
But then we would have to automatically choose a concrete upper bound for u somehow..."	wcauchois
3	sage-5.10 Release	6095	1463 days	[with patch; needs work] implement sloane sequence: A060302 (digits of (pi^4+pi^5))^(1/6)	combinatorics	enhancement	mhansen	needs_work	2009-05-20T23:13:52-07:00	interesting because almost digits of e (and on a t-shirt).	was
3	sage-5.10 Release	3572	1473 days	[with patch; needs work] optimize sage startup time by not importing any modules that import linbox by default.	misc	enhancement	cwitty	needs_work	2009-05-10T16:21:22-07:00		was
3	sage-5.10 Release	2816	1495 days	[with patch, needs work] unify eigen* functions for different matrix classes	linear algebra	enhancement	was	needs_work	2009-04-18T17:00:24-07:00	"See the conclusions from the discussion: 

http://groups.google.com/group/sage-devel/browse_thread/thread/c8d2001f2b19a9bc#"	jason
3	sage-5.10 Release	5522	1519 days	[with patch; needs work] Fix segfault if libsingular.so can't be found	packages: standard	defect	mabshoff	needs_work	2009-03-25T16:36:49-07:00	"If for some reason libsingular.so doesn't exist, Sage will segfault when trying to call dlerror() when dlopen() was never called.

I've attached a patch which avoids doing so.

With this patch, however, Sage then segfaults sometime after trying to raise the ImportError on the next line.

I don't have time to investigate further, but it is easy to reproduce the condition by just moving aside the libsingular.so and trying to start sage."	tabbott
3	sage-5.10 Release	5475	1534 days	"[with patch, needs work] make it so ipython isn't imported when one does ""sage -python"""	interfaces	defect	was	needs_work	2009-03-10T15:30:12-07:00	"If one wants to use Sage from a C program, e.g., like this (see below), then it's important that ""from sage.all import *"" not import Ipython.  The point of this ticket is make the import of IPython lazy -- and only happen if needed.  This will also make ""sage -python"" and ""sage -c"" faster, since Ipython startup takes significant time. 

{{{
/*
sage -sh
gcc -I$SAGE_LOCAL/include/python2.5 $SAGE_LOCAL/lib/python/config/libpython2.5.a embed.c -o embed; ./embed

See http://docs.python.org/extending/embedding.html
*/


#include <Python.h>

int
main(int argc, char *argv[])
{
  Py_Initialize();
  printf(""Loading the Sage library...\n"");
  PyRun_SimpleString(""from sage.all import *"");
  printf(""Factoring an integer:\n"");
  PyRun_SimpleString(""print factor(193048120380)"");
  printf(""Popping up plot of a function:\n"");
  PyRun_SimpleString(""x=var('x'); show(plot(sin(x)))"");
  printf(""Popping up plot of a 3-d function:\n"");
  PyRun_SimpleString(""x,y=var('x,y'); show(plot3d(sin(x*y)-cos(x-y), (x,-4,4),(y,-4,4)))"");
  printf(""Type 0 then return\n"");
  int n;
  scanf(""%d"",&n);
  printf(""Exiting...\n"");
  Py_Finalize();
  return 0;
}
}}}"	was
3	sage-5.10 Release	4083	1549 days	[with patch, needs work] sage.finance - Options pricing implementation	finance	enhancement	psinis	needs_work	2009-02-23T14:17:37-08:00	Includes capabilities for options pricing using the Black-Scholes model. The primary class of this ticket is finance.Option, which uses finance.Stock.	cswiercz
3	sage-5.10 Release	4970	1557 days	[with patch, not ready for review] modify tkinter detection in our python spkg so that it works on macs	build	defect	mabshoff	needs_work	2009-02-15T22:27:39-08:00	"This is from a sage-support thread:
{{{
Hi Michael

thanks a lot! Tkinter is now working fine for me and I can use
matplotlib with the TkAgg backend
For the record, here are the steps I followed to get it working on Mac
OS (10.4 and 10.5)
1) Download the Tcl/Tk sources
2) Compile the unix version (of Tcl and Tk) as follows
./configure --enable-framework --disable-xft, make, make install
3) Modify the setup.py file in the src directory of python-2.5.2.p8 by
putting
/System/Library  underneath /Library/Frameworks at the top the
function detect_tkinter_darwin
4) run ./spkg-install in python-2.5.2.p8
5) reinstall matplotlib: sage -f matplotlib-0.98.3.p4

As this is the way Apple recommends to do it in the developer
documentation. I suggest that
the fix in the function detect_tkinter_darwin of the python-2.5.2.p8
setup.py gets included in the official Sage release. People needing
Tkinter on mac would then just need to have Tcl/Tk without
xft installed before compiling Sage.

Best wishes and thanks for the great job you are doing with the Sage
developers and maintainers,
Eric
}}}"	was
3	sage-5.10 Release	3999	1579 days	[with patch, needs work] Wrapper class to treat additive groups as multiplicative goups	basic arithmetic	defect	somebody	needs_work	2009-01-24T13:39:17-08:00	"This will greatly facilitate writing generic code. 

{{{
        sage: from sage.groups.multiplicative_wrapper import MultiplicativeWrapper

        sage: R.<x,y> = ZZ[]
        sage: G = MultiplicativeWrapper(R)
        sage: a, b = G(x), G(y)
        sage: a^2 * b^5 * a
        (3*x + 5*y)
        sage: a/b
        (x - y)

        sage: E = EllipticCurve('37a')
        sage: P = E([0,0])
        sage: G = MultiplicativeWrapper(P.parent(), repr_format=None); G

        sage: a = G(P); a
        (0 : 0 : 1)
        sage: b = G(5*P); b
        (1/4 : -5/8 : 1)
        sage: a^2 * b
        (-5/9 : 8/27 : 1)
        sage: 7*P
        (-5/9 : 8/27 : 1)
        sage: 10*P == a^10
        True

}}}"	robertwb
3	sage-5.10 Release	2179	1581 days	[with patch, needs work] implementation mpoly factoring with coefficients in ZZ	commutative algebra	enhancement	jbmohler	needs_work	2009-01-22T15:08:15-08:00	"Here's a pure python implementation of an algorithm to factor polynomials over ZZ using kronecker's trick (specializing a variable to a large prime reduces you to a poly of fewer variables).  Note that this also fills in an implementation of factoring over ZZ[x,y] --- we don't have any implementation at all for this currently.  It's also faster than singular (over QQ) for some cases.

Here's an example with my favorite trouble-maker for singular.

this patch:
{{{
sage: R.<p10,g0,g1,g2,g3,g4,X1,X2>=ZZ[]
sage: t=-p10^170*X1^10*X2^10+p10^130*X1^10*X2^5+p10^130*X1^5*X2^10-p10^90*X1^5*X2^5+p10^80*X1^5*X2^5-p10^40*X1^5-p10^40*X2^5+1
sage: time t.factor()
CPU times: user 0.11 s, sys: 0.00 s, total: 0.12 s
Wall time: 0.12
(-1) * (p10^8*X2 - 1) * (p10^8*X1 - 1) * (p10^18*X1*X2 - 1) * (p10^32*X2^4 + p10^24*X2^3 + p10^16*X2^2 + p10^8*X2 + 1) * (p10^32*X1^4 + p10^24*X1^3 + p10^16*X1^2 + p10^8*X1 + 1) * (p10^72*X1^4*X2^4 + p10^54*X1^3*X2^3 + p10^36*X1^2*X2^2 + p10^18*X1*X2 + 1)
}}}

singular:
{{{
sage: R.<p10,g0,g1,g2,g3,g4,X1,X2>=QQ[]
sage: t=-p10^170*X1^10*X2^10+p10^130*X1^10*X2^5+p10^130*X1^5*X2^10-p10^90*X1^5*X2^5+p10^80*X1^5*X2^5-p10^40*X1^5-p10^40*X2^5+1
sage: time t.factor()
CPU times: <longer than I wanted to wait>
}}}
"	jbmohler
3	sage-5.10 Release	4877	1605 days	[with spkg; needs work] update optional spkg to newest version of pyopenssl and get spkg into proper format	packages: optional	defect	mabshoff	needs_work	2008-12-29T22:35:17-08:00	"The new spkg is here:  
    http://sage.math.washington.edu/home/was/patches/pyopenssl-0.8.spkg"	was
3	sage-5.10 Release	4633	1628 days	"[with patch, needs work] fix additional ""Fortran-style"" names and a coercion (depends on #4036)"	interfaces	defect	was	needs_work	2008-12-06T14:15:03-08:00	"In order to run the the comparison of integration results between FriCAS and Maxima, it is also necessary to make some simple additions to the 'axiom.py' interface:

{{{
wspage@debian:~/sage-3.1.4/devel/sage-main/sage/interfaces$ hg diff
diff -r ed3f78f99d2a sage/interfaces/axiom.py
--- a/sage/interfaces/axiom.py  Tue Nov 25 23:45:43 2008 -0500
+++ b/sage/interfaces/axiom.py  Wed Nov 26 19:43:59 2008 -0500
@@ -729,7 +729,10 @@
        s = P.eval('unparse(%s::InputForm)'%self._name)
        if 'translation error' in s or 'Cannot convert' in s:
            raise NotImplementedError
-        s = multiple_replace({'\r\n':'', # fix stupid Fortran-ish
+        s = multiple_replace({'\r\n':'', # fix stupid Fortran-ish
+                              'DLOG(':'log(',
+                              'DEXP(':'exp(',
+                              '::(':'', ',Symbol)':'',
                              'DSIN(':'sin(',
                              'DCOS(':'cos(',
                              'DTAN(':'tan(',

}}}

----

Integration produce some additional ""Fortran-style"" names and a
coercion that have to be translated before the input form can be
processed by Sage.

With this change we can do:

{{{
  test_int = integrand.integrate(x)
  fricas_int = axiom.integrate(integrand,x).sage()
  fricas_cmp = (test_int.simplify_full()-fricas_int.simplify_full()).simplify_full()
  if (fricas_cmp == 0):
      print ""FriCAS agrees with Maxima.""

}}}
"	bpage
3	sage-5.10 Release	3573	1635 days	[with patch, with spkg, needs to be rebased] finance - Implementation of Sage interface to opentick	finance	enhancement	cswiercz	needs_work	2008-11-29T17:03:14-08:00	"opentick is a collection of APIs for obtaining free real-time and historical market data for trading systems and trading platforms. With these APIs, we will enable Sage to be able to stream and manipulate real-time market data.

This ticket depends on #3621."	cswiercz
3	sage-5.10 Release	4283	1682 days	[with proto-patch] A Speed-up Patch for NTL's ZZXFactoring.c	factorization	enhancement	anovocin	needs_work	2008-10-14T07:27:44-07:00	The goal of this patch is to speed-up NTL's factoring algorithm for polynomials in Z[X].  The speed-up comes from using fpLLL rather than NTL's native LLL algorithm.  We do this by converting a ZZ_mat of ZZ's (NTL's multi-precision integers) and passing them into a mat_ZZ<mpz_t> matrix of mpz_t's (fpLLL's native format).  Then run fpLLL on the new matrix and pass the entries back to NTL.  I don't replace NTL's LLL just pass what should be an already reduced basis to NTL's LLL.  (NTL computes extra information that would require a hack into fpLLL to get and might not be worth it.)  This patch allows NTL to beat MAGMA on many examples (it still is a little slower than MAGMA (but faster than SAGE) on irreducible polynomials).  I think that the cross over between Pari's factoring and NTL's factoring should be re-evaluated (currently Pari is used for polynomials of degree 30 through 300) if not just use NTL for all polynomials now.  	anovocin
3	sage-5.10 Release	4166	1701 days	[with patch; needs work] Separate resource for @interact	interact	enhancement	itolkov	needs_work	2008-09-24T15:49:02-07:00	There is a new resource for the initial evaluation and later updates.	itolkov
3	sage-5.10 Release	2094	1703 days	[with patch, needs more work] Add jpeg support to gd	graphics	enhancement	was	needs_work	2008-09-22T11:03:34-07:00	jpeg is a common format that most people keep their pictures in -- let's support it!	boothby
3	sage-5.10 Release	3538	1781 days	[with patch; not ready for review] create a sage <--> Ruby interface	interfaces	enhancement	mhansen	needs_work	2008-07-06T20:30:34-07:00	"Create an interface between Sage and Ruby. 

Josh Kantor and I wrote the attached one in 5 minutes and it worked the first try. 

We haven't added any doctests and haven't implemented completions.  "	was
3	sage-5.10 Release	3365	1798 days	[with patch; under review by tclemans before 6/27] add a %c mode to the notebook (like %fortran)	misc	enhancement	cwitty	needs_work	2008-06-19T22:01:56-07:00	"Michael Schmitz -- a student in Math 480 -- created this code.  It makes it so you can do %c in a notebook cell and write pure C functions.  Very fun.  E.g., 

{{{
%c
int foo(int a, int b) { return(a*b);}
}}}

{{{
foo(2r,3r)
///
6
}}}

TO INSTALL:

 1. apply the patch
 2. install py_inline:
{{{
tar jxvf py_inline-0.03.tar.bz2
cd py_inline-0.03
sage -python setup.py install
}}}
    

NOTE: py_inline will be a new spkg.  This needs to get into sage before this ticket can be closed. "	was
3	sage-5.10 Release	2891	1867 days	[with prototype, needs more work] inline_fortran -- completely rewrite to not save a global variable and *not* got hacked into various global structures all over	misc	enhancement	cwitty	needs_work	2008-04-12T05:46:02-07:00	"The InlineFortran stuff in misc/inline_fortran.py is bad.  That global variable should be explicitly passed into the __eval__ and __call__ methods, and should *not* be set on creation.   I've attached what the file *should* roughly be, but I can't get it to work.

Also, it's terrible the hacking in server/support.py to get the fortran stuff in there.  This is just really wrong. 

NOTE -- this all works -- it's not a bug.  It's just not good programming. "	was
3	sage-5.10 Release	2153	1873 days	[with bundle, needs additional review] Defined Hom parent of group homomorphisms.	group theory	enhancement	joyner	needs_work	2008-04-05T18:01:51-07:00	"Defined parent of a group homomorphism such that the following example
works (and similar for permutation groups):
{{{
sage: G.<x,y> = AbelianGroup(2,[2,3]); G 
Multiplicative Abelian Group isomorphic to C2 x C3
sage: H.<a,b,c> = AbelianGroup(3,[2,3,4]); H
Multiplicative Abelian Group isomorphic to C2 x C3 x C4
sage: phi = AbelianGroupMorphism(G,H,[x,y],[a,b])
sage: phi

AbelianGroup morphism:
  From: Multiplicative Abelian Group isomorphic to C2 x C3
  To:   Multiplicative Abelian Group isomorphic to C2 x C3 x C4
sage: phi.parent()
Set of Morphisms from Multiplicative Abelian Group isomorphic to C2 x C3 to Multiplicative Abelian Group isomorphic to C2 x C3 x C4 in Category of groups
sage: Hom(G,H) == phi.parent()
True
}}}"	kohel
4	sage-5.10 Release	12083	3 days	Add a TikZ-tex output method for 2d and 3d polytopes	geometry	enhancement	mhampton	needs_work	2013-05-20T04:17:40-07:00	"I recently had to draw polytopes for my work.

Many drawing tools already exist. But none of them satisfied me.

So far, I wrote a method that takes a polytope in 3d and a view-angle (taken from Jmol) and outputs a .tex file containing a TikZ image of the polytope.

The method should also be able to deal with 2-polytopes.

The result is highly customizable: colors, edge style, vertices style, etc...

-------------------

First review: I made the suggested corrections. They are present in the patch trac12083_tikz_polytope_review.patch

Test passed on version 4.7.2"	jipilab
4	sage-5.10 Release	13436	5 days	Elliptic Curve Enumeration by height	elliptic curves	enhancement	spice	needs_work	2013-05-18T05:57:26-07:00	"Add functionality to Sage that allows one to enumerate elliptic curves over Q by height for a range of Weierstrass families of curve.

This code has grown from work with Wei Ho, who desired a way to enumerate curves over Q by height (where the height of a curve is a function of the coefficients in its Weierstrass model) so that the average value of some datum (e.g.rank, 2-Selmer size) could be computed for curves up to a given height. This code introduces a class, CurveEnumerator(), that computes lists of curves ordered by height for this purpose.

https://github.com/haikona/CBH"	spice
4	sage-5.10 Release	13604	22 days	.DS_Store garbage in sympy spkg	packages: standard	defect	tbd	needs_work	2013-04-30T13:24:14-07:00	"Following files are present:
sympy/src/doc/.DS_Store
sympy/src/doc/src/.DS_Store
sympy/src/doc/src/modules/.DS_Store
sympy/src/doc/src/modules/mpmath/.DS_Store

Should this be reported upstream?"	pdehaye
4	sage-5.10 Release	11699	28 days	matrix() command should accept some Matlab-style inputs	linear algebra	enhancement		needs_work	2013-04-24T19:13:07-07:00	"In https://groups.google.com/d/msg/sage-devel/p-nrpKUBMm8/LUMAfoXsz-UJ Jason Grout mentioned that it would be convenient if Sage accepted the following Matlab syntax for creating matrices:
{{{
sage: a=matrix(""1 2 3; 4 5 6; 7 8 9"")
sage: a
matrix([[1, 2, 3],
         [4, 5, 6],
         [7, 8, 9]])
}}}

This should be an easy change to the `matrix()` command, and would be very convenient for users, even those with no Matlab background.

Apply attachment:trac_11699_matlab_input_to_matrix.patch"	ddrake
4	sage-5.10 Release	3668	30 days	"Functionality of ""Set"""	documentation	defect	tscrim	needs_work	2013-04-22T14:47:22-07:00	"In the documentation for the function ""Set"" (Reference Manual 11.8) it would be helpful to explicitly point out that Set allows objects of different types, so 

{{{
sage: Set([Sequence(my_seq),3,QQ])
Rational Field, 3, [2, 3]
}}}

is perfectly OK.

Also, it would be nice if Set allowed one to use lists, so

{{{Set([[2,3]])}}}

worked, rather than giving the error message ``TypeError: list objects are unhashable''.
"	ljpk
4	sage-5.10 Release	14432	43 days	Hash broken for unions, intersections, differences, and symmetric differences of sets	combinatorics	defect	sage-combinat	needs_work	2013-04-09T12:21:40-07:00	"The following code raises an exception:

{{{
sage: S=Set(ZZ).union(Set([infinity]))
sage: hash(S)
Traceback (most recent call last):
...
RuntimeError: maximum recursion depth exceeded
}}}

The same should happen for intersections, differences, and symmetric differences."	saraedum
4	sage-5.10 Release	14318	44 days	"More doctests from the book ""Calcul mathématique avec Sage"""	doctest coverage	enhancement	mvngu	needs_work	2013-04-09T07:25:10-07:00	The attached file provides doctests for examples in the chapter on integration and differential equations. Tests pass with 5.7.	lfousse
4	sage-5.10 Release	5956	58 days	image dimensions for show() are in inches	graphics	defect	was	needs_work	2013-03-25T20:01:32-07:00	"As discussed at this [http://groups.google.com/group/sage-devel/browse_thread/thread/c411254b7bc0bb97 sage-devel thread], the optional argument {{{figsize}}} of the command {{{show()}}} needs to clearly state that the units of the image are in inches. As of Sage 3.4.1, the docstring for {{{show()}}} says:
{{{
- ``figsize``- [width, height] (same for square aspect)
}}}
which can be interpreted to mean that one can do something like {{{figsize=[w,h]}}}. But something like the following produces a segmentation fault:
{{{
[mvngu@sage ~]$ sage
----------------------------------------------------------------------
| Sage Version 3.4.1, Release Date: 2009-04-21                       |
| Type notebook() for the GUI, and license() for information.        |
----------------------------------------------------------------------
sage: q = var(""q"")
sage: f(q) = (q^4 - q^2 + 1) * (q^4 + q^3 + q^2 + q + 1) * (q^4 - q^3 \
+ q^2 - q + 1) * (q^6 + q^5 + q^4 + q^3 + q^2 + q + 1) * (q^6 - q^5 + \
q^4 - q^3 + q^2 - q + 1) * (q^(20) - q^(18) - q^(14) - q^(12) + q^(10) \
- q^8 - q^6 - q^2 + 1)
sage: g(q) = q^8 * (q^4 + q^2 + 1)^2 * (q^4 + 1)^5
sage: p = complex_plot(f/g, (-2,2), (-2,2))
sage: p.show(figsize=[256,256])
}}}
while the following results in a {{{ValueError}}}:
{{{
----------------------------------------------------------------------
| Sage Version 3.4.1, Release Date: 2009-04-21                       |
| Type notebook() for the GUI, and license() for information.        |
----------------------------------------------------------------------
sage: q = var(""q"")
sage: f(q) = (q^4 - q^2 + 1) * (q^4 + q^3 + q^2 + q + 1) * (q^4 - q^3 \
+ q^2 - q + 1) * (q^6 + q^5 + q^4 + q^3 + q^2 + q + 1) * (q^6 - q^5 + \
q^4 - q^3 + q^2 - q + 1) * (q^(20) - q^(18) - q^(14) - q^(12) + q^(10) \
- q^8 - q^6 - q^2 + 1)
sage: g(q) = q^8 * (q^4 + q^2 + 1)^2 * (q^4 + 1)^5
sage: p = complex_plot(f/g, (-2,2), (-2,2))
sage: p.show(figsize=[500,500])
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
...
ValueError: width and height must each be below 32768
}}}
Essentially, the documentation for {{{show()}}} needs to be updated, especially the optional arguments, to clearly explain the units of measurement of the width and height of the image size. Also, it would be a good idea to specify how one can pass in values for those dimensions. For example, can one do this {{{figsize=[124,124]}}}?

----

Apply [attachment:trac_5956_figsize_units.1.patch] and [attachment:trac_5956-reviewer.patch] to devel/sage."	mvngu
4	sage-5.10 Release	13703	68 days	special matrices	linear algebra	enhancement	jason, was	needs_work	2013-03-16T02:52:42-07:00	"It would be great to have a matrices namespace to put special matrix commands, sort of like the graphs.* namespace or groups.* namespace.  Here are some starter definitions:

{{{
def hilbert(R,n): return matrix(R, n, lambda i,j: 1/(i+j+1))
def vandermonde(R, v): return matrix(R, len(v), lambda i,j: v[i]^j)
def toeplitz(R,c,r): return matrix(R, len(c), len(r), lambda i,j: c[i-j] if i>=j else r[j-i])
def hankel(R,c,r): entries=c+r[1:]; return matrix(R, len(c), len(r), lambda i,j: entries[i+j])
def circulant(R, E): return toeplitz(R, E[0:1]+E[-1:0:-1], E)
def skew_circulant(R,E): return hankel(R, E, E[-1:]+E[:-1])

#Hadamard matrices:
def legendre_symbol(x):
    """"""Extend the built in legendre_symbol function to handle prime power fields.  Assume x is an element of a finite field as well""""""
    if x==0: 
        return 0
    elif x.is_square(): 
        return 1
    else: 
        return -1

def jacobsthal(p,n):
    """"""See http://en.wikipedia.org/wiki/Paley_construction for a way to use jacobsthal matrices to construct hadamard matrices""""""
     if n == 1:
        elts = GF(p).list()
    else:
        elts = GF(p^n,'a').list()
    return matrix(len(elts), lambda i,j: legendre_symbol(elts[i]-elts[j]))
def paley_matrix(p,n):
    """"""See http://en.wikipedia.org/wiki/Paley_construction""""""
    mod = p^n%4
    if mod == 3:
        # Paley Type 1 construction
        ones = vector([1]*p^n)
        QplusI = jacobsthal(p,n)
        # Q+=I efficiently
        for i in range(p^n):
            QplusI[i,i]=-1
        return block_matrix(2,[
        [1,ones.row()],
        [ones.column(), QplusI]])
    elif mod == 1:
        # Paley Type 2 construction
        ones = vector([1]*p^n)
        QplusI = jacobsthal(p,n)
        QminusI = copy(QplusI)
        for i in range(p^n):
            QplusI[i,i]=1
            QminusI[i,i]=-1
        SplusI = block_matrix(2,[[1,ones.row()],[ones.column(), QplusI]])
        SminusI = block_matrix(2,[[-1,ones.row()], [ones.column(), QminusI]])
        return block_matrix(2,[[SplusI,SminusI],[SminusI,-SplusI]])        
    else:
        raise ValueError(""p^n must be congruent to 1 or 3 mod 4"")

}}

The matrixform patch below first implements a decorator to take care of an optional first argument of the ring, as well as an optional keyword argument of 'sparse'.  Then it implements most of these using that decorator, so the boilerplate code is abstracted away.

Additionally, we could use scipy to create more matrices (or do it ourselves): http://docs.scipy.org/doc/scipy/reference/linalg.html#special-matrices

(thanks to pascal on sage-support for correcting the circulant code above: https://groups.google.com/d/msg/sage-support/RnKjQ9n2YB0/vfCEvIV_HZUJ )"	jason
4	sage-5.10 Release	13017	68 days	create a large linear algebra thematic tutorial that will be part of the official Sage documentation	linear algebra	enhancement	jason, was	needs_work	2013-03-15T16:49:52-07:00	"Jason Grout, Rob Beezer, Robert Bradshaw, and William Stein have mostly written a rather extensive thematic tutorial on linear algebra for Sage (for inclusion in the HLA = Handbook of Linear Algebra, 2nd edition).  It has a creative commons license.  This ticket is for getting the tutorial into Sage itself.  

The PDF version of this chapter is here: http://sage.math.washington.edu/home/jason/sage-HLA2.pdf

*apply*: [attachment:trac-13017-linear-algebra-tutorial.patch]"	was
4	sage-5.10 Release	10720	69 days	nth_root in power series	commutative algebra	enhancement	pernici	needs_work	2013-03-15T03:00:54-07:00	"computation of an nth root of a power series using the Newton method

-----

Apply

1. [attachment:trac_10720_power_series_nth_root_2.patch]
1. [attachment:trac_10720_power_series_nth_root_3.patch]
1. [attachment:trac_10720_power_series_nth_root_4.patch]"	pernici
4	sage-5.10 Release	10552	70 days	Allow more elementwise simplifications for symbolic matrices	symbolics	enhancement	burcin	needs_work	2013-03-13T08:52:41-07:00	"As with [http://ask.sagemath.org/question/211/is-there-a-way-to-simplify_full-and-trig_reduce-a several] [http://ask.sagemath.org/question/273/reduce_trig-for-matrices questions] at ask.sagemath.  Mike Hansen's answer at the first one seems like a good start:
{{{
age: m = matrix([[sin(x), cos(x)], [sin(x), cos(x)]]); m
[sin(x) cos(x)]
[sin(x) cos(x)]
sage: o = m*m.transpose(); o
[sin(x)^2 + cos(x)^2 sin(x)^2 + cos(x)^2]
[sin(x)^2 + cos(x)^2 sin(x)^2 + cos(x)^2]
sage: o.apply_map(lambda x: x.trig_reduce())
[1 1]
[1 1]
}}}
but it seems reasonable for matrices with symbolic elements to have some of these methods (also vectors, I suppose) without having to use any special terminology.  

Open to suggestions on how that might be accomplished without creating a myriad of special methods, but by somehow piggybacking on `symbolic.expression.Expression` methods done elementwise...

Putting this under symbolics because it isn't really linear algebra, but that doesn't seem right either."	kcrisman
4	sage-5.10 Release	13975	71 days	improve error reporting in some tests	categories	enhancement	nthiery	needs_work	2013-03-13T07:35:20-07:00	"In case of failure the routines 
   * {{{_test_associativity}}}
   * {{{_test_distributivity}}}
   * {{{_test_one}}}
   * {{{_test_prod}}}
should report the elements that failed. 

The attached patch just enhances the error messages and adds some test cases similar to the following:
{{{#!python
sage: import types
sage: P.<x,y>=PolynomialRing(QQbar,""x,y"")
sage: x._mul_ = types.MethodType(lambda a,b: 0,x)
sage: y._mul_ = types.MethodType(lambda a,b: a,x)
sage: P._test_associativity(elements=[x,y])
Traceback (most recent call last):
...
AssertionError: (x*y)*z != x*(y*z) for (x,y,z) = (y,y,x)
}}} "	cnassau
4	sage-5.10 Release	1795	77 days	[with patch, needs work] Adds support for cdef'd functions to sage-coverage	doctest coverage	defect	mhansen	needs_work	2013-03-07T00:16:45-08:00	sage-coverage does not check cdef'd functions.  This patch fixes that problem.	roed
4	sage-5.10 Release	14099	87 days	Adding Method for testing avoidance in posets	combinatorics	enhancement	rowland	needs_work	2013-02-24T08:21:13-08:00	This is a test for finite posets to check if the do not have induced posets each of which isomorphic to two disjoint chains. Example 3+1 free, 2+2 free.	chrisjamesberg
4	sage-5.10 Release	10305	91 days	Add rings for the center of the symmetric group algebras	combinatorics	enhancement	mguaypaq	needs_work	2013-02-20T12:19:53-08:00	"Here is some preliminary code to implement the center of the symmetric group algebras, various bases for this and related rings, and coercions between these and to/from the ring of symmetric functions.

Things that I plan to do:
 * Fill in all of the TODO doctests with actual doctests.
 * Figure out why some of the coercions aren't discovered by the coercion framework. (See the last few examples at the top of the file.)
 * `SymmetricGroupAlgebraCenter` does not actually have a multiplicative identity as currently implemented, so it should probably by in a category other than `GradedAlgebrasWithBasis`.
 * Reimplement `ConjugacyClassBasis` and `OrthogonalIdempotentBasis` for a fixed symmetric group over the integers. Then, the conversion table can be cached, the elements can be represented by lists of coefficients (possibly numpy arrays) instead of dictionaries, and faster linear algebra over the integers can be used. This results in massive (several orders of magnitude) speedups.
 * Possibly add the option of saving some of the conversion tables to disk, as they can be large and expensive to compute.
 * Add the relevant classes to `sage/combinat/all.py`.

Note that this depends on #7980 and #10304.
"	mguaypaq
4	sage-5.10 Release	13566	95 days	Simplicial complex examples as singletons	algebraic topology	enhancement	tscrim	needs_work	2013-02-16T08:58:54-08:00	"Since each of the examples are unique, there should only be one (immutable) instance of each. In other words, we do not recreate the example each time it is called. For example
{{{
sage: S1 = simplicial_complexes.KleinBottle()
sage: S2 = simplicial_complexes.KleinBottle()
sage: S1 == S2
True
sage: S1 is S2
False
}}}
where the last should return `true`. Possibly do this by something like
{{{
def KlienBottle(self):
    if not hasattr(self, ""_klien_bottle_output""):
        self._klien_bottle_output = SimplicialComplex(facets)
    return self._klien_bottle_output
}}}
This is an expansion on the concept in #13244 and the dependency on #12587 is in making simplicial complexes immutable.

----------

Apply [attachment:trac_13566cna.patch]."	tscrim
4	sage-5.10 Release	11726	98 days	Implement univariate Laurent polynomial ring & elements	commutative algebra	defect	boothby	needs_work	2013-02-13T15:03:45-08:00	"At present, the implementation of univariate Laurent polynomials is (self-admittedly) in a sorry state:

{{{
    ############################################################
    # This should later get moved to an actual single variate  #
    # implementation with valuation tracking,                  #
    # but I don't want to right now.                           #
    ############################################################
    # We need to come up with a name for the inverse that is easy to search
    # for in a string *and* doesn't overlap with the name that we already have.
    # For now, I'm going to use a name mangling with checking method.
}}}

This should be fixed."	boothby
4	sage-5.10 Release	260	113 days	Background color and opacity of graphics output	graphics	enhancement	was	needs_work	2013-01-29T12:55:19-08:00	"{{{

It may be helpful for users who want to use SAGE graphics on their web
pages to be able to set attributes about the background, like transparency.
}}}"	was
4	sage-5.10 Release	11652	201 days	MPolynomial_libsingular reports the wrong degree	commutative algebra	defect	malb	needs_work	2012-11-02T10:50:44-07:00	"On sage-4.7: In the following example, the degree with respect to ''p'' should be 1 and the degree with respect to ''q'' should be 2.

{{{
sage: R.<p,q,t> = ZZ[]
sage: poly = p+q^2+t^3
sage: poly = poly.polynomial(t)[0]
sage: poly
q^2 + p
sage: poly.degree(p)
1
sage: poly.degree(q)
1
}}}

The issue can be easily worked around:

{{{
sage: poly.degree(poly.parent(q))
2
}}}

(originally reported on sage-support, see http://groups.google.com/group/sage-support/browse_thread/thread/608bc46e92da2f49/feb54d2384cef583?lnk=gst&q=polynomial#feb54d2384cef583)

----

Apply

1. [attachment:trac_11652-rewrite.patch]
1. [attachment:trac_11652_review.patch]

to the sage repository."	saraedum
4	sage-5.10 Release	13442	207 days	provide gcd for new polynomial rings through _gcd_univariate_polynomial	basic arithmetic	enhancement	AlexGhitza	needs_work	2012-10-27T08:08:47-07:00	"Currently, to add gcd functionality for a new polynomial ring, one needs to add a specialized subclass of {{{PolynomialElement}}}.

The attached patch allows rings to provide a {{{_gcd_univariate_polynomial}}} method which will be called by {{{PolynomialElement}}} to compute gcds.

This is similar to #10635."	saraedum
4	sage-5.10 Release	13629	207 days	provide xgcd for new polynomial rings through _xgcd_univariate_polynomial	basic arithmetic	task	AlexGhitza	needs_work	2012-10-27T08:06:24-07:00	"Currently, to add xgcd functionality for a new polynomial ring, one needs to add a specialized subclass of !PolynomialElement.

The attached patch allows rings to provide a {{{_xgcd_univariate_polynomial}}} method which will be called by !PolynomialElement to compute xgcds.

This is similar to #10635, #13442."	saraedum
4	sage-5.10 Release	13593	223 days	tighter upper bound on elliptic curve rank	elliptic curves	enhancement	cremona	needs_work	2012-10-12T07:51:11-07:00	"The current upper bound in `rank_bounds` do not take into account two torsion. This corrects this and thus gives a tighter upper bound.

----

Apply attachment:trac13593.patch."	rohana
4	sage-5.10 Release	13076	294 days	Use GNU Pth and sigaltstack() for signal handling	c_lib	defect	jdemeyer	needs_work	2012-08-02T03:24:11-07:00	"Currently, the Sage signal handling code does not handle stack overflows gracefully.  Fix this using `sigaltstack()`.

In fact, change the whole design of the signal handling to use GNU Portable Threads which is quite natural once you see it.  It immediately also gives a much better solution to #12873.

'''Apply''' [attachment:13076_sig_pth.patch]

Install the new '''spkg''' [http://boxen.math.washington.edu/home/jdemeyer/spkg/gnu_pth-2.0.7.p0.spkg]"	jdemeyer
4	sage-5.10 Release	12061	299 days	Doctest interfaces/psage.py	interfaces	enhancement	was	needs_work	2012-07-28T05:52:50-07:00	"Towards completing #12024.
----
Apply only [attachment:trac_12061.txt] to `devel/sage`.
"	ppurka
4	sage-5.10 Release	7441	321 days	notebook: make it possible to upload from the url of a published worksheet	notebook	enhancement	boothby	needs_work	2012-07-05T17:12:02-07:00	"{{{
>> I go to ""upload"", and try to upload a worksheet from url in a public
>> notebook --- so it's an https://... I guess that's why it fails (the
>> page itself is a published worksheet, so password is not required, but
>> I guess the upload can't pull a worksheet from an https url).
>
> Upload from a URL can't upload from a published worksheet that is
> published as http or https, actually.  It never occurred to me to
> implement that.  It's meant for uploading sws files, which might be
> sitting on the web somewhere.     Uploading from the URL of a
> published worksheet is an interesting idea.
>

+1 to this.  More than once, I've tried it, and found out again and
again that it didn't work.

 -- Jason
}}}"	was
4	sage-5.10 Release	10951	359 days	ecmfactor should take as optional argument the sigma value	factorization	enhancement	tbd	needs_work	2012-05-28T21:04:13-07:00	"I suggest the {{{ecmfactor}}} function takes as optional argument a sigma
value, which would be passed to GMP-ECM. In case of a successful
factorization, this would allow to know the lucky curve, for
example to report it on some tables of records.

For example I found a 61-digit prime factor using {{{ecmfactor}}},
but was unable to know the lucky sigma
(http://www.loria.fr/~zimmerma/records/ecmnet.html).

Alternatively, one could store the (random) sigma value chosen by
GMP-ECM if not sigma was given, but that might be more difficult to
implement.
"	zimmerma
4	sage-5.10 Release	7771	367 days	fix R restart in interface	interfaces	defect	was	needs_work	2012-05-21T06:18:52-07:00	"This nearly always happens after installing an R package and then following the directions Sage gives:
{{{
sage: r.restart()
Error: object 'sage0' not found
}}}
This seems to be unrelated to whether R has recommended packages installed or not, so I am making a new ticket for this.  Making it minor since just restarting Sage takes care of things as well.

Apply in this order:

 1. [http://trac.sagemath.org/sage_trac/attachment/ticket/7771/trac_7771-r-restart.patch trac_7771-r-restart.patch]
 1. [http://trac.sagemath.org/sage_trac/attachment/ticket/7771/trac_7771-reviewer.patch trac_7771-reviewer.patch]"	kcrisman
4	sage-5.10 Release	1145	373 days	high-level strategy for integer factorization	factorization	enhancement	aapitzsch	needs_work	2012-05-15T02:53:55-07:00	"I propose the following strategy for factor(integer):

 1. do trial division by all primes up to say 1000. This can be done efficiently by a single gcd with the product of all those primes.
 2. use GMP-ECM, starting from say B1=100, and increasing B1 by sqrt(B1) at each step, until one reaches the _recommended_B1_list value which corresponds to 1/3 of the size of the number to be factored. Thus for a 90-digit input, one will stop at B1=250000.
 3. try GMP-ECM P-1 and P+1 with respectively 9*B1 and 3*B1 where B1 is the last value tried for ECM. The corresponding cost of those runs will be approximately the same as the last ECM curve, thus this will not slow down the average computation, and might find a few factors.
 4. run MPQS or GNFS. You might want to issue a warning to the user (if called from toplevel) at that time.

== Apply ==
 1. #5310
 1. #5945
 1. #10623
 1. [attachment:trac_1145_integer_factorization.patch]
"	zimmerma
4	sage-5.10 Release	12896	384 days	make coverageall print the number of untested functions	documentation	enhancement	mvngu	needs_work	2012-05-03T11:14:14-07:00	"The upcoming patch adds a line to the output of {{{sage -coverageall}}}, with the number of untested functions.  It also fixes a plural.  Here is an example of the new output:

{{{
[aghitza@cerelia sage-5.0.beta13]$ ./sage -coverageall devel/sage/sage/coding
ag_code.py: 100% (1 of 1)
binary_code.pyx: 91% (41 of 45)
code_bounds.py: 100% (17 of 17)
code_constructions.py: 96% (25 of 26)
decoder.py: 100% (3 of 3)
guava.py: 100% (3 of 3)
linear_code.py: 82% (52 of 63)
sd_codes.py: 20% (1 of 5)
source_coding/huffman.py: 100% (9 of 9)

Overall weighted coverage score:  88.1%
Total number of functions:  172
Number of untested functions:  20
We need    3 more function(s) to get to 90% coverage.
We need   11 more function(s) to get to 95% coverage.
We need   18 more function(s) to get to 99% coverage.
}}}

Apply

 - [attachment:trac_12896-coverageall.patch] to the scripts repo"	AlexGhitza
4	sage-5.10 Release	11777	426 days	Coercion/printing problem with p-adics	padics	defect	roed	needs_work	2012-03-22T23:27:00-07:00	A strange problem maybe cause by a coercion problem when coercing from a number field into a p-adic field. Upon printing, repr_spec (reps. repr_gen if in 'bars' mode) ends up receiving an element whose call _ext_p_list(True) returns an empty list which causes some errors to be raised. Reproducing source code below.	robharron
4	sage-5.10 Release	12352	436 days	Add some tests for the Qhull optional package	packages: optional	enhancement	tbd	needs_work	2012-03-12T09:08:07-07:00	"At our dear leader's request I am adding a test file for the Qhull optional package.  

This will be quite minimal, since what I'd really like is to add a Qhull backend for the Polyhedron class, which would come with its own tests.  

If anyone is interested in adding more elaborate tests it wouldn't be very hard since the documentation at [http://www.qhull.org/ the Qhull site] is pretty good."	mhampton
4	sage-5.10 Release	12542	457 days	Fix issues with converting symbolic expressions to polynomials	symbolics	defect	burcin	needs_work	2012-02-20T07:59:04-08:00	"The following fails, but shouldn't:

{{{
sage: var('x,y')
sage: f = pi*x^10*y+3*x
sage: f.polynomial(SR)
}}}

Also, you should be able to do the following

{{{
sage: var('a,x,y')
sage: f = a*x^10*y+3*x
sage: B = f.polynomial(ring=SR['x,y'])
sage: B.coefficients()
[a, 3]
}}}"	mhansen
4	sage-5.10 Release	12452	461 days	make it possible to inherit from sage.symbolic.expression.Expression.	symbolics	enhancement	burcin	needs_work	2012-02-17T03:28:10-08:00	"Since most functions defined by symbolic expressions hardcode the type of the result as `sage.symbolic.expression.Expression`, it is not possible to inherit from the `Expression` class.

Attached patch tries to overcome this by using the type of the current object instead of Expression."	burcin
4	sage-5.10 Release	11360	480 days	The Rubik's Cube group in Sage doesn't support many basic operations for a dumb reason.	graph theory	enhancement	jason, ncohen, rlm	needs_work	2012-01-28T10:13:45-08:00	"We have
{{{
sage: G = CubeGroup()
sage: G.order()
Traceback (most recent call last):
...
AttributeError: 'CubeGroup' object has no attribute '_gap_string'
sage: G.sylow_subgroup(3)
Traceback (most recent call last):
...
AttributeError: 'CubeGroup' object has no attribute '_gap_string'
}}}

However, these things are all easily computable in Sage:
{{{
sage: G2 = PermutationGroup(G.gens())
sage: G2.order()
43252003274489856000
sage: G2.sylow_subgroup(3)
Permutation Group with generators [(24,30,43)(32,48,38), ...
}}}

Apply:
    * [attachment:trac_11360-cubegroup.patch]
    * [attachment:trac_11360-cubegroup2.patch]"	was
4	sage-5.10 Release	11638	481 days	Patch: add integration unit tests	symbolics	enhancement	burcin	needs_work	2012-01-28T05:43:31-08:00	"This adds unit tests for the following tickets: #11594, #11591, #11590, and #11238.
"	mjo
4	sage-5.10 Release	6371	490 days	Implement Riemann theta functions	numerical	enhancement	cswiercz	needs_work	2012-01-18T13:02:21-08:00	"In the theory of differential equations and abelian varieties, Riemann theta functions and there relatives play an important role.  Implement these in sage!

Apply:

 * [attachment:trac-6371.patch]

 * [attachment:trac-6371-part2.patch]

 * [attachment:trac-6371-part3.patch]

"	ncalexan
4	sage-5.10 Release	12186	504 days	Faster norm calculations	number fields	enhancement	davidloeffler	needs_work	2012-01-05T05:01:14-08:00	"Using a relative norm calculation is far slower than using an absolute norm calculation. The first should therefore be avoided if possible. What is needed is a patch that avoids using relative norm calculations when they are not necessary. The problem is well summarized in the following example:

{{{
sage: K1.<a1> = CyclotomicField(11)
sage: K2.<a2> = K1.extension(x!^2 - 3)
sage: K3.<a3> = K2.extension(x!^2 + 1)
sage: t=a1+6*a2+a3*a1
sage: %time t.norm()
CPU times: user 0.10 s, sys: 0.00 s, total: 0.10 s
Wall time: 0.11 s
46593592840125350650995659797233874763776
sage: %time t.norm(QQ)
CPU times: user 2.11 s, sys: 0.01 s, total: 2.12 s
Wall time: 2.23 s
46593592840125350650995659797233874763776
}}}"	MvanBeek
4	sage-5.10 Release	12046	513 days	Fix for numerator_ideal function	number fields	defect	davidloeffler	needs_work	2011-12-26T16:23:01-08:00	K(0).numerator_ideal() currently returns a Value Error, but it should return the 0 ideal.	bleveque
4	sage-5.10 Release	11554	553 days	Fix for denominator_ideal function	number fields	defect	davidloeffler	needs_work	2011-11-16T21:40:01-08:00	The `denominator_ideal` of 0 should return the ideal (1), but it currently returns a `ValueError`.	bleveque
4	sage-5.10 Release	11864	557 days	Blow-up ideal	commutative algebra	enhancement	malb	needs_work	2011-11-13T04:19:02-08:00	"Returns the ideal of relations for Rees algebra of this ideal.

{{{
sage: R.<x,y> = QQ[]
sage: I = R.ideal(x^3,x*y,y^2)
sage: I.blow_up_ideal()
Ideal (y*t1 - x*t2, x*t1^2 - t0*t2, x^2*t1 - y*t0, x^3*t2 - y^2*t0) of Multivariate Polynomial Ring in x, y, t0, t1, t2 over Rational Field
}}}"	dangtuanhiep
4	sage-5.10 Release	9706	560 days	New Version of orthogonal Polynomials	symbolics	enhancement	burcin, maldun	needs_work	2011-11-10T06:11:28-08:00	"The current implementation of orthogonal polynomials is just a wrapper around maxima. (see http://wiki.sagemath.org/symbolics/)
This update holds the following changes:

  * using of the pynac class for symbolic functions.
  * faster evaluation in general
  * evaluation of special values
  * mpmath for numeric evaluation

'''Remarks:''' 
   * The current patch needs scipy-0.8. One has to install it before testing (see #9808 for spkg's and installation instructions) 
   * Some of the old doctests in the old file don't work any more, due to coercion problems with pynac (see #9769)
   * Some doctests in Sage change, due to the fact that new BuiltIn functions are added. symbolic.random_test.py had output changes since the random expression creation changed of course. The tests in pynac.pyx also changed, but this has a strange behavior (see below)."	maldun
4	sage-5.10 Release	11095	615 days	Add BMSS algorithm for isogenies of elliptic curves	elliptic curves	enhancement	cremona	needs_work	2011-09-16T06:03:51-07:00	"Add the algorithm by Bostan, Morain, Salvy and Schost for normalized isogenies in characteristic 0 or large enough.

References:

[BMSS08] Alin Bostan, François Morain, Bruno Salvy, and Éric Schost, Fast algorithms for computing isogenies between elliptic curves, Mathematics of Computation 77 (2008), 1755–1778.
"	defeo
4	sage-5.10 Release	11380	619 days	Computing continued fractions on real quadratic fields	number theory	enhancement	was	needs_work	2011-09-11T08:30:34-07:00	"We have implemented some routines that allow for the computation of continued fractions in real quadratic number fields of class number one. This uses 2-stage division chains as defined in G.E.Cooke,""A weakening of the euclidean property for integral domains and applications to algebraic number theory"".

The algorithm finds a set of ""hyperbolic regions"" as described in the above article, large enough so that it covers a fundamental domain. These regions are used to construct 2-stage division chains and therefore obtain continued fractions with elements of the ring of integers of the number field.

More information can be found in the preprint posted in the Math Arxiv: http://arxiv.org/abs/1106.0856


Apply trac_11380_quadratic_cont_frac.patch
"	mmasdeu
4	sage-5.10 Release	11719	636 days	Add is_monomial() to power series and laurent series ring elements	commutative algebra	defect	malb	needs_work	2011-08-25T10:29:44-07:00	It should be trivial to check if a power/laurent series ring element is a monomial or not.  It is not.	boothby
4	sage-5.10 Release	8603	647 days	Partial sums are off for Fourier series of piecewise functions	calculus	defect	burcin	needs_work	2011-08-15T07:30:07-07:00	"Doing
{{{
f = Piecewise([[(-pi, pi), x]])
print f.fourier_series_partial_sum(2, pi)
print f.fourier_series_partial_sum(3, pi)
}}}
we get
{{{
2*sin(x)
-sin(2*x) + 2*sin(x)
}}}
while according to the documentation we should get the second output with the first command.

"	novoselt
4	sage-5.10 Release	10634	746 days	Weighted Choice	misc	enhancement	jason	needs_work	2011-05-08T07:49:55-07:00	This adds weighted choice to the choice function in prandom.py.	eviatarbach
4	sage-5.10 Release	10597	849 days	Riemann sums, added trapezoid option	calculus	enhancement	burcin	needs_work	2011-01-24T23:07:33-08:00	"For piecewise functions, added trapezoid option to riemann_sum and riemann_sum_integral_approximation to already existing option of left, right and midpoint.

Deprecated, trapezoid_integral_approximation and trapezoid"	gagansekhon
4	sage-5.10 Release	10268	916 days	adding GiNaC method to simplify_rational	symbolics	enhancement	burcin	needs_work	2010-11-18T07:47:49-08:00	"Currently simplify_rational() only offers 3 Maxima methods. GiNaC offers another possibility via its normal() method. This issue is discussed here

http://groups.google.com/group/sage-devel/browse_thread/thread/843c17dcbd9c2958

I have a patch and a benchmark but need to redownload sage because I am getting unrelated doctest failures with or without the patch.

EDIT: All tests pass now with the attached patch, as they should because the default behavior is not changed. Also, I am attaching a benchmark script using random rational expressions that simplify to 1. In this benchmark, the GiNaC option is about 10 times faster than the default option (Maxima's fullratsimp, without utilizing libraryness).

One limitation of this patch is that it does not support Maxima's map option. GiNaC has a map function, but utilizing it from sage would require a bit more effort."	bgoodri
4	sage-5.10 Release	7201	967 days	overflow: auto CSS on code cells	notebook	defect	boothby	needs_work	2010-09-28T14:13:06-07:00	"Every now and then, the auto-expansion of code cells doesn't quite get all of the code, which leads to frustration because you can't see the last line or two of your code in a cell.  I think this has happened when the code on a line wraps to the next line maybe (I don't have an example of it happening right now).

Anyways, putting scroll bars on the code cells using the overflow attribute (so they're only there when they are needed) is an easy way to guard against errors in the auto-expansion code."	jason
4	sage-5.10 Release	9301	995 days	Modified check_edge_label in the sparse graph backend to consider equals the same objects rather than objects with the same contents	graph theory	defect	jason, mvngu, ncohen, rlm	needs_work	2010-08-31T10:56:54-07:00	"Modified check_edge_label in the sparse graph backend to consider equals the same objects rather than objects with the same contents. Discussion and example here: http://groups.google.com/group/sage-devel/browse_thread/thread/310fba4f1c119e63#
"	comick
4	sage-5.10 Release	9484	1021 days	add demos for implicit_plot3d that show how to do CSG (constructive solid geometry)	graphics	enhancement	cwitty	needs_work	2010-08-06T07:18:32-07:00	"See http://groups.google.com/group/sage-support/browse_thread/thread/e05229d90733c78d for an example of how to do CSG (intersections and unions of solid objects) with implicit_plot3d; I think the given example:
{{{
sage: var('x,y,z')
(x, y, z)
sage: implicit_plot3d(max_symbolic(min_symbolic(x*x+y*y-1, x*x+z*z-2), x-1.8, y-1.8, z-1.8, -x-1.8, -y-1.8, -z-1.8), (x, -2, 2), (y, -2, 2), (z, -2, 2), smooth=False)
}}}
(along with some explanation) should be added to the implicit_plot3d docstring."	cwitty
4	sage-5.10 Release	8361	1025 days	Add an __iter__ method for IntegerVectors	combinatorics	enhancement	sage-combinat	needs_work	2010-08-02T05:13:58-07:00	"Add an iterator for IntegerVectors


Old proposition :
Using improvement of SearchForset and the breath_first_search_iterator inside it, implement an iterator over all integers vectors.

depend on #8288"	nborie
4	sage-5.10 Release	9512	1033 days	Sage Source Editor	notebook	enhancement	jason, was	needs_work	2010-07-25T00:31:08-07:00	"Add an ""Edit this page"" link at the bottom of source files (/src/...) where one can edit the file.

Only {{{user_type(username) == 'admin'}}} can edit the files."	acleone
4	sage-5.10 Release	8754	1035 days	"sagenb -- add ""how to test"" directions to the sagenb README.txt"	notebook	enhancement	jason, was	needs_work	2010-07-22T23:44:11-07:00	"{{{
1. Doctest: 
       sage -t -sagenb 
2. Run the Selenium test suite:
       sage -python sagenb/testing/run_tests.py 

To use Selenium, you must visit http://seleniumhq.org/download/ and:

      * Download and extract Selenium RC (""the Selenium Remote Control"")

      * Run it as follows on Linux:
             $ cd /path/to/selenium-remote-control-1.0.3/selenium-server-1.0.3
             $ java -jar selenium-server.jar
             $ cd /path/to/sagenb-0.8/src/sagenb
             $ sage  -python sagenb/testing/run_tests.py

      * Run it as follows on OS X:
             $ cd /path/to/selenium-remote-control-1.0.3/selenium-server-1.0.3
             $ cd /path/to/sagenb-0.8/src/sagenb
             $ sage
             sage: import sagenb.testing.run_tests as rt 
             sage: rt.setup_tests('localhost', False, '*firefox')
             sage: rt.run_any()
}}}

That the instructions for OS X are different is probably a bug. 

"	was
4	sage-5.10 Release	8965	1036 days	decorate.py: clarify normalize_input, Parallel and parallel	documentation	defect	mvngu	needs_work	2010-07-21T08:00:10-07:00	"Clarify documentation and add some doctests.

'''Apply:'''

 1. [http://trac.sagemath.org/sage_trac/attachment/ticket/8965/trac_8965_decorate.patch trac_8965_decorate.patch]
"	jdc
4	sage-5.10 Release	2215	1047 days	[with patch, needs work] if p is a permutation, matrix(p) should call p.to_matrix()	combinatorics	enhancement	mhansen	needs_work	2010-07-10T09:48:38-07:00	"it seems like matrix(thing) should usually work if we can think of ""thing"" as a matrix.  In this case, we even already have a p.to_matrix() function."	jason
4	sage-5.10 Release	8226	1059 days	Elementary divisors for non PIDs	number fields	enhancement	davidloeffler	needs_work	2010-06-29T04:34:22-07:00	Over maximal orders O in number fields K the elementary divisors provide a complete system of invariants for in matrices GL_n(K). Here the elementary divisors are the ideals e_i = d_i / d_{i-1} where d_i are the determinantal divisors. This patch provides the possibility to compute these elementary divisors.	mraum
4	sage-5.10 Release	6941	1091 days	GCD, XGCD for polynomial rings with templating	algebra	defect	tbd	needs_work	2010-05-27T15:04:39-07:00	"GCD and XGCD methods should return *monic* greatest common divisors.  However, at the moment these two methods in the template file ``sage/rings/polynomial/polynomial_template.pxi`` prevent this by enforcing that ``gcd(a,0) == a`` and ``gcd(0,b) == b``.

I suggest that the code for these two methods in the template file should only refer to the corresponding ``celement_foo`` methods of the actual implementation.  This way, all the logic is in the ``celement_foo`` methods, rather than being split between the two levels.

The patch for this should touch the template file as well as the two linkage files for GF2X and zmod polynomials."	spancratz
4	sage-5.10 Release	8962	1092 days	Change realfield latex representation to include precision/rounding information	basic arithmetic	enhancement	AlexGhitza	needs_work	2010-05-26T11:16:45-07:00	This patch changes the RealField latex representation to be RR_{precision}_^{0 or + or -}^ (for RNDZ, RNDU, or RNDD)	jason
4	sage-5.10 Release	3924	1093 days	[with patch; needs work] Build Python as a framework build on OS X	build	task	jkantor	needs_work	2010-05-26T01:41:30-07:00	"Build Python as a framework build on OS X. 

spkg up at 

http://sage.math.washington.edu/home/wstein/patches/prabhu/

This needs thorough testing.  In particular, try building sage from scratch with this spkg.  Also, worry about upgrading from one sage version to another.

Anyway, ASAP I think this should be made the standard version of python for OS X, so that we can get matplotlib + full native gui support by default.  Plus, we should provide an optional spkg that makes it trivial to make nice native GUI apps on OS X (??)."	dphilp
4	sage-5.10 Release	3048	1127 days	add generic LU decomposition	linear algebra	enhancement	jason	needs_work	2010-04-21T20:06:04-07:00	Add a generic LU decomposition and modify associated functions (solve_right, __invert__, determinant)	mhansen
4	sage-5.10 Release	6837	1136 days	Implementation of twisting modular forms by Dirichlet characters	modular forms	enhancement	craigcitro	needs_work	2010-04-12T08:10:20-07:00	"In Koblitz's book ""Introduction to Elliptic Curves and Modular Forms"", Proposition III.3.17, it is proved that if f(q)=sum,,n=0,,^infinity^ a_n q^n^ is the Fourier expansion of a modular form in M,,k,,(Gamma,,0,,(M),chi) and chi_1 is a primitive Dirichlet character modulo N, then f_chi(q)=sum,,n=0,,^infinity^ \chi_1(n) a_n q^n^ is a modular form in M_k(\Gamma_0(MN^2^),\chi\chi_1^2^). This is a proposed method for objects of type 'sage.modular.modform.element.ModularFormElement' which will create f_\chi given f and chi.

{{{
def twist(f,chi):
        r""""""
        This function returns the twist of the modular form f by the Dirichlet character chi

        INPUT:

        - ``f`` - a modular form

        - ``chi`` - a Dirichlet character

        OUTPUT:

        f_\chi, the twist of f by chi; if f(q)=sum_{n=0}^infty a_n q^n, then f_chi(q)=sum_{n=0}^infty chi(n) a_n q^n ([Koblitz]).

        EXAMPLES:

        Here is a basic example:

        ::

                sage: f=CuspForms(11,2).0
                sage: f.q_expansion(6)
                q - 2*q^2 - q^3 + 2*q^4 + q^5 + O(q^6)
                sage: eps=DirichletGroup(3).0
                sage: f.twist(eps)
                q + 2*q^2 + 2*q^4 - q^5 + O(q^6)

        ::

        NOTES:
        This function is rather slow when chi is not a quadratic character; this may be improved with a new definition of the Sturm bound.

        REFERENCES:

        - [Koblitz], Neal Koblitz, ""Introduction to Elliptic Curves and Modular Forms"", Springer GTM 97, 1993, Proposition III.3.17.

        AUTHORS:

        - L. J. P. Kilford (2009-08-28)

        """"""
        DG_MNsq=DirichletGroup(f.level()*chi.modulus()^2)
        basering=DG_MNsq.base_ring()
        M_k_MNsq=ModularForms(DG_MNsq(self.character())*DG_MNsq(chi)^2,self.weight(),base_ring=basering)
        bound=M_k_MNsq.sturm_bound()+1
        PSR.<q>=PowerSeriesRing(DG_MNsq.base_ring())
        f_twist=PSR([self[i]*chi(i) for i in xrange(0,bound+2)])+O(q^bound)
        return M_k_MNsq(f_twist)
"	ljpk
4	sage-5.10 Release	7523	1160 days	Lightweight Wrapper for Rpy2	statistics	enhancement	amhou	needs_work	2010-03-19T15:44:17-07:00	Creates an easier to use interface for Rpy2	amhou
4	sage-5.10 Release	3624	1173 days	cookbook documentation chapter: coding theory	documentation	enhancement	tba	needs_work	2010-03-06T18:11:48-08:00	"I've put a draft for the coding theory chapter for the cookbook.tex document in 
http://sage.math.washington.edu/home/wdj/cookbook/
To possibly make it easier, I've created this tarball of the directory:
http://sage.math.washington.edu/home/wdj/cookbook2008-07-09.tar.gz"	wdj
4	sage-5.10 Release	4656	1202 days	[with patch, needs work] power series with zero p-adic coefficients	number theory	defect	was	needs_work	2010-02-05T15:13:33-08:00	"The following _repr_ does not look good to me

{{{
sage: R.<T> = Qp(5,5)[[]]
sage: O(5^3)*T
0
sage: 1+O(5^3)*T
1 + O(5^5) + O(5^3)*T
}}}

But that is due to 
{{{
sage: s= O(5^3)*T
sage: s.is_zero()
True
sage: s == R(0)
False
}}}

This I consider to be a bug according to the docstring of s.is_zero? saying
{{{
Return True if self equals self.parent()(0).
}}}"	wuthrich
4	sage-5.10 Release	4857	1206 days	script to create spkg template	documentation	enhancement	GeorgSWeber	needs_work	2010-02-01T22:07:38-08:00	"(see also the respective thread at sage-devel)

Although this spkg is pretty small, putting it in a trac ticket is probably not the best idea. But currently, I haven't got access to any other web space where I could place it.

Install with ""sage -i exampleclib-1.0.0.spkg""; the documentation is the under

$SAGE_ROOT/devel/exampleclib/src/README.txt

$SAGE_ROOT/devel/exampleclib/src/doc/*"	GeorgSWeber
4	sage-5.10 Release	8055	1212 days	Add the jCarousel plug-in and set up a Sage showcase for the login page	notebook	enhancement	was	needs_work	2010-01-26T09:32:23-08:00	"Let's showcase the many cool features of Sage on the Notebook login page!

For this we can use a carousel plug-in for jQuery.  Some searches and several experiments indicate that [http://sorgalla.com/projects/jcarousel/ jCarousel] is both featureful and relatively easy-to-use.

Note: We can use the carousel in other ways, too, e.g., for slideshows."	mpatel
4	sage-5.10 Release	6018	1218 days	Confusing behaviour with Dirichlet characters	modular forms	defect	craigcitro	needs_work	2010-01-21T01:39:20-08:00	"Funny things happen if you have two Dirichlet groups with the same modulus and the same base ring, but different roots of unity. This can happen if you use base_extend:

{{{
sage: G = DirichletGroup(10, QQ).base_extend(CyclotomicField(4))
sage: H = DirichletGroup(10, CyclotomicField(4))
}}}

Now G and H look pretty similar:
{{{
sage: G
Group of Dirichlet characters of modulus 10 over Cyclotomic Field of order 4 and degree 2
sage: H
Group of Dirichlet characters of modulus 10 over Cyclotomic Field of order 4 and degree 2
}}}

But they don't compare as equal and the generators of H don't live in G:
{{{
sage: G == H
False
sage: H.0 in G
False
}}}

Here G only actually contains those characters which factor through its original base ring, namely QQ. This is probably going to be a bit mystifying for the end-user.

Similar phenomena can make it next to impossible to do arithmetic with characters obtained by base extension, which somehow are second-class citizens:

{{{
sage: K5 = CyclotomicField(5); K3 = CyclotomicField(3); K30 = CyclotomicField(30)
sage: (DirichletGroup(31, K5).0).base_extend(K30) * (DirichletGroup(31, K3).0).base_extend(K30)
TypeError: unsupported operand parent(s) for '*': 
'Group of Dirichlet characters of modulus 31 over Cyclotomic Field of order 30 and degree 8' and 
'Group of Dirichlet characters of modulus 31 over Cyclotomic Field of order 30 and degree 8'
}}}

This is a particularly mystifying error for the uninitiated, since it's asserting that it can't find a common parent, but the string representations of the parents it already has are identical.

I can see a couple of solutions:

- Change base_extend for Dirichlet groups to pick a maximal order root of unity in the new base ring, rather than just base-extending the root of unity it already has. This is nice and transparent, but it could be slow in some cases, and it prevents us constructing Dirichlet characters with values in rings where the unit group isn't cyclic or we can't compute a generator (e.g. we'd lose the ability to base extend elements of {{{DirichletGroup(N, ZZ)}}} to {{{DirichletGroup(N, Integers(15))}}}).

- Change the {{{_repr_}}} method for Dirichlet groups so it explicitly prints the root of unity involved. I don't like this idea much.

- Some combination of the above two, with a special class for Dirichlet groups over domains where a unique root of unity of maximal order dividing {{{euler_phi(N)}}} doesn't exist or can't be calculated. This might be fiddly to write and maintain.

"	davidloeffler
4	sage-5.10 Release	1893	1221 days	[with bundle, needs additional review] Added graphical plotting to discrete random variables.	graphics	enhancement	boothby	needs_work	2010-01-18T03:33:20-08:00	"This example explains the functionality for the new function 'plot':
{{{
sage: import urllib2
sage: S = AlphabeticStrings()
sage: ISARC = 'http://iml.univ-mrs.fr/~kohel/tch/ISARC/'
sage: en = S.encoding(urllib2.urlopen(ISARC + 'blackcat.txt').read())
sage: F_en = en.frequency_distribution()
sage: F_en.plot()
sage: fr = S.encoding(urllib2.urlopen(ISARC + 'chapitre.1.txt').read())
sage: F_fr = fr.frequency_distribution()
sage: F_fr.plot()
}}}
Unfortunately, I did not include such an example in the function 
since it hard-codes an external web address, and would otherwise 
require a reasonably sized sample text for a proper demonstration.
"	kohel
4	sage-5.10 Release	7787	1240 days	Use a javascript minifier instead of a packer for sagenb	notebook	enhancement	was	needs_work	2009-12-29T07:16:57-08:00	"A minifier is safer (less likely to cause errors), is faster (no need for client-side to unpack), and smaller (with gzip).

Google has reimplemented Douglas Crockford's `jsmin.py` with a BSD License for its V8 engine. It is available here:

http://code.google.com/p/v8/source/browse/branches/bleeding_edge/tools/jsmin.py"	timdumol
4	sage-5.10 Release	7404	1274 days	Display as much of a worksheet's title for which there's room	notebook	enhancement	boothby	needs_work	2009-11-25T09:14:33-08:00	"From [http://groups.google.com/group/sage-devel/msg/2973d4d2f3c2406a sage-devel]:
{{{
Jason Grout wrote:
> William Stein wrote:
>> Alex Ghitza wrote:
>>> 3. long worksheet titles get cut off even if there would be enough
>>> room to display them in their entirety (in my case, I had ""Victorian
>>> Algebra Conference 2009"" which appeared as ""Victorian Algebra
>>> Conference 2..."")

>> True.  It is tricky because fonts are proportionally spaced.

> Why does that make it tricky?  Make the div/table cell the maximum width
> possible (and expand as the browser window expands), and let the browser
> worry about when to cut off the text by setting the CSS style to chop
> off the text.  I suppose we'll miss the ""...""; is that the tricky part? 
}}}
"	mpatel
4	sage-5.10 Release	3424	1330 days	[with patch, needs work] jordan_form gives incorrect results due to imprecise roots	linear algebra	defect	was	needs_work	2009-09-30T22:23:39-07:00	"mat.jordan_form(CDF) gives the wrong Jordan form for some matrices because mat.charpoly().roots() sometimes gives separate roots when it should give a single root. Attached is a patch that adds a new parameter to jordan_form so that users can specify a number of digits of rounding to the roots of the characteristic polynomial.

{{{
sage: m                            

[1 1]
[0 1]
sage: m.jordan_form()              

[1 1]
[0 1]
sage: m.jordan_form(CDF)

[1.0|  0]
[---+---]
[  0|1.0]
sage: m.jordan_form(CDF, digits=2)

[1.0 1.0]
[  0 1.0]
}}}"	johnwilmes
4	sage-5.10 Release	6666	1389 days	[with patch] implement analytic modular symbols algorithm and cusp transformation matrix	number theory	enhancement	was	needs_work	2009-08-02T11:52:08-07:00		was
4	sage-5.10 Release	6183	1409 days	[with patch, needs work] Quaternion algebra latexification	algebra	enhancement	AlexGhitza	needs_work	2009-07-14T00:41:11-07:00	Quaternion algebra elements don't have a nice latexification. This should be easy for someone to add. 	robertwb
4	sage-5.10 Release	6106	1421 days	[with patch, needs work] Additional functions for Indefinite Binary Quadratic Forms	quadratic forms	enhancement	justin	needs_work	2009-07-01T10:04:48-07:00	I added functions to check for the reducibility of an indefinite binary quadratic form and reduce it. 	aliashamieh
4	sage-5.10 Release	6105	1438 days	[with patch, needs work] Additions and changes in Group Algebras	algebra	enhancement	tbd	needs_work	2009-06-15T05:54:36-07:00	Added helper functions to better exchange character information between gap and Sage and then use those to build a system of idempotent for any group algebra defined over a finite group. Also, made small fixes in the group algebra.	jlefebvre
4	sage-5.10 Release	6072	1459 days	[with patch, needs work] Boundary space for GammaH fails to identify vanishing classes	modular forms	defect	craigcitro	needs_work	2009-05-25T05:56:59-07:00	"If G is a congruence subgroup (not containing -1), then cusps of G can ""magically"" vanish in the space of odd weight boundary symbols when the weight is odd.

Reading the explanation in boundary.py, I think that the explanation there just boils down to that this happens if and only if the cusp is irregular (in the sense that the generator of its stabiliser looks like [-1, h ; 0, -1]). But for the group {{{GammaH(8, [3])}}} there are 4 cusps of which 2 are irregular, namely 1/2 and 1/4 -- but the boundary space doesn't realise this. It's possible that I've misunderstood the definitions, but I'm pretty sure that the boundary space is supposed to be dual to the space of Eisenstein series, and that certainly has dimension 2 here.

This is certainly of no great significance at the moment since we don't really have much functionality working for GammaH spaces anyway, but it's still not ideal that the functionality we do have implemented is giving wrong answers.

Craig: I'm ccing you here as I got the impression you wrote most of the GammaH stuff -- do you have any idea what's going on here?"	davidloeffler
4	sage-5.10 Release	5987	1479 days	[with patch, needs work] fix a few more bad comparison doctests	doctest coverage	defect	AlexGhitza	needs_work	2009-05-05T00:47:30-07:00	"To make up for my past mistakes, here's a simple patch that modifies or removes a few bad comparison doctests (not all of which were introduced by me).
"	AlexGhitza
4	sage-5.10 Release	5279	1529 days	[with spkg, needs work] Experimental ParaView Package	graphics	enhancement	was	needs_work	2009-03-16T06:24:34-07:00	"Paraview is based on VTK, comes with it's own implementation of vtk.

[http://www.paraview.org/Wiki/ParaView]

From the wiki web site:
{{{
ParaView is an open-source, multi-platform application designed to visualize
data sets of size varying from small to very large. The goals of
the ParaView project include developing an open-source, multi-platform visualization
application that support distributed computational models to process
large data sets.
It has an open, flexible, and intuitive user interface.
Furthermore, ParaView is built on an extensible architecture based on open standards.
ParaView runs on distributed and shared memory parallel as well as single processor
systems and has been succesfully tested on Windows, Linux, Mac OS X, IBM Blue Gene,
Cray XT3 and various Unix workstations and clusters.
Under the hood, ParaView uses the Visualization Toolkit as the data processing
and rendering engine and has a user interface written using the
Qt cross-platform application framework.
}}}

Dependencies:

cmake-2.4.8 or higher

OpenGL

Qt4

openmpi for multi processor usage.

Try it! See:

[http://sage.math.washington.edu/home/jsp/SPKGS/ParaView/paraview-3.4.0.spkg]

[http://sage.math.washington.edu/home/jsp/SPKGS/ParaView/Screenshot-257.png]

[http://sage.math.washington.edu/home/jsp/SPKGS/ParaView/Screenshot-258.png]

Jaap

"	jsp
4	sage-5.10 Release	4821	1567 days	[with spkg, needs work] Experimental scilab-5.0.3.spkg	packages: experimental	enhancement	mabshoff	needs_work	2009-02-05T08:56:09-08:00	"I made an experimental scilab-5.0.3.spkg

[http://sage.math.washington.edu/home/jsp/SPKGS/Scilab/scilab-5.0.3.spkg
]

{{{

Please test it by downloading it into $SAGEROOT
and type

./sage -f -m scilab-5.0.3.spkg

The -m argument keeps the package in the spkg/build directory for
further experimentation.

See spkg-install:
I did a minimal
./configure --without-javasci --without-gui --with-gfortran


There are two dependencies left: pcre and matio

I don't know how essential they are for a full functional scilab :(


}}}

Cheers,

Jaap


For me it worked on Fedora 9 and Fedora 10

{{{
real	36m7.756s
user	22m25.173s
sys	9m55.849s
Successfully installed scilab-5.0.3
You can safely delete the temporary build directory
/home/jaap/downloads/sage-3.2.2.alpha0/spkg/build/scilab-5.0.3
Making Sage/Python scripts relocatable...
Making script relocatable
Finished installing scilab-5.0.3.spkg
[jaap@paix sage-3.2.2.alpha0]$
[...]
sage: scilab.console()
graphics module not found.
javasci module not found.
         ___________________________________________
                        scilab-5.0.3

                  Consortium Scilab (DIGITEO)
                Copyright (c) 1989-2008 (INRIA)
                Copyright (c) 1989-2007 (ENPC)
         ___________________________________________


Startup execution:
   loading initial environment

-->
}}}"	jsp
4	sage-5.10 Release	4309	1636 days	[with patch, needs work] Kerberos authentification for SAGE notebook	notebook	enhancement	kkilger	needs_work	2008-11-28T19:01:03-08:00	"This patch adds Kerberos authentification support for the SAGE notebook. It also adds the options krb_srv, krb_realm for the notebook() command.

This patch however depends on pykerberos which depends on kerberos which depends on a couple of other libraries all in all a little less size than SAGE itself and all not in SAGE :-). Nevertheless ... 

Greetings, 
Kilian. "	kkilger
4	sage-5.10 Release	391	1650 days	[with patch, needs work] adding apropos to SAGE -- try `conductor**?' for an example.	user interface	enhancement	ncalexan	needs_work	2008-11-14T10:23:26-08:00	"This bundle adds an apropos command to SAGE -- try `conductor**?' for an example.

The implementation is in sage.misc.apropos.  Some code that needs to be fast is in sage.misc.apropos_internals, a Pyrex module.

This bundle addresses some annoyances with IPython's introspection module.

See the hg log for details."	ncalexan
4	sage-5.10 Release	1683	1874 days	[with workaround, needs proper patch] sage -t cubegroup.py & stops instead of running in background	interfaces	defect	was	needs_work	2008-04-04T16:50:11-07:00	"When running sage -t cubegroup.py & (to run it in the background), the process is stopped.

This is caused by pexpect.sendeof() (called from rubik.py) calling termios.tcsetattr() on stdin which causes the process to be stopped with a SIGTTOU (=write to tty from a background process).

The pexpect.sendeof() function has been entirely changed in the current version of pexpect, and using that new sendeof() fixes this problem. So, updating to a newer pexpect (ticket #502) should fix this as well."	wjp
5	sage-5.10 Release	14365	21 days	One doctest in cmdline.py is too touchy with respect to the shebang	doctest coverage	enhancement	mvngu	needs_work	2013-05-01T18:45:54-07:00	In cmdline.py, one of the doctest checks the exact shebang of ipython ; the attached patch checks there is a shebang trying to run python, but doesn't check exactly how python is run.	Snark
5	sage-5.10 Release	12298	70 days	minor CallableSymbolicExpressionRing display bug.	symbolics	defect	gbe	needs_work	2013-03-13T08:29:58-07:00	"When a CallableSymbolicExpressionRing is created with only one variable, arguments is still plural and an extra comma is printed.

Correct, #variable > 1:
{{{
sage: CallableSymbolicExpressionRing([var('q p')])
Callable function ring with arguments (q, p)
}}}

Incorrect:
{{{
sage: CallableSymbolicExpressionRing([var('q')])
Callable function ring with arguments (q,)
}}}

The extra comma, I ''suspect'', is because the repr returns something like ""... arguments (%s)"" % variable_tuple. This is what would be expected of a singular tuple."	gbe
5	sage-5.10 Release	13837	130 days	trivial typo in modular/modsym/ambient.py (in modular symbols)	modular forms	defect	davidloeffler	needs_work	2013-01-12T15:04:14-08:00	"I noticed:
{{{
        Uses Heilbronn-Cremonma matrices of `p` is prime, else use
        Heilbronn-Merel matrices.
}}}
It should be ""if `p` is prime"" not ""of `p` is prime"". 

"	was
5	sage-5.10 Release	10271	150 days	Make big_oh notation work for any element that has a big_oh() method	commutative algebra	enhancement	boothby	needs_work	2012-12-23T11:32:04-08:00	"One can use the big-oh notation

O(x^n^)

when x is a generator of a power series or a laurent series. It is convenient to also be able to use this notation when the parent of x is another ring (for example, a subclass of a power series ring).

The current implementation in {{{rings/big_oh.py}}} imports a large number of types, which slows down the Sage startup.  Elements should implement their own big_oh() methods, and the function {{{O(x)}}} should simply call {{{x.big_oh()}}}."	tkluck
5	sage-5.10 Release	13716	155 days	(very) Minor improvements to the multivariate polynomials documentation	commutative algebra	enhancement	malb	needs_work	2012-12-19T06:04:49-08:00	Mostly typo fixing, adding references to trac tickets, adding quotes, fixing a few spelling mistakes, ...	Bouillaguet
5	sage-5.10 Release	13438	179 days	univariate polynomial _xgcd only over fields	basic arithmetic	task	AlexGhitza	needs_work	2012-11-24T23:49:31-08:00	"{{{sage.rings.polynomial.polynomial_element.Polynomial}}} provides an implementation for {{{_xgcd}}}. This implementation is not correct for polynomials over arbitrary rings. Therefore it should be moved to {{{sage.rings.polynomial.polynomial_element_generic.Polynomial_generic_field}}}.

The way it currently is, doesn't cause any bugs (except for one which already has a stopgap warning) because only elements of a PID call the {{{_xgcd}}} method."	saraedum
5	sage-5.10 Release	12192	213 days	Improve doctest coverage of misc/fpickle.pyx	doctest coverage	enhancement	mvngu	needs_work	2012-10-21T15:44:09-07:00	"I introduced some functions without doctests in #11716. This ticket tries to add the missing doctests to the these and other functions in that file.

This is part of doctest meta-ticket #12024."	saraedum
5	sage-5.10 Release	13591	217 days	Improve padic add_bigoh	padics	enhancement	saraedum	needs_work	2012-10-17T12:15:41-07:00	"There are a few minor issues with {{{add_bigoh()}}} of the padics:

I believe that all these should produce errors:
{{{
sage: K = ZpCR(3,20)
sage: K.one().add_bigoh(-1)
O(3^-1)
sage: K = ZpCA(3,20)
sage: K.one().add_bigoh(-1)
O(3^0)
sage: K = ZpFM(3,20)
sage: K.one().add_bigoh(10)
1 + O(3^20)
}}}

Additionally, {{{add_bigoh()}}} doesn't work for infinity which can be annoying sometimes:
{{{
sage: K.one().add_bigoh(infinity)
TypeError: unable to coerce <class 'sage.rings.infinity.PlusInfinity'> to an integer
}}}"	saraedum
5	sage-5.10 Release	7559	342 days	replace all the deprecation warning using deprecated_function_alias whenever possible	misc	enhancement	tbd	needs_work	2012-06-14T08:27:46-07:00	"This was suggested by Nathann Cohen. This is a followup of #7515 where a short mantra for deprecated function aliases is set-up.

I'll not have the time to do this right now so any volunteer is welcome. 

Cheers

Florent 

"	hivert
5	sage-5.10 Release	11850	351 days	random element of ideal	commutative algebra	enhancement	malb	needs_work	2012-06-06T05:02:30-07:00	"return a random element of given ideal.
"	dangtuanhiep
5	sage-5.10 Release	12552	457 days	degree of polynomial_element is of type int	commutative algebra	defect	malb	needs_work	2012-02-20T12:51:13-08:00	"The degree of a polynomial over {{{RDF}}} is of type {{{int}}} and not a sage Integer.

{{{
sage: R.<x> = RDF[]
sage: type(x.degree())
<type 'int'>
sage: x.degree().divides(6)
Error
}}}

This is not consistent with polynomials over other rings:

{{{
sage: R.<x> = QQ[]
sage: type(x.degree())
<type 'sage.rings.integer.Integer'>
sage: x.degree().divides(6)
True
}}}

The attached patch fixes this."	saraedum
5	sage-5.10 Release	11861	596 days	Saturation of ideals	commutative algebra	defect	malb	needs_work	2011-10-05T00:39:22-07:00	"Returns the saturation of ideal with respect to another ideal.
EXAMPLE:
{{{
sage: R.<x,y,z>=QQ[]
sage: I = R.ideal(x^5*z^3,x*y*z,y*z^4)
sage: J = R.ideal(z)
sage: I.saturation(J)
Ideal (y, x^5) of Multivariate Polynomial Ring in x, y, z over Rational Field
}}}"	dangtuanhiep
5	sage-5.10 Release	10077	727 days	Improve doc about coding conventions	documentation	enhancement	mvngu	needs_work	2011-05-26T08:32:28-07:00	"There is a problem within http://www.sagemath.org/doc/developer/conventions.html. It says to use "".. NOTE::"" and there is ""NOTES:"" in the example.

There is also nothing about ""TESTS:"" section which is often used whithin the source code. 

The recurrent use of "".. blah ::"", ""::"" and ""sage: "" could also be documented or at least directly point to the corresponding pages of Sphynx doc (even if looking at the examples is of course the best way to go and looking through Sphynx doc also explains many things)."	jpflori
5	sage-5.10 Release	7792	1064 days	Improved docs and INI support at /interfaces/povray.py	interfaces	defect	was	needs_work	2010-06-23T09:58:02-07:00	To improve docs of Povray, support for inifile.	slosoi
5	sage-5.10 Release	9252	1070 days	documentation errors in tutorial	documentation	defect	wjlaffin	needs_work	2010-06-17T22:13:10-07:00	"$'s are not escaped, multilines appear wrong, etc.

This patches the tutorial plus others so that reading the live-help leaves one with less papercuts."	wjlaffin
2	sage-6.0 Release	21	118 days	command line option parsing	interfaces	enhancement	jdemeyer	needs_work	2013-01-24T23:35:11-08:00	"{{{sage -br -notebook}}} doesn't start the notebook but it should.

To apply: 

 - replace $SAGE_ROOT/makefile with ""makefile"".  See the diff file for reference.
 - replace $SAGE_ROOT/sage with ""sage"".  See the diff file for reference.
 - apply ""trac_21-extcode.patch"" to the extcode repo.
 - apply ""trac_21-sagenb.patch"" to the sagenb repo.
 - apply ""trac_21-scripts.patch"" to the scripts repo.
 - apply ""trac_21-sage.patch"" to the sage repo.

(The patches for extcode and sage are mainly changes in documentation. The critical patches are to the file ""sage"" and to the scripts repo.)
"	was
3	sage-6.0 Release	13448	111 days	source sage-env in spkg/install	misc	task	jason	needs_work	2013-01-31T22:43:03-08:00	"Currently sage environmental variables are set in both `sage-env`, and a subset are set in `spkg/install`. This should be refactored. Also, since `sage-spkg` is now always called from within the sage environment (as it should be), so it is no longer necessary to source `sage-env`.

'''Installation instructions:'''

Apply attachment:trac13448.patch to the root repo."	rohana
3	sage-duplicate/invalid/wontfix Release	12180	469 days	is_directed_acyclic(certificate=True) doesn't always give an ordering back	combinatorics	defect	tbd	needs_work	2012-02-09T02:36:22-08:00	"Currently we have:

{{{
sage: m=Matrix(3,[0, 1, 1, 0, 0, 0, 0, 1, 0])
sage: g=DiGraph(m)
sage: g.is_directed_acyclic(certificate=True)
(True, [0, 1, 2, 1])
}}}"	mderickx
3	sage-duplicate/invalid/wontfix Release	10539	498 days	sage0.py interface ouputs inconsistent strings.	interfaces	defect	was	needs_work	2012-01-11T05:20:14-08:00	"The `sage0` interface doesn't always return exactly the same thing.
At #10528 the apparent problem is solved by making the doctests less rigid.  But the real problem is not fixed there. With the real problem being that the piece of code:
{{{
sage: sage0.clear('x')
sage: sage0.get('x')
}}}
returns
{{{
""...NameError: name 'x' is not defined"" 
}}}
in some setups and
{{{
'...NameError: name \'x\' is not defined'
}}}
in other setups."	mderickx
3	sage-feature Release	6341	63 days	implement Mestre's algorithm for constructing genus 2 hyperelliptic curves	number theory	enhancement	was	needs_work	2013-03-20T15:42:49-07:00	"An implementation of Mestre's algorithm for constructing genus 2 hyperelliptic curves.

Apply [attachment:6341_combined.patch] and all files below that.
"	ncalexan
3	sage-feature Release	8360	769 days	Add an interface to Jean-Eric Pin's Semigroupe package	algebra	enhancement	nthiery	needs_work	2011-04-14T20:23:20-07:00	"Add an interface to Jean-Eric Pin's Semigroupe package

http://www.liafa.jussieu.fr/~jep/semigroupes.html

An experimental spkg is now on trac, and the patch is up and unguarded
on the Sage-Combinat patch server:

http://combinat.sagemath.org/hgwebdir.cgi/patches/file/tip/trac_8360_semigroupe-interface-nt.patch

Status: advanced proof of concept, with interactions in both directions (building a semigroup in Semigroupe from Sage data). Main show stopper: one can only manipulate one semigroup at a time.

The following should hopefully get you started:

{{{
   sage -f http://trac.sagemath.org/sage_trac/raw-attachment/ticket/8360/semigroupe-2.0-2.spkg
   sage -combinat update
   sage -br

   sage: semigroupe?
   sage: semigroupe.tutorial?
}}}

Beware 'sage -f an_url' does not redownload the package if sage
already has a copy of it. So you may have to first do:

{{{
        rm <SAGE_ROOT>/spkg/optional/semigroupe-2.0.spkg
}}}




"	nthiery
3	sage-feature Release	8441	1175 days	Coleman-Gross local height pairing on hyperelliptic curves	number theory	enhancement	was	needs_work	2010-03-04T17:34:27-08:00	"Currently, a work in progress (lots of doctests need to be written and internal print statements removed; the code itself will be cleaned up over the next few weeks), but the main function, which computes the Coleman-Gross local height pairing at p for hyperelliptic curves, does the following:

(This example is computing h_7(D_1, D_2) and h_7(D_2, D_1), for D_1 = (P) - (Q) and D_2 = (Pprime)-(Qprime), in the notation of R. Coleman and B. Gross, p-adic heights on curves, Algebraic Number Theory, 1989, pp-73-81.)

{{{
        sage: R.<x> = QQ[]                                                                                
        sage: H = HyperellipticCurve(x*(x-1)*(x+9))                                                       
        sage: K = Qp(7,10)                                                                                
        sage: HK = H.change_ring(K)                                                                       
        sage: P = HK(9,36)                                                                                
        sage: Q = HK.teichmuller(P)                                                                       
        sage: Pprime = HK(-4,10)                                                                          
        sage: Qprime = HK.teichmuller(Pprime)                                                             
        sage: HK.height([(1,P),(-1,Q)],[(1,Pprime),(-1,Qprime)],10)                                       
        2*7^2 + 5*7^3 + 7^4 + 7^5 + 2*7^6 + 3*7^7 + 7^8 + 3*7^9 + O(7^10)                                 
        sage: HK.height([(1,Pprime),(-1,Qprime)],[(1,P),(-1,Q)],10)                                       
        2*7^2 + 5*7^3 + 7^4 + 7^5 + 2*7^6 + 3*7^7 + 7^8 + 3*7^9 + O(7^10)      
}}}"	jen
3	sage-feature Release	6520	1410 days	[with patch, needs work] Implement cached_function with weakref cache	misc	enhancement	nthiery	needs_work	2009-07-12T23:35:49-07:00	"The preliminary attached patch (taken from the Sage-Combinat patch server) implements a variant of cached_function where the cache uses weak references. Again: preliminary: the test do not pass, ...

Feedback welcome!

The first planned application is for homsets, after the category stuff #5985 will be in.

"	nthiery
3	sage-feature Release	6397	1428 days	[with patch, needs work] implement general Newton's method root finding for power series rings	commutative algebra	enhancement	malb	needs_work	2009-06-24T13:06:16-07:00	"Extracting a square root of a power series is implemented in `power_series_ring_element.pyx`.  Could we have the more general ""improving a root of a polynomial"" Newton's method?

My use case is calculating Puiseaux expansions around points of algebraic curves."	ncalexan
4	sage-feature Release	6489	451 days	Allow Sage to call R (statistics)	statistics	enhancement	mhampton	needs_work	2012-02-26T09:39:50-08:00	"Here we have the start of a ""bridge"" between Sage and R.

The R c language api is used to call R functions from Python.

This code mostly handles converting between Sage (Python) and R types.

The way it works is Python calls the callTypedArgs function defined in this module, passing in the name of the R function to call, a string specifying types of the parameters the function expects and what the function returns, then a list of Python Objects (such Sage integers, or vectors or matrices) for the parameters. R_bridge then creates the equivalent simple expressions in R for the passed Python objects, calls the given function in R, and then converts back from the returned R simple expression to a Python Object.

The way to expose R's functionality nicely in Sage using this is then to create a Sage file (like statistics.py) that uses R_bridge to call R functions. This file would wrap up the ugly parameter and return type specifier string."	sjanke
4	sage-feature Release	9763	743 days	Metrology module (a different implementation of the units module)	symbolics	enhancement	burcin	needs_work	2011-05-10T14:50:42-07:00	"This is a module that implements physical units in a more convenient way than the already existing units module: instead of creating separate variables for each unit, it creates an object containing the value, the dimension (mass, length, time...) as a list, and the units as an expression, plus the conversion factor. 

It includes an easy-to-use function to create units from a string, implements `SI` prefixes and has a nice `LaTeX` output.

TO DO: Add more units (there are currently only 74, plus 13 constants), review the documentation and code in case it doesn't follow the Sage style, modify sage/symbolic/all.py to include this module (adding ""import metrology"" causes Sage to throw exceptions when starting)."	cousteau
4	sage-feature Release	10857	815 days	modular symbols integrality algorithm	modular forms	enhancement	GeorgSWeber	needs_work	2011-02-27T15:08:01-08:00	"See the discussion of this topic at the following thread:

http://groups.google.com/group/sage-nt/browse_thread/thread/a653b4498fa5cb67/8477f3e96808e0f5#8477f3e96808e0f5"	GeorgSWeber
4	sage-feature Release	8871	1113 days	Finding digit sets for dilation matrices	number theory	enhancement	Eva Curry	needs_work	2010-05-05T08:18:29-07:00	"Add to sage a function finddigits that takes as input a dilation matrix A and a method/type of digit set to find (centered canonical ""centered"", minimum modulus ""minimum"", or colinear) and outputs a digit set D (or an appropriate error message if the method chosen is colinear and no colinear digit set exists).

I have sage code in a worksheet to do this, but need to tidy it up and test it."	ecurry
4	sage-feature Release	7798	1163 days	Recomputing graphs after changing range of axes	graphics	enhancement	was	needs_work	2010-03-16T22:29:19-07:00	"The purpose of the ticket is be able to recompute plots such that the following problem can be solved

{{{

# to increase the range of axis does not extend the plots
# we need to recompute the plot to do that
var('x')
p = plot(x**,x)
p.set_axes_range(-10,10,-10,10)

}}}"	slosoi
4	sage-feature Release	6525	1400 days	[with patch, needs work] Enabling some GraphLatex options that were hard coded.	graph theory	enhancement	rlm	needs_work	2009-07-22T22:02:21-07:00	"Now that {{{latex(G)}}} has been enabled for combinatorial graphs,
some of the options in the graph latex class are still hard coded. Some of these options are now being enabled to have more control over the graph latex options.

Previously
{{{
sage: G.latex_options()
LaTeX options for Graph on 7 vertices: {'tkz_style': 'Normal'}
}}}

With the attached patch
{{{
sage: G.latex_options()
LaTeX options for Graph on 7 vertices: {'tkz_style': 'Normal', 'units': 'cm', 'labels': True, 
'layout': '', 'vertex_math': True}
}}}"	fidelbarrera
3	sage-pending Release	10849	139 days	behaviour of gamma strangely sensitive	symbolics	defect	burcin	needs_work	2013-01-03T13:30:12-08:00	"Whether you get the correct result or a spurious ValueError in evaluating some gamma expressions depends upon things it shouldn't.

This comes from [http://groups.google.com/group/sage-support/browse_thread/thread/3b7126c1a29db091# a sage-support thread]; I looked and couldn't find it here, but possibly it's a duplicate.  (I have bad luck with trac.)
See also [http://demo.sagenb.org/home/pub/66/ this worksheet].

Here's a relatively simple test case, in 4.6.1 and 4.6.2.rc0:

{{{
sage: x = var(""x"")
sage: f = exp(gamma(I*x-1/2).subs(x=I*x))
sage: g=f.operands()[0]
sage: g, type(g)
(gamma(-x - 1/2), <type 'sage.symbolic.expression.Expression'>)
sage: g(x=0)
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)

/Applications/sage_devel/<ipython console> in <module>()

/Applications/sage/local/lib/python2.6/site-packages/sage/symbolic/expression.so in sage.symbolic.expression.Expression.__call__ (sage/symbolic/expression.cpp:15657)()

/Applications/sage/local/lib/python2.6/site-packages/sage/symbolic/ring.so in sage.symbolic.ring.SymbolicRing._call_element_ (sage/symbolic/ring.cpp:6537)()

/Applications/sage/local/lib/python2.6/site-packages/sage/symbolic/expression.so in sage.symbolic.expression.Expression.substitute (sage/symbolic/expression.cpp:15036)()

/Applications/sage/local/lib/python2.6/site-packages/sage/symbolic/pynac.so in sage.symbolic.pynac.py_doublefactorial (sage/symbolic/pynac.cpp:9463)()

ValueError: argument must be >= -1
sage: g(x=0)
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
[ ... duplicate removed; this is merely to show it's not only the first call which has problems ]
ValueError: argument must be >= -1
sage: gamma(-x-1/2)*g
gamma(-x - 1/2)^2
sage: g(x=0)
-2*sqrt(pi)
}}}

That is, merely performing the should-be-irrelevant ""gamma(-x-1/2)*g"" op makes g(x=0) start working.  Instrumenting it shows that that py_doublefactorial gets a -3 the first time instead of the 1 it does the second time, but I couldn't quite follow the calling order to isolate the error.

Apply attachment:trac_10849-doctests.patch"	dsm
3	sage-pending Release	12039	161 days	Doctest sage.categories.action	doctest coverage	defect	mvngu	needs_work	2012-12-12T18:42:46-08:00	"Currently there are no doctests in this file.


----

Apply [attachment:12039_doctests.patch], [attachment:12039_outside.patch], [attachment:12039_example.patch], [attachment:12039_changes_v2.patch]"	roed
3	sage-pending Release	9937	485 days	PARI real precision is broken in many ways	interfaces	defect	was	needs_work	2012-01-23T13:49:24-08:00	"The following do not work as they should (try these examples with a freshly started copy of Sage, such that everything is default). 

This is definately a bug with the initialization of the precision:
{{{
# Default: 2 significant words (while we really should get only 1)
sage: pari('Pi').debug()
[&=0000000004fc9620] REAL(lg=4):0400000000000004 (+,expo=1):6000000000000001 c90fdaa22168c234 c4c6628b80dc1cd1

# Change precision and then change it back: we get 1 word
sage: n = pari.get_real_precision(); pari.set_real_precision(100); pari.set_real_precision(n);
sage: pari('Pi').debug()
[&=00000000012bf200] REAL(lg=3):0400000000000003 (+,expo=1):6000000000000001 c90fdaa22168c235
}}}

{{{set_real_precision()}}} seems to affect essentially only the precision for evaluating strings in PARI and not much else:
{{{
sage: pari.set_real_precision(50);
sage: pari('Euler')   # Precision changes
0.57721566490153286060651209008240243104215933593992
sage: pari.euler()    # Precision does NOT change
0.5772156649015328607
}}}

This last behaviour is actually documented in {{{sage/libs/pari/gen.pyx}}}:
> Unless otherwise indicated in the docstring, most Pari functions
> that return inexact objects use the precision of their arguments to
> decide the precision of the computation. However, if some of these
> arguments happen to be exact numbers (integers, rationals, etc.),
> an optional parameter indicates the precision (in bits) to which
> these arguments should be converted before the computation. If this
> precision parameter is missing, the '''default precision of 53 bits''' is
> used.

In other words, the default precision is an unchangable 53 bits. I would expect {{{set_real_precision()}}} to change this.  This is also trivial to implement since the global variable {{{prec}}} is already there (and initialized once and for all to 53)."	jdemeyer
3	sage-wishlist Release	2516	26 days	generalized hypergeometric functions should be implemented	symbolics	enhancement	cwitty	needs_work	2013-04-27T01:17:30-07:00	Sage should have support for [http://mathworld.wolfram.com/GeneralizedHypergeometricFunction.html generalized hypergeometric functions]. They are an important class of special functions. They show up everywhere from differential equations to binomial coefficient identities.	ddrake
3	sage-wishlist Release	13434	31 days	Listing elements in Cartesian Products for Sets	basic arithmetic	enhancement	Chris Berg	needs_work	2013-04-21T16:00:48-07:00	"Right now, CartesianProduct has no attribute 'list'. One would like to be able to index the elements of a Cartesian product. For instance:

{{{
S = Set([1,2])
C = S.cartesian_product(S)
C.list()
}}}"	chrisjamesberg
3	sage-wishlist Release	4986	641 days	[with patch, do not review] import audit class to sage/all.py	performance	enhancement	mabshoff	needs_work	2011-08-20T23:11:13-07:00	"It is currently way to easy to introduce circular imports in Sage, and a mess to try and hunt time down. An order in which things are imported is found in sage.all, but due to the cascade of imports in sage.misc (and elsewhere) this is not an accurate representation of what actually happens. This could stand to be cleaned up a lot. Ideally, little/none of sage.foo.* should be used before sage.foo.all is imported. 

This patch prints out imports as they happen, and where they're initiated. "	robertwb
3	sage-wishlist Release	7303	1082 days	Nash-William theorem on orientation of graph	graph theory	enhancement	rlm	needs_work	2010-06-06T03:59:26-07:00	"The Nash-William theorem on orientation of graphs is one ""best"" way to orient the edges of a graph without losing too much connectivity. It would be -- great -- to have it in Sage !!"	ncohen
3	sage-wishlist Release	7234	1284 days	Unit groups for finite fields (and more generally)	algebra	enhancement	tbd	needs_work	2009-11-15T07:48:54-08:00	"The attached patch implements unit groups for finite fields.  It is 
modelled on John Cremona's code for the unit groups of number fields.  One 
difference is that if F is a finite field,  while F.unit_group() yields 
the group of units (just as for a number field), F.unit_group(n) gives the 
group of n-th roots of unity.

I have designated it as ""needs work"" for two reasons:

1.  Both pieces of code deserve generalising to more general rings.  In
particular, Rob Beezer has
[http://groups.google.com/group/sage-devel/browse_thread/thread/4f903f830aed653d expressed] 
a need to have the group of units of the integers modulo n.

2.  There are certain aspects of the notation/terminology/implementation
that I am not totally happy with.  Maybe `F.unit_group(n)` is not such a
good idea.  Also it seems
odd that one has
{{{
sage: F.<g> = FiniteField(16)
sage: UF = F.unit_group()
sage: UF.gen()
g
sage: g in UF
True
}}}
but
{{{
sage: UF(g)
u
sage: UF(1 + g + g^3)
u^7
}}}
It's similar for number fields:
{{{
sage: K.<a> = NumberField(x^3 - 39*x - 91)
sage: UK = K.unit_group()
sage: UK.gens()
[-1, a^2 - 4*a - 22, a + 3]
sage: UK(a + 3)
u2
}}}
Note also that `UF(UF(g))` and `UK(UK(a + 3))` both lead to errors.

Deciding how to be more consistent probably needs to be done at a more
general level and will most likely best be done by introducing a class
`UnitGroupElement` based (for commutative rings anyway) on
`AbelianGroupElement`, something that has been avoided in the finite field
and number field cases.
"	fwclarke
3	sage-wishlist Release	5615	1519 days	[with patch, not ready for review] use labels-as-values for fast_callable under gcc	basic arithmetic	enhancement	cwitty	needs_work	2009-03-25T23:55:34-07:00	"This patch uses gcc's labels-as-values extension to (theoretically) speed up the instruction dispatch.  Unfortunately, on my 32-bit x86 laptop, it's about the same speed as before the patch (maybe a little slower).  I think this is due to poor instruction scheduling (that gcc can't fix with -fno-strict-aliasing), but trying to move the instructions around by hand makes the problem worse (it adds register pressure, which makes the register allocator do very bad things on 32-bit x86).

Doctests do NOT pass, and the patch is not fully documented. (I believe the patch works; the doctests that fail are looking at fast_callable internals that changed.) "	cwitty
3	sage-wishlist Release	5614	1519 days	[with patch, not ready for review] add top-of-stack caching for fast_callable	basic arithmetic	enhancement	somebody	needs_work	2009-03-25T21:22:58-07:00	"Top-of-stack caching is a standard optimization for stack interpreters; it typically significantly reduces the number of memory loads/stores.  This patch adds top-of-stack caching for the fast_callable float/RDF interpreter.

Unfortunately, on my machine (32-bit x86, with Debian's gcc-4.3 version 4.3.3-3), this interacts poorly with gcc's register allocation heuristics, so the resulting interpreter is actually slower than before the patch.

Doctests do NOT pass, and the patch is not fully documented.  (I believe the patch works; the doctests that fail are looking at fast_callable internals that changed.)"	cwitty
4	sage-wishlist Release	8342	658 days	Efficient Arbitrary Sequence Generator	numerical	enhancement	colah	needs_work	2011-08-03T12:41:44-07:00	"{{{
def construct_sequence(base,f):
    """"""
    Returns a function that gives sequence terms, building off past calls.
    
    Input:
       - `base` -- the base case(s) of the sequence.
       - `f`    -- the recursive description of the sequence; it takes a sequence referencing function and returns a function that will, given n, return the nth term.

    Output:
       A function that, given n, returns the nth term in the sequence.
    
    Examples:
       sage: fib = construct_sequence([1,1], lambda t: lambda n : t(n-1) + t(n-2)) #The Fibonacci sequence

       sage: hof = construct_sequence([1,1], lambda t: lambda n : t(n-t(n-1)) + t(n-t(n-2))) #The Hofstadter Q sequence
       sage: [hof(n) for n in range(100)] # List of 100 terms
    """"""
    b = {}
    for i in range(len(base)):
        b[i] = base[i]
    def get_term(n):
        if n in b.keys(): return b[n]
        else:
            b[n] = f(get_term)(n)
            return b[n]
    return get_term
}}}
"	colah
