Appendix A: System Routines — EStack Arithmetic
511
TI
-
89 / TI
-
92 Plus Developer Guide
Not for Distribution
Beta Version January 26, 2001
subtract_from_top
Declaration:
void
subtract_from_top
(EStackIndex
i
)
Category(ies):
EStack Arithmetic
Description:
Replaces the top expression with the internally-simplified difference of the
expression
i
minus the expression indexed by
i
. If one operand is a scalar
and the other is a square matrix, the scalar is distributed only over the
diagonal of the matrix.
Inputs:
i
— Index to the top tag of an internally-simplified algebraic expression,
algebraic comparison, or aggregate thereof.
Outputs:
None
Assumptions:
i
and
top_estack
point to the top tags of internally-simplified algebraic
expressions, algebraic comparisons, or aggregates 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, add_to_top, push_difference,
replace_top2_with_difference, add1_to_top, subtract1_from_top,
push_arg_plus_1, push_arg_minus_1
Example:
void push_div_dif_1f (EStackIndex i, EStackIndex vi, EStackIndex j)
/* avgRC: Pushes onto the estack the forward 1st difference of the expression
indexed by i, with respect to the variable indexed by vi, using
the expression indexed by j as the step size.
*/
{ Access_AMS_Global_Variables;
EStackIndex old_top = top_estack;
push_expression (vi);
add_to_top (j);
push_substitute_simplify (i, vi, top_estack);
subtract_from_top (i); /* Rely on algebra to map over aggregates */
i = top_estack;
push_ratio (i, j);
delete_between (old_top, i);
}