Fix bug #1848: taytorat leaks internal gensyms from multivar expansions
[maxima.git] / doc / info / ratpow.texi
blob5f9479b010a8a5d275c9ff14cda3cce27e5b9548
1 The package @code{ratpow} provides functions that return the coefficients
2 of the numerator of a CRE polynomial in a given variable.
4 For example,
5 @itemize
6 @item
7 @code{ratp_coeffs(5*x^7-3*x^2+4,x)} returns @code{[[7,5],[2,-3],[0,4]]}, which omits zero terms;
8 @item
9 @code{ratp_dense_coeffs(5*x^7-y*x^2+4,x)} returns @code{[5,0,0,0,0,-y,0,4]}, which includes zero terms;
10 @item
11 @code{ratp_dense_coeffs((x^4-y^4)/(x-y),x)} returns @code{[1,y,y^2,y^3]},
12 because CRE simplifies the expression to @code{x^3+y*x^2+y^2*x+y^3};
13 @item
14 @code{ratp_dense_coeffs(x+sqrt(x),x)} returns @code{[1,sqrt(x)]}
15 while @code{ratp_dense_coeffs(x+sqrt(x),sqrt(x))} returns @code{[1,x]}:
16 in CRE form, @code{x} and @code{sqrt(x)} are treated as independent variables.
17 @end itemize
19 The returned coefficients are in CRE form except for numbers.
21 For the list of vars of a CRE polynomial, use @mref{showratvars}.
22 For the denominator of a CRE polynomial, use @mref{ratdenom}.
24 For information about CREs see also @mrefcomma{rat} @mref{ratdisrep} and
25 @mrefdot{showratvars}
26 @menu
27 * Functions and Variables for ratpow::
28 @end menu
30 @node Functions and Variables for ratpow, , Top, Top
31 @section Functions and Variables for ratpow
35 @anchor{ratp_hipow}
36 @deffn {Function} ratp_hipow (@var{expr}, @var{x})
38 Returns the highest power of @var{x} in @code{ratnumer(expr)}
40 @c ===beg===
41 @c load("ratpow")$
42 @c ratp_hipow( x^(5/2) + x^2 , x);
43 @c ratp_hipow( x^(5/2) + x^2 , sqrt(x));
44 @c ===end===
45 @example
46 (%i1) load("ratpow")$
47 @group
48 (%i2) ratp_hipow( x^(5/2) + x^2 , x);
49 (%o2)                           2
50 @end group
51 @group
52 (%i3) ratp_hipow( x^(5/2) + x^2 , sqrt(x));
53 (%o3)                           5
54 @end group
55 @end example
57 @opencatbox{Categories:}
58 @category{Rational expressions}
59 @category{Package ratpow}
60 @closecatbox
61 @end deffn
64 @anchor{ratp_lopow}
65 @deffn {Function} ratp_lopow (@var{expr}, @var{x})
67 Returns the lowest power of @var{x} in @code{ratnumer(expr)}
69 @c ===beg===
70 @c load("ratpow")$
71 @c ratp_lopow( x^5 + x^2 , x);
72 @c ===end===
73 @example
74 (%i1) load("ratpow")$
75 @group
76 (%i2) ratp_lopow( x^5 + x^2 , x);
77 (%o2)                           2
78 @end group
79 @end example
81 The following example returns 0 since @code{1} equals @code{x^0}:
82 @c ===beg===
83 @c load("ratpow")$
84 @c ratp_lopow( x^5 + x^2 + 1, x);
85 @c ===end===
86 @example
87 (%i1) load("ratpow")$
88 @group
89 (%i2) ratp_lopow( x^5 + x^2 + 1, x);
90 (%o2)                           0
91 @end group
92 @end example
94 The CRE form of the following equation contains @code{sqrt(x)} and
95 @code{x}. Since they are interpreted as independent variables,
96 @code{ratp_lopow} returns @code{0}:
97 @c ===beg===
98 @c load("ratpow")$
99 @c g:sqrt(x)^5 + sqrt(x)^2;
100 @c showratvars(g);
101 @c ratp_lopow( g, x);
102 @c ratp_lopow( g, sqrt(x));
103 @c ===end===
104 @example
105 (%i1) load("ratpow")$
106 @group
107 (%i2) g:sqrt(x)^5 + sqrt(x)^2;
108                              5/2
109 (%o2)                       x    + x
110 @end group
111 @group
112 (%i3) showratvars(g);
113                               1/2
114 (%o3)                       [x   , x]
115 @end group
116 @group
117 (%i4) ratp_lopow( g, x);
118 (%o4)                           0
119 @end group
120 @group
121 (%i5) ratp_lopow( g, sqrt(x));
122 (%o5)                           0
123 @end group
124 @end example
127 @opencatbox{Categories:}
128 @category{Rational expressions}
129 @category{Package ratpow}
130 @closecatbox
131 @end deffn
134 @anchor{ratp_coeffs}
135 @deffn {Function} ratp_coeffs (@var{expr}, @var{x})
137 Returns the powers and coefficients of @var{x} in @code{ratnumer(expr)} as a list of length-2 lists;
138 returned coefficients are in CRE form except for numbers.
141 @code{ratnumer(expr)}.
142 @c ===beg===
143 @c load("ratpow")$
144 @c ratp_coeffs( 4*x^3 + x + sqrt(x), x);
145 @c ===end===
146 @example
147 (%i1) load("ratpow")$
148 @group
149 (%i2) ratp_coeffs( 4*x^3 + x + sqrt(x), x);
150 (%o2)/R/         [[3, 4], [1, 1], [0, sqrt(x)]]
151 @end group
152 @end example
153 @opencatbox{Categories:}
154 @category{Rational expressions}
155 @category{Package ratpow}
156 @closecatbox
157 @end deffn
159 @anchor{ratp_dense_coeffs}
160 @deffn {Function} ratp_dense_coeffs (@var{expr}, @var{x})
162 Returns the coefficients of powers of @var{x} in @code{ratnumer(expr)} from highest to lowest;
163 returned coefficients are in CRE form except for numbers.
165 @c ===beg===
166 @c load("ratpow")$
167 @c ratp_dense_coeffs( 4*x^3 + x + sqrt(x), x);
168 @c ===end===
169 @example
170 (%i1) load("ratpow")$
171 @group
172 (%i2) ratp_dense_coeffs( 4*x^3 + x + sqrt(x), x);
173 (%o2)/R/               [4, 0, 1, sqrt(x)]
174 @end group
175 @end example
177 @opencatbox{Categories:}
178 @category{Rational expressions}
179 @category{Package ratpow}
180 @closecatbox
181 @end deffn