Add note that the lapack package needs to loaded to get the functions.
[maxima.git] / doc / info / ggf.texi
blobff7075bf45c9469f17e5962e75b980b082d39af0
1 @menu
2 * Functions and Variables for ggf::
3 @end menu
5 @node Functions and Variables for ggf,  , Package ggf, Package ggf
6 @section Functions and Variables for ggf
8 @defvr {Option variable} GGFINFINITY
9 Default value: 3
11 This is an option variable for function @code{ggf}.
13 When computing the continued fraction of the
14 generating function, a partial quotient having a degree
15 (strictly) greater than @var{GGFINFINITY} will be discarded and
16 the current convergent will be considered as the exact value
17 of the generating function; most often the degree of all
18 partial quotients will be 0 or 1; if you use a greater value,
19 then you should give enough terms in order to make the
20 computation accurate enough.
23 See also @mref{ggf}.
25 @opencatbox{Categories:}
26 @category{Package ggf}
27 @closecatbox
29 @end defvr
32 @defvr {Option variable} GGFCFMAX
33 Default value: 3
35 This is an option variable for function @code{ggf}.
37 When computing the continued fraction of the
38 generating function, if no good result has been found (see
39 the @var{GGFINFINITY} flag) after having computed @var{GGFCFMAX} partial
40 quotients, the generating function will be considered as
41 not being a fraction of two polynomials and the function will
42 exit. Put freely a greater value for more complicated
43 generating functions.
45 See also @mref{ggf}.
47 @opencatbox{Categories:}
48 @category{Package ggf}
49 @closecatbox
51 @end defvr
53 @anchor{ggf}
54 @deffn {Function} ggf (@var{l})
55 Compute the generating function (if it is a fraction of two
56 polynomials) of a sequence, its first terms being given. @var{l}
57 is a list of numbers.
59 The solution is returned as a fraction of two polynomials.
60 If no solution has been found, it returns with @code{done}.
62 This function is controlled by global variables @var{GGFINFINITY} and @var{GGFCFMAX}. See also @var{GGFINFINITY} and @var{GGFCFMAX}.
64 To use this function write first @code{load("ggf")}.
66 @c These examples are from comments in the file share/contrib/ggf.mac.
67 @example
68 (%i1) load("ggf")$
69 (%i2) makelist(fib(n),n,0,10);
70 (%o2)                [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55]
71 (%i3) ggf(%);
72                                        x
73 (%o3)                            - ----------
74                                     2
75                                    x  + x - 1
76 (%i4) taylor(%,x,0,10);
77               2      3      4      5      6       7       8       9       10
78 (%o4)/T/ x + x  + 2 x  + 3 x  + 5 x  + 8 x  + 13 x  + 21 x  + 34 x  + 55 x
79                                                                         + . . .
80 (%i5) makelist(2*fib(n+1)-fib(n),n,0,10);
81 (%o5)              [2, 1, 3, 4, 7, 11, 18, 29, 47, 76, 123]
82 (%i6) ggf(%);
83                                     x - 2
84 (%o6)                             ----------
85                                    2
86                                   x  + x - 1
87 (%i7) taylor(%,x,0,10);
88                     2      3      4       5       6       7       8       9
89 (%o7)/T/ 2 + x + 3 x  + 4 x  + 7 x  + 11 x  + 18 x  + 29 x  + 47 x  + 76 x
90                                                                      10
91                                                               + 123 x   + . . .
92 @end example
94 As these examples show, the generating function does create a function
95 whose Taylor series has coefficients that are the elements of the
96 original list.
97 @opencatbox{Categories:}
98 @category{Generating functions}
99 @category{Share packages}
100 @category{Package ggf}
101 @closecatbox
103 @end deffn