Appendix A: System Routines — Algebra Utilities
249
TI
-
89 / TI
-
92 Plus Developer Guide
Not for Distribution
Beta Version January 26, 2001
index_rmng_fctrs_start_fctr_tag
Declaration:
EStackIndex
index_rmng_fctrs_start_fctr_tag
(EStackIndex
i
,
Quantum
q
)
Category(ies):
Algebra Utilities
Description:
This function can be used together with
push_but_factor
to push a
product of all but the first syntactic factor having tag
q
in expression
i
.
Inputs:
i
— Index of the top tag of an internally-simplified algebraic expression.
q
— Primary tag.
Outputs:
Returns NULL_INDEX if ESTACK (
lead_factor_index
(
i
)) !=
q
and
ESTACK (
lead_factor_index
(
remaining_factors_index
(
i
))) !=
q
and
ESTACK (
lead_factor_index
(
remaining_factors_index
(remaining_factors_index
(
i
)))) !=
q
, etc.
Otherwise returns the shallowest
k
such that ESTACK
(
lead_factor_index
(
k
)) ==
q
and (
k
=
i
or
k
=
remaining_factors_index
(
i
)
or
k
=
remaining_factors_index
(
remaining_factors_index
(
i
)) or . . . ).
Assumptions:
None
Side Effects:
None
Availability:
All versions of the TI
-
89 / TI
-
92 Plus.
TI
-
89 / TI
-
92 Plus
Differences:
None
See Also: index_rmng_fctrs_start_base_tag, index_rmng_fctrs_start_base,
index_rmng_factor
Example:
push_quantum (10u);
push_quantum (EXP_TAG); /* exp(z) */
push_quantum (9u);
push_quantum (EXP_TAG); /* exp(y) */
push_quantum (MULTIPLY_TAG);
k = top_estack; /* exp(y) * exp(z) */
push_quantum (8u);
push_quantum (LN_TAG); /* ln(x) */
push_quantum (MULTIPLY_TAG);
i = top_estack; /* ln(x) * exp(y) * exp(z) */
index_rmng_fctrs_start_fctr_tag (top_estack, EXP_TAG); /* Returns k */
index_rmng_fctrs_start_fctr_tag (top_estack, LN_TAG); /* Returns i */
index_rmng_fctrs_start_fctr_tag(top_estack,ABS_TAG); /* Returns NULL_INDEX */