#16137: lazy_list from various input data
-------------------------------------------------+-------------------------
       Reporter:  MatthieuDien                   |        Owner:
           Type:  enhancement                    |       Status:  new
       Priority:  major                          |    Milestone:  sage-6.2
      Component:  misc                           |   Resolution:
       Keywords:  LazyPowerSeries, lazy_list,    |    Merged in:
  days57                                         |    Reviewers:
        Authors:  Vincent Delecroix, Matthieu    |  Work issues:
  Dien                                           |       Commit:
Report Upstream:  N/A                            |     Stopgaps:
         Branch:                                 |
   Dependencies:                                 |
-------------------------------------------------+-------------------------

Old description:

> The current `sage.misc.lazy_list` only deals with infinite list built
> from iterator.
> In concrete situation (as in #15673) we want to create infinite list from
> :
> - iterator
> - a function that given `n` computes the `n`-th term (also called closed
> form)
> - a function which updates a buffer of already computed values (for
> example : Newton iteration, relaxed multiplication, ...)
> - an ultimatey periodic list (from a pre-period and a period)
> - entries generated by functions (rational o.g.f. #15714, hypergeometric
> e.g.f. part of #2516)

New description:

 The current `sage.misc.lazy_list` only dealt with infinite list built from
 iterator.
 In concrete situation we want to create infinite list from :
 - '''an iterator'''
 - '''an update function''': a function that given a buffer of already
 computed values compute some extra terms. This includes (for example :
 Newton iteration, relaxed multiplication, ...)
 - '''a pair of lists (pre-period,period)''' that defines an ultimately
 periodic infinite sequence
 Those new lazy lists aim to be very basic Python objects. Their purpose is
 to be used as fast and reliable data structure in:
  - words (`sage.combinat.words`)
  - continued fraction expansions/binary expansions of real numbers
  - lazy power series (see #15673)
  - ...

 See also: rational o.g.f. #15714, hypergeometric e.g.f. part of #2516

--

Comment (by vdelecroix):

 Replying to [comment:5 mantepse]:
 > I don't think it is a good design decision to have `lazy_list` include
 functionality that really belong to formal power series or recursive
 sequences.  I think that this is one of the things Axiom/FriCAS really got
 right: there is one class (in Axiom-parlance: `Stream`) which does not
 require any functionality from the elements.  Formal power series and
 sequences then use this class, and allow access to it via a method
 `coefficients`.
 >
 > In any case, there is quite a large interesting hierarchy of formal
 power series and sequences, and it is in my opinion a very bad idea to
 single out rational or hypergeometric functions.
 >
 > Note that I am not at all against functionality that allows to define
 lazy lists recursively (on the contrary!), just please do not limit it to
 sequences built of numbers then.

 Hey Martin,

 There is no way `lazy_list` would be made only of numbers! My first goal
 was to have better data structure for words (`sage.combinat.words`). I
 also had in mind its usage in lazy power series. Do you prefer the new
 description? Please edit it if there is something wrong. The concrete
 implementation did not start yet. We are waiting for the best possible
 specifications...

--
Ticket URL: <http://trac.sagemath.org/ticket/16137#comment:6>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to