794
Appendix A: System Routines — Math
TI
-
89 / TI
-
92 Plus Developer Guide
Not for Distribution
Beta Version January 26, 2001
push_lim
Declaration:
void 
push_lim
 (EStackIndex 
i
, EStackIndex 
ki
, EStackIndex 
j
,
EStackIndex 
direction
)
Category(ies):
Math
Description:
Pushes the limit of expression 
i
, as variable 
ki
 approaches expression 
j.
Subject to overriding for consistency with a signed zero or infinity for point 
j
,
the limit is from the right if the expression indexed by 
direction
 is positive,
versus from the left if negative, or from both directions otherwise. If invoked
via 
push_internal_simplify
, 
ki
 and 
i
 are simplified to deepest variable.
Moreover, the simplification of 
i
 and the computation of the limit are done in
the context of a “such that” constraining 
ki
 to a small (but finite)
neighborhood of point 
j
, from the direction(s) specified by direction.
Inputs:
i
— Indexes the top tag of an internally-simplified algebraic
expression, algebraic comparison, or aggregate thereof.
ki
— Indexes the top tag of a variable.
j
, 
direction
— Indexes to internally-simplified algebraic expressions.
Outputs:
None
Assumptions:
None
Side Effects:
None
Availability:
On AMS 2.02 and higher.
TI
-
89 / TI
-
92 Plus
Differences:
None
See Also: push_substitute_simplify, push_subst_no_simp
Example:
void push_subst_or_lim (EStackIndex i, EStackIndex ki, EStackIndex j)
/* Pushes the result of substituting j for ki in i, unless it yields a
   nonunique result and the two-sided limit does not, in which case it
   pushes the latter instead.
*/
{  Access_AMS_Global_Variables;
   EStackIndex k,  old_top = top_estack;
   push_substitute_simplify (i, ki, j);
   k = top_estack;
   if (is_undefined (k))
      {  push_lim (i, ki, j, Integer0Index);
         if (is_undefined (top_estack))
            top_estack = k;
         else delete_between (old_top, k);
      }
} /* end push_subst_or_lim */