 |
lead_factor_index |
Function (ROM Call 0x2E0) |
Gets the index of the lead factor of an expression.
If ptr points to the MUL_TAG, which is the case when it
points to an expression of form factor1 * factor2 * ...
(i.e. if the expression is a product of simpler factors), lead_factor_index returns the pointer
to factor1 (i.e. to the lead factor). If ptr does not point to the
MUL_TAG (i.e. if the expression is not a product of simpler factors),
lead_factor_index returns ptr (i.e. the pointer to the expression itself).
Note: Expressions in internal canonic form have the most main factor shallowest, with less main factors deeper
(see compare_expressions for more info about "main"
ordering). Also, the lead factor of an internally-simplified product is never a product.
For example, lead factor of '(3*x^2)*y'
converted into canonic form is
'x^2'
. Internally-simplified numeric denominator factors are combined with
numeric numerator factors into a fractional numeric factor. Non-numeric denominator
factors are internally simplified to be merged with numerator factors as negative powers.
For example, the lead factor of '2/x'
converted into canonic form is
'x^-1'
. A factor having a sum as its base orders shallower than a factor
having the sum’s main variable as its base. For example, the lead factor
of '(x+1)^-2*x^3'
converted into canonic form is '(x+1)^-2'
.
See push_internal_simplify
for more info about how to convert an expression into the internal canonic form.
Used by: is_monomial_in_kernel, lead_base_index, lead_exponent_index, did_push_anti_deriv, did_push_series, push_1st_derivative, push_comdenom, push_csolve, push_czeros, push_def_int, push_denominator, push_desolve, push_expand, push_extended_prod, push_factor, push_floor, push_im, push_lim, push_ln, push_max, push_min, push_nsolve, push_numerator, push_phase, push_re, push_sin2, push_solve, push_summation, push_zeros, did_push_to_polar, push_equals, push_exponentiate, push_greater_than, push_greater_than_or_equals, push_less_than, push_less_than_or_equals, push_negate, push_not_equals, push_product, push_sum, push_to_cylin, push_to_sphere, add_to_top, are_units_consistent, get_ub, index_if_pushed_qquad_info, index_rmng_factor, index_rmng_fctrs_start_fctr_tag, is_negative, is_nonnegative, is_nonpositive, is_positive, is_term_improper, push_auto_units_conversion, push_but_factor, push_but_term, push_constant_factors, push_constant_terms, push_dependent_factors, push_dependent_terms, push_gcd_then_cofactors, push_independent_factors, push_independent_terms, push_make_proper, push_nonconstant_factors, push_nonconstant_terms, push_nonnumeric_factors, push_poly_qr, push_reciprocal, push_standardize, raise_to_top, replace_top_with_post_simplified, replace_top2_with_pow, replace_top2_with_sum, ROM Call 0x48D