[Main]
Name=reductum_index
Type=Function
Subtype=ROM Call
Header Files=estack.h
Definition=ESI reductum_index (CESI ptr);
Attributes=__attribute__((__pure__))
MinAMS=1.01

[ROM Call]
Index=$2F0

[Description]
Gets the index of remaining terms of an expression.

[Explanation]
If <I>ptr</I> points to the <A HREF="$$LINK(estack.h/Tags)">ADD_TAG</A>, which is a case when it
points to an expression of form <I>term1</I>&nbsp;+&nbsp;<I>term2</I>&nbsp;+&nbsp;<B>...</B>
(i.e. if the expression is a sum of simpler terms), reductum_index returns the pointer
to the subexpression <I>term2</I>&nbsp;+&nbsp;<B>...</B> (which is a reductum
subexpression of the given expression). If <I>ptr</I> does not point to the
<A HREF="$$LINK(estack.h/Tags)">ADD_TAG</A> (i.e. if the expression is not a sum of simpler terms),
reductum_index returns a pointer to a simple zero expression, i.e. expression which
consists only of number 0 (floating point or integer,
depending of whether the approximation mode is active or not).
<BR><BR>
<B>Note:</B> Expressions in internal canonic form have the most main term
shallowest (see <A HREF="$$LINK(estack.h/lead_term_index)">lead_term_index</A>. So, the reductum of
<CODE>'2+x+y'</CODE> converted to canonic form is <CODE>'y+2'</CODE>.
By default, similar powers of the main variable are collected in internal canonic forms.
For example, the reductum of <CODE>'x^2*y+x^2+5'</CODE> converted to canonic form is
<CODE>'5'</CODE>. See <A HREF="$$LINK(estack.h/push_internal_simplify)">push_internal_simplify</A>
for more info about how to convert an expression into the internal canonic form.

[References]
In=basfunc.h/did_push_anti_deriv, basfunc.h/did_push_series, basfunc.h/push_1st_derivative, basfunc.h/push_csolve, basfunc.h/push_czeros, basfunc.h/push_def_int, basfunc.h/push_desolve, basfunc.h/push_expand, basfunc.h/push_extended_prod, basfunc.h/push_factor, basfunc.h/push_floor, basfunc.h/push_lim, basfunc.h/push_max, basfunc.h/push_min, basfunc.h/push_nsolve, basfunc.h/push_phase, basfunc.h/push_sin2, basfunc.h/push_solve, basfunc.h/push_summation, basfunc.h/push_zeros, basop.h/did_push_to_polar, basop.h/push_equals, basop.h/push_exponentiate, basop.h/push_greater_than, basop.h/push_greater_than_or_equals, basop.h/push_less_than, basop.h/push_less_than_or_equals, basop.h/push_negate, basop.h/push_not_equals, basop.h/push_product, basop.h/push_sum, basop.h/push_to_cylin, basop.h/push_to_sphere, estack.h/add_to_top, unknown.h/get_ub, unknown.h/index_reductum_with_tag_base, unknown.h/push_but_term, unknown.h/push_constant_terms, unknown.h/push_dependent_terms, unknown.h/push_gcd_then_cofactors, unknown.h/push_independent_terms, unknown.h/push_make_proper, unknown.h/push_nonconstant_terms, unknown.h/push_poly_qr, unknown.h/push_standardize, unknown.h/replace_top_with_post_simplified, unknown.h/replace_top2_with_sum
Out=estack.h/next_expression_index, unknown.h/Float0Index, unknown.h/Integer0Index
