530
Appendix A: System Routines — EStack Utilities
TI
-
89 / TI
-
92 Plus Developer Guide
Not for Distribution
Beta Version January 26, 2001
push_Float_to_rat
Declaration:
void
push_Float_to_rat
(EStackIndex
i
)
Category(ies):
EStack Utilities, EStack Arithmetic
Description:
Pushes UNDEFINED_TAG if the float is a NAN, MINUS_INFINITY_TAG if
the float represents
Lˆ
, PLUS_INFINITY_TAG if the float represents +
ˆ
, or
PLUS_OR_MINUS_INFINITY_TAG if the float represents +
Lˆ
. Otherwise
pushes the equivalent tagged bignum, to within a relative error given by
RAtionalize_tol
.
Inputs:
i
— Index to the tag of a tagged float.
Outputs:
None
Assumptions:
i
points to the estack or some other locked block.
Side Effects:
May cause heap compression or throw an error.
Availability:
On AMS 1.05 and higher.
TI
-
89 / TI
-
92 Plus
Differences:
None
See Also: push_Float_to_nonneg_int, did_push_cnvrt_Float_to_integer
Example:
void push_round_Float (EStackIndex i)
/* i indexes a Float. Pushes onto the estack the float obtained by rationalizing
then converting back to Float.
*/
{ Access_AMS_Global_Variables;
EStackIndex old_top = top_estack;
Float old_RAtionalize_tol = RAtionalize_tol;
RAtionalize_tol = CUBE_ROOT_FLOAT_EPSILON;
push_Float_to_rat (i);
i = top_estack;
RAtionalize_tol = old_RAtionalize_tol;
PUSH_NUMBER_TO_FLOAT (i);
delete_between (old_top, i);
}