Sage: Ticket #7644: generic power series reversion
https://trac.sagemath.org/ticket/7644
<p>
From this <a class="ext-link" href="http://groups.google.com/group/sage-support/browse_thread/thread/34fdf02add8100b6"><span class="icon"></span>sage-support</a> thread: Make the following work over any base ring:
</p>
<pre class="wiki">sage: R.<x> = QQ[[]]
sage: f = 1/(1-x) - 1; f
x + x^2 + x^3 + x^4 + x^5 + x^6 + x^7 + x^8 + x^9 + x^10 + x^11 + x^12
+ x^13 + x^14 + x^15 + x^16 + x^17 + x^18 + x^19 + O(x^20)
sage: g = f.reversion(); g
x - x^2 + x^3 - x^4 + x^5 - x^6 + x^7 - x^8 + x^9 - x^10 + x^11 - x^12
+ x^13 - x^14 + x^15 - x^16 + x^17 - x^18 + x^19 + O(x^20)
sage: f(g)
x + O(x^20)
</pre><p>
Matt Bainbridge says about power series reversion, which uses pari in some cases, and maybe isn't there in others:
</p>
<pre class="wiki">Its easy enough to code this in sage. This seems to work over any
field:
def ps_inverse(f):
if f.prec() is infinity:
raise ValueError, "series must have finite precision for
reversion"
if f.valuation() != 1:
raise ValueError, "series must have valuation one for
reversion"
t = parent(f).gen()
a = 1/f.coefficients()[0]
g = a*t
for i in range(2, f.prec()):
g -= ps_coefficient((f + O(t^(i+1)))(g),i)*a*t^i
g += O(t^f.prec())
return g
def ps_coefficient(f,i):
if i >= f.prec():
raise ValueError, "that coefficient is undefined"
else:
return f.padded_list(f.prec())[i]
</pre><h2 id="Apply">Apply</h2>
<ol><li><a class="attachment" href="https://trac.sagemath.org/attachment/ticket/7644/trac_7644_reversion_lagrange_6.patch" title="Attachment 'trac_7644_reversion_lagrange_6.patch' in Ticket #7644">trac_7644_reversion_lagrange_6.patch</a><a class="trac-rawlink" href="https://trac.sagemath.org/raw-attachment/ticket/7644/trac_7644_reversion_lagrange_6.patch" title="Download"></a>
</li></ol>en-usSagehttps://trac.sagemath.org/chrome/site/logo_sagemath_trac.png
https://trac.sagemath.org/ticket/7644
Trac 1.2Minh Van NguyenWed, 09 Dec 2009 20:41:50 GMTdescription changed
https://trac.sagemath.org/ticket/7644#comment:1
https://trac.sagemath.org/ticket/7644#comment:1
<ul>
<li><strong>description</strong>
modified (<a href="/ticket/7644?action=diff&version=1">diff</a>)
</li>
</ul>
TicketFrancis ClarkeThu, 10 Dec 2009 10:42:26 GMT
https://trac.sagemath.org/ticket/7644#comment:2
https://trac.sagemath.org/ticket/7644#comment:2
<p>
Lagrange inversion is significantly faster. With
</p>
<pre class="wiki">def ps_inverse_Lagrange(f):
if f.valuation() != 1:
raise ValueError, "series must have valuation one for reversion"
if f.prec() is infinity:
raise ValueError, "series must have finite precision for reversion"
t = parent(f).gen()
h = t/f
k = 1
g = 0
for i in range(1, f.prec()):
k *= h
g += (1/i)*ps_coefficient(k, i - 1)*t^i
g += O(t^f.prec())
return g
</pre><p>
I found
</p>
<pre class="wiki">sage: R.<x> = QQ[[]]
sage: f = exp(x) - 1
sage: timeit('ps_inverse(f)')
5 loops, best of 3: 552 ms per loop
sage: timeit('ps_inverse_Lagrange(f)')
5 loops, best of 3: 74 ms per loop
</pre>
TicketWilliam SteinFri, 25 Dec 2009 18:09:03 GMT
https://trac.sagemath.org/ticket/7644#comment:3
https://trac.sagemath.org/ticket/7644#comment:3
<pre class="wiki">The code doesn't quite run, since it references some other function
(ps_coefficient); here's an updated version which uses only built-in
functions:
def ps_inverse_Lagrange(f):
if f.valuation() != 1:
raise ValueError, "series must have valuation one for
reversion"
if f.prec() is infinity:
raise ValueError, "series must have finite precision for
reversion"
t = parent(f).gen()
h = t/f
k = 1
g = 0
for i in range(1, f.prec()):
k *= h
g += (1/i)*k.padded_list(i)[i - 1]*t^i
g += O(t^f.prec())
return g
</pre>
TicketAlex GhitzaFri, 29 Jan 2010 11:08:59 GMT
https://trac.sagemath.org/ticket/7644#comment:4
https://trac.sagemath.org/ticket/7644#comment:4
<p>
What should we do with power series with coefficients in, say, ZZ? Raise an error, or return a power series over the fraction field?
</p>
TicketFrancis ClarkeSat, 30 Jan 2010 10:35:26 GMT
https://trac.sagemath.org/ticket/7644#comment:5
https://trac.sagemath.org/ticket/7644#comment:5
<p>
Replying to <a class="ticket" href="https://trac.sagemath.org/ticket/7644#comment:4" title="Comment 4">AlexGhitza</a>:
</p>
<blockquote class="citation">
<p>
What should we do with power series with coefficients in, say, ZZ? Raise an error, or return a power series over the fraction field?
</p>
</blockquote>
<p>
In general, return a power series over the fraction field. But if the leading coefficient is a unit, then despite the fact that Lagrange inversion involves division, the inverse series has coefficients in the same ring as the original series. E.g., with the function defined in <a class="ticket" href="https://trac.sagemath.org/ticket/7644#comment:3" title="Comment 3">was</a>,
</p>
<pre class="wiki">sage: PS.<t> = ZZ[[]]
sage: f = t + t^2 + O(t^10)
sage: ps_inverse_Lagrange(f)
t - t^2 + 2*t^3 - 5*t^4 + 14*t^5 - 42*t^6 + 132*t^7 - 429*t^8 + 1430*t^9 + O(t^10)
</pre><p>
though
</p>
<pre class="wiki">sage: ps_inverse_Lagrange(f).parent()
Power Series Ring in t over Rational Field
</pre><p>
Over a ring of finite characteristic, to use Lagrange inversion, you have to lift to a ring of characteristic zero, invert, and then project down to the original ring.
</p>
TicketNiles JohnsonThu, 08 Jul 2010 19:45:18 GMTstatus changed
https://trac.sagemath.org/ticket/7644#comment:6
https://trac.sagemath.org/ticket/7644#comment:6
<ul>
<li><strong>status</strong>
changed from <em>new</em> to <em>needs_review</em>
</li>
</ul>
<p>
I've uploaded a patch which implements ps_inverse_Lagrange from above. For simplicity, I didn't implement over rings of positive characteristic, or in the case that the leading coefficient is not a unit. Instead, I included examples of changing the base ring and carrying out the reversion there.
</p>
<p>
Note: the line
</p>
<pre class="wiki">g += (1/i)*k....
</pre><p>
gave me some trouble, since I didn't realize .pyx files use python's integer division; someone who understands the implicit conversions between sage and python might want to check I dealt with that correctly. It now reads:
</p>
<pre class="wiki">g += k.padded_list(i)[i - 1]/i*t**i
</pre><p>
and works fine in all my tests.
</p>
TicketNiles JohnsonSun, 01 Aug 2010 16:22:26 GMTkeywords, cc, author set
https://trac.sagemath.org/ticket/7644#comment:7
https://trac.sagemath.org/ticket/7644#comment:7
<ul>
<li><strong>keywords</strong>
<em>lagrange</em> <em>reversion</em> added
</li>
<li><strong>cc</strong>
<em>Francis Clarke</em> added
</li>
<li><strong>author</strong>
set to <em>niles</em>
</li>
</ul>
<p>
Replying to <a class="ticket" href="https://trac.sagemath.org/ticket/7644#comment:2" title="Comment 2">fwclarke</a>:
</p>
<p>
Hi Francis,
</p>
<p>
You may be interested in reviewing this patch since it's based on your code. I believe it will be an easy review.
</p>
<p>
best,
Niles
</p>
TicketNiles JohnsonTue, 30 Nov 2010 18:30:49 GMTdescription, author changed
https://trac.sagemath.org/ticket/7644#comment:8
https://trac.sagemath.org/ticket/7644#comment:8
<ul>
<li><strong>description</strong>
modified (<a href="/ticket/7644?action=diff&version=8">diff</a>)
</li>
<li><strong>author</strong>
changed from <em>niles</em> to <em>Niles Johnson</em>
</li>
</ul>
TicketNiles JohnsonTue, 30 Nov 2010 19:17:50 GMT
https://trac.sagemath.org/ticket/7644#comment:9
https://trac.sagemath.org/ticket/7644#comment:9
<p>
The latest version of this patch applies cleanly to sage 4.6.1.alpha2 and passes all (-long) doctests. It also adds <code>power_series_poly</code> to the sage documentation, and makes some minor changes so that all documentation builds cleanly.
</p>
TicketFrancis ClarkeTue, 30 Nov 2010 21:20:52 GMT
https://trac.sagemath.org/ticket/7644#comment:10
https://trac.sagemath.org/ticket/7644#comment:10
<p>
I've been looking at this. One concern is that for power series with rational coefficients the existing method using pari is a great deal faster, so that at least in this case the pari method should be retained. Strangely the existing method fails for integer power series, though pari handles them perfectly ok.
</p>
<p>
On investigation it turns out that it is the conversion to pari which is failing and that this problem is pointed out in modular/overconvergent/genus0.py, and raised as <a class="closed ticket" href="https://trac.sagemath.org/ticket/4376" title="#4376: enhancement: Implement conversion of power series over more rings (e.g. GF(p)) to pari (closed: fixed)">#4376</a>. I have produced a short patch (awaiting review) which extends the range of base rings over which pari conversion of a power series is possible.
</p>
<p>
What I propose then is that a revised patch (depending on the <a class="closed ticket" href="https://trac.sagemath.org/ticket/4376" title="#4376: enhancement: Implement conversion of power series over more rings (e.g. GF(p)) to pari (closed: fixed)">#4376</a> patch) should try to use pari and that only if this fails should the Lagrange inversion code be used.
</p>
<p>
I also think it is sensible to be able to revert infinite precision series, either by specifying the desired precision or by using the parent's default precision.
</p>
TicketNiles JohnsonWed, 01 Dec 2010 02:31:45 GMTattachment set
https://trac.sagemath.org/ticket/7644
https://trac.sagemath.org/ticket/7644
<ul>
<li><strong>attachment</strong>
set to <em>trac_7644_reversion_lagrange_3.patch</em>
</li>
</ul>
<p>
apply only this patch; tries to use pari first, then falls back to Lagrange inversion
</p>
TicketNiles JohnsonWed, 01 Dec 2010 02:44:53 GMTdescription changed
https://trac.sagemath.org/ticket/7644#comment:11
https://trac.sagemath.org/ticket/7644#comment:11
<ul>
<li><strong>description</strong>
modified (<a href="/ticket/7644?action=diff&version=11">diff</a>)
</li>
</ul>
<p>
Replying to <a class="ticket" href="https://trac.sagemath.org/ticket/7644#comment:10" title="Comment 10">fwclarke</a>:
</p>
<blockquote class="citation">
<p>
I've been looking at this.
</p>
</blockquote>
<p>
Thanks!
</p>
<blockquote class="citation">
<p>
One concern is that for power series with rational coefficients the existing method using pari is a great deal faster, so that at least in this case the pari method should be retained.
</p>
</blockquote>
<p>
Yes, especially if there is work in progress to support converting more rings to pari. I wrote a revised patch which first attempts to convert to pari and do reversion there, and then tries the Lagrange inversion if conversion to pari fails. I think that implementation means that this patch can be independent of <a class="closed ticket" href="https://trac.sagemath.org/ticket/4376" title="#4376: enhancement: Implement conversion of power series over more rings (e.g. GF(p)) to pari (closed: fixed)">#4376</a> -- it will simply perform better when that patch is included.
</p>
<blockquote class="citation">
<p>
I also think it is sensible to be able to revert infinite precision series, either by specifying the desired precision or by using the parent's default precision.
</p>
</blockquote>
<p>
Yes, upon further consideration I agree. I've made this and two other improvements:
</p>
<ol><li>Given a power series with infinite precision and degree <code>deg</code>, it's reversion is computed with precision <code>deg + 1</code>.
</li><li>Given a power series whose leading coefficient is not a unit, the code tries to pass to the fraction field of the base ring and compute the reversion there.
</li><li>Given a power series over a base ring of positive characteristic, the code tries to lift to a characteristic zero base (using <code>.lift()</code>), compute the reversion, and then push back down to the positive characteristic base. This works over finite fields and <code>Zmod(n)</code>, but fails over a base ring like <code>Zmod(n)[x]</code>.
</li></ol><p>
Each of these is demonstrated with an example.
</p>
TicketDavid KirkbyWed, 01 Dec 2010 02:50:07 GMT
https://trac.sagemath.org/ticket/7644#comment:12
https://trac.sagemath.org/ticket/7644#comment:12
<p>
Is it sensible to remove the first 3 patches - if so, I can do so, as I have admin rights.
</p>
<p>
Have all the results been verified by independent means? If so, it would be useful to state how. If not, then I personally don't agree with such "tests", but as a minimum it should be documented if the results have not been verified.
</p>
<p>
As for the actual maths, I can't review that - this is well outside my level of maths, since none of my degrees are in maths
</p>
<p>
Dave
</p>
TicketNiles JohnsonWed, 01 Dec 2010 13:23:00 GMT
https://trac.sagemath.org/ticket/7644#comment:13
https://trac.sagemath.org/ticket/7644#comment:13
<p>
Replying to <a class="ticket" href="https://trac.sagemath.org/ticket/7644#comment:12" title="Comment 12">drkirkby</a>:
</p>
<blockquote class="citation">
<p>
Is it sensible to remove the first 3 patches - if so, I can do so, as I have admin rights.
</p>
</blockquote>
<p>
Sure; thanks :)
</p>
<blockquote class="citation">
<p>
Have all the results been verified by independent means? If so, it would be useful to state how. If not, then I personally don't agree with such "tests", but as a minimum it should be documented if the results have not been verified.
</p>
</blockquote>
<p>
The verifications are performed by checking that <code>f(g)</code> and <code>g(f)</code> both return <code>x + O(x^prec)</code>. Actually just one of these is necessary to determine the reversion of f, so I view this as two different methods for verifying the answer.
</p>
<blockquote class="citation">
<p>
As for the actual maths, I can't review that - this is well outside my level of maths, since none of my degrees are in maths
</p>
</blockquote>
<p>
Thanks for checking into it :)
</p>
TicketFrancis ClarkeWed, 01 Dec 2010 21:10:51 GMT
https://trac.sagemath.org/ticket/7644#comment:14
https://trac.sagemath.org/ticket/7644#comment:14
<p>
Replying to <a class="ticket" href="https://trac.sagemath.org/ticket/7644#comment:11" title="Comment 11">niles</a>:
</p>
<blockquote class="citation">
<p>
Yes, especially if there is work in progress to support converting more rings to pari. I wrote a revised patch which first attempts to convert to pari and do reversion there, and then tries the Lagrange inversion if conversion to pari fails. I think that implementation means that this patch can be independent of <a class="closed ticket" href="https://trac.sagemath.org/ticket/4376" title="#4376: enhancement: Implement conversion of power series over more rings (e.g. GF(p)) to pari (closed: fixed)">#4376</a> -- it will simply perform better when that patch is included.
</p>
</blockquote>
<p>
A good point (but it would be nice if <a class="closed ticket" href="https://trac.sagemath.org/ticket/4376" title="#4376: enhancement: Implement conversion of power series over more rings (e.g. GF(p)) to pari (closed: fixed)">#4376</a> could be reviewed; it's very short).
</p>
<blockquote class="citation">
<blockquote class="citation">
<p>
I also think it is sensible to be able to revert infinite precision series, either by specifying the desired precision or by using the parent's default precision.
</p>
</blockquote>
<p>
Yes, upon further consideration I agree. I've made this and two other improvements: 1. Given a power series with infinite precision and degree <code>deg</code>, its reversion is computed with precision <code>deg + 1</code>.
</p>
</blockquote>
<p>
I don't see the logic for this. I would suggest having a keyword <code>precision</code> with default <code>None</code>, and replacing
</p>
<pre class="wiki"> if f.prec() is infinity:
out_prec = f.degree() + 1
f = f.add_bigoh(out_prec)
else:
out_prec = f.prec()
</pre><p>
with
</p>
<pre class="wiki"> if f.prec() is infinity and precision is None:
precision = f.parent().default_prec()
if precision:
f = f.add_bigoh(precision)
</pre><p>
Then one could do (to get some Catalan numbers):
</p>
<pre class="wiki">sage: R.<x> = QQ[[]]
sage: (x - x^2).reversion()
x + x^2 + 2*x^3 + 5*x^4 + 14*x^5 + 42*x^6 + 132*x^7 + 429*x^8
+ 1430*x^9 + 4862*x^10 + 16796*x^11 + 58786*x^12 + 208012*x^13
+ 742900*x^14 + 2674440*x^15 + 9694845*x^16 + 35357670*x^17
+ 129644790*x^18 + 477638700*x^19 + O(x^20)
</pre><p>
or
</p>
<pre class="wiki">sage: (x - x^2).reversion(precision=8)
x + x^2 + 2*x^3 + 5*x^4 + 14*x^5 + 42*x^6 + 132*x^7 + O(x^8)
</pre><p>
rather than
</p>
<pre class="wiki">sage: (x - x^2).reversion()
x + x^2 + O(x^3)
</pre>
TicketNiles JohnsonThu, 02 Dec 2010 17:02:52 GMTattachment set
https://trac.sagemath.org/ticket/7644
https://trac.sagemath.org/ticket/7644
<ul>
<li><strong>attachment</strong>
set to <em>trac_7644_reversion_lagrange_4.patch</em>
</li>
</ul>
<p>
apply only this patch; choice for default precision improved
</p>
TicketNiles JohnsonThu, 02 Dec 2010 17:06:12 GMTdescription changed
https://trac.sagemath.org/ticket/7644#comment:15
https://trac.sagemath.org/ticket/7644#comment:15
<ul>
<li><strong>description</strong>
modified (<a href="/ticket/7644?action=diff&version=15">diff</a>)
</li>
</ul>
<p>
Replying to <a class="ticket" href="https://trac.sagemath.org/ticket/7644#comment:14" title="Comment 14">fwclarke</a>:
</p>
<blockquote class="citation">
<p>
Replying to <a class="ticket" href="https://trac.sagemath.org/ticket/7644#comment:11" title="Comment 11">niles</a>:
</p>
</blockquote>
<blockquote class="citation">
<p>
A good point (but it would be nice if <a class="closed ticket" href="https://trac.sagemath.org/ticket/4376" title="#4376: enhancement: Implement conversion of power series over more rings (e.g. GF(p)) to pari (closed: fixed)">#4376</a> could be reviewed; it's very short).
</p>
</blockquote>
<p>
agreed -- I'll add it to my list
</p>
<blockquote class="citation">
<p>
I don't see the logic for this. I would suggest ...
</p>
</blockquote>
<p>
that's a better idea; it's implemented in the new patch
</p>
TicketFrancis ClarkeThu, 02 Dec 2010 18:25:52 GMT
https://trac.sagemath.org/ticket/7644#comment:16
https://trac.sagemath.org/ticket/7644#comment:16
<p>
This is looking good. Some comments on the docstring:
</p>
<pre class="wiki">If f has infinite precision, then the precision
of the reversion defaults to the default precision of
``f.parent()``.
</pre><p>
should say "unless precision is set", or words to that effect.
</p>
<p>
The remark a few lines later that
</p>
<pre class="wiki">self must have finite precision (i.e. this cannot be done
for polynomials).
</pre><p>
is no longer appropriate. Nor is
</p>
<pre class="wiki">Under the current implementation, the leading
coefficient must be a unit in the base ring, and the base ring must
have characteristic zero.
</pre><p>
I'm not sure that
</p>
<pre class="wiki">In positive characteristic, attempt first to lift to characteristic
zero and perform the reversion there:
</pre><p>
is in the right place; it's really to do with the algorithm. Perhaps better to say here that the function can handle some base rings of non-zero characteristic.
</p>
TicketNiles JohnsonSat, 04 Dec 2010 17:21:45 GMT
https://trac.sagemath.org/ticket/7644#comment:17
https://trac.sagemath.org/ticket/7644#comment:17
<p>
Replying to <a class="ticket" href="https://trac.sagemath.org/ticket/7644#comment:16" title="Comment 16">fwclarke</a>:
</p>
<blockquote class="citation">
<p>
This is looking good. Some comments on the docstring:
</p>
</blockquote>
<p>
...
</p>
<p>
Sorry for not catching these before; fixed now.
</p>
TicketFrancis ClarkeFri, 17 Dec 2010 09:36:47 GMTstatus changed
https://trac.sagemath.org/ticket/7644#comment:18
https://trac.sagemath.org/ticket/7644#comment:18
<ul>
<li><strong>status</strong>
changed from <em>needs_review</em> to <em>needs_work</em>
</li>
</ul>
<p>
This is fine now, except for one little thing. In the patch file, the line
</p>
<pre class="wiki">+ most ``f.prec()). If f has infinite precision, and the argument
</pre><p>
should read
</p>
<pre class="wiki">+ most ``f.prec())``. If ``f`` has infinite precision, and the argument
</pre>
TicketNiles JohnsonFri, 17 Dec 2010 11:58:45 GMTstatus, description changed
https://trac.sagemath.org/ticket/7644#comment:19
https://trac.sagemath.org/ticket/7644#comment:19
<ul>
<li><strong>status</strong>
changed from <em>needs_work</em> to <em>needs_review</em>
</li>
<li><strong>description</strong>
modified (<a href="/ticket/7644?action=diff&version=19">diff</a>)
</li>
</ul>
<p>
Thanks for catching that -- fixed now.
</p>
TicketFrancis ClarkeFri, 17 Dec 2010 12:11:02 GMTstatus changed; reviewer set
https://trac.sagemath.org/ticket/7644#comment:20
https://trac.sagemath.org/ticket/7644#comment:20
<ul>
<li><strong>status</strong>
changed from <em>needs_review</em> to <em>positive_review</em>
</li>
<li><strong>reviewer</strong>
set to <em>Francis Clarke</em>
</li>
</ul>
<p>
Now it's perfect. Positive review.
</p>
TicketJeroen DemeyerFri, 17 Dec 2010 14:12:13 GMTmilestone changed
https://trac.sagemath.org/ticket/7644#comment:21
https://trac.sagemath.org/ticket/7644#comment:21
<ul>
<li><strong>milestone</strong>
changed from <em>sage-4.6.1</em> to <em>sage-4.6.2</em>
</li>
</ul>
TicketJeroen DemeyerThu, 13 Jan 2011 06:39:38 GMTstatus changed
https://trac.sagemath.org/ticket/7644#comment:22
https://trac.sagemath.org/ticket/7644#comment:22
<ul>
<li><strong>status</strong>
changed from <em>positive_review</em> to <em>needs_work</em>
</li>
</ul>
<p>
You should change the commit message of the patch (use <code>hg qrefresh -e</code> for that). Make sure you include the ticket number.
</p>
TicketNiles JohnsonThu, 13 Jan 2011 12:02:08 GMTattachment set
https://trac.sagemath.org/ticket/7644
https://trac.sagemath.org/ticket/7644
<ul>
<li><strong>attachment</strong>
set to <em>trac_7644_reversion_lagrange_5.patch</em>
</li>
</ul>
<p>
apply only this patch
</p>
TicketNiles JohnsonThu, 13 Jan 2011 12:02:45 GMTstatus changed
https://trac.sagemath.org/ticket/7644#comment:23
https://trac.sagemath.org/ticket/7644#comment:23
<ul>
<li><strong>status</strong>
changed from <em>needs_work</em> to <em>needs_review</em>
</li>
</ul>
<p>
done.
</p>
TicketFrancis ClarkeThu, 13 Jan 2011 13:55:01 GMTstatus changed
https://trac.sagemath.org/ticket/7644#comment:24
https://trac.sagemath.org/ticket/7644#comment:24
<ul>
<li><strong>status</strong>
changed from <em>needs_review</em> to <em>positive_review</em>
</li>
</ul>
<p>
commit message ok now
</p>
TicketJeroen DemeyerWed, 19 Jan 2011 01:26:42 GMTstatus changed
https://trac.sagemath.org/ticket/7644#comment:25
https://trac.sagemath.org/ticket/7644#comment:25
<ul>
<li><strong>status</strong>
changed from <em>positive_review</em> to <em>needs_work</em>
</li>
</ul>
<p>
There are some formatting errors in the docstrings (a <code>::</code> should be followed by indented code, there are some places where this is violated). I can fix these, but later.
</p>
TicketNiles JohnsonWed, 19 Jan 2011 12:55:51 GMT
https://trac.sagemath.org/ticket/7644#comment:26
https://trac.sagemath.org/ticket/7644#comment:26
<p>
My apologies -- I'll upload a fixed version soon.
</p>
TicketNiles JohnsonWed, 19 Jan 2011 13:24:56 GMTattachment set
https://trac.sagemath.org/ticket/7644
https://trac.sagemath.org/ticket/7644
<ul>
<li><strong>attachment</strong>
set to <em>trac_7644_reversion_lagrange_6.patch</em>
</li>
</ul>
<p>
apply only this patch
</p>
TicketNiles JohnsonWed, 19 Jan 2011 13:27:47 GMTstatus, description changed
https://trac.sagemath.org/ticket/7644#comment:27
https://trac.sagemath.org/ticket/7644#comment:27
<ul>
<li><strong>status</strong>
changed from <em>needs_work</em> to <em>needs_review</em>
</li>
<li><strong>description</strong>
modified (<a href="/ticket/7644?action=diff&version=27">diff</a>)
</li>
</ul>
<p>
The documentation issue is fixed now -- all documentation builds without warnings.
</p>
TicketJeroen DemeyerWed, 19 Jan 2011 16:43:58 GMTstatus changed
https://trac.sagemath.org/ticket/7644#comment:28
https://trac.sagemath.org/ticket/7644#comment:28
<ul>
<li><strong>status</strong>
changed from <em>needs_review</em> to <em>positive_review</em>
</li>
</ul>
<p>
Replying to <a class="ticket" href="https://trac.sagemath.org/ticket/7644#comment:27" title="Comment 27">niles</a>:
</p>
<blockquote class="citation">
<p>
The documentation issue is fixed now -- all documentation builds without warnings.
</p>
</blockquote>
<p>
Agreed.
</p>
TicketJeroen DemeyerWed, 19 Jan 2011 22:19:24 GMTstatus changed; resolution, merged set
https://trac.sagemath.org/ticket/7644#comment:29
https://trac.sagemath.org/ticket/7644#comment:29
<ul>
<li><strong>status</strong>
changed from <em>positive_review</em> to <em>closed</em>
</li>
<li><strong>resolution</strong>
set to <em>fixed</em>
</li>
<li><strong>merged</strong>
set to <em>sage-4.6.2.alpha1</em>
</li>
</ul>
Ticket