Ticket #13530 (closed defect: fixed)
Hide sage/gsl/interpolation/Spline internals
| Reported by: | jvkersch | Owned by: | jason, jkantor |
|---|---|---|---|
| Priority: | major | Milestone: | sage-5.5 |
| Component: | numerical | Keywords: | spline, gsl |
| Cc: | kcrisman | Work issues: | |
| Report Upstream: | N/A | Reviewers: | Travis Scrimshaw |
| Authors: | Joris Vankerschaver | Merged in: | sage-5.5.beta2 |
| Dependencies: | #13519, #13520 | Stopgaps: |
Description (last modified by jvkersch) (diff)
The list member function of sage.gsl.interpolation.Spline returns a reference to the spline interpolation points, allowing one to change these points without having the spline be recomputed:
sage: s = spline([(0, 0), (1, 2), (2, 4)]); s [(0, 0), (1, 2), (2, 4)] sage: s(1) 2.0 sage: s.list()[1] = (1, 100); s [(0, 0), (1, 100), (2, 4)] sage: s(1) 2.0
Attachments
Change History
comment:3 Changed 8 months ago by jvkersch
- Status changed from new to needs_review
- Dependencies set to #13519, #13520
- Authors set to Joris Vankerschaver
The patch modifies the list method to return a copy of the interpolation points, as discussed at https://groups.google.com/d/topic/sage-devel/61t8kUyN8L8/discussion
comment:4 Changed 8 months ago by tscrim
Could you change the doctest to show that the list is a copy such as
sage: S = spline([(1,1), (2,3), (4,5)]) sage: L = S.list(); L [(1, 1), (2, 3), (4, 5)] sage: L[2] = (3, 2) sage: L [(1, 1), (2, 3), (3, 2)] sage: S.list() [(1, 1), (2, 3), (4, 5)]
showing the change and testing it (in a TEST:: block), as well as coping a form of what is in the trac description into the method description?
Edit: Functionally it is good.
comment:5 Changed 7 months ago by jvkersch
Thanks for the addendum and sorry for the long wait. I've added the example to the docstring as you requested and moved things around a bit. Is there any difference between starting an example block with TESTS:: versus EXAMPLES::?
comment:6 Changed 7 months ago by tscrim
- Status changed from needs_review to positive_review
- Reviewers set to Travis Scrimshaw
A TESTS:: block is when something is not an example per say, but used in showing some bug has been fixed.
Looks good to me.

