Appendix A: System Routines — EStack Arithmetic
487
TI
-
89 / TI
-
92 Plus Developer Guide
Not for Distribution
Beta Version January 26, 2001
push_arg_minus_1
Declaration:
void
push_arg_minus_1
(EStackIndex
i
)
Category(ies):
EStack Arithmetic
Description:
Pushes onto the estack the internally-simplified difference of the
expression
i
minus 1.0 if IS_ARITH_APPROX, or the expression
i
minus 1
otherwise. If
i
indexes a square matrix, the one is subtracted only from the
diagonal of the matrix.
Inputs:
i
— Index to an internally-simplified algebraic expression, algebraic
comparison, or aggregate thereof.
Outputs:
None
Assumptions:
i
indexes the top tag of an internally-simplified algebraic expression,
algebraic comparison, or aggregate thereof.
Side Effects:
None
Availability:
On AMS 2.02 and higher.
TI
-
89 / TI
-
92 Plus
Differences:
None
See Also: push_sum, replace_top2_with_sum, push_difference,
subtract_from_top, replace_top2_with_difference, add1_to_top,
subtract1_from_top, push_arg_plus_1, add_to_top
Example:
Boolean is_odd_expression (EStackIndex i)
/* Returns TRUE if the expression indexed by i is recognized as odd. */
{ Access_AMS_Global_Variables;
EStackIndex old_top;
Boolean b;
if (SIGN_TAG == ESTACK (i))
return IS_DOMAIN_REAL && is_real (i - 1u);
old_top = top_estack;
push_arg_minus_1 (i);
i = top_estack;
push_reciprocal_of_quantum (2u);
replace_top2_with_prod (i);
b = integer_non_unknown (top_estack) > 0;
top_estack = old_top;
return b;
}