### 6.2 Added Functions ¶

We give here in alphabetical order the functions (and function-like macros) that were added after MPFR 2.2, and in which MPFR version.

- `mpfr_acospi` and `mpfr_acosu` in MPFR 4.2.
- `mpfr_add_d` in MPFR 2.4.
- `mpfr_ai` in MPFR 3.0 (incomplete, experimental).
- `mpfr_asinpi` and `mpfr_asinu` in MPFR 4.2.
- `mpfr_asprintf` in MPFR 2.4.
- `mpfr_atan2pi` and `mpfr_atan2u` in MPFR 4.2.
- `mpfr_atanpi` and `mpfr_atanu` in MPFR 4.2.
- `mpfr_beta` in MPFR 4.0 (incomplete, experimental).
- `mpfr_buildopt_decimal_p` in MPFR 3.0.
- `mpfr_buildopt_float128_p` in MPFR 4.0.
- `mpfr_buildopt_gmpinternals_p` in MPFR 3.1.
- `mpfr_buildopt_sharedcache_p` in MPFR 4.0.
- `mpfr_buildopt_tls_p` in MPFR 3.0.
- `mpfr_buildopt_tune_case` in MPFR 3.1.
- `mpfr_clear_divby0` in MPFR 3.1 (new divide-by-zero exception).
- `mpfr_cmpabs_ui` in MPFR 4.1.
- `mpfr_compound_si` in MPFR 4.2.
- `mpfr_copysign` in MPFR 2.3. Note: MPFR 2.2 had a `mpfr_copysign` function that was available, but not documented, and with a slight difference in the semantics (when the second input operand is a NaN).
- `mpfr_cospi` and `mpfr_cosu` in MPFR 4.2.
- `mpfr_custom_get_significand` in MPFR 3.0. This function was named `mpfr_custom_get_mantissa` in previous versions; `mpfr_custom_get_mantissa` is still available via a macro in `mpfr.h`:

      #define mpfr_custom_get_mantissa mpfr_custom_get_significand

  Thus code that needs to work with both MPFR 2.x and MPFR 3.x should use `mpfr_custom_get_mantissa`.

- `mpfr_d_div` and `mpfr_d_sub` in MPFR 2.4.
- `mpfr_digamma` in MPFR 3.0.
- `mpfr_divby0_p` in MPFR 3.1 (new divide-by-zero exception).
- `mpfr_div_d` in MPFR 2.4.
- `mpfr_dot` in MPFR 4.1 (incomplete, experimental).
- `mpfr_erandom` in MPFR 4.0.
- `mpfr_exp2m1` and `mpfr_exp10m1` in MPFR 4.2.
- `mpfr_flags_clear`, `mpfr_flags_restore`, `mpfr_flags_save`, `mpfr_flags_set` and `mpfr_flags_test` in MPFR 4.0.
- `mpfr_fmma` and `mpfr_fmms` in MPFR 4.0.
- `mpfr_fmod` in MPFR 2.4.
- `mpfr_fmodquo` in MPFR 4.0.
- `mpfr_fmod_ui` in MPFR 4.2.
- `mpfr_fms` in MPFR 2.3.
- `mpfr_fpif_export` and `mpfr_fpif_import` in MPFR 4.0.
- `mpfr_fprintf` in MPFR 2.4.
- `mpfr_free_cache2` in MPFR 4.0.
- `mpfr_free_pool` in MPFR 4.0.
- `mpfr_frexp` in MPFR 3.1.
- `mpfr_gamma_inc` in MPFR 4.0.
- `mpfr_get_decimal128` in MPFR 4.1.
- `mpfr_get_float128` in MPFR 4.0 if configured with ‘`--enable-float128`’.
- `mpfr_get_flt` in MPFR 3.0.
- `mpfr_get_patches` in MPFR 2.3.
- `mpfr_get_q` in MPFR 4.0.
- `mpfr_get_str_ndigits` in MPFR 4.1.
- `mpfr_get_z_2exp` in MPFR 3.0. This function was named `mpfr_get_z_exp` in previous versions; `mpfr_get_z_exp` is still available via a macro in `mpfr.h`:

      #define mpfr_get_z_exp mpfr_get_z_2exp

  Thus code that needs to work with both MPFR 2.x and MPFR 3.x should use `mpfr_get_z_exp`.

- `mpfr_grandom` in MPFR 3.1.
- `mpfr_j0`, `mpfr_j1` and `mpfr_jn` in MPFR 2.3.
- `mpfr_log2p1` and `mpfr_log10p1` in MPFR 4.2.
- `mpfr_lgamma` in MPFR 2.3.
- `mpfr_li2` in MPFR 2.4.
- `mpfr_log_ui` in MPFR 4.0.
- `mpfr_min_prec` in MPFR 3.0.
- `mpfr_modf` in MPFR 2.4.
- `mpfr_mp_memory_cleanup` in MPFR 4.0.
- `mpfr_mul_d` in MPFR 2.4.
- `mpfr_nrandom` in MPFR 4.0.
- `mpfr_powr`, `mpfr_pown`, `mpfr_pow_sj` and `mpfr_pow_uj` in MPFR 4.2.
- `mpfr_printf` in MPFR 2.4.
- `mpfr_rec_sqrt` in MPFR 2.4.
- `mpfr_regular_p` in MPFR 3.0.
- `mpfr_remainder` and `mpfr_remquo` in MPFR 2.3.
- `mpfr_rint_roundeven` and `mpfr_roundeven` in MPFR 4.0.
- `mpfr_round_nearest_away` in MPFR 4.0.
- `mpfr_rootn_si` in MPFR 4.2.
- `mpfr_rootn_ui` in MPFR 4.0.
- `mpfr_set_decimal128` in MPFR 4.1.
- `mpfr_set_divby0` in MPFR 3.1 (new divide-by-zero exception).
- `mpfr_set_float128` in MPFR 4.0 if configured with ‘`--enable-float128`’.
- `mpfr_set_flt` in MPFR 3.0.
- `mpfr_set_z_2exp` in MPFR 3.0.
- `mpfr_set_zero` in MPFR 3.0.
- `mpfr_setsign` in MPFR 2.3.
- `mpfr_signbit` in MPFR 2.3.
- `mpfr_sinh_cosh` in MPFR 2.4.
- `mpfr_sinpi` and `mpfr_sinu` in MPFR 4.2.
- `mpfr_snprintf` and `mpfr_sprintf` in MPFR 2.4.
- `mpfr_sub_d` in MPFR 2.4.
- `mpfr_tanpi` and `mpfr_tanu` in MPFR 4.2.
- `mpfr_total_order_p` in MPFR 4.1.
- `mpfr_urandom` in MPFR 3.0.
- `mpfr_vasprintf`, `mpfr_vfprintf`, `mpfr_vprintf`, `mpfr_vsprintf` and `mpfr_vsnprintf` in MPFR 2.4.
- `mpfr_y0`, `mpfr_y1` and `mpfr_yn` in MPFR 2.3.
- `mpfr_z_sub` in MPFR 3.1.