730
Appendix A: System Routines — Logic
TI
-
89 / TI
-
92 Plus Developer Guide
Not for Distribution
Beta Version January 26, 2001
is_never0
Declaration:
Boolean
is_never0
(EStackIndex
i
)
Category(ies):
Logic
Description:
Determines whether the internally-simplified algebraic expression indexed
by
i
is nonzero (possibly unreal) for all finite values of all variables therein.
Inputs:
i
— Index of the top tag of an internally-simplified expression.
Outputs:
Returns TRUE if it can determine that the internally-simplified algebraic
expression indexed by
i
is nonzero (possibly unreal) for all finite values of
all variables therein. Otherwise returns FALSE, even though expression
i
might always be nonzero.
Assumptions:
None
Side Effects:
None
Availability:
On AMS 2.02 and higher.
TI
-
89 / TI
-
92 Plus
Differences:
None
See Also: is_nonnegative, is_positive, is_nonpositive, is0, is_negative, is_real
Example:
void push_maybe0_factors (EStackIndex i)
/* i initially indexes a term (that might recur to a sum).
Pushes the product of the factors of i that might be zero.
*/
{ if (IS_NUMBER_TAG (ESTACK (i)))
push_expression (Integer1Index);
else
{ push_maybe0_factors (remaining_factors_index (i));
i = lead_factor_index (i);
if (is_never0 (i) &&
(EXPONENTIATION_TAG != ESTACK (i) ||
is_nonnegative (POWER_EXPONENT_INDEX (i)) ||
is_never0 (POWER_BASE_INDEX (i)) ) )
;
else
times_top (i);
}
} /* end push_maybe0_factors */