 |
are_expressions_identical |
Function (ROM Call 0x2BF) |
Checks whether two expressions are identical.
are_expressions_identical returns TRUE if expressions pointed to by
ptr1 and ptr2 are syntactically identical, else returns FALSE.
At the moment, I am not exactly sure what is the criteria for equivalence. I only know
that a+b and b+a are not identical for example. And, floats are never identical to
rational numbers. So far, I only know that this function
surely returns TRUE when two expressions are absolutely identical.
But, if this is the only case of equivalence, this routine should be very simple. But it
is not. It is very complicated and recursive, so I am really not sure which pairs of
expressions may be treated as "identical". Any additional info is welcomed.
Uses: next_expression_index, memcmp, primary_tag_list
Used by: is_independent_of, is_monomial_in_kernel, is_narrowly_independent_of, push_internal_simplify, push_parse_text, cmd_goto, did_push_anti_deriv, did_push_series, push_1st_derivative, push_abs, push_acosh, push_asin, push_asinh, push_atan, push_atanh, push_comdenom, push_csolve, push_czeros, push_def_int, push_desolve, push_expand, push_extended_prod, push_factor, push_floor, push_lim, push_max, push_min, push_nint, push_nsolve, push_phase, push_sign, push_sin2, push_solve, push_summation, push_zeros, did_push_to_polar, push_and, 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_or, push_product, push_substitute_no_simplify, push_sum, push_to_cylin, push_to_sphere, ST_eraseHelp, ST_modKey, add_to_top, and_onto_top, are_units_consistent, did_push_lincf, EQU_getNameInfo, get_lb, get_ub, has_different_variable, index_if_pushed_binomial_info, index_rmng_factor, index_rmng_fctrs_start_base, is_equivalent_to, is_negative, is_never0, is_nonnegative, is_nonpositive, is_polynomial_in_var_or_kern, is_positive, is_term_improper, linear_degree, or_onto_top, push_but_term, push_constant_terms, push_dependent_terms, push_gcd_then_cofactors, push_independent_terms, push_make_proper, push_nonconstant_terms, push_parse_prgm_or_func_text, push_poly_deg_in_var_or_kernel, push_poly_qr, push_reciprocal, push_standardize, replace_top_with_post_simplified, replace_top2_with_sum, ROM Call 0x410, ROM Call 0x48D, ROM Call 0x4E6