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 */