264
Appendix A: System Routines — Algebra Utilities
TI
-
89 / TI
-
92 Plus Developer Guide
Not for Distribution
Beta Version January 26, 2001
linear_degree
Declaration:
EStackIndex
linear_degree
(EStackIndex
i
, EStackIndex
vi
)
Category(ies):
Algebra Utilities
Description:
Returns 0 if the expression indexed by
i
is independent of the variable or
kernel indexed by
vi
, or returns 1 if the expression is obviously linear in
vi
.
Otherwise returns
L
1.
Inputs:
i
— Index of the top tag of an internally-simplified algebraic expression.
vi
— Index of the top tag of an internally-simplified variable or kernel.
Outputs:
Returns 0 if the expression indexed by
i
is independent of the variable or
kernel indexed by
vi
, or returns 1 if the expression is obviously linear in
vi
.
Otherwise returns
L
1.
Assumptions:
None
Side Effects:
None
Availability:
All versions of the TI
-
89 / TI
-
92 Plus.
TI
-
89 / TI
-
92 Plus
Differences:
None
See Also: did_push_lincf, push_poly_deg_in_var_or_kernel,
index_if_pushed_binomial_info, index_if_pushed_qquad_info
Example:
If
i
indexes (x^2
†
ln(y) + x + ln(y))
†
z and
vi
indexes ln(y), then
linear_degree
(
i
,
vi
) returns 1.
EStackIndex is_linear_any (EStackIndex i)
/* If the expression indexed by i is obviously linear in any of its generalized
variables, returns an index of the most main such variable.
Otherwise returns NULL_INDEX.
*/
{ EStackIndex vi = main_gen_var_index (i);
for (;;) if (vi)
if (linear_degree (i, vi) == 1)
return vi;
else
vi = next_var_or_kernel_index (i, vi);
else
return NULL_INDEX;
}