| push_czeros | Function (ROM Call 0x587)

AMS 2.02 or higher | basfunc.h

void push_czeros (CESI, CESI);

Executes TI-Basic 'cZeros' function.

Important note for all solver ROM calls:
When czeros( ) is executed on the command line, the OS provides special treatment for the specified "variable of interest". Part of the "special treatment" is temporarily to promote the "variable of interest" to the top of the ordering. Directly calling push_czeros( ) bypasses this special treatment. This affects solver ROM calls such as push_zeros, push_solve, push_czeros, push_csolve, push_min, push_max, and push_desolve.
For example, the following code for attempting to find an inverse of sqrt(x/(1-x)) gives no solutions:

     push_quantum(X_VAR_TAG);
     var = top_estack;
     push_difference(Integer1Index,var);
     expr = top_estack;
     push_quantum(X_VAR_TAG);
     divide_top(expr);
     push_sqrt(top_estack);	//sqrt(x/(1-x))
     push_zstr("solveaux"); top_estack--;
     solvevar = top_estack;	//Auxiliary solve variable
     push_substitute_simplify(expr,var,solvevar);
     push_difference(top_estack,var);    //(expr|x=solveaux)-x
     push_czeros(top_estack,solvevar);

The simplest and most reliable way around this is to do:

     push_expression(var);
     push_expression(expr);
     push_quantum(CZEROS_TAG);
     push_simplify(top_estack);

The above information was obtained from TI.

Uses: did_push_series, push_1st_derivative, push_abs, push_acosh, push_approx, push_asin, push_asinh, push_atan, push_atanh, push_ceiling, push_conj, push_cos, push_cosh, push_denominator, push_exp, push_expand, push_factor, push_floor, push_gcd_numbers, push_im, push_integer_lcm, push_list_to_mat, push_ln, push_mat_to_list, push_max2, push_mod, push_numerator, push_phase, push_re, push_rec_to_angle, push_sign, push_simult, push_sin, push_sin2, push_sinh, push_sqrt, push_tan, push_tanh, remaining_element_count, push_and, push_arg_minus_1, push_arg_plus_1, push_difference, push_exponentiate, push_indir_name, push_matrix_product, push_negate, push_not, push_pow, push_product, push_ratio, push_square, push_substitute_no_simplify, push_substitute_simplify, push_substitute_using_such_that, push_sum, ER_catch, ER_success, ER_throwVar, all_tail, any_tail, are_expressions_identical, check_estack_size, compare_expressions, delete_between, delete_expression, deleted_between, deleted_expression, estack_number_to_Float, factor_base_index, factor_exponent_index, im_index, index_main_var, is_advanced_tag, is_antisymmetric, is_complex_number, is_complex0, is_free_of_tag, is_independent_of, is_independent_of_elements, is_independent_of_tail, is_monomial, is_monomial_in_kernel, is_symmetric, is_tail_independent_of, lead_base_index, lead_exponent_index, lead_factor_index, lead_term_index, likely_approx_to_complex_number, likely_approx_to_number, main_gen_var_index, map_tail, map_tail_Int, move_between_to_top, moved_between_to_top, next_expression_index, norm1_complex_Float, numeric_factor_index, push_between, push_expr_quantum, push_expr2_quantum, push_expression, push_Float, push_Float_to_rat, push_internal_simplify, push_next_arb_int, push_next_arb_real, push_next_internal_var, push_offset_array, push_quantum, push_quantum_pair, push_reversed_tail, re_index, reductum_index, remaining_factors_index, should_and_did_push_approx_arg2, top_estack, memcpy, memmove, ST_helpMsg, XR_stringPtr, fabs, float_class, fmod, is_inf, is_nan, log, sin, sqrt, tan, tanh, add_to_top, add1_to_top, and_onto_top, compare_numbers, did_map_aggregate_arg, did_push_var_val, divide_top, does_push_fetch, estack_to_float, Float0Index, Float1Index, FloatMinus1Index, FloatPiIndex, get_lb, get_ub, has_different_variable, index_false, index_rmng_factor, index_rmng_fctrs_start_base_tag, index_rmng_fctrs_start_fctr_tag, index_true, integer_non_unknown, Integer0Index, Integer1Index, Integer2Index, IntegerMinus1Index, is_complex_Float, is_constant, is_equivalent_to, is_minus1, is_neg_lead_numr_coef_re_part, is_negative, is_never0, is_nonnegative, is_nonpositive, is_polynomial_in_var_or_kern, is_pos_int_and_eq_quantum, is_positive, is_real, is_reciprocal_of_quantum, is_undefined, is_variable, is_whole_number, is0, is1, lead_conjunct_factor_index, lead_disjunct_term_index, linear_degree, negate_top, next_var_or_kernel_index, NG_control, NG_such_that_index, or_onto_top, primary_tag_list, push_but_conjunct_factor, 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_minus_recip_of_quantum, push_negate_quantum_as_negint, push_nonconstant_factors, push_nonconstant_terms, push_nonnumeric_factors, push_pi, push_pi_on_quantum, push_poly_qr, push_quantum_as_nonnegative_int, push_reciprocal, push_standardize, push_var_kern_tail, push0, push1, raise_to_top, RAtionalize_tol, remaining_conjuncts_index, remaining_disjuncts_index, replace_top_with_reciprocal, replace_top2_with_and, replace_top2_with_difference, replace_top2_with_imre, replace_top2_with_or, replace_top2_with_pow, replace_top2_with_prod, replace_top2_with_ratio, replace_top2_with_sum, subtract_from_top, times_top, DerefSym, VarRecall, _bcd_math, _du16u16, _ds32s32, _ms32s32, ROM Call 0x460, ROM Call 0x461, ROM Call 0x462, ROM Call 0x48C, ROM Call 0x4CC, ROM Call 0x4D1, ROM Call 0x4D2, ROM Call 0x4DF, ROM Call 0x4E6, ROM Call 0x4EA, ROM Call 0x4EB, ROM Call 0x4EC, ROM Call 0x4ED, ROM Call 0x4EE, ROM Call 0x4EF, ROM Call 0x4F2, ROM Call 0x5E4, ROM Call 0x5E5, ROM Call 0x5E6, ROM Call 0x5E8, ROM Call 0x5EB, ROM Call 0x5ED, ROM Call 0x606